From 138db89b3193d60850e203e1847e2f91d2b00ebc Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期三, 07 八月 2024 18:19:47 +0800
Subject: [PATCH] lll

---
 wechat_jiaxuan/components/areaSel/areaSel.js |  533 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 269 insertions(+), 264 deletions(-)

diff --git a/wechat_jiaxuan/components/areaSel/areaSel.js b/wechat_jiaxuan/components/areaSel/areaSel.js
index a7cad08..3e05148 100644
--- a/wechat_jiaxuan/components/areaSel/areaSel.js
+++ b/wechat_jiaxuan/components/areaSel/areaSel.js
@@ -1,265 +1,270 @@
- 
-import { 
-  getArea
-} from '../../api/index'
-Component({
-  properties: {
-      // placeholder涓洪�夋嫨鍣ㄧ殑榛樿鎻愮ず鏂囧瓧
-      placeholder: {
-          type: String,
-          value: '璇烽�夋嫨鐪佸競鍦板尯',
-      },
-      // value涓洪�夋嫨鍣ㄧ殑榛樿鍊硷紝绫诲瀷涓烘暟缁�
-      value: {
-          type: Array,
-          value: [],
-          // observer鐩戝惉value鐨勫彉鍖栵紝濡傛灉鏈夊�煎垯璋冪敤setLabel鏂规硶璁剧疆閫夋嫨鍣ㄧ殑label
-          observer(selectedValues) {
-              if (selectedValues && selectedValues.length) {
-                  this.resetValus(selectedValues)
-                  this.setLabel();
-              }
-          }
-      } 
-  },
-  data: {
-      // label涓洪�夋嫨鍣ㄧ殑鏄剧ず鍊�
-      label: '',
-      // range涓洪�夋嫨鍣ㄧ殑鍙�夐」锛岀被鍨嬩负鏁扮粍锛屽寘鍚笁涓暟缁勶紝鍒嗗埆涓虹渷銆佸競銆佸尯/鍘�
-      range: [],
-      // pickerValue涓洪�夋嫨鍣ㄧ殑閫変腑鍊硷紝绫诲瀷涓烘暟缁勶紝鍖呭惈涓変釜鏁板瓧锛屽垎鍒负鐪併�佸競銆佸尯/鍘跨殑涓嬫爣
-      pickerValue: [],
-      // addressList涓洪�夋嫨鍣ㄧ殑鏁版嵁婧愶紝绫诲瀷涓烘暟缁勶紝鍖呭惈鐪併�佸競銆佸尯/鍘跨殑淇℃伅
-      addressList: [],
-  },
-  // attached鐢熷懡鍛ㄦ湡鍑芥暟锛屽湪缁勪欢瀹炰緥杩涘叆椤甸潰鑺傜偣鏍戞椂鎵ц
-  attached() {
-    this.initData()  
-  },
+ import {
+   getArea
+ } from '../../api/index'
+ Component({
+   properties: {
+     // placeholder涓洪�夋嫨鍣ㄧ殑榛樿鎻愮ず鏂囧瓧
+     placeholder: {
+       type: String,
+       value: '璇烽�夋嫨鐪佸競鍦板尯',
+     },
+     // value涓洪�夋嫨鍣ㄧ殑榛樿鍊硷紝绫诲瀷涓烘暟缁�
+     value: {
+       type: Array,
+       value: [],
+       // observer鐩戝惉value鐨勫彉鍖栵紝濡傛灉鏈夊�煎垯璋冪敤setLabel鏂规硶璁剧疆閫夋嫨鍣ㄧ殑label
+       observer(selectedValues) {
+         if (selectedValues && selectedValues.length) {
+           this.resetValus(selectedValues)
+           this.setLabel();
+         }
+       }
+     }
+   },
+   data: {
+     // label涓洪�夋嫨鍣ㄧ殑鏄剧ず鍊�
+     label: '',
+     // range涓洪�夋嫨鍣ㄧ殑鍙�夐」锛岀被鍨嬩负鏁扮粍锛屽寘鍚笁涓暟缁勶紝鍒嗗埆涓虹渷銆佸競銆佸尯/鍘�
+     range: [],
+     // pickerValue涓洪�夋嫨鍣ㄧ殑閫変腑鍊硷紝绫诲瀷涓烘暟缁勶紝鍖呭惈涓変釜鏁板瓧锛屽垎鍒负鐪併�佸競銆佸尯/鍘跨殑涓嬫爣
+     pickerValue: [],
+     // addressList涓洪�夋嫨鍣ㄧ殑鏁版嵁婧愶紝绫诲瀷涓烘暟缁勶紝鍖呭惈鐪併�佸競銆佸尯/鍘跨殑淇℃伅
+     addressList: [],
+   },
+   // 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();
-      }
-    }else{ 
-      getArea({
-        "level": "",
-        "pid": ""
-      }).then(res => {
-        var tl = []
-        if(res && res.data && res.data.length){
-            res.data.forEach(element => { 
-                let tc = []
-                if(element.children &&element.children.length){
-                  element.children.forEach(c => { 
-                    let ta = []
-                    if(c.children &&c.children.length){
-                      c.children.forEach(a => { 
-                        ta.push({
-                          label: a.name,
-                          value: a.id ,
-                          regionLevel: '3',
-                          parentRegionCode: c.id
-                        })
-                      })
-                    }
-                    tc.push({
-                      label: c.name,
-                      value: c.id,
-                      regionLevel:"2",
-                      children:ta,
-                      parentRegionCode:element.id
-                    })
-                  })
-                }
-                tl.push({
-                  label: element.name,
-                  value: element.id,
-                  regionLevel:"1",
-                  children: tc,
-                  parentRegionCode:"0"
-                })
-            });
-        }
-        wx.setStorageSync('addressList', tl)
-        this.setData({addressList: tl})
-        this.resetValus()
-        this.setLabel();
-        if (!this.data.value.length) {
-            this.initRange();
-        } 
-      })
-    }
-    },
-    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}) 
-                                }
-                              })
-                            }
-                        }
-                      })
-                    }
-              }
-            } 
-        }) 
-      }    
-    },
-      // getAddressItem鏂规硶鐢ㄤ簬灏嗗湴鍧�淇℃伅杞崲涓洪�夋嫨鍣ㄥ彲鐢ㄧ殑鏍煎紡
-      getAddressItem(data) {
-          return {
-              label: data.label,
-              value: data.value
-          };
-      },
-      // setAddressList鏂规硶鐢ㄤ簬灏嗗湴鍧�鍒楄〃杞崲涓洪�夋嫨鍣ㄥ彲鐢ㄧ殑鏍煎紡
-      setAddressList(list) {
-          return list.map((v) => this.getAddressItem(v));
-      },
-      // getAddressByCode鏂规硶鐢ㄤ簬鏍规嵁value鍊艰幏鍙栧湴鍧�淇℃伅鍙婂叾鍦ㄦ暟缁勪腑鐨勪笅鏍�
-      getAddressByCode(list = [], value) { 
-          let index = list.findIndex(item => item.value === value);
-          return [index, list[index] || {}];
-      },
-      // openChildren鏂规硶鐢ㄤ簬鏍规嵁value鍊兼墦寮�涓嬩竴绾ч�夋嫨鍣�
-      openChildren(list, keys) {
-          let result = [];
-          const handle = (arr, keys) => {
-              let newarr = arr.map((v, index) => {
-                  if (keys && keys.length) {
-                      let [currentKey, ...nextKey] = keys;
-                      if (currentKey === index && Array.isArray(v.children)) {
-                          handle(v.children, nextKey);
-                      }
-                  }
-                  return this.getAddressItem(v);
-              });
-              result.push(newarr);
-          }
-          handle(list, keys);
-          return result.reverse();
-      },
-      // onChange鏂规硶涓洪�夋嫨鍣ㄧ殑change浜嬩欢澶勭悊鍑芥暟锛岀敤浜庤缃甽abel鍜岃Е鍙慶hange浜嬩欢
-      onChange(e) {
-          let [r1, r2, r3] = this.data.range;
-          const [v1, v2, v3] = e.detail.value;
-          const selected = [r1[v1], r2[v2], r3[v3]];
-          const values = selected.map(v => v.value);
-          const label = selected.map(v => v.label).join('-');
-         
-          this.triggerEvent("change", {
-              value: values,
-              label:label
-          });
-          this.setData({
-            label:label
-          }); 
-      },
-      // columnChange鏂规硶涓洪�夋嫨鍣ㄧ殑columnchange浜嬩欢澶勭悊鍑芥暟锛岀敤浜庤缃畆ange鍜宲ickerValue
-      columnChange(e) {
-          const {
-              column,
-              value
-          } = e.detail;
-          this.setColumn(column, value);
-      },
-      // setColumn鏂规硶鐢ㄤ簬璁剧疆range鍜宲ickerValue
-      setColumn(column, value) {
-          let addressList = this.data.addressList;
-          if (!addressList || addressList.length === 0) return;
-          let [r1, r2, r3] = this.data.range;
-          if (column === 0) {
-              r2 = this.setAddressList(addressList[value].children);
-              r3 = this.setAddressList(addressList[value].children[0].children);
-              this.setData({
-                  pickerValue: [value, 0, 0]
-              });
-          } else if (column === 1) {
-              const [v1] = this.data.pickerValue;
-              r3 = this.setAddressList(addressList[v1].children[value].children);
-              this.setData({
-                  pickerValue: [v1, value, 0]
-              });
-          }
-          this.setData({
-              range: [r1, r2, r3]
-          });
-      },
-      // setLabel鏂规硶鐢ㄤ簬璁剧疆label
-      setLabel() {
-          let addressList = this.data.addressList;
-          if (addressList && addressList.length) {
-              const [v1, v2, v3] = this.data.value; 
-              const [s1, {
-                  label: t1,
-                  children: l1
-              }] = this.getAddressByCode(addressList, v1);
-              const [s2, {
-                  label: t2,
-                  children: l2
-              }] = this.getAddressByCode(l1, v2);
-              const [s3, {
-                  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) {
-                  this.setData({
-                      label,
-                      range,
-                      pickerValue
-                  });
-              }
-          }  
-      },
-      // initRange鏂规硶鐢ㄤ簬鍒濆鍖杛ange
-      initRange() {
-          if (!this.data.value.length) {
-              const range = this.openChildren(this.data.addressList, [0, 0, 0]);
-              this.setData({
-                  range
-              });
-          }
-      },
-      
-  },
-});
\ No newline at end of file
+   methods: {
+     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();
+         }
+       } else {
+         getArea({
+           "level": "",
+           "pid": ""
+         }).then(res => {
+           var tl = []
+           if (res && res.data && res.data.length) {
+             res.data.forEach(element => {
+               let tc = []
+               if (element.children && element.children.length) {
+                 element.children.forEach(c => {
+                   let ta = []
+                   if (c.children && c.children.length) {
+                     c.children.forEach(a => {
+                       ta.push({
+                         label: a.name,
+                         value: a.id,
+                         regionLevel: '3',
+                         parentRegionCode: c.id
+                       })
+                     })
+                   }
+                   tc.push({
+                     label: c.name,
+                     value: c.id,
+                     regionLevel: "2",
+                     children: ta,
+                     parentRegionCode: element.id
+                   })
+                 })
+               }
+               tl.push({
+                 label: element.name,
+                 value: element.id,
+                 regionLevel: "1",
+                 children: tc,
+                 parentRegionCode: "0"
+               })
+             });
+           }
+           wx.setStorageSync('addressList', tl)
+           this.setData({
+             addressList: tl
+           })
+           this.resetValus()
+           this.setLabel();
+           if (!this.data.value.length) {
+             this.initRange();
+           }
+         })
+       }
+     },
+     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
+                           })
+                         }
+                       })
+                     }
+                   }
+                 })
+               }
+             }
+           }
+         })
+       }
+     },
+     // getAddressItem鏂规硶鐢ㄤ簬灏嗗湴鍧�淇℃伅杞崲涓洪�夋嫨鍣ㄥ彲鐢ㄧ殑鏍煎紡
+     getAddressItem(data) {
+       return {
+         label: data.label,
+         value: data.value
+       };
+     },
+     // setAddressList鏂规硶鐢ㄤ簬灏嗗湴鍧�鍒楄〃杞崲涓洪�夋嫨鍣ㄥ彲鐢ㄧ殑鏍煎紡
+     setAddressList(list) {
+       return list.map((v) => this.getAddressItem(v));
+     },
+     // getAddressByCode鏂规硶鐢ㄤ簬鏍规嵁value鍊艰幏鍙栧湴鍧�淇℃伅鍙婂叾鍦ㄦ暟缁勪腑鐨勪笅鏍�
+     getAddressByCode(list = [], value) {
+       let index = list.findIndex(item => item.value === value);
+       return [index, list[index] || {}];
+     },
+     // openChildren鏂规硶鐢ㄤ簬鏍规嵁value鍊兼墦寮�涓嬩竴绾ч�夋嫨鍣�
+     openChildren(list, keys) {
+       let result = [];
+       const handle = (arr, keys) => {
+         let newarr = arr.map((v, index) => {
+           if (keys && keys.length) {
+             let [currentKey, ...nextKey] = keys;
+             if (currentKey === index && Array.isArray(v.children)) {
+               handle(v.children, nextKey);
+             }
+           }
+           return this.getAddressItem(v);
+         });
+         result.push(newarr);
+       }
+       handle(list, keys);
+       return result.reverse();
+     },
+     // onChange鏂规硶涓洪�夋嫨鍣ㄧ殑change浜嬩欢澶勭悊鍑芥暟锛岀敤浜庤缃甽abel鍜岃Е鍙慶hange浜嬩欢
+     onChange(e) {
+       let [r1, r2, r3] = this.data.range;
+       const [v1, v2, v3] = e.detail.value;
+       const selected = [r1[v1], r2[v2], r3[v3]];
+       const values = selected.map(v => v.value);
+       const label = selected.map(v => v.label).join('-');
+
+       this.triggerEvent("change", {
+         value: values,
+         label: label
+       });
+       this.setData({
+         label: label
+       });
+     },
+     // columnChange鏂规硶涓洪�夋嫨鍣ㄧ殑columnchange浜嬩欢澶勭悊鍑芥暟锛岀敤浜庤缃畆ange鍜宲ickerValue
+     columnChange(e) {
+       const {
+         column,
+         value
+       } = e.detail;
+       this.setColumn(column, value);
+     },
+     // setColumn鏂规硶鐢ㄤ簬璁剧疆range鍜宲ickerValue
+     setColumn(column, value) {
+       let addressList = this.data.addressList;
+       if (!addressList || addressList.length === 0) return;
+       let [r1, r2, r3] = this.data.range;
+       if (column === 0) {
+         r2 = this.setAddressList(addressList[value].children);
+         r3 = this.setAddressList(addressList[value].children[0].children);
+         this.setData({
+           pickerValue: [value, 0, 0]
+         });
+       } else if (column === 1) {
+         const [v1] = this.data.pickerValue;
+         r3 = this.setAddressList(addressList[v1].children[value].children);
+         this.setData({
+           pickerValue: [v1, value, 0]
+         });
+       }
+       this.setData({
+         range: [r1, r2, r3]
+       });
+     },
+     // setLabel鏂规硶鐢ㄤ簬璁剧疆label
+     setLabel() {
+       let addressList = this.data.addressList;
+       if (addressList && addressList.length) {
+         const [v1, v2, v3] = this.data.value;
+         const [s1, {
+           label: t1,
+           children: l1
+         }] = this.getAddressByCode(addressList, v1);
+         const [s2, {
+           label: t2,
+           children: l2
+         }] = this.getAddressByCode(l1, v2);
+         const [s3, {
+           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) {
+           this.setData({
+             label,
+             range,
+             pickerValue
+           });
+         }
+       }
+     },
+     // initRange鏂规硶鐢ㄤ簬鍒濆鍖杛ange
+     initRange() {
+       if (!this.data.value.length) {
+         const range = this.openChildren(this.data.addressList, [0, 0, 0]);
+         this.setData({
+           range
+         });
+       }
+     },
+
+   },
+ });
\ No newline at end of file

--
Gitblit v1.9.3