define(['$', 'template', 'product', 'order', 'cart', 'native', 'helper', 'user', 'api', 'config', 'address', 'IScroll'], function ($, template, product, order, cart ,native, helper, user, api, config, address, IScroll) { function back(event) { event.preventDefault(); $(document).trigger('spa:navigate', { hash: 'myOrder/1', pushData: { dontNeedReload: true } }); } var cachePageData = { extraCost: 0 }; //page内部的数据传递 return { title: '壹管家上门服务', body: '', init: function (pageData, dtd) { 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); }); // 选择附加服务 $.newTouch('.item-checkbox', function (event) { event.preventDefault(); var select = $(this).data('select'), id = $(this).data('id'), index = $(this).parent().index(), price = $(this).data('price'); if (!$(this).hasClass('checked')) { $(this).addClass('checked'); cachePageData.extraCost += parseFloat(price); } else { $(this).removeClass('checked'); cachePageData.extraCost -= parseFloat(price); } $('.order-cost', $view).html('¥' + cachePageData.extraCost); }, $view); // 提交订单 $.newTouch('.btn-place', function (event) { event.preventDefault(); if (!$('.extra-service-list', $view).find('a').hasClass('checked')) { $doc.trigger('spa:openpanel', ['simpleAlert', { message: '您还没有选择服务' }]); return; } $doc.trigger('spa:openloader'); var extraSeivce = []; $('.extra-service-list', $view).find('a').each(function(index, el) { if ($(el).hasClass('checked')) { var id = $(el).attr('data-id'); var param = { product_id: id, count: 1 } extraSeivce.push(param); } }); order.appendOrder( cachePageData.orderID, user.id, JSON.stringify(extraSeivce) , function(res){ $doc.trigger('spa:closeloader'); if (res.success) { user.appendOrder = res.data; $doc.trigger('spa:navigate', { hash: 'append-pay', pushData: { appendID: res.data.id, orderID: cachePageData.orderID } }); } }) }, $view); dtd.resolve(); }, beforeopen: function (pageData, dtd) { var $view = this; var $doc = $(document); var pushData = pageData.pushData; var appendType = pushData.appendType; var orderID = pushData.orderID; var petName = pushData.petName; var index = pushData["index"]; cachePageData.appendType = appendType; cachePageData.orderID = orderID; cachePageData.petName = petName; cachePageData.extraCost = 0; var temp = []; var temparray = []; var appendOrder = user.orders[1].data[index].append_orders; // 追加订单的服务 var order = user.orders[1].data[index].products; // 下单时的服务 if (order.length) { order.forEach(function(el, index) { if (el.is_extra) { temp[el.id] = true; } }); } if (appendOrder.length) { appendOrder.forEach(function(el, index) { el['products'].forEach(function(e, i) { temp[e.id] = true; }) }); } var extraService = product.getExtraServiceList(appendType, petName); extraService.forEach(function(e, i) { if (!temp[e.id]) { temparray.push(e); } }); var extraService = product.getExtraServiceList(appendType, petName); // 设置订单优惠券 var tmpData = { extraService: temparray, showNavBar: !config.isWX && !config.isChubao }; var tpl = template('placeOrder/append', tmpData); $view.find('.spa-page-body').html(tpl); dtd.resolve(); }, afteropen: function(pageData, dtd){ native.registerEvent(true); dtd.resolve(); }, afterclose: function(pageData){ native.registerEvent(false); } } })