From 3134c86bd9e7596db5ecb6aa2ca996483c3de6f0 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 01 八月 2024 16:28:16 +0800
Subject: [PATCH] aa

---
 admin/admin/faviconzb.ico                      |    0 
 admin/admin/template/users.xlsx                |    0 
 admin/admin/favicon.ico                        |    0 
 admin/admin/template/fcode.xlsx                |    0 
 wechat_jiaxuan/pages/design/design.json        |    4 
 admin/admin/avatar/man.png                     |    0 
 admin/admin/template/category.xlsx             |    0 
 admin/admin/avatar/woman.png                   |    0 
 wechat_jiaxuan/pages/design/design.js          |   72 ++++++++++-
 admin/admin/template/shop.xlsx                 |    0 
 wechat_jiaxuan/components/areaSel/areaSel.js   |  222 +++++++++++++++++++++++++++++++++++++
 wechat_jiaxuan/pages/design/design.wxml        |   10 +
 admin/admin/index.html                         |    1 
 wechat_jiaxuan/components/areaSel/areaSel.wxml |    8 +
 wechat_jiaxuan/components/areaSel/areaSel.json |    4 
 15 files changed, 308 insertions(+), 13 deletions(-)

diff --git a/admin/admin/avatar/man.png b/admin/admin/avatar/man.png
new file mode 100644
index 0000000..a84beb9
--- /dev/null
+++ b/admin/admin/avatar/man.png
Binary files differ
diff --git a/admin/admin/avatar/woman.png b/admin/admin/avatar/woman.png
new file mode 100644
index 0000000..eef8695
--- /dev/null
+++ b/admin/admin/avatar/woman.png
Binary files differ
diff --git a/admin/admin/favicon.ico b/admin/admin/favicon.ico
new file mode 100644
index 0000000..c6ff5db
--- /dev/null
+++ b/admin/admin/favicon.ico
Binary files differ
diff --git a/admin/admin/faviconzb.ico b/admin/admin/faviconzb.ico
new file mode 100644
index 0000000..c91c24d
--- /dev/null
+++ b/admin/admin/faviconzb.ico
Binary files differ
diff --git a/admin/admin/index.html b/admin/admin/index.html
new file mode 100644
index 0000000..3ccaeb0
--- /dev/null
+++ b/admin/admin/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/admin/faviconzb.ico"><script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&libraries=service&key=HIDBZ-2QXL4-TAWUD-XET6Q-EKTJE-CCBSQ"></script><title>蹇楅偊浼樺淇℃伅绠$悊绯荤粺</title><link href="/admin/static/css/app.54552c99.css" rel="preload" as="style"><link href="/admin/static/css/chunk-vendors.37d0bd45.css" rel="preload" as="style"><link href="/admin/static/js/app.a69f75f9.js" rel="preload" as="script"><link href="/admin/static/js/chunk-vendors.fb8b09e3.js" rel="preload" as="script"><link href="/admin/static/css/chunk-vendors.37d0bd45.css" rel="stylesheet"><link href="/admin/static/css/app.54552c99.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but 蹇楅偊浼樺淇℃伅绠$悊绯荤粺 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/admin/static/js/chunk-vendors.fb8b09e3.js"></script><script src="/admin/static/js/app.a69f75f9.js"></script></body></html>
\ No newline at end of file
diff --git a/admin/admin/template/category.xlsx b/admin/admin/template/category.xlsx
new file mode 100644
index 0000000..67f1fc5
--- /dev/null
+++ b/admin/admin/template/category.xlsx
Binary files differ
diff --git a/admin/admin/template/fcode.xlsx b/admin/admin/template/fcode.xlsx
new file mode 100644
index 0000000..d97cc69
--- /dev/null
+++ b/admin/admin/template/fcode.xlsx
Binary files differ
diff --git a/admin/admin/template/shop.xlsx b/admin/admin/template/shop.xlsx
new file mode 100644
index 0000000..9387b30
--- /dev/null
+++ b/admin/admin/template/shop.xlsx
Binary files differ
diff --git a/admin/admin/template/users.xlsx b/admin/admin/template/users.xlsx
new file mode 100644
index 0000000..dab5df8
--- /dev/null
+++ b/admin/admin/template/users.xlsx
Binary files differ
diff --git a/wechat_jiaxuan/components/areaSel/areaSel.js b/wechat_jiaxuan/components/areaSel/areaSel.js
new file mode 100644
index 0000000..0f5315e
--- /dev/null
+++ b/wechat_jiaxuan/components/areaSel/areaSel.js
@@ -0,0 +1,222 @@
+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.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.setLabel();
+      if (!this.data.value.length) {
+          this.initRange();
+      }
+      console.log(this.data.addressList)
+    }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.setLabel();
+        if (!this.data.value.length) {
+            this.initRange();
+        }
+        console.log(this.data.addressList)
+      })
+    }
+    },
+      // 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
+          });
+          console.log("label1", label)
+          console.log("label",this.data.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
+                  });
+              }
+          } else {
+           
+          }
+      },
+      // 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
diff --git a/wechat_jiaxuan/components/areaSel/areaSel.json b/wechat_jiaxuan/components/areaSel/areaSel.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/wechat_jiaxuan/components/areaSel/areaSel.json
@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}
\ No newline at end of file
diff --git a/wechat_jiaxuan/components/areaSel/areaSel.wxml b/wechat_jiaxuan/components/areaSel/areaSel.wxml
new file mode 100644
index 0000000..2d832e7
--- /dev/null
+++ b/wechat_jiaxuan/components/areaSel/areaSel.wxml
@@ -0,0 +1,8 @@
+<picker mode="multiSelector" model:value="{{pickerValue}}" range-key="label" range="{{range}}" bindchange="onChange"
+	bindcolumnchange="columnChange">
+	<view>
+		<!-- 濡傛灉宸茬粡閫夋嫨浜嗛�夐」锛屽垯鏄剧ず閫夐」鐨刲abel灞炴�э紝鍚﹀垯鏄剧ずplaceholder灞炴�с�� -->
+		<text wx:if="{{label}}"> {{ label }} </text>
+		<text style="color: #999" wx:else> {{ placeholder }}</text>
+	</view>
+</picker>
\ No newline at end of file
diff --git a/wechat_jiaxuan/pages/design/design.js b/wechat_jiaxuan/pages/design/design.js
index 9db973d..34b8b5f 100644
--- a/wechat_jiaxuan/pages/design/design.js
+++ b/wechat_jiaxuan/pages/design/design.js
@@ -1,3 +1,4 @@
+// import { areaList } from '@vant/area-data';
 import {
   getDictData,
   getArea,
@@ -12,8 +13,8 @@
    */
   data: {
     name: '',
-    phone: '',
-
+    phone: '', 
+    
     showAreaList: false,
     areaList: [],
     addr: {},
@@ -47,8 +48,23 @@
 
       }
     })
+  }, 
+  regionChange(e) {
+    console.log(e) 
+    if(e.detail.value &&e.detail.value.length ==3){
+      var tn = e.detail.label.split("-")
+      const addr = {
+        provinceCode: e.detail.value[0] ,
+        provinceName: tn[0],
+        cityCode:  e.detail.value[1] ,
+        cityName:  tn[1],
+        areaCode: e.detail.value[2] ,
+        areaName:  tn[2]
+      }
+      this.setData({ addr, showAreaList: false })
+      console.log('selectedOptions', addr);
+    } 
   },
-
   onSubmit() {
     const {
       name,
@@ -70,6 +86,11 @@
     if (!addr.areaCode || !addr.cityCode) return wx.showToast({
       title: '璇烽�夋嫨鍩庡競',
       icon: 'none'
+    })
+    console.log({
+      name,
+      phone,
+      ...addr
     })
     saveFreeCustomizationApply({
       name,
@@ -122,13 +143,46 @@
   onClose() {
     this.setData({ showAreaList: false })
   },
+  onClick() {
+    this.setData({ showAreaList: true })
+  },
   initData() {
-    getArea({
-      "level": "",
-      "pid": ""
-    }).then(res => {
-      this.setData({areaList: res.data})
-    })
+    // 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({
+    //                     name: a.name,
+    //                     id: a.id 
+    //                   })
+    //                 })
+    //               }
+    //               tc.push({
+    //                 name: c.name,
+    //                 id: c.id,
+    //                 children:ta,
+    //               })
+    //             })
+    //           }
+    //           tl.push({
+    //             name: element.name,
+    //             id: element.id,
+    //             children: tc,
+    //           })
+    //       });
+    //   }
+    //   this.setData({areaList: tl})
+    //   console.log(this.data.areaList)
+    // })
     getDictData({
       code: 'WEIXIN_DEFAULT_IMGS',
       label: 'DESIGN_BANNER'
diff --git a/wechat_jiaxuan/pages/design/design.json b/wechat_jiaxuan/pages/design/design.json
index 6807dec..7f5f076 100644
--- a/wechat_jiaxuan/pages/design/design.json
+++ b/wechat_jiaxuan/pages/design/design.json
@@ -1,7 +1,9 @@
 {
   "usingComponents": {
+    "van-cascader": "@vant/weapp/field/index",
     "van-field": "@vant/weapp/field/index",
-    "van-popup": "@vant/weapp/popup/index"
+    "van-popup": "@vant/weapp/popup/index",
+    "areaSel": "/components/areaSel/areaSel"
   },
   "navigationBarTitleText": "0鍏冨厤璐硅璁�"
 }
\ No newline at end of file
diff --git a/wechat_jiaxuan/pages/design/design.wxml b/wechat_jiaxuan/pages/design/design.wxml
index 0b6bf0b..d01cfad 100644
--- a/wechat_jiaxuan/pages/design/design.wxml
+++ b/wechat_jiaxuan/pages/design/design.wxml
@@ -12,16 +12,20 @@
     </view>
     <view class="line">
       <image class="icon" src="../../static/icon/design_ic_city.png" mode="widthFix"></image>
-      <picker class="city_picler" mode="region" value="{{ addr }}"  bindchange="positionChange">
+      <!-- <picker class="city_picler" mode="region" value="{{ addr }}"  bindchange="positionChange">
         <view class="placeholder9" hidden="{{ addr.cityName }}">璇烽�夋嫨鍦板潃</view>
         <view class="picker" hidden="{{ !addr.cityName }}">
           {{ addr.provinceName }}{{ addr.cityName }}{{ addr.areaName }}
         </view>
-      </picker>
+      </picker> -->
+      <areaSel  bindchange="regionChange" placeholder="璇烽�夋嫨鎵�鍦ㄥ尯鍩�" value="{{['210000000','210500000','210501000']}}"  /> 
       <image class="arrow_right" src="../../static/icon/arrow_right.png" mode="widthFix"></image>
-    </view>
+    </view> 
     <view class="btn" bindtap="onSubmit">绔嬪嵆鎶ュ悕</view>
   </view>
   <image class="banner" src="{{ WechatIMG558 }}" mode="widthFix"></image>
   <!--  -->
+  <!-- 鎻愮ず:vant缁勪欢缁欑殑鏍峰紡锛屽彲浠ユ牴鎹渶姹傛洿鏀� -->
+<view style="height:30rpx;"></view>
+ 
 </view>
\ No newline at end of file

--
Gitblit v1.9.3