liyangzheng 1 gadu atpakaļ
vecāks
revīzija
b1494dbe79

+ 4 - 2
public/index.html

@@ -1,11 +1,14 @@
 <!DOCTYPE html>
 <html lang="">
+<script src="./SmCrypto.min.js"></script>
 
 <head>
   <meta charset="utf-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
-  <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
+  <meta name="viewport"
+    content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
   <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+
   <title>
     <%= htmlWebpackPlugin.options.title %>
   </title>
@@ -18,7 +21,6 @@
   </noscript>
   <div id="app"></div>
   <!-- built files will be auto injected -->
-  <script src="./SmCrypto.min.js"></script>
   <script src="https://unpkg.com/bpmn-js@6.0.2/dist/bpmn-viewer.development.js"></script>
 </body>
 

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

@@ -118,7 +118,7 @@ export default {
         onMounted(() => {
             lf.value = new LogicFlow({
                 // 通过选项指定了渲染的容器和需要显示网格
-                container: container.value,
+                container: container.value,//需要显示画布的容器ref
                 // grid: {
                 //     size: 10,
                 //     visible: false,
@@ -129,13 +129,12 @@ export default {
                 //     },
                 // },//网格,
                 grid: false,
-                plugins: [DndPanel, SelectionSelect, Group, Menu, MiniMap, Snapshot],
+                plugins: [DndPanel, SelectionSelect, Group, Menu, MiniMap, Snapshot],//全局加载的组件
                 keyboard: {
                     enabled: true
                 },
-                snapline: true,//对比线
-                edgeTextDraggable: true,
-                stopZoomGraph: false,
+                snapline: true,//辅助线
+                edgeTextDraggable: true,//连接线文本可以拖拽
             })
             const patternItems = [
                 {

+ 21 - 55
src/pages/netStructPicture/components/netWork.vue

@@ -7,13 +7,8 @@
             <!-- 父网络列表   上方的大类图标及小竖线 -->
             <section class="layout">
               <div class="mainNetwork">
-                <div
-                  class="networkItem"
-                  v-for="(item, index) in nodeInfoData"
-                  :key="index"
-                  :class="{ active: current == index }"
-                  @click="() => onChangeMain(index, item)"
-                >
+                <div class="networkItem" v-for="(item, index) in nodeInfoData" :key="index"
+                  :class="{ active: current == index }" @click="() => onChangeMain(index, item)">
                   <!-- 图片及图片上的名字 -->
                   <div class="topCont">
                     <div class="title">{{ item.attr_desc }}</div>
@@ -21,16 +16,11 @@
                   </div>
                   <!-- 小竖线 -->
                   <div class="lineWrap" v-if="current == index">
-                    <div
-                      class="line"
-                      v-for="(item, index) in lineList"
-                      :style="{
-                        background: item.bgcolor,
-                        left: 45 + index * 13 + '%',
-                        height: 17 * index + 35 + 'px',
-                      }"
-                      :key="index"
-                    ></div>
+                    <div class="line" v-for="(item, index) in lineList" :style="{
+                      background: item.bgcolor,
+                      left: 45 + index * 13 + '%',
+                      height: 17 * index + 35 + 'px',
+                    }" :key="index"></div>
                   </div>
                 </div>
               </div>
@@ -38,27 +28,15 @@
             <!-- 子网络列表 -->
             <section class="layout">
               <div class="subNetwork">
-                <div
-                  class="subNetworkItem"
-                  v-for="(item, index) in handleAllAp"
-                  :key="index"
-                >
-                  <span
-                    class="subNetworkLine"
-                    v-show="item.show"
-                    :style="item.inlineStyle"
-                  ></span>
+                <div class="subNetworkItem" v-for="(item, index) in handleAllAp" :key="index">
+                  <span class="subNetworkLine" v-show="item.show" :style="item.inlineStyle"></span>
                   <div class="subNetworkMask" v-show="!item.show"></div>
                   <div class="subNetworkInfo">
                     <div class="subNetworkImg">
                       <img :src="tupian" alt="" />
                     </div>
                     <div class="subNetworkName">{{ item.attr_ied_name }}</div>
-                    <div
-                      class="subNetworkID"
-                      v-for="(value, key) in item"
-                      :key="key"
-                    >
+                    <div class="subNetworkID" v-for="(value, key) in item" :key="key">
                       <span v-if="key.startsWith('node_value')">{{
                         value
                       }}</span>
@@ -70,22 +48,10 @@
 
             <!-- 线条 -->
             <div class="networkLine">
-              <div
-                class="mainLine"
-                v-for="(item, index) in lineList"
-                :key="index"
-              >
-                <span
-                  class="lineTag"
-                  :style="{ background: item.bgcolor, color: item.txtcolor }"
-                  @click="() => onChangeline(item.name)"
-                  >{{ item.name }}</span
-                >
-                <p
-                  class="line"
-                  :style="{ background: item.bgcolor }"
-                  @click="() => onChangeline(item.name)"
-                ></p>
+              <div class="mainLine" v-for="(item, index) in lineList" :key="index">
+                <span class="lineTag" :style="{ background: item.bgcolor, color: item.txtcolor }"
+                  @click="() => onChangeline(item.name)">{{ item.name }}</span>
+                <p class="line" :style="{ background: item.bgcolor }" @click="() => onChangeline(item.name)"></p>
               </div>
             </div>
           </div>
@@ -96,7 +62,7 @@
 </template>
     
   
-  <script setup>
+<script setup>
 import { onMounted, reactive, ref } from "vue";
 import { nodeList, iedNetaddr } from "@/api/iedNetwork";
 import { useRoute } from "vue-router";
@@ -558,13 +524,13 @@ const onChangeMain = (index, clickItem) => {
       handleAllAp.value = [...handleAllAp.value, ...allApData.value[item].list];
     }
   });
- //  如果有重复的attr_ied_name删除
+  //  如果有重复的attr_ied_name删除
   lineNum.value = Array.from(
     new Set(handleAllAp.value.map((item) => item.attr_ap_name))
   );
 
   //去重
-  handleAllAp.value =  handleAllAp.value.filter((item, index, self) => {
+  handleAllAp.value = handleAllAp.value.filter((item, index, self) => {
     return (
       index ===
       self.findIndex((obj) => obj.attr_ied_name === item.attr_ied_name && obj.attr_ap_name === item.attr_ap_name || obj.attr_ied_name === item.attr_ied_name)
@@ -577,12 +543,12 @@ const onChangeMain = (index, clickItem) => {
   flog.value = true;
   currentCat.value = "";
   listCat.value = [];
-  lineNum.value =[]
+  lineNum.value = []
   lineList.value = [];
   onChangeline("");
   getlist();
 };
-const getClickList = (dataId) => {};
+const getClickList = (dataId) => { };
 const getlist = () => {
   if (!clickAllAp.value) {
     handleAllAp.value = [];
@@ -597,7 +563,7 @@ const getlist = () => {
       }
     });
   }
-  handleAllAp.value =  handleAllAp.value.filter((item, index, self) => {
+  handleAllAp.value = handleAllAp.value.filter((item, index, self) => {
     return (
       index ===
       self.findIndex((obj) => obj.attr_ied_name === item.attr_ied_name && obj.attr_ap_name === item.attr_ap_name || obj.attr_ied_name === item.attr_ied_name)
@@ -688,7 +654,7 @@ const onChangeline = (val) => {
 };
 </script>
   
-  <style scoped lang="scss">
+<style scoped lang="scss">
 @import "~@/styles/home.scss";
 @import "~@/styles/struct.scss";
 </style>

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

@@ -4,7 +4,7 @@
             <div style="text-align: center;">
                 <h2 style="font-size: 20px;">装置关联模型管理</h2>
             </div>
-            <div style="display: flex;justify-content: flex-start;align-items: center;height: 100%;">
+            <div style="display: flex;justify-content: flex-start;align-items: center;height: 93%;">
                 <div style="height: 100%;width: calc(100% - 0px);position: relative;">
                     <div class="setBox">
                         <div style="width: 70%;display: flex;justify-content: flex-start;align-items: center;">

+ 23 - 6
src/pages/system/components/SetModule.vue

@@ -5,7 +5,7 @@
                 <h2>间隔管理</h2>
             </div>
             <div class="btnBox">
-                <el-button type="primary" plain><el-icon>
+                <el-button type="primary" plain @click="addNode"><el-icon>
                         <Plus />
                     </el-icon>添加间隔</el-button>
             </div>
@@ -27,6 +27,9 @@
                     </el-table-column>
                 </el-table>
             </div>
+            <div>
+                <AddNode v-if="nodeMos" :nodeMos="nodeMos" @addBack="addBack"></AddNode>
+            </div>
         </div>
     </div>
 </template>
@@ -34,6 +37,7 @@
 <script>
 import { ref, onMounted, toRefs } from 'vue';
 import { ElMessage } from 'element-plus';
+import AddNode from '../modalComp/AddNode.vue';
 export default {
     setup(props, { emit }) {
         let tableData = ref([
@@ -43,28 +47,41 @@ export default {
                 type: "string",
             }
         ])
+        let nodeMos = ref(false)//添加间隔模态框
         let kisNum = ref(0)
         let { goMap } = toRefs(props)
         function tableChange(e) {
             console.log(e, 'table');
         }
+        function addNode() {
+            nodeMos.value = true
+        }
         function cacl() {
             kisNum.value = 1
-            if(kisNum.value == 0){
+            if (kisNum.value == 0) {
                 ElMessage({
-                    message:"暂时无法进行模型编辑",
-                    type:"error",
-                    duration:1500
+                    message: "暂时无法进行模型编辑",
+                    type: "error",
+                    duration: 1500
                 })
             }
             emit("backNum", kisNum.value)
         }
+        function addBack(data){
+            nodeMos.value = data
+        }
         return {
             tableData,
             tableChange,
             kisNum,
-            goMap:cacl,
+            goMap: cacl,
+            nodeMos,
+            addNode,
+            addBack,
         }
+    },
+    components: {
+        AddNode,
     }
 }
 </script>

+ 102 - 0
src/pages/system/modalComp/AddNode.vue

@@ -0,0 +1,102 @@
+<template>
+    <div>
+        <el-dialog v-model="dialogVisible" title="Tips" width="30%" @close="closes">
+            <!--  -->
+            <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm"
+                status-icon>
+                <el-form-item label="间隔名称" prop="name">
+                    <el-input v-model="ruleForm.name" clearable />
+                </el-form-item>
+                <el-form-item label="间隔类型" prop="type">
+                    <el-input v-model="ruleForm.type" clearable />
+                </el-form-item>
+                <el-form-item label="电压等级">
+                    <el-select @change="flashChange" v-model="ruleForm.volId" placeholder="请选择电压等级">
+                        <template v-for="(item, index) in selectList">
+                            <el-option :label="item.name" :value="item.id" />
+                        </template>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button @click="cancels">取消</el-button>
+                    <el-button type="primary" @click="sureClick">
+                        确定
+                    </el-button>
+                </span>
+            </template>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { ref, onMounted, toRefs, reactive } from 'vue';
+import systemRow from '@/api/systemRow';
+export default {
+    props: {
+        nodeMos: {
+            type: Boolean,
+            required: true,
+        }
+    },
+    setup(props, { emit }) {
+        let dialogVisible = ref(false)//模态框显示
+        let result = props.nodeMos
+        let ruleForm = ref({
+            name: "",
+            type: "",
+            flash: "",
+            volId: "",
+        })
+        let selectList = ref([])
+        let rules = reactive({
+            name: [
+                { required: true, message: '请输入名称', trigger: 'blur' },
+            ],
+            type: [
+                {
+                    required: true, message: '请输入类型', trigger: 'blur'
+                }
+            ]
+        })
+        function lineList() {
+            dialogVisible.value = result
+        }
+        function searchFlashLel() {
+            systemRow.getChildren({ code: "voltage_level" }).then(res => {
+                selectList.value = res.data
+            })
+        }
+        function flashChange(e) {
+            ruleForm.value.volId = e
+        }
+        function getBack() {
+            dialogVisible.value = false
+            emit("addBack", dialogVisible.value)
+        }
+        function getSure() {
+            dialogVisible.value = false
+            emit("addBack", dialogVisible.value)
+        }
+        onMounted(() => {
+            lineList()
+            searchFlashLel()
+        })
+        return {
+            dialogVisible,
+            searchFlashLel,
+            ruleForm,
+            rules,
+            selectList,
+            lineList,
+            flashChange,
+            cancels: getBack,
+            closes: getBack,
+            sureClick: getSure,
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 1 - 0
src/utils/request.js

@@ -68,6 +68,7 @@ service.interceptors.request.use(
 // 响应拦截
 service.interceptors.response.use(
     response => {
+        console.log(response,'响应拦截器res');
         let res = response.data
         return res
     },