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