|
@@ -141,7 +141,7 @@
|
|
|
</el-form>
|
|
|
</div>
|
|
|
<!-- 间隔、装置列表 -->
|
|
|
- <div style="margin-top: 10px">
|
|
|
+ <div >
|
|
|
<el-button class="backs" @click="backMent">返回</el-button>
|
|
|
<el-button
|
|
|
style="width: 124px; height: 30px; background: #255ce7"
|
|
@@ -154,22 +154,29 @@
|
|
|
<!-- 间隔列表 -->
|
|
|
<div class="gapBox">
|
|
|
<div
|
|
|
- style="
|
|
|
- display: flex;
|
|
|
- justify-content: flex-start;
|
|
|
- align-items: center;
|
|
|
- margin: 5px;
|
|
|
- "
|
|
|
+ class="interval"
|
|
|
+ style="justify-content: space-between; margin: 5px"
|
|
|
>
|
|
|
- <div>
|
|
|
+ <div class="interval">
|
|
|
<img
|
|
|
src="../../../assets/icon/DotsNine.png"
|
|
|
alt=""
|
|
|
+ class="img-interval"
|
|
|
style="vertical-align: middle"
|
|
|
/>
|
|
|
+ <span
|
|
|
+ style="
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 400;
|
|
|
+ height: 24px;
|
|
|
+ line-height: 24px;
|
|
|
+ margin-left: 5px;
|
|
|
+ "
|
|
|
+ >间隔列表</span
|
|
|
+ >
|
|
|
</div>
|
|
|
- <div style="height: 24px; line-height: 22px; margin-left: 5px">
|
|
|
- <span style="font-size: 16px; font-weight: 400">间隔列表</span>
|
|
|
+ <div class="img-interval border-r" @click="addInterval">
|
|
|
+ <img :src="addPng" class="img-interval" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- <p :class="jgSelect == index ? 'result' : ''" v-for="(item, index) in jgList"
|
|
@@ -182,16 +189,26 @@
|
|
|
:data="anyData"
|
|
|
@node-click="handleCheckChange"
|
|
|
node-key="id"
|
|
|
+ highlight-current
|
|
|
>
|
|
|
<template #default="{ node, data }">
|
|
|
- <el-badge
|
|
|
- v-if="data.isLog"
|
|
|
- :value="data.filterLength"
|
|
|
- class="item"
|
|
|
- >
|
|
|
- <span>{{ node.label }}</span>
|
|
|
- </el-badge>
|
|
|
- <span v-else>{{ node.label }}</span>
|
|
|
+ <div class="trees interval">
|
|
|
+ <el-badge
|
|
|
+ v-if="data.isLog"
|
|
|
+ :value="data.filterLength"
|
|
|
+ class="item"
|
|
|
+ >
|
|
|
+ <span>{{ node.label }}</span>
|
|
|
+ </el-badge>
|
|
|
+ <span v-else>{{ node.label }}</span>
|
|
|
+ <img
|
|
|
+ v-if="loadAreaId == data.area_id"
|
|
|
+ @click="delInterval(data)"
|
|
|
+ :src="ClosePng"
|
|
|
+ alt=""
|
|
|
+ class="img-interval-child"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-tree>
|
|
|
</div>
|
|
@@ -264,9 +281,10 @@
|
|
|
@click="tagClick(item, index)"
|
|
|
size="large"
|
|
|
:class="item.isChoose ? 'mx-2' : 'mx-1'"
|
|
|
- closable="true"
|
|
|
+ closable
|
|
|
effect="plain"
|
|
|
- @close="tagClose(item)"
|
|
|
+ @close="tagClose(item, index)"
|
|
|
+ style="cursor: pointer"
|
|
|
>
|
|
|
{{ "[" + item.ied_name + "]" + (item.attr_desc || "") }}
|
|
|
<span style="color: rgb(112, 112, 210); font-weight: bold">{{
|
|
@@ -342,6 +360,8 @@ import CheckIed from "../modalComp/CheckIed.vue";
|
|
|
import database from "@/assets/image/database.png";
|
|
|
import clickChose from "@/assets/image/click_chose.png";
|
|
|
import scdicon from "@/assets/image/scdicon.png";
|
|
|
+import addPng from "@/assets/image/scdcheck/add.png";
|
|
|
+import ClosePng from "@/assets/image/Close.png";
|
|
|
import { ElMessage, ElMessageBox, ElLoading } from "element-plus";
|
|
|
export default {
|
|
|
props: {
|
|
@@ -465,6 +485,12 @@ export default {
|
|
|
treeNeedAry.push(item.sys_model_id);
|
|
|
return item.model_id;
|
|
|
});
|
|
|
+ areaType.value = arr.join();
|
|
|
+ // res.data.forEach(item=>{
|
|
|
+ // arrType.push(item.area_id);
|
|
|
+ // areaType.value = arrType.join();
|
|
|
+ // })
|
|
|
+ console.log('arr======', arr)
|
|
|
newMission.value.cmodel = modelnames.join(",");
|
|
|
mxId.value = arr;
|
|
|
treeNeed.value = treeNeedAry;
|
|
@@ -482,12 +508,15 @@ export default {
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
+ const modelId = ref(null);
|
|
|
+ const areaType = ref('');
|
|
|
function loadAreaInfo(scdid) {
|
|
|
mx.value = [];
|
|
|
iedLoading.value = true;
|
|
|
scd.getLoadScd({ scd_id: scdid }).then((res) => {
|
|
|
iedLoading.value = false;
|
|
|
if (res.code == 0) {
|
|
|
+
|
|
|
successScd.value = true;
|
|
|
if (res.data == null) {
|
|
|
ElMessage({
|
|
@@ -496,6 +525,8 @@ export default {
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
+ modelId.value = res.data.length?res.data[0].model_id:null;
|
|
|
+ const arrType= [];
|
|
|
anyData.value = res.data.map((item) => {
|
|
|
//获取可能有问题的ied数量,比如没找到的装置
|
|
|
let alertieds =
|
|
@@ -658,6 +689,7 @@ export default {
|
|
|
});
|
|
|
}
|
|
|
function handleCheckChange(e) {
|
|
|
+ console.log("e====", e);
|
|
|
jg.value = e.area_name;
|
|
|
loadAreaId.value = e.area_id;
|
|
|
flashLevel.value = e.model_name.split("]")[1];
|
|
@@ -754,12 +786,13 @@ export default {
|
|
|
});
|
|
|
}
|
|
|
function tagClose(row, num) {
|
|
|
+ console.log("row", row, num);
|
|
|
ElMessageBox.confirm(
|
|
|
"确认从该间隔移除当前装置" + row.ied_name + "吗?",
|
|
|
"删除装置"
|
|
|
)
|
|
|
.then(() => {
|
|
|
- mx.value.splice(mx.value.indexOf(row), 1);
|
|
|
+ mx.value.splice(num, 1);
|
|
|
iedName.value = mx.value.map((item) => item.ied_name).join(",");
|
|
|
})
|
|
|
.catch(() => {});
|
|
@@ -782,6 +815,7 @@ export default {
|
|
|
emit("createBack", 0);
|
|
|
}
|
|
|
function treeBack(data) {
|
|
|
+ console.log('data', data)
|
|
|
treeMool.value = data;
|
|
|
}
|
|
|
function modelOpen() {
|
|
@@ -789,6 +823,7 @@ export default {
|
|
|
}
|
|
|
//模型树选择返回的模型数据
|
|
|
function treeNum(data, name) {
|
|
|
+ console.log('data=====', data)
|
|
|
mxId.value = data;
|
|
|
// cmodel.value = name.toString()
|
|
|
newMission.value.cmodel = name.toString();
|
|
@@ -883,7 +918,57 @@ export default {
|
|
|
// 用户点击取消或关闭对话框
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
+ //新增间隔
|
|
|
+ const addInterval = () => {
|
|
|
+ ElMessageBox.prompt("名称", "添加间隔", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ inputPattern: /.+/,
|
|
|
+ inputErrorMessage: "间隔名称不能为空",
|
|
|
+ })
|
|
|
+ .then(async ({ value }) => {
|
|
|
+ const types = mxId.value.filter(item=>item != undefined)
|
|
|
+ const data = {
|
|
|
+ area_name:value,
|
|
|
+ scd_id:loadScdId.value - 0,
|
|
|
+ model_id:modelId.value - 0,
|
|
|
+ area_type:types.join()
|
|
|
+ }
|
|
|
+ const res = await task.intervalAdd(data);
|
|
|
+ const meg =
|
|
|
+ res && res.code == 0
|
|
|
+ ? { type: "success", message: `添加成功` }
|
|
|
+ : { type: "error", message: `添加失败` };
|
|
|
+ ElMessage(meg);
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ };
|
|
|
+ //删除间隔
|
|
|
+ const delInterval = (data) => {
|
|
|
+ console.log('data', data)
|
|
|
+ ElMessageBox
|
|
|
+ .confirm(
|
|
|
+ `确认删除 [${data.area_name}] 间隔吗?`,
|
|
|
+ "提示",
|
|
|
+ {
|
|
|
+ confirmButtonText: "确认",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ }
|
|
|
+ )
|
|
|
+ .then(async () => {
|
|
|
+ const res = await task.intervalDel({scd_id:loadScdId.value - 0,area_id :data.area_id});
|
|
|
+ const meg =
|
|
|
+ res && res.code == 0
|
|
|
+ ? { type: "success", message: `删除成功` }
|
|
|
+ : { type: "error", message: `删除失败` };
|
|
|
+ ElMessage(meg);
|
|
|
+ if(res && res.code == 0){
|
|
|
+ loadAreaInfo(loadScdId.value * 1);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ };
|
|
|
onMounted(() => {
|
|
|
searchAllFlash();
|
|
|
reload();
|
|
@@ -958,6 +1043,10 @@ export default {
|
|
|
database,
|
|
|
clickChose,
|
|
|
scdicon,
|
|
|
+ addPng,
|
|
|
+ addInterval, //添加间隔
|
|
|
+ delInterval,
|
|
|
+ ClosePng,
|
|
|
};
|
|
|
},
|
|
|
components: {
|
|
@@ -1132,4 +1221,29 @@ em {
|
|
|
box-shadow: inset 0px 2px 1px 0px rgba(255, 255, 255, 0.6),
|
|
|
0px 2px 4px 0px rgba(138, 157, 205, 0.63);
|
|
|
}
|
|
|
+.interval {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+.img-interval {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+}
|
|
|
+.img-interval-child {
|
|
|
+ width: 14px;
|
|
|
+ height: 14px;
|
|
|
+ border: 1px solid #e50505;
|
|
|
+ border-radius: 3px;
|
|
|
+}
|
|
|
+.border-r {
|
|
|
+ border: 1px solid #255ce7;
|
|
|
+ border-radius: 3px;
|
|
|
+}
|
|
|
+.trees {
|
|
|
+ width: 90%;
|
|
|
+ justify-content: space-between;
|
|
|
+ img {
|
|
|
+ margin-right: 3px;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|