// pages/user/address/add/index.js import util from "../../../../utils/util.js" import user from "../../../../utils/https/user.js" import common from "../../../../utils/https/common.js" let app = getApp() Page({ /** * 页面的初始数据 */ data: { is_default:true, region: [], customItem: '', formData:{ }, id:null,// 为null的时候是新增,否则是编辑 multiArray: [], multiIndex: [], province: [], areaList:[], safeBottom:app.globalData.safeBottom }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // 如果id存在那么需要获取地址详情 // 获取省市区列表 this.setData({ id:options.id || null }) user._post("user/getAreas").then(res=>{ this.setData({ areaList: res.data }) if(this.data.id){ // 获取当前收货地址详情 user.user_post("user/getContactInfoById",{id:this.data.id}).then(res=>{ res.data.is_default = res.data.is_default=='1'; res.data.mobile = res.data.tel; res.data.username = res.data.name; res.data.address = res.data.detail_addr; res.data.areaId = res.data.district_id; res.data.cityId = res.data.city_id; res.data.provinceId = res.data.province_id; this.setData({ formData:res.data }) this.setArea(res.data.provinceId,res.data.cityId,res.data.areaId); }) } else { this.initArea(); } }) }, // 给省市区赋值 setArea:function(pid,cid,aid){ var province = [], city = [], area = [], areaList = this.data.areaList; province = areaList.filter(item => { return item.pid == 100000; }) city = areaList.filter(item => { return item.pid == pid; }) area = areaList.filter(item => { return item.pid == cid; }) let provinceIndex = province.findIndex((item, index) => item.id == pid) let cityIndex = city.findIndex((item, index) => item.id == cid && item.pid==pid) let areaIndex = area.findIndex((item,index) =>item.id==aid && item.pid==cid) var provinceList = province.map(item => { return item.name }) var cityList = city.map(item => { return item.name; }) var quyuList = area.map(item => { return item.name; }) this.setData({ multiArray: [provinceList, cityList, quyuList], multiIndex: [provinceIndex, cityIndex, areaIndex], province }) }, // 初始化省市区 initArea: function (provinceId){ var province = [], city = [], area = [], areaList = this.data.areaList; province = areaList.filter(item => { return item.pid == 100000; }) city = areaList.filter(item => { return item.pid == province[0].id; }) area = areaList.filter(item => { return item.pid == city[0].id; }) var provinceList = province.map(item => { return item.name }) var cityList = city.map(item => { return item.name; }) var quyuList = area.map(item => { return item.name; }) console.log(province) this.setData({ multiArray: [provinceList, cityList, quyuList], province }) }, // 设为默认 setDefault:function(e){ var formData = this.data.formData; formData.is_default = e.detail.value; this.setData({ formData: formData }) }, // 选择省市区 bindMultiPickerChange: function (e) { // console.log(this.data.multiArray) console.log('picker发送选择改变,携带值为', e.detail.value) this.setData({ multiIndex: e.detail.value }) }, bindMultiPickerColumnChange: function (e) { console.log('修改的列为', e.detail.column, ',值为', e.detail.value); var areaList = this.data.areaList; var data = { multiArray: this.data.multiArray, multiIndex: this.data.multiIndex }; data.multiIndex[e.detail.column] = e.detail.value; const provinceName = data.multiArray[0][data.multiIndex[0]]; let provinceId = ""; let province = this.data.province; let quyuList = [], cityList = [], provinceList = [], city = [], area = []; try { province.forEach(item => { if (item.name === provinceName) { provinceId = item.id; throw (new Error('find item')) } }) } catch (err) { } city = areaList.filter(item => { return item.pid == provinceId; }) if (e.detail.column == 0) { data.multiIndex = [e.detail.value, 0, 0]; try { area = areaList.filter(item => { return item.pid == city[data.multiIndex[1]].id; }) } catch (err) { } } else if (e.detail.column == 1) { data.multiIndex[2] = 0; area = areaList.filter(item => { return item.pid == city[e.detail.value].id; }) } else { const cityName = data.multiArray[1][data.multiIndex[1]]; let cityId = ''; try { areaList.forEach(item => { if (item.name === cityName) { cityId = item.id; throw (new Error('find item')); } }) } catch (err) { } area = areaList.filter(item => { return item.pid == cityId; }) } provinceList = province.map(item => { return item.name }) cityList = city.map(item => { return item.name; }) quyuList = area.map(item => { return item.name; }) data.multiArray = [provinceList, cityList, quyuList], this.setData(data); }, bindRegionChange: function (e) { console.log('picker发送选择改变,携带值为', e.detail.value) this.setData({ region: e.detail.value }) }, // 输入监听 不是双向绑定啊 绝望 nameInput:function(e){ var formData = this.data.formData; formData.username = e.detail.value; this.setData({ formData: formData }) }, telInput:function(e){ var formData = this.data.formData; formData.mobile = e.detail.value; this.setData({ formData: formData }) }, addressInput:function(e){ var formData = this.data.formData; formData.address = e.detail.value; this.setData({ formData: formData }) }, // 保存 save:function(){ // console.log() const areaList = this.data.areaList; let province = this.data.multiArray[0][this.data.multiIndex[0]], city = this.data.multiArray[1][this.data.multiIndex[1]], area = this.data.multiArray[2][this.data.multiIndex[2]]; if(!this.data.formData.username){ wx.showToast({ title: '请输入姓名!', icon:"none" }) return false; } if (!this.data.formData.mobile) { wx.showToast({ title: '请输入手机号码!', icon: "none" }) return false; } if (!util.isTel(this.data.formData.mobile)) { wx.showToast({ title: '请输入正确的手机号码!', icon: "none" }) return false; } if (!province || !city || !area) { wx.showToast({ title: '请选择地区!', icon: "none" }) return false; } if (!this.data.formData.address) { wx.showToast({ title: '请输入详细地址!', icon: "none" }) return false; } var data = this.data.formData; data.province_id = areaList.filter(item => item.name == province)[0].id; data.city_id = areaList.filter(item => item.name == city && item.pid == data.province_id)[0].id; data.district_id = areaList.filter(item => item.name == area && item.pid == data.city_id)[0].id; data.is_default = data.is_default?'1':'0'; data.detail_addr = data.address let service ="addNewConsignee"; if(this.data.id){ data.id = this.data.id; service ="editConsignee"; } let address = province+city+area+" "+data.address let name = data.username let tel = data.mobile user.user_post("user/" + service,data).then(res=>{ if(res.data){ wx.showToast({ title: '保存成功', icon:'success' }) wx.setStorageSync('linkMan',{ ...data,address:address,name:name,tel:tel // ...data,address:data.seldAdd+data.address }) util.back() } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { } })