// pages/user/address/add/add.js var app = getApp(); import { add } from 'lodash'; import { address } from './../../../../utils/address.js'; Page({ /** * 页面的初始数据 */ data: { addressList: address, addressRange: [], addressValue: [], name: "", addrText: "", renderText: "", index0: 0, loading: true, addrId: null, addr: { } }, /** * 生命周期函数--监听页面加载 */ async onLoad(options) { this.setData({ addrId: options.addrId || null, loading: false }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ async onShow() { let index0 = 0; let index1 = 0; if (this.data.addrId) { let addr = await app.ajax.get({ url: `/admin/bxdClientAddress/${this.data.addrId}`, }) this.setData({ addr: addr.data.data, loading: false }) } let addr = this.data.addr; if (addr && addr.addrId) { try { let province = this.data.addressList.findIndex(v => v.name === addr.province); let city = this.data.addressList[province].city.findIndex(v => v.name === addr.city); let area = this.data.addressList[province].city[city].area.findIndex(v => v === addr.area); index0 = province; index1 = city; this.setData({ addrText: [addr.province, addr.city, addr.area], addressValue: [province, city, area] }) } catch (e) { //console.log(e); } } let addressRange = [ [...this.data.addressList.map(v => v.name)], [...this.data.addressList[index0].city.map(v => v.name)], [...this.data.addressList[index0].city[index1].area], ] this.setData({ addressRange }) }, async submit(e) { let addr = e.detail.value; if (addr.receiver == "") { wx.showToast({ title: '收货人不可为空', icon: "error" }); return; } if (addr.mobile == "") { wx.showToast({ title: '手机号不可为空', icon: "error" }); return; } if (!app.isMobile(addr.mobile)) { wx.showToast({ title: '手机号格式有误', icon: "error" }) return; } if (addr.tel != "" && !app.isPhone(addr.tel)) { wx.showToast({ title: '座机格式有误', icon: "error" }); return; } if (this.data.addressValue.length != 3 || this.data.addrText.length == 0) { wx.showToast({ title: '请选择所在区域', icon: "error" }); return; } if (addr.addr == "") { wx.showToast({ title: '请输入详细地址', icon: "error" }); return; } let data = { ...addr, province: this.data.addrText[0], city: this.data.addrText[1], area: this.data.addrText[2], addrId: this.data.addrId } await app.ajax.post({ url: "/admin/bxdClientAddress", method: this.data.addrId ? "PUT" : "POST", data: data }) setTimeout(() => { wx.showToast({ title: this.data.addrId ? '更新成功' : '新增成功', mask: true }); }, 200); setTimeout(() => { wx.navigateBack({ delta: 1 }) }, 1200); }, bindchange(e) { let selectAddr = this.data.addressList[e.detail.value[0]]; this.setData({ addressValue: e.detail.value, addrText: [selectAddr.name, selectAddr.city[e.detail.value[1]].name, selectAddr.city[e.detail.value[1]].area[e.detail.value[2]]] }) }, bindcolumnchange(e) { let column = e.detail.column; let value = e.detail.value; let index0 = this.data.index0; //console.log(e) let addressRange = []; if (column == 0) { addressRange = [ [...this.data.addressList.map(v => v.name)], [...this.data.addressList[value].city.map(v => v.name)], [...this.data.addressList[value].city[0].area], ]; this.setData({ index0: value }) } else if (column == 1) { addressRange = [ [...this.data.addressList.map(v => v.name)], [...this.data.addressList[index0].city.map(v => v.name)], [...this.data.addressList[index0].city[value].area], ] } else { return; } this.setData({ addressRange }) }, async renderTextInput(e) { if (!e.detail.value.renderText) { let text = await wx.getClipboardData(); this.setData({ renderText: text.data }); } else { this.setData({ renderText: e.detail.value.renderText }); } await this.renderAddr() }, async renderAddr() { let { data } = await app.ajax.gets(`/admin/bxdClientAddress/addressParse?address=${this.data.renderText}`); this.setData({ 'addr.mobile': data.data.mobile || '', 'addr.receiver': data.data.name || '', 'addr.addr': data.data.detail || '', addrText: [data.data.province, data.data.city, data.data.area] }); let province = this.data.addressList.findIndex(v => v.name === data.data.province); let city = this.data.addressList[province].city.findIndex(v => v.name === data.data.city); let area = this.data.addressList[province].city[city].area.findIndex(v => v === data.data.area); this.setData({ addressValue: [province, city, area], }) let addressRange = [ [...this.data.addressList.map(v => v.name)], [...this.data.addressList[province].city.map(v => v.name)], [...this.data.addressList[province].city[city].area], ] this.setData({ addressRange }) }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })