소스 검색

处理任务的模型选择及保存bug
优化间隔下问题装置提示方式及列表获取
处理直接编辑任务模型时,保存时还是为系统模型及相关bug

liling 1 년 전
부모
커밋
136dff3cd5
3개의 변경된 파일43개의 추가작업 그리고 22개의 파일을 삭제
  1. 3 3
      src/pages/components/draw/DrawDesigns.vue
  2. 38 16
      src/pages/mission/components/CreateMis.vue
  3. 2 3
      src/pages/mission/components/HaveMis.vue

+ 3 - 3
src/pages/components/draw/DrawDesigns.vue

@@ -282,10 +282,10 @@ export default {
         function momal() {
             lf.value.graphModel.moveNode2Coordinate(copyId.value, setX.value - 0, setY.value - 0, true);
         }
-        function lastRender() {
+        function lastRender() {            
             loading.value = true
             modelId.value = route.query.modelid
-            cid.getModelInfo({ id: modelId.value - 0, pageno: 1, pagesize: 20 }).then(res => {
+            cid.getModelInfo({ id: modelId.value - 0,is_sys:0, pageno: 1, pagesize: 20 }).then(res => {
                 modelIedTypes.value = res.data[0].ied_types!=null ? res.data[0].ied_types.split(","):[]
                 if (res.data[0].relation_json == null || res.data[0].relation_json == '') return;
                 const origiondata = JSON.parse(res.data[0].relation_json)
@@ -309,7 +309,7 @@ export default {
             numCase.value = props.svOrGoose//判断sv或者goose类型
             copyColor.value = props.lineMenuColor//颜色
             setTimeout(() => {
-                cid.getModelInfo({ id: copyObj.value.id ? copyObj.value.id : route.query.modelid - 0, pageno: 1, pagesize: 20 }).then(res => {
+                cid.getModelInfo({ id: copyObj.value.id ? copyObj.value.id : route.query.modelid - 0,is_sys:copyObj.value.id?1:2, pageno: 1, pagesize: 20 }).then(res => {
                     emit("drawCor", res.data)
                     const filteredArray = res.data[0].ied_type.filter(param => param !== null)
                     let groups = {

+ 38 - 16
src/pages/mission/components/CreateMis.vue

@@ -86,7 +86,7 @@
                     <!-- <el-tree :props="anyProps" :data="anyData" @node-click="handleCheckChange" /> -->
                     <el-tree :props="anyProps" :data="anyData" @node-click="handleCheckChange" node-key="id">
                         <template #default="{ node, data }">
-                            <el-badge v-if="data.isLog" :value="filterLength" class="item">
+                            <el-badge v-if="data.isLog" :value="data.filterLength" class="item">
                                 <span>{{ node.label }}</span>
                             </el-badge>
                             <span v-else>{{ node.label }}</span>
@@ -101,7 +101,7 @@
                         </div>
                         <div style="height: 24px;line-height: 22px;margin-left: 5px;">
                             <span style="font-size: 16px;font-weight: 400;">装置列表——间隔:<em>{{ jg }}</em></span>
-                            <span style="font-size: 16px;font-weight: 400;">检测模型:<em>{{ flashLevel ? flashLevel : ''
+                            <span style="font-size: 16px;font-weight: 400;margin-left:50px">检测模型:<em>{{ flashLevel ? flashLevel : ''
                                     }}</em></span>
                         </div>
                         <div
@@ -112,7 +112,7 @@
                             </div> -->
 
                             <div style="margin: 5px;">
-                                <el-button type="primary" size="small" plain @click="checkTime">选择装置</el-button>
+                                <el-button type="primary" size="small" plain @click="checkTime">追加装置</el-button>
                             </div>
                         </div>
                     </div>
@@ -246,6 +246,7 @@ export default {
         let editAndAdd = ref("新建检测任务")
         let textIs = ref(false)
         let filterLength = ref(0)//装置筛选有无attr_desc属性时的数组长度
+        let editTask_models=ref([])//编辑任务时的原模型列表。保存时需要与选择的模型进行差异对比
         watch(() => props.editRow, (newVal) => {
             needEdit.value = newVal
         })
@@ -278,8 +279,9 @@ export default {
                             let modelnames = res.data.models.map((item, index) => {
                                 return item.model_name
                             })
+                            editTask_models.value = res.data.models
                             let arr = res.data.models.map((item, index) => {
-                                return item.sys_model_id
+                                return item.model_id
                             })
                             newMission.value.cmodel = modelnames.join(',')
                             mxId.value = arr
@@ -292,7 +294,11 @@ export default {
                                 if (res.code == 0) {
                                     successScd.value = true
                                     anyData.value = res.data.map(item => {
-                                        return { ...item, isLog: false }; // 使用展开运算符为每个对象添加一个名为 isLog 的新属性,并设置其值为 true
+                                        //获取可能有问题的ied数量,比如没找到的装置
+                                        let alertieds= item.ieds==null ? [] : item.ieds.filter((r)=>{
+                                            return r.attr_desc==null || r.attr_desc=='';
+                                        })
+                                        return { ...item, isLog: alertieds.length>0 ? true : false,filterLength:alertieds.length }; // 使用展开运算符为每个对象添加一个名为 isLog 的新属性,并设置其值为 true
                                     });
                                 }
                             })
@@ -359,6 +365,16 @@ export default {
         function saveMent() {//保存检测任务
             myForm.value.validate((val) => {
                 if (val) {
+                    let tmpmodelid=mxId.value.toString().split(',')
+                    for(let i=0;i<tmpmodelid.length;i++){
+                        for(let j=0;i<editTask_models.value.length;j++){
+                            if(tmpmodelid[i]==editTask_models.value[j].sys_model_id || tmpmodelid[i]==editTask_models.value[j].model_id){
+                                tmpmodelid[i] = editTask_models.value[j].model_id
+                                break
+                            }
+                        }
+                    }
+                    mxId.value=tmpmodelid.join(",")
                     saveLoading.value = true
                     task.createTask({
                         // id: newMission.value.misId - 0,
@@ -382,7 +398,11 @@ export default {
                                 if (res.code == 0) {
                                     successScd.value = true
                                     anyData.value = res.data.map(item => {
-                                        return { ...item, isLog: false }; // 使用展开运算符为每个对象添加一个名为 isLog 的新属性,并设置其值为 true
+                                        //获取可能有问题的ied数量,比如没找到的装置
+                                        let alertieds= item.ieds==null ? [] : item.ieds.filter((r)=>{
+                                            return r.attr_desc==null || r.attr_desc=='';
+                                        })
+                                        return { ...item, isLog: alertieds.length>0 ? true : false,filterLength: alertieds.length}; // 使用展开运算符为每个对象添加一个名为 isLog 的新属性,并设置其值为 true
                                     });
                                 } else {
                                     ElMessage({
@@ -434,7 +454,17 @@ export default {
         function handleCheckChange(e) {
             jg.value = e.area_name
             loadAreaId.value = e.area_id
-            flashLevel.value = e.model_name.split(']')[1]
+            flashLevel.value = e.model_name.split(']')[1]  
+            //优先从间隔结果中查找其ied装置列表,如果没找到,则尝试调用接口获取          
+            let areaInfo = anyData.value.filter((r)=>{
+                return r.area_id==e.area_id
+            })
+            if(areaInfo.length>0){
+                mx.value = areaInfo[0].ieds.map(item => ({ ...item, isChoose: false }));
+                iedName.value = mx.value.map(item => item.ied_name).join(',')
+                return
+            }
+            //调用接口获取
             iedLoading.value = true
             scd.getTikIed({ scd_id: loadScdId.value - 0, area_id: e.area_id - 0 }).then(res => {
                 if (res.data != null) {
@@ -446,14 +476,6 @@ export default {
                             return param
                         }
                     })
-                    // 去除掉undefined
-                    const filteredArray = ccc.filter(item => item !== undefined);
-                    console.log(filteredArray, 'filter');
-                    if (filteredArray.length > 0) {
-                        filterLength.value = filteredArray.length
-                        e.isLog = true
-                        console.log(e, '修改');
-                    }
                     iedLoading.value = false
                 } else {
                     mx.value = []
@@ -463,7 +485,6 @@ export default {
         }
         function iedSave() {
             scd.stickIed({ scd_id: loadScdId.value - 0, area_id: loadAreaId.value - 0, ied_ids: iedName.value }).then(res => {
-                console.log(res, 'res');
                 if (res.code == 0) {
                     ElMessage({
                         type: "success",
@@ -509,6 +530,7 @@ export default {
         function modelOpen() {
             treeMool.value = true
         }
+        //模型树选择返回的模型数据
         function treeNum(data, name) {
             mxId.value = data
             // cmodel.value = name.toString()

+ 2 - 3
src/pages/mission/components/HaveMis.vue

@@ -9,7 +9,7 @@
         <p class="nowModel" v-if="lookingTask.name">
           <span style="margin-right: 15px;">检测模型:</span>
           <el-select v-model="currEditTaskModels" @change="relison"><el-option v-for="(item, index) in taskModels"
-              :title="item.model_name" :key="index" :label="item.model_name" :value="item.sys_model_id" /></el-select>
+              :title="item.model_name" :key="index" :label="item.model_name" :value="item.model_id" /></el-select>
           <span style="margin: 10px;cursor: pointer;"><img src="../../../assets/icon/pencil.png" alt="编辑所选模型"
               @click="editTaskModel" /></span>
         </p>
@@ -201,7 +201,7 @@ export default {
 
     function editTaskModel() {
       // 跳转到内置模型编辑组件
-      let m1 = taskModels.value.filter(item => item.sys_model_id == currEditTaskModels.value)
+      let m1 = taskModels.value.filter(item => item.model_id == currEditTaskModels.value)
       if (m1.length === 0) return
       router.push({
         path: "/home/setting",
@@ -262,7 +262,6 @@ export default {
             }
           });
           misList.value = res.data;
-          console.log(misList.value, 'misList');
           emit("haveBack", misList.value);
           loading.close()
         }