var util = require('../../../utils/util.js'); var api = require('../../../config/api.js'); var check = require('../../../utils/check.js'); var area = require('../../../utils/area.js'); const chooseLocation = requirePlugin('chooseLocation'); var app = getApp(); Page({ data: { address: { id: 0, areaCode: 0, address: '', name: '', tel: '', isDefault: 0, province: '', city: '', county: '', lat: '', lng: '', addressDetail: '', detail: '', addressName: '' }, addressId: 0, openSelectRegion: false, selectRegionList: [{ code: 0, name: '省份' }, { code: 0, name: '城市' }, { code: 0, name: '区县' } ], regionType: 1, regionList: [], selectRegionDone: false }, bindinputMobile(event) { let address = this.data.address; address.tel = event.detail.value; this.setData({ address: address }); }, bindinputName(event) { let address = this.data.address; address.name = event.detail.value; this.setData({ address: address }); }, bindinputAddress(event) { let address = this.data.address; address.detail = event.detail.value.replace(/[,,]/g, ''); this.setData({ address: address }); // return value.replace(/[,,]/g,''); }, bindIsDefault() { let address = this.data.address; address.isDefault = !address.isDefault; this.setData({ address: address }); }, getAddressDetail() { let that = this; util.request(api.AddressDetail, { id: that.data.addressId }).then(function (res) { if (res.errno === 0) { if (res.data) { that.setData({ address: res.data }); let addressDetailList = res.data.addressDetail.split(','); let address = that.data.address; address.address = addressDetailList[0]; address.detail = (addressDetailList.length > 1 ? addressDetailList[1] : ''); that.setData({ address: address }); } } }); }, setRegionDoneStatus() { let that = this; let doneStatus = that.data.selectRegionList.every(item => { return item.code != 0; }); that.setData({ selectRegionDone: doneStatus }) }, onLoad: function (options) { // 页面初始化 options为页面跳转所带来的参数 //console.log(options) if (options.id && options.id != 0) { this.setData({ addressId: options.id }); this.getAddressDetail(); } //初始化area //area.init(); }, cancelAddress() { wx.navigateBack(); }, saveAddress() { console.log(this.data.address) let address = this.data.address; if (address.name == '') { util.showErrorToast('请输入姓名'); return false; } if (address.tel == '') { util.showErrorToast('请输入手机号码'); return false; } if (address.areaCode == 0) { util.showErrorToast('请输入省市区'); return false; } if (address.address == '') { util.showErrorToast('请选择地址'); return false; } if (!check.isValidPhone(address.tel)) { util.showErrorToast('手机号不正确'); return false; } let that = this; let addressString = (address.detail == '' ? address.address : address.address + ',' + address.detail); util.request(api.AddressSave, { shopId: app.globalData.shopId ? app.globalData.shopId : '', id: address.id, name: address.name, tel: address.tel, province: address.province, city: address.city, county: address.county, areaCode: address.areaCode, addressDetail: addressString, addressName: address.addressName, isDefault: address.isDefault, lat: Number(address.lat).toFixed(5), lng: Number(address.lng).toFixed(5), }, 'POST').then(function (res) { if (res.errno === 0) { //返回之前,先取出上一页对象,并设置addressId var pages = getCurrentPages(); var prevPage = pages[pages.length - 2]; console.log(prevPage); if (prevPage.route == "pages/index/index") { var city = address.city.indexOf("市") < 0 ? address.province : address.city; var addresInfo = { city: city, lng: res.data.lng, lat: res.data.lat, shopId: res.data.shopId, address: res.data.addressDetail } wx.setStorageSync('addressInfo', address); } else if (prevPage.route == "pages/ucenter/serviceDetail/serviceDetail") { wx.setStorageSync('addressInfo', addresInfo); } else if (prevPage.route == "pages/checkout/checkout") { prevPage.setData({ addressId: res.data.id }) try { wx.setStorageSync('addressId', res.data); } catch (e) { } console.log("set address"); } wx.navigateBack(); } else { wx.showModal({ title: '提醒', showCancel: false, content: res.errmsg }) } }); }, deleteAddress(event) { console.log(event.target) let that = this; wx.showModal({ title: '', content: '确定要删除地址?', success: function (res) { if (res.confirm) { let addressId = event.target.dataset.addressId; util.request(api.AddressDelete, { id: addressId }, 'POST').then(function (res) { if (res.errno === 0) { wx.navigateBack({ delta: 1, success: function () {} }) // that.getAddressList(); // wx.removeStorage({ // key: 'addressId', // success: function(res) {}, // }) } }); console.log('用户点击确定') } } }) return false; }, goMap() { // const key = "JA2BZ-XGOEU-UNZVD-46G64-S6MYJ-6BBF4"; //使用在腾讯位置服务申请的key const key = '6TRBZ-XXC6F-BWWJB-N75ME-BQNOF-YKFQY'; const referer = '鲸致生活LifePlus'; //调用插件的app的名称 const category = '小区,生活服务,娱乐休闲'; if (this.data.address.lat) { const location = JSON.stringify({ latitude: Number(this.data.address.lat), longitude: Number(this.data.address.lng) }); wx.navigateTo({ url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer + '&category=' + category + '&location=' + location }); } else wx.navigateTo({ url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer + '&category=' + category }); }, onShow: function () { // 页面显示 const location = chooseLocation.getLocation(); console.log(location); if (location != null) { let address = this.data.address; address.province = location.province ? location.province : location.city; address.city = location.city; address.county = location.district; address.addressName = location.name; address.address = location.address; address.lat = location.latitude; address.lng = location.longitude; this.setData({ address: address, }); this.getAreaCode() } }, getAreaCode() { let param = { key: '6TRBZ-XXC6F-BWWJB-N75ME-BQNOF-YKFQY', location: this.data.address.lat + ',' + this.data.address.lng, } wx.request({ url: 'https://apis.map.qq.com/ws/geocoder/v1/?location=', data: param, method: 'GET', header: { 'Content-Type': 'application/json', 'X-JZ-Token': wx.getStorageSync('token') }, success: res => { console.log(res); if (res.statusCode == 200) { if (res.data.status == 0) { let ad_info = res.data.result.ad_info; let areaCode = res.data.result.ad_info.adcode; this.setData({ ['address.areaCode']: areaCode, ['address.province']: ad_info.province, ['address.city']: ad_info.city, ['address.county']: ad_info.district, }); } else { wx.showToast({ title: '获取地区码失败', icon: 'none', duration: 3000 }); } } else { wx.showToast({ title: '获取地区码失败', icon: 'none', duration: 3000 }); } }, fail: function (err) { reject(err) } }); }, onHide: function () { // 页面隐藏 }, onUnload: function () { // 页面关闭 chooseLocation.setLocation(null); } })