liyangzheng 1 yıl önce
ebeveyn
işleme
7ff8372b5a

+ 4 - 3
src/api/cid/cid.js

@@ -43,13 +43,14 @@ function saveMap(data){
     })
 }
 
-function getModelInfo(modelid){
+function getModelInfo(data){
     return request({
-        url:`/admin/sysmodel/list?id=`+modelid,//保存画图
+        url:`/admin/sysmodel/list`,//保存画图
         method:"get",
         headers:{
             'content-type':'application/x-www-form-urlencoded'
-        }
+        },
+        params:data
     })
 }
 function findFile(data){

+ 8 - 0
src/api/task.js

@@ -52,6 +52,13 @@ function getTaskById(data){
         params:data,
     })
 }
+function reladyTask(data){
+    return request({
+        url:`/task/reset`,
+        method:"post",
+        data
+    })
+}
 export default {
     getTask,
     tackStart,
@@ -60,4 +67,5 @@ export default {
     delTask,
     lookStep,
     getTaskById,
+    reladyTask,
 }

BIN
src/assets/icon/userup.png


+ 22 - 8
src/pages/components/HeadMenu.vue

@@ -44,14 +44,14 @@
                         padding: 6px;
                         " src="../../assets/icon/user_gray.png" alt="">
                         <span style="color: white;display: block;margin: 5px;">{{ username }}</span>
-                        <img src="../../assets/icon/userdown.png" class="jsDown" alt="">
+                        <img :src="isSrc" class="jsDown" alt="">
                     </div>
                     <!-- 个人信息 -->
                     <div v-if="isTime" class="messageBox">
                         <!-- 头像及登陆信息 -->
                         <div style="
                             display: flex;
-                            justify-content: space-around;
+                            justify-content: flex-start;
                             align-items: center;
                             height: 80px;
                             border-bottom: 1px solid gray;
@@ -103,6 +103,7 @@ export default {
         let userInfo = ref({})//用户信息
         let username = ref('')//用户名
         let isTime = ref(false)//用户详情
+        let isSrc = ref(require('../../assets/icon/userdown.png'))
         const currentTime = ref(getCurrentTime());
         // 初始化组件
         function reload() {
@@ -134,8 +135,14 @@ export default {
             const day = now.getDate().toString().padStart(2, '0');
             return `${year}-${month}-${day}`;
         }
-        function isUser(){
-            isTime.value = true//显示用户信息盒子
+        function isUser() {
+           if(isTime.value){
+            isTime.value = false//显示用户信息盒子
+            isSrc.value = require('../../assets/icon/userdown.png')
+           }else{
+            isTime.value = true
+            isSrc.value = require('../../assets/icon/userup.png')
+           }
         }
         // 最小化窗口
         function miniSize() {
@@ -143,7 +150,7 @@ export default {
         }
         // 关闭窗口
         function closeSize() {
-            if( typeof(windowEx)==='undefined') {
+            if (typeof (windowEx) === 'undefined') {
                 //返回登录页面
                 router.push('/login')
                 return
@@ -206,6 +213,7 @@ export default {
             currentTime,
             isTime,//用户详情
             isUser,//显示用户信息盒子
+            isSrc,
         }
     }
 }
@@ -338,6 +346,8 @@ p {
     display: flex;
     justify-content: space-around;
     align-items: center;
+    cursor: pointer;
+    margin: 0 10px;
 }
 
 .userBox {
@@ -352,11 +362,15 @@ p {
     width: 12px;
     height: 12px;
 }
-.messageBox{
-    width: 300px;
-    height: 200px;
+
+.messageBox {
+    width: 240px;
+    height: calc(100vh - 800px);
     background-color: white;
     border-radius: 8px;
     z-index: 20;
+    position: relative;
+    box-shadow: 0px 2px 7px 0px rgba(138, 157, 205, 0.4);
+    margin: 20px 0;
 }
 </style>

+ 30 - 8
src/pages/components/draw/DrawDesigns.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div class="bigBox">
-            <div ref="container" class="container"></div>
+            <div ref="container" class="container" v-loading="loading"></div>
         </div>
         <!-- 功能模态框 -->
         <AbilityModal v-if="abModal" :abModal="abModal" :modelId="modelId" :iedType="iedType" @abilityBack="abilityBack">
@@ -96,6 +96,7 @@ export default {
         let startText = ref("")//开始节点名称
         let endText = ref("")//结束节点名称
         let lineType = ref("")//连接线
+        let loading = ref(false)
         watch(() => props.lineMenuColor, (newVal) => {
             copyColor.value = newVal
         })
@@ -123,22 +124,26 @@ export default {
             coolName.value = newVal
         })
         watch(() => props.coolObj, (newVal) => {
+          setTimeout(() => {
+            loading.value = true
             copyObj.value = newVal
             modelId.value = copyObj.value.id
-            cid.getModelInfo(copyObj.value.id).then(res => {
+            cid.getModelInfo({ id: copyObj.value.id, pageno: 1, pagesize: 20 }).then(res => {
                 if (res.data[0].relation_json == null || res.data[0].relation_json == '') return;
                 const origiondata = JSON.parse(res.data[0].relation_json)
                 lf.value.render(origiondata);
+                loading.value = false
                 console.log('watchRender');
                 for (let index = 0; index < origiondata.edges.length; index++) {
                     const element = origiondata.edges[index];
                     if (element.properties != null && element.properties["issv"] === 'SV') {
                         let lineStyle = lf.value.getEdgeModelById(element.id)//.getEdgeStyle();
-                        console.log(lineStyle)
+                        // console.log(lineStyle)
                         lineStyle.setProperties({ svEdge: { stroke: 'orange' } })
                     }
                 }
             }, { immediate: true })
+          }, 3000);
         })
         watch(() => props.svOrGoose, (newVal) => {
             numCase.value = newVal
@@ -174,7 +179,7 @@ export default {
             const data = JSON.stringify(lf.value.getGraphData())
             cid.saveMap(
                 {
-                    id: copyObj.value.id - 0,
+                    id: copyObj.value.id - 0 || modelId.value - 0,
                     //model_name: coolName.value,
                     //vol_id: coolObj.value.id - 0,
                     //line_link_style: coolId.value - 0,
@@ -217,13 +222,14 @@ 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(modelId.value).then(res => {
+            cid.getModelInfo({ id: modelId.value, pageno: 1, pagesize: 20 }).then(res => {
                 if (res.data[0].relation_json == null || res.data[0].relation_json == '') return;
                 const origiondata = JSON.parse(res.data[0].relation_json)
                 lf.value.render(origiondata);
-                console.log('watchRender');
+                loading.value = false
                 for (let index = 0; index < origiondata.edges.length; index++) {
                     const element = origiondata.edges[index];
                     if (element.properties != null && element.properties["issv"] === 'SV') {
@@ -240,6 +246,7 @@ export default {
             coolName.value = props.needName
             copyObj.value = props.coolObj
             numCase.value = props.svOrGoose
+            copyColor.value = props.lineMenuColor
             systemRow.getChildren({ code: "ied_type" }).then(res => {
                 needMap.value = res.data.map(item => {
                     return {
@@ -394,6 +401,15 @@ export default {
                     endText.value = end.text.value//结束文本
                     startTarget.value = start.properties
                     endTarget.value = end.properties
+                    console.log(copyColor.value,'copy');
+                    console.log(data,'data');
+                    if(copyColor.value == '#255CE7'){
+                        lf.value.graphModel.updateText(data.data.id, "GOOSE");
+                        console.log('修改了goose');
+                    }else if(copyColor.value == 'orange'){
+                        lf.value.graphModel.updateText(data.data.id, "SV");
+                        console.log('修改了sv');
+                    }
                     ldModal.value = true
                 })
                 lf.value.on('node:mousemove', function (data, e) {//传递坐标轴参数到父组件
@@ -419,6 +435,9 @@ export default {
                 lf.value.extension.dndPanel.setPatternItems(needMap.value);
                 lf.value.render();
                 lastRender()
+                setTimeout(()=>{
+                    loading.value = false
+                },10000)
             })
         })
         function abilityBack(data) {
@@ -464,6 +483,7 @@ export default {
             endText,//结束节点名称
             lineType,//连接线
             lastRender,//路由跳转的渲染
+            loading,
         }
     },
     components: {
@@ -483,7 +503,9 @@ export default {
 :deep(.lf-element-text) {
     color: black;
 }
-
+/* :deep(.lf-dndpanel){
+    w
+} */
 /* :deep(.lf-basic-shape) {
     width: 150px;
     height: 150px;

+ 7 - 4
src/pages/mission/components/CreateMis.vue

@@ -2,7 +2,7 @@
     <div>
         <div class="createMisBox" v-if="selects == 1">
             <div>
-                <h1 style="font-size: 16px;font-weight: bolder;">新建检测任务</h1>
+                <h1 style="font-size: 16px;font-weight: bolder;">{{ editAndAdd }}</h1>
             </div>
             <div class="formBox">
                 <el-form ref="myForm" :inline="true" label-position="top" :model="newMission" class="demo-form-inline"
@@ -40,7 +40,7 @@
                     </el-form-item>
                     <el-form-item prop="misMes">
                         <template #label>
-                            <span>任务说明</span>
+                            <span style="color: red;">任务说明</span>
                         </template>
                         <el-input style="width: 1136px;" v-model="newMission.misMes"></el-input>
                     </el-form-item>
@@ -92,11 +92,11 @@
                             <span>检测模型:<em>{{ flashLevel ? flashLevel + '线路保护模型' : '' }}</em></span>
                         </div>
                         <div style="position: absolute;top: 0px;right: 0px;display: flex;justify-content: center;align-items: center;">
-                            <!--
+                            
                             <div style="margin: 0 10px;">
                                 <el-checkbox label="开启检测" size="large" />
                             </div>
-                            -->
+                           
                             <div style="margin: 5px;">
                                 <el-button type="primary" size="small" plain @click="checkTime">选择装置</el-button>
                             </div>
@@ -226,6 +226,7 @@ export default {
         let states = ref(0)
         let flashLevel = ref("")
         const myForm = ref(null)//表单ref
+        let editAndAdd = ref("新建检测任务")
         watch(() => props.editRow, (newVal) => {
             needEdit.value = newVal
         })
@@ -250,6 +251,7 @@ export default {
                     newMission.value.misMes = needEdit.value.memo//备注或描述
                     newMission.value.reportNow = needEdit.value.report_id//报告模板
                     loadScdId.value = needEdit.value.scd_id//scdid
+                    editAndAdd.value = '编辑检测任务'
                     task.getTaskById({ id: needEdit.value.id - 0 }).then(res => {
                         if (res.data != null) {
                             let modelnames = res.data.models.map((item, index) => {
@@ -550,6 +552,7 @@ export default {
             resetForm,
             flashLevel,
             tagClick,//tag标签的点击事件
+            editAndAdd,
         }
     },
     components: {

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

@@ -82,7 +82,7 @@
         <div>
           <p class="norep">最近检测任务-已完成</p>
         </div>
-        <div style="display: flex;justify-content: flex-start;align-items: center;overflow-x: auto;">
+        <div style="display: flex;justify-content: flex-start;align-items: center;overflow-x: auto;width: calc(100vw - 100px);">
           <div class="intBox" v-for="(item, index) in passList" @mouseover="intOvers(index)" @mouseout="intOuts(index)">
             <div class="intBoxOne">
               <p class="intOne">
@@ -384,6 +384,7 @@ p {
   margin-left: 15px;
   float: left;
   min-height: 50px;
+  overflow-y: auto;
   /* border: 1px solid salmon; */
 }
 

+ 21 - 9
src/pages/mission/components/HistoryMis.vue

@@ -1,5 +1,5 @@
 <template>
-    <div style="margin-left: 20px;position: relative;">
+    <div style="margin-left: 20px;position: relative;" v-loading="loading">
         <div style="display: flex;justify-content: flex-start;align-items: center;">
             <div style="margin-right: 20px;">
                 <span>名称:</span>
@@ -38,6 +38,7 @@
                     <template #default="scoped">
                         <!-- <el-popconfirm title="你确定删除吗?" @confirm="sureDelMis">
                             <template #reference> -->
+                        <el-button link type="primary" size="small" @click="relady(scoped.row)">重新检测</el-button>
                         <el-button link type="danger" size="small" @click="delMis(scoped.row)">删除</el-button>
                         <!-- </template>
                         </el-popconfirm> -->
@@ -48,7 +49,8 @@
         <div>
             <PageNation :totals="totals" :pageNum="pageNum" :pageSize="pageSize" @pageBack="pageBack"
                 style="position: absolute;top: 750px;right: 50px;"></PageNation>
-            <DelHistory v-if="delModal" :delModal="delModal" :delId="delId" :reload="reload" @delBack="delBack"></DelHistory>
+            <DelHistory v-if="delModal" :delModal="delModal" :delId="delId" :reload="reload" @delBack="delBack">
+            </DelHistory>
         </div>
     </div>
 </template>
@@ -72,18 +74,23 @@ export default {
         let names = ref('')//根据名称
         let delId = ref(0)//需要删除的id
         let delModal = ref(false)//删除模态框状态
+        let loading = ref(false)
         function reload() {
-            task.getTask({ pageno: 1, pagesize: 20 }).then(res => {
-                tableData.value = res.data
-                totals.value = res.count
+            loading.value = true
+            task.getTask({ pageno: 1, pagesize: 999999 }).then(res => {
+                if (res.code == 0) {
+                    tableData.value = res.data
+                    totals.value = res.count
+                    loading.value = false
+                }
             })
         }
-        function record(){
+        function record() {
             names.value = ''
             startTime.value = ''
             endTime.value = ''
             getTime.value = ''
-            task.getTask({ pageno: 1, pagesize: 20 }).then(res => {
+            task.getTask({ pageno: 1, pagesize: 999999 }).then(res => {
                 tableData.value = res.data
                 totals.value = res.count
             })
@@ -124,13 +131,16 @@ export default {
             delId.value = e.id
             delModal.value = true
         }
+        function relady(row) {
+            console.log(row, 'riw');
+        }
         function sureDelMis() {
-         
+
         }
         function pageBack(data) {
             tableData.value = data
         }
-        function delBack(data){
+        function delBack(data) {
             delModal.value = data
         }
         onMounted(() => {
@@ -157,6 +167,8 @@ export default {
             delId,
             record,
             totals,//总条数
+            relady,//重新检测
+            loading,
         }
     },
     components: {

+ 8 - 1
src/pages/mission/components/StartMission.vue

@@ -6,7 +6,11 @@
                 <p class="nowMis">{{ loadingMis.name }}</p>
                 <p class="dateMis">创建日期:{{ loadingMis.ct }}</p>
                 <img src="../../../assets/image/start_mission.png" style="width: 200px;height: 200px;" alt="">
-                <p class="loading1">请耐心等待检测完成</p>
+                <p class="loading1" v-if="end">请耐心等待检测完成</p>
+                <p style="color: greenyellow;font-size: 16px;display: flex;justify-content: center;align-items: center;" v-else>
+                    <p style="display: block;">检测已完成</p>
+                    <el-icon style="color: greenyellow;display: block;"><SuccessFilled /></el-icon>
+                </p>
                 <el-button type="primary" @click="misDown">取消</el-button>
             </div>
             <!-- 步骤和结果 -->
@@ -59,6 +63,7 @@ export default {
         let loadingMis = ref({})
         let stepList = ref([])
         let endList = ref([])//结果表格
+        let end = ref(true)
         watch(() => props.startMis, (newVal) => {
             loadingMis.value = newVal
             console.log(loadingMis.value, 'watch');
@@ -91,6 +96,7 @@ export default {
                 }, 2000)
                 setTimeout(() => {
                     clearInterval(countTime)
+                    end.value = false
                 }, 20000)
             })
             setTimeout(() => {
@@ -122,6 +128,7 @@ export default {
             stepList,//步骤表
             endList,//结果表格
             levelChoose,//等级筛选
+            end,
         }
     },
     components: {

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

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <el-dialog v-model="dialogVisible" draggable title="选择间隔装置" width="30%" @close="sureclose"
+        <el-dialog v-model="dialogVisible" draggable title="选择装置" width="30%" @close="sureclose"
             :close-on-click-modal="false">
             <el-tree :data="treeList" :props="treeProps" @check-change="handleNodeClick" show-checkbox
                 style="height: 300px;overflow-y: auto;" />

+ 1 - 1
src/pages/setting/components/SystemCode.vue

@@ -62,7 +62,7 @@ export default {
         let editRow = ref({})//编辑回显
         let reloadKey = ref(0)//重载组件
         function searchSystem() {//查询所有字典
-            systemRow.getAllRow({ pageindex: 1, pageSize: 10 }).then(res => {
+            systemRow.getAllRow({ pageindex: 1, pagesize: 10 }).then(res => {
                 systemList.value = res.data
                 totals.value = res.count
             })

+ 1 - 1
src/pages/setting/components/SystemNum.vue

@@ -27,7 +27,7 @@
             </div>
             <!-- 分页组件 -->
             <div class="pageBox">
-                <PageNation :tLength="tLength" @getBack="getBack"></PageNation>
+                <!-- <PageNation :tLength="tLength" @getBack="getBack"></PageNation> -->
             </div>
             <!-- 模态框 -->
             <div class="modalBox">

+ 1 - 1
src/pages/setting/modalComp/AddSc.vue

@@ -68,7 +68,7 @@ export default {
                 { required: true, message: '请输入名称', trigger: 'blur' },
             ],
             parents: [
-                { required: true, message: '请选择上级', trigger: 'blur' },
+                { required: true, message: '请选择上级', trigger: 'change' },
             ],
             codes: [
                 { required: true, message: '请输入编码', trigger: 'blur' },

+ 5 - 2
src/pages/system/components/InsideModule.vue

@@ -61,7 +61,7 @@
                         </div>
                     </div>
                     <div class="iedBox">
-                        <img style="display: block;" src="../../../assets/icon/HardDrives.png" alt="">
+                        <img style="display: block;margin-left: 14px;" src="../../../assets/icon/HardDrives.png" alt="">
                         <span style="font-size: 14px;display: block;">装置列表</span>
                     </div>
                     <div class="tableBox">
@@ -339,9 +339,11 @@ export default {
     color: #255CE7;
     text-align: center;
     line-height: 22px;
-    background: #e4dfdf;
+    background: #d3daef;
     border-radius: 3px;
     padding: 3px;
+    font-size: 14px;
+    font-weight: 400;
 }
 
 .coord {
@@ -363,5 +365,6 @@ export default {
     justify-content: flex-start;
     align-items: center;
     background-color: #F7F8FB;
+    margin: auto auto;
 }
 </style>

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

@@ -64,7 +64,7 @@ export default {
         })
         function searchLine() {
             if (props.selectIndex == 0) {
-                litLine.getLineModel({ pageno: 1, pagesize: 10 }).then(res => {
+                litLine.getLineModel({ pageno: 1, pagesize: 99999 }).then(res => {
                     // console.log(res, '987res');
                 })
             }
@@ -75,7 +75,7 @@ export default {
                 if (props.selectIndex == 1) {
                     vif.value = false
                     // 获取每个电压等级下的接线方式
-                    litLine.getAllLine({ pageno: 1, pagesize: 1000 }).then(res2 => {
+                    litLine.getAllLine({ pageno: 1, pagesize: 99999 }).then(res2 => {
                         for (let i = 0; i < res2.data.length; i++) {
                             const vol_level_id = res2.data[i].vol_level_id
                             res.data.filter((item) => {
@@ -94,7 +94,7 @@ export default {
             })
         }
         function handleNodeClick(e) {
-            litLine.getAllLine({ pageno: 1, pagesize: 20, vol_id: e.id - 0 }).then(res => {
+            litLine.getAllLine({ pageno: 1, pagesize: 99999, vol_id: e.id - 0 }).then(res => {
                 // console.log(res, 'asdasdasd');
                 if (res.code == 0) {
                     loading.value = true

+ 2 - 2
src/pages/system/components/LitLine.vue

@@ -11,7 +11,7 @@
                     </el-icon>添加新接线方式</el-button>
             </div>
             <div>
-                <el-table ref="multipleTableRef" :stripe="true" :data="lineList" style="width: 100%"
+                <el-table ref="multipleTableRef" :stripe="true" :data="lineList" style="width: 100%;height: calc(100vh - 240px);"
                     @selection-change="handleSelectionChange">
                     <el-table-column type="selection" width="55" />
                     <el-table-column label="编号" prop="id" width="auto">
@@ -81,7 +81,7 @@ export default {
             lineList.value = newVal
         })
         function search() {
-            litLine.getAllLine({ pageno: 1, pagesize: 10 }).then(res => {
+            litLine.getAllLine({ pageno: 1, pagesize: 999999 }).then(res => {
                 lineList.value = res.data
             })
         }

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

@@ -10,7 +10,7 @@
                     </el-icon>添加模型</el-button>
             </div>
             <div class='tableBox'>
-                <el-table :data="tableData" style="width: 100%" :stripe="true" @selection-change="tableChange">
+                <el-table :data="tableData" style="width: 100%;height: calc(100vh - 240px);" :stripe="true" @selection-change="tableChange">
                     <el-table-column type="selection" width="55" />
                     <el-table-column prop="line_link_style_name" label="接线方式" width="auto" />
                     <el-table-column prop="model_name" label="模型名称" width="auto" />

+ 3 - 17
src/utils/request.js

@@ -2,8 +2,7 @@ import axios from 'axios'
 import md5 from 'js-md5'
 import { ElMessage } from 'element-plus'
 import vue from "vue"
-import { useRouter } from 'vue-router'
-let router = useRouter()
+import router from '@/router';
 // 请求url
 const service = axios.create({
     // baseURL: window.STATIC_CONFIG.proxyUrl, // url = base url + request url
@@ -78,28 +77,15 @@ service.interceptors.response.use(
     },
     error => {
         console.log(error,'相应拦截器error');
-        // if(error.code == "ERR_NETWORK"){
-        //     ElMessage({
-        //         type:"error",
-        //         message:"网络错误,请重新登录",
-        //     })
-        //     router.push("/login")
-        // }
-        if (error.response.status === 401) {
+        if (error.response.status == 401) {
             ElMessage({
                 message: "登陆已过期,请重新登录",
                 type: "error"
             })
-            useRouter().push("/login")
+            router.push('/login')
             sessionStorage.removeItem('userInfo')
             sessionStorage.removeItem('userToken')
         }
-        // Message({
-        //   message: '' + error.response.data.message,
-        //   type: 'error',
-        //   duration: 3 * 1000,
-        //   offset: window.screen.height / 3
-        // })
         return Promise.reject(error)
     }
 )