define(['$', 'template', 'native', 'config', 'address', 'user', 'api', 'order'], function ($, template, native, config, address, user, api, order) { /* 返回上一级 */ function back(event, backHash) { event.preventDefault(); $(document).trigger('spa:navigate', { hash: backHash }); } var hash; var cachePageData = {}; //page内部的数据传递 return { title: '壹管家上门服务', body: '', init: function (pageData, dtd) { var $view = this; var $doc = $(document); /* 三个返回操作 */ $.newTouch('.back-button', function (event) { back.call(this, event, hash); }, $view); $view.on('tapBackButton', function (event) { back.call(this, event, hash); }); $view.on('swipeRight', function (event) { back.call(this, event, hash); }); /* 点击一条地址 */ $.newTouch('.address-item', function (event) { var addressID = $(this).data('id'), addressIndex = $(this).data('index'); /* 检查用户的地址是否在服务站内 */ api.checkAddress({ address_id: addressID, user_id: user.id }, function (res) { if (res.success) { /* 如果在,应该返回placeOrder页面,把数据更新的回调写在placeOrder */ $view.trigger('tapBackButton'); if (pageData.callback && $.isFunction(pageData.callback.onSelect)) { pageData.callback.onSelect(address.list[addressIndex], res.data.station); } } else { /* 如果不在,弹出一个对话框。 */ $doc.trigger('spa:openpanel', ['simpleAlert', { message: res.message }]); } }); }, $view); // 新增地址 $.newTouch('.btn-add', function (event) { $doc.trigger('spa:navigate', { hash: 'addressAdd', pushData: { needReload: true }, callback: cachePageData.callback }); }, $view); // 修改地址 $.newTouch('.btn-edit', function (event) { var $addressItem = $(this), addressID = $(this).data('id'), addressIndex = $(this).data('index'); $doc.trigger('spa:navigate', { hash: 'addressDetail', pushData: { addressIndex: addressIndex, addressID: addressID, needReload: true }, callback: { onSelect: function (addressID) { } } }); }, $view); dtd.resolve(); }, beforeopen: function (pageData, dtd) { var $view = this; var $doc = $(document); var pushData = pageData.pushData; hash = pushData.backHash; if (hash !== 'mine') { hash = 'placeOrder'; } cachePageData.needReload = pushData.hasOwnProperty('needReload') ? pushData.needReload : false; // if (cachePageData.needReload) { cachePageData.callback = pageData.callback; address.getList({ request_from: 'weixin', user_id: user.id }, function (res) { if (res.success) { var tpl = template('address/list/index', { showNavBar: !config.isWX && !config.isChubao, addText: '添加地址', addresses: address.list }); $('.spa-page-body', $view).html(tpl); if (cachePageData.scroll) { cachePageData.scroll.destroy(); cachePageData.scroll = null; } setTimeout(function () { cachePageData.scroll = new IScroll('#addressListScroll'); }, 10); } ; }); // } dtd.resolve(); }, afteropen: function (pageData, dtd) { dtd.resolve(); } }; })