k94314517
2024-08-01 9d3e12b88c3b5556a9b186e7afcc813236cc126a
wechat_jiaxuan/components/areaSel/areaSel.js
@@ -1,3 +1,4 @@
import { 
  getArea
} from '../../api/index'
@@ -15,6 +16,8 @@
          // observer监听value的变化,如果有值则调用setLabel方法设置选择器的label
          observer(selectedValues) {
              if (selectedValues && selectedValues.length) {
                  this.resetValus(selectedValues)
                  console.log("--------------------",this.data.value)
                  this.setLabel();
              }
          }
@@ -33,14 +36,15 @@
  // attached生命周期函数,在组件实例进入页面节点树时执行
  attached() {
    this.initData()
  },
  methods: {
    // wx.setStorageSync('addressList', tl)    
    initData(){
      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();
@@ -88,11 +92,56 @@
        }
        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)
                                }
                              })
                            }
                        }
                      })
                    }
              }
            }
      })
    }
    },
@@ -145,8 +194,6 @@
          this.setData({
            label:label
          });
          console.log("label1", label)
          console.log("label",this.data.label)
      },
      // columnChange方法为选择器的columnchange事件处理函数,用于设置range和pickerValue
      columnChange(e) {
@@ -195,6 +242,7 @@
                  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) {
@@ -204,8 +252,6 @@
                      pickerValue
                  });
              }
          } else {
          }
      },
      // initRange方法用于初始化range