Bläddra i källkod

修改内置模型版块bug,翻页各种问题,还未解决完

“yueshang” 1 år sedan
förälder
incheckning
f6eae98896

+ 4 - 4
package-lock.json

@@ -22,6 +22,7 @@
         "leader-line": "^1.0.7",
         "less": "^4.2.0",
         "less-loader": "^11.1.3",
+        "lodash": "^4.17.21",
         "moment": "^2.29.4",
         "mqtt": "^5.3.4",
         "pinia": "^2.1.7",
@@ -9812,9 +9813,8 @@
     },
     "node_modules/lodash": {
       "version": "4.17.21",
-      "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "license": "MIT"
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
     },
     "node_modules/lodash-es": {
       "version": "4.17.21",
@@ -21830,7 +21830,7 @@
     },
     "lodash": {
       "version": "4.17.21",
-      "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
       "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
     },
     "lodash-es": {

+ 1 - 0
package.json

@@ -22,6 +22,7 @@
     "leader-line": "^1.0.7",
     "less": "^4.2.0",
     "less-loader": "^11.1.3",
+    "lodash": "^4.17.21",
     "moment": "^2.29.4",
     "mqtt": "^5.3.4",
     "pinia": "^2.1.7",

+ 39 - 23
src/pages/mission/components/CreateMis.vue

@@ -213,13 +213,18 @@
           </el-tree>
         </div>
         <!-- 装置列表 -->
-        <div class="unitBox">
+        <div
+          class="unitBox"
+          v-loading="iedLoading"
+          element-loading-text="正在解析间隔..."
+        >
           <div
             style="
               display: flex;
               justify-content: flex-start;
               align-items: center;
               margin: 10px 10px;
+              height: 43px;
             "
           >
             <div>
@@ -229,13 +234,20 @@
                 style="vertical-align: middle"
               />
             </div>
-            <div style="height: 24px; line-height: 22px; margin-left: 5px">
+            <div style="height: 24px; margin-left: 5px">
               <span style="font-size: 16px; font-weight: 400"
                 >装置列表——间隔:<em style="color: #255ce7">{{ jg }}</em></span
               >
-              <span style="font-size: 16px; font-weight: 400; margin-left: 50px"
+              <span
+                :title="flashLevel ? flashLevel : ''"
+                style="
+                  font-size: 16px;
+                  cursor: pointer;
+                  font-weight: 400;
+                  margin-left: 30px;
+                "
                 >检测模型:<em style="color: #255ce7">{{
-                  flashLevel ? flashLevel : ""
+                  flashLevel ? flashLevel.slice(0, 4) : ""
                 }}</em></span
               >
             </div>
@@ -271,7 +283,7 @@
               </div> -->
             </div>
           </div>
-          <div v-loading="iedLoading" style="margin: 10px; float: left">
+          <div style="margin: 10px; float: left">
             <!-- <div v-for="(item, index) in mx">
                             {{ item.ied_name }}
                         </div> -->
@@ -316,7 +328,7 @@
         v-if="treeMool"
         :treeMool="treeMool"
         :treeNeed="treeNeed"
-        :spaceInterval ="spaceInterval"
+        :spaceInterval="spaceInterval"
         :checkedNodeNames="checkedNodeNames"
         @treeBack="treeBack"
         @treeNum="treeNum"
@@ -415,6 +427,7 @@ import {
   toRefs,
   nextTick,
 } from "vue";
+import { debounce } from "lodash";
 import flashPower from "../../../api/flashPower";
 import report from "@/api/report";
 import scd from "@/api/scd";
@@ -509,7 +522,7 @@ let editAndAdd = ref("新建检测任务");
 let textIs = ref(false);
 let filterLength = ref(0); //装置筛选有无attr_desc属性时的数组长度
 let editTask_models = ref([]); //编辑任务时的原模型列表。保存时需要与选择的模型进行差异对比
-const spaceInterval = ref([]);//所属间隔的数据
+const spaceInterval = ref([]); //所属间隔的数据
 watch(
   () => props.editRow,
   (newVal) => {
@@ -551,10 +564,13 @@ const reload = () => {
           editTask_models.value = res.data.models;
           spaceInterval.value = res.data.models;
           let treeNeedAry = [];
-          spaceInterval.value = []
+          spaceInterval.value = [];
           let arr = res.data.models.map((item, index) => {
             treeNeedAry.push(item.sys_model_id);
-            spaceInterval.value.push({model_id:item.model_id,model_name:item.model_name})
+            spaceInterval.value.push({
+              model_id: item.model_id,
+              model_name: item.model_name,
+            });
             return item.model_id;
           });
           newMission.value.cmodel = modelnames.join(",");
@@ -578,11 +594,11 @@ const modelId = ref(null);
 const areaType = ref("");
 const loadAreaInfo = (scdid) => {
   mx.value = [];
-  iedLoading.value = true;
   scd.getLoadScd({ scd_id: scdid }).then((res) => {
     iedLoading.value = false;
     if (res.code == 0) {
       successScd.value = true;
+      anyData.value = [];
       if (res.data == null) {
         ElMessage({
           message: "未解析到间隔",
@@ -591,7 +607,6 @@ const loadAreaInfo = (scdid) => {
         return;
       }
       modelId.value = res.data.length ? res.data[0].model_id : null;
-      const arrType = [];
       anyData.value = res.data.map((item) => {
         //获取可能有问题的ied数量,比如没找到的装置
         let alertieds =
@@ -706,7 +721,7 @@ const saveMent = () => {
             saveLoading.value = false;
             // emit("createBack", 0)
             loadAreaInfo(loadScdId.value * 1);
-            reload();//编辑 的时候
+            reload(); //编辑 的时候
           } else {
             ElMessage({
               message: res.msg,
@@ -804,6 +819,7 @@ const handleCheckChange = (e) => {
 const aginParseArea = () => {
   ElMessageBox.confirm("将清除原来的间隔数据,确定吗?", "间隔解析")
     .then(() => {
+      iedLoading.value = true;
       scd
         .aginParseArea({ scd_id: loadScdId.value * 1 })
         .then((res) => {
@@ -820,6 +836,7 @@ const aginParseArea = () => {
               message: res.msg,
               duration: 3000,
             });
+            iedLoading.value = false;
           }
         })
         .catch((res) => {
@@ -901,12 +918,12 @@ const modelOpen = () => {
   treeMool.value = true;
 };
 //模型树选择返回的模型数据 //modelTree.vue返回的id函数
-const treeNum = (data, name,chooseData) => {
+const treeNum = (data, name, chooseData) => {
   mxId.value = data;
-  console.log("选中树返回的model_id   mxId.value ",chooseData);
+  console.log("选中树返回的model_id   mxId.value ", chooseData);
   // cmodel.value = name.toString()
   newMission.value.cmodel = name.toString();
-  spaceInterval.value = chooseData
+  spaceInterval.value = chooseData;
 };
 const lookNum = (name, id) => {
   scdId.value = id;
@@ -1027,12 +1044,10 @@ const rules = reactive({
 });
 const addInterval = () => {
   reset();
-
   openAddInterval.value = true;
 };
-
-const sureAdd = async () => {
-  queryRef.value.validate(async(val) => {
+const sureAdd = debounce(async () => {
+  queryRef.value.validate(async (val) => {
     if (val) {
       const data = {
         ...queryParams.value,
@@ -1042,13 +1057,13 @@ const sureAdd = async () => {
       const meg =
         res && res.code == 0
           ? { type: "success", message: `添加成功` }
-          : { type: "error", message: `添加失败` };
+          : { type: "error", message: res.msg };
       ElMessage(meg);
-      loadAreaInfo(loadScdId.value * 1)
+      loadAreaInfo(loadScdId.value * 1);
       openAddInterval.value = false;
     }
   });
-};
+}, 500);
 const cancelClick = () => {
   reset();
   openAddInterval.value = false;
@@ -1214,9 +1229,10 @@ em {
 }
 
 .choose-base {
-  height: 48px;
+  height: 42px;
   margin-left: 5px;
   width: 112px;
+  font-size: 14px;
   color: #255ce7;
   display: flex;
   flex-direction: row;

+ 7 - 5
src/pages/mission/components/HaveMis.vue

@@ -21,7 +21,7 @@
         <div style="display: flex;justify-content: flex-start;align-items: center;">
           <p class="norep">待检测任务</p>
           <p style="display: flex;justify-content: flex-start;align-items: center;margin-left: 10px;cursor: pointer;">
-            <span style="display: block;color: #255CE7;" @click="moreMis">更多</span>
+            <span style="display: block;color: #255CE7;font-size: 14px;" @click="moreMis">更多</span>
             <img :src="jiantou" alt="" style="width: 16px;height:16px">
           </p>
         </div>
@@ -94,7 +94,7 @@
         <div style="display: flex;justify-content: flex-start;align-items: center;">
           <p class="norep">最近检测任务-已完成</p>
           <p style="display: flex;justify-content: flex-start;align-items: center;margin-left: 10px;cursor: pointer;">
-            <span style="display: block;color:#255CE7;" @click="moreMis">更多</span>
+            <span style="display: block;color:#255CE7;font-size: 14px;" @click="moreMis">更多</span>
             <img :src="jiantou" alt="" style="width: 16px;height:16px">
           </p>
         </div>
@@ -170,6 +170,7 @@ export default {
       router.push("/home/scdMap");
     }
     function startBefore(row, num) {
+      console.log('4444', 4444)
       lookingTask.value = row
       taskModels.value = []
       task.getTaskById({ id: row.id }).then(res => {
@@ -187,10 +188,11 @@ export default {
       })
     }
     function startNow(row, num) {
-      if (row.name == null || row.name == '' || row.name == undefined) {
-        ElMessage({
+      console.log('currEditTaskModels.value', currEditTaskModels.value)
+      if (!currEditTaskModels.value) {
+       return ElMessage({
           message: "还未选择检测任务",
-          type: "info"
+          type: "warning"
         })
       } else {
         sizeNum.value = 1;

+ 8 - 0
src/pages/setting/modalComp/AddSc.vue

@@ -110,6 +110,7 @@ export default {
         function getSure() {
             ruleForm.value.validate((val) => {
                 if (val) {
+                    console.log('5555', 5555)
                     if (caseNum.value == 0) {
                         systemRow.saveRow({
                             name: newForm.value.name,
@@ -117,6 +118,7 @@ export default {
                             code: newForm.value.codes
                         }).then(res => {
                             if (res.returncode == 200) {
+                                console.log('3333444', 3333444)
                                 dialogVisible.value = false
                                 emit("getModal", dialogVisible.value)
                                 let e = { code: props.pageCode }
@@ -126,6 +128,7 @@ export default {
                                     message: "新增成功"
                                 })
                             }else{
+                                console.log('3333', 3333)
                                 // dialogVisible.value = false
                                 // emit("getModal", dialogVisible.value)
                                 // let e = { code: props.pageCode }
@@ -152,6 +155,11 @@ export default {
                                     type: "success",
                                     message: "修改成功",
                                 })
+                            }else{
+                                ElMessage({
+                                    type: "error",
+                                    message: "名称或编码已存在"
+                                })
                             }
                         })
                     }

+ 6 - 4
src/pages/system/SystemPage.vue

@@ -73,11 +73,12 @@ export default {
         let loading = ref(false)//加载动画
         let moduleTotal = ref(0)//模型总数
         let moduleIndex = ref(0)
-        let moduleSize = ref(10)
+        let moduleSize = ref(10);
         function tagChange(row, num) {//标签切换
-            selectIndex.value = num
+            selectIndex.value = num;
+            volId.value = '';//点击切换的时候置为空,防止内置模型管理翻页有问题
             if (num == 1) {
-                ourNum.value = 0
+                ourNum.value = 0;
             }
             // 将当前点击的标签设为选中状态,其他标签设为非选中
             tagList.value.forEach((tag) => {
@@ -85,9 +86,10 @@ export default {
             });
         }
         function listBack(data, id, num) {
+            moduleTotal.value = num
             fuckList.value = data
             lineId.value = id
-            moduleTotal.value = num
+            
         }
         function volBack(data, id, num) {
             fuckList.value = data

+ 52 - 41
src/pages/system/components/LineTree.vue

@@ -8,9 +8,9 @@
                 <span style="float: left;font-size: 16px;font-weight: 500;">一次性接线方式</span>
             </span>
             <el-tree v-if="vif" node-key="id" style="float: left;width: 100%;margin: 0 auto;background-color: #F7F8FB;"
-                :data="lineData" :props="defaultProps" @node-click="handleNodeClick" />
+                :data="lineData" :props="defaultProps" @node-click="handleNodeClick" highlight-current/>
             <el-tree v-else node-key="id" style="float: left;width: 100%;margin: 0 auto;background-color: #F7F8FB;"
-                :data="lineData" :props="defaultProps" @node-click="handleModelNodeClick" ref="tree2">
+                :data="lineData" :props="defaultProps" @node-click="handleModelNodeClick" ref="tree2" highlight-current >
                 <template #default="{ node, data }">
                     <span>
                         <!-- 正常情况 -->
@@ -67,54 +67,60 @@ export default {
         let vif = ref(true)
         let loading = ref(false)
         let counts = ref(0)//总条数
-        let size = ref(0)
-        let index = ref(10)
+        let size = ref(10)
+        let index = ref(1)
         let intE = ref("")
+        const datatypes = ref(null);//判断点击的是第一层还是第二层的电压
         watch(() => props.selectIndex, (newVal) => {
             result.value = newVal
             searchFlashLel()
         })
         watch(() => props.moduleIndex, (newVal) => {
-            size.value = newVal
-            litLine.getAllm({ pageno: index.value, pagesize: size.value, vol_id: intE.value ? intE.value - 0 : "" }).then(res => {
-                if (res.code == 0) {
-                    loading.value = true
-                    counts.value = res.count
-                    console.log(counts.value, 'linetree');
-                    emit("lineBack", loading.value)
-                    emit("volBack", res.data, intE.value - 0, counts.value)
-                } else {
-                    ElMessage({
-                        message: res.msg,
-                        type: "error"
-                    })
-                }
-            })
+            size.value = newVal;
+            handleModelNodeClick(datatypes.value)
+                // litLine.getAllm({ pageno: index.value, pagesize: size.value, vol_id: intE.value ? intE.value - 0 : "" }).then(res => {
+                //     if (res.code == 0) {
+                //         loading.value = true
+                //         counts.value = res.count
+                //         console.log(counts.value, 'linetree');
+                //         emit("lineBack", loading.value)
+                //         emit("volBack", res.data, intE.value - 0, counts.value)
+                //     } else {
+                //         ElMessage({
+                //             message: res.msg,
+                //             type: "error"
+                //         })
+                //     }
+                // })
         })
         watch(() => props.moduleSize, (newVal) => {
-            index.value = newVal
-            litLine.getAllm({ pageno: index.value, pagesize: size.value, vol_id: intE.value ? intE.value - 0 : "" }).then(res => {
-                if (res.code == 0) {
-                    loading.value = true
-                    counts.value = res.count
-                    console.log(counts.value, 'linetree');
-                    emit("lineBack", loading.value)
-                    emit("volBack", res.data, intE.value - 0, counts.value)
-                } else {
-                    ElMessage({
-                        message: res.msg,
-                        type: "error"
-                    })
-                }
-            })
+            index.value = newVal;
+            console.log('index.value', )
+            handleModelNodeClick(datatypes.value)
+            // litLine.getAllm({ pageno: index.value, pagesize: size.value, vol_id: intE.value ? intE.value - 0 : "" }).then(res => {
+            //     if (res.code == 0) {
+            //         loading.value = true
+            //         counts.value = res.count
+            //         console.log(counts.value, 'linetree');
+            //         emit("lineBack", loading.value)
+            //         emit("volBack", res.data, intE.value - 0, counts.value)
+            //     } else {
+            //         ElMessage({
+            //             message: res.msg,
+            //             type: "error"
+            //         })
+            //     }
+            // })
+
+           
         })
         function searchLine() {
             if (props.moduleIndex && props.moduleSize) {
-                size.value = props.moduleIndex
-                index.value = props.moduleSize
+                size.value = props.moduleSize;
+                index.value = props.moduleIndex
             } else {
-                size.value = 1
-                index.value = 10
+                size.value = 10
+                index.value = 1
             }
 
         }
@@ -143,7 +149,8 @@ export default {
             })
         }
         function handleNodeClick(e) {
-            litLine.getAllLine({ pageno: 1, pagesize: 10, vol_id: e.id - 0 }).then(res => {
+            console.log('333333333', 333333333)
+            litLine.getAllLine({ pageno: 1, pagesize: 10, vol_id: e.id?e.id - 0:null }).then(res => {
                 if (res.code == 0) {
                     loading.value = true
                     pushList.value = res.data
@@ -159,10 +166,13 @@ export default {
             })
         }
         function handleModelNodeClick(e) {
+            console.log('e.datatype=========', e.datatype)
+            datatypes.value = e;
             // 模型管理       
             if (e.datatype === 'linkstyle') {
+                console.log('44444444', 44444444)
                 // 接线方式
-                litLine.getAllm({ pageno: 1, pagesize: 10, line_link_style: e.id }).then(res => {
+                litLine.getAllm({ pageno: index.value, pagesize:size.value , line_link_style: e.id }).then(res => {
                     
                     if (res.code == 0) {
                         loading.value = true
@@ -177,9 +187,10 @@ export default {
                     }
                 })
             } else {
+                console.log('55555', 55555)
                 // 电压等级
                 intE.value = e.id
-                litLine.getAllm({ pageno: 1, pagesize: 10, vol_id: intE.value - 0 }).then(res => {
+                litLine.getAllm({ pageno: index.value, pagesize: size.value, vol_id: intE.value - 0 }).then(res => {
                     if (res.code == 0) {
                         loading.value = true
                         counts.value = res.count

+ 7 - 3
src/pages/system/components/LitLine.vue

@@ -179,7 +179,7 @@ export default {
     watch(
       () => props.lineId,
       (newVal) => {
-        console.log('newVal', newVal)
+        console.log('newVal点击电压', newVal)
         flashId.value = newVal;
         pages.value = 1;
         pageNum.value = 10;
@@ -259,6 +259,7 @@ export default {
       alModal.value = true;
     }
     function alBack(data) {
+      // pages.value = 1;
       alModal.value = data;
     }
     function editLine(row) {
@@ -283,6 +284,7 @@ export default {
       needList.value = row;
     }
     function lookBack(data) {
+      console.log('pages.value', pages.value)
       lookModal.value = data;
     }
     function delBack(data) {
@@ -297,7 +299,7 @@ export default {
       pageNum.value = index;
       loading.value = true;
       litLine
-        .getAllLine({ pageno: no - 0, pagesize: index - 0 })
+        .getAllLine({ pageno: no - 0, pagesize: index - 0,vol_id: flashId.value - 0})
         .then((res) => {
           if (res.data != null) {
             lineList.value = res.data;
@@ -370,5 +372,7 @@ export default {
   margin-top: 10px;
   position: relative;
 }
-
+.btnBox{
+  line-height: 40px;
+}
 </style>

+ 4 - 0
src/pages/system/components/Pagination.vue

@@ -39,12 +39,16 @@ export default {
         },{
             deep:true
         })
+        watch(()=>props.pages,(newVal)=>{
+            page.value =newVal
+        })
         function reload() {
             total.value = props.totals
             page.value = props.pages
             size.value = props.pageNum
             console.log(size.value,'size');
         }
+
         // 页码
         function handleCurrentChange(e) {
             page.value = e

+ 21 - 9
src/pages/system/components/SetModule.vue

@@ -94,19 +94,24 @@ export default {
         let flashId = ref("")//本组件的变电站id
         // let { goMap } = toRefs(props)
         watch(() => props.fuckList, (newVal) => {
-            tableData.value = newVal
+            tableData.value = newVal;
+            console.log('newVal555555', newVal)
         })
         watch(() => props.moduleTotal, (newVal) => {
+            console.log('newvalue========', newVal)
             totals.value = newVal
         })
         //监听变电站id变化
         watch(()=>props.volId,(newVal)=>{
-            flashId.value = newVal
+            flashId.value = newVal;
+            
+            console.log('flashId.value', flashId.value)
         })
         function ready() {
             flashId.value = props.volId
-            loading.value = true
-            litLine.getAllm({ pageno: 1, pagesize: 10 }).then(res => {
+            loading.value = true;
+            console.log('first1111111', pages.value)
+            litLine.getAllm({ pageno: pages.value, pagesize: pageNum.value }).then(res => {
                 if (res.code == 0) {
                     tableData.value = res.data
                     totals.value = res.count
@@ -118,12 +123,13 @@ export default {
                     })
                 }
             })
-            totals.value = props.moduleTotal
+            // totals.value = props.moduleTotal
         }
         //传给delmodule.vue的刷新数据方法
         function sunReady() {
             loading.value = true
-            litLine.getAllm({ pageno: 1, pagesize: 20 }).then(res => {
+            console.log('first222221', pages.value)
+            litLine.getAllm({ pageno: pages.value, pagesize:  pageNum.value}).then(res => {
                 if (res.code == 0) {
                     tableData.value = res.data
                     totals.value = res.count
@@ -140,7 +146,8 @@ export default {
         //传给delmodule.vue的刷新数据方法
         function checkFlash(e) {
             loading.value = true
-            litLine.getAllm({ pageno: 1, pagesize: 20, vol_id: e - 0 }).then(res => {
+            console.log('first33331', pages.value)
+            litLine.getAllm({ pageno: pages.value, pagesize:  pageNum.value, vol_id: e - 0 }).then(res => {
                 if (res.code == 0) {
                     tableData.value = res.data
                     totals.value = res.count
@@ -185,18 +192,20 @@ export default {
         }
         function addBack(isshow) {
             nodeMos.value = false
+            console.log('first144441', pages.value)
             needRow.value = null
             if (isshow) {
                 litLine.getAllm({ pageno: pages.value, pagesize: pageNum.value, line_link_style: props.linkstyleid, vol_id: props.volId || '' }).then(res => {
-                    tableData.value = res.data
+                    tableData.value = res.data;
+                    totals.value = res.count
                     console.log(pageNum.value,'pagenum');
                 })
             }
         }
         function pageBack(no, index) {
             pages.value = no;
-            console.log('index===翻页', pages.value, pageNum.value)
             pageNum.value = index
+            console.log('index===翻页', pages.value, pageNum.value)
             emit("pageCase", no, index)
         }
         function dmBack(data) {
@@ -247,4 +256,7 @@ export default {
 .bigBox {
     position: relative;
 }
+.btnBox{
+    line-height: 40px;
+}
 </style>

+ 1 - 0
src/pages/system/modalComp/AddLine.vue

@@ -112,6 +112,7 @@ export default {
             ruleFormRef.value.validate((valid) => {
                 if (valid) {
                     if (flashIds.value) {
+                        console.log('211111', 211111)
                         litLine.addLine({
                             name: ruleForm.value.name,
                             vol_id: ruleForm.value.volId - 0