4 次代码提交 a867b9ef50 ... f20ca5a161

作者 SHA1 备注 提交日期
  liyangzheng f20ca5a161 5 1 年之前
  “yueshang” 57884ee8ba 修改bug 1 年之前
  liling 2678d3b43c Merge branch 'master' of http://94.191.59.107:3000/houwenfeng/scd_tools_ui into liling 1 年之前
  liling ec0fd056b9 修复一些BUG 1 年之前

+ 4 - 0
src/pages/components/HeadMenu.vue

@@ -108,6 +108,10 @@ export default {
         // 初始化组件
         function reload() {
             userInfo.value = JSON.parse(sessionStorage.getItem("userInfo"))
+            if(userInfo.value==null){
+                router.push('/login')
+                return
+            }
             username.value = userInfo.value.userinfo.name
         }
         // 获取日期

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

@@ -198,10 +198,10 @@ export default {
             });//设置连接线为橙色
         }
         function delLine() {
-            if (delId.value) {
+            if (delId.value!="") {
                 lf.value.deleteEdge(delId.value)//删除选择的连接线
             }
-            if (nodeId.value) {
+            if (nodeId.value!="") {
                 lf.value.deleteNode(nodeId.value)//删除节点
             }
         }
@@ -223,6 +223,9 @@ export default {
                             message: "保存成功!",
                             duration: 2000,
                         })
+                        if(res.data!=null && res.data!=""){
+                            modelIedTypes.value = res.data.IedTypes!=null ?res.data.IedTypes.split(","):[]
+                        }
                     } else {
                         ElMessage({
                             message: res.msg,
@@ -502,14 +505,6 @@ export default {
                     fontSize: 12,
                 },//节点内文字样式
             });
-            lf.value.on("edge:click", function (data, e, position) {
-                delId.value = data.data.id
-                // if (copyColor.value == '#255CE7') {
-                //     lf.value.graphModel.updateText(data.data.id, "GOOSE");
-                // } else if (copyColor.value == 'orange') {
-                //     lf.value.graphModel.updateText(data.data.id, "SV");
-                // }
-            })
             lf.value.on("edge:add", function (data, e, position) {
                 if (copyColor.value == '#255CE7') {
                     blue()
@@ -525,6 +520,7 @@ export default {
             lf.value.on('node:click', function (data, e, position) {//传送坐标轴参数到父组件
                 copyId.value = data.data.id
                 nodeId.value = data.data.id
+                delId.value = "" //清除选择的连线ID
                 setX.value = data.data.x
                 setY.value = data.data.y
                 emit("backxy", setX.value, setY.value)
@@ -546,9 +542,11 @@ export default {
                 }
                 iedType.value = data.data.properties.ied_type
                 nodeid.value = data.data.properties.id
+                delId.value=""
                 abModal.value = true
             })
             lf.value.on('edge:dbclick', function (data, e, position) {//双击连接线
+                nodeId.value = "" //清除选择的节点Id
                 let start = lf.value.getNodeModelById(data.data.sourceNodeId)//获取连线开始节点
                 let end = lf.value.getNodeModelById(data.data.targetNodeId)//获取连线结尾节点
                 if(!modelIedTypes.value.includes(start.properties.ied_type) ||!modelIedTypes.value.includes(end.properties.ied_type)){
@@ -572,6 +570,8 @@ export default {
             })
             // console.log(lf.value.graphModel,'sss');
             lf.value.on('edge:click', function (data, e, position) {//解决点击连接线问题
+                delId.value = data.data.id
+                nodeId.value = "" //清除选择的节点Id
                 if (copyColor.value == '#255CE7') {
                     blue()
                     lf.value.changeEdgeType(data.data.id, "baseEdge")

+ 3 - 2
src/pages/components/drawModal/GroupModelAdd.vue

@@ -4,7 +4,8 @@
             :close-on-click-modal="false">
             <span>组合装置编码:</span>
             <el-input v-model="iedValue" :maxlength="5" :show-word-limit="true" style="width: 300px;"
-                placeholder="请输入编码,仅支持大写英文字母"></el-input>
+                placeholder="请输入编码,仅支持大写英文字母或#"></el-input>
+            <div>编码说明:区分电压等级时,使用编码#电压组合方式,其中高压为H,中压为M,低压为L,本体为0,差动为C,如:PT#H,PT#0,PT#C;</div>
             <template #footer>
                 <span class="dialog-footer">
                     <el-button @click="cancels">取消</el-button>
@@ -50,7 +51,7 @@ export default {
         }
         // 确认按钮
         function modalSure() {
-            const reg= /^[A-Za-z]+$/;
+            const reg= /^[A-Za-z#]+$/;
             const v = iedValue.value.replace(/ /g,'')
             if (v == '' || !reg.test(v)) {
                 ElMessage({

+ 8 - 3
src/pages/components/drawModal/LineDouble.vue

@@ -14,8 +14,8 @@
                         <div style="margin-bottom: 10px;" v-for="(item, index) in curList"
                             @click="setIndex(item, index)">
                             <span :class="index == leftIndex ? 'result' : 'anther'">{{ index + 1 }}</span>
-                            <span :class="index == leftIndex ? 'results' : 'anthers'" :id="item.id">{{ item.fcda_name
-                                }}</span>
+                            <span :title="item.func_name" :class="index == leftIndex ? 'results' : 'anthers'" :id="item.id">{{ item.fcda_name
+                                }}</span> 
                         </div>
                     </div>
                 </div>
@@ -33,7 +33,7 @@
                     <div style="height: auto;">
                         <div v-for="(item, index) in outList">
                             <el-checkbox-group v-model="checkList" @change="checkChange(item)">
-                                <el-checkbox :id="item.id" :label="item.id" :key="item.id">
+                                <el-checkbox :id="item.id" :label="item.id" :key="item.id" :title="item.func_name">
                                     {{ item.fcda_name }}
                                 </el-checkbox>
                             </el-checkbox-group>
@@ -600,6 +600,7 @@ export default {
     background-color: #D9E6FE;
     color: blue;
     margin-right: 10px;
+    font-size: 12px;
 }
 
 .anther {
@@ -612,6 +613,7 @@ export default {
     background-color: #F5FAFE;
     color: black;
     margin-right: 10px;
+    font-size: 12px;
 }
 
 .results {
@@ -624,6 +626,7 @@ export default {
     background-color: #D9E6FE;
     color: blue;
     padding-left: 5px;
+    font-size: 12px;
 }
 
 .anthers {
@@ -636,6 +639,7 @@ export default {
     background-color: #F5FAFE;
     color: black;
     padding-left: 5px;
+    font-size: 12px;
 }
 
 .background {
@@ -680,6 +684,7 @@ export default {
     margin-left: 10px !important;
     line-height: 42px !important;
     text-align: center;
+    font-size: 12px !important;
 }
 
 .leader-line {

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

@@ -276,17 +276,19 @@ export default {
                     loadScdId.value = needEdit.value.scd_id//scdid
                     editAndAdd.value = '编辑检测任务'
                     task.getTaskById({ id: needEdit.value.id - 0 }).then(res => {
-                        if (res.data != null) {
+                        if (res.data != null && res.data.models!=null) {
                             let modelnames = res.data.models.map((item, index) => {
                                 return item.model_name
                             })
                             editTask_models.value = res.data.models
+                            let treeNeedAry=[]
                             let arr = res.data.models.map((item, index) => {
+                                treeNeedAry.push(item.sys_model_id)
                                 return item.model_id
                             })
                             newMission.value.cmodel = modelnames.join(',')
                             mxId.value = arr
-                            treeNeed.value = arr
+                            treeNeed.value = treeNeedAry
                             checkedNodeNames.value = modelnames
                             loadScdId.value = res.data.scd_id
                             scdName.value = res.data.scd_info.scd_name
@@ -308,6 +310,13 @@ export default {
                 iedLoading.value = false
                 if (res.code == 0) {
                     successScd.value = true
+                    if(res.data==null){
+                        ElMessage({
+                            message: "未解析到间隔",
+                            type: "info"
+                        })
+                        return
+                    }
                     anyData.value = res.data.map(item => {
                         //获取可能有问题的ied数量,比如没找到的装置
                         let alertieds= item.ieds==null ? [] : item.ieds.filter((r)=>{
@@ -374,7 +383,11 @@ export default {
                 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++){
+                        for(let j=0;j<editTask_models.value.length;j++){
+                            if(editTask_models.value[j].sys_model_id==null){
+                                tmpmodelid[i] = editTask_models.value[j].model_id
+                                break
+                            }
                             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

+ 1 - 1
src/pages/mission/modalComp/ModelTree.vue

@@ -108,7 +108,7 @@ export default {
                     loading.value = false
                     lord.style.display = 'none'
                 }
-                treeRef.value.setCheckedKeys(checkKey.value)
+                treeRef.value.setCheckedKeys(checkKey.value)             
                 if( checkKey.value != null) {
                     mdId.value = checkKey.value
                     mdName.value = checkNames.value

+ 1 - 0
src/pages/netStructPicture/components/CidTree.vue

@@ -332,6 +332,7 @@ const tagClick = (row, num) => {
   })
   tagChoose.value = num;
   clickTage.value = row;
+  emit("treeBack", row)
   // cid
   //   .findFile({
   //     scd_id: route.query.id,

+ 26 - 30
src/pages/netStructPicture/components/Gsix.vue

@@ -10,7 +10,6 @@ import newly0 from "@/assets/image/CID/newly0.png";
 import LeaderLine from "../../../../public/leader-line.min.js";
 import AnimEvent from "../../../../public/anim-event.min.js";
 import { hiddenLine2, hiddenLineDialog } from "@/utils/linesPosition";
-import cid from "@/api/cid/cid";
 import jiantou from "@/assets/image/CID/jiantou.png";
 import { useRoute } from "vue-router";
 const route = useRoute();
@@ -164,7 +163,7 @@ const getData = async () => {
     comptype: "u",
     itemcode: cClickCode.value,
   });
-  if (!res.data || !res.data.length) return (loading.value = false);
+  if (!res||!res.data || !res.data.length) return (loading.value = false);
   if (res.data && cClickCode.value != "scd.ied") {
     res.data.forEach((item) => {
       let text;
@@ -222,7 +221,7 @@ const clickTypeImg = (item, event) => {
   setTimeout(() => {
     setLeaderlines("add");
     newPositionLine2(leaderLineShow.value);
-  }, 100);
+  }, 200);
   comonTypeImg(item, event);
 };
 const clickTypeImgDel = (item, event) => {
@@ -909,7 +908,7 @@ onMounted(() => {
   if (props.iedRelation) {
     tagList.value = Object.values(props.iedRelation)[0];
   }
-  if (clickRow.value && clickRow.value.id) {
+  if (clickRow.value && clickRow.value.id&&!props.isCid) {
     getData();
   }
 });
@@ -947,20 +946,19 @@ onMounted(() => {
             v-for="(item, index) in dataU"
             :key="index"
             class="left-item-cont"
-            @click="
+            :ref="(el) => setdomLeftMain(el, item.diff_object_name)"
+            :id="item.diff_object_name.replace(/[^\w\s]/g, '')"
+          >
+            <div class="item-img">
+              <img :src="codeImg" alt="" class="type-img"   @click="
               clickUpTypeImgLeft(
                 item.diff_desc,
                 $event,
                 item.diff_object_name,
                 item
               )
-            "
-            :ref="(el) => setdomLeftMain(el, item.diff_object_name)"
-            :id="item.diff_object_name.replace(/[^\w\s]/g, '')"
-          >
-            <div class="item-img">
-              <img :src="codeImg" alt="" class="type-img" />
-              <img :src="modify0" alt="" class="type-img-mini" />
+            "/>
+              <img loading="lazy" :src="modify0" alt="" class="type-img-mini" />
             </div>
             <div class="wraps">{{ item.diff_object_name }}</div>
           </div>
@@ -972,8 +970,8 @@ onMounted(() => {
             id="leftBasic"
           >
             <div class="item-img">
-              <img :src="codeImg" alt="" class="type-img" />
-              <img :src="modify0" alt="" class="type-img-mini" />
+              <img loading="lazy"  :src="codeImg" alt="" class="type-img" />
+              <img loading="lazy"  :src="modify0" alt="" class="type-img-mini" />
             </div>
             <div class="wraps">基本信息</div>
           </div>
@@ -984,12 +982,11 @@ onMounted(() => {
             v-for="(item, index) in leftI"
             :key="index"
             class="left-item-cont"
-            @click="clickTypeImg(item, $event)"
             :ref="(el) => setdomLeftMain(el, item.diff_object_name)"
           >
             <div class="item-img">
-              <img :src="codeImg" alt="" class="type-img" />
-              <img :src="newly0" alt="" class="type-img-mini" />
+              <img loading="lazy" :src="codeImg" alt="" class="type-img"  @click="clickTypeImg(item, $event)"/>
+              <img loading="lazy" :src="newly0" alt="" class="type-img-mini" />
             </div>
             <div class="wraps">{{ item.diff_object_name }}</div>
           </div>
@@ -1036,20 +1033,20 @@ onMounted(() => {
             v-for="(item, index) in dataU"
             :key="index"
             class="left-item-cont"
-            @click="
+            
+            :id="item.diff_object_name.replace(/[^\w\s]/g, '')"
+            :ref="(el) => setdomRightMain(el, item.diff_object_name)"
+          >
+            <div class="item-img">
+              <img :src="codeImg" alt="" class="type-img" @click="
               clickUpTypeImgRight(
                 item.diff_desc,
                 $event,
                 item.diff_object_name,
                 item
               )
-            "
-            :id="item.diff_object_name.replace(/[^\w\s]/g, '')"
-            :ref="(el) => setdomRightMain(el, item.diff_object_name)"
-          >
-            <div class="item-img">
-              <img :src="codeImg" alt="" class="type-img" />
-              <img :src="modify0" alt="" class="type-img-mini" />
+            "/>
+              <img loading="lazy" :src="modify0" alt="" class="type-img-mini" />
             </div>
             <div class="wraps">{{ item.diff_object_name }}</div>
           </div>
@@ -1061,8 +1058,8 @@ onMounted(() => {
             id="rightBasic"
           >
             <div class="item-img">
-              <img :src="codeImg" alt="" class="type-img" />
-              <img :src="modify0" alt="" class="type-img-mini" />
+              <img loading="lazy" :src="codeImg" alt="" class="type-img" />
+              <img loading="lazy" :src="modify0" alt="" class="type-img-mini" />
             </div>
             <div class="wraps">基本信息</div>
           </div>
@@ -1073,12 +1070,11 @@ onMounted(() => {
             v-for="(item, index) in rightD"
             :key="index"
             class="left-item-cont"
-            @click="clickTypeImgDel(item, $event)"
             :ref="(el) => setdomRightMain(el, item.diff_object_name)"
           >
             <div class="item-img">
-              <img :src="codeImg" alt="" class="type-img" />
-              <img :src="del0" alt="" class="type-img-mini" />
+              <img loading="lazy" :src="codeImg" alt="" class="type-img" @click="clickTypeImgDel(item, $event)" />
+              <img loading="lazy" :src="del0" alt="" class="type-img-mini" />
             </div>
             <div class="wraps">{{ item.diff_object_name }}</div>
           </div>

+ 4 - 1
src/pages/netStructPicture/components/ScdNow.vue

@@ -79,6 +79,7 @@
     <div v-else-if="!clickRow" class="no-data">
       请选择比对记录或创建新的比对
     </div>
+    <!-- 新增和 删除 -->
     <dialog-index
       :openBig="openBig"
       @done="done"
@@ -87,6 +88,7 @@
       :scdView="scdView"
       :delScdId="delScdId"
     ></dialog-index>
+    <!-- 点击修改的弹窗  -->
     <scl-update
       :openScl="openScl"
       @doneScl="doneScl"
@@ -271,7 +273,8 @@ const lookAddOrDel = async (comData, del) => {
   if (del == "del" && clickRowData.value.target_id) {
     delScdId.value = clickRowData.value.target_id; //点击删除的scdid要用对比文件的
   } else if (del == "add") {
-    delScdId.value = route.query.id;
+    // delScdId.value = route.query.id;
+    delScdId.value = clickRowData.value.source_id;
   } else if (del == "edit") {
     recordDelIedVer.value = iedVer.value&&iedVer.value.d ? iedVer.value.d.list : null;
   }

+ 1 - 1
src/pages/netStructPicture/components/basicInfo.vue

@@ -1,5 +1,5 @@
 <template>
-  <div id="treedom4" v-loading="loading" style="overflow: hidden">
+  <div id="treedom4" v-loading="loading">
     <div style="position: relative">
       <div class="nav" id="topLine">
         <div

+ 3 - 2
src/pages/netStructPicture/components/inoutControl.vue

@@ -178,7 +178,7 @@ const getIedChild = async () => {
     ied_name: props.checkData.ied_name,
     forcerefresh: 0,
   });
-  if (!listData2.value.list || !childRes.data) return;
+  if (!listData2.value.list || !childRes.data) return loading.value = false;
   if (childRes.data) {
     //左右侧内部侧数据组装
     listData2.value.list.forEach((item, index) => {
@@ -224,7 +224,7 @@ const getNetworkInfo = async () => {
     scd_id: scdIdValue,
     ied_name: listData2.value.ied_name,
   });
-  if (!svResInfoCtrl.data || !svResInfo.data) return;
+  if (!svResInfoCtrl.data || !svResInfo.data) return loading.value = false;
   if (svResInfoCtrl.data && svResInfoCtrl.data.GSEControl) {
     //处理数据得到APPID
     svResInfo.data.forEach((item) => {
@@ -325,6 +325,7 @@ const processArray = (arr) => {
 const clickImg = async (dataItem) => {
   loading.value = true;
   listData2.value = await clickImgEvent(props, dataItem, scdIdValue);
+  if(!listData2.value) return loading.value = false
 };
 
 //点击后重置数据和线条

+ 3 - 2
src/pages/netStructPicture/components/relationShip.vue

@@ -300,12 +300,13 @@ const middleLinePosition = () => {
         setElementMarginTop(leftElement, 92);
         setElementMarginTop(middleElement, 150);
         break;
+       
       default:
         if (!middleElement.value) return;
-        if (rightListLength <= 3 && leftListLength <= 3) {
+        if (rightListLength <= 4 && leftListLength <= 4) {
           setElementMarginTop(middleElement, 150);
         }
-        if (leftListLength > 2 || rightListLength > 2) {
+        if (leftListLength > 4 || rightListLength > 4) {
           setElementMarginTop(rightElement, 0);
           setElementMarginTop(leftElement, 0);
           middleElement.value.style.marginTop = `${(heights - 60) / 2}px`; // 设置元素的垂直位置

+ 1 - 0
src/pages/netStructPicture/components/virtualnformation.vue

@@ -200,6 +200,7 @@ const processBoth = (list, svResInfo, inoutType) => {
           ied_name: item.ied_name,
           reset: 1,
         });
+        if(!item.ied_name||!iedRes.data[item.ied_name]) return;
         item.descName = iedRes.data[item.ied_name].desc;
       } else {
         const iedRes = await scdIedRelation({

+ 3 - 1
src/pages/netStructPicture/index.vue

@@ -183,6 +183,7 @@ const navtopData = ref([
   { name: "虚端子关系图", code: "virtual" },
 ]);
 const activeNav = ref(null);
+const upload = ref(null);//上传按钮的ref
 const backName = ref({}); //树组件返回名称
 let mustVal = ref(false);
 let upName = ref(""); //上传的文件名称
@@ -237,6 +238,7 @@ const closeX = () => {
 };
 const allCidStart = ref([]);
 const nowUpload = (file, e) => {
+  upload.value.clearFiles();
   console.log('files====', file)
   upFile.value = file.file;
   upName.value = file.file.name;
@@ -277,7 +279,7 @@ const nowUpload = (file, e) => {
             })
             .then((res) => {
               ElNotification.closeAll();
-              if (res.code == 0) {
+              if (res&&res.code == 0) {
                 ElMessage({
                   type: "success",
                   message: "对比成功!",

+ 2 - 5
src/pages/netStructPicture/newTitle/SlcCheck.vue

@@ -7,7 +7,7 @@
       <div v-else>SLC效验</div>
       <span class="closeX" @click="closeX">×</span>
     </div>
-    <div class="main">
+    <div class="main" v-loading="tableLoading">
       <div class="treeBox">
         <div class="tree-title">
           <img :src="HardDrives" alt="" />
@@ -71,7 +71,6 @@
       </div>
       <div
         class="tableBox"
-        v-loading="tableLoading"
         element-loading-text="正在查询校验信息中"
       >
         <div class="allMis">
@@ -373,9 +372,7 @@ const common = async () => {
     node_id: nodeId,
     level: levels,
   });
-  if (res.code == 0) {
-    tableLoading.value = false;
-  }
+  if(res||!res)  tableLoading.value = false;
   tableData.value = res;
 };
 //点击全部、错误等

+ 2 - 2
src/pages/report/components/ReportDetails.vue

@@ -174,7 +174,7 @@ export default {
                 name: relathing.value
             }).then(res => {
                 console.log(res, 'oisaghuih');
-                if(res.code==0 && res.data.length>0){
+                if(res.code==0 && res.data.length>0 && res.data[0].doc!=null){
                     btnType.value = false //报告已生成
                     reportUrl.value = res.data[0].doc
                 }
@@ -208,7 +208,7 @@ export default {
                 if (res.data != null) {
                     fileId.value = res.data.TaskId
                     btnType.value = false
-                    reportUrl.value = res.data.doc
+                    reportUrl.value = res.data.Doc
                     ElMessage({
                         message: "生成报告成功",
                         type: "success"

+ 1 - 1
src/pages/system/components/LineTree.vue

@@ -137,7 +137,7 @@ export default {
                         }
                         lineData.value = res.data
                     })
-                } else {
+                } else if(res!=null) {
                     lineData.value = res.data
                 }
             })