123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- define(['$', 'template', 'user', 'config', 'native', 'IScroll'], function ($, template, user, config, native, IScroll) {
- function back(event) {
- event.preventDefault();
- $(document).trigger('spa:navigate', {
- hash: '',
- pushData: {
- dontNeedReload: true
- }
- });
- }
- function reloadData(pageData, type, more) {
- var $view = this;
- var $doc = $(document);
- $doc.trigger('spa:openloader');
- user.getOrderList(user.id, type, function (res) {
- $doc.trigger('spa:closeloader');
- if (res.success) {
- var time = new Date().getTime();
- var tpl = template('myOrder/list', {
- orders: user.orders[type].data,
- hasMore: user.orders[type].hasMore,
- type: type,
- time: parseInt(time / 1000),
- chubao: config.isChubao
- });
- $('.more-container', $view).find('.btn-more-orders').attr('data-type', type);
- if (res.current_page >= res.sum_page) {
- $('.more-container', $view).addClass('hide');
- } else {
- $('.more-container', $view).removeClass('hide');
- }
- // if (more) {
- // $('.list-content', $view).append(tpl);
- // } else {
- // $('.list-content', $view).html(tpl);
- // }
- $('.list-content', $view).html(tpl);
- setTimeout(function() {
- pageData.scroll = new IScroll('#myOrderScroll');
- }, 50);
- // if (pageData.scroll) {
- // pageData.scroll.refresh();
- // }
- } else {
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: res.message
- }]);
- }
- }, more)
- }
- var t = 0;
- return {
- title: '壹管家上门服务',
- body: '',
- init: function (pageData, dtd) {
- var $view = this;
- var $doc = $(document);
- //返回
- $view.on('swipeRight', function (event) {
- back.call(this, event);
- });
- $.newTouch('.back-button', function (event) {
- back.call(this, event);
- }, $view);
- $view.on('tapBackButton', function(event) {
- back.call(this, event);
- });
- // tab切换
- $.newTouch('.order-type-control .control-item', function(event) {
- var orderType = $(this).data('order-type');
- var i = $(this).index();
- t = parseFloat(i) + 1;
- reloadData.call($view, pageData, orderType);
- }, $view);
- // 详情 OrderDetail
- $.newTouch('.btn-order-detail', function(event) {
- var id = $(this).attr('data-order-id');
- var i = $(this).parents('.table-view').index();
- $doc.trigger('spa:navigate', {
- hash: 'OrderDetail/' + id,
- pushData: {
- index: i
- }
- });
- }, $view);
- // 更多
- $.newTouch('.btn-more-orders', function (event) {
- var orderType = $(this).attr('data-type');
- reloadData.call($view, pageData, orderType, true);
- }, $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() {
- obj.addClass('disable').text('已评价');
- }
- }]);
- }, $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) {
- $('.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: i
- }
- });
- }, $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 $doc = $(document);
- var tpl = template('myOrder/index', {
- showNavBar: !config.isWX && !config.isChubao,
- type: t == 0 ? pageData.requestData[0]: t
- });
- $('.spa-page-body', $view).html(tpl);
- if (pageData.scroll) {
- pageData.scroll.destroy();
- pageData.scroll = null;
- }
- var orderType = t == 0 ? pageData.requestData[0]: t;
- // var orderType = parseFloat(pageData.requestData[0]) || 1;
- var orderArray = [1, 3, 2];
- reloadData.call(this, pageData, orderArray[orderType - 1]);
- dtd.resolve();
- },
- afteropen: function (pageData, dtd) {
- var $view = this;
- dtd.resolve();
- if (config.isWX) {
- wx.ready(function(){
- wx.onMenuShareTimeline({
- title: '宠物上门服务,首选壹管家APP',
- link: 'http://www.wozhua.mobi/o2o/web/index',
- imgUrl: 'http://wozhua-others.qiniudn.com/icon-o2o-home.jpg'
- });
- wx.onMenuShareAppMessage({
- title: '宠物上门服务,首选壹管家APP',
- desc: '足不出户,就能享受专业保洁师为您家爱宠提供的贴心服务!',
- link: 'http://www.wozhua.mobi/o2o/web/index',
- imgUrl: 'http://wozhua-others.qiniudn.com/icon-o2o-home.jpg'
- });
- });
- }
- },
- afterclose: function(pageData, dtd) {
- t = 0;
- }
- }
- })
|