“yueshang” пре 1 година
родитељ
комит
a367d2ab2e

+ 8 - 0
src/api/iedNetwork/index.js

@@ -131,6 +131,14 @@ export function getPointtable(query) {
     params: query
   })
 }
+//源文件
+export function getSourcexml(query) {
+  return request({
+    url: 'screen/scd/ied/sourcexml',
+    method: 'get',
+    params: query
+  })
+}
 
 
 

+ 44 - 2
src/pages/netStructPicture/components/basicInfo.vue

@@ -1,6 +1,14 @@
 <!-- 基础信息 -->
 <template>
-  <div>4</div>
+  <template>  
+  <div class="container">  
+    <div class="top-left">图片1</div>  
+    <div class="top-right">图片2</div>  
+    <div class="bottom-left">图片3</div>  
+    <div class="bottom-right">图片4</div>  
+    <div class="center">中间图片</div>  
+  </div>  
+</template>
 </template>
 <script setup>
 import { onMounted, watch, ref,nextTick,defineEmits } from "vue";
@@ -11,5 +19,39 @@ const props = defineProps({
   },
 });
 </script>
-<style scoped lang="scss">
+<style scoped lang="scss">  
+.container {  
+  display: flex;  
+  justify-content: space-between;  
+  align-items: center;  
+  width: 100%;  
+  height: 100vh; // 或者其他你需要的高度值  
+}  
+  
+.top-left, .top-right, .bottom-left, .bottom-right {  
+  width: 50px; // 根据需要调整宽度和高度  
+  height: 50px; // 根据需要调整宽度和高度  
+}  
+  
+.top-left {  
+  background:url("~@/assets/image/instruct/navtop.png") no-repeat center center;  
+}  
+  
+.top-right {  
+  background: url("~@/assets/image/instruct/navtop.png") no-repeat center center;  
+}  
+  
+.bottom-left {  
+  background: url("~@/assets/image/instruct/navtop.png") no-repeat center center;  
+}  
+  
+.bottom-right {  
+  background: url("~@/assets/image/instruct/navtop.png") no-repeat center center;  
+}  
+  
+.center {  
+  width: 100px; // 根据需要调整宽度和高度  
+  height: 100px; // 根据需要调整宽度和高度  
+  background: url('path/to/centerImage.jpg') no-repeat center center;  
+}  
 </style>

+ 25 - 8
src/pages/netStructPicture/components/dialogIndex.vue

@@ -67,7 +67,14 @@
             >
           </div>
         </div>
-        <div class="main-right-item" :class="{ 'inout-right-item': inoutName.__name == 'inoutControl' }">
+        <div
+          class="main-right-item"
+          :class="{
+            'inout-right-item': inoutName.__name == 'inoutControl',
+            'soures': inoutName.__name == 'virtualRelation',
+            'relatio': inoutName.__name == 'relationShip',
+          }"
+        >
           <!-- @result前的参数是装置关联关系的, -->
           <component
             :is="activeNavName"
@@ -187,7 +194,7 @@ const cancelClick = () => {
 const activeNav = ref(0);
 const activeNavName = shallowRef(relationShip);
 const inoutName = ref("");
-const tabName = ref('relationShip');
+const tabName = ref("relationShip");
 const clickNav = (navIndex, name) => {
   //点击导航栏事件
   inoutName.value = name;
@@ -214,9 +221,12 @@ const clickInoutNav = (item, index) => {
   inoutItemNavIndex.value = index;
 };
 const getChild = ref(null);
-watch(()=>tabName.value,(newValue)=>{
-  getChild.value.removeLine;
-})
+watch(
+  () => tabName.value,
+  (newValue) => {
+    getChild.value.removeLine;
+  }
+);
 </script>
   <style scoped lang="scss">
 @mixin mid-center {
@@ -262,8 +272,8 @@ $height: 40px;
   flex-direction: column;
 }
 .main-right-item {
-  margin-top: 60px;
-  height: 65vh;
+  margin-top: 20px;
+  height: 72vh;
   overflow-y: auto;
 }
 //设置导航栏样式
@@ -312,9 +322,16 @@ $height: 40px;
   color: #255ce7;
   border: 1px solid #255ce7;
 }
-.inout-right-item{
+.inout-right-item,.soures,.relatio {
   margin-top: 27px;
   margin-left: 16px;
+  height: 65vh;
   // overflow-y: hidden !important;
 }
+.soures {
+  height: 72vh;
+}
+.relatio{
+  height: 65vh;
+}
 </style>

+ 7 - 12
src/pages/netStructPicture/components/fixedEntry.vue

@@ -1,4 +1,4 @@
-<!-- 基础信息 -->
+<!-- 定值条目 -->
 <template>
   <div>
     <div class="cont-table">
@@ -21,7 +21,7 @@
         <el-table-column prop="dataset_desc" label="数据集描述" />
       </el-table>
       <div class="title">
-        定值条目列表详情(共<span v-if="gooseList">{{ gooseList.length }}</span
+        定值条目列表详情(共<span v-if="dingzhiDataChild">{{ dingzhiDataChild.length }}</span
         >条)
       </div>
       <el-table
@@ -55,11 +55,7 @@ const props = defineProps({
   isPhoto: {
     type: String,
     default: "",
-  },
-  svInfo: {
-    type: Array,
-    default: [],
-  },
+  }
 });
 const scdIdValue = inject("scdId");
 const dingzhiData = ref(null);
@@ -72,10 +68,9 @@ const getDingzhisList = async () => {
   })
   if(dingRes.data.length>0){
     dingzhiData.value = dingRes.data;
-    dingzhiDataChild.value = dingRes.data[0].list
+    dingzhiDataChild.value = dingRes.data[0].list;
+    myTable5.value.setCurrentRow(dingzhiData.value[0]);
   }
-
-  myTable5.value.setCurrentRow(dingzhiData.value[0]);
 }
 const svSendRowClick3 = (row, column) => {
   dingzhiDataChild.value = row.list
@@ -96,13 +91,13 @@ onMounted(() => {
 </script>
 <style scoped lang="scss">
 .cont-table {
-  height: 65vh;
+  height: 72vh;
   display: flex;
   flex-direction: column;
   justify-content: space-between;
 }
 :deep(.el-table) {
-  flex-basis: 45%;
+  flex-basis: 49%;
 }
 .title {
   margin: 16px;

+ 7 - 11
src/pages/netStructPicture/components/infoTable.vue

@@ -1,5 +1,4 @@
 <!-- 信息点表 -->
-<!-- 基础信息 -->
 <template>
   <div>
     <div class="cont-table">
@@ -27,14 +26,16 @@
         <el-table-column prop="block_confrev" label="配置版本" />
         <el-table-column prop="block_buffered" label="是否缓存" />
         <el-table-column prop="block_buftime" label="缓存时间" />
-        <el-table-column  label="信息点数量">
+        <el-table-column label="信息点数量">
           <template #default="scope">
-           <span v-if="scope.row.list">{{ scope.row.list.length }}</span>
+            <span v-if="scope.row.list">{{ scope.row.list.length }}</span>
           </template>
         </el-table-column>
       </el-table>
       <div class="title">
-        定值条目列表详情(共<span v-if="dingzhiDataChild">{{ dingzhiDataChild.length }}</span
+        定值条目列表详情(共<span v-if="dingzhiDataChild">{{
+          dingzhiDataChild.length
+        }}</span
         >条)
       </div>
       <el-table
@@ -63,10 +64,6 @@ const props = defineProps({
     type: String,
     default: "",
   },
-  svInfo: {
-    type: Array,
-    default: [],
-  },
 });
 const scdIdValue = inject("scdId");
 const dingzhiData = ref(null);
@@ -80,9 +77,8 @@ const getDingzhisList = async () => {
   if (dingRes.data.length > 0) {
     dingzhiData.value = dingRes.data;
     dingzhiDataChild.value = dingRes.data[0].list;
+    myTable5.value.setCurrentRow(dingzhiData.value[0]);
   }
-
-  myTable5.value.setCurrentRow(dingzhiData.value[0]);
 };
 const svSendRowClick3 = (row, column) => {
   dingzhiDataChild.value = row.list;
@@ -103,7 +99,7 @@ onMounted(() => {
 </script>
 <style scoped lang="scss">
 .cont-table {
-  height: 65vh;
+  height: 72vh;
   display: flex;
   flex-direction: column;
   justify-content: space-between;

+ 9 - 1
src/pages/netStructPicture/components/inoutControl.vue

@@ -38,7 +38,7 @@
       </div>
       <!-- 中间部分 -->
       <div class="main-middle" ref="middleHeight" id="end">
-        <div class="middle-title">
+        <div class="middle-title" v-if="listData2">
           <div v-if="listData2">{{ listData2.ied_name }}</div>
           <div v-if="listData2">{{ listData2.desc }}</div>
         </div>
@@ -543,6 +543,13 @@ watch(
     });
   }
 );
+watch(
+    () => listData2.value,
+    (newValue) => {
+      emit("result", newValue);
+      clickResetLine2();
+    }
+  );
 </script>
 <style lang="scss"  scoped>
 @mixin img-size {
@@ -555,6 +562,7 @@ watch(
   flex-direction: column;
 }
 .main-cont {
+  margin-top: 10px;
   display: flex;
   justify-content: space-evenly;
 }

+ 5 - 5
src/pages/netStructPicture/components/netWork.vue

@@ -151,7 +151,7 @@ const loading = ref(true);
 //获取网络图的顶部列表
 const getNetWork = async () => {
   const infoRes = await nodeList({
-    scd_id: 452000123,
+    scd_id: 512000138,
     pagesize: 10000,
     name: "SubNetwork",
   });
@@ -170,7 +170,7 @@ const allApData = ref({});
 const initLoad = async () => {
   allApData.value = {};
   const allAP = await nodeList({
-    scd_id: 452000123,
+    scd_id: 512000138,
     pagesize: 10000,
     name: "ConnectedAP",
   });
@@ -198,7 +198,7 @@ const initLoad = async () => {
 };
 //处理重复的ip
 const ipNetaddr = async () => {
-  const ipRes = await iedNetaddr({ scd_id: 452000123 });
+  const ipRes = await iedNetaddr({ scd_id: 512000138 });
   if (ipRes.code == 1) {
     return;
   }
@@ -500,11 +500,11 @@ const clickNetworkInfo = (value) => {
 
 const iedRelationData = ref([]);
 const iedRelation = async () => {
-  const iedRes = await scdIedRelation({ scd_id: 452000123 });
+  const iedRes = await scdIedRelation({ scd_id: 512000138 });
   iedRelationData.value = iedRes.data;
 };
 //弹窗=============
-provide('scdId',452000123)
+provide('scdId',512000138)
 </script>
   
 <style scoped lang="scss">

+ 1 - 0
src/pages/netStructPicture/components/relationShip.vue

@@ -328,6 +328,7 @@
     flex-direction: column;
   }
   .main-cont {
+    margin-top: 60px;
     display: flex;
     justify-content: space-evenly;
   }

+ 6 - 6
src/pages/netStructPicture/components/scdVisual.vue

@@ -161,7 +161,7 @@ import scdDialogIndex from "./scdDialogIndex";
 const userStoreCode = useDataStore();
 const data = reactive({
   queryParams: {
-    scd_id: 452000123,
+    scd_id: 512000138,
   },
 });
 const loading = ref(true);
@@ -171,7 +171,7 @@ const { queryParams } = toRefs(data);
 // 表单重置
 const reset = () => {
   queryParams.value = {
-    scd_id: 452000123,
+    scd_id: 512000138,
     voltage_level_id: null, //电压等级
     area_id: null, //间隔
     device_type_id: null, //装置类型
@@ -185,7 +185,7 @@ const allIedType = [{ name: "全部", code: "alls" }];
 const voltageLevel = ref([{ name: "全部", id: "alls" }]); //电压等级
 const areaType = ref([]);
 const getArea = async () => {
-  const areaRes = await areaList({ scd_id: 452000123 });
+  const areaRes = await areaList({ scd_id: 512000138 });
   if (!areaRes.data) {
     voltageLevel.value = [];
     loading.value = false;
@@ -223,7 +223,7 @@ const getArea = async () => {
 //设备类型
 const iedTypeData = ref([]);
 const getTypelist = async () => {
-  const typeRes = await iedTypelist({ scd_id: 452000123 });
+  const typeRes = await iedTypelist({ scd_id: 512000138 });
   iedTypeData.value = typeRes.data ? [...allIedType, ...typeRes.data] : [];
 };
 const iedName = ref([]);
@@ -254,7 +254,7 @@ const searchInput = (value) => {
 const count = ref(0);
 const iedNameData = async () => {
   //IED编码或名称
-  const iedRes = await scdIedRelation({ scd_id: 452000123 });
+  const iedRes = await scdIedRelation({ scd_id: 512000138 });
   iedName.value = iedRes.data;
   count.value = iedRes.count;
 };
@@ -282,7 +282,7 @@ const changeLevel = async (value, mainValue) => {
     open.value = true;
     dialogData.value = iedName.value;
   } else if (value) {
-    const mainClick = { scd_id: 452000123, area_id: value };
+    const mainClick = { scd_id: 512000138, area_id: value };
     const forms = mainValue ? mainClick : queryParams.value;
     open.value = true;
     dialogData.value = [];

+ 39 - 3
src/pages/netStructPicture/components/soureFile.vue

@@ -1,15 +1,51 @@
 <!-- 源文件 -->
 <template>
-  <div>7</div>
+  <div class="source" v-loading="loading">
+    <div class="cont" v-if="text">{{ text }}</div>
+  </div>
 </template>
 <script setup>
-import { onMounted, watch, ref,nextTick,defineEmits } from "vue";
+import { onMounted, watch, ref,inject  } from "vue";
+import { getSourcexml } from "@/api/iedNetwork";
 const props = defineProps({
-  checkDialogData: {
+  checkData: {
     type: Object,
     default: () => {},
   },
 });
+const loading = ref(true);
+const scdIdValue = inject("scdId");
+const text = ref('');
+const getHtml= async () => {
+  const res = await getSourcexml({
+    scd_id: scdIdValue,
+    ied_name: props.checkData.ied_name,
+  })
+  text.value = res.data
+  if(res){
+    loading.value = false;
+  }
+}
+watch(
+  () => props.checkData,
+  (newValue) => {
+    text.value = '';
+    if (newValue != null) {
+      getHtml();
+    }
+  }
+);
+onMounted(() => {
+  getHtml();
+});
 </script>
 <style scoped lang="scss">
+.source{
+    margin: 12px;
+    border-radius: 2px;
+}
+.cont {
+  border: 1px solid #d3d1d1;
+  padding:10px;
+}
 </style>

+ 9 - 1
src/pages/netStructPicture/components/virtualRelation.vue

@@ -37,7 +37,7 @@
       <div class="main-middle" ref="middleHeight" id="end">
         <div class="cont-title">
           <img :src="devicePng" alt="" class="img-item" />
-          <div class="middle-title">
+          <div class="middle-title" v-if="listData3">
             <div>{{ listData3.desc }}</div>
             <div>{{ listData3.ied_name }}</div>
           </div>
@@ -398,6 +398,13 @@ watch(
     });
   }
 );
+watch(
+    () => listData3.value,
+    (newValue) => {
+      emit("result", newValue);
+      clickResetLine3();
+    }
+  );
 </script>
 <style lang="scss"  scoped>
 @mixin img-size {
@@ -411,6 +418,7 @@ watch(
 .main-cont {
   display: flex;
   justify-content: space-evenly;
+  margin-top: 60px;
 }
 
 .leader-line {