|
@@ -39,12 +39,7 @@
|
|
|
:filter-node-method="filterNode"
|
|
|
>
|
|
|
<span class="custom-tree-node" slot-scope="{ node }">
|
|
|
- <template
|
|
|
- v-if="
|
|
|
- node.data.mainType === '所有图层' ||
|
|
|
- node.data.mainType === '预设模型'
|
|
|
- "
|
|
|
- >
|
|
|
+ <template v-if="node.data.mainType === '所有图层'">
|
|
|
<el-checkbox v-model="node.checked" style="position: relative"
|
|
|
>{{ node.label }}
|
|
|
</el-checkbox>
|
|
@@ -155,6 +150,7 @@ export default {
|
|
|
label: "label",
|
|
|
},
|
|
|
transferData: [],
|
|
|
+ customTreeMap: new Map(),
|
|
|
filterText: "",
|
|
|
createModelParams: {
|
|
|
title: "",
|
|
@@ -167,6 +163,7 @@ export default {
|
|
|
c_isOverlay: false,
|
|
|
// 绑定图层(json图层数组)
|
|
|
c_bind_layer: "",
|
|
|
+ c_layer_name: "",
|
|
|
// 用户id
|
|
|
c_user_id: "",
|
|
|
},
|
|
@@ -243,8 +240,6 @@ export default {
|
|
|
}
|
|
|
this.currentModifiedModelId = node.data.id;
|
|
|
this.currentOverlayFile = node.data.c_dzfx_file;
|
|
|
- // console.log(this.currentModifiedModelId, "currentModifiedModelId");
|
|
|
- // console.log(this.currentOverlayFile, "currentOverlayFile");
|
|
|
|
|
|
this.$nextTick(() => {
|
|
|
if (this.$refs.transferTree) {
|
|
@@ -255,11 +250,9 @@ export default {
|
|
|
this.checkArr = [];
|
|
|
this.checkedList = [];
|
|
|
this.outerDialogVisible = true;
|
|
|
- if (node.data.c_bind_layer) {
|
|
|
- let bindLayerArr = JSON.parse(node.data.c_bind_layer).map((v) => {
|
|
|
- return `${v.columnName}_${v.columnId}`;
|
|
|
- });
|
|
|
- // console.log(bindLayerArr, "c_bind_layer");
|
|
|
+ // 根据图层名称确定勾选的图层
|
|
|
+ if (node.data.c_layer_name) {
|
|
|
+ let bindLayerArr = JSON.parse(node.data.c_layer_name);
|
|
|
if (bindLayerArr.length > 0) {
|
|
|
this.checkArr = bindLayerArr;
|
|
|
this.checkedList = bindLayerArr;
|
|
@@ -285,6 +278,9 @@ export default {
|
|
|
this.overlayBtnShow = false;
|
|
|
},
|
|
|
methods: {
|
|
|
+ /**
|
|
|
+ * 生成数据字典
|
|
|
+ */
|
|
|
classDictQuery(type, cName, keyName) {
|
|
|
let params = new FormData();
|
|
|
params = {
|
|
@@ -300,6 +296,67 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 数据转换 -- 数组对象转为树状结构
|
|
|
+ *
|
|
|
+ * 应用 -- bindLayer存储图层id
|
|
|
+ */
|
|
|
+ createTree(arr) {
|
|
|
+ // 设置树状结构需要的分级字段
|
|
|
+ const paramsArr = [
|
|
|
+ {
|
|
|
+ field: "townId",
|
|
|
+ // 用来生成一个当前层级对象
|
|
|
+ obj: (o) => ({
|
|
|
+ column_id: o.townId,
|
|
|
+ column_name: o.townType,
|
|
|
+ child: [],
|
|
|
+ }),
|
|
|
+ // 如何生成下一层的对象
|
|
|
+ child: (o) => {
|
|
|
+ let copy = { ...o };
|
|
|
+ delete copy.townId;
|
|
|
+ delete copy.townType;
|
|
|
+ return copy;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: "sourceId",
|
|
|
+ // 用来生成一个当前层级对象
|
|
|
+ obj: (o) => ({
|
|
|
+ column_id: o.sourceId,
|
|
|
+ column_name: o.sourceType,
|
|
|
+ child: [],
|
|
|
+ }),
|
|
|
+ // 如何生成下一层的对象
|
|
|
+ child: (o) => {
|
|
|
+ let copy = { ...o };
|
|
|
+ delete copy.sourceId;
|
|
|
+ delete copy.sourceType;
|
|
|
+ return copy;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: "layerId",
|
|
|
+ // 用来生成一个当前层级对象
|
|
|
+ obj: (o) => ({ column_id: o.layerId, column_name: o.layerName }),
|
|
|
+ // 如何生成下一层的对象
|
|
|
+ child: (o) => {
|
|
|
+ let copy = { ...o };
|
|
|
+ delete copy.layerId;
|
|
|
+ delete copy.layerName;
|
|
|
+ return copy;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ];
|
|
|
+
|
|
|
+ let finalData = publicFun.convertTree(paramsArr, arr);
|
|
|
+ return finalData;
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取分级列表
|
|
|
+ */
|
|
|
getColumnList() {
|
|
|
this.transferData = [];
|
|
|
this.$Post(this.urlsCollection.getColumnList).then((res) => {
|
|
@@ -311,7 +368,7 @@ export default {
|
|
|
label: item1.title,
|
|
|
// 镇
|
|
|
children:
|
|
|
- item1.columnList.length === 0
|
|
|
+ !item1.columnList || item1.columnList.length === 0
|
|
|
? []
|
|
|
: item1.columnList.map((item2) => {
|
|
|
return {
|
|
@@ -319,7 +376,7 @@ export default {
|
|
|
label: item2.title,
|
|
|
// 水资源,土地资源,林地资源
|
|
|
children:
|
|
|
- item2.columnList.length === 0
|
|
|
+ !item2.columnList || item2.columnList.length === 0
|
|
|
? []
|
|
|
: item2.columnList.map((item3) => {
|
|
|
return {
|
|
@@ -327,20 +384,31 @@ export default {
|
|
|
label: item3.title,
|
|
|
tag: item3.tag,
|
|
|
children:
|
|
|
+ !item3.columnList ||
|
|
|
item3.columnList.length === 0
|
|
|
? []
|
|
|
: item3.columnList.map((item4) => {
|
|
|
+ this.customTreeMap.set(
|
|
|
+ `${item4.title}_${item4.id}`,
|
|
|
+ {
|
|
|
+ townId: item2.id,
|
|
|
+ townType: item2.title,
|
|
|
+ sourceId: item3.id,
|
|
|
+ sourceType: item3.title,
|
|
|
+ layerId: item4.id,
|
|
|
+ layerName: item4.title,
|
|
|
+ }
|
|
|
+ );
|
|
|
return {
|
|
|
id: `${item4.title}_${item4.id}`,
|
|
|
label: item4.title,
|
|
|
children: [],
|
|
|
columnId: item4.id,
|
|
|
- modelName: item4.modelName,
|
|
|
- modelId: item4.modelId,
|
|
|
- tag: item4.tag,
|
|
|
- type: item3.title,
|
|
|
- town: item2.title,
|
|
|
mainType: item1.title,
|
|
|
+ townId: item2.id,
|
|
|
+ townType: item2.title,
|
|
|
+ sourceId: item3.id,
|
|
|
+ sourceType: item3.title,
|
|
|
};
|
|
|
}),
|
|
|
};
|
|
@@ -349,33 +417,6 @@ export default {
|
|
|
}),
|
|
|
};
|
|
|
}
|
|
|
- // if (item1.title === "预设模型" && item1.columnList.length > 0) {
|
|
|
- // return {
|
|
|
- // id: `${item1.title}_${item1.id}`,
|
|
|
- // label: item1.title,
|
|
|
- // children:
|
|
|
- // item1.columnList.length === 0
|
|
|
- // ? []
|
|
|
- // : item1.columnList.map((item2) => {
|
|
|
- // return {
|
|
|
- // id: `${item2.title}_${item2.id}`,
|
|
|
- // label: item2.title,
|
|
|
- // children:
|
|
|
- // item2.columnList.length === 0
|
|
|
- // ? []
|
|
|
- // : item2.columnList.map((item3) => {
|
|
|
- // return {
|
|
|
- // id: `${item3.title}_${item3.id}`,
|
|
|
- // label: item3.title,
|
|
|
- // children: [],
|
|
|
- // mainType: item1.title,
|
|
|
- // columnId: item3.id,
|
|
|
- // };
|
|
|
- // }),
|
|
|
- // };
|
|
|
- // }),
|
|
|
- // };
|
|
|
- // }
|
|
|
});
|
|
|
|
|
|
data.forEach((c) => {
|
|
@@ -392,68 +433,6 @@ export default {
|
|
|
if (!this.checkedKeysArr.includes(data.id)) {
|
|
|
this.checkedKeysArr.push(data.id);
|
|
|
}
|
|
|
-
|
|
|
- // 判断图层是否有权限
|
|
|
- if (data.mainType === "所有图层") {
|
|
|
- let searchParam = [];
|
|
|
- let targetTown = this.classTextToIndex["浦东新区行政区划"].get(
|
|
|
- data.town
|
|
|
- );
|
|
|
- let targetType = this.classTextToIndex["任务类型"].get(
|
|
|
- data.type + "审计"
|
|
|
- );
|
|
|
- let paramUser = {
|
|
|
- field: "c_user_id",
|
|
|
- searchType: "1",
|
|
|
- content: {
|
|
|
- value: localStorage.getItem("USER_ID"),
|
|
|
- },
|
|
|
- };
|
|
|
- searchParam.push(paramUser);
|
|
|
- let paramTown = {
|
|
|
- field: "c_area_code",
|
|
|
- searchType: "1",
|
|
|
- content: {
|
|
|
- value: targetTown,
|
|
|
- },
|
|
|
- };
|
|
|
- searchParam.push(paramTown);
|
|
|
- let paramType = {
|
|
|
- field: "c_task_type",
|
|
|
- searchType: "1",
|
|
|
- content: {
|
|
|
- value: targetType,
|
|
|
- },
|
|
|
- };
|
|
|
- searchParam.push(paramType);
|
|
|
- let params = new FormData();
|
|
|
- // dms - 我的任务
|
|
|
- params = {
|
|
|
- columnId: 48,
|
|
|
- states: "2,3",
|
|
|
- pageSize: 10,
|
|
|
- page: 0,
|
|
|
- search: JSON.stringify(searchParam),
|
|
|
- };
|
|
|
- this.$Post(this.urlsCollection.selectContentList, params)
|
|
|
- .then((res) => {
|
|
|
- if (res.code === 202 && res.content === "数据不存在") {
|
|
|
- this.$message.info("当前图层无权限!");
|
|
|
- layerAuthorityMap.set(data.id, "无权限");
|
|
|
- }
|
|
|
- if (res.code === 200 && res.content.data.length > 0) {
|
|
|
- layerAuthorityMap.set(data.id, "有权限");
|
|
|
- // console.log("有权限");
|
|
|
- }
|
|
|
- })
|
|
|
- .catch((err) => {
|
|
|
- console.log(err, "接口请求失败,我的任务 - selectContentList");
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- if (data.mainType === "预设模型") {
|
|
|
- layerAuthorityMap.set(data.id, "有权限");
|
|
|
- }
|
|
|
} else {
|
|
|
if (this.checkedKeysArr.includes(data.id)) {
|
|
|
this.checkedKeysArr = this.checkedKeysArr.filter((v) => {
|
|
@@ -463,13 +442,13 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- transferCheckChange1(data, checked) {
|
|
|
- if (data.mainType === "所有图层") {
|
|
|
- if (checked) {
|
|
|
- // if
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
+ // transferCheckChange1(data, checked) {
|
|
|
+ // if (data.mainType === "所有图层") {
|
|
|
+ // if (checked) {
|
|
|
+ // // if
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
// 添加模型
|
|
|
addModel() {
|
|
|
if (customModelIdMap.has(this.inputName)) {
|
|
@@ -479,18 +458,19 @@ export default {
|
|
|
this.createModelParams.title = this.inputName;
|
|
|
this.createModelParams.content = this.inputName;
|
|
|
this.createModelParams.c_user_id = localStorage.getItem("USER_ID") || 4;
|
|
|
- let newData = [
|
|
|
- {
|
|
|
- columnName: "公益林",
|
|
|
- columnId: 60,
|
|
|
- },
|
|
|
- {
|
|
|
- columnName: "建设用地",
|
|
|
- columnId: 51,
|
|
|
- },
|
|
|
- ];
|
|
|
+ console.log(this.customTreeMap);
|
|
|
+ // 获取数组对象
|
|
|
+ let treeArr = [];
|
|
|
+ this.customTreeMap.forEach((v, i) => {
|
|
|
+ if (this.checkedList.includes(i)) {
|
|
|
+ treeArr.push(v);
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- this.createModelParams.c_bind_layer = JSON.stringify(newData);
|
|
|
+ // 转为树结构的数据格式
|
|
|
+ let finalData = this.createTree(treeArr);
|
|
|
+ this.createModelParams.c_layer_name = JSON.stringify(this.checkedList);
|
|
|
+ this.createModelParams.c_bind_layer = JSON.stringify(finalData);
|
|
|
let params = new FormData();
|
|
|
params = {
|
|
|
columnId: 49,
|
|
@@ -499,12 +479,13 @@ export default {
|
|
|
};
|
|
|
this.$Post(this.urlsCollection.addContent, params)
|
|
|
.then((res) => {
|
|
|
+ debugger;
|
|
|
// console.log(res, "保存自定义模型的res");
|
|
|
if (res.code === 200) {
|
|
|
this.$message.success("模型已保存");
|
|
|
this.$store.state.customModelsArr.push({
|
|
|
name: this.inputName,
|
|
|
- data: this.checkedList,
|
|
|
+ data: JSON.stringify(finalData),
|
|
|
});
|
|
|
this.clearDialogVisible();
|
|
|
}
|
|
@@ -513,24 +494,16 @@ export default {
|
|
|
this.$message.info("模型保存失败");
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
- // let newData = this.checkedList.filter((v) => {
|
|
|
- // if (layerAuthorityMap.has(v) && layerAuthorityMap.get(v) === "有权限") {
|
|
|
- // return v;
|
|
|
- // }
|
|
|
- // });
|
|
|
- // console.log(newData, "可以进行叠置分析的图层");
|
|
|
},
|
|
|
// 修改模型 -- 直接调用修改模型接口
|
|
|
modifyModel(type, bindData) {
|
|
|
- // console.log("这一步是修改模型");
|
|
|
-
|
|
|
- // console.log(this.currentModifiedModelId, "model id");
|
|
|
+ debugger;
|
|
|
let obj = {
|
|
|
id: this.currentModifiedModelId,
|
|
|
title: this.inputName,
|
|
|
content: this.inputName,
|
|
|
- c_level: "1",
|
|
|
+ // c_level: "1",
|
|
|
+ c_layer_name: JSON.stringify(this.checkedList),
|
|
|
c_bind_layer: JSON.stringify(bindData),
|
|
|
c_user_id: localStorage.getItem("USER_ID"),
|
|
|
};
|
|
@@ -548,7 +521,7 @@ export default {
|
|
|
});
|
|
|
this.$store.state.customModelsArr.push({
|
|
|
name: this.inputName,
|
|
|
- data: bindData,
|
|
|
+ data: JSON.stringify(bindData),
|
|
|
});
|
|
|
this.clearDialogVisible();
|
|
|
if (type === "alreadyOverlay") {
|
|
@@ -609,7 +582,6 @@ export default {
|
|
|
this.overlayBtnShow = false;
|
|
|
this.$store.state.modelStatus = "create";
|
|
|
this.outerDialogVisible = true;
|
|
|
- // console.log(this.$store.state.treeDataCollection, "treeDataCollection");
|
|
|
this.checkedList = [];
|
|
|
this.checkArr = [];
|
|
|
// this.transferCheckedKeys = [];
|
|
@@ -619,12 +591,11 @@ export default {
|
|
|
this.checkedList.push(i);
|
|
|
});
|
|
|
this.$nextTick((e) => {
|
|
|
- // console.log(this.$refs.transferTree, "this.$refs.transferTre");
|
|
|
this.$refs.transferTree.setCheckedKeys(this.checkedList);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- this.inputName = "自定义模型1";
|
|
|
+ this.inputName = `自定义模型${Math.round(Math.random() * 100)}`;
|
|
|
},
|
|
|
saveModel() {
|
|
|
if (this.checkedList.length < 2) {
|
|
@@ -641,18 +612,14 @@ export default {
|
|
|
this.$confirm("确认保存吗?").then(() => {
|
|
|
// modify -- 改变数组类型
|
|
|
if (this.$store.state.modelStatus === "modify") {
|
|
|
- let newData = this.checkedList.filter((v) => {
|
|
|
- if (
|
|
|
- layerAuthorityMap.has(v) &&
|
|
|
- layerAuthorityMap.get(v) === "有权限"
|
|
|
- ) {
|
|
|
- return {
|
|
|
- columnName: v.split("_")[0],
|
|
|
- columnId: v.split("_")[1],
|
|
|
- };
|
|
|
+ let treeArr = [];
|
|
|
+ this.customTreeMap.forEach((v, i) => {
|
|
|
+ if (this.checkedList.includes(i)) {
|
|
|
+ treeArr.push(v);
|
|
|
}
|
|
|
});
|
|
|
- this.modifyModel("notOverlay", newData);
|
|
|
+ let bindLayer = this.createTree(treeArr);
|
|
|
+ this.modifyModel("notOverlay", bindLayer);
|
|
|
}
|
|
|
|
|
|
// console.log(this.$store.state.customModelsArr, "先获取的模型数据");
|
|
@@ -675,24 +642,18 @@ export default {
|
|
|
if (this.overlayBtnChecked && !this.forbidOverlayBtn) {
|
|
|
// 进行叠置分析后,叠置分析结果会自动保存
|
|
|
// 当前勾选的图层并未自动保存,需要重新调用一次保存接口
|
|
|
- // let newData = this.checkedList.filter((v) => {
|
|
|
- // if (
|
|
|
- // layerAuthorityMap.has(v) &&
|
|
|
- // layerAuthorityMap.get(v) === "有权限"
|
|
|
- // ) {
|
|
|
- // return v;
|
|
|
- // }
|
|
|
- // });
|
|
|
- let bindLayer = this.checkedList.map((v) => {
|
|
|
- return {
|
|
|
- columnName: v.split("_")[0],
|
|
|
- columnId: v.split("_")[1],
|
|
|
- };
|
|
|
+ let treeArr = [];
|
|
|
+ this.customTreeMap.forEach((v, i) => {
|
|
|
+ if (this.checkedList.includes(i)) {
|
|
|
+ treeArr.push(v);
|
|
|
+ }
|
|
|
});
|
|
|
+
|
|
|
+ let bindLayer = this.createTree(treeArr);
|
|
|
let params = new FormData();
|
|
|
params = {
|
|
|
modelId: this.currentModifiedModelId,
|
|
|
- bindLayer: JSON.stringify(bindLayer),
|
|
|
+ userId: localStorage.getItem("USER_ID"),
|
|
|
};
|
|
|
this.$Post(this.urlsCollection.overlayAnalysis, params).then((res) => {
|
|
|
console.log(res, "res");
|