Parcourir la source

Merge branch 'master' of http://124.70.43.205:3000/yangxiao/sis_zhfx

chenminghua il y a 1 an
Parent
commit
d44bbf787d

BIN
src/assets/png/yfjd.png


+ 132 - 0
src/views/WindSite/components/boosterstation/BoosterStation.js

@@ -2881,6 +2881,138 @@ export class BoosterStation {
 			'aknbqzt009': {tag: "AKGFJSFW.NX_GD_AKG_GF_P1_L1_009_CI0171"},
 			'aknbqzt010': {tag: "AKGFJSFW.NX_GD_AKG_GF_P1_L1_010_CI0171"},
 			'aknbqzt011': {tag: "AKGFJSFW.NX_GD_AKG_GF_P1_L1_011_CI0171"},
+
+			//agc
+																																	//AGC总运行功率 区域-目标值上限
+																																	//AGC总运行功率 区域-目标值下限
+			'akagcai001': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0079"},	//并网点有功功率实时值
+			'akagcai002': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0143"},	//AGC有功目标值
+																																	//AGC有功目标值上限
+																																	//AGC有功目标值下限
+																																	//AGC有功不停机下限值
+			'akagcai003': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0142"},	//AGC有功可调下限值
+																																	//AGC分配总有功给定
+																																	//AGC控制总有功实发
+																																	//AGC总有功运行区域
+																																	//远方设定有功目标值
+			'akagcai004': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0143"},	//人工设定有功目标值
+			'akagcai005': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0141"},	//AGC有功可调上限值
+		
+			// avc
+			'akavcai001': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0148"},	//电压实时值
+			'akavcai002': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0153"},	//无功实时值
+			'akavcai003': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0147"},	//电压上限值
+			'akavcai004': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0147"},	//电压告警上限值
+			'akavcai005': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0147"},	//电压告警下限值
+			'akavcai006': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0147"},	//电压下限值
+
+			'akavcai007': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0147"},	//35KV母线电压目标值
+			'akavcai008': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0148"},	//35KV母线电实时值
+			'akavcai009': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0154"},	//30KV母线无功目标值
+			'akavcai010': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0153"},	//30KV母线无功实时值
+			'akavcai011': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0147"},	//人工设定电压目标值
+			'akavcai012': {tag: "AKDQ.NX_GD_AKG_DQ_P1_L1_001_AI0147"},	//远方设定有功目标值
+			// 'akavcai013': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_012_AI0033"},	//35KV母线可增无功值
+
+
+			/**akfzf001di001
+			 * 	1#方阵限有功值
+					1#方阵限无功值
+					1#方阵实发有功
+					1#方阵实发无功
+					1#方阵功率因数
+					1#方阵并网运行
+					1#方阵通讯故障
+			*/
+			'akfzf001di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_001_AI0070"},
+			'akfzf001di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_001_AI0074"},
+			'akfzf001di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_001_AI0056"},
+			'akfzf001di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_001_AI0057"},
+			'akfzf001di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_001_AI0058"},
+			'akfzf001di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_001_DI0002"},
+			'akfzf001di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_001_DI0056"},
+
+			'akfzf002di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_002_AI0070"},
+			'akfzf002di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_002_AI0074"},
+			'akfzf002di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_002_AI0056"},
+			'akfzf002di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_002_AI0057"},														//AGC总运行功率 区域-目标值上限
+			//AGC总运行功率 区域-目标值下限
+			'akfzf002di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_002_AI0058"},
+			'akfzf002di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_002_DI0002"},
+			'akfzf002di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_002_DI0056"},
+
+			'akfzf003di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_003_AI0070"},
+			'akfzf003di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_003_AI0074"},
+			'akfzf003di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_003_AI0056"},
+			'akfzf003di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_003_AI0057"},
+			'akfzf003di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_003_AI0058"},
+			'akfzf003di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_003_DI0002"},
+			'akfzf003di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_003_DI0056"},
+
+			'akfzf004di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_004_AI0070"},
+			'akfzf004di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_004_AI0074"},
+			'akfzf004di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_004_AI0056"},
+			'akfzf004di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_004_AI0057"},
+			'akfzf004di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_004_AI0058"},
+			'akfzf004di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_004_DI0002"},
+			'akfzf004di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_004_DI0056"},
+
+			'akfzf005di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_005_AI0070"},
+			'akfzf005di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_005_AI0074"},
+			'akfzf005di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_005_AI0056"},
+			'akfzf005di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_005_AI0057"},
+			'akfzf005di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_005_AI0058"},
+			'akfzf005di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_005_DI0002"},
+			'akfzf005di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_005_DI0056"},
+
+			'akfzf006di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_006_AI0070"},
+			'akfzf006di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_006_AI0074"},
+			'akfzf006di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_006_AI0056"},
+			'akfzf006di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_006_AI0057"},
+			'akfzf006di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_006_AI0058"},
+			'akfzf006di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_006_DI0002"},
+			'akfzf006di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_006_DI0056"},
+
+			'akfzf007di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_007_AI0070"},
+			'akfzf007di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_007_AI0074"},
+			'akfzf007di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_007_AI0056"},
+			'akfzf007di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_007_AI0057"},
+			'akfzf007di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_007_AI0058"},
+			'akfzf007di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_007_DI0002"},
+			'akfzf007di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_007_DI0056"},
+
+			'akfzf008di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_008_AI0070"},
+			'akfzf008di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_008_AI0074"},
+			'akfzf008di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_008_AI0056"},
+			'akfzf008di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_008_AI0057"},
+			'akfzf008di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_008_AI0058"},
+			'akfzf008di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_008_DI0002"},
+			'akfzf008di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_008_DI0056"},
+
+			'akfzf009di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_009_AI0070"},
+			'akfzf009di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_009_AI0074"},
+			'akfzf009di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_009_AI0056"},
+			'akfzf009di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_009_AI0057"},
+			'akfzf009di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_009_AI0058"},
+			'akfzf009di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_009_DI0002"},
+			'akfzf009di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_009_DI0056"},
+
+			'akfzf010di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_010_AI0070"},
+			'akfzf010di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_010_AI0074"},
+			'akfzf010di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_010_AI0056"},
+			'akfzf010di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_010_AI0057"},
+			'akfzf010di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_010_AI0058"},
+			'akfzf010di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_010_DI0002"},
+			'akfzf010di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_010_DI0056"},
+
+			'akfzf011di001': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_011_AI0070"},
+			'akfzf011di002': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_011_AI0074"},
+			'akfzf011di003': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_011_AI0056"},
+			'akfzf011di004': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_011_AI0057"},
+			'akfzf011di005': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_011_AI0058"},
+			'akfzf011di006': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_011_DI0002"},
+			'akfzf011di007': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_011_DI0056"},
+
 		},
 		"AK_GDC_AKDI010":{
 			'akdi010': {tag: "AKGF.NX_GD_AKG_GF_P1_L1_012_DI0010"},  //811断路器

+ 140 - 2
src/views/WindSite/components/boosterstation/ak.vue

@@ -4814,6 +4814,105 @@
             >
               公用测控
             </text>
+            <!-- AGC信息图 -->
+            <rect
+              xmlns="http://www.w3.org/2000/svg"
+              x="1260"
+              y="0"
+              fill="rgba(27,74,152, 1)"
+              stroke="rgba(27,74,152, 1)"
+              stroke-miterlimit="10"
+              width="120"
+              height="35"
+              style="cursor:pointer"
+              rx="10"
+              @click="agcVisble = true"
+            />
+            <text
+              x="1320"
+              y="20"
+              fill="rgba(255, 255, 255, 1)"
+              id="eb448ef"
+              topologyid="eb448ef"
+              style="
+                user-select: none;
+                cursor:pointer;
+                font-size: 18px;
+                line-height: 1;
+                transform: rotate(0deg);
+                text-anchor: middle;
+                dominant-baseline: middle;
+              "
+              @click="agcVisble = true"
+            >
+            AGC信息图
+            </text>
+                        <!-- AVC信息图 -->
+                        <rect
+              xmlns="http://www.w3.org/2000/svg"
+              x="1260"
+              y="50"
+              fill="rgba(27,74,152, 1)"
+              stroke="rgba(27,74,152, 1)"
+              stroke-miterlimit="10"
+              width="120"
+              height="35"
+              style="cursor:pointer"
+              rx="10"
+              @click="avcVisble = true"
+            />
+            <text
+              x="1320"
+              y="70"
+              fill="rgba(255, 255, 255, 1)"
+              id="eb448ef"
+              topologyid="eb448ef"
+              style="
+                user-select: none;
+                cursor:pointer;
+                font-size: 18px;
+                line-height: 1;
+                transform: rotate(0deg);
+                text-anchor: middle;
+                dominant-baseline: middle;
+              "
+              @click="avcVisble = true"
+            >
+            AVC信息图
+            </text>
+                                    <!-- 分站房分图 -->
+                                    <rect
+              xmlns="http://www.w3.org/2000/svg"
+              x="1260"
+              y="100"
+              fill="rgba(27,74,152, 1)"
+              stroke="rgba(27,74,152, 1)"
+              stroke-miterlimit="10"
+              width="120"
+              height="35"
+              style="cursor:pointer"
+              rx="10"
+              @click="partVisble = true"
+            />
+            <text
+              x="1320"
+              y="120"
+              fill="rgba(255, 255, 255, 1)"
+              id="eb448ef"
+              topologyid="eb448ef"
+              style="
+                user-select: none;
+                cursor:pointer;
+                font-size: 18px;
+                line-height: 1;
+                transform: rotate(0deg);
+                text-anchor: middle;
+                dominant-baseline: middle;
+              "
+              @click="partVisble = true"
+            >
+            分站房分图
+            </text>
         </g>
       </svg>
     </template>
@@ -4866,7 +4965,37 @@
       custom-class="modal"
       :close-on-click-modal="false"
     >
-      <nbq-screen :datas="ajaxData" :nbqIndex="nbqIndex"/>
+      <nbq-screen :datas="ajaxData" />
+    </el-dialog>
+    <!-- agc信息图 -->
+    <el-dialog
+      title="AGC信息图"
+      v-model="agcVisble"
+      width="1600px"
+      custom-class="modal"
+      :close-on-click-modal="false"
+    >
+      <agc-screen :datas="ajaxData" />
+    </el-dialog>
+    <!-- avc信息图 -->
+    <el-dialog
+      title="AVC信息图"
+      v-model="avcVisble"
+      width="1600px"
+      custom-class="modal"
+      :close-on-click-modal="false"
+    >
+      <avc-screen :datas="ajaxData" />
+    </el-dialog>
+      <!-- 分站房分图 -->
+      <el-dialog
+      title="分站房分图"
+      v-model="partVisble"
+      width="1600px"
+      custom-class="modal"
+      :close-on-click-modal="false"
+    >
+      <part-screen :datas="ajaxData" />
     </el-dialog>
   </div>
 </template>
@@ -4879,6 +5008,9 @@ import nbqScreen from './aknbqscreen.vue'
 import ups from './akups.vue'
 import energy from './akenergy.vue'
 import publictest from './akpublictest.vue'
+import agcScreen from './akagcscreen.vue'
+import avcScreen from './akavcscreen.vue'
+import partScreen from './akpartscreen.vue'
 export default {
   components: {
     previewPicture,
@@ -4886,7 +5018,10 @@ export default {
     nbqScreen,
     ups,
     energy,
-    publictest
+    publictest,
+    agcScreen,
+    avcScreen,
+    partScreen
   },
 
   data() {
@@ -4897,6 +5032,9 @@ export default {
       upsVisble: false,
       energyVisble: false,
       publictestVisble: false,
+      avcVisble: false,
+      agcVisble: false,
+      partVisble: false,
       // 请求所用的计时器,如果为轮询类请求时会根据该值轮询接口
       requestTimmer: null,
       // 组件属性对应的 key

+ 354 - 0
src/views/WindSite/components/boosterstation/akagcscreen.vue

@@ -0,0 +1,354 @@
+<template>
+	<div>
+		<div class="d-tt">AGC信息图</div>
+		<div class="d-subtt">有功自动控制(AGC)系统</div>
+		<div class="d-pn">
+			<div class="d-pn-tb" style="display: flex; justify-content: space-between;padding: 0 10px;">
+				<div style="width: 40%">
+					<div class="pn-tt">(AGC)总有功运行区域</div>
+					<div style="display:flex; justify-content: space-around;">
+						<div>
+							<div style="margin-bottom: 20px;height:30px;line-height:30px;">目标值上限</div>
+							<div style="height:30px;line-height:30px;">目标值下限</div>
+						</div>
+						<div style="width: 40%;">
+							<div style="height: 30px;margin-bottom: 4px; border: 2px solid white; background: rgb(41, 238, 14);color:black;text-align:center;line-height: 26px">2区</div>
+							<div style="height: 30px;margin-bottom: 4px; border: 2px solid white; background: rgb(41, 238, 14);color:black;text-align:center;line-height: 26px">1区</div>
+							<div style="height: 30px;margin-bottom: 4px; border: 2px solid white; background: rgb(41, 238, 14);color:black;text-align:center;line-height: 26px">3区</div>
+						</div>
+						<div>
+							<div style="margin-bottom:20px;height: 30px;line-height:30px;">2740.50</div>
+							<div style="height:30px;line-height:30px;">2646.00</div>
+						</div>
+					</div>
+				</div>
+				<div style="width: 59%">
+					<div class="pn-tt">AGC功能投退控制区</div>
+					<div style="display:flex; padding:0 10px;">
+						<div style="background: #159afa;margin-right: 10px;border-radius: 6px; padding: 4px;">
+							<div style="border-bottom:1px solid white;">有功自动控制(AGC)系统</div>
+							<div style="display:flex;">
+								<div style="margin-right: 10px;margin-top: 6px;">
+									<div style="margin-left: 10px;width: 60px;height: 16px;border: 2px solid rgb(41, 238, 14);position:relative">
+										<div style="width: 10px;height: 2px;background: rgb(41, 238, 14);position:absolute;top: 6px;left: -10px;"></div>
+										<div style="width: 10px;height: 2px;background: rgb(41, 238, 14);position:absolute;top: 6px;right: -10px;"></div>
+									</div>
+									<div style="margin-top: 8px;">AGC总复归</div>
+								</div>
+								<div style="background: transparent; height: 60px; width: 80px;">
+									<img  :src="yfjd" width="80" height="60" />
+								</div>
+							</div>
+						</div>
+						<div>
+							<div style="margin-bottom: 20px;text-align: right;">AGC总投退软压板</div>
+							<div style="white-space: nowrap;text-align: right;">虚拟有功服务器投退软压板</div>
+						</div>
+						<div style="margin-left: 10px;">
+							<div style="background: rgb(41, 238, 14); height: 20px; width: 40px;margin-bottom: 20px;"></div>
+							<div style="background: rgb(41, 238, 14); height: 20px; width: 40px"></div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="d-pn-tb">
+				<div class="pn-tt">AGC运行模式控制区</div>
+				<div style="display:flex; justify-content: space-around">
+					<div style="width: 40%">
+						<div style="display: flex;justify-content: space-between;text-align: right;">
+							<div style="margin-bottom: 20px;margin-right: 20px;">AGC自由发电软压板</div>
+							<div style="height: 20px;width: 40px;background-color: rgb(41, 238, 14);"></div>
+						</div>
+						<div style="display: flex;justify-content: space-between;text-align: right;">
+							<div style="margin-bottom: 20px;margin-right: 20px;">AGC实时控制软压板</div>
+							<div style="height: 20px;width: 40px;background-color: rgb(41, 238, 14);"></div>
+						</div>
+						<div>
+							<div style="height: 40px;line-height:40px;text-align:center;background:lightgrey;color:black; width:180px;">人工设置有功目标值</div>
+							<div style="color:yellow;margin: 10px 0;">(若设置有功目标值为1000kW, 则设定为1000)</div>
+						</div>
+					</div>
+					<div style="width: 40%">
+						<div style="display: flex;justify-content: space-between;text-align: right;">
+							<div style="margin-bottom: 20px;margin-right: 20px;">AGC开停机闭环软压板</div>
+							<div style="height: 20px;width: 40px;background-color: rgb(41, 238, 14);"></div>
+						</div>
+						<div style="display: flex;justify-content: space-between;text-align: right;">
+							<div style="margin-bottom: 20px;margin-right: 20px;">人工设定有功目标值软压板</div>
+							<div style="height: 20px;width: 40px;background-color: rgb(41, 238, 14);"></div>
+						</div>
+						<div>
+							<div style="height: 40px;line-height:40px;text-align:center;background:lightgrey;color:black; width:180px;">远方设置有功目标值</div>
+							<div style="color:yellow;margin: 10px 0;">(若设置有功目标值为1000kW, 则设定为10)</div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="d-pn-tb">
+				<div class="pn-tt">
+					遥测运行信息区
+				</div>
+				<div class="flex">
+					<table>
+						<tr v-for="item in dotArr1" :key="item.id">
+							<td width="50%">{{ item.name }}</td>
+							<td width="25%">{{ item.num }}</td>
+							<td width="25%">{{ item.unit }}</td>
+						</tr>
+					</table>
+					<table>
+						<tr v-for="item in dotArr2" :key="item.id">
+							<td width="50%">{{ item.name }}</td>
+							<td width="25%">{{ item.num }}</td>
+							<td width="25%">{{ item.unit }}</td>
+						</tr>
+					</table>
+				</div>
+			</div>
+			<div class="d-pn-tb">
+				<div class="pn-tt">
+					闭锁与遥信信息
+				</div>
+				<div class="flex pn-rb">
+					<div class="pn-rb-it">
+						<div>(AGC总)总告警</div>
+					</div>
+					<div class="pn-rb-it">
+						<div>(AGC告警)有功调节指令方式异常</div>
+					</div>
+					<div class="pn-rb-it">
+						<div>(AGC)对象配置错误闭锁(自动复归)</div>
+					</div>
+					<div class="pn-rb-it">
+						<div>(AGC告警)有功增闭锁</div>
+					</div>
+					<div class="pn-rb-it">
+						<div>(AGC)对象信号异常闭锁(自动复归)</div>
+					</div>
+					<div class="pn-rb-it">
+						<div>(AGC告警)有功减闭锁</div>
+					</div>
+				</div>
+
+			</div>
+		</div>
+	</div>
+</template>
+<script>
+import yfjd from '@/assets/png/yfjd.png'
+export default {
+	data(){
+		return {
+			yfjd: yfjd,
+			dotArr1: [
+				{
+					name: '并网点有功功率实时值',
+					num: 0,
+					unit: 'kW'
+				},
+				{
+					name: 'AGC有功目标值',
+					num: 0,
+					unit: 'kW'
+				},
+				{
+					name: 'AGC有功目标值上限',
+					num: 0,
+					unit: 'kW'
+				},
+				{
+					name: 'AGC有功目标值下限',
+					num: 0,
+					unit: 'kW'
+				},
+				{
+					name: 'AGC有功不停机下限值',
+					num: 0,
+					unit: 'kW'
+				},
+				{
+					name: 'AGC有功可调下限值',
+					num: 0,
+					unit: 'kW'
+				},
+			],
+			dotArr2: [
+				{
+					name: 'AGC分配总有功给定',
+					num: 0,
+					unit: 'kW'
+				},
+				{
+					name: 'AGC控制总有功实发',
+					num: 0,
+					unit: 'kW'
+				},
+				{
+					name: 'AGC总有功运行区域',
+					num: 0,
+					unit: '--'
+				},
+				{
+					name: '远方设定有功目标值',
+					num: 0,
+					unit: 'kW'
+				},
+				{
+					name: '人工设定有功目标值',
+					num: 0,
+					unit: 'kW'
+				},
+				{
+					name: 'AGC有功可调上限值',
+					num: 0,
+					unit: 'kW'
+				},
+			],
+		}
+	},
+	props:{
+		datas: {
+			type: Object,
+			default: () => {}
+		}
+	},
+	watch: {
+		datas(val){
+			this.funSetDot(val)
+		}
+	},
+	methods: {
+		funSetDot(obj){
+			this.dotArr1[0].num = obj.akagcai001
+			this.dotArr1[1].num = obj.akagcai002
+			this.dotArr1[5].num = obj.akagcai003
+
+			this.dotArr2[4].num = obj.akagcai004
+			this.dotArr2[5].num = obj.akagcai005
+		}
+	},
+	created(){
+		this.funSetDot(this.datas)
+	}
+}
+</script>
+<style lang="less" scoped>
+.d-tt {
+	font-size: 24px;
+	color: white;
+	height: 30px;
+	line-height: 30px;
+	text-align: center;
+}
+
+.d-subtt {
+	font-size: 20px;
+	color: white;
+	height: 24px;
+	line-height: 24px;
+	padding-left: 10px;
+}
+
+.d-pn {
+	width: 100%;
+	margin-top: 10px;
+	display: flex;
+	flex-wrap: wrap;
+	color: white;
+	border: 2px solid rgba(255, 255, 255, 0.6);
+
+	// height: 467px;
+	.d-pn-tb {
+		width: calc(50% - 40px);
+		margin-top: 10px;
+		margin-bottom: 20px;
+		margin-right: 20px;
+		margin-left: 20px;
+		border: 1px solid rgba(255, 255, 255, 0.6);
+
+		.flex {
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+			align-content: center;
+		}
+
+		.pn-tt {
+			color: white;
+			text-align: center;
+			padding: 10px 0px;
+		}
+
+		.pn-rb {
+			justify-content: space-around;
+		}
+
+		.pn-rb-it {
+			width: 40%;
+			height: 30px;
+			margin-top: 10px;
+			color:black;
+			text-align: center;
+			line-height: 26px;
+			border: 2px solid white;
+			background: rgb(41, 238, 14);
+		}
+
+		table {
+			width: 50%;
+			border-collapse: collapse;
+		}
+
+		td {
+			border: 1px solid rgba(255, 255, 255, 0.6);
+			text-align: right;
+			padding-right: 10px;
+			height: 36px;
+			color: rgba(255, 255, 255, 0.75);
+			font-size: 16px;
+			font-weight: bold;
+
+			&:last-child {
+				text-align: center;
+			}
+
+			&:nth-child(2) {
+				color: rgb(41, 238, 14);
+			}
+		}
+	}
+
+	.d-pn-ul {
+		width: 100%;
+		padding: 20px 30px 0 20px;
+		border-left: 2px solid rgba(255, 255, 255, 0.6);
+		display: flex;
+		flex-wrap: wrap;
+		align-items: flex-start;
+		align-content: flex-start;
+		overflow-y: auto;
+		overflow-x: hidden;
+
+		.d-pn-ul-li {
+			width: 44%;
+			height: 40px;
+			// line-height: 40px;
+			margin-bottom: 20px;
+			background-image: linear-gradient(to bottom, rgb(145, 145, 240), rgb(245, 245, 245), rgb(145, 145, 233));
+			color: rgb(0, 0, 179);
+			font-size: 16px;
+			text-align: center;
+			border-radius: 6px;
+			margin-right: 10px;
+			display: flex;
+			font-size: 14px;
+			align-items: center;
+			justify-content: center;
+
+			&[data-active='true'] {
+				background-image: linear-gradient(to bottom, red, rgb(243, 136, 128), red);
+				color: rgb(255, 196, 0);
+			}
+		}
+	}
+}</style>

+ 383 - 0
src/views/WindSite/components/boosterstation/akavcscreen.vue

@@ -0,0 +1,383 @@
+<template>
+	<div>
+		<div class="d-tt">AVC信息图</div>
+		<div class="d-subtt">电压无功自动控制(AVC)系统</div>
+		<div class="d-pn">
+			<div class="d-pn-tb" style="display: flex; justify-content: space-between;padding: 0 10px;">
+				<div style="width: 100%">
+					<div class="pn-tt">AVC功能投退控制区</div>
+					<div style="display:flex; padding:0 10px;justify-content: space-between;">
+						<div style="background: #159afa;margin-right: 10px;border-radius: 6px; padding: 4px;height: 90px;">
+							<div style="border-bottom:1px solid white;">有功自动控制(AVC)系统</div>
+							<div style="display:flex;">
+								<div style="margin-right: 10px;margin-top: 6px;">
+									<div style="margin-left: 10px;width: 60px;height: 16px;border: 2px solid rgb(41, 238, 14);position:relative">
+										<div style="width: 10px;height: 2px;background: rgb(41, 238, 14);position:absolute;top: 6px;left: -10px;"></div>
+										<div style="width: 10px;height: 2px;background: rgb(41, 238, 14);position:absolute;top: 6px;right: -10px;"></div>
+									</div>
+									<div style="margin-top: 8px;">AVC总复归</div>
+								</div>
+								<div style="background: transparent; height: 60px; width: 80px;">
+									<img  :src="yfjd" width="80" height="60" />
+								</div>
+							</div>
+						</div>
+						<div>
+							<div style="margin-bottom: 20px;text-align: right;">AVC总投退软压板</div>
+							<div style="white-space: nowrap;margin-bottom: 20px; text-align: right;">1#高侧母线投退软压板</div>
+							<div style="white-space: nowrap;text-align: right;">人工设定电压目标值软压板</div>
+						</div>
+						<div style="margin-left: 10px;">
+							<div style="background: rgb(41, 238, 14); height: 20px; width: 40px;margin-bottom: 20px;"></div>
+							<div style="background: rgb(41, 238, 14); height: 20px; width: 40px;margin-bottom: 20px;"></div>
+							<div style="background: rgb(41, 238, 14); height: 20px; width: 40px"></div>
+						</div>
+						<div>
+							<div style="margin-bottom: 20px;text-align: right;">无功电压切换模式</div>
+							<div style="white-space: nowrap;text-align: right;">AVC实时控制软压板</div>
+						</div>
+						<div style="margin-left: 10px;">
+							<div style="background: rgb(41, 238, 14); height: 20px; width: 40px;margin-bottom: 20px;"></div>
+							<div style="background: rgb(41, 238, 14); height: 20px; width: 40px"></div>
+						</div>
+					</div>
+					<div style="padding: 0 10px;display: flex;justify-content: space-between;align-items:center;margin-top: 30px;">
+						<div>
+							<div style="height: 40px;line-height:40px;text-align:center;background:lightgrey;color:black; width:180px;">远方设置有功目标值</div>
+							<div style="color:yellow;margin: 10px 0;">(电压模式设置0, 无功模式设置1)</div>
+						</div>
+						<div style="display: flex;">
+							<div>电压控制模式</div>
+							<div style="width: 20px; height: 20px; border-radius:50%;background: rgb(41, 238, 14);margin-left: 20px;"></div>
+						</div>
+						<div style="display: flex;">
+							<div>无功控制模式</div>
+							<div style="width: 20px; height: 20px; border-radius:50%;background: rgb(41, 238, 14);margin-left: 20px;"></div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="d-pn-tb">
+				<div class="pn-tt">母线运行区域</div>
+				<div style="margin-bottom:10px;display: flex;margin: 0 10px;justify-content: space-around;border-bottom: 2px solid white;">
+					<div>电压单位: kV</div>
+					<div>电压实时值: {{ dataObj.dyssz }}</div>
+					<div>无功单位: kVar</div>
+					<div>无功实时值: {{ dataObj.wgssz }}</div>
+				</div>
+				<div style="display: flex;align-items: center;justify-content: space-between;padding: 0 10px;">
+					<div style="width: 30%;display:flex;flex-direction:column;align-items: center; text-align:right;">
+						<div style="width: 100%;margin-top: 10px;display:flex;justify-content: space-between;">
+							<span style="width:50%;">电压上限值</span>
+							<span>{{ dataObj.dysxz }}</span>
+						</div>
+						<div style="width: 100%;margin-top: 10px;display:flex;justify-content: space-between;">
+							<span style="width:50%;">电压告警上限值</span>
+							<span>{{ dataObj.dygjsxz }}</span>
+						</div>
+						<div style="width: 100%;margin-top: 10px;display:flex;justify-content: space-between;">
+							<span style="width:50%;">电压告警下限值</span>
+							<span>{{ dataObj.dygjxxz }}</span>
+						</div>
+						<div style="width: 100%;margin-top: 10px;display:flex;justify-content: space-between;">
+							<span style="width:50%;">电压下限值</span>
+							<span>{{ dataObj.dyxxz }}</span>
+						</div>
+					</div>
+					<div style="width: 64%">
+						<table style="width:100%;">
+						<tr>
+							<th width="30%">Q+/COS-目标上限值</th>
+							<th></th>
+							<th width="30%">Q-/COS-目标下限值</th>
+						</tr>
+						<tr>
+							<td style="background: rgb(41, 238, 14)"></td>
+							<td style="background: rgb(41, 238, 14)"></td>
+							<td style="background: rgb(41, 238, 14)"></td>
+						</tr>
+						<tr>
+							<td style="background: rgb(41, 238, 14)"></td>
+							<td style="background: rgb(41, 238, 14)"></td>
+							<td style="background: rgb(41, 238, 14)"></td>
+						</tr>
+						<tr>
+							<td style="background: rgb(41, 238, 14)"></td>
+							<td style="background: rgb(41, 238, 14)"></td>
+							<td style="background: rgb(41, 238, 14)"></td>
+						</tr>
+						<tr>
+							<td style="background: rgb(41, 238, 14)"></td>
+							<td style="background: rgb(41, 238, 14)"></td>
+							<td style="background: rgb(41, 238, 14)"></td>
+						</tr>
+						<tr>
+							<td>0.00</td>
+							<td></td>
+							<td>0.00</td>
+						</tr>
+						</table>
+					</div>
+				</div>
+			</div>
+			<div class="d-pn-tb">
+				<div class="pn-tt">
+					遥测运行信息区
+				</div>
+				<div class="flex">
+					<table>
+						<tr v-for="item in dotArr1" :key="item.id">
+							<td width="50%">{{ item.name }}</td>
+							<td width="25%">{{ item.num }}</td>
+							<td width="25%">{{ item.unit }}</td>
+						</tr>
+					</table>
+				</div>
+			</div>
+			<div class="d-pn-tb">
+				<div class="pn-tt">
+					闭锁与遥信信息
+				</div>
+				<div class="flex pn-rb" style="align-items:center;">
+					<div style="width: 40%">
+							<div style="height: 40px;line-height:40px;text-align:center;background:lightgrey;color:black; width:180px;">人工设定1#高侧母线无功值</div>
+							<div style="color:yellow;margin: 10px 0;">(若设置母线无功为3kVar, 则设定为3)</div>
+					</div>
+					<div style="width: 40%">
+							<div style="height: 40px;line-height:40px;text-align:center;background:lightgrey;color:black; width:180px;">远方设定1#高侧母线无功值</div>
+							<div style="color:yellow;margin: 10px 0;">(若设置母线无功为3kVar, 则设定为3)</div>
+					</div>
+					<div style="width: 40%">
+							<div style="height: 40px;line-height:40px;text-align:center;background:lightgrey;color:black; width:180px;">人工设定1#高侧母线电压值</div>
+							<div style="color:yellow;margin: 10px 0;">(若设置母线电压为3.5kV, 则设定为3.5)</div>
+					</div>
+					<div style="width: 40%">
+							<div style="height: 40px;line-height:40px;text-align:center;background:lightgrey;color:black; width:180px;">远方设定1#高侧母线电压值</div>
+							<div style="color:yellow;margin: 10px 0;">(若设置母线电压为3.5kV, 则设定为3.5)</div>
+					</div>
+					<div class="pn-rb-it">
+						<div>(AGC/AVC告警)1#高侧母线无功增闭锁</div>
+					</div>
+					<div class="pn-rb-it">
+						<div>(AVC告警)1#高侧母线电压调节指令方式异常</div>
+					</div>
+					<div class="pn-rb-it">
+						<div>(AVC告警)1#高侧母线无功减闭锁</div>
+					</div>
+					<div class="pn-rb-it">
+						<div>(AVC告警)1#高侧母线无功调节指令方式异常</div>
+					</div>
+				</div>
+
+			</div>
+		</div>
+	</div>
+</template>
+<script>
+import yfjd from '@/assets/png/yfjd.png'
+export default {
+	data(){
+		return {
+			yfjd: yfjd,
+			dotArr1: [
+				{
+					name: '35kV母线电压目标值',
+					num: 0,
+					unit: 'kV'
+				},
+				{
+					name: '35kV母线电压实时值',
+					num: 0,
+					unit: 'kV'
+				},
+				{
+					name: '35kV母线无功目标值',
+					num: 0,
+					unit: 'kVar'
+				},
+				{
+					name: '35kV母线无功实时值',
+					num: 0,
+					unit: 'kVar'
+				},
+				{
+					name: '人工设定电压目标值',
+					num: 0,
+					unit: 'kV'
+				},
+				{
+					name: '远方设定电压目标值',
+					num: 0,
+					unit: 'kV'
+				},
+				{
+					name: '35kV母线可增无功值',
+					num: 0,
+					unit: 'kVar'
+				},
+			],
+			dataObj: {
+				dyssz: 0,
+				wgssz: 0,
+				dysxz: 0,
+				dygjsxz: 0,
+				dygjxxz: 0,
+				dyxxz: 0
+			}
+		}
+	},
+	props:{
+		datas: {
+			type: Object,
+			default: () => {}
+		}
+	},
+	watch: {
+		datas(val){
+			this.funSetDot(val)
+		}
+	},
+	methods: {
+		funSetDot(obj){
+			this.dataObj = {
+				dyssz: obj.akavcai001,
+				wgssz: obj.akavcai002,
+				dysxz: obj.akavcai003,
+				dygjsxz: obj.akavcai004,
+				dygjxxz: obj.akavcai005,
+				dyxxz: obj.akavcai006
+			}
+			this.dotArr1[0].num = obj.akavcai007
+			this.dotArr1[1].num = obj.akavcai008
+			this.dotArr1[2].num = obj.akavcai009
+			this.dotArr1[3].num = obj.akavcai010
+			this.dotArr1[4].num = obj.akavcai011
+			this.dotArr1[5].num = obj.akavcai012
+			// this.dotArr1[6].num = obj.akavcai013
+		}
+	},
+	created(){
+		this.funSetDot(this.datas)
+	}
+}
+</script>
+<style lang="less" scoped>
+.d-tt {
+	font-size: 24px;
+	color: white;
+	height: 30px;
+	line-height: 30px;
+	text-align: center;
+}
+
+.d-subtt {
+	font-size: 20px;
+	color: white;
+	height: 24px;
+	line-height: 24px;
+	padding-left: 10px;
+}
+
+.d-pn {
+	width: 100%;
+	margin-top: 10px;
+	padding-top: 10px;
+	display: flex;
+	flex-wrap: wrap;
+	color: white;
+	border: 2px solid rgba(255, 255, 255, 0.6);
+
+	// height: 467px;
+	.d-pn-tb {
+		width: calc(50% - 40px);
+		margin-bottom: 10px;
+		margin-right: 20px;
+		margin-left: 20px;
+		border: 1px solid rgba(255, 255, 255, 0.6);
+
+		.flex {
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+			align-content: center;
+		}
+
+		.pn-tt {
+			color: white;
+			text-align: center;
+			padding: 10px 0px;
+		}
+
+		.pn-rb {
+			justify-content: space-around;
+		}
+
+		.pn-rb-it {
+			width: 40%;
+			height: 30px;
+			margin-bottom: 10px;
+			color: black;
+			text-align: center;
+			line-height: 26px;
+			border: 2px solid white;
+			background: rgb(41, 238, 14);
+		}
+
+		table {
+			width: 100%;
+			border-collapse: collapse;
+		}
+
+		td {
+			border: 1px solid rgba(255, 255, 255, 0.6);
+			text-align: center;
+			padding-right: 10px;
+			height: 36px;
+			color: rgba(255, 255, 255, 0.75);
+			font-size: 16px;
+			font-weight: bold;
+
+			&:last-child {
+				text-align: center;
+			}
+
+			&:nth-child(2) {
+				color: rgb(41, 238, 14);
+			}
+		}
+	}
+
+	.d-pn-ul {
+		width: 100%;
+		padding: 20px 30px 0 20px;
+		border-left: 2px solid rgba(255, 255, 255, 0.6);
+		display: flex;
+		flex-wrap: wrap;
+		align-items: flex-start;
+		align-content: flex-start;
+		overflow-y: auto;
+		overflow-x: hidden;
+
+		.d-pn-ul-li {
+			width: 44%;
+			height: 40px;
+			// line-height: 40px;
+			margin-bottom: 20px;
+			background-image: linear-gradient(to bottom, rgb(145, 145, 240), rgb(245, 245, 245), rgb(145, 145, 233));
+			color: rgb(0, 0, 179);
+			font-size: 16px;
+			text-align: center;
+			border-radius: 6px;
+			margin-right: 10px;
+			display: flex;
+			font-size: 14px;
+			align-items: center;
+			justify-content: center;
+
+			&[data-active='true'] {
+				background-image: linear-gradient(to bottom, red, rgb(243, 136, 128), red);
+				color: rgb(255, 196, 0);
+			}
+		}
+	}
+}</style>

+ 272 - 0
src/views/WindSite/components/boosterstation/akpartscreen.vue

@@ -0,0 +1,272 @@
+<template>
+<div>
+	<div class="d-tt">分站房分图</div>
+	<div class="d-pn">
+		<div class="d-pn-it" v-for="(item,index) in partList" :key="index">
+			<div class="d-pn-it-tt">{{index+1}}#方阵</div>
+			<div class="d-pn-it-row">
+				<div class="d-pn-it-row-col">
+					<div class="d-pn-it-row-col-it">
+						<div>现有功值(kW)</div>
+						<div>{{ item.xygz }}</div>
+					</div>
+					<div class="d-pn-it-row-col-it">
+						<div>现无功值(kVar)</div>
+						<div>{{ item.xwgz }}</div>
+					</div>
+					<div class="d-pn-it-row-col-it opa">
+						<div>实发有功(kW)</div>
+						<div>{{ item.sfyg }}</div>
+					</div>
+					<div class="d-pn-it-row-col-it opa">
+						<div>实发无功(kVar)</div>
+						<div>{{ item.sfwg }}</div>
+					</div>
+					<div class="d-pn-it-row-col-it opa">
+						<div>功率因数</div>
+						<div>{{ item.glys }}</div>
+					</div>
+				</div>
+				<div class="d-pn-it-row-col" style="border-right: none;">
+					<div class="d-pn-it-row-col-ryb">
+						<div>AGC投退软压板</div>
+						<div class="ryb" :data-active="item.agcryb"></div>
+					</div>
+					<div class="d-pn-it-row-col-ryb">
+						<div>AVC投退软压板</div>
+						<div class="ryb" :data-active="item.avcryb"></div>
+					</div>
+					<div class="d-pn-it-row-col-it opa">
+						<div>通讯故障</div>
+						<div class="ryb" :data-active="item.txgz"></div>
+					</div>
+					<div class="d-pn-it-row-col-it opa">
+						<div>并网运行</div>
+						<div class="ryb" style="border-radius: 50%" :data-active="item.bwyx"></div>
+					</div>
+				</div>
+			</div>
+			<div class="d-pn-it-row">
+				<div class="d-pn-it-row-col" style="border-bottom: none;text-align: center;color: black;">
+					<div class="d-pn-it-row-col-bg">
+						<div style="border-bottom: 2px solid white;">控制异常闭锁(手动复归)</div>
+						<div>信号异常闭锁(自动复归)</div>
+					</div>
+				</div>
+				<div class="d-pn-it-row-col" style="border-bottom: none;text-align: center;color: black;border-right: none">
+					<div class="d-pn-it-row-col-bg">
+						<div style="border-bottom: 2px solid white;">(AGC)总闭锁(自动复归)</div>
+						<div>(AVC)总闭锁(自动复归)</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+</template>
+<script>
+export default {
+	data(){
+		return {
+			partList: new Array(11).fill({
+					xygz: 0,
+					xwgz: 0,
+					sfyg: 0,
+					sfwg: 0,
+					glys: 0,
+					agcryb: 0,
+					avcryb: 0,
+					txgz: 0,
+					bwyx: 0,
+				})
+		}
+	},
+	props:{
+		datas: {
+			type: Object,
+			default: () => {}
+		}
+	},
+	watch: {
+		datas(val){
+			this.funSetDot(val)
+		}
+	},
+	methods: {
+		funSetDot(obj){
+			this.partList.forEach((o,index) => {
+				let indexStr = `${index}`
+				if(index<10){
+					indexStr = `0${index}`
+				}
+				o.xygz = obj[`akfzf0${indexStr}di001`]
+				o.xwgz = obj[`akfzf0${indexStr}di002`]
+				o.sfyg = obj[`akfzf0${indexStr}di003`]
+				o.sfwg = obj[`akfzf0${indexStr}di004`]
+				o.glys = obj[`akfzf0${indexStr}di005`]
+				o.agcryb = 0
+				o.avcryb = 0
+				o.txgz = obj[`akfzf0${indexStr}di007`]
+				o.bwyx = obj[`akfzf0${indexStr}di006`]
+			})
+		}
+	},
+	created(){
+		this.funSetDot(this.datas)
+	}
+}
+</script>
+<style lang="less" scoped>
+.d-tt{
+	font-size: 24px;
+	color: white;
+	height: 30px;
+	line-height: 30px;
+	text-align: center;
+}
+.d-subtt{
+	font-size: 20px;
+	color: white;
+	height: 24px;
+	line-height: 24px;
+	padding-left: 10px;
+}
+.d-pn{
+	width: 100%;
+	height: 650px;
+	margin-top: 10px;
+	overflow-x: hidden;
+	overflow-y: auto;
+	display: flex;
+	flex-wrap: wrap;
+	.d-pn-tb{
+		width: calc(50% - 40px);
+		margin-top: 10px;
+		margin-bottom: 20px;
+		margin-right: 20px;
+		margin-left: 20px;
+		border: 1px solid rgba(255,255,255,0.6);
+		border-collapse: collapse;
+		td{
+			border: 1px solid rgba(255,255,255,0.6);
+			text-align: right;
+			padding-right: 10px;
+			height: 36px;
+			color: rgba(255,255,255,0.75);
+			font-size: 16px;
+			font-weight: bold;
+			&:last-child{
+				text-align: center;
+			}
+			&:nth-child(2){
+				color: rgb(41, 238, 14);
+			}
+		}
+	}
+	.d-pn-ul{
+		width: 100%;
+		padding: 20px 30px 0 20px;
+		border-left: 2px solid rgba(255,255,255,0.6);
+		display: flex;
+		flex-wrap: wrap;
+		align-items: flex-start;
+		align-content: flex-start;
+		overflow-y: auto;
+		overflow-x: hidden;
+		.d-pn-ul-li{
+			width: 44%;
+			height: 40px;
+			// line-height: 40px;
+			margin-bottom: 20px;
+			background-image: linear-gradient(to bottom, rgb(145, 145, 240),rgb(245, 245, 245),rgb(145, 145, 233));
+			color: rgb(0, 0, 179);
+			font-size: 16px;
+			text-align: center;
+			border-radius: 6px;
+			margin-right: 10px;
+			display: flex;
+			font-size: 14px;
+			align-items: center;
+			justify-content: center;
+			&[data-active='true']{
+				background-image: linear-gradient(to bottom, red,rgb(243, 136, 128),red);
+				color: rgb(255, 196, 0);
+			}
+		}
+	}
+	.d-pn-it{
+		width: 24%;
+		background: #315f9bb3;
+		margin-right: 1%;
+		margin-bottom: 20px;
+		color: white;
+		&-tt{
+			background: #8f6464;
+			background-image: linear-gradient(0, transparent, #f14444, transparent);
+			height: 30px;
+			line-height:30px;
+			text-align: center;
+		}
+		&-row{
+			display: flex;
+			&-col{
+				width: 50%;
+				padding: 10px;
+				border-right: 2px solid white;
+				border-bottom: 2px solid white;
+				.ryb{
+					width: 20px;
+					height: 20px;
+					background: rgb(41, 238, 14);
+					&[data-active='true']{
+						background: red;
+					}
+				}
+				&-it{
+					height: 40px;
+					width: 100%;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					margin-bottom: 10px;
+					>div:first-child{
+						background: lightgrey;
+						color: black;
+						width: 100px;
+						height: 40px;
+						line-height: 40px;
+						text-align: center;
+					}
+					&.opa{
+						>div:first-child{
+							background: transparent;
+							color: white;
+							width: 100px;
+							height: 40px;
+							line-height: 40px;
+							text-align: center;
+						}
+					}
+				}
+				&-ryb{
+					width: 100%;
+					height: 40px;
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					margin-bottom: 10px;
+					>div:first-child{
+						// color: yellow;
+						// text-decoration: underline;
+					}
+				}
+				&-bg{
+					background: rgb(41, 238, 14);
+					height: 44px;
+					width: 100%;
+				}
+			}
+		}
+	}
+}
+</style>