liyangzheng 1 éve
szülő
commit
23dfcc1a14

BIN
src/assets/icon/userdown.png


BIN
src/assets/icon/userup.png


+ 67 - 56
src/pages/components/HeadMenu.vue

@@ -34,49 +34,47 @@
                 </div>
                 <!-- 用户栏 -->
                 <div class="userBox" style="background-color: rgba(50,59,91, 0.9);">
-                    <span class="userSpan">
-                        <img style="width: 12px;height: 12px;" src="../../assets/icon/user_gray.png" alt="">
-                    </span>
-                    <el-dropdown trigger="click">
-                        <span class="el-dropdown-link">
-                            Admin<el-icon class="el-icon--right" style="color: #BAC0E1;"><arrow-down /></el-icon>
-                        </span>
-                        <template #dropdown>
-                            <el-dropdown-menu>
-                                <el-dropdown-item>
-                                    <!-- 个人信息 -->
-                                    <div>
-                                        <!-- 头像及登陆信息 -->
-                                        <div style="
-                                            display: flex;
-                                            justify-content: space-around;
-                                            align-items: center;
-                                            height: 80px;
-                                            border-bottom: 1px solid gray;
-                                            ">
-                                            <div>
-                                                <img style="width: 40px;height: 40px;margin: 0 10px;" src="../../assets/icon/Avatar.png"
-                                                    alt="">
-                                            </div>
-                                            <div>
-                                                <p style="font-weight: bolder;font-size: 16px;">{{ username }}</p>
-                                                <p>登陆时间:{{ currentTime }}</p>
-                                            </div>
-                                        </div>
-                                        <div class="logOut" @click="logOut">
-                                            <div style="text-align: center;line-height: 10px;">
-                                                <img style="width: 20px;height: 20px;display: inline-block;"
-                                                    src="../../assets/icon/SignOut.png" alt="">
-                                            </div>
-                                            <div>
-                                                <span>注销</span>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </el-dropdown-item>
-                            </el-dropdown-menu>
-                        </template>
-                    </el-dropdown>
+                    <div class="userSpan" @click="isUser">
+                        <img style="
+                        width: 14px;
+                        height: 14px;
+                        display: block; 
+                        background-color: #BAC0E1;
+                        border-radius: 50%;
+                        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="">
+                    </div>
+                    <!-- 个人信息 -->
+                    <div v-if="isTime" class="messageBox">
+                        <!-- 头像及登陆信息 -->
+                        <div style="
+                            display: flex;
+                            justify-content: space-around;
+                            align-items: center;
+                            height: 80px;
+                            border-bottom: 1px solid gray;
+                            ">
+                            <div>
+                                <img style="width: 40px;height: 40px;margin: 0 10px;" src="../../assets/icon/Avatar.png"
+                                    alt="">
+                            </div>
+                            <div>
+                                <p style="font-weight: bolder;font-size: 16px;">{{ username }}</p>
+                                <p>登陆时间:{{ currentTime }}</p>
+                            </div>
+                        </div>
+                        <div class="logOut" @click="logOut">
+                            <div style="text-align: center;line-height: 10px;">
+                                <img style="width: 20px;height: 20px;display: inline-block;"
+                                    src="../../assets/icon/SignOut.png" alt="">
+                            </div>
+                            <div>
+                                <span>注销</span>
+                            </div>
+                        </div>
+                    </div>
                 </div>
                 <!-- 最小化,关闭 -->
                 <div>
@@ -104,6 +102,7 @@ export default {
         let img = ref(false)
         let userInfo = ref({})//用户信息
         let username = ref('')//用户名
+        let isTime = ref(false)//用户详情
         const currentTime = ref(getCurrentTime());
         // 初始化组件
         function reload() {
@@ -133,11 +132,10 @@ export default {
             const year = now.getFullYear();
             const month = (now.getMonth() + 1).toString().padStart(2, '0');
             const day = now.getDate().toString().padStart(2, '0');
-            const hours = now.getHours().toString().padStart(2, '0');
-            const minutes = now.getMinutes().toString().padStart(2, '0');
-            const seconds = now.getSeconds().toString().padStart(2, '0');
-
-            return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+            return `${year}-${month}-${day}`;
+        }
+        function isUser(){
+            isTime.value = true//显示用户信息盒子
         }
         // 最小化窗口
         function miniSize() {
@@ -201,6 +199,8 @@ export default {
             username,//用户名
             getCurrentTime,
             currentTime,
+            isTime,//用户详情
+            isUser,//显示用户信息盒子
         }
     }
 }
@@ -248,7 +248,7 @@ p {
 }
 
 .setBox {
-    width: 25%;
+    width: 27%;
     height: 50px;
     /* border: 1px solid white; */
     display: flex;
@@ -284,13 +284,11 @@ p {
 }
 
 .userSpan {
-    display: inline-block;
-    width: 24px;
+    width: 100%;
     height: 24px;
-    background-color: #BAC0E1;
-    border-radius: 50%;
-    text-align: center;
-    line-height: 24px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
 }
 
 .el-dropdown-link {
@@ -338,9 +336,22 @@ p {
 }
 
 .userBox {
-    width: 25%;
+    width: 35%;
     height: 30px;
     text-align: center;
     line-height: 30px;
 }
+
+.jsDown {
+    display: block;
+    width: 12px;
+    height: 12px;
+}
+.messageBox{
+    width: 300px;
+    height: 200px;
+    background-color: white;
+    border-radius: 8px;
+    z-index: 20;
+}
 </style>

+ 24 - 7
src/pages/components/draw/DrawDesigns.vue

@@ -7,7 +7,8 @@
         <AbilityModal v-if="abModal" :abModal="abModal" :modelId="modelId" :iedType="iedType" @abilityBack="abilityBack">
         </AbilityModal>
         <LineDouble v-if="ldModal" :ldModal="ldModal" :modelId="modelId" :startTarget="startTarget" :endTarget="endTarget"
-            :numCase="numCase" :startText="startText" :endText="endText" :lineType="lineType" @lineBack="lineBack"></LineDouble>
+            :numCase="numCase" :startText="startText" :endText="endText" :lineType="lineType" @lineBack="lineBack">
+        </LineDouble>
     </div>
 </template>
 
@@ -19,7 +20,7 @@ import cid from '@/api/cid/cid'
 import systemRow from '@/api/systemRow';
 import flow from "@/api/flow/flow"
 import { ElMessage } from 'element-plus';
-import { useRouter } from 'vue-router';
+import { useRouter, useRoute } from 'vue-router';
 import AbilityModal from "../drawModal/AbilityModal.vue"
 import LineDouble from '../drawModal/LineDouble.vue';
 import { DndPanel, SelectionSelect, Group, Menu, MiniMap, regeister, Snapshot, lfJson2Xml, lfXml2Json } from "@logicflow/extension";
@@ -67,6 +68,7 @@ export default {
     },
     setup(props, { emit }) {
         let router = useRouter()
+        let route = useRoute()
         const container = ref();
         const lf = ref();
         let needColor = props.lineMenuColor
@@ -127,8 +129,7 @@ export default {
                 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);
-                //let rl = lfXml2Json(res.data[0].relation_json.replace(/[\t|\r|\n]/gi,''))
-                // console.log(rl)
+                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') {
@@ -216,15 +217,29 @@ export default {
         function momal() {
             lf.value.graphModel.moveNode2Coordinate(copyId.value, setX.value - 0, setY.value - 0, true);
         }
+        function lastRender(){
+            modelId.value = route.query.modelid
+            cid.getModelInfo(modelId.value).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');
+                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)
+                        lineStyle.setProperties({ svEdge: { stroke: 'orange' } })
+                    }
+                }
+            }, { immediate: true })
+        }
         onMounted(() => {
             coolObj.value = props.needObj
             coolId.value = props.needId
             coolName.value = props.needName
             copyObj.value = props.coolObj
             numCase.value = props.svOrGoose
-            //systemRow.getChildren({ code: "area_type" }).then(res => {
-            //    console.log(res, 'sss');
-            //})
             systemRow.getChildren({ code: "ied_type" }).then(res => {
                 needMap.value = res.data.map(item => {
                     return {
@@ -403,6 +418,7 @@ export default {
                 // lf.value.register(logicFlows)
                 lf.value.extension.dndPanel.setPatternItems(needMap.value);
                 lf.value.render();
+                lastRender()
             })
         })
         function abilityBack(data) {
@@ -447,6 +463,7 @@ export default {
             startText,//开始节点名称
             endText,//结束节点名称
             lineType,//连接线
+            lastRender,//路由跳转的渲染
         }
     },
     components: {

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

@@ -8,7 +8,7 @@
         <img src="../../../assets/image/start_btn.png" alt="" style="cursor: pointer;" @click="startNow(lookingTask)" />
         <p class="nowModel" v-if="lookingTask.name">
           <span style="margin-right: 15px;">检测模型:</span>
-          <el-select v-model="currEditTaskModels"><el-option v-for="(item,index) in taskModels" :title="item.model_name" :key="index" :label="item.model_name" :value="item.model_id"/></el-select>
+          <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>
           <span style="margin: 10px;cursor: pointer;"><img src="../../../assets/icon/pencil.png" alt="编辑所选模型"  @click="editTaskModel"/></span>
         </p>
       </div>
@@ -156,6 +156,7 @@ export default {
         let models = res.data.models
         if(models === null || models.length === 0) return
         taskModels.value = models
+        console.log(taskModels.value,'task');
       })
     }
     function startNow(row, num) {
@@ -172,13 +173,14 @@ export default {
 
     function editTaskModel(){
       // 跳转到内置模型编辑组件
-      let m1 = taskModels.value.filter(item => item.model_id == currEditTaskModels.value)
+      let m1 = taskModels.value.filter(item => item.sys_model_id == currEditTaskModels.value)
       if(m1.length === 0 ) return
       router.push({
         path: "/home/setting",
         query: {
           modelid: currEditTaskModels.value,
-          modelname: m1[0].model_name
+          modelname: m1[0].model_name,
+          isNow:1,
         },
       });
     }
@@ -254,6 +256,9 @@ export default {
         return "intBox"
       }
     }
+    function relison(e){
+      currEditTaskModels.value = e
+    }
     function intOver(num) {
       isIndex.value = num
       isImg.value = true
@@ -299,6 +304,7 @@ export default {
       intOuts,
       isIndex,
       isIndexs,
+      relison,//开始检测后选择模型change事件
     };
   },
   components: {

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

@@ -68,13 +68,15 @@ export default {
             emit("iedBack", dialogVisible.value)
         }
         function handleNodeClick(e) {
-            const existingIndex = checkArr.value.findIndex(item => item.ied_id === e.id);
+            const existingIndex = checkArr.value.findIndex(item => item.id === e.id);
             if (existingIndex === -1) {
                 // 如果 e.id 不在 checkArr 中,则将 e 添加到 checkArr
                 checkArr.value.push(e);
+                console.log(checkArr.value,'添加');
             } else {
                 // 如果 e.id 已经在 checkArr 中,则从 checkArr 中删除
                 checkArr.value.splice(existingIndex, 1);
+                console.log(checkArr.value,'删除');
             }
 
         }

+ 1 - 2
src/pages/setting/components/ReportModule.vue

@@ -153,13 +153,12 @@ export default {
                 if (res.code == 0 && res.data != null) {
                     reportList.value = res.data
                 } else if (res.code == 0 && res.data == null) {
-                    console.log('进入了为查询');
                     ElMessage({
                         message: "未查询到数据",
                         type: "info"
                     })
+                    reportList.value = []
                 } else if (res.code == 1) {
-                    console.log("进入了错误");
                     ElMessage({
                         message: res.msg,
                         type: "error"

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

@@ -10,9 +10,9 @@
                     <el-table-column label="序号" width="100">
                         <template #default="{ $index }">{{ $index + 1 }}</template>
                     </el-table-column>
-                    <el-table-column prop="param_name" label="参数名称" width="auto" />
+                    <el-table-column prop="param_name" label="参数名称" show-overflow-tooltip width="auto" />
                     <el-table-column prop="param_value" label="参数值" width="auto" />
-                    <el-table-column prop="param_memo" label="参数说明" width="auto" />
+                    <el-table-column prop="param_memo" label="参数说明" show-overflow-tooltip width="auto" />
                     <el-table-column fixed="right" label="操作" width="120">
                         <template #default="scope">
                             <el-button text type="primary" size="small" @click="editOld(1, scope.row)">

+ 52 - 46
src/pages/setting/modalComp/Addrm.vue

@@ -1,12 +1,12 @@
 <template>
     <div>
         <el-dialog v-model="dialogVisible" :title="titleTips" width="30%" @close="closes" :close-on-click-modal="false">
-            <el-form :model="addForm" label-width="120px" :rules="formRule">
+            <el-form :model="addForm" label-width="120px" :rules="formRule" ref="ruleForm">
                 <el-form-item label="模板名称" prop="name">
                     <el-input v-model="addForm.name" />
                 </el-form-item>
                 <el-form-item label="模板描述" prop="memos">
-                    <el-input v-model="addForm.memos" />
+                    <el-input type="textarea" v-model="addForm.memos" />
                 </el-form-item>
                 <el-form-item label="上传文件" width="200" prop="docName">
                     <el-input style="width: 167px;" v-model="addForm.docName" disabled />
@@ -83,9 +83,10 @@ export default {
                 { required: true, message: '还未输入备注', trigger: 'blur' },
             ],
             docName: [
-                { required: true, message: '还未选择文件', trigger: 'blur' },
+                { required: true, message: '还未选择文件', trigger: 'change' },
             ],
         })
+        let ruleForm = ref(null)//组件ref
         watch(() => props.addOrEdit, (newVal) => {
             tipsNow.value = newVal
         })
@@ -101,10 +102,10 @@ export default {
                 needRow.value = props.editRow
                 addForm.value.name = needRow.value.name
                 addForm.value.docid = needRow.value.doc_id
-                // addForm.value.docName = needRow.value.
+                addForm.value.docName = needRow.value.doc_id
                 addForm.value.memos = needRow.value.memo
                 addForm.value.states = needRow.value.state
-                console.log(needRow.value,'dee');
+                console.log(needRow.value, 'dee');
                 // addForm.value.docName = needRow.value
                 needId.value = needRow.value.id
             }
@@ -122,50 +123,54 @@ export default {
             emit("armBack", dialogVisible.value)
         }
         function getSure() {
-            console.log('进图确定按钮');
-            if (tipsNow.value == 0) {
-                console.log("进入新增");
-                report.addReport({
-                    name: addForm.value.name,
-                    doc_id: addForm.value.docid - 0,
-                    memo: addForm.value.memos,
-                    state: addForm.value.states - 0,
-                }).then(res => {
-                    if (res.code == 0) {
-                        ElMessage({
-                            type: "success",
-                            message: "新增成功"
-                        })
-                        props.searchReport()
-                        dialogVisible.value = false
-                        emit("armBack", dialogVisible.value)
-                    } else {
-                        ElMessage({
-                            type: "error",
-                            message: res.msg
+            ruleForm.value.validate((date) => {
+                if (date) {
+                    if (tipsNow.value == 0) {
+                        report.addReport({
+                            name: addForm.value.name,
+                            doc_id: addForm.value.docid - 0,
+                            memo: addForm.value.memos,
+                            state: addForm.value.states - 0,
+                        }).then(res => {
+                            if (res.code == 0) {
+                                ElMessage({
+                                    type: "success",
+                                    message: "新增成功"
+                                })
+                                props.searchReport()
+                                dialogVisible.value = false
+                                emit("armBack", dialogVisible.value)
+                            } else {
+                                ElMessage({
+                                    type: "error",
+                                    message: res.msg
+                                })
+                            }
                         })
-                    }
-                })
-            } else if (tipsNow.value == 1) {
-                console.log("进入编辑");
-                report.addReport({
-                    id: needId.value - 0,
-                    name: addForm.value.name,
-                    doc_id: addForm.value.docid - 0,
-                    memo: addForm.value.memos,
-                    state: addForm.value.states - 0,
-                }).then(res => {
-                    if (res.code == 0 && res.data != null) {
-                        props.searchReport()
-                        dialogVisible.value = false
-                        emit("armBack", dialogVisible.value)
-                        ElMessage({
-                            message: "修改成功",
-                            type: "success"
+                    } else if (tipsNow.value == 1) {
+                        report.addReport({
+                            id: needId.value - 0,
+                            name: addForm.value.name,
+                            doc_id: addForm.value.docid - 0,
+                            memo: addForm.value.memos,
+                            state: addForm.value.states - 0,
+                        }).then(res => {
+                            if (res.code == 0 && res.data != null) {
+                                props.searchReport()
+                                dialogVisible.value = false
+                                emit("armBack", dialogVisible.value)
+                                ElMessage({
+                                    message: "修改成功",
+                                    type: "success"
+                                })
+                            }
                         })
                     }
-                })
-            }
+                }else{
+                    console.log(date);
+                }
+            })
+
 
         }
         onMounted(() => {
@@ -185,6 +190,7 @@ export default {
             needRow,//需要编辑的数据
             needId,//需要的id
             upState,//上传文件状态
+            ruleForm,//表单ref
         }
     }
 }

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

@@ -40,8 +40,10 @@ import ModuleTree from './components/ModuleTree.vue';
 import SetModule from './components/SetModule.vue'
 import blueBtn from '@/assets/image/btn_blue.png'
 import grayBtn from '@/assets/image/btn_gray.png'
+import { useRoute } from "vue-router"
 export default {
     setup() {
+        let route = useRoute()
         let selectIndex = ref(0)
         let tagList = ref([
             {
@@ -110,7 +112,10 @@ export default {
             }, 1500)
         }
         onMounted(() => {
-
+            if(route.query.isNow == "1"){
+                selectIndex.value = 1
+                ourNum.value = 1
+            }
         })
         return {
             tagChange,//标签选择

+ 7 - 1
src/pages/system/components/InsideModule.vue

@@ -84,6 +84,7 @@ import FeelLoad from '@/pages/feelLoad/FeelLoad.vue'//bmnp
 import FatherMap from '@/pages/mapLoad/FatherMap.vue';//jsplumb
 import DrawDesigns from '@/pages/components/draw/DrawDesigns.vue';//logicflow
 import { now } from 'moment';
+import { useRoute } from 'vue-router';
 export default {
     props: {
         tfType: {
@@ -108,6 +109,7 @@ export default {
         }
     },
     setup(props, { emit }) {
+        let route = useRoute()//跳转传参
         let moduleList = ref([])
         let lineMenuColor = ref('#255CE7')
         let designsRef = ref(null)
@@ -139,7 +141,11 @@ export default {
             needObj.value = props.insideNeed
             needId.value = props.lineId
             nowLook.value = result
-            needName.value = props.setName
+            if(props.setName){
+                needName.value = props.setName
+            }else{
+                needName.value = route.query.modelname
+            }
             coolObj.value = props.setId//模型整个数据
         }
         function svClick() {

+ 9 - 8
src/utils/request.js

@@ -3,6 +3,7 @@ import axios from 'axios'
 import { ElMessage } from 'element-plus'
 import vue from "vue"
 import { useRouter } from 'vue-router'
+let router = useRouter()
 // 请求url
 const service = axios.create({
     // baseURL: window.STATIC_CONFIG.proxyUrl, // url = base url + request url
@@ -67,7 +68,7 @@ service.interceptors.request.use(
         // return Promise.reject(error)
     }
 )
-var router = useRouter()
+
 // 响应拦截
 service.interceptors.response.use(
     response => {
@@ -77,13 +78,13 @@ service.interceptors.response.use(
     },
     error => {
         console.log(error,'相应拦截器error');
-        if(error.code == "ERR_NETWORK"){
-            ElMessage({
-                type:"error",
-                message:"网络错误,请重新登录",
-            })
-            router.push("/login")
-        }
+        // if(error.code == "ERR_NETWORK"){
+        //     ElMessage({
+        //         type:"error",
+        //         message:"网络错误,请重新登录",
+        //     })
+        //     router.push("/login")
+        // }
         if (error.response.status === 401) {
             ElMessage({
                 message: "登陆已过期,请重新登录",