From 78ab9cd3f487cc271ea5b3a10cb9d2491b78767e Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期二, 11 四月 2023 18:01:42 +0800
Subject: [PATCH] 目录修改

---
 src/components/MapView/mapSpaceTop.vue    |   25 +--
 src/views/Tools/LayerTree.vue             |    2 
 src/views/datamanage/dictionaryManage.vue |  119 ++++++++------
 src/components/MapView/mapMenuTop.vue     |   46 ++--
 src/utils/treeData.js                     |  170 +++++++++++++++++++++
 src/views/datamanage/domainManage.vue     |   46 +++--
 src/views/datamanage/SpatialData.vue      |   49 +++--
 7 files changed, 322 insertions(+), 135 deletions(-)

diff --git a/src/components/MapView/mapMenuTop.vue b/src/components/MapView/mapMenuTop.vue
index 8bf05cb..aef2ab4 100644
--- a/src/components/MapView/mapMenuTop.vue
+++ b/src/components/MapView/mapMenuTop.vue
@@ -355,31 +355,31 @@
 
 
       var val = data.result
-      var std = [];
-      val.filter((item) => {
-        if (std.indexOf(item.bak) == -1) {
-          std.push(item.bak);
-          this.layerData.push(
-            {
-              val: item.bak,
-              label: item.bak,
-              children: [],
-            }
-          )
-        }
-      });
-      for (var i in this.layerData) {
-        var item = this.layerData[i];
-        for (var j in val) {
-          var res = val[j];
+      // var std = [];
+      // val.filter((item) => {
+      //   if (std.indexOf(item.bak) == -1) {
+      //     std.push(item.bak);
+      //     this.layerData.push(
+      //       {
+      //         val: item.bak,
+      //         label: item.bak,
+      //         children: [],
+      //       }
+      //     )
+      //   }
+      // });
+      // for (var i in this.layerData) {
+      //   var item = this.layerData[i];
+      //   for (var j in val) {
+      //     var res = val[j];
 
-          if (item.val === res.bak) {
+      //     if (item.val === res.bak) {
 
-            res.label = res.tabDesc
-            this.layerData[i].children.push(res)
-          }
-        }
-      }
+      //       res.label = res.tabDesc
+      //       this.layerData[i].children.push(res)
+      //     }
+      //   }
+      // }
 
     },
     //鑾峰彇閫夋嫨鏍戠殑鑺傜偣
diff --git a/src/components/MapView/mapSpaceTop.vue b/src/components/MapView/mapSpaceTop.vue
index 26c6552..113715b 100644
--- a/src/components/MapView/mapSpaceTop.vue
+++ b/src/components/MapView/mapSpaceTop.vue
@@ -59,6 +59,9 @@
 <script>
 import queryinfo from "../../views/Tools/queryinfo.vue";
 import { inquiry_SelectTabs, dataLib_selectTabed } from "../../api/api.js";
+import {
+  getTreeData
+} from "../../utils/treeData.js"
 export default {
   components: { queryinfo },
   data() {
@@ -67,20 +70,7 @@
         queryLayer: "",
       },
       layerData: [
-        // {
-        //   id: 1,
-        //   label: '鍩虹鏁版嵁',
-        //   tabDesc: '鍩虹鏁版嵁',
-        //   value: 'BD',
-        //   children: [],
-        // },
-        // {
-        //   id: 2,
-        //   label: '涓氬姟鏁版嵁',
-        //   tabDesc: '涓氬姟鏁版嵁',
-        //   value: 'BS',
-        //   children: [],
-        // },
+
       ],
       defaultProps: {
         children: "children",
@@ -104,11 +94,12 @@
         this.$message.error("鍒楄〃璋冪敤澶辫触");
       }
       var option = data.result;
-      this.layerData = option.filter((res) => {
+      // this.layerData = option.filter((res) => {
 
-        return res;
+      //   return res;
 
-      });
+      // });
+      this.layerData = getTreeData(option)
       // var val = data.result
       // var std = [];
       // val.filter((item) => {
diff --git a/src/utils/treeData.js b/src/utils/treeData.js
new file mode 100644
index 0000000..1299043
--- /dev/null
+++ b/src/utils/treeData.js
@@ -0,0 +1,170 @@
+
+
+var num = -1;
+var tree = [];
+//鑾峰彇鐩綍鏍戞暟鎹�
+export function getTreeData(result) {
+
+    tree = [];
+    num = -1
+    var val = JSON.parse(JSON.stringify(result));
+    //鑾峰彇涓�绾ц彍鍗�
+    var fdata = getFatherData(val);
+    //鑾峰彇涓�绾ц彍鍗曚笅鎵�鏈夊瓙绾ц彍鍗�
+    var cdata = getChildData(val, fdata);
+
+    for (var i in fdata) {
+        tree.push(fdata[i])
+    }
+    for (var i in cdata) {
+        tree.push(cdata[i])
+    }
+    var tree_Data = [];
+    for (var i in cdata) {
+        for (var j in val) {
+            if (val[j].bak == cdata[i].bak) {
+                num++;
+                val[j].label = val[j].tabDesc;
+                val[j].pid = cdata[i].id;
+                val[j].id = num;
+                var valData = tree_Data.filter(rs => {
+                    if (rs.label == val[j].label && rs.bak == val[j].bak) {
+                        return rs
+                    }
+                })
+                if (valData.length == 0) {
+                    tree_Data.push(val[j])
+                }
+            }
+        }
+    }
+    for (var i in tree_Data) {
+        tree.push(tree_Data[i])
+    }
+
+    var tree_data = setTreeData(tree);
+
+    return tree_data
+
+
+}
+//鐢熸垚閫掑綊鏁版嵁
+function setTreeData(source) {
+    let cloneData = JSON.parse(JSON.stringify(source));// 瀵规簮鏁版嵁娣卞害鍏嬮殕
+
+    return cloneData.filter((father) => {
+        // 寰幆鎵�鏈夐」
+
+        let branchArr = cloneData.filter((child) => father.id === child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
+        branchArr.length > 0 ? (father.children = branchArr) : ''; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
+        // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛�
+        // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋�
+        return father.pid == -1; // 杩斿洖涓�绾ц彍鍗�
+    });
+
+}
+//鑾峰彇涓�绾ц彍鍗曚笅瀛愮骇鑿滃崟
+function getChildData(result, res) {
+    var std = [];
+
+    for (var i in result) {
+        let dir = result[i].bak;
+        let c_filter = dataFilter(std, dir);
+        if (c_filter.length == 0) {
+            std.push(dir);
+        }
+    }
+    var str = [];
+
+    for (var i in std) {
+        let dir = std[i].split('/');
+        for (var j = 1; j < dir.length; j++) {
+            if (j == 1) {
+                var clabel = dir[0] + "/" + dir[j]
+                let f_val = res.filter((rs) => {
+                    if (rs.label === dir[j - 1]) {
+                        return rs;
+                    }
+                })
+                var c_Data = str.filter(rs => {
+                    if (rs.bak == clabel) {
+                        return rs;
+                    }
+                })
+                if (f_val.length != 0 && c_Data.length == 0) {
+                    num++;
+                    var val = {
+                        id: num,
+                        pid: f_val[0].id,
+                        label: dir[j],
+                        bak: clabel
+                    }
+                    str.push(val)
+                }
+
+            } else {
+                var clabel1 = dir[0]
+                for (var k = 1; k < j; k++) {
+                    clabel1 = clabel1 + "/" + dir[k];
+                }
+                var f_val = [];
+                for (var w in str) {
+                    if (str[w].label == dir[j - 1]) {
+                        if (str[w].bak == clabel1) {
+                            f_val.push(str[w])
+                        }
+                    }
+                }
+                var clabel2 = clabel1 + "/" + dir[j]
+                var c_Data = str.filter(rs => {
+                    if (rs.bak == clabel2) {
+                        return rs;
+                    }
+                })
+                if (f_val.length != 0 && c_Data.length == 0) {
+                    num++;
+                    var val = {
+                        id: num,
+                        pid: f_val[0].id,
+                        label: dir[j],
+                        bak: clabel2
+                    }
+                    str.push(val)
+                }
+            }
+        }
+    }
+
+    return str
+
+
+}
+
+//鑾峰彇涓�绾ц妭鐐笵ata
+function getFatherData(result) {
+    var std = [];
+    var str = [];
+    for (var i in result) {
+        var dir = result[i].bak.split('/');
+        var f_filter = dataFilter(std, dir[0]);
+        if (f_filter.length == 0) {
+            std.push(dir[0])
+            num++
+            str.push({
+                id: num,
+                pid: -1,
+                label: dir[0]
+            })
+        }
+    }
+    return str;
+}
+//閬嶅巻鍖归厤鑾峰彇鏁版嵁
+function dataFilter(result, bak) {
+    let val = result.filter(res => {
+        if (res == bak) {
+            return res;
+        }
+    })
+    return val;
+}
\ No newline at end of file
diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue
index 0e7c5e3..48f357e 100644
--- a/src/views/Tools/LayerTree.vue
+++ b/src/views/Tools/LayerTree.vue
@@ -10,6 +10,7 @@
           filterable
           style="width :100%"
           @change="setproChange"
+          placeholder="璇烽�夋嫨椤圭洰"
         >
           <el-option
             v-for="item in optionts"
@@ -21,7 +22,6 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-
         <el-input
           placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
           v-model="filterText"
diff --git a/src/views/datamanage/SpatialData.vue b/src/views/datamanage/SpatialData.vue
index 9203b2f..9d68832 100644
--- a/src/views/datamanage/SpatialData.vue
+++ b/src/views/datamanage/SpatialData.vue
@@ -519,6 +519,11 @@
 import { getToken } from "../../utils/auth.js";
 import catalogueTree from "../../components/catalogueTree.vue";
 import MyBread from "../../components/MyBread.vue";
+import {
+  getTreeData
+} from "../../utils/treeData.js"
+
+
 export default {
   //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
   name: "dataSearch",
@@ -962,7 +967,7 @@
         this.$message.error("鍒楄〃璋冪敤澶辫触");
       }
       var val = data.result;
-
+      this.tree = getTreeData(val)
       // for (var i in option) {
       //   var val_Data = option[i];
       //   val_Data.id = "1" + i;
@@ -976,28 +981,28 @@
       //   }
 
       // }
-      var std = [];
-      val.filter((item) => {
-        if (std.indexOf(item.bak) == -1) {
-          std.push(item.bak);
-          this.tree.push(
-            {
-              val: item.bak,
-              label: item.bak,
-              children: [],
-            }
-          )
-        }
-      });
+      // var std = [];
+      // val.filter((item) => {
+      //   if (std.indexOf(item.bak) == -1) {
+      //     std.push(item.bak);
+      //     this.tree.push(
+      //       {
+      //         val: item.bak,
+      //         label: item.bak,
+      //         children: [],
+      //       }
+      //     )
+      //   }
+      // });
 
-      this.tree.filter((item) => {
-        val.filter((res) => {
-          if (item.val === res.bak) {
-            res.label = res.tabDesc
-            item.children.push(res)
-          }
-        })
-      })
+      // this.tree.filter((item) => {
+      //   val.filter((res) => {
+      //     if (item.val === res.bak) {
+      //       res.label = res.tabDesc
+      //       item.children.push(res)
+      //     }
+      //   })
+      // })
 
       this.handleNodeClick(this.tree[0].children[0]);
     },
diff --git a/src/views/datamanage/dictionaryManage.vue b/src/views/datamanage/dictionaryManage.vue
index 28dc766..b13b259 100644
--- a/src/views/datamanage/dictionaryManage.vue
+++ b/src/views/datamanage/dictionaryManage.vue
@@ -18,14 +18,19 @@
           :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueone')"
           suffix-icon="el-icon-search"
         ></el-input>
-
         <el-tree
+          :data="domainData"
+          :props="defaultProps"
+        >
+
+        </el-tree>
+        <!-- <el-tree
           :data="domainData"
           :props="defaultProps"
           @node-click="getTableDesc"
           :filter-node-method="filterNode"
           ref="tree"
-        ></el-tree>
+        ></el-tree> -->
         <!-- <ul>
           <li
             @click="getTableDesc(item)"
@@ -574,6 +579,10 @@
   insertDict,
 } from "../../api/api";
 import MyBread from "../../components/MyBread.vue";
+import { conditions } from '../Archive/Archive';
+import {
+  getTreeData
+} from "../../utils/treeData.js"
 export default {
   name: "dictionaryManage",
   components: { MyBread },
@@ -611,7 +620,7 @@
       domainData: [],
       defaultProps: {
         children: "children",
-        label: "val",
+        label: "label",
       },
     };
   },
@@ -757,7 +766,7 @@
       var m = time.getMonth() + 1;
       var d = time.getDate();
       var h = time.getHours();
-      var mm = time.getMinutes();
+      var mm = time.getMvinutes();
       var s = time.getSeconds();
       return y + "-" + this.add0(m) + "-" + this.add0(d);
     },
@@ -769,59 +778,67 @@
       this.formInline.tab = null;
       this.getSelectDictTab();
     },
+    treeData(source) {
+      let cloneData = JSON.parse(JSON.stringify(source));// 瀵规簮鏁版嵁娣卞害鍏嬮殕
+      if (cloneData.length != 0) {
+        return cloneData.filter((father) => {
+          // 寰幆鎵�鏈夐」
+          let branchArr = cloneData.filter((child) => father.label == child.pname); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
+          branchArr.length > 0 ? (father.children = branchArr) : ''; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
+          // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛�
+          // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋�
+          return father.pname == -1; // 杩斿洖涓�绾ц彍鍗�
+        });
+      }
+    },
     //鐩綍鏍戣幏鍙�
     async getSelectDictTab() {
       const data = await selectDictTab({ name: this.formInline.tab });
       if (data.code != 200) {
-        this.$message.error("涓嬫媺璋冪敤澶辫触");
+        this.$message.error("鍒楄〃璋冪敤澶辫触");
       }
-      var val = data.result;
-      var std = [];
-      val.filter((item) => {
-        if (std.indexOf(item.bak) == -1) {
-          std.push(item.bak);
-          this.domainData.push(
-            {
-              val: item.bak,
-              children: [],
-            }
-          )
-        }
-      });
-      this.domainData.filter((item) => {
-        val.filter((res) => {
-          if (item.val === res.bak) {
-            res.val = res.tabDesc
-            item.children.push(res)
+      var val = JSON.parse(JSON.stringify(data.result));
+      var tree = getTreeData(data.result);
+      this.domainData = tree
+      this.getQueryNameData(tree[0]);
+      // var = this.domainData[0].children;
+      // 
+    },
+    getQueryNameData(res) {
+
+      if (res.children) {
+        this.getQueryNameData(res.children);
+      } else {
+
+        if (res.length != 1) {
+          if (res[0].children) {
+            this.getQueryNameData(res[0].children);
+          } else {
+
+            var result = res[0]
+            this.insertform.tab = result.tab;
+            this.insertform.tabDesc = result.tabDesc;
+            this.insertform.ns = result.ns;
+            this.listData.tab = result.tab;
+            this.listData.ns = result.ns;
+            this.activeName = result.tab;
+            this.startQueryNameData();
           }
-        })
-      })
-      // let bdres = data.result.filter((item) => item.ns == "bd");
-      // let bsres = data.result.filter((item) => item.ns == "bs");
-      // let mdres = data.result.filter((item) => item.ns == "md");
-      // for (var i in bdres) {
-      //   // bdres[i].val = bdres[i].tabDesc + '(' + bdres[i].tab + ')';
-      //   bdres[i].val = bdres[i].tabDesc;
-      // }
-      // for (var i in bsres) {
-      //   // bsres[i].val = bsres[i].tabDesc + '(' + bsres[i].tab + ')';
-      //   bsres[i].val = bsres[i].tabDesc;
-      // }
-      // for (var i in mdres) {
-      //   // bsres[i].val = bsres[i].tabDesc + '(' + bsres[i].tab + ')';
-      //   mdres[i].val = mdres[i].tabDesc;
-      // }
-      // this.domainData[0].children = bdres;
-      // this.domainData[1].children = bsres;
-      // this.domainData[2].children = mdres;
-      var result = this.domainData[0].children;
-      this.insertform.tab = result[0].tab;
-      this.insertform.tabDesc = result[0].tabDesc;
-      this.insertform.ns = result[0].ns;
-      this.listData.tab = result[0].tab;
-      this.listData.ns = result[0].ns;
-      this.activeName = result[0].tab;
-      this.startQueryNameData();
+        } else {
+          if (res.children) {
+            this.getQueryNameData(res.children);
+          } else {
+            var result = res
+            this.insertform.tab = result.tab;
+            this.insertform.tabDesc = result.tabDesc;
+            this.insertform.ns = result.ns;
+            this.listData.tab = result.tab;
+            this.listData.ns = result.ns;
+            this.activeName = result.tab;
+            this.startQueryNameData();
+          }
+        }
+      }
     },
     handleClose() {
       this.$confirm("鍏抽棴鍚庢棤娉曚繚瀛橈紝鏄惁鍏抽棴?")
diff --git a/src/views/datamanage/domainManage.vue b/src/views/datamanage/domainManage.vue
index 1c368d0..11b0249 100644
--- a/src/views/datamanage/domainManage.vue
+++ b/src/views/datamanage/domainManage.vue
@@ -402,6 +402,9 @@
   domain_selectDomainNames,
 } from "../../api/api";
 import MyBread from "../../components/MyBread.vue";
+import {
+  getTreeData
+} from "../../utils/treeData.js"
 export default {
   name: "domainManage",
   components: { MyBread },
@@ -447,7 +450,7 @@
       ],
       defaultProps: {
         children: "children",
-        label: "val",
+        label: "label",
       },
     };
   },
@@ -514,26 +517,27 @@
     getAllTabelData() {
       getDomainTabs().then((res) => {
         var val = res.result;
-        var std = [];
-        val.filter((item) => {
-          if (std.indexOf(item.bak) == -1) {
-            std.push(item.bak);
-            this.domainData.push(
-              {
-                val: item.bak,
-                children: [],
-              }
-            )
-          }
-        });
-        this.domainData.filter((item) => {
-          val.filter((res) => {
-            if (item.val === res.bak) {
-              res.val = res.tabDesc
-              item.children.push(res)
-            }
-          })
-        })
+        this.domainData = getTreeData(val)
+        //   var std = [];
+        //   val.filter((item) => {
+        //     if (std.indexOf(item.bak) == -1) {
+        //       std.push(item.bak);
+        //       this.domainData.push(
+        //         {
+        //           val: item.bak,
+        //           children: [],
+        //         }
+        //       )
+        //     }
+        //   });
+        //   this.domainData.filter((item) => {
+        //     val.filter((res) => {
+        //       if (item.val === res.bak) {
+        //         res.val = res.tabDesc
+        //         item.children.push(res)
+        //       }
+        //     })
+        //   })
       });
     },
     handleSelectionChange(val) {

--
Gitblit v1.9.3