liyangzheng il y a 1 an
Parent
commit
d496da69b1
34 fichiers modifiés avec 616 ajouts et 220 suppressions
  1. 9 0
      src/api/system.js
  2. 28 3
      src/pages/components/HeadMenu.vue
  3. 4 1
      src/pages/components/draw/DrawDesigns.vue
  4. 20 25
      src/pages/components/drawModal/AbilityModal.vue
  5. 11 5
      src/pages/components/drawModal/AddAbility.vue
  6. 98 0
      src/pages/components/drawModal/DelAbility.vue
  7. 26 12
      src/pages/components/drawModal/LineDouble.vue
  8. 27 13
      src/pages/mission/components/CreateMis.vue
  9. 30 17
      src/pages/mission/components/HistoryMis.vue
  10. 4 0
      src/pages/mission/components/PageNation.vue
  11. 2 2
      src/pages/mission/modalComp/CheckIed.vue
  12. 86 0
      src/pages/mission/modalComp/DelHistory.vue
  13. 1 1
      src/pages/mission/modalComp/FlashCreate.vue
  14. 1 1
      src/pages/mission/modalComp/LookScd.vue
  15. 1 1
      src/pages/mission/modalComp/ModelTree.vue
  16. 1 1
      src/pages/netStructPicture/modalCom/LookScd.vue
  17. 2 2
      src/pages/setting/SettingPage.vue
  18. 16 2
      src/pages/setting/components/Pagination.vue
  19. 21 5
      src/pages/setting/components/ReportModule.vue
  20. 83 24
      src/pages/setting/components/SetLog.vue
  21. 6 3
      src/pages/setting/components/SystemCode.vue
  22. 1 1
      src/pages/setting/components/SystemNum.vue
  23. 45 38
      src/pages/setting/modalComp/AddSc.vue
  24. 28 25
      src/pages/setting/modalComp/AddSn.vue
  25. 4 1
      src/pages/setting/modalComp/Addrm.vue
  26. 2 2
      src/pages/setting/modalComp/DelSc.vue
  27. 14 11
      src/pages/setting/modalComp/Delrm.vue
  28. 24 3
      src/pages/system/components/InsideModule.vue
  29. 6 6
      src/pages/system/modalComp/AddLine.vue
  30. 1 1
      src/pages/system/modalComp/AddNode.vue
  31. 1 1
      src/pages/system/modalComp/DelLine.vue
  32. 8 8
      src/pages/system/modalComp/LookLine.vue
  33. 1 1
      src/pages/system/modalComp/PicLook.vue
  34. 4 4
      src/router/index.js

+ 9 - 0
src/api/system.js

@@ -13,7 +13,16 @@ function editSystemCode(data){
         data
     })
 }
+// 下载附件
+function downLoad(data){
+    return request({
+        url:`/attachment/download`,
+        method:'post',
+        data,
+    })
+}
 export default {
     getSystemCode,
     editSystemCode,
+    downLoad,
 }

+ 28 - 3
src/pages/components/HeadMenu.vue

@@ -55,12 +55,12 @@
                                             border-bottom: 1px solid gray;
                                             ">
                                             <div>
-                                                <img style="width: 40px;height: 40px;" src="../../assets/icon/Avatar.png"
+                                                <img style="width: 40px;height: 40px;margin: 0 10px;" src="../../assets/icon/Avatar.png"
                                                     alt="">
                                             </div>
                                             <div>
-                                                <p>Admin</p>
-                                                <p>登陆时间:2000-01-01</p>
+                                                <p style="font-weight: bolder;font-size: 16px;">{{ username }}</p>
+                                                <p>登陆时间:{{ currentTime }}</p>
                                             </div>
                                         </div>
                                         <div class="logOut" @click="logOut">
@@ -102,6 +102,14 @@ export default {
         let mini = ref(false)
         let close = ref(false)
         let img = ref(false)
+        let userInfo = ref({})//用户信息
+        let username = ref('')//用户名
+        const currentTime = ref(getCurrentTime());
+        // 初始化组件
+        function reload() {
+            userInfo.value = JSON.parse(sessionStorage.getItem("userInfo"))
+            username.value = userInfo.value.userinfo.name
+        }
         // 获取日期
         function getDate() {
             const currentDate = new Date();
@@ -120,6 +128,17 @@ export default {
             let formattedTime = `${hours}:${minutes}:${seconds}`;
             times.value = formattedTime
         }
+        function getCurrentTime() {
+            const now = new Date();
+            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}`;
+        }
         // 最小化窗口
         function miniSize() {
             windowEx.Min()
@@ -159,6 +178,7 @@ export default {
             setInterval(() => {
                 getTime()
             }, 1000)//一秒给times赋值,使其实时显示
+            reload()
         })
         return {
             getDate,//获取日期
@@ -176,6 +196,11 @@ export default {
             img,
             imgOver,
             imgOut,
+            reload,//初始化组件
+            userInfo,//用户信息
+            username,//用户名
+            getCurrentTime,
+            currentTime,
         }
     }
 }

+ 4 - 1
src/pages/components/draw/DrawDesigns.vue

@@ -7,7 +7,7 @@
         <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" @lineBack="lineBack"></LineDouble>
+            :numCase="numCase" :startText="startText" :endText="endText" :lineType="lineType" @lineBack="lineBack"></LineDouble>
     </div>
 </template>
 
@@ -93,6 +93,7 @@ export default {
         let numCase = ref(1)//判断sv还是goose
         let startText = ref("")//开始节点名称
         let endText = ref("")//结束节点名称
+        let lineType = ref("")//连接线
         watch(() => props.lineMenuColor, (newVal) => {
             copyColor.value = newVal
         })
@@ -371,6 +372,7 @@ export default {
                     abModal.value = true
                 })
                 lf.value.on('edge:dbclick', function (data, e, position) {//双击连接线
+                    lineType.value = data.data.properties.issv
                     let start = lf.value.getNodeModelById(data.data.sourceNodeId)//获取连线开始节点
                     let end = lf.value.getNodeModelById(data.data.targetNodeId)//获取连线结尾节点
                     startText.value = start.text.value//开始文本
@@ -444,6 +446,7 @@ export default {
             numCase,//判断是sv还是goose,0为sv,1为goose
             startText,//开始节点名称
             endText,//结束节点名称
+            lineType,//连接线
         }
     },
     components: {

+ 20 - 25
src/pages/components/drawModal/AbilityModal.vue

@@ -1,10 +1,10 @@
 <template>
     <div>
-        <el-dialog v-model="dialogVisible" title="装置功能配置" width="70%" @close="handleClose">
+        <el-dialog v-model="dialogVisible" title="装置功能配置" width="70%" @close="handleClose" :close-on-click-modal="false">
             <el-button type="primary" plain @click="addAbility(0)"><el-icon>
                     <Plus />
                 </el-icon>添加新功能</el-button>
-            <el-table :data="tableData" style="width: 100%">
+            <el-table :data="tableData" style="width: 100%;height: calc(100vh - 600px);">
                 <el-table-column label="序号" width="100">
                     <template #default="scope">
                         <span>{{ scope.$index + 1 }}</span>
@@ -16,12 +16,12 @@
                 <el-table-column fixed="right" label="操作" width="auto">
                     <template #default="scope">
                         <el-button link type="primary" size="small" @click="addAbility(1, scope.row)">编辑</el-button>
-                        <el-popconfirm title="确认删除吗?" @confirm="firmSure">
-                            <template #reference>
-                                <el-button link type="primary" size="small" style="color: red;"
-                                    @click="delAbility(scope.row)">删除</el-button>
-                            </template>
-                        </el-popconfirm>
+                        <!-- <el-popconfirm title="确认删除吗?" @confirm="firmSure">
+                            <template #reference> -->
+                        <el-button link type="primary" size="small" style="color: red;"
+                            @click="delAbility(scope.row)">删除</el-button>
+                        <!-- </template>
+                        </el-popconfirm> -->
                     </template>
                 </el-table-column>
             </el-table>
@@ -34,6 +34,8 @@
         </el-dialog>
         <AddAbility v-if="addModal" :addModal="addModal" :modelIds="modelIds" :iedTypes="iedTypes" :copyReload="copyReload"
             :editOrAdd="editOrAdd" :editRow="editRow" @addAback="addAback" :tableData="tableData"></AddAbility>
+        <DelAbility v-if="delModal" :delModal="delModal" :modelIds="modelIds" :delFcda="delFcda" :copyReload="copyReload"
+            @delBack="delBack"></DelAbility>
     </div>
 </template>
 
@@ -41,6 +43,7 @@
 import { ref, onMounted, watch, toRefs } from 'vue';
 import flow from "@/api/flow/flow"
 import AddAbility from './AddAbility.vue';
+import DelAbility from './DelAbility.vue';
 import { ElMessage } from 'element-plus';
 export default {
     props: {
@@ -62,6 +65,7 @@ export default {
         let modelIds = ref('')//模型id
         let iedTypes = ref('')//iedtype
         let addModal = ref(false)//新增功能模态框开关状态
+        let delModal = ref(false)//删除功能模态框开关状态
         let tableData = ref([])//表格数据
         let editOrAdd = ref(0)//0为新增,1为编辑
         let editRow = ref({})//编辑的对象
@@ -111,30 +115,18 @@ export default {
         // 删除功能
         function delAbility(row) {
             delFcda.value = row.id
+            delModal.value = true
         }
         // 确认删除功能
         function firmSure() {
-            flow.delModelOn({
-                model_id: modelIds.value - 0,
-                fcda_id: delFcda.value - 0,
-            }).then(res => {
-                if (res.code == 0) {
-                    ElMessage({
-                        type: "success",
-                        message: "删除成功!"
-                    })
-                    copyReload()
-                }else{
-                    ElMessage({
-                        message:res.msg,
-                        type:"error"
-                    })
-                }
-            })
+
         }
         function addAback(data) {
             addModal.value = data
         }
+        function delBack(data) {
+            delModal.value = data
+        }
         onMounted(() => {
             reload()
         })
@@ -156,10 +148,13 @@ export default {
             editOrAdd,//0为新增,1为编辑
             editRow,//编辑的对象
             delFcda,//需要删除的fcdaid
+            delModal,//删除功能模态框开关状态
+            delBack,//DelAbility.vue返回模态框状态
         }
     },
     components: {
         AddAbility,//嵌套新增功能窗口
+        DelAbility,//嵌套删除模态框
     }
 }
 </script>

+ 11 - 5
src/pages/components/drawModal/AddAbility.vue

@@ -1,9 +1,9 @@
 <template>
     <div>
-        <el-dialog v-model="dialogVisible" title="新增/编辑功能" width="30%" @close="handleClose">
+        <el-dialog v-model="dialogVisible" :title="titles" width="30%" @close="handleClose" :close-on-click-modal="false">
             <el-form :model="abilityFrom" :rules="rules" label-width="150px">
                 <el-form-item label="设计功能名称" prop="setAbName">
-                    <el-select @change="abNameChange" style="width: 350px;" v-model="abilityFrom.setAbName" filterable
+                    <el-select :disabled="numState == 1" @change="abNameChange" style="width: 350px;" v-model="abilityFrom.setAbName" filterable
                         allow-create default-first-option :reserve-keyword="false" placeholder="选择或输入">
                         <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item" />
                     </el-select>
@@ -87,6 +87,7 @@ export default {
         let numState = ref(0)//0为新增,1为修改
         let needEditRow = ref({})//需要修改的整个对象属性
         let newAddId = ref("")//新增的id
+        let titles = ref("新增装置功能")
         // 监听props.tabledata变化赋值
         watch(() => props.tableData, (newVal) => {
             fatherToSon.value = newVal
@@ -103,6 +104,9 @@ export default {
         watch(() => props.editRow, (newVal) => {
             needEditRow.value = newVal
         })
+        watch(()=>props.editOrAdd,(newVal)=>{
+            numState.value = newVal
+        })
         // 初始化组件
         function reload() {
             dialogVisible.value = props.addModal//模态框状态
@@ -128,6 +132,7 @@ export default {
                 }
             })
             if (numState.value == 1) {
+                titles.value = '编辑装置功能'
                 abilityFrom.value.setAbName = needEditRow.value.func_name
                 abilityFrom.value.setMemo = needEditRow.value.fcda_match_exp
                 abilityFrom.value.setSon = needEditRow.value.fcda_name
@@ -206,9 +211,9 @@ export default {
         }
         onMounted(() => {
             reload()
-            setTimeout(() => {
-                reload()
-            }, 1500);
+            // setTimeout(() => {
+            //     reload()
+            // }, 1500);
         })
         return {
             dialogVisible,//模态框开关
@@ -225,6 +230,7 @@ export default {
             numState,//0为新增,1为修改
             needEditRow,//需要的整个对象属性
             newAddId,//新增的id
+            titles,//模态框title
         }
     }
 }

+ 98 - 0
src/pages/components/drawModal/DelAbility.vue

@@ -0,0 +1,98 @@
+<template>
+    <div>
+        <el-dialog v-model="dialogVisible" title="删除" width="30%" @close="closes" :close-on-click-modal="false">
+            <div style="display: flex;justify-content:center;align-items: center;">
+                <el-icon style="color: red;font-size: 40px;display: block;">
+                    <WarningFilled />
+                </el-icon>
+                <span style="display: block;">是否确认删除该信息?</span>
+            </div>
+            <div style="display: flex;justify-content:center;align-items: center;margin-top: 40px;">
+                <el-button style="display: block;width: 150px;height: 30px;" @click="cancels">取消</el-button>
+                <el-button style="display: block;width: 150px;height: 30px;" type="primary" @click="sureAdd">确认</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { ref, onMounted, watch, toRef } from 'vue';
+import flow from '@/api/flow/flow';
+import { ElMessage } from 'element-plus';
+export default {
+    props: {
+        delModal: {
+            type: Boolean,
+            required: true
+        },//父组件返回模态框状态
+        modelIds: {
+            type: String,
+            required: true
+        },//模型id
+        delFcda: {
+            type: String,
+            required: true
+        },//需要删除的fcdaid
+        copyReload: {
+            type: Function,
+            required: true
+        },//刷新父组件显示列表
+    },
+    setup(props, { emit }) {
+        let dialogVisible = ref(false)//模态框开关
+        let module = ref('')//本组件模型id
+        let needDel = ref("")//本组件需要删除的fcdaid
+        watch(() => props.modelIds, (newVal) => {
+            module.value = newVal
+        })
+        watch(() => props.delFcda, (newVal) => {
+            needDel.value = newVal
+        })
+        // 初始化函数
+        function reload() {
+            module.value = props.modelIds
+            needDel.value = props.delFcda
+            dialogVisible.value = props.delModal
+        }
+        function closeModal() {
+            dialogVisible.value = false
+            emit('delBack', dialogVisible.value)
+        }
+        function sureModal() {
+            flow.delModelOn({
+                model_id: module.value - 0,
+                fcda_id: needDel.value - 0,
+            }).then(res => {
+                if (res.code == 0) {
+                    ElMessage({
+                        type: "success",
+                        message: "删除成功!"
+                    })
+                    props.copyReload()
+                    dialogVisible.value = false
+                    emit('delBack', dialogVisible.value)
+                } else {
+                    ElMessage({
+                        message: res.msg,
+                        type: "error"
+                    })
+                }
+            })
+        }
+        onMounted(() => {
+            reload()
+        })
+        return {
+            reload,//初始化函数
+            dialogVisible,//模态框开关
+            closes: closeModal,//关闭模态框
+            cancels: closeModal,//关闭模态框
+            sureAdd: sureModal,//确认关闭模态框
+            module,//本组件模型id
+            needDel,//本组件需要删除的fcdaid
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 26 - 12
src/pages/components/drawModal/LineDouble.vue

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <el-dialog v-model="dialogVisible" title="装置端子关系配置" width="60%" @close="handleClose">
+        <el-dialog v-model="dialogVisible" title="装置端子关系配置" width="60%" @close="handleClose" :close-on-click-modal="false">
             <div class="masBox">
                 <div class="leftBox">
                     <h1 style="
@@ -9,9 +9,11 @@
                     margin: 25px auto;
                     padding-bottom: 10px;
                     ">{{ startTxt }}</h1>
-                    <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'">{{ item.fcda_name }}</span>
+                    <div style="height: calc(100vh - 520px);overflow-y: auto;">
+                        <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'">{{ item.fcda_name }}</span>
+                        </div>
                     </div>
                 </div>
                 <div class="middleBox">
@@ -25,7 +27,7 @@
                     margin: 25px auto;
                     padding-bottom: 10px;
                     ">{{ endTxt }}</h1>
-                    <div>
+                    <div style="height: calc(100vh - 520px);overflow-y: auto;">
                         <!-- <div style="margin-bottom: 10px;" v-for="(item, index) in outList">
                             <div
                                 style="width: 80%;display: flex;justify-content: space-around;align-items: center;margin: 0 auto;">
@@ -42,7 +44,7 @@
                                 }}</span>
                             </div>
                         </div> -->
-                        <el-checkbox-group  v-model="checkList" @change="checkChange">
+                        <el-checkbox-group v-model="checkList" @change="checkChange">
                             <el-checkbox v-for="(item, index) in outList" :label="item.id" :key="item.id">
                                 {{ item.fcda_name }}
                             </el-checkbox>
@@ -94,6 +96,10 @@ export default {
             type: String,
             required: true
         },//结束文本
+        lineType:{
+            type:String,
+            required:true
+        },//用于判断goose还是sv
     },
     setup(props, { emit }) {
         let dialogVisible = ref(false)//模态框开关
@@ -113,6 +119,7 @@ export default {
         let checkList = ref([])//select数据
         let loading = ref(false)
         let arrNew = ref([])//新的存储fdcdids
+        let gv = ref('')
         watch(() => props.modelId, (newVal) => {
             modelIds.value = newVal
         })
@@ -125,6 +132,9 @@ export default {
         watch(() => props.numCase, (newVal) => {
             numStatus.value = newVal
         })
+        watch(()=>props.lineType,(newVal)=>{
+            gv.value = newVal
+        })
         // 初始化函数
         function reload() {
             dialogVisible.value = props.ldModal
@@ -134,6 +144,7 @@ export default {
             startTxt.value = props.startText
             endTxt.value = props.endText
             numStatus.value = props.numCase
+            gv.value = props.lineType
             flow.getModelAndIed({
                 model_id: modelIds.value - 0,
                 ied_type: starts.value.ied_type,
@@ -196,25 +207,25 @@ export default {
         }
         // 返回goose还是sv
         const setGooseOrSv = computed(() => {
-            if (numStatus.value == 0) {
+            if (gv.value == "SV") {
                 return "SV"
-            } else if (numStatus.value == 1) {
+            } else if (gv.value == "GOOSE") {
                 return "GOOSE"
             }
         })
         // 返回图片
         const setBackground = computed(() => {
-            if (numStatus.value == 0) {
+            if (gv.value == "SV") {
                 return require("../../../assets/image/sv_orange.png")
-            } else if (numStatus.value == 1) {
+            } else if (gv.value == "GOOSE") {
                 return require("../../../assets/image/goose_blue.png")
             }
         })
         // 返回文字颜色
         const setColor = computed(() => {
-            if (numStatus.value == 0) {
+            if (gv.value == "SV") {
                 return 'orange'
-            } else if (numStatus.value == 1) {
+            } else if (gv.value == "GOOSE") {
                 return 'blue'
             }
         })
@@ -302,6 +313,7 @@ export default {
             checkList,
             checkChange,
             arrNew,//新的存储ids
+            gv,
         }
     }
 }
@@ -323,6 +335,7 @@ export default {
     text-align: center;
     background-color: #F7F8FB;
     border: 2px dashed #A3ADE0;
+    /* overflow-y: auto; */
 }
 
 .middleBox {
@@ -339,6 +352,7 @@ export default {
     text-align: center;
     background-color: #EDF3FF;
     border: 2px dashed #A3ADE0;
+    /* overflow-y: auto; */
 }
 
 .result {

+ 27 - 13
src/pages/mission/components/CreateMis.vue

@@ -2,7 +2,7 @@
     <div>
         <div class="createMisBox" v-if="selects == 1">
             <div>
-                <p>新建检测任务</p>
+                <h1 style="font-size: 16px;font-weight: bolder;">新建检测任务</h1>
             </div>
             <div class="formBox">
                 <el-form ref="myForm" :inline="true" label-position="top" :model="newMission" class="demo-form-inline"
@@ -16,8 +16,8 @@
                             clearable />
                     </el-form-item>
                     <el-form-item label="检测变电站" prop="flashId">
-                        <el-select style="width: 340px;height: 40px;" v-model="newMission.flashId" placeholder="请选择变电站" clearable
-                            @change="flashChange">
+                        <el-select style="width: 340px;height: 40px;" v-model="newMission.flashId" placeholder="请选择变电站"
+                            clearable @change="flashChange">
                             <template v-for="(item, index) in flashList">
                                 <el-option :label="item.label" :value="item.value" />
                             </template>
@@ -28,16 +28,20 @@
                     <el-form-item label="检测模型" prop="">
                         <el-input class="bestInput" style="width: 600px;" disabled placeholder="输入内容"
                             v-model="cmodel"></el-input>
-                        <el-button @click="modelOpen" style="height: 40px;margin-left: 5px;" type="primary"
-                            plain><el-icon><Coin /></el-icon>选择模型</el-button>
+                        <el-button @click="modelOpen" style="height: 40px;margin-left: 5px;" type="primary" plain><el-icon>
+                                <Coin />
+                            </el-icon>选择模型</el-button>
                     </el-form-item>
                     <el-form-item label="报告模板" prop="reportNow">
-                        <el-select class="bestInput" style="width: 400px;height: 40px;" @chang="bmChange" v-model="newMission.reportNow"
-                            placeholder="请选择模板" clearable>
+                        <el-select class="bestInput" style="width: 400px;height: 40px;" @chang="bmChange"
+                            v-model="newMission.reportNow" placeholder="请选择模板" clearable>
                             <el-option v-for="(item, index) in rmList" :label="item.name" :value="item.id" />
                         </el-select>
                     </el-form-item>
-                    <el-form-item label="任务说明" prop="misMes">
+                    <el-form-item prop="misMes" :label-class="{ 'my-red-label': true }">
+                        <template #label>
+                            <span style="color: red;">任务说明</span>
+                        </template>
                         <el-input style="width: 1136px;" v-model="newMission.misMes"></el-input>
                     </el-form-item>
                     <el-form-item label="SCD文件">
@@ -85,8 +89,9 @@
                         <div style="margin-left: 5px;">
                             <span>装置列表——间隔:<em>{{ jg }}</em></span>
                         </div>
-                        <div style="margin-left: 5px;">
+                        <div style="position: absolute;top: 0px;right: 0px;">
                             <!-- <span>检测模型:<em v-for="(item, index) in mx">{{ mx[index] }}</em></span> -->
+                            <el-checkbox label="开启检测" size="large" />
                             <el-button type="primary" size="small" plain @click="checkTime">选择装置</el-button>
                         </div>
 
@@ -560,16 +565,25 @@ em {
 }
 
 .mx-1 {
-    width: 180px;
+    width: 100px;
     height: 30px;
     margin-right: 10px;
     margin-top: 5px;
     border: 1px solid #5779D7;
 }
-:deep(.el-form--inline .el-form-item){
+
+:deep(.el-form--inline .el-form-item) {
     margin-right: 12px !important;
 }
-:deep(.el-select .el-input__wrapper){
+
+:deep(.el-select .el-input__wrapper) {
     height: 38px;
 }
-</style>
+
+.demo-form-inline:nth-child(2) {
+    background-color: red;
+}
+
+.my-red-label {
+    color: red;
+}</style>

+ 30 - 17
src/pages/mission/components/HistoryMis.vue

@@ -13,7 +13,7 @@
             </div>
             <div>
                 <el-button @click="searchMis" type="primary">查询</el-button>
-                <el-button @click="reload">重置</el-button>
+                <el-button @click="record">重置</el-button>
             </div>
         </div>
         <div>
@@ -36,11 +36,11 @@
                 <el-table-column prop="voltage_name" label="电压等级" width="120" />
                 <el-table-column fixed="right" label="操作" width="120">
                     <template #default="scoped">
-                        <el-popconfirm title="你确定删除吗?" @confirm="sureDelMis">
-                            <template #reference>
-                                <el-button link type="primary" size="small" @click="delMis(scoped.row)">删除</el-button>
-                            </template>
-                        </el-popconfirm>
+                        <!-- <el-popconfirm title="你确定删除吗?" @confirm="sureDelMis">
+                            <template #reference> -->
+                        <el-button link type="danger" size="small" @click="delMis(scoped.row)">删除</el-button>
+                        <!-- </template>
+                        </el-popconfirm> -->
                     </template>
                 </el-table-column>
             </el-table>
@@ -48,6 +48,7 @@
         <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>
         </div>
     </div>
 </template>
@@ -56,6 +57,7 @@
 import { ref, onMounted, watch, toRefs } from 'vue';
 import moment from 'moment';
 import PageNation from './PageNation.vue';
+import DelHistory from '../modalComp/DelHistory.vue';
 import task from '@/api/task';
 import { ElMessage } from 'element-plus';
 export default {
@@ -69,12 +71,23 @@ export default {
         let endTime = ref("")//结束时间
         let names = ref('')//根据名称
         let delId = ref(0)//需要删除的id
+        let delModal = ref(false)//删除模态框状态
         function reload() {
             task.getTask({ pageno: 1, pagesize: 20 }).then(res => {
                 tableData.value = res.data
                 totals.value = res.count
             })
         }
+        function record(){
+            names.value = ''
+            startTime.value = ''
+            endTime.value = ''
+            getTime.value = ''
+            task.getTask({ pageno: 1, pagesize: 20 }).then(res => {
+                tableData.value = res.data
+                totals.value = res.count
+            })
+        }
         function filterState(num) {
             if (num == 0) {
                 return "未检测"
@@ -109,23 +122,17 @@ export default {
         }
         function delMis(e) {
             delId.value = e.id
+            delModal.value = true
         }
         function sureDelMis() {
-            task.delTask({
-                id: delId.value - 0
-            }).then(res => {
-                if (res.code == 0) {
-                    ElMessage({
-                        type: "success",
-                        message: "删除成功"
-                    })
-                    reload()
-                }
-            })
+         
         }
         function pageBack(data) {
             tableData.value = data
         }
+        function delBack(data){
+            delModal.value = data
+        }
         onMounted(() => {
             reload()
         })
@@ -145,10 +152,16 @@ export default {
             endTime,//结束时间
             delMis,//删除任务
             sureDelMis,//确认删除
+            delModal,//删除模态框的状态
+            delBack,//DelHistory.vue返回模态框状态
+            delId,
+            record,
+            totals,//总条数
         }
     },
     components: {
         PageNation,
+        DelHistory,
     }
 }
 </script>

+ 4 - 0
src/pages/mission/components/PageNation.vue

@@ -31,10 +31,14 @@ export default {
         let disabled = ref(false)
         let background = ref(false)
         let total = ref(100)//总数
+        watch(()=>props.totals,(newVal)=>{
+            total.value = newVal
+        })
         function reload() {
             currentPage.value = props.pageNum
             pageSize.value = props.pageSize
             total.value = props.totals
+            console.log(total.value,'total');
         }
         function handleSizeChange(e) {//每页条数
             pageSize.value = e

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

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <el-dialog v-model="dialogVisible" draggable title="选择ied" width="30%" @close="sureclose">
+        <el-dialog v-model="dialogVisible" draggable title="选择ied" 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;" />
             <template #footer>
@@ -66,7 +66,7 @@ export default {
                 // 如果 e.id 已经在 checkArr 中,则从 checkArr 中删除
                 checkArr.value.splice(existingIndex, 1);
             }
-           
+
         }
 
         onMounted(() => {

+ 86 - 0
src/pages/mission/modalComp/DelHistory.vue

@@ -0,0 +1,86 @@
+<template>
+    <div>
+        <el-dialog v-model="dialogVisible" title="删除" width="30%" @close="closes" :close-on-click-modal="false">
+            <div style="display: flex;justify-content:center;align-items: center;">
+                <el-icon style="color: red;font-size: 40px;display: block;">
+                    <WarningFilled />
+                </el-icon>
+                <span style="display: block;">是否确认删除该信息?</span>
+            </div>
+            <div style="display: flex;justify-content:center;align-items: center;margin-top: 40px;">
+                <el-button style="display: block;width: 150px;height: 30px;" @click="cancels">取消</el-button>
+                <el-button style="display: block;width: 150px;height: 30px;" type="primary" @click="sureAdd">确认</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { ref, onMounted, watch } from "vue"
+import task from '@/api/task'
+import { ElMessage } from "element-plus"
+export default {
+    props: {
+        delId: {
+            type: Number,
+            required: true,
+        },
+        delModal: {
+            type: Boolean,
+            required: true
+        },
+        reload: {
+            type: Function,
+            required: true
+        }
+    },
+    setup(props, { emit }) {
+        let dialogVisible = ref(false)//模态框状态
+        let delHis = ref(0)//删除的id
+        watch(() => props.delId, (newVal) => {
+            delHis.value = newVal
+        })
+        //初始化组件
+        function reloads() {
+            delHis.value = props.delId
+            console.log(delHis.value,'del');
+            dialogVisible.value = props.delModal
+        }
+        //关闭模态框
+        function closeModal() {
+            dialogVisible.value = false
+            emit("delBack", dialogVisible.value)
+        }
+        //确认关闭模态框
+        function sureModal() {
+            task.delTask({
+                id: delHis.value - 0
+            }).then(res => {
+                if (res.code == 0) {
+                    ElMessage({
+                        type: "success",
+                        message: "删除成功"
+                    })
+                    props.reload()
+                    dialogVisible.value = false
+                    emit("delBack", dialogVisible.value)
+                }
+            })
+
+        }
+        onMounted(() => {
+            reloads()
+        })
+        return {
+            dialogVisible,//模态框状态
+            reloads,//初始化组件
+            closes: closeModal,//关闭模态框
+            cancels: closeModal,//关闭模态框
+            sureAdd: sureModal,//确认关闭模态框
+            delHis,//删除的id
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped></style>

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

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <el-dialog v-model="dialogVisible" title="选择模型" width="30%" @close="sureclose">
+        <el-dialog v-model="dialogVisible" title="选择模型" width="30%" @close="sureclose" :close-on-click-modal="false">
             <el-form :model="formData" label-width="120px" :rules="dataRule">
                 <el-form-item label="区域名称" prop="areaName">
                     <el-input v-model="formData.areaName" />

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

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div>
-            <el-dialog v-model="dialogVisible" draggable :title="'选择scd文件,您选择的文件是:' + scdName" width="30%" @close="sureclose">
+            <el-dialog v-model="dialogVisible" draggable :title="'选择scd文件,您选择的文件是:' + scdName" width="30%" @close="sureclose" :close-on-click-modal="false">
                 <el-tree :data="treeList" :props="treeProps" @node-click="handleNodeClick" />
                 <template #footer>
                     <span class="dialog-footer">

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

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div class="bigBox">
-            <el-dialog v-loading="loading" v-model="dialogVisible" title="选择模型" width="30%" @close="sureclose">
+            <el-dialog v-loading="loading" v-model="dialogVisible" title="选择模型" width="30%" @close="sureclose" :close-on-click-modal="false">
                 <el-tree ref="treeRef" :data="treeData" style="height: calc(100vh - 500px);overflow-y: auto;" show-checkbox
                     node-key="id" @check-change="handleCheckChange" :check-strictly="true" default-expand-all
                     :expand-on-click-node="false" :props="defaultProps" />

+ 1 - 1
src/pages/netStructPicture/modalCom/LookScd.vue

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <el-dialog v-model="dialogVisible" title="选择SCD文件" width="40%" @close="handleClose">
+        <el-dialog v-model="dialogVisible" title="选择SCD文件" width="40%" @close="handleClose" :close-on-click-modal="false">
             <div class="misBox" v-if="loading" v-loading="loading" element-loading-text="正在比对中,为防止误操作将禁止页面点击"
                 element-loading-background="rgba(122, 122, 122, 0.8)">
             </div>

+ 2 - 2
src/pages/setting/SettingPage.vue

@@ -88,8 +88,8 @@ export default {
 
 <style scoped>
 .bigBox {
-    width: 98%;
-    height: 100%;
+    /* width: 98%; */
+    height: calc(100vh - 90px);
 }
 
 .tagLit {

+ 16 - 2
src/pages/setting/components/Pagination.vue

@@ -21,6 +21,14 @@ export default {
         tLength: {
             type: Number,
             required: true
+        },
+        pages:{
+            type:Number,
+            required:true
+        },
+        sizes:{
+            type:Number,
+            required:true
         }
     },
     setup(props, { emit }) {
@@ -31,8 +39,14 @@ export default {
         let small = ref(false)
         let background = ref(false)
         let disabled = ref(false)
-        let pageIndex = ref(0)
+        let pageIndex = ref(1)
         let pageThis = ref(0)
+        watch(()=>props.pages,(newVal)=>{
+            pageIndex.value = newVal
+        })
+        // watch(()=>props.sizes,(newVal)=>{
+        //     pageSize.value = newVal
+        // })
         function lineList() {
             realTotal.value = result
         }
@@ -70,7 +84,7 @@ export default {
 
 <style scoped>
 .bigBox{
-    width: 98%;
+    width: 100%;
     height: auto;
     display: flex;
     justify-content: flex-end;

+ 21 - 5
src/pages/setting/components/ReportModule.vue

@@ -2,7 +2,7 @@
     <div>
         <div class="bigBox">
             <div class="settingBox">
-                <h2>报告模板管理</h2>
+                <h1 style="font-size: 18px;">报告模板管理</h1>
             </div>
             <div>
                 <div class="moduleBox">
@@ -13,11 +13,11 @@
                             </el-icon>新建报告模板</el-button>
                     </div>
                     <div class="litBox">
-                        <span>模板名称</span>
+                        <span style="font-size: 14px;margin: 0 10px;">模板名称</span>
                         <el-input style="width: 260px;" v-model="moduleName" placeholder="请输入模板名称"></el-input>
                     </div>
                     <div class="litBox">
-                        <span>状态</span>
+                        <span style="font-size: 14px;margin: 0 10px;">状态</span>
                         <el-select v-model="stateValue" @change="stateChange" class="m-2" placeholder="选择状态" size="default"
                             style="width: 240px">
                             <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
@@ -36,7 +36,7 @@
                     </div>
                 </div>
                 <div class="tableBox">
-                    <el-table ref="multipleTableRef" :data="reportList" style="width: 100%;height: calc(100vh - 240px);"
+                    <el-table ref="multipleTableRef" :data="reportList" style="width: 100%;height: calc(100vh - 260px);"
                         @selection-change="handleSelectionChange">
                         <el-table-column type="selection" width="55" />
                         <el-table-column label="编号" width="auto">
@@ -58,7 +58,7 @@
                                     <el-icon>
                                         <EditPen />
                                     </el-icon>编辑</el-button>
-                                <el-button link type="primary" size="small">
+                                <el-button link type="primary" size="small" @click="downFile(scope.row)">
                                     <el-icon>
                                         <Download />
                                     </el-icon>下载</el-button>
@@ -88,6 +88,7 @@
 <script>
 import { ref, onMounted, toRefs } from 'vue'
 import report from '@/api/report';
+import system from '@/api/system';
 import moment from 'moment';
 import Addrm from '../modalComp/Addrm.vue'
 import Delrm from '../modalComp/Delrm.vue'
@@ -165,6 +166,20 @@ export default {
                 }
             })
         }
+        // 下载数据
+        function downFile(row) {
+            system.downLoad({
+                ids: row.doc_id - 0
+            }).then(res => {
+                if(res.code == 0){
+                    ElMessage({
+                        message:"正在下载",
+                        type:"success",
+                        duration:1000
+                    })
+                }
+            })
+        }
         function stateChange(e) {
             stateValue.value = e
         }
@@ -217,6 +232,7 @@ export default {
             stateValue,//选择状态value
             stateChange,//选择器change事件
             reState,//表格筛选状态
+            downFile,//下载报告模板
         }
     },
     components: {

+ 83 - 24
src/pages/setting/components/SetLog.vue

@@ -39,11 +39,11 @@
                     </el-select>
                 </div>
                 <div class="manyBox">
-                    <el-button type="primary">
+                    <el-button type="primary" @click="allSearch">
                         <el-icon>
                             <Search />
                         </el-icon>查询</el-button>
-                    <el-button @click="getList">
+                    <el-button @click="getList(1)">
                         <el-icon>
                             <RefreshLeft />
                         </el-icon>重置</el-button>
@@ -51,7 +51,7 @@
             </div>
             <!-- 数据 -->
             <div class="mesBox">
-                <el-table :data="logList" stripe style="width: 100%;height: calc(100vh - 240px);">
+                <el-table :data="logList" stripe style="width: 100%;height: calc(100vh - 260px);">
                     <el-table-column prop="audittypename" :show-overflow-tooltip="true" label="审计分类" width="auto" />
                     <el-table-column prop="eventtypename" label="事件类型" width="auto" />
                     <el-table-column prop="staff" label="操作用户" width="auto" />
@@ -88,8 +88,8 @@ export default {
         let thingList = ref([])//事件类型列表
         let logList = ref([])//操作日志列表
         let logTotal = ref(0)//列表总数
-        let pages = ref(0)
-        let sizes = ref(0)
+        let pages = ref(1)
+        let sizes = ref(10)
         let loading = ref(false)
         function getSelect() {//获取所有下拉框选项
             systemRow.getAllRow({ pcode: "log_optresult" }).then(res => {
@@ -137,26 +137,55 @@ export default {
                 }
             })
         }
-        function getList() {//获取操作日志列表
-            loading.value = true
-            setlog.getAllLog({ pageindex: 1, pageSize: 20 }).then(res => {
-                if (res.data != null) {
-                    logList.value = res.data
-                    logTotal.value = res.count
-                    loading.value = false
-                } else {
-                    ElMessage({
-                        message: res.msg,
-                        type: "error"
-                    })
-                }
-            })
+        function getList(num) {//获取操作日志列表
+            if (num) {
+                setAbout.value = ''
+                setType.value = ''
+                audiType.value = ''
+                thing.value = ''
+                loading.value = true
+                setlog.getAllLog({ pageindex: 1, pageSize: 20, enddate: getDate(), startdate: getDate() }).then(res => {
+                    if (res.data != null) {
+                        logList.value = res.data
+                        logTotal.value = res.count
+                        loading.value = false
+                    } else {
+                        ElMessage({
+                            message: res.msg,
+                            type: "error"
+                        })
+                    }
+                })
+            } else {
+                loading.value = true
+                setlog.getAllLog({ pageindex: 1, pageSize: 20, enddate: getDate(), startdate: getDate() }).then(res => {
+                    if (res.data != null) {
+                        logList.value = res.data
+                        logTotal.value = res.count
+                        loading.value = false
+                    } else {
+                        ElMessage({
+                            message: res.msg,
+                            type: "error"
+                        })
+                    }
+                })
+            }
+
+        }
+        function getDate() {
+            const currentDate = new Date();
+            const year = currentDate.getFullYear();
+            const month = (currentDate.getMonth() + 1).toString().padStart(2, '0'); // 月份从0开始,需要加1,并补零
+            const day = currentDate.getDate().toString().padStart(2, '0'); // 补零
+            const formattedDate = `${year}-${month}-${day}`;
+            return formattedDate
         }
         function getBack(index, size) {//分页组件返回数据赋值
             loading.value = true
             pages.value = index
             sizes.value = sizes
-            setlog.getAllLog({ pageindex: pages.value, pageSize: sizes.value }).then(res => {
+            setlog.getAllLog({ pageindex: pages.value, pageSize: sizes.value, enddate: getDate(), startdate: getDate() }).then(res => {
                 logList.value = res.data
                 logTotal.value = res.count
             })
@@ -164,7 +193,7 @@ export default {
         function aboutChange(e) {//操作结果change事件
             loading.value = true
             setAbout.value = e
-            setlog.getAllLog({ pageindex: pages.value, pageSize: sizes.value, success: setAbout.value }).then(res => {
+            setlog.getAllLog({ pageindex: pages.value, pageSize: sizes.value, success: setAbout.value, enddate: getDate(), startdate: getDate() }).then(res => {
                 if (res.data != null) {
                     logList.value = res.data
                     logTotal.value = res.count
@@ -174,13 +203,14 @@ export default {
                         message: res.msg,
                         type: "error"
                     })
+                    loading.value = false
                 }
             })
         }
         function audiChange(e) {//审计分类change事件
             loading.value = true
             audiType.value = e
-            setlog.getAllLog({ pageindex: pages.value, pageSize: sizes.value, audittype: audiType.value }).then(res => {
+            setlog.getAllLog({ pageindex: pages.value, pageSize: sizes.value, audittype: audiType.value, enddate: getDate(), startdate: getDate() }).then(res => {
                 if (res.data != null) {
                     logList.value = res.data
                     logTotal.value = res.count
@@ -190,13 +220,14 @@ export default {
                         message: res.msg,
                         type: "error"
                     })
+                    loading.value = false
                 }
             })
         }
         function stChange(e) {//操作分类change事件
             loading.value = true
             setType.value = e
-            setlog.getAllLog({ pageindex: pages.value, pageSize: sizes.value, opttype: setType.value }).then(res => {
+            setlog.getAllLog({ pageindex: pages.value, pageSize: sizes.value, opttype: setType.value, enddate: getDate(), startdate: getDate() }).then(res => {
                 if (res.data != null) {
                     logList.value = res.data
                     logTotal.value = res.count
@@ -206,13 +237,14 @@ export default {
                         message: res.msg,
                         type: "error"
                     })
+                    loading.value = false
                 }
             })
         }
         function thingChange(e) {//事件类型change事件
             loading.value = true
             thing.value = e
-            setlog.getAllLog({ pageindex: pages.value, pageSize: sizes.value, eventtype: thing.value }).then(res => {
+            setlog.getAllLog({ pageindex: pages.value, pageSize: sizes.value, eventtype: thing.value, enddate: getDate(), startdate: getDate() }).then(res => {
                 if (res.data != null) {
                     logList.value = res.data
                     logTotal.value = res.count
@@ -222,6 +254,31 @@ export default {
                         message: res.msg,
                         type: "error"
                     })
+                    loading.value = false
+                }
+            })
+        }
+        function allSearch() {
+            setlog.getAllLog({
+                pageindex: pages.value,
+                pageSize: sizes.value,
+                eventtype: thing.value,
+                opttype: setType.value,
+                audittype: audiType.value,
+                success: setAbout.value,
+                enddate: getDate(),
+                startdate: getDate()
+            }).then(res => {
+                if (res.data != null) {
+                    logList.value = res.data
+                    logTotal.value = res.count
+                    loading.value = false
+                } else {
+                    ElMessage({
+                        message: '未找到数据',
+                        type: "error"
+                    })
+                    loading.value = false
                 }
             })
         }
@@ -250,6 +307,8 @@ export default {
             pages,//页码
             sizes,//条数
             loading,
+            getDate,//获取日期
+            allSearch,//查询按钮
         }
     },
     components: {

+ 6 - 3
src/pages/setting/components/SystemCode.vue

@@ -11,7 +11,7 @@
                     </el-icon>
                     新增系统字典
                 </el-button>
-                <el-table :data="systemList" style="width: 100%;height: calc(100vh - 240px);" :stripe="true">
+                <el-table :data="systemList" style="width: 100%;height: calc(100vh - 260px);" :stripe="true">
                     <el-table-column fixed prop="code" label="字典代码" width="auto" />
                     <el-table-column prop="name" label="字典名称" width="auto" />
                     <el-table-column prop="parentcode" label="上级字典代码" width="auto" />
@@ -30,7 +30,7 @@
                 </el-table>
             </div>
             <div class="pageBox">
-                <Pagination :tLength="totals" @getBack="getBack"></Pagination>
+                <Pagination :key="reloadKey" :tLength="totals" :pages="pages" :sizes="sizes" @getBack="getBack"></Pagination>
             </div>
             <!-- 模态框盒子 -->
             <div class="modalBox">
@@ -60,6 +60,7 @@ export default {
         let delId = ref('')//需要删除的字典id
         let addOrEdit = ref(0)//控制编辑或新增tips
         let editRow = ref({})//编辑回显
+        let reloadKey = ref(0)//重载组件
         function searchSystem() {//查询所有字典
             systemRow.getAllRow({ pageindex: 1, pageSize: 10 }).then(res => {
                 systemList.value = res.data
@@ -86,8 +87,9 @@ export default {
                 totals.value = res.count
             })
         }
-        function delBack(data) {//确认删除模态框返回的数据
+        function delBack(data,num) {//确认删除模态框返回的数据
             delModal.value = data
+            reloadKey.value = num
         }
         onMounted(() => {
             searchSystem()
@@ -108,6 +110,7 @@ export default {
             delId,//需要删除的字典id
             delBack,//确认删除模态框返回的数据
             editRow,//编辑回显
+            reloadKey,
         }
     },
     components: {

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

@@ -6,7 +6,7 @@
             </div>
             <div class="tableBox">
                 <el-button type="primary" @click="addNew(0)">+新建系统参数</el-button>
-                <el-table :data="systemList" style="width: 100%;height: calc(100vh - 240px);">
+                <el-table :data="systemList" style="width: 100%;height: calc(100vh - 260px);">
                     <el-table-column label="序号" width="100">
                         <template #default="{ $index }">{{ $index + 1 }}</template>
                     </el-table-column>

+ 45 - 38
src/pages/setting/modalComp/AddSc.vue

@@ -1,13 +1,13 @@
 <template>
     <div>
         <div class="bigBox">
-            <el-dialog v-model="dialogVisible" :title="letTips" width="30%" @close="closes">
-                <el-form :model="newForm" label-width="120px" :rules="formRule">
+            <el-dialog v-model="dialogVisible" :title="letTips" width="30%" @close="closes" :close-on-click-modal="false">
+                <el-form :model="newForm" label-width="120px" :rules="formRule" ref="ruleForm">
                     <el-form-item label="字典名称" prop="name">
                         <el-input v-model="newForm.name" />
                     </el-form-item>
                     <el-form-item label="上级字典编码" prop="parents">
-                        <el-select style="width: 372px;" v-model="newForm.parents" placeholder="Select">
+                        <el-select style="width: 372px;" v-model="newForm.parents" placeholder="请选择上级编码">
                             <el-option v-for="(item, index) in topCode" :key="item.id" :label="item.name"
                                 :value="item.code" />
                         </el-select>
@@ -62,6 +62,7 @@ export default {
             parents: "",
             codes: "",
         })
+        let ruleForm = ref(null)
         let formRule = reactive({
             name: [
                 { required: true, message: '请输入名称', trigger: 'blur' },
@@ -75,13 +76,14 @@ export default {
         })
         let topCode = ref([
         ])
-        let caseNum = props.addOrEdit
+        let caseNum = ref(0)
         function lineList() {
             dialogVisible.value = result
-            if (caseNum == 0) {
+            caseNum.value = props.addOrEdit - 0
+            if (caseNum.value == 0) {
                 letTips.value = '新增'
             }
-            if (caseNum == 1) {
+            if (caseNum.value == 1) {
                 letTips.value = '编辑'
                 newForm.value.name = obj.name
                 newForm.value.parents = obj.parentcode
@@ -97,41 +99,44 @@ export default {
             emit("getModal", dialogVisible.value)
         }
         function getSure() {
-            if (caseNum == 0) {
-                systemRow.saveRow({
-                    name: newForm.value.name,
-                    parentcode: newForm.value.parents,
-                    code: newForm.value.codes
-                }).then(res => {
-                    if (res.returncode == 200) {
-                        dialogVisible.value = false
-                        emit("getModal", dialogVisible.value)
-                        props.searchSystem()
-                        ElMessage({
-                            type: "success",
-                            message: "新增成功"
+            ruleForm.value.validate((val) => {
+                if (val) {
+                    if (caseNum.value == 0) {
+                        systemRow.saveRow({
+                            name: newForm.value.name,
+                            parentcode: newForm.value.parents,
+                            code: newForm.value.codes
+                        }).then(res => {
+                            if (res.returncode == 200) {
+                                dialogVisible.value = false
+                                emit("getModal", dialogVisible.value)
+                                props.searchSystem()
+                                ElMessage({
+                                    type: "success",
+                                    message: "新增成功"
+                                })
+                            }
                         })
-                    }
-                })
-            } else if (caseNum == 1) {
-                systemRow.saveRow({
-                    name: newForm.value.name,
-                    parentcode: newForm.value.parents,
-                    code: newForm.value.codes,
-                    id: editId.value
-                }).then(res => {
-                    if (res.returncode == 200) {
-                        dialogVisible.value = false
-                        emit("getModal", dialogVisible.value)
-                        props.searchSystem()
-                        ElMessage({
-                            type: "success",
-                            message: "修改成功"
+                    } else if (caseNum.value == 1) {
+                        systemRow.saveRow({
+                            name: newForm.value.name,
+                            parentcode: newForm.value.parents,
+                            code: newForm.value.codes,
+                            id: editId.value
+                        }).then(res => {
+                            if (res.returncode == 200) {
+                                dialogVisible.value = false
+                                emit("getModal", dialogVisible.value)
+                                props.searchSystem()
+                                ElMessage({
+                                    type: "success",
+                                    message: "修改成功"
+                                })
+                            }
                         })
                     }
-                })
-            }
-
+                }
+            })
         }
         onMounted(() => {
             lineList()
@@ -147,6 +152,8 @@ export default {
             topCode,
             formRule,
             editId,
+            ruleForm,
+            caseNum,
         }
     }
 }

+ 28 - 25
src/pages/setting/modalComp/AddSn.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div class="bigBox">
-            <el-dialog v-model="dialogVisible" :title="tips" width="30%" @close="closees">
+            <el-dialog v-model="dialogVisible" :title="tips" width="30%" @close="closees" :close-on-click-modal="false">
                 <el-form :model="numForm" label-width="120px" :rules="numRules" ref="formRef">
                     <el-form-item label="参数编码" prop="name">
                         <el-input v-model="numForm.name" />
@@ -94,9 +94,9 @@ export default {
             emit("asBack", dialogVisible.value)
         }
         function fullBack() {
-            formRef.value.validate((val) => {
-                if (val) {
-                    if (ae == 0) {
+            if (ae == 0) {
+                formRef.value.validate((val) => {
+                    if (val) {
                         system.editSystemCode({
                             param_name: numForm.value.name,
                             param_value: numForm.value.value,
@@ -113,31 +113,34 @@ export default {
                                 props.searchSystemCode()
                             }
                         })
-                    } else {
-                        system.editSystemCode({
-                            param_name: numForm.value.name,
-                            param_value: numForm.value.value,
-                            param_memo: numForm.value.memo
-                        }).then(res => {
-                            if (res.code == 0) {
-                                dialogVisible.value = false
-                                emit("asBack", dialogVisible.value)
-                                ElMessage({
-                                    type: "success",
-                                    message: "编辑成功",
-                                    duration: 2000
-                                })
-                                props.searchSystemCode()
-                            }
-                        })
                     }
-                }else{
+                })
+            } else {
+                if (numForm.value.name == '' || numForm.value.memo == "") {
                     ElMessage({
-                        message:"请检查表单项",
-                        type:"error"
+                        type: "error",
+                        message: "还有内容未填写"
+                    })
+                } else {
+                    system.editSystemCode({
+                        param_name: numForm.value.name,
+                        param_value: numForm.value.value,
+                        param_memo: numForm.value.memo
+                    }).then(res => {
+                        if (res.code == 0) {
+                            dialogVisible.value = false
+                            emit("asBack", dialogVisible.value)
+                            ElMessage({
+                                type: "success",
+                                message: "编辑成功",
+                                duration: 2000
+                            })
+                            props.searchSystemCode()
+                        }
                     })
                 }
-            })
+            }
+
 
         }
         onMounted(() => {

+ 4 - 1
src/pages/setting/modalComp/Addrm.vue

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <el-dialog v-model="dialogVisible" :title="titleTips" width="30%" @close="closes">
+        <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-item label="模板名称" prop="name">
                     <el-input v-model="addForm.name" />
@@ -122,7 +122,9 @@ 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,
@@ -145,6 +147,7 @@ export default {
                     }
                 })
             } else if (tipsNow.value == 1) {
+                console.log("进入编辑");
                 report.addReport({
                     id: needId.value - 0,
                     name: addForm.value.name,

+ 2 - 2
src/pages/setting/modalComp/DelSc.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div class="bigBox">
-            <el-dialog v-model="dialogVisible" title="删除" width="30%" @close="closes">
+            <el-dialog v-model="dialogVisible" title="删除" width="30%" @close="closes" :close-on-click-modal="false">
                 <div style="display: flex;justify-content:center;align-items: center;">
                     <el-icon style="color: red;font-size: 40px;display: block;">
                         <WarningFilled />
@@ -56,7 +56,7 @@ export default {
                         message: "删除成功!"
                     })
                     dialogVisible.value = false
-                    emit("delBack", dialogVisible.value)
+                    emit("delBack", dialogVisible.value,1)
                     props.searchSystem()
                 }
             })

+ 14 - 11
src/pages/setting/modalComp/Delrm.vue

@@ -1,13 +1,16 @@
 <template>
     <div>
-        <el-dialog v-model="dialogVisible" :title="titleTips" width="30%" @close="closes">
-            <h1>确认删除该条数据?</h1>
-            <template #footer>
-                <span class="dialog-footer">
-                    <el-button @click="cancels">取消</el-button>
-                    <el-button type="primary" @click="sureAdd">确认</el-button>
-                </span>
-            </template>
+        <el-dialog v-model="dialogVisible" title="删除" width="30%" @close="closes" :close-on-click-modal="false">
+            <div style="display: flex;justify-content:center;align-items: center;">
+                <el-icon style="color: red;font-size: 40px;display: block;">
+                    <WarningFilled />
+                </el-icon>
+                <span style="display: block;">是否确认删除该信息?</span>
+            </div>
+            <div style="display: flex;justify-content:center;align-items: center;margin-top: 40px;">
+                <el-button style="display: block;width: 150px;height: 30px;" @click="cancels">取消</el-button>
+                <el-button style="display: block;width: 150px;height: 30px;" type="primary" @click="sureAdd">确认</el-button>
+            </div>
         </el-dialog>
     </div>
 </template>
@@ -26,9 +29,9 @@ export default {
             type: String,
             required: true
         },
-        searchReport:{
-            type:Function,
-            required:true
+        searchReport: {
+            type: Function,
+            required: true
         }
     },
     setup(props, { emit }) {

+ 24 - 3
src/pages/system/components/InsideModule.vue

@@ -31,6 +31,9 @@
                             </div>
                             <div style="display: flex;width: 30%;">
                                 <div>
+                                    <span style="font-size: 14px;color: #7484AB;">位置:</span>
+                                </div>
+                                <div>
                                     <span style="margin-left: 5px;">X:</span>
                                     <el-input type="number" class="coord" v-model="fatX" @input="limitNumX"
                                         @change="xChange"></el-input>
@@ -42,7 +45,7 @@
                                 </div>
                             </div>
                         </div>
-                        <div style="width: calc(30%);">
+                        <div style="width: calc(15%);">
                             <div style="width: calc(100%);">
                                 <el-button type="primary" @click="cleanAll" plain>关闭</el-button>
                                 <el-button type="primary" @click="saveMap">保存</el-button>
@@ -52,6 +55,10 @@
                             <span style="font-size: 14px;color: #7484AB;">双击节点或连接线可配置属性</span>
                         </div>
                     </div>
+                    <div class="iedBox">
+                        <img style="display: block;" src="../../../assets/icon/HardDrives.png" alt="">
+                        <span style="font-size: 14px;display: block;">装置列表</span>
+                    </div>
                     <div class="tableBox">
                         <!-- 建议使用这个 -->
                         <DrawDesigns ref="designsRef" :lineMenuColor="lineMenuColor" :needObj="needObj" :fatX="fatX"
@@ -294,12 +301,13 @@ export default {
 }
 
 :deep(.lf-dndpanel) {
-    height: 100%;
+    height: 95%;
     width: 220px;
     overflow-y: auto;
     background-color: #F7F8FB;
     padding: 0;
-    margin: 0;
+    margin: 30px 0;
+    box-shadow: none;
 }
 
 :deep(.lf-dnd-item) {
@@ -332,4 +340,17 @@ export default {
     border: none;
     margin-left: 5px;
 }
+
+.iedBox {
+    width: calc(13%);
+    height: calc(100vh - 900px);
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    z-index: 20 !important;
+    display: flex;
+    justify-content: flex-start;
+    align-items: center;
+    background-color: #F7F8FB;
+}
 </style>

+ 6 - 6
src/pages/system/modalComp/AddLine.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div>
-            <el-dialog v-model="dialogVisible" title="添加一次性接线" width="30%" @close="closes">
+            <el-dialog v-model="dialogVisible" title="新增一次接线" width="30%" @close="closes" :close-on-click-modal="false">
                 <!--  -->
                 <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm"
                     status-icon>
@@ -63,7 +63,7 @@ export default {
                 { required: true, message: '请输入名称', trigger: 'blur' },
             ],
             volId: [
-                { required: true, message: '请输入名称', trigger: 'blur' },
+                { required: true, message: '请选择电压等级', trigger: 'blur' },
             ],
         })
         let ruleFormRef = ref(null)
@@ -108,10 +108,10 @@ export default {
                         }
                     })
                 } else {
-                    ElMessage({
-                        message:"请检查表单项",
-                        type:"error"
-                    })
+                    // ElMessage({
+                    //     message:"请检查表单项",
+                    //     type:"error"
+                    // })
                 }
             });
 

+ 1 - 1
src/pages/system/modalComp/AddNode.vue

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <el-dialog v-model="dialogVisible" title="添加模型定义" width="30%" @close="closes">
+        <el-dialog v-model="dialogVisible" title="添加模型定义" width="30%" @close="closes" :close-on-click-modal="false">
             <!--  -->
             <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm"
                 status-icon>

+ 1 - 1
src/pages/system/modalComp/DelLine.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div>
-            <el-dialog v-model="dialogVisible" title="删除信息" width="30%" @close="closes">
+            <el-dialog v-model="dialogVisible" title="删除信息" width="30%" @close="closes" :close-on-click-modal="false">
                 <h3 style="text-align: center;">
                     <el-icon style="color: red;">
                         <WarningFilled />

+ 8 - 8
src/pages/system/modalComp/LookLine.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div>
-            <el-dialog v-model="dialogVisible" :title="titles" width="30%" @close="closes">
+            <el-dialog v-model="dialogVisible" :title="titles" width="30%" @close="closes" :close-on-click-modal="false">
                 <!--  -->
                 <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm"
                     status-icon>
@@ -58,7 +58,7 @@ export default {
         let result = props.lookModal
         let newList = props.needList
         let careNum = ref(0)
-        let titles = ref("添加一次性接线")
+        let titles = ref("新增一次接线")
         let selectList = ref([])
         let editId = ref("")
         let disNum = ref(false)
@@ -95,10 +95,10 @@ export default {
             careNum.value = props.listNum
             console.log(careNum.value, 'care');
             if (careNum.value == 0) {
-                titles.value = '查看一次接线'
+                titles.value = '查看一次接线'
                 disNum.value = true
             } else {
-                titles.value = '编辑一次接线'
+                titles.value = '编辑一次接线'
                 disNum.value = false
             }
             dialogVisible.value = result
@@ -133,10 +133,10 @@ export default {
                     }
                 } else {
                     // 验证不通过,执行相应操作
-                    ElMessage({
-                        message: "请检查表单项",
-                        type: "error"
-                    })
+                    // ElMessage({
+                    //     message: "请检查表单项",
+                    //     type: "error"
+                    // })
                 }
             });
         }

+ 1 - 1
src/pages/system/modalComp/PicLook.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div>
-            <el-dialog v-model="dialogVisible" title="图片查看" width="30%" @close="closes">
+            <el-dialog v-model="dialogVisible" title="图片查看" width="30%" @close="closes" :close-on-click-modal="false">
                 <h1 v-if="picChange==''">暂无图片信息</h1>
                 <img v-else :src="picChange" alt="">
                 <template #footer>

+ 4 - 4
src/router/index.js

@@ -101,10 +101,10 @@ router.beforeEach((to, from, next) => {
     if (isAuthenticated) {
         next();
     } else {
-        ElMessage({
-            type: "error",
-            message: "您还未登录"
-        })
+        // ElMessage({
+        //     type: "error",
+        //     message: "您还未登录"
+        // })
         // 如果用户未登录,重定向到登录页
         if (to.path !== '/login') {
             next('/login');