| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458 | 
							- var util = require('../../../utils/util.js');
 
- var api = require('../../../config/api.js');
 
- // 引入SDK核心类
 
- var QQMapWX = require('../../../lib/qqmap/qqmap-wx-jssdk.js');
 
- // https://apis.map.qq.com
 
- var app = getApp();
 
- // 实例化API核心类
 
- var qqMap = new QQMapWX({
 
-   key: 'BNVBZ-U7RHQ-UUM5Q-GLW6J-SOKSZ-4GBDL' // 必填
 
- });
 
- Page({
 
-   data: {
 
-     address: {
 
-       id: 0,
 
-       provinceName: '',
 
-       cityName: '',
 
-       countyName: '',
 
-       provinceId: 0,
 
-       cityId: 0,
 
-       countyId: 0,
 
-       detailInfo: '',
 
-       userName: '',
 
-       telNumber: '',
 
-       isDefault: 0
 
-     },
 
-     addressId: 0,
 
-     openSelectRegion: false,
 
-     selectRegionList: [
 
-       { id: 0, name: '省份', parent_id: 1, type: 1 },
 
-       { id: 0, name: '城市', parent_id: 1, type: 2 },
 
-       { id: 0, name: '区县', parent_id: 1, type: 3 }
 
-     ],
 
-     regionType: 1,
 
-     regionList: [],
 
-     selectRegionDone: false
 
-   },
 
-   bindinputTelNumber(event) {
 
-     let address = this.data.address;
 
-     address.telNumber = event.detail.value;
 
-     this.setData({
 
-       address: address
 
-     });
 
-   },
 
-   bindinputDetailInfo(event) {
 
-     let address = this.data.address;
 
-     address.detailInfo = event.detail.value;
 
-     this.setData({
 
-       address: address
 
-     });
 
-   },
 
-   bindinputUserName(event) {
 
-     let address = this.data.address;
 
-     address.userName = event.detail.value;
 
-     this.setData({
 
-       address: address
 
-     });
 
-   },
 
-   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 && null != res.data) {
 
-         that.setData({
 
-           address: res.data
 
-         });
 
-       }
 
-       that.getRegionList(1);
 
-       that.initRegion();
 
-     });
 
-   },
 
-   setRegionDoneStatus() {
 
-     let that = this;
 
-     let doneStatus = that.data.selectRegionList.every(item => {
 
-       return item.id != 0;
 
-     });
 
-     that.setData({
 
-       selectRegionDone: doneStatus
 
-     })
 
-   },
 
-   chooseRegion() {
 
-     let that = this;
 
-     that.setData({
 
-       openSelectRegion: !that.data.openSelectRegion
 
-     });
 
-     console.log(that.data.openSelectRegion);
 
-     //设置区域选择数据
 
-     let address = that.data.address;
 
-     console.log(address);
 
-     if (address.provinceId > 0 && address.cityId > 0 && address.countyId > 0) {
 
-       let selectRegionList = that.data.selectRegionList;
 
-       selectRegionList[0].id = address.provinceId;
 
-       selectRegionList[0].name = address.provinceName;
 
-       selectRegionList[0].parent_id = 1;
 
-       selectRegionList[1].id = address.cityId;
 
-       selectRegionList[1].name = address.cityName;
 
-       selectRegionList[1].parent_id = address.provinceId;
 
-       selectRegionList[2].id = address.countyId;
 
-       selectRegionList[2].name = address.countyName;
 
-       selectRegionList[2].parent_id = address.cityId;
 
-       that.setData({
 
-         selectRegionList: selectRegionList,
 
-         regionType: 3
 
-       });
 
-       that.getRegionList(address.cityId);
 
-     } else {
 
-       that.setData({
 
-         selectRegionList: [
 
-           { id: 0, name: '省份', parent_id: 1, type: 1 },
 
-           { id: 0, name: '城市', parent_id: 1, type: 2 },
 
-           { id: 0, name: '区县', parent_id: 1, type: 3 }
 
-         ],
 
-         regionType: 1
 
-       })
 
-       that.getRegionList(1);
 
-     }
 
-     that.setRegionDoneStatus();
 
-   },
 
-   onLoad: function (options) {
 
-     // 页面初始化 options为页面跳转所带来的参数
 
-     console.log(options)
 
-     if (options.id) {
 
-       this.setData({
 
-         addressId: options.id
 
-       });
 
-       this.getAddressDetail();
 
-     }
 
-     this.getRegionList(1);
 
-     this.initRegion();
 
-   },
 
-   onReady: function () {
 
-   },
 
-   selectRegionType(event) {
 
-     let that = this;
 
-     let regionTypeIndex = event.target.dataset.regionTypeIndex;
 
-     let selectRegionList = that.data.selectRegionList;
 
-     //判断是否可点击
 
-     if (regionTypeIndex + 1 == this.data.regionType || (regionTypeIndex - 1 >= 0 && selectRegionList[regionTypeIndex - 1].id <= 0)) {
 
-       return false;
 
-     }
 
-     this.setData({
 
-       regionType: regionTypeIndex + 1
 
-     })
 
-     let selectRegionItem = selectRegionList[regionTypeIndex];
 
-     this.getRegionList(selectRegionItem.parent_id);
 
-     this.setRegionDoneStatus();
 
-   },
 
-   selectRegion(event) {
 
-     let that = this;
 
-     let regionIndex = event.target.dataset.regionIndex;
 
-     let regionItem = this.data.regionList[regionIndex];
 
-     let regionType = regionItem.type;
 
-     let selectRegionList = this.data.selectRegionList;
 
-     selectRegionList[regionType - 1] = regionItem;
 
-     if (regionType != 3) {
 
-       this.setData({
 
-         selectRegionList: selectRegionList,
 
-         regionType: regionType + 1
 
-       })
 
-       this.getRegionList(regionItem.id);
 
-     } else {
 
-       this.setData({
 
-         selectRegionList: selectRegionList
 
-       })
 
-     }
 
-     //重置下级区域为空
 
-     selectRegionList.map((item, index) => {
 
-       if (index > regionType - 1) {
 
-         item.id = 0;
 
-         item.name = index == 1 ? '城市' : '区县';
 
-         item.parent_id = 0;
 
-       }
 
-       return item;
 
-     });
 
-     this.setData({
 
-       selectRegionList: selectRegionList
 
-     })
 
-     that.setData({
 
-       regionList: that.data.regionList.map(item => {
 
-         //标记已选择的
 
-         if (that.data.regionType == item.type && that.data.selectRegionList[that.data.regionType - 1].id == item.id) {
 
-           item.selected = true;
 
-         } else {
 
-           item.selected = false;
 
-         }
 
-         return item;
 
-       })
 
-     });
 
-     this.setRegionDoneStatus();
 
-   },
 
-   doneSelectRegion() {
 
-     if (this.data.selectRegionDone === false) {
 
-       return false;
 
-     }
 
-     let address = this.data.address;
 
-     let selectRegionList = this.data.selectRegionList;
 
-     address.provinceId = selectRegionList[0].id;
 
-     address.cityId = selectRegionList[1].id;
 
-     address.countyId = selectRegionList[2].id;
 
-     address.provinceName = selectRegionList[0].name;
 
-     address.cityName = selectRegionList[1].name;
 
-     address.countyName = selectRegionList[2].name;
 
-     address.full_region = selectRegionList.map(item => {
 
-       return item.name;
 
-     }).join('');
 
-     this.setData({
 
-       address: address,
 
-       openSelectRegion: false
 
-     });
 
-   },
 
-   cancelSelectRegion() {
 
-     this.setData({
 
-       openSelectRegion: false,
 
-       regionType: this.data.regionDoneStatus ? 3 : 1
 
-     });
 
-   },
 
-   getRegionList(regionId) {
 
-     let that = this;
 
-     let regionType = that.data.regionType;
 
-     util.request(api.RegionList, { parentId: regionId }).then(function (res) {
 
-       if (res.errno === 0) {
 
-         that.setData({
 
-           regionList: res.data.map(item => {
 
-             //标记已选择的
 
-             if (regionType == item.type && that.data.selectRegionList[regionType - 1].id == item.id) {
 
-               item.selected = true;
 
-             } else {
 
-               item.selected = false;
 
-             }
 
-             return item;
 
-           })
 
-         });
 
-       }
 
-     });
 
-   },
 
-   cancelAddress() {
 
-     wx.navigateBack({})
 
-   },
 
-   saveAddress() {
 
-     console.log(this.data.address)
 
-     let address = this.data.address;
 
-     if (address.userName == '') {
 
-       util.showErrorToast('请输入姓名');
 
-       return false;
 
-     }
 
-     if (address.telNumber == '') {
 
-       util.showErrorToast('请输入手机号码');
 
-       return false;
 
-     }
 
-     if (address.countyName == 0) {
 
-       util.showErrorToast('请输入省市区');
 
-       return false;
 
-     }
 
-     if (address.detailInfo == '') {
 
-       util.showErrorToast('请输入详细地址');
 
-       return false;
 
-     }
 
-     if (!(/^1[34578]\d{9}$/.test(address.telNumber)) || address.telNumber.length != 11) {
 
-       util.showErrorToast('手机号有误');
 
-       return false;
 
-     }
 
-     let that = this;
 
-     util.request(api.AddressSave, {
 
-       id: address.id,
 
-       userName: address.userName,
 
-       telNumber: address.telNumber,
 
-       provinceName: address.provinceName,
 
-       cityName: address.cityName,
 
-       countyName: address.countyName,
 
-       detailInfo: address.detailInfo,
 
-       isDefault: address.isDefault,
 
-       latitude: address.latitude,
 
-       longitude: address.longitude,
 
-     }, 'POST').then(function (res) {
 
-       if (res.errno === 0) {
 
-         wx.navigateTo({
 
-           url: '/pages/ucenter/address/address',
 
-         })
 
-       }else{
 
-         util.showErrorToast(res.errmsg);
 
-       }
 
-     });
 
-   },
 
-   onShow: function () {
 
-     // 页面显示
 
-   },
 
-   onHide: function () {
 
-     // 页面隐藏
 
-   },
 
-   onUnload: function () {
 
-     // 页面关闭
 
-   },
 
-   /**
 
-    * 初始化省市区
 
-    */
 
-   initRegion() {
 
-     let that = this;
 
-     if (null == that.data.addressId || that.data.addressId == 0) {
 
-       wx.getLocation({
 
-         success: function (res) {
 
-           console.log(res)
 
-           // 调用接口
 
-           qqMap.reverseGeocoder({
 
-             location: {
 
-               latitude: res.latitude,
 
-               longitude: res.longitude
 
-             },
 
-             success: function (rs) {
 
-               console.log(rs);
 
-               let address = that.data.address;
 
-               let selectRegionList = that.data.selectRegionList;
 
-               selectRegionList[0].id = rs.result.address_component.province;
 
-               selectRegionList[0].name = rs.result.address_component.province;
 
-               selectRegionList[0].parent_id = 1;
 
-               selectRegionList[1].id = rs.result.address_component.city;
 
-               selectRegionList[1].name = rs.result.address_component.city;
 
-               selectRegionList[1].parent_id = rs.result.address_component.province;
 
-               selectRegionList[2].id = rs.result.address_component.district;
 
-               selectRegionList[2].name = rs.result.address_component.district;
 
-               selectRegionList[2].parent_id = rs.result.address_component.city;
 
-               address.provinceName = rs.result.address_component.province;
 
-               address.cityName = rs.result.address_component.city;
 
-               address.countyName = rs.result.address_component.district;
 
-               address.full_region = address.provinceName + address.cityName + address.countyName;
 
-               that.setData({
 
-                 address: address,
 
-                 selectRegionList: selectRegionList
 
-               });
 
-               that.getRegionList(1);
 
-             },
 
-             fail: function (rs) {
 
-               console.log(rs);
 
-             },
 
-             complete: function (rs) {
 
-               console.log(rs);
 
-             }
 
-           });
 
-         }
 
-       })
 
-     } else {
 
-       let address = that.data.address;
 
-       let selectRegionList = that.data.selectRegionList;
 
-       selectRegionList[0].id = address.provinceId;
 
-       selectRegionList[0].name = address.provinceName;
 
-       selectRegionList[0].parent_id = 1;
 
-       selectRegionList[1].id = address.cityId;
 
-       selectRegionList[1].name = address.cityName;
 
-       selectRegionList[1].parent_id = address.provinceId;
 
-       selectRegionList[2].id = address.countyId;
 
-       selectRegionList[2].name = address.countyName;
 
-       selectRegionList[2].parent_id = address.cityId;
 
-       address.full_region = address.provinceName + address.cityName + address.countyName;
 
-       that.setData({
 
-         address: address,
 
-         selectRegionList: selectRegionList
 
-       });
 
-       that.getRegionList(1);
 
-     }
 
-   }, 
 
-   bingAddressTap: function () {
 
-     var that = this;
 
-     wx.chooseLocation({
 
-       success: function (res) {
 
-         console.log("res:" + res);
 
-         let address = that.data.address;
 
-         if(null==res.latitude){
 
-           return;
 
-         }
 
-         // 解析省市区
 
-         var regex = /^(北京市|天津市|重庆市|上海市|香港特别行政区|澳门特别行政区)/;
 
-         let province = [];
 
-         if (!(province = regex.exec(res.address))) {
 
-           regex = /^(.*?(省|自治区))(.*?)$/;
 
-           province = regex.exec(res.address);
 
-           address.provinceName = province[1];
 
-           address = that.regexAddress(province[3], address, res.name);
 
-         } else {
 
-           address.provinceName = province[1];
 
-           address = that.regexAddress(res.address, address, res.name);
 
-         }
 
-         console.log(address);
 
-         address.full_region = address.provinceName + address.cityName + address.countyName;
 
-         address.latitude = res.latitude;
 
-         address.longitude = res.longitude;
 
-         that.setData({
 
-           address: address
 
-         });
 
-       }
 
-     })
 
-   },
 
-   regexAddress: function (address, addressBean, name) {
 
-     var regex = /^(.*?[市州]|.*?地区|.*?特别行政区)(.*?[市区县])(.*?)$/g;
 
-     var addxress = regex.exec(address);
 
-     addressBean.cityName = addxress[1];
 
-     addressBean.countyName = addxress[2];
 
-     addressBean.detailInfo = addxress[3] + "(" + name + ")";
 
-     return addressBean;
 
-   }
 
- })
 
 
  |