123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- 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('.btn-delete', function() {
- var addressID = $(this).data('id');
- address.deleteAddress(user.id, addressID, function(res){
- if (res.success) {
- address.getList({
- request_from: 'weixin',
- user_id: user.id
- }, function(res) {
- if (res.success) {
- $doc.trigger('spa:navigate', {
- hash: 'addressList',
- pushData: {
- needReload: true
- }
- });
- };
- })
- } else {
- $doc.trigger('spa:openpanel', ['simpleAlert', {
- message: res.message
- }]);
- }
- });
- }, $view);
- // 定位
- $.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: searchText,
- searchProvince: searchProvince,
- backHash: 'addressDetail'
- },
- 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 addressInfo = address['list'][cachePageData.addressIndex];
- 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_detail) {
- cachePageData.address_detail.detail = detail;
- addressStr = JSON.stringify(cachePageData.address_detail);
- address_position = JSON.stringify(cachePageData.address_position);
- } else {
- var addressDetailTmp = addressInfo.address;
- addressDetailTmp.detail = detail;
- var addressStr = JSON.stringify(addressDetailTmp);
- var address_position = addressInfo.position;
- address_position = JSON.stringify(address_position);
- }
- var param = {
- request_from: 'weixin',
- name: name,
- mobile: mobile,
- user_id: user.id,
- address_position: address_position,
- address: addressStr,
- address_id: cachePageData.addressID
- };
- address.editAddress( param, function(res) {
- $doc.trigger('spa:closeloader');
- if (res.success) {
- $doc.trigger('spa:navigate', {
- hash: 'addressList',
- pushData: {
- needReload: true
- }
- });
- } 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.needReload = pushData.needReload;
- if (cachePageData.needReload) {
- pushData.needReload = false;
- cachePageData.addressID = pushData.addressID;
- cachePageData.addressIndex = pushData.addressIndex;
- var addressIndex = pushData.addressIndex;
- var addressData = address.list[addressIndex];
- cachePageData.callback = pageData.callback;
- var tpl = template('address/detail/index', {
- showNavBar: !config.isWX && !config.isChubao,
- title: '修改地址',
- address: addressData,
- add: false
- });
- $('.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();
- }
- };
- })
|