define(['$', 'template', 'native', 'config', 'address', 'api', 'user'], function ($, template, native, config, address, api, user) { function back(event) { event.preventDefault(); $(document).trigger('spa:navigate', { hash: 'addressList' }); } var cachePageData = {}; //page内部的数据传递 return { title: '地址详情', body: '', init: function (pageData, dtd) { var $view = this; var $doc = $(document); var pushData = pageData.pushData; //返回 $.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('.select-poi', function (event) { var searchText = $(this).data('poi-name'); var searchProvince = $(this).data('province'); $doc.trigger('spa:navigate', { hash: 'addressPoisiton', pushData: { needReload: true, searchText: '', searchProvince: '', backHash: 'addressAdd' }, callback: { onSelect: function (name, place, address_position, address_detail) { $('.select-poi', $view).text(name); $('.select-poi', $view).data('poi-name', address_detail.poi.name); $('.select-poi', $view).data('province', address_detail.province); cachePageData.address_position = address_position; cachePageData.address_detail = address_detail; } } }); }, $view); //确认地址 $.newTouch('.btn-save', function (event) { event.preventDefault(); var name = $('.address-name', $view).val(), mobile = $('.address-mobile', $view).val(), detail = $('.address-detail', $view).val(); if (name == '') { $doc.trigger('spa:openpanel', ['simpleAlert', { message: '请输入您的名字' }]); return; } if (mobile.length !== 11) { $doc.trigger('spa:openpanel', ['simpleAlert', { message: '请输入正确的手机号' }]); return; } if (detail == '') { $doc.trigger('spa:openpanel', ['simpleAlert', { message: '请输入您的详细地址' }]); return; } if (!cachePageData.address_position || !cachePageData.address_detail) { $doc.trigger('spa:openpanel', ['simpleAlert', { message: '请定位您的小区或者街道' }]); return; } // 更新地址 cachePageData.address_detail.detail = detail; var address_position = JSON.stringify(cachePageData.address_position); var addressStr = JSON.stringify(cachePageData.address_detail); var param = { request_from: 'weixin', name: name, mobile: mobile, user_id: user.id, address_position: address_position, address: addressStr }; address.addAddress(param, function (res) { $doc.trigger('spa:closeloader'); if (res.success) { address.getList({ request_from: 'weixin', user_id: user.id, }, function (resA) { if (resA.success) { $doc.trigger('spa:navigate', { hash: 'addressList', pushData: { needReload: true }, callback: cachePageData.callback }); } }); } else { $doc.trigger('spa:openpanel', ['simpleAlert', { message: res.message }]); } }); /*if (cachePageData.callback && $.isFunction(cachePageData.callback.onSelect)) { cachePageData.callback.onSelect(cachePageData.addressID); }*/ }, $view); dtd.resolve(); }, beforeopen: function (pageData, dtd) { var $view = this; var $doc = $(document); var pushData = pageData.pushData; cachePageData.callback = pageData.callback; cachePageData.needReload = pushData.needReload; if (cachePageData.needReload) { pushData.needReload = false; var tpl = template('address/detail/index', { showNavBar: !config.isWX && !config.isChubao, title: '新增地址', add: true }); $('.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(); } }; })