| | |
| | | |
| | | import { |
| | | getArea |
| | | } from '../../api/index' |
| | |
| | | // observer监听value的变化,如果有值则调用setLabel方法设置选择器的label |
| | | observer(selectedValues) { |
| | | if (selectedValues && selectedValues.length) { |
| | | this.resetValus(selectedValues) |
| | | console.log("--------------------",this.data.value) |
| | | this.setLabel(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | data: { |
| | | // label为选择器的显示值 |
| | |
| | | }, |
| | | // attached生命周期函数,在组件实例进入页面节点树时执行 |
| | | attached() { |
| | | this.initData() |
| | | |
| | | this.initData() |
| | | }, |
| | | |
| | | methods: { |
| | | // wx.setStorageSync('addressList', tl) |
| | | initData(){ |
| | | let list = wx.getStorageSync('addressList') |
| | | let list = wx.getStorageSync('addressList') |
| | | if(list && list.length){ |
| | | this.setData({addressList: list}) |
| | | this.resetValus(list) |
| | | this.setLabel(); |
| | | if (!this.data.value.length) { |
| | | this.initRange(); |
| | |
| | | } |
| | | wx.setStorageSync('addressList', tl) |
| | | this.setData({addressList: tl}) |
| | | this.resetValus() |
| | | this.setLabel(); |
| | | if (!this.data.value.length) { |
| | | this.initRange(); |
| | | } |
| | | console.log(this.data.addressList) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | resetValus(selectedValues){ |
| | | selectedValues = selectedValues || this.data.value |
| | | let temVal = [] |
| | | let tlable ='' |
| | | if (selectedValues.length == 3) { |
| | | var v1 = selectedValues[0] |
| | | var v2 = selectedValues[1] |
| | | var v3= selectedValues[2] |
| | | var t1,t2,t3; |
| | | this.data.addressList.forEach(item =>{ |
| | | if(v1 && v1.length ==6 |
| | | &&v2 && v2.length ==6 |
| | | &&v3 && v3.length ==6){ |
| | | if(item.value.indexOf(v1) == 0){ |
| | | t1 = item.value |
| | | if(item.children){ |
| | | item.children.forEach(item2 =>{ |
| | | if(item2.value.indexOf(v2) == 0){ |
| | | if(item2.children){ |
| | | item2.children.forEach(item3 =>{ |
| | | if(item3.value.indexOf(v3) == 0){ |
| | | tlable = item.label +"-"+item2.label+'-'+item3.label |
| | | t1 = item.value |
| | | t2 = item2.value |
| | | t3 = item3.value |
| | | temVal = [t1,t2,t3] |
| | | // this.value = temVal |
| | | // this.data.label=tlable |
| | | this.triggerEvent("change", { |
| | | value: temVal, |
| | | label:tlable |
| | | }); |
| | | this.setData({value:temVal,label:tlable}) |
| | | console.log("--------------------",this.data.value) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | // getAddressItem方法用于将地址信息转换为选择器可用的格式 |
| | | getAddressItem(data) { |
| | |
| | | return list.map((v) => this.getAddressItem(v)); |
| | | }, |
| | | // getAddressByCode方法用于根据value值获取地址信息及其在数组中的下标 |
| | | getAddressByCode(list = [], value) { |
| | | getAddressByCode(list = [], value) { |
| | | let index = list.findIndex(item => item.value === value); |
| | | return [index, list[index] || {}]; |
| | | }, |
| | |
| | | }); |
| | | this.setData({ |
| | | label:label |
| | | }); |
| | | console.log("label1", label) |
| | | console.log("label",this.data.label) |
| | | }); |
| | | }, |
| | | // columnChange方法为选择器的columnchange事件处理函数,用于设置range和pickerValue |
| | | columnChange(e) { |
| | |
| | | setLabel() { |
| | | let addressList = this.data.addressList; |
| | | if (addressList && addressList.length) { |
| | | const [v1, v2, v3] = this.data.value; |
| | | const [v1, v2, v3] = this.data.value; |
| | | const [s1, { |
| | | label: t1, |
| | | children: l1 |
| | |
| | | label: t3 |
| | | }] = this.getAddressByCode(l2, v3); |
| | | const label = [t1, t2, t3].filter(v => v).join('-'); |
| | | |
| | | const pickerValue = [s1, s2, s3]; |
| | | const range = this.openChildren(addressList, [s1, s2, s3]); |
| | | if (label.length) { |
| | |
| | | pickerValue |
| | | }); |
| | | } |
| | | } else { |
| | | |
| | | } |
| | | } |
| | | }, |
| | | // initRange方法用于初始化range |
| | | initRange() { |