123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281 |
- define(['$', 'template', 'user', 'config', 'native', 'IScroll', 'BMap'], function ($, template, user, config, native, IScroll, BMap) {
- function back(event) {
- event.preventDefault();
- $(document).trigger('spa:navigate', {
- hash: 'myOrder/1'
- });
- }
- var cachePageData = {};
- var getPoiFn;
- return {
- title: '壹管家上门服务',
- body: '',
- init: function (pageData, dtd) {
- var productType = pageData.pushData.productType;
- var $view = this;
- var $doc = $(document);
- // 返回
- $.newTouch('.back-button', function (event) {
- back.call(this, event);
- }, $view);
- $view.on('tapBackButton', function (event) {
- back.call(this, event);
- });
- $view.on('swipeRight', function (event) {
- back.call(this, event);
- });
- // 客服电话
- $.newTouch('.service-telephone', function (event) {
- event.preventDefault();
- native.call('4000328170');
- }, $view);
- // 客服电话
- $.newTouch('.j-phone', function (event) {
- event.preventDefault();
- var phone = $(this).text();
- native.call(phone);
- }, $view);
- // 去支付
- $.newTouch('.order-btn-pay', function(event) {
- event.preventDefault();
- $doc.trigger('spa:navigate', {
- hash: 'pay',
- pushData: {
- animate: 'slideInUp',
- orderID: $(this).data('order-id'),
- backHash: 'myOrder/1'
- }
- });
- }, $view);
- // 取消
- $.newTouch('.order-btn-cancel', function(event) {
- event.preventDefault();
- var orderID = $(this).attr('data-order-id');
- $doc.trigger('spa:openloader');
- user.cancelOrder(orderID, function(res) {
- $doc.trigger('spa:closeloader');
- if (res.success) {
- // reloadData.call($view, pageData, 1);
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: '取消订单成功'
- }]);
- } else {
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: res.message
- }]);
- }
- })
- }, $view);
- // 去评价
- $.newTouch('.order-btn-review', function(event) {
- var obj = $(this);
- if (obj.hasClass('disable')) {
- return false;
- }
- var orderID = obj.data('order-id');
- $doc.trigger('spa:openpanel', ['postReview', {
- orderID: orderID,
- didPostReview: function() {
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: '评价成功'
- }]);
- }
- }]);
- }, $view);
- // 申请退款
- $.newTouch('.order-btn-refund', function(event) {
- var html = '<a href="tel:4000328170">4000328170</a>';
- if ($(this).hasClass('btn-alert-info')) {
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: '预约时间两个小时内申请退款将扣除50%订单金额。确定退款请电话联系客服。',
- html: config.isWX ? html: '',
- buttons: [{
- text: '取消',
- class: 'btn-default',
- callback: function() {
- }
- },{
- text: '联系客服',
- class: 'btn-primary',
- callback: function() {
- native.call('4000328170');
- }
- }]
- }]);
- return;
- } else {
- var orderID = $(this).attr('data-order-id');
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- title: '申请退款',
- message: '退款将退至您的支付账户',
- html: '(3-10个工作日内到账)',
- buttons: [{
- text: '确定申请',
- class: 'btn-primary',
- callback: function() {
- user.refundOrder(orderID, function(res) {
- if (res.success) {
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: '申请成功'
- }]);
- // $('.control-item', $view).eq(2).addClass('active').siblings().removeClass('active');
- // reloadData.call($view, pageData, 2);
- } else {
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: res.message
- }]);
- }
- });
- }
- },{
- text: '取消申请',
- class: 'btn-default',
- callback: function() {
- }
- }]
- }]);
- }
- }, $view);
- // 追加服务
- $.newTouch('.order-btn-append', function(event) {
- var appendType = $(this).attr('data-type');
- var orderID = $(this).attr('data-order-id');
- var petName = $(this).attr('data-order-name');
- var i = $(this).parents('.table-view').index();
- $doc.trigger('spa:navigate', {
- hash: 'append',
- pushData: {
- appendType: appendType,
- orderID: orderID,
- petName: petName,
- index: cachePageData['index']
- }
- });
- }, $view);
- // 确认完成
- $.newTouch('.order-btn-done', function(event) {
- event.preventDefault();
- var orderId = $(this).attr('data-order-id');
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: '确认服务已完成?',
- buttons: [{
- text: '确认',
- class: 'btn-primary',
- callback: function() {
- user.finishOrder(orderId, function(res) {
- if (res.success) {
- $doc.trigger('spa:navigate', {
- hash: 'order-done'
- });
- } else {
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: res.message
- }]);
- }
- });
- }
- },{
- text: '取消',
- class: 'btn-default',
- callback: function() {
- }
- }]
- }]);
- }, $view);
- dtd.resolve();
- },
- beforeopen: function (pageData, dtd) {
- var $view = this;
- var pushData = pageData.pushData;
- var index = pushData["index"];
- cachePageData['index'] = index;
- var orderID = pageData.requestData[0];
- user.getOrderDetail(orderID, function(res) {
- if (res.success) {
- var time = new Date().getTime();
- var tpl = template('myOrder/detail', {
- showNavBar: !config.isWX && !config.isChubao,
- time: parseInt(time / 1000),
- order: res.data,
- orderID: orderID
- });
- $view.find('.spa-page-body').html(tpl);
- setTimeout(function() {
- pageData.scroll = new IScroll('#myOrderDetailScroll' + orderID);
- }, 100);
- function initMap(lonitude, latitude) {
- var map = new BMap.Map("map-container-" + orderID); // 创建地图实例
- var point = new BMap.Point(lonitude, latitude); // 创建点坐标
- map.centerAndZoom(point, 16);
- var marker = new BMap.Marker(point); // 创建标注
- map.addOverlay(marker);
- if (pageData && pageData.scroll) {
- pageData.scroll.refresh();
- }
- }
- if (res.data.status == 4 && res.data.tech_info) {
- var name = res.data.tech_info.weixin_userid;
- function getPoi (){
- $.ajaxJSONP({
- url: 'http://n.wozhua.mobi/api/wx/find/' + name,
- success: function (res) {
- if (res.hasOwnProperty('latitude')) {
- var latitude = res.latitude;
- var lonitude = res.lonitude;
- initMap(lonitude, latitude);
- } else {
- $('#map-container-' + orderID, $view).hide();
- }
- },
- error: function (res) {
- }
- });
- }
- setTimeout(function() {
- getPoi();
- }, 200);
- getPoiFn = setInterval(function() {
- getPoi();
- }, 60000);
- }
- } else {
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: res.message
- }]);
- }
- });
- dtd.resolve();
- },
- afteropen: function (pageData, dtd) {
- dtd.resolve();
- },
- beforeclose: function (pageData, dtd) {
- clearInterval(getPoiFn);
- dtd.resolve();
- }
- }
- })
|