// packageH/newDraw/components/yz_addressList/yz_addressList.js const app = getApp(); Component({ addGlobalClass: true, /** * 组件的属性列表 */ properties: { show: { value: false, type: Boolean }, dispatch: { value: '', type: Number }, need_lat :{ value: '', type: Number }, status: { value: '', type: Number }, polygons: { value: [], type: Array } }, /** * 组件的初始数据 */ data: { addressData: [], form: {}, create: true, popAddAddress: false, addressName: {}, districtVal: '', strShow: false, provinceData: [], pickerValue: [0, 0, 0], delivery_status: 0, selected: '', is_point: "", mapshow: false, tapEditOrAdd: 1 }, pageLifetimes: { show: function () { // this.getAddress(); //加载地址数据初始化 this._initAddressInfo(); }, }, observers: { 'show':function(acs){ let that = this; if(acs == true){ that.getAddress(); } }, 'dispatch': function (patch) { this.setData({ delivery_status: patch }); }, 'status': function (num) { this.setData({ selected: num }); } }, /** * 组件的方法列表 */ methods: { //获取收货地址 getAddress() { this.addressData = []; let that = this; let urlStr = app.getNetAddresss("member.member-address.index"); app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { let defaultAddress = res.data; defaultAddress = res.data.filter(function (item) { return item.isdefault === 1; }); that.setData({ popupSpecs: true, addressData: res.data, defaultAddress: defaultAddress }); } else { wx.showToast({ icon: 'none', title: res.msg, duration: 1500 }); } }, fail: function (res) { console.log(res); } }); }, showLocation() { this.setData({ mapshow: true }); }, goLocation_ro() { app.getGeocoder(this.data.addressName+this.data.form.address).then(res=>{ this.setData({ is_point: res, }); },err=> { this.showLocation(); }).catch((err)=> { this.showLocation(); }); }, selectAddress(e) { let item = e.currentTarget.dataset.addr; this.triggerEvent('confirm', item); }, confirmSelect(e) { if (e.detail == 'noshow') { this.setData({ mapshow: false }); } else { let loc = e.detail; this.setData({ is_point: loc, mapshow: false }); } }, editAddress(e) { let item = e.currentTarget.dataset.item; this.setData({ "form.address_id": item.id, "form.username": item.username, "form.mobile": item.mobile, "form.province": item.province, "form.city": item.city, "form.district": item.district, "form.address": item.address, "form.street": item.street, "form.isDefault": item.isdefault === 0 ? false : true, 'is_point.lng': item.longitude, 'is_point.lat': item.latitude, tapEditOrAdd: 1 }); // this.triggerEvent('confirm', this.data.for); this.setData({ create: false, popAddAddress: true, }); this._getStreet(item.district_id); this.setData({ addressName: this.data.form.province + " " + this.data.form.city + " " + this.data.form.district }); }, //关闭增加地址 popAddressClose() { this.setData({ popAddAddress: false }); }, //收件人输入绑定 usernameinp: function (e) { let nameval = e.detail.value; this.setData({ "form.username": nameval }); }, //联系电话输入绑定 mobileinp: function (e) { let mobileval = e.detail.value; this.setData({ "form.mobile": mobileval }); }, //默认地址开关值绑定 isDefaultChange: function (e) { let isDefault = e.detail; this.setData({ "form.isDefault": isDefault }); }, //详细地址绑定输入 addressinp: function (e) { let addressval = e.detail.value; this.setData({ "form.address": addressval }); }, // 关闭选择收货地址 _closeDateLw: function () { this.setData({ openDateLw: false }); }, //地址选择器数据初始化 _initAddressInfo: function () { var that = this; var _keyName = 'provinceData'; wx.getStorage({ key: _keyName, success: function (res) { console.log("地址信息准备就绪"); that._getProvinceData(); }, fail: function (res) { console.log("省fail"); app._getNetWork({ url: app.getNetAddresss("member.member-address.address"), success: function (res) { var response = res.data; var province = response.data.province; var city = response.data.city; var district = response.data.district; wx.setStorage({ key: 'provinceData', data: province }); wx.setStorage({ key: 'cityData', data: city }); wx.setStorage({ key: 'districtData', data: district }); that._initAddressInfo(); }, fail: function (res) {}, state: true }); } }); }, // 读取省key _getProvinceData: function () { var that = this; var _keyName = 'provinceData'; wx.getStorage({ key: _keyName, success: function (res) { // console.log("省读取成功", res.data); that.setData({ provinceData: res.data }); that.setData({ "selectAddressData[0].name": res.data[that.data.pickerValue[0]].areaname, "selectAddressData[0].id": res.data[that.data.pickerValue[0]].id, "selectAddressData[0].index": that.data.pickerValue[0] }); that._getCityData(); } }); }, // 读取城市key,筛选城市data _getCityData: function () { var _data = this.data.selectAddressData[0]; // console.log("城市", "_data", _data); var that = this; var _keyName = 'cityData'; wx.getStorage({ key: _keyName, success: function (res) { // console.log("城市读取成功", res); var _json = []; for (var i = 0; i < res.data.length; i++) { if (res.data[i].parentid == _data.id) { _json.push(res.data[i]); } } // console.log("城市数据筛选", _json); that.setData({ cityData: _json }); that.setData({ "selectAddressData[1].name": _json[that.data.pickerValue[1]].areaname, "selectAddressData[1].id": _json[that.data.pickerValue[1]].id, "selectAddressData[1].index": that.data.pickerValue[1] }); that._getDistrictData(); } }); }, // 读取地区key,筛选地区data _getDistrictData: function () { var _data = this.data.selectAddressData[1]; // console.log("地区", "_data", _data) var that = this; var _keyName = 'districtData'; wx.getStorage({ key: _keyName, success: function (res) { console.log("地区读取成功"); var _json = []; for (var i = 0; i < res.data.length; i++) { if (res.data[i].parentid == _data.id) { _json.push(res.data[i]); } } // console.log("地区数据筛选", _json); that.setData({ districtData: _json }); // console.log("districtData", _json); that.setData({ "selectAddressData[2].name": _json[that.data.pickerValue[2]].areaname, "selectAddressData[2].id": _json[that.data.pickerValue[2]].id, "selectAddressData[2].index": that.data.pickerValue[2] }); // console.log("over", that.data.selectAddressData); } }); }, //打开地址选择器 openDateLwtbtn: function () { this.setData({ openDateLw: true }); }, // 收货地址滚动事件 bindChange: function (e) { var val = e.detail.value; if (this.data.pickerValue[0] != val[0]) { val[1] = 0; val[2] = 0; } if (this.data.pickerValue[1] != val[1]) { val[2] = 0; } this.setData({ "pickerValue[0]": val[0], "pickerValue[1]": val[1], "pickerValue[2]": val[2] }); this._initAddressInfo(); }, // 确定选择收货地址 _okAddress: function () { let seleData = this.data.selectAddressData; this.setData({ "form.street": "", "districtVal": "", "addressName": seleData[0].name + ' ' + seleData[1].name + ' ' + seleData[2].name, "form.province": seleData[0].name, "form.city": seleData[1].name, "form.district": seleData[2].name }); this._getStreet(seleData[2].id); this._closeDateLw(); }, //获取街道 _getStreet(param) { let that = this; let urlStr = app.getNetAddresss("member.memberAddress.street"); urlStr += "&district_id=" + param; app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1 && !app._isTextEmpty(res.data)) { if (!app._isTextEmpty(res.data) && res.data.length > 0) { that.setData({ districtVal: res.data, strShow: true }); } else { that.setData({ strShow: false }); } } else { that.setData({ strShow: false }); } }, fail: function (res) { that.setData({ strShow: false }); console.log(res); } }); }, streetChoose() { if (this.data.is_region == 1 && app._isTextEmpty(this.data.addressName)) { wx.showToast({ icon: 'none', title: '请先选择所在地区', duration: 1500 }); } else { this.setData({ streetShow: true, opren: false }); } }, //关闭选择街道弹窗 streetClose: function () { this.setData({ streetShow: false, opren: true }); }, //选择街道 streetConfirm(e) { let strname = e.target.dataset.strname; this.setData({ "form.street": strname, "streetShow": false, opren: true }); }, //增加地址 appendAddress(e) { let that = this; let apptype = e.currentTarget.dataset.apptype; if (app._isTextEmpty(this.data.form.username)) { wx.showToast({ icon: 'none', title: "请输入收货人姓名", duration: 1500 }); return; } if (app._isTextEmpty(this.data.form.mobile)) { wx.showToast({ icon: 'none', title: "请输入联系电话", duration: 1500 }); return; } if (!/^[0-9]{1,}$/.test(this.data.form.mobile)) { wx.showToast({ icon: 'none', title: "请输入联系电话", duration: 1500 }); return; } if (this.data.is_region == 1 && app._isTextEmpty(this.data.addressName)) { wx.showToast({ icon: 'none', title: "请选择所在区域", duration: 1500 }); return; } if (this.data.is_region == 1 && this.data.strShow && app._isTextEmpty(this.data.form.street)) { wx.showToast({ icon: 'none', title: "请选择所在街道", duration: 1500 }); return; } if (app._isTextEmpty(this.data.form.address)) { wx.showToast({ icon: 'none', title: "请输入详细地址", duration: 1500 }); return; } let json = {}; json = { username: this.data.form.username, mobile: this.data.form.mobile, province: this.data.form.province, city: this.data.form.city, district: this.data.form.district, address: this.data.form.address, isdefault: this.data.form.isDefault ? 1 : 0, address_id: this.data.form.address_id }; if (this.data.is_point) { json.longitude = this.data.is_point.lng; json.latitude = this.data.is_point.lat; } if (this.data.strShow) { json.street = this.data.form.street; } let urlStr = ''; if (apptype === 'update') { urlStr = app.getNetAddresss('member.member-address.update'); } else { urlStr = app.getNetAddresss('member.member-address.store'); } app._postNetWork({ url: urlStr, showToastIn: false, data: json, success: function (resdata) { var res = resdata.data; if (res.result == 1) { wx.showToast({ icon: 'none', title: res.msg, duration: 1500 }); that.triggerEvent('confirm', res.data); that.popAddressClose(); that.setData({ "form.username": '', "form.mobile": '', "form.province": '', "form.city": '', "form.district": '', "form.street": '', "form.address": '', "form.isDefault": false, addressName: '', }); } else { wx.showToast({ icon: 'none', title: res.msg, duration: 1500 }); } }, fail: function (res) { } }); }, onCloseAdd() { this.setData({ show: false }); }, //跳转到新增地址 addAddress() { this.setData({ is_point: '', tapEditOrAdd: 2 }); this.getIsOpenAddress(); //新增地址 本地处理 this.showAddAddress(); }, getIsOpenAddress() { var that = this; let urlStr = app.getNetAddresss("member.member-address.is-region"); app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1 && !app._isTextEmpty(res.data)) { that.setData({ is_region: res.data.is_region }); } else { console.log(res.msg); } }, fail: function (res) { console.log(res); } }); }, //显示增加地址 showAddAddress() { this.setData({ "form.username": '', "form.mobile": '', "form.province": '', "form.city": '', "form.district": '', "form.street": '', "form.address": '', "form.isDefault": false, addressName: '', popAddAddress: true, create: true }); }, } });