From f58f07875461b7cc8205978cf4f0fac86564df72 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 20 十二月 2023 17:49:01 +0800
Subject: [PATCH] 新增调试下载环信码功能

---
 src/components/search-option/FYOptionLocation.vue |  130 ++++++++++++++++++++----------------------
 1 files changed, 62 insertions(+), 68 deletions(-)

diff --git a/src/components/search-option/FYOptionLocation.vue b/src/components/search-option/FYOptionLocation.vue
index ea6c3d4..78ccb2b 100644
--- a/src/components/search-option/FYOptionLocation.vue
+++ b/src/components/search-option/FYOptionLocation.vue
@@ -1,20 +1,18 @@
 <template>
   <el-form-item :label="placeholder" :prop="prop">
     <el-cascader
-      v-model="selectedOptions"
+      :model-value="formatedValue"
+      @change="handleChange"
       :options="locations"
       :placeholder="placeholder"
       :props="optionProps"
-      style="width: 280px"
+      style="width: 320px"
     />
   </el-form-item>
 </template>
 
 <script>
-import { enumLocation } from '@/enum/location'
-
-// 璁板綍閫夐」鏄惁鏄嚜瀹氫箟浼犲叆鐨�
-let customValue = true
+import { enumLocation } from '@/enum/location';
 
 export default {
   props: {
@@ -46,50 +44,28 @@
   data() {
     return {
       locations: enumLocation(this.allOption, this.level),
-      selectedOptions: [],
       optionProps: {
         checkStrictly: this.checkStrictly
       }
-    }
+    };
   },
   computed: {
     placeholder() {
-      const list = '鐪�/甯�/鍖�/闀�'.split('/')
-      const p = []
+      const list = '鐪�/甯�/鍖�/闀�/闆�/鐗�'.split('/');
+      const p = [];
       for (let i = 0; i < this.level; i++) {
-        p.push(list[i])
+        p.push(list[i]);
       }
-      return p.join('/')
-    }
-  },
-  watch: {
-    selectedOptions: {
-      handler(nVal, oVal) {
-        if (nVal != oVal) {
-          const res = this.optionFormat(nVal)
-          // 鏍囨槑姝ゆ椂鐨剉alue鏇存柊鏄粍浠跺唴閮ㄨЕ鍙�
-          customValue = false
-          this.$emit('update:value', res)
-        }
-      },
-      deep: true
+      return p.join('/');
     },
-    value: {
-      handler(nVal, oVal) {
-        // 鍙湁褰撳�兼槸澶栭儴浼犲叆鏃讹紝鎵嶈Е鍙戞洿鏂�
-        if (!customValue) {
-          customValue = true
-          return
-        }
-        if (nVal != oVal) {
-          this.selectedOptions = this.optionFormatReverse(nVal)
-        }
-      },
-      deep: true,
-      immediate: true
+    formatedValue() {
+      return this.optionFormatReverse(this.value);
     }
   },
   methods: {
+    handleChange(value) {
+      this.$emit('update:value', this.optionFormat(value));
+    },
     /**
      * 鍦板尯閫夐」缁撴灉鏍煎紡鍖�
      */
@@ -102,62 +78,80 @@
         dCode: null,
         dName: null,
         tCode: null,
-        tName: null
-      }
+        tName: null,
+        aCode: null,
+        aName: null,
+        mCode: null,
+        mName: null,
+      };
       if (val.length > 0) {
-        res.pCode = val[0][0]
-        res.pName = val[0][1]
+        res.pCode = val[0][0];
+        res.pName = val[0][1];
       }
       if (val.length > 1) {
-        res.cCode = val[1][0]
-        res.cName = val[1][1]
+        res.cCode = val[1][0];
+        res.cName = val[1][1];
       }
       if (val.length > 2) {
-        res.dCode = val[2][0]
-        res.dName = val[2][1]
+        res.dCode = val[2][0];
+        res.dName = val[2][1];
       }
       if (val.length > 3) {
-        res.tCode = val[3][0]
-        res.tName = val[3][1]
+        res.tCode = val[3][0];
+        res.tName = val[3][1];
       }
-      return res
+      if (val.length > 4) {
+        res.aCode = val[4][0];
+        res.aName = val[4][1];
+      }
+      if (val.length > 5) {
+        res.mCode = val[5][0];
+        res.mName = val[5][1];
+      }
+      return res;
     },
     optionFormatReverse(val) {
-      const res = []
+      const res = [];
       if (val) {
-        if (val.pCode) {
-          res.push([val.pCode, val.pName])
+        if (val.pName) {
+          res.push([val.pCode, val.pName]);
         }
-        if (val.cCode) {
-          res.push([val.cCode, val.cName])
+        if (val.cName) {
+          res.push([val.cCode, val.cName]);
         }
-        if (val.dCode) {
-          res.push([val.dCode, val.dName])
+        if (val.dName) {
+          res.push([val.dCode, val.dName]);
         }
-        if (val.tCode) {
-          res.push([val.tCode, val.tName])
-        } 
+        if (val.tName) {
+          res.push([val.tCode, val.tName]);
+        }
+        if (val.aName) {
+          res.push([val.aCode, val.aName]);
+        }
+        if (val.mName) {
+          res.push([val.mCode, val.mName]);
+        }
       }
-      return res
+      return res;
     }
   },
   mounted() {
     if (this.initValue) {
       if (this.checkStrictly) {
-        this.selectedOptions = [this.locations[0].value]
+        this.handleChange([this.locations[0].value]);
       } else {
         const f = (location) => {
           if (location.children && location.children.length > 0) {
-            const r = f(location.children[0])
-            r.unshift(location.value)
-            return r
+            const r = f(location.children[0]);
+            r.unshift(location.value);
+            return r;
           } else {
-            return [location.value]
+            return [location.value];
           }
-        }
-        this.selectedOptions = f(this.locations[0])
+        };
+        this.handleChange(f(this.locations[0]));
       }
     }
   }
-}
+};
 </script>

--
Gitblit v1.9.3