ソースを参照

综合报警所需页面增加

sunzehao 1 ヶ月 前
コミット
c2ee3656c3
26 ファイル変更6777 行追加36 行削除
  1. 7 7
      src/router/index.js
  2. 267 0
      src/views/IntegratedAlarm/safe/WNSpower/dataJson.json
  3. 292 0
      src/views/IntegratedAlarm/safe/WNSpower/index.vue
  4. 298 0
      src/views/IntegratedAlarm/safe/WNSpower/windDialog/index.vue
  5. 219 0
      src/views/IntegratedAlarm/safe/WNSpower/windDialog/zbJson.json
  6. 267 0
      src/views/IntegratedAlarm/safe/affectedManagement/dataJson.json
  7. 374 0
      src/views/IntegratedAlarm/safe/affectedManagement/index.vue
  8. 339 0
      src/views/IntegratedAlarm/safe/affectedManagement/windDialog/index.vue
  9. 219 0
      src/views/IntegratedAlarm/safe/affectedManagement/windDialog/zbJson.json
  10. 81 0
      src/views/IntegratedAlarm/safe/boostlegWarning/dataJson.json
  11. 733 0
      src/views/IntegratedAlarm/safe/boostlegWarning/index.vue
  12. 267 0
      src/views/IntegratedAlarm/safe/faultManagement/dataJson.json
  13. 421 0
      src/views/IntegratedAlarm/safe/faultManagement/index.vue
  14. 359 0
      src/views/IntegratedAlarm/safe/faultManagement/windDialog/index.vue
  15. 219 0
      src/views/IntegratedAlarm/safe/faultManagement/windDialog/zbJson.json
  16. 5 5
      src/views/IntegratedAlarm/safe/historyWarning/index.vue
  17. 267 0
      src/views/IntegratedAlarm/safe/maintenance/dataJson.json
  18. 389 0
      src/views/IntegratedAlarm/safe/maintenance/index.vue
  19. 319 0
      src/views/IntegratedAlarm/safe/maintenance/windDialog/index.vue
  20. 219 0
      src/views/IntegratedAlarm/safe/maintenance/windDialog/zbJson.json
  21. 267 0
      src/views/IntegratedAlarm/safe/powerRationing/dataJson.json
  22. 324 0
      src/views/IntegratedAlarm/safe/powerRationing/index.vue
  23. 354 0
      src/views/IntegratedAlarm/safe/powerRationing/windDialog/index.vue
  24. 219 0
      src/views/IntegratedAlarm/safe/powerRationing/windDialog/zbJson.json
  25. 44 20
      src/views/IntegratedAlarm/safe/stopQuery/index.vue
  26. 8 4
      src/views/IntegratedAlarm/safe/temperatureMonitoring/index.vue

+ 7 - 7
src/router/index.js

@@ -513,7 +513,7 @@ export const asyncRoutes = [
                 component: () =>
                 import("@/views/IntegratedAlarm/safe/historyWarning"),
                 meta: {
-                title: "报警查询",
+                title: "历史报警",
                 icon: "",
                 permissions: ["jn_safe_bjcx"],
                 },
@@ -522,7 +522,7 @@ export const asyncRoutes = [
                 path: "boostlegWarning", // 升压站报警
                 name: "boostlegWarning",
                 component: () =>
-                  import("@/views/IntegratedAlarm/safe/historyWarning"),
+                  import("@/views/IntegratedAlarm/safe/boostlegWarning"),
                 meta: {
                   title: "升压站报警",
                   icon: "",
@@ -543,7 +543,7 @@ export const asyncRoutes = [
                 path: "powerRationing", // 限电管理
                 name: "powerRationing",
                 component: () =>
-                    import("@/views/IntegratedAlarm/safe/customWarning"),
+                    import("@/views/IntegratedAlarm/safe/powerRationing"),
                     meta: {
                     title: "限电管理",
                     icon: "",
@@ -553,7 +553,7 @@ export const asyncRoutes = [
             {
                 path: "affectedManagement", //受累管理
                 name: "affectedManagement",
-                component: () => import("@/views/IntegratedAlarm/safe/stopQuery"),
+                component: () => import("@/views/IntegratedAlarm/safe/affectedManagement"),
                 meta: {
                 title: "受累管理",
                 icon: "",
@@ -563,7 +563,7 @@ export const asyncRoutes = [
             {
                 path: "faultManagement", //故障管理
                 name: "faultManagement",
-                component: () => import("@/views/IntegratedAlarm/safe/dataSearch"),
+                component: () => import("@/views/IntegratedAlarm/safe/faultManagement"),
                 meta: {
                 title: "故障管理",
                 icon: "",
@@ -573,7 +573,7 @@ export const asyncRoutes = [
             {
                 path: "maintenance", //维护管理
                 name: "maintenance",
-                component: () => import("@/views/IntegratedAlarm/safe/dataSearch"),
+                component: () => import("@/views/IntegratedAlarm/safe/maintenance"),
                 meta: {
                 title: "维护管理",
                 icon: "",
@@ -583,7 +583,7 @@ export const asyncRoutes = [
             {
                 path: "WNSpower", //维护管理
                 name: "WNSpower",
-                component: () => import("@/views/IntegratedAlarm/safe/dataSearch"),
+                component: () => import("@/views/IntegratedAlarm/safe/WNSpower"),
                 meta: {
                 title: "卧牛山电量管理",
                 icon: "",

+ 267 - 0
src/views/IntegratedAlarm/safe/WNSpower/dataJson.json

@@ -0,0 +1,267 @@
+{
+    "total": 503,
+    "pagecount": 26,
+    "pageindex": 1,
+    "rows": [
+      {
+        "id": "d8dcc1af-5365-48c3-a09d-2681bafce2b8",
+        "startTime": "2025-05-12 14:06:53",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 14:06:53",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "d9a1d44b-c989-4c6d-a7ef-b5a255b627db",
+        "startTime": "2025-05-12 14:05:51",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 14:05:51",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "e7216376-4baf-452c-b250-487f5575ff3d",
+        "startTime": "2025-05-12 13:58:12",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:58:12",
+        "wpName": "平鲁虎头山  ",
+        "windPowerStationId": "PL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "6be13c3b-0cc1-4dd8-95d9-a80de130094f",
+        "startTime": "2025-05-12 13:32:10",
+        "description": null,
+        "wts": "1A09, 1B04, 1B09, 1A03, 1C03, 1B11, 1C08, 1B06, 1B05, 1A05, 1C11, 1C06, 1B07, 1A11, 1A01, 1A08, 1B08, 1C09, 1B10, 1C05, 1A07, 1A02, 1A04, 1B01, 1C07, 1C04, 1B03, 1A10, 1C02, 1C01, 1B02, 1A06, 1C10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:32:10",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "ad3894be-3b5e-49c5-8c99-d8081a101da4",
+        "startTime": "2025-05-12 13:28:03",
+        "description": null,
+        "wts": "1A03, 1C11, 1A11, 1C01, 1C10, 1C05, 1B09, 1B02, 1C02, 1B11, 1A05, 1C09, 1B01, 1B04, 1B05, 1B03, 1A01, 1A02, 1C08, 1A06, 1A10, 1C03, 1B08, 1C06, 1A04, 1A09, 1C07, 1A08, 1B06, 1C04, 1A07, 1B07, 1B10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:28:03",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "9c7dc983-8fed-409d-a7be-46d319ad6ffd",
+        "startTime": "2025-05-12 13:25:29",
+        "description": null,
+        "wts": "1B08, 1B06, 1A03, 1C03, 1C07, 1B05, 1C08, 1C04, 1B10, 1B09, 2D13, 1B11, 1A10, 1C06, 1A01, 1A02, 1C05, 1C02, 1C01, 1B02, 1C11, 1B07, 1B01, 1B03, 1C09, 1B04, 1A05",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:25:29",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "f3063245-82ba-4d3b-bc6b-097436c00799",
+        "startTime": "2025-05-12 13:20:52",
+        "description": null,
+        "wts": "1B10, 1C03, 1B03, 1C05, 1C07, 1A02, 1A04, 1C02, 1B07, 1A07, 1B05, 1C01, 1B06, 1B11, 1A03, 1C06, 1B02, 1C04, 1B04, 1A01, 1C11, 1A08, 1B01, 1B08, 1A10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:20:52",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "df0e25c9-f293-4439-8ada-a0e796bf6ede",
+        "startTime": "2025-05-12 13:14:13",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:14:13",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "3846702a-ae68-4492-a35f-2d5914d79362",
+        "startTime": null,
+        "description": null,
+        "wts": "A10, A09, A11, B18, B23, B24, B24, A01, A08, A08, A05, A05, A01, B24, A05, A10, B14, A02, B16, A05, A12, B22, B18, A08, B13, A11, A09, B21, B19, B15, B20, A06, B24, A07, A04, B17, A01, A03, A06, B15, A03, B21, B18, B14, B24, B23, A05, B17, B22, A01, B16, B19, A02, A04, B20",
+        "lossPower": 3055184.55,
+        "stopHours": 2.1,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 12:18:13",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "f21919df-3dab-43d1-b843-6b4cec8ef387",
+        "startTime": "2025-05-12 12:17:42",
+        "description": null,
+        "wts": "B23, B17, B22, A06, A04, A04, A12, B13, A01, A02, A04, A05, A03, A04, A08, A10, A07, A12, A09, A11, B14, B15, B18",
+        "lossPower": 16943.73,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 12:17:42",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "38b6f02e-7ee9-46d7-bae2-7a1753ac0c8f",
+        "startTime": "2025-05-12 11:53:57",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 11:53:57",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "54f7180a-86ae-4f14-a8b5-4fe728f2c5b5",
+        "startTime": "2025-05-11 16:44:46",
+        "description": null,
+        "wts": "1A09, 1B19",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:44:46",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "3390cc14-5f99-44e2-9baf-49fdb6466fe1",
+        "startTime": "2025-05-11 16:43:46",
+        "description": null,
+        "wts": "1A09, 1B19",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:43:46",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "4cbecc2c-392a-42e9-836d-197d585d7055",
+        "startTime": "2025-05-11 16:39:44",
+        "description": null,
+        "wts": "B22, B17, A06",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:39:44",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "bbecf43d-d8bf-4e87-8155-34954ca9e1d6",
+        "startTime": "2025-05-11 16:39:44",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:39:44",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "d9321d4c-1077-436a-b59e-40ec941433e9",
+        "startTime": "2025-05-11 16:37:43",
+        "description": null,
+        "wts": "B21, B17, B22, A06, A08, A09",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:37:43",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "774a7857-d0d8-444b-84b9-cc08e5e7d436",
+        "startTime": "2025-05-11 16:36:43",
+        "description": null,
+        "wts": "B17, B22, A08, A06, A12, A09",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:36:43",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "8a44536c-9c2e-4ac3-aeca-0ee17652f7d2",
+        "startTime": "2025-05-11 16:32:41",
+        "description": null,
+        "wts": "A06, A07, A11, B22, A12, A09, B17, A08, B21, A04",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:32:41",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "863d9e38-1936-4d13-acdf-8b995ce55cde",
+        "startTime": "2025-05-11 16:31:40",
+        "description": null,
+        "wts": "A04, A09, B21, A12, B17, A07, A11, A08, A06, B22, B15, B13, B14",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:31:40",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "da4ea65b-7207-42b1-8198-d681615a60b1",
+        "startTime": "2025-05-11 16:29:38",
+        "description": null,
+        "wts": "A06, B14, A08, A11, B21, B15, B17, B16, A07, A04, A09, B13, A12, B22",
+        "lossPower": 539.47,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:29:38",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      }
+    ]
+  }

+ 292 - 0
src/views/IntegratedAlarm/safe/WNSpower/index.vue

@@ -0,0 +1,292 @@
+<template>
+  <div class="WNSpowerBox">
+    <div class="form-wrapper">
+      <div class="search-wrapper">
+        
+        <div class="search-item">
+          <span class="label">选择时间:</span>
+          <div class="search-content">
+            <el-date-picker
+                type="date"
+                v-model="dateRange"
+                value-format="YYYY-MM-DD"
+                placeholder="请选择"
+            />
+          </div>
+        </div>
+      </div>
+      <div class="btns">
+        <el-button class="buttons" round size="mini" @click="getTableData">查询</el-button>
+      </div>
+    </div>
+    <div class="table-wrapper">
+      <div class="leftContent" :data-type="$store.state.moreSty">
+        <span>{{ pageTitle }}</span>
+      </div>
+      <el-table
+        size="mini"
+        :data="tableData"
+        height="calc(100% - 43px - 40px)"
+        style="width: 100%"
+        stripe
+      >
+        <el-table-column
+          :label="item.label"
+          :prop="item.prop"
+          show-overflow-tooltip
+          header-align="center"
+          align="center"
+          v-for="(item, index) in tHeader"
+          :key="index"
+        >
+          <template #default="scope">
+            <span>
+              {{
+                scope.row[item.prop] != "NULL" && scope.row[item.prop] != null
+                  ? scope.row[item.prop]
+                  : "--"
+              }}
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column
+            label="操作"
+            width="100"
+            header-align="center"
+            align="center"
+          >
+            <template #default="scope">
+              <el-button
+                style="color: #05bb4c"
+                type="text"
+                >确认本条</el-button
+              >
+            </template>
+        </el-table-column>
+      </el-table>
+      <div class="pagination-wrapper">
+        <el-pagination
+          layout="total, sizes, prev, pager, next"
+          :page-sizes="[22, 100, 500, 1000]"
+          @size-change="
+            (value) => {
+              pageNum = 1;
+              pageSize = value;
+              getTableData();
+            }
+          "
+          :current-page="pageNum"
+          :page-size="pageSize"
+          :total="total"
+          @current-change="currentChange"
+        ></el-pagination>
+      </div>
+    </div>
+    <windDialog
+      ref="windDialog"
+    />
+  </div>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import windDialog from "./windDialog/index.vue";
+import {
+  getWpList,
+  fetchWindturbineList,
+  getStopQueryTableData,
+} from "@/api/zhbj/index.js";
+import dataJson from "./dataJson.json"
+
+export default {
+  name: "WNSpower",
+  components: {
+    windDialog
+  },
+  data() {
+    return {
+      pageTitle: "卧牛山电量管理",
+      wpId: "",
+      wtId: "",
+      wpArray: [],
+      wtArray: [],
+      dateRange: "",
+      description: "",
+      typeId: "",
+      typeList: [],
+      reportcom: "",
+      reportcomList: [],
+      pageNum: 1,
+      pageSize: 22,
+      total: 0,
+      tableData: [],
+      tHeader: [
+        {
+          label: "名称",
+          prop: "stopTime",
+        },
+        {
+          label: "平均风速",
+          prop: "stopTime",
+        },
+        {
+          label: "35KV发电量",
+          prop: "stopTime",
+        },
+        {
+          label: "上网电量",
+          prop: "startTime",
+        },
+        {
+          label: "购网电量",
+          prop: "stopHours",
+        },
+        {
+          label: "厂用电量",
+          prop: "stopTypeId",
+        },
+        {
+          label: "最大出力",
+          prop: "lossPower",
+        },
+        {
+          label: "最小出力",
+          prop: "lossPower",
+        }
+      ],
+    };
+  },
+
+  created() {
+    this.dateRange = dayjs().format("YYYY-MM-DD HH:mm:ss")
+    this.getWpList();
+
+    this.getTableData();
+  },
+
+  methods: {
+    async getWpList() {
+      const { data } = await getWpList("windturbine");
+      this.wpId = data?.[0]?.id || "";
+      this.wpArray = data || [];
+    },
+
+    async getTableData() {
+    //   this.BASE.showLoading();
+    //   const { data } = await getStopQueryTableData({
+    //     wpId: this.wpId,
+    //     wtId: this.wtId,
+    //     type: this.type,
+    //     description: this.description,
+    //     begin: this.dateRange?.[0] || "",
+    //     end: this.dateRange?.[1] || "",
+    //     pageNum: this.pageNum,
+    //     pageSize: this.pageSize,
+    //   });
+    //   this.BASE.closeLoading();
+    //   data?.records?.forEach((ele) => {
+    //     ele.stopTimeName = dayjs(ele.stopTime).format("YYYY-MM-DD HH:mm:ss");
+    //     ele.startTimeName = ele.startTime
+    //       ? dayjs(ele.startTime).format("YYYY-MM-DD HH:mm:ss")
+    //       : "--";
+    //     ele.typeName = ele.stopTypeId === "gz" ? "故障" : "检修";
+    //   });
+
+    //   this.tableData = data?.records || [];
+    //   this.total = data.total || 0;
+    this.tableData = dataJson.rows
+    this.total = dataJson.total
+
+    },
+
+    currentChange(pageNum) {
+      this.pageNum = pageNum;
+      this.getTableData();
+    },
+    //添加限电
+    addWNSpower() {
+        this.$refs.windDialog.openDialog();
+    },
+},
+};
+</script>
+
+<style lang="less" scoped>
+.WNSpowerBox {
+  height: 100%;
+  width: 100%;
+  padding: 0 20px;
+  padding-bottom: 15px;
+  .form-wrapper ::v-deep {
+    display: flex;
+    // flex-direction: column;
+    padding-top: 15px;
+    .search-wrapper {
+      display: flex;
+      align-items: center;
+      font-size: 14px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-bottom: 15px;
+      .search-item {
+        display: flex;
+        margin-right: 10px;
+        // max-width: 450px;
+        align-items: center;
+        .label {
+          margin-right: 10px;
+          text-align: right;
+          white-space: nowrap;
+          // width: 60px;
+        }
+        .search-content {
+          flex: 1;
+        }
+      }
+    }
+    .btns {
+      margin-left: 35px;
+    }
+    .buttons {
+      background-color: rgba(5, 187, 76, 0.2);
+      border: 1px solid #3b6c53;
+      color: #b3b3b3;
+      font-size: 14px;
+
+      &:hover {
+        background-color: rgba(5, 187, 76, 0.5);
+        color: #ffffff;
+      }
+    }
+  }
+  .table-wrapper {
+    height: calc(100% - 62px);
+    width: 100%;
+    .leftContent[data-type~="greenSty"] {
+            background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+        }
+        .leftContent[data-type~="blueSty"] {
+            background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+        }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      display: flex;
+      align-items: center;
+
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+    .pagination-wrapper :deep {
+      text-align: right;
+      margin-top: 10px;
+    }
+  }
+}
+</style>

+ 298 - 0
src/views/IntegratedAlarm/safe/WNSpower/windDialog/index.vue

@@ -0,0 +1,298 @@
+<template>
+  <el-dialog v-model="dialogVisible" width="70%" top="120px">
+    <template #title>
+      <div class="dialog-title">
+        <div class="title">
+          逆变器详情
+        </div>
+      </div>
+    </template>
+    <div class="form-body">
+        <el-form ref="form" :model="form" label-width="130px">
+            <el-row>
+                <el-col :span="12">
+                <el-form-item label="平均风速:">
+                    <el-input
+                    v-model="form.tjss"
+                    placeholder="请输入平均风速"
+                    ></el-input>
+                </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                <el-form-item label="35KV发电量:">
+                    <el-input
+                    v-model="form.tjss"
+                    placeholder="请输入35KV发电量"
+                    ></el-input>
+                </el-form-item>
+                </el-col>
+            </el-row>
+            <el-row>
+                <el-col :span="12">
+                <el-form-item label="上网电量:">
+                    <el-input
+                    v-model="form.tjss"
+                    placeholder="请输入上网电量"
+                    ></el-input>
+                </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                <el-form-item label="购网电量:">
+                    <el-input
+                    v-model="form.tjss"
+                    placeholder="请输入购网电量"
+                    ></el-input>
+                </el-form-item>
+                </el-col>
+            </el-row>
+            <el-row>
+                <el-col :span="12">
+                <el-form-item label="厂用电量:">
+                    <el-input
+                    v-model="form.tjss"
+                    placeholder="请输入厂用电量"
+                    ></el-input>
+                </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                <el-form-item label="最大出力:">
+                    <el-input
+                    v-model="form.tjss"
+                    placeholder="请输入最大出力"
+                    ></el-input>
+                </el-form-item>
+                </el-col>
+            </el-row>
+            <el-row>
+                <el-col :span="12">
+                <el-form-item label="最小出力:">
+                    <el-input
+                    v-model="form.tjss"
+                    placeholder="请输入最小出力"
+                    ></el-input>
+                </el-form-item>
+                </el-col>
+            </el-row> 
+        </el-form>
+    </div>
+    <el-row class="footerButton">
+        <el-button round @click="tableRefresh">提交</el-button>
+    </el-row>
+  </el-dialog>
+</template>
+<script>
+import zbJson from './zbJson.json'
+export default {
+  name: "zbDialog", //指标弹窗
+  components: {},
+  props: {
+    uniformName: {
+      type: String,
+      required: true,
+    },
+    uniformCode: {
+      type: String,
+      required: true,
+    },
+  },
+  data() {
+    return {
+      dialogVisible: false,
+      text: "",
+      type: -1,
+      checkAll: false,
+      isIndeterminate: true,
+      checkList: [],
+      moreTargetData: [],
+      moreTargetDatawind: [],
+      allTargetDatawind: [],
+      allMoreTargetData: [],
+      headerIndex: -1,
+      partList: [
+        { label: "发电机", code: "fdj" },
+        { label: "齿轮箱", code: "clx" },
+        { label: "变桨", code: "bj" },
+        { label: "偏航", code: "ph" },
+        { label: "液压", code: "yy" },
+        { label: "机舱", code: "jc" },
+        { label: "其他", code: "qt" },
+      ],
+      showIt: true,
+      rankList: [],
+      form: {
+        wtId: "",
+        wpId: "",
+        wpName: "",
+        tjyy: "",
+        tjss: null,
+        tjfs: null,
+        bugnum: null,
+        workgroup1: null,
+        findlabornum: null,
+        reportlabornum: null,
+        description: null,
+        departuretime: null,
+        arrivaltime: null,
+        prodtdeptopinion: null,
+        workleader: null,
+        repairedtime: null,
+        repairedcomment: null,
+        unresolvedbug: null,
+        checktime: null,
+        degradebugtype: null,
+        repairdeptbugtype1: null,
+        checkdeptlabornum: null,
+        status: null,
+        gzpc: null,
+        gzjx: null,
+        prodtdepttime: null,
+        checkdeptopinion: null,
+        rwfpsc: 0.0,
+        rwfppjsc: 1066.0,
+        ddxcsc: 0.0,
+        ddxcpjsc: 0.0,
+        qxclsc: 0.0,
+        qxclpjsc: 0.0,
+        yssc: 0.0,
+        yspjsc: 0.0,
+        workHours: null,
+      },
+    };
+  },
+  created() {
+    // this.moreTargetData = new Array(50).fill({
+    //     name: "指标测试名称"
+    // })
+    this.moreTargetDatawind = zbJson.wind
+    this.allTargetDatawind = zbJson.wind
+    zbJson.power.forEach(it =>{
+        this.moreTargetData.push({
+            name: it
+        })
+    })
+  },
+  methods: {
+    showCodeList(type, code, index) {
+        this.headerIndex = index;
+        if (type === "all") {
+            this.moreTargetDatawind = zbJson.wind
+        } else {
+            this.moreTargetDatawind = []
+            this.allTargetDatawind.forEach(it => {
+                if (it.code === code) {
+                    this.moreTargetDatawind.push(it)
+                }
+            })
+            
+        }
+    },
+    // 初始化弹窗数据
+    openDialog() {
+      this.dialogVisible = true;
+    },
+    // 取消操作
+    cancel() {
+      this.dialogVisible = false;
+      this.allMoreTargetData = [];
+      this.moreTargetData = [];
+      this.checkList = [];
+    },
+    // 确定并刷新列表
+    tableRefresh() {
+      this.dialogVisible = false;
+      this.headerIndex = -1;
+      this.$emit(
+        "tableRefresh",
+        this.checkList,
+        this.allMoreTargetData.length
+          ? this.allMoreTargetData
+          : this.moreTargetData
+      );
+    },
+    // 全选按钮变化
+    handleCheckAllChange(val) {
+      this.checkList = val
+        ? this.allMoreTargetData.length
+          ? this.allMoreTargetData.map((item) => item.name)
+          : this.moreTargetData.map((item) => item.name)
+        : [];
+      this.isIndeterminate = false;
+    },
+    //各标签按钮变化
+    handleCheckedChange(checked) {
+      const checkedCount = checked.length;
+      this.checkAll =
+        checkedCount ===
+        (this.allMoreTargetData.length
+          ? this.allMoreTargetData.length
+          : this.moreTargetData.length);
+      this.isIndeterminate =
+        checkedCount > 0 &&
+        checkedCount <
+          (this.allMoreTargetData.length
+            ? this.allMoreTargetData.length
+            : this.moreTargetData.length);
+    },
+  },
+  mounted() {},
+  computed: {},
+};
+</script>
+<style lang="less" scoped>
+.dialog-form {
+  display: flex;
+  align-items: center;
+  margin-bottom: 10px;
+  .checkall {
+    margin-right: 10px;
+    width: 80px;
+  }
+}
+
+.el-checkbox {
+  width: 180px;
+}
+
+.targetNav[data-type~="greenSty"] {
+    ul {
+        li {
+            border-left: 1px solid #3b6c53;
+            border-top: 1px solid #3b6c53;
+            border-bottom: 1px solid #3b6c53;
+            &.li-right {
+                border-right: 1px solid #3b6c53;
+            }
+
+            &.active {
+                background-color: rgba(0, 199, 19, 0.4);
+            }
+        }
+    }
+}
+.targetNav[data-type~="blueSty"] {
+    ul {
+        li {
+            border-left: 1px solid #3b526c;
+            border-top: 1px solid #3b526c;
+            border-bottom: 1px solid #3b526c;
+            &.li-right {
+                border-right: 1px solid #3b526c;
+            }
+
+            &.active {
+                background-color: rgba(0, 86, 199, 0.4);
+            }
+        }
+    }   
+}
+.dialog-body{
+    .footerButton{
+        margin-top: 20px;
+    }
+}
+.form-body{
+    .el-row{
+        margin-bottom: 10px;
+    }
+}
+</style>

+ 219 - 0
src/views/IntegratedAlarm/safe/WNSpower/windDialog/zbJson.json

@@ -0,0 +1,219 @@
+{
+    "wind": [
+        {
+            "code": "qt",
+            "name": "IGBT温度"
+        },
+        {
+            "code": "fdj",
+            "name": "U1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "U2绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "V1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "V2绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "W1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "W2绕组温度"
+        },
+        {
+            "code": "jc",
+            "name": "X方向振动幅度值"
+        },
+        {
+            "code": "jc",
+            "name": "Y方向振动幅度值"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机1温度"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机2温度"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机3温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱入口油温"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱轴1温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱轴2温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮油油温"
+        },
+        {
+            "code": "fdj",
+            "name": "发电机转速"
+        },
+        {
+            "code": "fdj",
+            "name": "非驱动轴承温度/轴承B温度"
+        },
+        {
+            "code": "qt",
+            "name": "风机60秒风向"
+        },
+        {
+            "code": "qt",
+            "name": "风速"
+        },
+        {
+            "code": "qt",
+            "name": "风向"
+        },
+        {
+            "code": "qt",
+            "name": "功率因数"
+        },
+        {
+            "code": "jc",
+            "name": "环境温度"
+        },
+        {
+            "code": "jc",
+            "name": "机舱温度"
+        },
+        {
+            "code": "bj",
+            "name": "桨距角设定值"
+        },
+        {
+            "code": "jc",
+            "name": "控制柜温度/塔底柜温度"
+        },
+        {
+            "code": "qt",
+            "name": "轮毂温度"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧A相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧B相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧C相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "叶轮转速"
+        },
+        {
+            "code": "fdj",
+            "name": "有功功率"
+        },
+        {
+            "code": "qt",
+            "name": "主轴叶轮侧温度"
+        },
+        {
+            "code": "qt",
+            "name": "总发电量"
+        },
+        {
+            "code": "qt",
+            "name": "无功功率"
+        },
+        {
+            "code": "yy",
+            "name": "液压系统油位"
+        },
+        {
+            "code": "yy",
+            "name": "液压系统油压"
+        },
+        {
+            "code": "ph",
+            "name": "机舱方向/对风角度"
+        },
+        {
+            "code": "ph",
+            "name": "偏航位置"
+        },
+        {
+            "code": "ph",
+            "name": "偏航功率"
+        },
+        {
+            "code": "ph",
+            "name": "偏航右极限位置"
+        }
+    ],
+    "power": [
+        "变压器油温",
+        "电抗器温度",
+        "电网AB线电压",
+        "电网A相电流",
+        "电网A相电压",
+        "电网BC线电压",
+        "电网B相电流",
+        "电网B相电压",
+        "电网CA线电压",
+        "电网C相电流",
+        "电网C相电压",
+        "电网频率",
+        "额定无功输出功率",
+        "负极对地电压",
+        "负极对地阻抗值",
+        "功率因数",
+        "功率因数(遥调)",
+        "机内温度",
+        "累计二氧化碳减排量",
+        "模块温度 1",
+        "模块温度 2",
+        "模块温度 3",
+        "模块温度 4",
+        "模块温度 5",
+        "模块温度 6",
+        "逆变器关机时间",
+        "逆变器交流电流",
+        "逆变器交流电压",
+        "逆变器开机时间",
+        "逆变器输入电流",
+        "逆变器输入电压",
+        "逆变器效率",
+        "逆变器运行状态",
+        "逆变器直流电流",
+        "逆变器直流电压",
+        "年发电量",
+        "日并网分钟",
+        "日发电量",
+        "视在功率",
+        "输入总功率",
+        "无功功率",
+        "无功功率(遥调)",
+        "有功功率",
+        "有功功率(遥调)",
+        "月发电量",
+        "正极对地阻抗值",
+        "总电压",
+        "总发电量",
+        "总运行时间"
+    ]
+}

+ 267 - 0
src/views/IntegratedAlarm/safe/affectedManagement/dataJson.json

@@ -0,0 +1,267 @@
+{
+    "total": 503,
+    "pagecount": 26,
+    "pageindex": 1,
+    "rows": [
+      {
+        "id": "d8dcc1af-5365-48c3-a09d-2681bafce2b8",
+        "startTime": "2025-05-12 14:06:53",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 14:06:53",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "d9a1d44b-c989-4c6d-a7ef-b5a255b627db",
+        "startTime": "2025-05-12 14:05:51",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 14:05:51",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "e7216376-4baf-452c-b250-487f5575ff3d",
+        "startTime": "2025-05-12 13:58:12",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:58:12",
+        "wpName": "平鲁虎头山  ",
+        "windPowerStationId": "PL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "6be13c3b-0cc1-4dd8-95d9-a80de130094f",
+        "startTime": "2025-05-12 13:32:10",
+        "description": null,
+        "wts": "1A09, 1B04, 1B09, 1A03, 1C03, 1B11, 1C08, 1B06, 1B05, 1A05, 1C11, 1C06, 1B07, 1A11, 1A01, 1A08, 1B08, 1C09, 1B10, 1C05, 1A07, 1A02, 1A04, 1B01, 1C07, 1C04, 1B03, 1A10, 1C02, 1C01, 1B02, 1A06, 1C10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:32:10",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "ad3894be-3b5e-49c5-8c99-d8081a101da4",
+        "startTime": "2025-05-12 13:28:03",
+        "description": null,
+        "wts": "1A03, 1C11, 1A11, 1C01, 1C10, 1C05, 1B09, 1B02, 1C02, 1B11, 1A05, 1C09, 1B01, 1B04, 1B05, 1B03, 1A01, 1A02, 1C08, 1A06, 1A10, 1C03, 1B08, 1C06, 1A04, 1A09, 1C07, 1A08, 1B06, 1C04, 1A07, 1B07, 1B10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:28:03",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "9c7dc983-8fed-409d-a7be-46d319ad6ffd",
+        "startTime": "2025-05-12 13:25:29",
+        "description": null,
+        "wts": "1B08, 1B06, 1A03, 1C03, 1C07, 1B05, 1C08, 1C04, 1B10, 1B09, 2D13, 1B11, 1A10, 1C06, 1A01, 1A02, 1C05, 1C02, 1C01, 1B02, 1C11, 1B07, 1B01, 1B03, 1C09, 1B04, 1A05",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:25:29",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "f3063245-82ba-4d3b-bc6b-097436c00799",
+        "startTime": "2025-05-12 13:20:52",
+        "description": null,
+        "wts": "1B10, 1C03, 1B03, 1C05, 1C07, 1A02, 1A04, 1C02, 1B07, 1A07, 1B05, 1C01, 1B06, 1B11, 1A03, 1C06, 1B02, 1C04, 1B04, 1A01, 1C11, 1A08, 1B01, 1B08, 1A10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:20:52",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "df0e25c9-f293-4439-8ada-a0e796bf6ede",
+        "startTime": "2025-05-12 13:14:13",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:14:13",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "3846702a-ae68-4492-a35f-2d5914d79362",
+        "startTime": null,
+        "description": null,
+        "wts": "A10, A09, A11, B18, B23, B24, B24, A01, A08, A08, A05, A05, A01, B24, A05, A10, B14, A02, B16, A05, A12, B22, B18, A08, B13, A11, A09, B21, B19, B15, B20, A06, B24, A07, A04, B17, A01, A03, A06, B15, A03, B21, B18, B14, B24, B23, A05, B17, B22, A01, B16, B19, A02, A04, B20",
+        "lossPower": 3055184.55,
+        "stopHours": 2.1,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 12:18:13",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "f21919df-3dab-43d1-b843-6b4cec8ef387",
+        "startTime": "2025-05-12 12:17:42",
+        "description": null,
+        "wts": "B23, B17, B22, A06, A04, A04, A12, B13, A01, A02, A04, A05, A03, A04, A08, A10, A07, A12, A09, A11, B14, B15, B18",
+        "lossPower": 16943.73,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 12:17:42",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "38b6f02e-7ee9-46d7-bae2-7a1753ac0c8f",
+        "startTime": "2025-05-12 11:53:57",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 11:53:57",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "54f7180a-86ae-4f14-a8b5-4fe728f2c5b5",
+        "startTime": "2025-05-11 16:44:46",
+        "description": null,
+        "wts": "1A09, 1B19",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:44:46",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "3390cc14-5f99-44e2-9baf-49fdb6466fe1",
+        "startTime": "2025-05-11 16:43:46",
+        "description": null,
+        "wts": "1A09, 1B19",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:43:46",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "4cbecc2c-392a-42e9-836d-197d585d7055",
+        "startTime": "2025-05-11 16:39:44",
+        "description": null,
+        "wts": "B22, B17, A06",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:39:44",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "bbecf43d-d8bf-4e87-8155-34954ca9e1d6",
+        "startTime": "2025-05-11 16:39:44",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:39:44",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "d9321d4c-1077-436a-b59e-40ec941433e9",
+        "startTime": "2025-05-11 16:37:43",
+        "description": null,
+        "wts": "B21, B17, B22, A06, A08, A09",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:37:43",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "774a7857-d0d8-444b-84b9-cc08e5e7d436",
+        "startTime": "2025-05-11 16:36:43",
+        "description": null,
+        "wts": "B17, B22, A08, A06, A12, A09",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:36:43",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "8a44536c-9c2e-4ac3-aeca-0ee17652f7d2",
+        "startTime": "2025-05-11 16:32:41",
+        "description": null,
+        "wts": "A06, A07, A11, B22, A12, A09, B17, A08, B21, A04",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:32:41",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "863d9e38-1936-4d13-acdf-8b995ce55cde",
+        "startTime": "2025-05-11 16:31:40",
+        "description": null,
+        "wts": "A04, A09, B21, A12, B17, A07, A11, A08, A06, B22, B15, B13, B14",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:31:40",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "da4ea65b-7207-42b1-8198-d681615a60b1",
+        "startTime": "2025-05-11 16:29:38",
+        "description": null,
+        "wts": "A06, B14, A08, A11, B21, B15, B17, B16, A07, A04, A09, B13, A12, B22",
+        "lossPower": 539.47,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:29:38",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      }
+    ]
+  }

+ 374 - 0
src/views/IntegratedAlarm/safe/affectedManagement/index.vue

@@ -0,0 +1,374 @@
+<template>
+  <div class="affectedManagementBox">
+    <div class="form-wrapper">
+      <div class="search-wrapper">
+        <div class="search-item">
+          <span class="label">风场:</span>
+          <div class="search-content">
+            <el-select
+              v-model="wpId"
+              size="mini"
+              placeholder="全部"
+              popper-class="select">
+              <el-option
+                v-for="item in wpArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.aname"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">日期区间:</span>
+          <div class="search-content">
+            <el-date-picker
+              v-model="dateRange"
+              size="mini"
+              type="datetimerange"
+              range-separator="-"
+              format="YYYY-MM-DD HH:mm:ss"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              start-placeholder="开始时间"
+              end-placeholder="结束时间"
+              :clearable="false"
+              @change="getTableData"
+            >
+            </el-date-picker>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">类型:</span>
+          <div class="search-content">
+            <el-select
+              v-model="typeId"
+              clearable
+              size="mini"
+              placeholder="全部"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in typeList"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">内报/外报:</span>
+          <div class="search-content">
+            <el-select
+              v-model="reportcom"
+              clearable
+              size="mini"
+              placeholder="全部"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in reportcomList"
+                :key="item.id"
+                :value="item.nemCode"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+      </div>
+      <div class="btns">
+        <el-button class="buttons" round size="mini" @click="getTableData"
+          >查询</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+          @click="addaffectedManagement"
+        >
+          新增</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+        >
+          导出</el-button
+        >
+      </div>
+    </div>
+    <div class="table-wrapper">
+      <div class="leftContent" :data-type="$store.state.moreSty">
+        <span>{{ pageTitle }}</span>
+      </div>
+      <el-table
+        size="mini"
+        :data="tableData"
+        height="calc(100% - 43px - 40px)"
+        style="width: 100%"
+        stripe
+      >
+        <el-table-column
+          :label="item.label"
+          :prop="item.prop"
+          show-overflow-tooltip
+          header-align="center"
+          align="center"
+          v-for="(item, index) in tHeader"
+          :key="index"
+        >
+          <template #default="scope">
+            <span>
+              {{
+                scope.row[item.prop] != "NULL" && scope.row[item.prop] != null
+                  ? scope.row[item.prop]
+                  : "--"
+              }}
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column
+            label="操作"
+            width="100"
+            header-align="center"
+            align="center"
+          >
+            <template #default="scope">
+              <el-button
+                style="color: #05bb4c"
+                type="text"
+                >确认本条</el-button
+              >
+            </template>
+        </el-table-column>
+      </el-table>
+      <div class="pagination-wrapper">
+        <el-pagination
+          layout="total, sizes, prev, pager, next"
+          :page-sizes="[22, 100, 500, 1000]"
+          @size-change="
+            (value) => {
+              pageNum = 1;
+              pageSize = value;
+              getTableData();
+            }
+          "
+          :current-page="pageNum"
+          :page-size="pageSize"
+          :total="total"
+          @current-change="currentChange"
+        ></el-pagination>
+      </div>
+    </div>
+    <windDialog
+      ref="windDialog"
+    />
+  </div>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import windDialog from "./windDialog/index.vue";
+import {
+  getWpList,
+  fetchWindturbineList,
+  getStopQueryTableData,
+} from "@/api/zhbj/index.js";
+import dataJson from "./dataJson.json"
+
+export default {
+  name: "affectedManagement",
+  components: {
+    windDialog
+  },
+  data() {
+    return {
+      pageTitle: "受累管理",
+      wpId: "",
+      wpArray: [],
+      dateRange: [],
+      description: "",
+      typeId: "",
+      typeList: [],
+      reportcom: "",
+      reportcomList: [],
+      pageNum: 1,
+      pageSize: 22,
+      total: 0,
+      tableData: [],
+      tHeader: [
+        {
+          label: "线路",
+          prop: "stopTime",
+        },
+        {
+          label: "开始时间",
+          prop: "startTime",
+        },
+        {
+          label: "结束时间",
+          prop: "stopHours",
+        },
+        {
+          label: "分类",
+          prop: "stopTypeId",
+        },
+        {
+          label: "内报/外报",
+          prop: "stopTypeId",
+        },
+        {
+          label: "损失电量(kWh)",
+          prop: "lossPower",
+        },
+        {
+          label: "影响容量",
+          prop: "lossPower",
+        },
+        {
+          label: "受累时长",
+          prop: "description",
+        }
+      ],
+    };
+  },
+
+  created() {
+    this.dateRange = [
+      dayjs().subtract(7, "day").format("YYYY-MM-DD HH:mm:ss"),
+      dayjs().format("YYYY-MM-DD HH:mm:ss"),
+    ];
+    this.getWpList();
+
+    this.getTableData();
+  },
+
+  methods: {
+    async getWpList() {
+      const { data } = await getWpList("windturbine");
+      this.wpId = data?.[0]?.id || "";
+      this.wpArray = data || [];
+    },
+
+    async getTableData() {
+    //   this.BASE.showLoading();
+    //   const { data } = await getStopQueryTableData({
+    //     wpId: this.wpId,
+    //     wtId: this.wtId,
+    //     type: this.type,
+    //     description: this.description,
+    //     begin: this.dateRange?.[0] || "",
+    //     end: this.dateRange?.[1] || "",
+    //     pageNum: this.pageNum,
+    //     pageSize: this.pageSize,
+    //   });
+    //   this.BASE.closeLoading();
+    //   data?.records?.forEach((ele) => {
+    //     ele.stopTimeName = dayjs(ele.stopTime).format("YYYY-MM-DD HH:mm:ss");
+    //     ele.startTimeName = ele.startTime
+    //       ? dayjs(ele.startTime).format("YYYY-MM-DD HH:mm:ss")
+    //       : "--";
+    //     ele.typeName = ele.stopTypeId === "gz" ? "故障" : "检修";
+    //   });
+
+    //   this.tableData = data?.records || [];
+    //   this.total = data.total || 0;
+    this.tableData = dataJson.rows
+    this.total = dataJson.total
+
+    },
+
+    currentChange(pageNum) {
+      this.pageNum = pageNum;
+      this.getTableData();
+    },
+    //添加限电
+    addaffectedManagement() {
+        this.$refs.windDialog.openDialog();
+    },
+},
+};
+</script>
+
+<style lang="less" scoped>
+.affectedManagementBox {
+  height: 100%;
+  width: 100%;
+  padding: 0 20px;
+  padding-bottom: 15px;
+  .form-wrapper ::v-deep {
+    display: flex;
+    // flex-direction: column;
+    padding-top: 15px;
+    .search-wrapper {
+      display: flex;
+      align-items: center;
+      font-size: 14px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-bottom: 15px;
+      .search-item {
+        display: flex;
+        margin-right: 10px;
+        // max-width: 450px;
+        align-items: center;
+        .label {
+          margin-right: 10px;
+          text-align: right;
+          white-space: nowrap;
+          // width: 60px;
+        }
+        .search-content {
+          flex: 1;
+        }
+      }
+    }
+    .btns {
+      margin-left: 35px;
+    }
+    .buttons {
+      background-color: rgba(5, 187, 76, 0.2);
+      border: 1px solid #3b6c53;
+      color: #b3b3b3;
+      font-size: 14px;
+
+      &:hover {
+        background-color: rgba(5, 187, 76, 0.5);
+        color: #ffffff;
+      }
+    }
+  }
+  .table-wrapper {
+    height: calc(100% - 62px);
+    width: 100%;
+    .leftContent[data-type~="greenSty"] {
+            background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+        }
+        .leftContent[data-type~="blueSty"] {
+            background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+        }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      display: flex;
+      align-items: center;
+
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+    .pagination-wrapper :deep {
+      text-align: right;
+      margin-top: 10px;
+    }
+  }
+}
+</style>

+ 339 - 0
src/views/IntegratedAlarm/safe/affectedManagement/windDialog/index.vue

@@ -0,0 +1,339 @@
+<template>
+  <el-dialog v-model="dialogVisible" width="70%" top="120px">
+    <template #title>
+      <div class="dialog-title">
+        <div class="title">
+          受累管理
+        </div>
+      </div>
+    </template>
+    <div class="form-body">
+        <el-form ref="form" :model="form" label-width="130px">
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="风场:">
+                <el-select v-model="form.wpName" size="mini" placeholder="风场">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="类型:">
+                <el-select v-model="form.wtId" size="mini" placeholder="类型">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="开始时间:">
+                <el-date-picker
+                    type="date"
+                    v-model="form.departuretime"
+                    value-format="YYYY-MM-DD"
+                    placeholder="请选择"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="结束时间:">
+                <el-date-picker
+                    type="date"
+                    v-model="form.arrivaltime"
+                    value-format="YYYY-MM-DD"
+                    placeholder="请选择"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="损失电量:">
+                <el-input
+                  v-model="form.tjss"
+                  placeholder="请输入损失电量"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="影响容量:">
+                <el-input
+                  v-model="form.tjfs"
+                  placeholder="请输入影响容量"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="内报/外报:">
+                <el-select v-model="form.wpName" size="mini" placeholder="内报/外报">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+    </div>
+    <div
+      class="dialog-body"
+    >
+      <img class="dialog-img" src="@/assets/imgs/dialog.png" />
+      <div class="dialog-form">
+        <span style="color: #fff">选择风机:</span>
+        <el-checkbox
+          class="checkall"
+          v-model="checkAll"
+          :indeterminate="isIndeterminate"
+          @change="handleCheckAllChange"
+          >全选</el-checkbox
+        >
+      </div>
+      <el-checkbox-group
+        v-model="checkList"
+      >
+        <el-checkbox
+          v-for="(item, index) in moreTargetData"
+          :key="index"
+          :label="item.name"
+        ></el-checkbox>
+      </el-checkbox-group>
+      <el-row class="footerButton">
+        <el-button round @click="cancel">取消</el-button>
+        <el-button round @click="tableRefresh">保存</el-button>
+      </el-row>
+    </div>
+  </el-dialog>
+</template>
+<script>
+import zbJson from './zbJson.json'
+export default {
+  name: "zbDialog", //指标弹窗
+  components: {},
+  props: {
+    uniformName: {
+      type: String,
+      required: true,
+    },
+    uniformCode: {
+      type: String,
+      required: true,
+    },
+  },
+  data() {
+    return {
+      dialogVisible: false,
+      text: "",
+      type: -1,
+      checkAll: false,
+      isIndeterminate: true,
+      checkList: [],
+      moreTargetData: [],
+      moreTargetDatawind: [],
+      allTargetDatawind: [],
+      allMoreTargetData: [],
+      headerIndex: -1,
+      partList: [
+        { label: "发电机", code: "fdj" },
+        { label: "齿轮箱", code: "clx" },
+        { label: "变桨", code: "bj" },
+        { label: "偏航", code: "ph" },
+        { label: "液压", code: "yy" },
+        { label: "机舱", code: "jc" },
+        { label: "其他", code: "qt" },
+      ],
+      showIt: true,
+      rankList: [],
+      form: {
+        wtId: "",
+        wpId: "",
+        wpName: "",
+        tjyy: "",
+        tjss: null,
+        tjfs: null,
+        bugnum: null,
+        workgroup1: null,
+        findlabornum: null,
+        reportlabornum: null,
+        description: null,
+        departuretime: null,
+        arrivaltime: null,
+        prodtdeptopinion: null,
+        workleader: null,
+        repairedtime: null,
+        repairedcomment: null,
+        unresolvedbug: null,
+        checktime: null,
+        degradebugtype: null,
+        repairdeptbugtype1: null,
+        checkdeptlabornum: null,
+        status: null,
+        gzpc: null,
+        gzjx: null,
+        prodtdepttime: null,
+        checkdeptopinion: null,
+        rwfpsc: 0.0,
+        rwfppjsc: 1066.0,
+        ddxcsc: 0.0,
+        ddxcpjsc: 0.0,
+        qxclsc: 0.0,
+        qxclpjsc: 0.0,
+        yssc: 0.0,
+        yspjsc: 0.0,
+        workHours: null,
+      },
+    };
+  },
+  created() {
+    // this.moreTargetData = new Array(50).fill({
+    //     name: "指标测试名称"
+    // })
+    this.moreTargetDatawind = zbJson.wind
+    this.allTargetDatawind = zbJson.wind
+    zbJson.power.forEach(it =>{
+        this.moreTargetData.push({
+            name: it
+        })
+    })
+  },
+  methods: {
+    showCodeList(type, code, index) {
+        this.headerIndex = index;
+        if (type === "all") {
+            this.moreTargetDatawind = zbJson.wind
+        } else {
+            this.moreTargetDatawind = []
+            this.allTargetDatawind.forEach(it => {
+                if (it.code === code) {
+                    this.moreTargetDatawind.push(it)
+                }
+            })
+            
+        }
+    },
+    // 初始化弹窗数据
+    openDialog() {
+      this.dialogVisible = true;
+    },
+    // 取消操作
+    cancel() {
+      this.dialogVisible = false;
+      this.allMoreTargetData = [];
+      this.moreTargetData = [];
+      this.checkList = [];
+    },
+    // 确定并刷新列表
+    tableRefresh() {
+      this.dialogVisible = false;
+      this.headerIndex = -1;
+      this.$emit(
+        "tableRefresh",
+        this.checkList,
+        this.allMoreTargetData.length
+          ? this.allMoreTargetData
+          : this.moreTargetData
+      );
+    },
+    // 全选按钮变化
+    handleCheckAllChange(val) {
+      this.checkList = val
+        ? this.allMoreTargetData.length
+          ? this.allMoreTargetData.map((item) => item.name)
+          : this.moreTargetData.map((item) => item.name)
+        : [];
+      this.isIndeterminate = false;
+    },
+    //各标签按钮变化
+    handleCheckedChange(checked) {
+      const checkedCount = checked.length;
+      this.checkAll =
+        checkedCount ===
+        (this.allMoreTargetData.length
+          ? this.allMoreTargetData.length
+          : this.moreTargetData.length);
+      this.isIndeterminate =
+        checkedCount > 0 &&
+        checkedCount <
+          (this.allMoreTargetData.length
+            ? this.allMoreTargetData.length
+            : this.moreTargetData.length);
+    },
+  },
+  mounted() {},
+  computed: {},
+};
+</script>
+<style lang="less" scoped>
+.dialog-form {
+  display: flex;
+  align-items: center;
+  margin-bottom: 10px;
+  .checkall {
+    margin-right: 10px;
+    width: 80px;
+  }
+}
+
+.el-checkbox {
+  width: 180px;
+}
+
+.targetNav[data-type~="greenSty"] {
+    ul {
+        li {
+            border-left: 1px solid #3b6c53;
+            border-top: 1px solid #3b6c53;
+            border-bottom: 1px solid #3b6c53;
+            &.li-right {
+                border-right: 1px solid #3b6c53;
+            }
+
+            &.active {
+                background-color: rgba(0, 199, 19, 0.4);
+            }
+        }
+    }
+}
+.targetNav[data-type~="blueSty"] {
+    ul {
+        li {
+            border-left: 1px solid #3b526c;
+            border-top: 1px solid #3b526c;
+            border-bottom: 1px solid #3b526c;
+            &.li-right {
+                border-right: 1px solid #3b526c;
+            }
+
+            &.active {
+                background-color: rgba(0, 86, 199, 0.4);
+            }
+        }
+    }   
+}
+.dialog-body{
+    .footerButton{
+        margin-top: 20px;
+    }
+}
+.form-body{
+    .el-row{
+        margin-bottom: 10px;
+    }
+}
+</style>

+ 219 - 0
src/views/IntegratedAlarm/safe/affectedManagement/windDialog/zbJson.json

@@ -0,0 +1,219 @@
+{
+    "wind": [
+        {
+            "code": "qt",
+            "name": "IGBT温度"
+        },
+        {
+            "code": "fdj",
+            "name": "U1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "U2绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "V1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "V2绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "W1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "W2绕组温度"
+        },
+        {
+            "code": "jc",
+            "name": "X方向振动幅度值"
+        },
+        {
+            "code": "jc",
+            "name": "Y方向振动幅度值"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机1温度"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机2温度"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机3温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱入口油温"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱轴1温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱轴2温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮油油温"
+        },
+        {
+            "code": "fdj",
+            "name": "发电机转速"
+        },
+        {
+            "code": "fdj",
+            "name": "非驱动轴承温度/轴承B温度"
+        },
+        {
+            "code": "qt",
+            "name": "风机60秒风向"
+        },
+        {
+            "code": "qt",
+            "name": "风速"
+        },
+        {
+            "code": "qt",
+            "name": "风向"
+        },
+        {
+            "code": "qt",
+            "name": "功率因数"
+        },
+        {
+            "code": "jc",
+            "name": "环境温度"
+        },
+        {
+            "code": "jc",
+            "name": "机舱温度"
+        },
+        {
+            "code": "bj",
+            "name": "桨距角设定值"
+        },
+        {
+            "code": "jc",
+            "name": "控制柜温度/塔底柜温度"
+        },
+        {
+            "code": "qt",
+            "name": "轮毂温度"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧A相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧B相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧C相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "叶轮转速"
+        },
+        {
+            "code": "fdj",
+            "name": "有功功率"
+        },
+        {
+            "code": "qt",
+            "name": "主轴叶轮侧温度"
+        },
+        {
+            "code": "qt",
+            "name": "总发电量"
+        },
+        {
+            "code": "qt",
+            "name": "无功功率"
+        },
+        {
+            "code": "yy",
+            "name": "液压系统油位"
+        },
+        {
+            "code": "yy",
+            "name": "液压系统油压"
+        },
+        {
+            "code": "ph",
+            "name": "机舱方向/对风角度"
+        },
+        {
+            "code": "ph",
+            "name": "偏航位置"
+        },
+        {
+            "code": "ph",
+            "name": "偏航功率"
+        },
+        {
+            "code": "ph",
+            "name": "偏航右极限位置"
+        }
+    ],
+    "power": [
+        "变压器油温",
+        "电抗器温度",
+        "电网AB线电压",
+        "电网A相电流",
+        "电网A相电压",
+        "电网BC线电压",
+        "电网B相电流",
+        "电网B相电压",
+        "电网CA线电压",
+        "电网C相电流",
+        "电网C相电压",
+        "电网频率",
+        "额定无功输出功率",
+        "负极对地电压",
+        "负极对地阻抗值",
+        "功率因数",
+        "功率因数(遥调)",
+        "机内温度",
+        "累计二氧化碳减排量",
+        "模块温度 1",
+        "模块温度 2",
+        "模块温度 3",
+        "模块温度 4",
+        "模块温度 5",
+        "模块温度 6",
+        "逆变器关机时间",
+        "逆变器交流电流",
+        "逆变器交流电压",
+        "逆变器开机时间",
+        "逆变器输入电流",
+        "逆变器输入电压",
+        "逆变器效率",
+        "逆变器运行状态",
+        "逆变器直流电流",
+        "逆变器直流电压",
+        "年发电量",
+        "日并网分钟",
+        "日发电量",
+        "视在功率",
+        "输入总功率",
+        "无功功率",
+        "无功功率(遥调)",
+        "有功功率",
+        "有功功率(遥调)",
+        "月发电量",
+        "正极对地阻抗值",
+        "总电压",
+        "总发电量",
+        "总运行时间"
+    ]
+}

+ 81 - 0
src/views/IntegratedAlarm/safe/boostlegWarning/dataJson.json

@@ -0,0 +1,81 @@
+{
+    "data": [
+        {
+            "stationid": "SXJ_KGDL_XWT_FDC_STA",
+            "stationname": "太旗卧牛山",
+            "rank": 3,
+            "description": "变频器故障27",
+            "endtsName": "2025-05-08",
+            "faultCause": "13.7s>信号<=14.2s",
+            "nemCode": "状态码1463",
+            "resolvent": "输入端142功率上升延迟300s",
+            "confirmed": false
+        },
+        {
+            "stationid": "SXJ_KGDL_XWT_FDC_STA",
+            "stationname": "右玉高家堡",
+            "rank": 3,
+            "description": "变频器故障27",
+            "endtsName": "2025-05-08",
+            "faultCause": "13.7s>信号<=14.2s",
+            "nemCode": "状态码1463",
+            "resolvent": "输入端142功率上升延迟300s",
+            "confirmed": false
+        },
+        {
+            "stationid": "SXJ_KGDL_XWT_FDC_STA",
+            "stationname": "平鲁虎头山",
+            "rank": 3,
+            "description": "变频器故障27",
+            "endtsName": "2025-05-08",
+            "faultCause": "13.7s>信号<=14.2s",
+            "nemCode": "状态码1463",
+            "resolvent": "输入端142功率上升延迟300s",
+            "confirmed": false
+        },
+        {
+            "stationid": "SXJ_KGDL_XWT_FDC_STA",
+            "stationname": "广灵劲风",
+            "rank": 3,
+            "description": "变频器故障27",
+            "endtsName": "2025-05-08",
+            "faultCause": "13.7s>信号<=14.2s",
+            "nemCode": "状态码1463",
+            "resolvent": "输入端142功率上升延迟300s",
+            "confirmed": false
+        },
+        {
+            "stationid": "SXJ_KGDL_XWT_FDC_STA",
+            "stationname": "浑源峰岳",
+            "rank": 3,
+            "description": "变频器故障27",
+            "endtsName": "2025-05-08",
+            "faultCause": "13.7s>信号<=14.2s",
+            "nemCode": "状态码1463",
+            "resolvent": "输入端142功率上升延迟300s",
+            "confirmed": false
+        },
+        {
+            "stationid": "SXJ_KGDL_XWT_FDC_STA",
+            "stationname": "方山宝塔山",
+            "rank": 3,
+            "description": "变频器故障27",
+            "endtsName": "2025-05-08",
+            "faultCause": "13.7s>信号<=14.2s",
+            "nemCode": "状态码1463",
+            "resolvent": "输入端142功率上升延迟300s",
+            "confirmed": false
+        },
+        {
+            "stationid": "SXJ_KGDL_XWT_FDC_STA",
+            "stationname": "阳高采凉山",
+            "rank": 3,
+            "description": "变频器故障27",
+            "endtsName": "2025-05-08",
+            "faultCause": "13.7s>信号<=14.2s",
+            "nemCode": "状态码1463",
+            "resolvent": "输入端142功率上升延迟300s",
+            "confirmed": false
+        }
+    ]
+}

+ 733 - 0
src/views/IntegratedAlarm/safe/boostlegWarning/index.vue

@@ -0,0 +1,733 @@
+<template>
+  <div class="history-warning">
+    <div class="form-wrapper">
+      <div class="search-wrapper">
+        <div class="search-item">
+          <span class="label">类型:</span>
+          <div class="search-content">
+            <el-select
+              v-model="state.typeVal"
+              clearable
+              size="mini"
+              placeholder="全部"
+              popper-class="select"
+              @change="
+                () => {
+                  getStationList();
+                  typechange();
+                }
+              "
+            >
+              <el-option
+                v-for="item in state.typeList"
+                :key="item.value"
+                :value="item.value"
+                :label="item.label"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">{{
+            state.isshowwindturbineName ? "场站:" : "升压站:"
+          }}</span>
+          <div class="search-content">
+            <el-select
+              v-model="state.stationId"
+              clearable
+              size="mini"
+              placeholder="全部"
+              popper-class="select"
+              @change="getWindturbineList"
+            >
+              <el-option
+                v-for="item in stationList"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              ></el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item" v-if="state.isshowwindturbineName">
+          <span class="label">机组:</span>
+          <div class="search-content">
+            <el-select
+              v-model="state.deviceId"
+              clearable
+              size="mini"
+              placeholder="全部"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in state.windturbineList"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item" v-if="state.isshowwindturbineName">
+          <span class="label">报警类型:</span>
+          <div class="search-content">
+            <el-select
+              v-model="state.modelId"
+              clearable
+              size="mini"
+              placeholder="全部"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in modelList"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item" v-if="state.isshowwindturbineName">
+          <span class="label">报警类别:</span>
+          <div class="search-content">
+            <el-select
+              v-model="state.components"
+              clearable
+              size="mini"
+              placeholder="全部"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in componentList"
+                :key="item.id"
+                :value="item.nemCode"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">日期:</span>
+          <div class="search-content">
+            <el-date-picker
+              v-model="state.dateTime"
+              size="mini"
+              type="datetimerange"
+              range-separator="-"
+              format="YYYY-MM-DD HH:mm:ss"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              start-placeholder="开始"
+              end-placeholder="结束"
+              popper-class="date-select"
+            >
+            </el-date-picker>
+          </div>
+        </div>
+      </div>
+      <div class="btns">
+        <el-button class="buttons" round size="mini" @click="getAlarmHistoryt"
+          >查询</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          @click="export2Excel"
+          round
+          :disabled="state.tableData?.length == 0 ? true : false"
+        >
+          导出</el-button
+        >
+      </div>
+    </div>
+
+    <div class="table-wrapper">
+      <div class="leftContent" :data-type="$store.state.moreSty">
+        <span>{{ pageTitle }}</span>
+      </div>
+      <el-table
+        size="mini"
+        :data="state.tableData"
+        height="calc(100% - 35px - 55px)"
+        style="width: 100%"
+        stripe
+      >
+        <template v-if="state.isshowwindturbineName">
+          <el-table-column
+            v-for="item in state.tableHeader"
+            :label="item.title"
+            :prop="item.code"
+            :key="item.code"
+            :width="item.width || ''"
+            show-overflow-tooltip
+            align="center"
+          >
+            <template #default="scope">
+              <p :style="item.style && item.style(scope.row)">
+                <span v-if="item.code == 'rank'">
+                  {{ tableFilter(scope.row.rank) }}
+                </span>
+                <span v-else-if="item.code == 'alarmtype'">
+                  {{ tableFilter(scope.row.alarmtype) }}
+                </span>
+                <span v-else-if="item.code == 'ts'">
+                  {{ formatTime(scope.row.ts) }}
+                </span>
+                <span
+                  :style="`color:${
+                    scope.row.confirmed ? '#05bb4c' : 'var(--el-color-danger)'
+                  }`"
+                  v-else-if="item.code == 'confirmed'"
+                >
+                  {{ scope.row.confirmed ? "是" : "否" }}
+                </span>
+                <span v-else-if="item.code == 'components'">
+                  <!-- {{ getComponentsName(scope.row.components) }} -->
+                  {{ scope.row.components }}
+                </span>
+                <span v-else>
+                  {{
+                    scope.row[item.code] != "NULL" ? scope.row[item.code] : "--"
+                  }}
+                </span>
+              </p>
+            </template>
+          </el-table-column>
+        </template>
+        <template v-else>
+            <el-table-column
+        v-for="item in state.tableHeader1"
+        :label="item.title"
+        :prop="item.code"
+        :key="item.code"
+        :width="item.width || ''"
+        show-overflow-tooltip
+        header-align="center"
+        >
+        <template #default="scope">
+            <p :style="item.style && item.style(scope.row)">
+            <span v-if="item.code == 'rank'">
+                {{ tableFilter(scope.row.rank) }}
+            </span>
+            <span v-else-if="item.code == 'alarmtype'">
+                {{ tableFilter(scope.row.alarmtype) }}
+            </span>
+            <span v-else-if="item.code == 'ts'">
+                {{ formatTime(scope.row.ts) }}
+            </span>
+            <span
+                :style="`color:${
+                scope.row.confirmed ? '#05bb4c' : 'var(--el-color-danger)'
+                }`"
+                v-else-if="item.code == 'confirmed'"
+            >
+                {{ scope.row.confirmed ? "是" : "否" }}
+            </span>
+            <span v-else>
+                {{
+                scope.row[item.code] != "NULL" ? scope.row[item.code] : "--"
+                }}
+            </span>
+            </p>
+        </template>
+        </el-table-column>
+        </template>
+      </el-table>
+      <div class="pagination-wrapper">
+        <el-pagination
+          layout="total, sizes, prev, pager, next"
+          :current-page="query.page"
+          :page-size="query.limit"
+          :page-sizes="[21, 100, 500, 1000]"
+          :total="query.pageTotal"
+          @size-change="
+            (value) => {
+              query.page = 1;
+              query.limit = value;
+              getAlarmHistoryt();
+            }
+          "
+          @current-change="handlePageChange"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup name="boostlegWarning">
+import { watch, reactive, nextTick, computed, onMounted, ref } from "vue";
+import { useRouter, useRoute } from "vue-router";
+import BASE from "@/tools/basicTool.js";
+import dayjs from "dayjs";
+import {
+  alarm_history,
+  new_alarm_history,
+  fetchWindturbineList,
+  fetchModel,
+  fetchRelatePartAndAlarmType,
+  getWpList,
+  confirmAlart,
+} from "@/api/zhbj/index.js";
+import { ElMessageBox, ElMessage } from "element-plus";
+import { outExportExcel } from "@/tools/excel/exportExcel.js"; //引入文件
+import { useStore } from "vuex";
+import dataJson from "./dataJson.json"
+const pageTitle = "升压站报警";
+const store = useStore();
+
+const route = useRoute();
+
+onMounted(() => {
+    state.dateTime = [
+        dayjs().startOf("day").format("YYYY-MM-DD HH:mm:ss"),
+        dayjs().format("YYYY-MM-DD HH:mm:ss"),
+    ];
+    state.stationName = route.query.deviceId;
+    state.deviceId = "";
+    state.alarmId = route.query.alarmId || "";
+    state.typeVal = route.query.deviceType || "booststation";
+    state.isshowwindturbineName = state.typeVal == "booststation" ? false : true;
+  //   if (route.query.ts) {
+  //     state.dateTime = [
+  //       `${dayjs(Number(route.query.ts)).format("YYYY-MM-DD")} 00:00:00`,
+  //       dayjs(Number(route.query.ts)).format("YYYY-MM-DD HH:mm:ss"),
+  //     ];
+  //   }
+  //   getStationList(); //场站
+    getAlarmHistoryt()
+    getequipmentmodel_list(); //机型
+    getfetchRelatePart(); //部件
+});
+// 机型
+const getequipmentmodel_list = async () => {
+  const { data } = await fetchModel();
+  state.modelListAll = data;
+};
+//所属部件
+const getfetchRelatePart = async () => {
+  const { data } = await fetchRelatePartAndAlarmType();
+  state.fetchListAll = data;
+};
+
+const confirmItem = (alarmItem) => {
+  ElMessageBox("您确定要执行此操作吗?", "提示", {
+    confirmButtonText: "确定",
+    cancelButtonText: "取消",
+    type: "warning",
+  })
+    .then(() => {
+      confirmAlart(alarmItem)
+        .then((res) => {
+          if (res.code === 200) {
+            ElMessage.success("确认成功");
+            store.commit("removeWarning", alarmItem);
+            getAlarmHistoryt();
+          }
+        })
+        .catch(() => {
+          ElMessage.error("确认失败,请重试");
+        });
+    })
+    .catch(() => {});
+};
+
+const getColumnStyle = (columnItem) => {
+  let style = "color:";
+  if (columnItem.endts) {
+    style += " #05bb4c";
+  } else {
+    style += "var(--el-color-danger)";
+  }
+  return style;
+};
+
+const state = reactive({
+  typeList: [
+    {
+      label: "升压站",
+      value: "booststation",
+    },
+    // {
+    //   label: "自定义",
+    //   value: "custom",
+    // },
+    // {
+    //   label: "风机",
+    //   value: "windturbine",
+    // },
+    // {
+    //   label: "光伏",
+    //   value: "inverter",
+    // },
+  ],
+  typeVal: "windturbine",
+  stationId: "",
+  stationName: "",
+  alarmId: "",
+  windturbineList: [],
+  deviceId: "",
+  modelListAll: {},
+  fetchListAll: {},
+  modelId: "", //型号
+  components: "", //部件
+  description: "", //描述
+  dateTime: [],
+  startDate: null,
+  endDate: null,
+  tableData: [],
+  isshowwindturbineName: false,
+  ts: "",
+  tableHeader: [
+    { title: "场站名称", code: "stationname", width: "150" },
+    { title: "工程名称", code: "rank", width: "150" },
+    { title: "线路名称", code: "rank", width: "150" },
+    { title: "风机名称", code: "rank", width: "150" },
+    { title: "报警描述", code: "description" },
+    { title: "报警时间", code: "endtsName", width: "250" },
+    { title: "分类1", code: "faultCause", width: "150" },
+    { title: "分类2", code: "nemCode", width: "150" },
+    { title: "报警级别", code: "resolvent", width: "150" },
+    { title: "是否报警", code: "confirmed", width: "100" },
+  ],
+  tableHeader1: [
+    { title: "场站名称", code: "stationname" },
+    { title: "报警描述", code: "description" },
+    { title: "报警时间", code: "endtsName" },
+    { title: "处理方式", code: "resolvent" },
+  ],
+});
+// 场站列表/升压站列表
+const stationList = ref([]);
+//获取场站列表
+const getStationList = async () => {
+  const { data } = await getWpList(state.typeVal);
+  stationList.value = data;
+  if (state.deviceId && state.typeVal != "booststation") {
+    let station = data.find((i) => {
+      let st = i.id.split("_")[2];
+      let dt = state.deviceId.split("_")[2];
+      if (st == dt) {
+        return i;
+      }
+    });
+    state.stationId = station?.id;
+  } else if (state.typeVal == "booststation") {
+    let station = data.find((i) => i.name == state.stationName);
+    state.stationId = station ? station?.id : data[0]?.id;
+  } else {
+    state.stationId = data[0]?.id;
+  }
+
+  state.stationId = route.query.stationId || state.stationId;
+  route.query.stationId ? (state.modelId = modelList.value?.[0]?.id || "") : "";
+  if (stationList.value.length) {
+    getWindturbineList();
+  }
+};
+
+// watch(
+//   () => stationList,
+//   (val, old) => {
+//     val?.value?.length &&
+//       nextTick(async () => {
+//         await getWindturbineList();
+//       });
+//   },
+//   {
+//     deep: true,
+//     immediate: true,
+//   }
+// );
+watch(
+  () => route,
+  (val, old) => {
+    if (route.query.deviceType != "booststation") {
+      state.deviceId = route.query.deviceId || "";
+      state.alarmId = route.query.alarmId || "";
+      state.typeVal = route.query.deviceType || "windturbine";
+      state.modelId = route.query.modelId || "";
+    } else {
+      state.stationName = route.query.deviceId;
+      state.deviceId = "";
+      state.alarmId = route.query.alarmId || "";
+      state.typeVal = route.query.deviceType || "booststation";
+    }
+    state.isshowwindturbineName =
+      state.typeVal == "booststation" ? false : true;
+    getStationList();
+  },
+  {
+    deep: true,
+    immediate: true,
+  }
+);
+//型号列表
+const modelList = computed(() => {
+  if (state.typeVal != "booststation") {
+    if (state.stationId == "") {
+      return [];
+    } else {
+      return state.modelListAll[state.stationId];
+    }
+  } else {
+    return [];
+  }
+});
+//部件列表
+const componentList = computed(() => {
+  if (state.typeVal != "booststation") {
+    if (state.stationId == "") {
+      return [];
+    } else {
+      if (state.stationId.includes("FDC")) {
+        return state.fetchListAll?.fjbj;
+      } else {
+        return state.fetchListAll?.gfbj;
+      }
+    }
+  } else {
+    return [];
+  }
+});
+//get 风机
+const getWindturbineList = async () => {
+  state.deviceId = "";
+  const { data } = await fetchWindturbineList(state.stationId);
+  state.windturbineList = data;
+  //   state.modelId = modelList.value?.[0]?.id || "";
+  await getAlarmHistoryt();
+};
+const query = reactive({
+  page: 1,
+  limit: 21,
+  pageTotal: null,
+});
+
+// 获取历史记录表
+const getAlarmHistoryt = async () => {
+//   BASE.showLoading();
+//   let params = {
+//     pageNum: query.page,
+//     pageSize: query.limit,
+//     alarmId: state.alarmId,
+//     alarmType: state.typeVal,
+//     stationid: state.stationId,
+//     deviceid: state.typeVal == "booststation" ? "" : state.deviceId,
+//     modelId: state.typeVal == "booststation" ? "" : state.modelId,
+//     components: state.components,
+//     description: state.description,
+//     begin: state.dateTime[0],
+//     end: state.dateTime[1],
+//   };
+//   const { data } = await alarm_history(params);
+//   BASE.closeLoading();
+//   query.pageTotal = data?.total;
+//   data?.ls?.forEach((ele) => {
+//     ele.isCloseName = ele.endts ? "已解除" : "未解除";
+//     ele.alarmTypeName =
+//       ele.alarmType === "booststation"
+//         ? "升压站"
+//         : ele.alarmType === "windturbine"
+//         ? "风机"
+//         : ele.alarmType === "inverter"
+//         ? "光伏"
+//         : "";
+//     ele.endtsName = ele.endts > 0 ? formatTime(ele.endts) : "--";
+//   });
+//   state.tableData = data?.ls;
+state.tableData = dataJson.data
+}
+//报警类型变化
+const typechange = () => {
+  state.alarmId = "";
+  state.deviceId = "";
+  state.isshowwindturbineName = state.typeVal == "booststation" ? false : true;
+};
+
+// 批量导出
+const export2Excel = async () => {
+  let params = {
+    pageNum: query.page,
+    pageSize: query.pageTotal,
+    alarmType: state.typeVal,
+    stationid: state.stationId,
+    deviceid: state.typeVal == "booststation" ? "" : state.deviceId,
+    modelId: state.modelId,
+    components: state.components,
+    description: state.description,
+    begin: state.dateTime[0],
+    end: state.dateTime[1],
+  };
+
+  if (state.dateTime[1] - state.dateTime[0] > 6 * 24 * 60 * 60 * 1000) {
+    this.$message({
+      message: "导出时间范围不能大于7天",
+      type: "warning",
+    });
+  } else {
+    let tableHeader = [];
+    let tableKey = [];
+    const { data } = await alarm_history(params);
+    if (state.isshowwindturbineName) {
+      tableHeader = state.tableHeader.map((item) => item.title);
+      tableKey = state.tableHeader.map((item) => item.code);
+    } else {
+      tableHeader = state.tableHeader1.map((item) => item.title);
+      tableKey = state.tableHeader1.map((item) => item.code);
+    }
+    const stationName = stationList.value.find((ele) => {
+      return ele.id === state.stationId;
+    }).name;
+    const fileName = `${stationName} ${state.dateTime[0]} ~ ${state.dateTime[1]} 数据表`;
+    outExportExcel(
+      tableHeader,
+      tableKey,
+      data.ls.map((item) => {
+        return {
+          ...item,
+          ts: formatTime(item.ts),
+          rank: tableFilter(item.rank),
+          alarmTypeName:
+            item.alarmType === "booststation"
+              ? "升压站"
+              : item.alarmType === "windturbine"
+              ? "风机"
+              : item.alarmType === "inverter"
+              ? "光伏"
+              : "",
+          endtsName: item.endts > 0 ? formatTime(item.endts) : "--",
+          isCloseName: item.endts ? "已解除" : "未解除",
+          confirmed: item.confirmed ? "是" : "否",
+        };
+      }),
+      fileName
+    );
+    ElMessage.success(`导出成功!`);
+  }
+};
+// 分页导航
+const handlePageChange = (val) => {
+  query.page = val;
+  getAlarmHistoryt();
+};
+// 时间格式化
+const formatTime = (val) => {
+  return dayjs(val).format("YYYY-MM-DD HH:mm:ss");
+};
+// 格式化
+const obj = {
+  1: "低级",
+  2: "低中级",
+  3: "中级",
+  4: "中高级",
+  5: "高级",
+  booststation: "升压站",
+  inverter: "光伏",
+  windturbine: "风机",
+};
+const messageTypeObj = {
+  1: "触发",
+  3: "解除",
+};
+const tableFilter = (val) => {
+  return obj[val];
+};
+const messageTypeFilter = (val) => {
+  return messageTypeObj[val];
+};
+</script>
+
+<style scoped lang="less">
+p {
+  padding: 0;
+  margin: 0;
+}
+.history-warning {
+  height: 100%;
+  width: 100%;
+  padding: 0 20px;
+  padding-bottom: 10px;
+  .form-wrapper ::v-deep {
+    display: flex;
+    flex-direction: column;
+    padding-top: 10px;
+    position: relative;
+    .search-wrapper {
+      display: flex;
+      align-items: center;
+      font-size: 14px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-bottom: 10px;
+      .search-item {
+        display: flex;
+        margin-right: 10px;
+        max-width: 450px;
+        align-items: center;
+        .label {
+          margin-right: 10px;
+          text-align: right;
+          white-space: nowrap;
+          // width: 60px;
+        }
+        .search-content {
+          flex: 1;
+        }
+      }
+    }
+
+    .btns {
+      display: flex;
+      justify-content: flex-end;
+      margin-right: 10px;
+      position: absolute;
+      right: 0;
+      top: 53px;
+    }
+
+    .buttons {
+      background-color: rgba(5, 187, 76, 0.2);
+      border: 1px solid #3b6c53;
+      color: #b3b3b3;
+      font-size: 14px;
+
+      &:hover {
+        background-color: rgba(5, 187, 76, 0.5);
+        color: #ffffff;
+      }
+    }
+  }
+  .table-wrapper {
+    height: calc(100% - 43px);
+    width: 100%;
+    .leftContent[data-type~="greenSty"] {
+            background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+        }
+        .leftContent[data-type~="blueSty"] {
+            background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+        }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      display: flex;
+      align-items: center;
+
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+    .pagination-wrapper :deep {
+      text-align: right;
+      margin-top: 10px;
+    }
+  }
+}
+</style>

+ 267 - 0
src/views/IntegratedAlarm/safe/faultManagement/dataJson.json

@@ -0,0 +1,267 @@
+{
+    "total": 503,
+    "pagecount": 26,
+    "pageindex": 1,
+    "rows": [
+      {
+        "id": "d8dcc1af-5365-48c3-a09d-2681bafce2b8",
+        "startTime": "2025-05-12 14:06:53",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 14:06:53",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "d9a1d44b-c989-4c6d-a7ef-b5a255b627db",
+        "startTime": "2025-05-12 14:05:51",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 14:05:51",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "e7216376-4baf-452c-b250-487f5575ff3d",
+        "startTime": "2025-05-12 13:58:12",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:58:12",
+        "wpName": "平鲁虎头山  ",
+        "windPowerStationId": "PL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "6be13c3b-0cc1-4dd8-95d9-a80de130094f",
+        "startTime": "2025-05-12 13:32:10",
+        "description": null,
+        "wts": "1A09, 1B04, 1B09, 1A03, 1C03, 1B11, 1C08, 1B06, 1B05, 1A05, 1C11, 1C06, 1B07, 1A11, 1A01, 1A08, 1B08, 1C09, 1B10, 1C05, 1A07, 1A02, 1A04, 1B01, 1C07, 1C04, 1B03, 1A10, 1C02, 1C01, 1B02, 1A06, 1C10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:32:10",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "ad3894be-3b5e-49c5-8c99-d8081a101da4",
+        "startTime": "2025-05-12 13:28:03",
+        "description": null,
+        "wts": "1A03, 1C11, 1A11, 1C01, 1C10, 1C05, 1B09, 1B02, 1C02, 1B11, 1A05, 1C09, 1B01, 1B04, 1B05, 1B03, 1A01, 1A02, 1C08, 1A06, 1A10, 1C03, 1B08, 1C06, 1A04, 1A09, 1C07, 1A08, 1B06, 1C04, 1A07, 1B07, 1B10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:28:03",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "9c7dc983-8fed-409d-a7be-46d319ad6ffd",
+        "startTime": "2025-05-12 13:25:29",
+        "description": null,
+        "wts": "1B08, 1B06, 1A03, 1C03, 1C07, 1B05, 1C08, 1C04, 1B10, 1B09, 2D13, 1B11, 1A10, 1C06, 1A01, 1A02, 1C05, 1C02, 1C01, 1B02, 1C11, 1B07, 1B01, 1B03, 1C09, 1B04, 1A05",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:25:29",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "f3063245-82ba-4d3b-bc6b-097436c00799",
+        "startTime": "2025-05-12 13:20:52",
+        "description": null,
+        "wts": "1B10, 1C03, 1B03, 1C05, 1C07, 1A02, 1A04, 1C02, 1B07, 1A07, 1B05, 1C01, 1B06, 1B11, 1A03, 1C06, 1B02, 1C04, 1B04, 1A01, 1C11, 1A08, 1B01, 1B08, 1A10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:20:52",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "df0e25c9-f293-4439-8ada-a0e796bf6ede",
+        "startTime": "2025-05-12 13:14:13",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:14:13",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "3846702a-ae68-4492-a35f-2d5914d79362",
+        "startTime": null,
+        "description": null,
+        "wts": "A10, A09, A11, B18, B23, B24, B24, A01, A08, A08, A05, A05, A01, B24, A05, A10, B14, A02, B16, A05, A12, B22, B18, A08, B13, A11, A09, B21, B19, B15, B20, A06, B24, A07, A04, B17, A01, A03, A06, B15, A03, B21, B18, B14, B24, B23, A05, B17, B22, A01, B16, B19, A02, A04, B20",
+        "lossPower": 3055184.55,
+        "stopHours": 2.1,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 12:18:13",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "f21919df-3dab-43d1-b843-6b4cec8ef387",
+        "startTime": "2025-05-12 12:17:42",
+        "description": null,
+        "wts": "B23, B17, B22, A06, A04, A04, A12, B13, A01, A02, A04, A05, A03, A04, A08, A10, A07, A12, A09, A11, B14, B15, B18",
+        "lossPower": 16943.73,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 12:17:42",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "38b6f02e-7ee9-46d7-bae2-7a1753ac0c8f",
+        "startTime": "2025-05-12 11:53:57",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 11:53:57",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "54f7180a-86ae-4f14-a8b5-4fe728f2c5b5",
+        "startTime": "2025-05-11 16:44:46",
+        "description": null,
+        "wts": "1A09, 1B19",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:44:46",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "3390cc14-5f99-44e2-9baf-49fdb6466fe1",
+        "startTime": "2025-05-11 16:43:46",
+        "description": null,
+        "wts": "1A09, 1B19",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:43:46",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "4cbecc2c-392a-42e9-836d-197d585d7055",
+        "startTime": "2025-05-11 16:39:44",
+        "description": null,
+        "wts": "B22, B17, A06",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:39:44",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "bbecf43d-d8bf-4e87-8155-34954ca9e1d6",
+        "startTime": "2025-05-11 16:39:44",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:39:44",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "d9321d4c-1077-436a-b59e-40ec941433e9",
+        "startTime": "2025-05-11 16:37:43",
+        "description": null,
+        "wts": "B21, B17, B22, A06, A08, A09",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:37:43",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "774a7857-d0d8-444b-84b9-cc08e5e7d436",
+        "startTime": "2025-05-11 16:36:43",
+        "description": null,
+        "wts": "B17, B22, A08, A06, A12, A09",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:36:43",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "8a44536c-9c2e-4ac3-aeca-0ee17652f7d2",
+        "startTime": "2025-05-11 16:32:41",
+        "description": null,
+        "wts": "A06, A07, A11, B22, A12, A09, B17, A08, B21, A04",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:32:41",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "863d9e38-1936-4d13-acdf-8b995ce55cde",
+        "startTime": "2025-05-11 16:31:40",
+        "description": null,
+        "wts": "A04, A09, B21, A12, B17, A07, A11, A08, A06, B22, B15, B13, B14",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:31:40",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "da4ea65b-7207-42b1-8198-d681615a60b1",
+        "startTime": "2025-05-11 16:29:38",
+        "description": null,
+        "wts": "A06, B14, A08, A11, B21, B15, B17, B16, A07, A04, A09, B13, A12, B22",
+        "lossPower": 539.47,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:29:38",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      }
+    ]
+  }

+ 421 - 0
src/views/IntegratedAlarm/safe/faultManagement/index.vue

@@ -0,0 +1,421 @@
+<template>
+  <div class="faultManagementBox">
+    <div class="form-wrapper">
+      <div class="search-wrapper">
+        <div class="search-item">
+          <span class="label">风场:</span>
+          <div class="search-content">
+            <el-select
+              v-model="wpId"
+              size="mini"
+              placeholder="全部"
+              popper-class="select">
+              <el-option
+                v-for="item in wpArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.aname"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">机组:</span>
+          <div class="search-content">
+            <el-select
+              v-model="wtId"
+              size="mini"
+              placeholder="全部"
+              popper-class="select">
+              <el-option
+                v-for="item in wtArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.aname"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">日期区间:</span>
+          <div class="search-content">
+            <el-date-picker
+              v-model="dateRange"
+              size="mini"
+              type="datetimerange"
+              range-separator="-"
+              format="YYYY-MM-DD HH:mm:ss"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              start-placeholder="开始时间"
+              end-placeholder="结束时间"
+              :clearable="false"
+              @change="getTableData"
+            >
+            </el-date-picker>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">类型:</span>
+          <div class="search-content">
+            <el-select
+              v-model="typeId"
+              clearable
+              size="mini"
+              placeholder="全部"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in typeList"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">内报/外报:</span>
+          <div class="search-content">
+            <el-select
+              v-model="reportcom"
+              clearable
+              size="mini"
+              placeholder="全部"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in reportcomList"
+                :key="item.id"
+                :value="item.nemCode"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+      </div>
+      <div class="btns">
+        <el-button class="buttons" round size="mini" @click="getTableData"
+          >查询</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+          @click="addfaultManagement"
+        >
+          新增</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+        >
+          导入</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+        >
+          导出</el-button
+        >
+      </div>
+    </div>
+    <div class="table-wrapper">
+      <div class="leftContent" :data-type="$store.state.moreSty">
+        <span>{{ pageTitle }}</span>
+      </div>
+      <el-table
+        size="mini"
+        :data="tableData"
+        height="calc(100% - 43px - 40px)"
+        style="width: 100%"
+        stripe
+      >
+        <el-table-column
+          :label="item.label"
+          :prop="item.prop"
+          show-overflow-tooltip
+          header-align="center"
+          align="center"
+          v-for="(item, index) in tHeader"
+          :key="index"
+        >
+          <template #default="scope">
+            <span>
+              {{
+                scope.row[item.prop] != "NULL" && scope.row[item.prop] != null
+                  ? scope.row[item.prop]
+                  : "--"
+              }}
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column
+            label="操作"
+            width="100"
+            header-align="center"
+            align="center"
+          >
+            <template #default="scope">
+              <el-button
+                style="color: #05bb4c"
+                type="text"
+                >确认本条</el-button
+              >
+            </template>
+        </el-table-column>
+      </el-table>
+      <div class="pagination-wrapper">
+        <el-pagination
+          layout="total, sizes, prev, pager, next"
+          :page-sizes="[22, 100, 500, 1000]"
+          @size-change="
+            (value) => {
+              pageNum = 1;
+              pageSize = value;
+              getTableData();
+            }
+          "
+          :current-page="pageNum"
+          :page-size="pageSize"
+          :total="total"
+          @current-change="currentChange"
+        ></el-pagination>
+      </div>
+    </div>
+    <windDialog
+      ref="windDialog"
+    />
+  </div>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import windDialog from "./windDialog/index.vue";
+import {
+  getWpList,
+  fetchWindturbineList,
+  getStopQueryTableData,
+} from "@/api/zhbj/index.js";
+import dataJson from "./dataJson.json"
+
+export default {
+  name: "faultManagement",
+  components: {
+    windDialog
+  },
+  data() {
+    return {
+      pageTitle: "故障管理",
+      wpId: "",
+      wtId: "",
+      wpArray: [],
+      wtArray: [],
+      dateRange: [],
+      description: "",
+      typeId: "",
+      typeList: [],
+      reportcom: "",
+      reportcomList: [],
+      pageNum: 1,
+      pageSize: 22,
+      total: 0,
+      tableData: [],
+      tHeader: [
+        {
+          label: "期次",
+          prop: "stopTime",
+        },
+        {
+          label: "场站名称",
+          prop: "stopTime",
+        },
+        {
+          label: "风机名称",
+          prop: "stopTime",
+        },
+        {
+          label: "开始时间",
+          prop: "startTime",
+        },
+        {
+          label: "结束时间",
+          prop: "stopHours",
+        },
+        {
+          label: "故障分类",
+          prop: "stopTypeId",
+        },
+        {
+          label: "故障现象",
+          prop: "stopTypeId",
+        },
+        {
+          label: "消缺工艺",
+          prop: "stopTypeId",
+        },
+        {
+          label: "处理结果",
+          prop: "description",
+        },
+        {
+          label: "损失电量(kWh)",
+          prop: "lossPower",
+        },
+        {
+          label: "故障时长",
+          prop: "lossPower",
+        },
+        {
+          label: "时长影响容量",
+          prop: "lossPower",
+        },
+        {
+          label: "内报/外报",
+          prop: "stopTypeId",
+        }
+      ],
+    };
+  },
+
+  created() {
+    this.dateRange = [
+      dayjs().subtract(7, "day").format("YYYY-MM-DD HH:mm:ss"),
+      dayjs().format("YYYY-MM-DD HH:mm:ss"),
+    ];
+    this.getWpList();
+
+    this.getTableData();
+  },
+
+  methods: {
+    async getWpList() {
+      const { data } = await getWpList("windturbine");
+      this.wpId = data?.[0]?.id || "";
+      this.wpArray = data || [];
+    },
+
+    async getTableData() {
+    //   this.BASE.showLoading();
+    //   const { data } = await getStopQueryTableData({
+    //     wpId: this.wpId,
+    //     wtId: this.wtId,
+    //     type: this.type,
+    //     description: this.description,
+    //     begin: this.dateRange?.[0] || "",
+    //     end: this.dateRange?.[1] || "",
+    //     pageNum: this.pageNum,
+    //     pageSize: this.pageSize,
+    //   });
+    //   this.BASE.closeLoading();
+    //   data?.records?.forEach((ele) => {
+    //     ele.stopTimeName = dayjs(ele.stopTime).format("YYYY-MM-DD HH:mm:ss");
+    //     ele.startTimeName = ele.startTime
+    //       ? dayjs(ele.startTime).format("YYYY-MM-DD HH:mm:ss")
+    //       : "--";
+    //     ele.typeName = ele.stopTypeId === "gz" ? "故障" : "检修";
+    //   });
+
+    //   this.tableData = data?.records || [];
+    //   this.total = data.total || 0;
+    this.tableData = dataJson.rows
+    this.total = dataJson.total
+
+    },
+
+    currentChange(pageNum) {
+      this.pageNum = pageNum;
+      this.getTableData();
+    },
+    //添加限电
+    addfaultManagement() {
+        this.$refs.windDialog.openDialog();
+    },
+},
+};
+</script>
+
+<style lang="less" scoped>
+.faultManagementBox {
+  height: 100%;
+  width: 100%;
+  padding: 0 20px;
+  padding-bottom: 15px;
+  .form-wrapper ::v-deep {
+    display: flex;
+    // flex-direction: column;
+    padding-top: 15px;
+    .search-wrapper {
+      display: flex;
+      align-items: center;
+      font-size: 14px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-bottom: 15px;
+      .search-item {
+        display: flex;
+        margin-right: 10px;
+        // max-width: 450px;
+        align-items: center;
+        .label {
+          margin-right: 10px;
+          text-align: right;
+          white-space: nowrap;
+          // width: 60px;
+        }
+        .search-content {
+          flex: 1;
+        }
+      }
+    }
+    .btns {
+      margin-left: 35px;
+    }
+    .buttons {
+      background-color: rgba(5, 187, 76, 0.2);
+      border: 1px solid #3b6c53;
+      color: #b3b3b3;
+      font-size: 14px;
+
+      &:hover {
+        background-color: rgba(5, 187, 76, 0.5);
+        color: #ffffff;
+      }
+    }
+  }
+  .table-wrapper {
+    height: calc(100% - 62px);
+    width: 100%;
+    .leftContent[data-type~="greenSty"] {
+            background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+        }
+        .leftContent[data-type~="blueSty"] {
+            background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+        }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      display: flex;
+      align-items: center;
+
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+    .pagination-wrapper :deep {
+      text-align: right;
+      margin-top: 10px;
+    }
+  }
+}
+</style>

+ 359 - 0
src/views/IntegratedAlarm/safe/faultManagement/windDialog/index.vue

@@ -0,0 +1,359 @@
+<template>
+  <el-dialog v-model="dialogVisible" width="70%" top="120px">
+    <template #title>
+      <div class="dialog-title">
+        <div class="title">
+          逆变器详情
+        </div>
+      </div>
+    </template>
+    <div class="form-body">
+        <el-form ref="form" :model="form" label-width="130px">
+            <el-row>
+            <el-col :span="12">
+              <el-form-item label="风场:">
+                <el-select v-model="form.wpName" size="mini" placeholder="风场">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="风机:">
+                <el-select v-model="form.wtId" size="mini" placeholder="风机">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="开始时间:">
+                <el-date-picker
+                    type="date"
+                    v-model="form.departuretime"
+                    value-format="YYYY-MM-DD"
+                    placeholder="请选择"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="结束时间:">
+                <el-date-picker
+                    type="date"
+                    v-model="form.arrivaltime"
+                    value-format="YYYY-MM-DD"
+                    placeholder="请选择"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="处理结果:">
+                <el-select v-model="form.wpName" size="mini" placeholder="处理结果">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="类型:">
+                <el-select v-model="form.wtId" size="mini" placeholder="类型">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="故障现象:">
+                <el-input
+                  type="textarea"
+                  resize="none"
+                  :rows="3"
+                  v-model="form.description"
+                  placeholder="故障现象"
+                  readonly
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="消缺工艺:">
+                <el-input
+                  type="textarea"
+                  resize="none"
+                  :rows="3"
+                  v-model="form.description"
+                  placeholder="消缺工艺"
+                  readonly
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="损失电量:">
+                <el-input
+                  v-model="form.tjss"
+                  placeholder="请输入损失电量"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="内报/外报:">
+                <el-select v-model="form.wpName" size="mini" placeholder="内报/外报">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+    </div>
+    <el-row class="footerButton">
+        <el-button round @click="cancel">取消</el-button>
+        <el-button round @click="tableRefresh">保存</el-button>
+    </el-row>
+  </el-dialog>
+</template>
+<script>
+import zbJson from './zbJson.json'
+export default {
+  name: "zbDialog", //指标弹窗
+  components: {},
+  props: {
+    uniformName: {
+      type: String,
+      required: true,
+    },
+    uniformCode: {
+      type: String,
+      required: true,
+    },
+  },
+  data() {
+    return {
+      dialogVisible: false,
+      text: "",
+      type: -1,
+      checkAll: false,
+      isIndeterminate: true,
+      checkList: [],
+      moreTargetData: [],
+      moreTargetDatawind: [],
+      allTargetDatawind: [],
+      allMoreTargetData: [],
+      headerIndex: -1,
+      partList: [
+        { label: "发电机", code: "fdj" },
+        { label: "齿轮箱", code: "clx" },
+        { label: "变桨", code: "bj" },
+        { label: "偏航", code: "ph" },
+        { label: "液压", code: "yy" },
+        { label: "机舱", code: "jc" },
+        { label: "其他", code: "qt" },
+      ],
+      showIt: true,
+      rankList: [],
+      form: {
+        wtId: "",
+        wpId: "",
+        wpName: "",
+        tjyy: "",
+        tjss: null,
+        tjfs: null,
+        bugnum: null,
+        workgroup1: null,
+        findlabornum: null,
+        reportlabornum: null,
+        description: null,
+        departuretime: null,
+        arrivaltime: null,
+        prodtdeptopinion: null,
+        workleader: null,
+        repairedtime: null,
+        repairedcomment: null,
+        unresolvedbug: null,
+        checktime: null,
+        degradebugtype: null,
+        repairdeptbugtype1: null,
+        checkdeptlabornum: null,
+        status: null,
+        gzpc: null,
+        gzjx: null,
+        prodtdepttime: null,
+        checkdeptopinion: null,
+        rwfpsc: 0.0,
+        rwfppjsc: 1066.0,
+        ddxcsc: 0.0,
+        ddxcpjsc: 0.0,
+        qxclsc: 0.0,
+        qxclpjsc: 0.0,
+        yssc: 0.0,
+        yspjsc: 0.0,
+        workHours: null,
+      },
+    };
+  },
+  created() {
+    // this.moreTargetData = new Array(50).fill({
+    //     name: "指标测试名称"
+    // })
+    this.moreTargetDatawind = zbJson.wind
+    this.allTargetDatawind = zbJson.wind
+    zbJson.power.forEach(it =>{
+        this.moreTargetData.push({
+            name: it
+        })
+    })
+  },
+  methods: {
+    showCodeList(type, code, index) {
+        this.headerIndex = index;
+        if (type === "all") {
+            this.moreTargetDatawind = zbJson.wind
+        } else {
+            this.moreTargetDatawind = []
+            this.allTargetDatawind.forEach(it => {
+                if (it.code === code) {
+                    this.moreTargetDatawind.push(it)
+                }
+            })
+            
+        }
+    },
+    // 初始化弹窗数据
+    openDialog() {
+      this.dialogVisible = true;
+    },
+    // 取消操作
+    cancel() {
+      this.dialogVisible = false;
+      this.allMoreTargetData = [];
+      this.moreTargetData = [];
+      this.checkList = [];
+    },
+    // 确定并刷新列表
+    tableRefresh() {
+      this.dialogVisible = false;
+      this.headerIndex = -1;
+      this.$emit(
+        "tableRefresh",
+        this.checkList,
+        this.allMoreTargetData.length
+          ? this.allMoreTargetData
+          : this.moreTargetData
+      );
+    },
+    // 全选按钮变化
+    handleCheckAllChange(val) {
+      this.checkList = val
+        ? this.allMoreTargetData.length
+          ? this.allMoreTargetData.map((item) => item.name)
+          : this.moreTargetData.map((item) => item.name)
+        : [];
+      this.isIndeterminate = false;
+    },
+    //各标签按钮变化
+    handleCheckedChange(checked) {
+      const checkedCount = checked.length;
+      this.checkAll =
+        checkedCount ===
+        (this.allMoreTargetData.length
+          ? this.allMoreTargetData.length
+          : this.moreTargetData.length);
+      this.isIndeterminate =
+        checkedCount > 0 &&
+        checkedCount <
+          (this.allMoreTargetData.length
+            ? this.allMoreTargetData.length
+            : this.moreTargetData.length);
+    },
+  },
+  mounted() {},
+  computed: {},
+};
+</script>
+<style lang="less" scoped>
+.dialog-form {
+  display: flex;
+  align-items: center;
+  margin-bottom: 10px;
+  .checkall {
+    margin-right: 10px;
+    width: 80px;
+  }
+}
+
+.el-checkbox {
+  width: 180px;
+}
+
+.targetNav[data-type~="greenSty"] {
+    ul {
+        li {
+            border-left: 1px solid #3b6c53;
+            border-top: 1px solid #3b6c53;
+            border-bottom: 1px solid #3b6c53;
+            &.li-right {
+                border-right: 1px solid #3b6c53;
+            }
+
+            &.active {
+                background-color: rgba(0, 199, 19, 0.4);
+            }
+        }
+    }
+}
+.targetNav[data-type~="blueSty"] {
+    ul {
+        li {
+            border-left: 1px solid #3b526c;
+            border-top: 1px solid #3b526c;
+            border-bottom: 1px solid #3b526c;
+            &.li-right {
+                border-right: 1px solid #3b526c;
+            }
+
+            &.active {
+                background-color: rgba(0, 86, 199, 0.4);
+            }
+        }
+    }   
+}
+.dialog-body{
+    .footerButton{
+        margin-top: 20px;
+    }
+}
+.form-body{
+    .el-row{
+        margin-bottom: 10px;
+    }
+}
+</style>

+ 219 - 0
src/views/IntegratedAlarm/safe/faultManagement/windDialog/zbJson.json

@@ -0,0 +1,219 @@
+{
+    "wind": [
+        {
+            "code": "qt",
+            "name": "IGBT温度"
+        },
+        {
+            "code": "fdj",
+            "name": "U1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "U2绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "V1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "V2绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "W1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "W2绕组温度"
+        },
+        {
+            "code": "jc",
+            "name": "X方向振动幅度值"
+        },
+        {
+            "code": "jc",
+            "name": "Y方向振动幅度值"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机1温度"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机2温度"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机3温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱入口油温"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱轴1温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱轴2温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮油油温"
+        },
+        {
+            "code": "fdj",
+            "name": "发电机转速"
+        },
+        {
+            "code": "fdj",
+            "name": "非驱动轴承温度/轴承B温度"
+        },
+        {
+            "code": "qt",
+            "name": "风机60秒风向"
+        },
+        {
+            "code": "qt",
+            "name": "风速"
+        },
+        {
+            "code": "qt",
+            "name": "风向"
+        },
+        {
+            "code": "qt",
+            "name": "功率因数"
+        },
+        {
+            "code": "jc",
+            "name": "环境温度"
+        },
+        {
+            "code": "jc",
+            "name": "机舱温度"
+        },
+        {
+            "code": "bj",
+            "name": "桨距角设定值"
+        },
+        {
+            "code": "jc",
+            "name": "控制柜温度/塔底柜温度"
+        },
+        {
+            "code": "qt",
+            "name": "轮毂温度"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧A相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧B相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧C相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "叶轮转速"
+        },
+        {
+            "code": "fdj",
+            "name": "有功功率"
+        },
+        {
+            "code": "qt",
+            "name": "主轴叶轮侧温度"
+        },
+        {
+            "code": "qt",
+            "name": "总发电量"
+        },
+        {
+            "code": "qt",
+            "name": "无功功率"
+        },
+        {
+            "code": "yy",
+            "name": "液压系统油位"
+        },
+        {
+            "code": "yy",
+            "name": "液压系统油压"
+        },
+        {
+            "code": "ph",
+            "name": "机舱方向/对风角度"
+        },
+        {
+            "code": "ph",
+            "name": "偏航位置"
+        },
+        {
+            "code": "ph",
+            "name": "偏航功率"
+        },
+        {
+            "code": "ph",
+            "name": "偏航右极限位置"
+        }
+    ],
+    "power": [
+        "变压器油温",
+        "电抗器温度",
+        "电网AB线电压",
+        "电网A相电流",
+        "电网A相电压",
+        "电网BC线电压",
+        "电网B相电流",
+        "电网B相电压",
+        "电网CA线电压",
+        "电网C相电流",
+        "电网C相电压",
+        "电网频率",
+        "额定无功输出功率",
+        "负极对地电压",
+        "负极对地阻抗值",
+        "功率因数",
+        "功率因数(遥调)",
+        "机内温度",
+        "累计二氧化碳减排量",
+        "模块温度 1",
+        "模块温度 2",
+        "模块温度 3",
+        "模块温度 4",
+        "模块温度 5",
+        "模块温度 6",
+        "逆变器关机时间",
+        "逆变器交流电流",
+        "逆变器交流电压",
+        "逆变器开机时间",
+        "逆变器输入电流",
+        "逆变器输入电压",
+        "逆变器效率",
+        "逆变器运行状态",
+        "逆变器直流电流",
+        "逆变器直流电压",
+        "年发电量",
+        "日并网分钟",
+        "日发电量",
+        "视在功率",
+        "输入总功率",
+        "无功功率",
+        "无功功率(遥调)",
+        "有功功率",
+        "有功功率(遥调)",
+        "月发电量",
+        "正极对地阻抗值",
+        "总电压",
+        "总发电量",
+        "总运行时间"
+    ]
+}

+ 5 - 5
src/views/IntegratedAlarm/safe/historyWarning/index.vue

@@ -275,7 +275,7 @@ import { ElMessageBox, ElMessage } from "element-plus";
 import { outExportExcel } from "@/tools/excel/exportExcel.js"; //引入文件
 import { useStore } from "vuex";
 import dataJson from "./dataJson.json"
-const pageTitle = "历史报警/升压站报警";
+const pageTitle = "历史报警";
 const store = useStore();
 
 const route = useRoute();
@@ -354,10 +354,10 @@ const getColumnStyle = (columnItem) => {
 
 const state = reactive({
   typeList: [
-    {
-      label: "升压站",
-      value: "booststation",
-    },
+    // {
+    //   label: "升压站",
+    //   value: "booststation",
+    // },
     // {
     //   label: "自定义",
     //   value: "custom",

+ 267 - 0
src/views/IntegratedAlarm/safe/maintenance/dataJson.json

@@ -0,0 +1,267 @@
+{
+    "total": 503,
+    "pagecount": 26,
+    "pageindex": 1,
+    "rows": [
+      {
+        "id": "d8dcc1af-5365-48c3-a09d-2681bafce2b8",
+        "startTime": "2025-05-12 14:06:53",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 14:06:53",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "d9a1d44b-c989-4c6d-a7ef-b5a255b627db",
+        "startTime": "2025-05-12 14:05:51",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 14:05:51",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "e7216376-4baf-452c-b250-487f5575ff3d",
+        "startTime": "2025-05-12 13:58:12",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:58:12",
+        "wpName": "平鲁虎头山  ",
+        "windPowerStationId": "PL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "6be13c3b-0cc1-4dd8-95d9-a80de130094f",
+        "startTime": "2025-05-12 13:32:10",
+        "description": null,
+        "wts": "1A09, 1B04, 1B09, 1A03, 1C03, 1B11, 1C08, 1B06, 1B05, 1A05, 1C11, 1C06, 1B07, 1A11, 1A01, 1A08, 1B08, 1C09, 1B10, 1C05, 1A07, 1A02, 1A04, 1B01, 1C07, 1C04, 1B03, 1A10, 1C02, 1C01, 1B02, 1A06, 1C10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:32:10",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "ad3894be-3b5e-49c5-8c99-d8081a101da4",
+        "startTime": "2025-05-12 13:28:03",
+        "description": null,
+        "wts": "1A03, 1C11, 1A11, 1C01, 1C10, 1C05, 1B09, 1B02, 1C02, 1B11, 1A05, 1C09, 1B01, 1B04, 1B05, 1B03, 1A01, 1A02, 1C08, 1A06, 1A10, 1C03, 1B08, 1C06, 1A04, 1A09, 1C07, 1A08, 1B06, 1C04, 1A07, 1B07, 1B10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:28:03",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "9c7dc983-8fed-409d-a7be-46d319ad6ffd",
+        "startTime": "2025-05-12 13:25:29",
+        "description": null,
+        "wts": "1B08, 1B06, 1A03, 1C03, 1C07, 1B05, 1C08, 1C04, 1B10, 1B09, 2D13, 1B11, 1A10, 1C06, 1A01, 1A02, 1C05, 1C02, 1C01, 1B02, 1C11, 1B07, 1B01, 1B03, 1C09, 1B04, 1A05",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:25:29",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "f3063245-82ba-4d3b-bc6b-097436c00799",
+        "startTime": "2025-05-12 13:20:52",
+        "description": null,
+        "wts": "1B10, 1C03, 1B03, 1C05, 1C07, 1A02, 1A04, 1C02, 1B07, 1A07, 1B05, 1C01, 1B06, 1B11, 1A03, 1C06, 1B02, 1C04, 1B04, 1A01, 1C11, 1A08, 1B01, 1B08, 1A10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:20:52",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "df0e25c9-f293-4439-8ada-a0e796bf6ede",
+        "startTime": "2025-05-12 13:14:13",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:14:13",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "3846702a-ae68-4492-a35f-2d5914d79362",
+        "startTime": null,
+        "description": null,
+        "wts": "A10, A09, A11, B18, B23, B24, B24, A01, A08, A08, A05, A05, A01, B24, A05, A10, B14, A02, B16, A05, A12, B22, B18, A08, B13, A11, A09, B21, B19, B15, B20, A06, B24, A07, A04, B17, A01, A03, A06, B15, A03, B21, B18, B14, B24, B23, A05, B17, B22, A01, B16, B19, A02, A04, B20",
+        "lossPower": 3055184.55,
+        "stopHours": 2.1,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 12:18:13",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "f21919df-3dab-43d1-b843-6b4cec8ef387",
+        "startTime": "2025-05-12 12:17:42",
+        "description": null,
+        "wts": "B23, B17, B22, A06, A04, A04, A12, B13, A01, A02, A04, A05, A03, A04, A08, A10, A07, A12, A09, A11, B14, B15, B18",
+        "lossPower": 16943.73,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 12:17:42",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "38b6f02e-7ee9-46d7-bae2-7a1753ac0c8f",
+        "startTime": "2025-05-12 11:53:57",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 11:53:57",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "54f7180a-86ae-4f14-a8b5-4fe728f2c5b5",
+        "startTime": "2025-05-11 16:44:46",
+        "description": null,
+        "wts": "1A09, 1B19",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:44:46",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "3390cc14-5f99-44e2-9baf-49fdb6466fe1",
+        "startTime": "2025-05-11 16:43:46",
+        "description": null,
+        "wts": "1A09, 1B19",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:43:46",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "4cbecc2c-392a-42e9-836d-197d585d7055",
+        "startTime": "2025-05-11 16:39:44",
+        "description": null,
+        "wts": "B22, B17, A06",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:39:44",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "bbecf43d-d8bf-4e87-8155-34954ca9e1d6",
+        "startTime": "2025-05-11 16:39:44",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:39:44",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "d9321d4c-1077-436a-b59e-40ec941433e9",
+        "startTime": "2025-05-11 16:37:43",
+        "description": null,
+        "wts": "B21, B17, B22, A06, A08, A09",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:37:43",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "774a7857-d0d8-444b-84b9-cc08e5e7d436",
+        "startTime": "2025-05-11 16:36:43",
+        "description": null,
+        "wts": "B17, B22, A08, A06, A12, A09",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:36:43",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "8a44536c-9c2e-4ac3-aeca-0ee17652f7d2",
+        "startTime": "2025-05-11 16:32:41",
+        "description": null,
+        "wts": "A06, A07, A11, B22, A12, A09, B17, A08, B21, A04",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:32:41",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "863d9e38-1936-4d13-acdf-8b995ce55cde",
+        "startTime": "2025-05-11 16:31:40",
+        "description": null,
+        "wts": "A04, A09, B21, A12, B17, A07, A11, A08, A06, B22, B15, B13, B14",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:31:40",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "da4ea65b-7207-42b1-8198-d681615a60b1",
+        "startTime": "2025-05-11 16:29:38",
+        "description": null,
+        "wts": "A06, B14, A08, A11, B21, B15, B17, B16, A07, A04, A09, B13, A12, B22",
+        "lossPower": 539.47,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:29:38",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      }
+    ]
+  }

+ 389 - 0
src/views/IntegratedAlarm/safe/maintenance/index.vue

@@ -0,0 +1,389 @@
+<template>
+  <div class="maintenanceBox">
+    <div class="form-wrapper">
+      <div class="search-wrapper">
+        <div class="search-item">
+          <span class="label">风场:</span>
+          <div class="search-content">
+            <el-select
+              v-model="wpId"
+              size="mini"
+              placeholder="全部"
+              popper-class="select">
+              <el-option
+                v-for="item in wpArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.aname"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">机组:</span>
+          <div class="search-content">
+            <el-select
+              v-model="wtId"
+              size="mini"
+              placeholder="全部"
+              popper-class="select">
+              <el-option
+                v-for="item in wtArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.aname"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">日期区间:</span>
+          <div class="search-content">
+            <el-date-picker
+              v-model="dateRange"
+              size="mini"
+              type="datetimerange"
+              range-separator="-"
+              format="YYYY-MM-DD HH:mm:ss"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              start-placeholder="开始时间"
+              end-placeholder="结束时间"
+              :clearable="false"
+              @change="getTableData"
+            >
+            </el-date-picker>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">内报/外报:</span>
+          <div class="search-content">
+            <el-select
+              v-model="reportcom"
+              clearable
+              size="mini"
+              placeholder="全部"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in reportcomList"
+                :key="item.id"
+                :value="item.nemCode"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+      </div>
+      <div class="btns">
+        <el-button class="buttons" round size="mini" @click="getTableData"
+          >查询</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+          @click="addmaintenance"
+        >
+          新增</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+        >
+          导入</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+        >
+          导出</el-button
+        >
+      </div>
+    </div>
+    <div class="table-wrapper">
+      <div class="leftContent" :data-type="$store.state.moreSty">
+        <span>{{ pageTitle }}</span>
+      </div>
+      <el-table
+        size="mini"
+        :data="tableData"
+        height="calc(100% - 43px - 40px)"
+        style="width: 100%"
+        stripe
+      >
+        <el-table-column
+          :label="item.label"
+          :prop="item.prop"
+          show-overflow-tooltip
+          header-align="center"
+          align="center"
+          v-for="(item, index) in tHeader"
+          :key="index"
+        >
+          <template #default="scope">
+            <span>
+              {{
+                scope.row[item.prop] != "NULL" && scope.row[item.prop] != null
+                  ? scope.row[item.prop]
+                  : "--"
+              }}
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column
+            label="操作"
+            width="100"
+            header-align="center"
+            align="center"
+          >
+            <template #default="scope">
+              <el-button
+                style="color: #05bb4c"
+                type="text"
+                >确认本条</el-button
+              >
+            </template>
+        </el-table-column>
+      </el-table>
+      <div class="pagination-wrapper">
+        <el-pagination
+          layout="total, sizes, prev, pager, next"
+          :page-sizes="[22, 100, 500, 1000]"
+          @size-change="
+            (value) => {
+              pageNum = 1;
+              pageSize = value;
+              getTableData();
+            }
+          "
+          :current-page="pageNum"
+          :page-size="pageSize"
+          :total="total"
+          @current-change="currentChange"
+        ></el-pagination>
+      </div>
+    </div>
+    <windDialog
+      ref="windDialog"
+    />
+  </div>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import windDialog from "./windDialog/index.vue";
+import {
+  getWpList,
+  fetchWindturbineList,
+  getStopQueryTableData,
+} from "@/api/zhbj/index.js";
+import dataJson from "./dataJson.json"
+
+export default {
+  name: "maintenance",
+  components: {
+    windDialog
+  },
+  data() {
+    return {
+      pageTitle: "维护管理",
+      wpId: "",
+      wtId: "",
+      wpArray: [],
+      wtArray: [],
+      dateRange: [],
+      description: "",
+      typeId: "",
+      typeList: [],
+      reportcom: "",
+      reportcomList: [],
+      pageNum: 1,
+      pageSize: 22,
+      total: 0,
+      tableData: [],
+      tHeader: [
+        {
+          label: "期次",
+          prop: "stopTime",
+        },
+        {
+          label: "场站名称",
+          prop: "stopTime",
+        },
+        {
+          label: "风机名称",
+          prop: "stopTime",
+        },
+        {
+          label: "开始时间",
+          prop: "startTime",
+        },
+        {
+          label: "结束时间",
+          prop: "stopHours",
+        },
+        {
+          label: "维护内容",
+          prop: "stopTypeId",
+        },
+        {
+          label: "损失电量(kWh)",
+          prop: "lossPower",
+        },
+        {
+          label: "故障时长",
+          prop: "lossPower",
+        },
+        {
+          label: "时长影响容量",
+          prop: "lossPower",
+        },
+        {
+          label: "内报/外报",
+          prop: "stopTypeId",
+        }
+      ],
+    };
+  },
+
+  created() {
+    this.dateRange = [
+      dayjs().subtract(7, "day").format("YYYY-MM-DD HH:mm:ss"),
+      dayjs().format("YYYY-MM-DD HH:mm:ss"),
+    ];
+    this.getWpList();
+
+    this.getTableData();
+  },
+
+  methods: {
+    async getWpList() {
+      const { data } = await getWpList("windturbine");
+      this.wpId = data?.[0]?.id || "";
+      this.wpArray = data || [];
+    },
+
+    async getTableData() {
+    //   this.BASE.showLoading();
+    //   const { data } = await getStopQueryTableData({
+    //     wpId: this.wpId,
+    //     wtId: this.wtId,
+    //     type: this.type,
+    //     description: this.description,
+    //     begin: this.dateRange?.[0] || "",
+    //     end: this.dateRange?.[1] || "",
+    //     pageNum: this.pageNum,
+    //     pageSize: this.pageSize,
+    //   });
+    //   this.BASE.closeLoading();
+    //   data?.records?.forEach((ele) => {
+    //     ele.stopTimeName = dayjs(ele.stopTime).format("YYYY-MM-DD HH:mm:ss");
+    //     ele.startTimeName = ele.startTime
+    //       ? dayjs(ele.startTime).format("YYYY-MM-DD HH:mm:ss")
+    //       : "--";
+    //     ele.typeName = ele.stopTypeId === "gz" ? "故障" : "检修";
+    //   });
+
+    //   this.tableData = data?.records || [];
+    //   this.total = data.total || 0;
+    this.tableData = dataJson.rows
+    this.total = dataJson.total
+
+    },
+
+    currentChange(pageNum) {
+      this.pageNum = pageNum;
+      this.getTableData();
+    },
+    //添加限电
+    addmaintenance() {
+        this.$refs.windDialog.openDialog();
+    },
+},
+};
+</script>
+
+<style lang="less" scoped>
+.maintenanceBox {
+  height: 100%;
+  width: 100%;
+  padding: 0 20px;
+  padding-bottom: 15px;
+  .form-wrapper ::v-deep {
+    display: flex;
+    // flex-direction: column;
+    padding-top: 15px;
+    .search-wrapper {
+      display: flex;
+      align-items: center;
+      font-size: 14px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-bottom: 15px;
+      .search-item {
+        display: flex;
+        margin-right: 10px;
+        // max-width: 450px;
+        align-items: center;
+        .label {
+          margin-right: 10px;
+          text-align: right;
+          white-space: nowrap;
+          // width: 60px;
+        }
+        .search-content {
+          flex: 1;
+        }
+      }
+    }
+    .btns {
+      margin-left: 35px;
+    }
+    .buttons {
+      background-color: rgba(5, 187, 76, 0.2);
+      border: 1px solid #3b6c53;
+      color: #b3b3b3;
+      font-size: 14px;
+
+      &:hover {
+        background-color: rgba(5, 187, 76, 0.5);
+        color: #ffffff;
+      }
+    }
+  }
+  .table-wrapper {
+    height: calc(100% - 62px);
+    width: 100%;
+    .leftContent[data-type~="greenSty"] {
+            background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+        }
+        .leftContent[data-type~="blueSty"] {
+            background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+        }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      display: flex;
+      align-items: center;
+
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+    .pagination-wrapper :deep {
+      text-align: right;
+      margin-top: 10px;
+    }
+  }
+}
+</style>

+ 319 - 0
src/views/IntegratedAlarm/safe/maintenance/windDialog/index.vue

@@ -0,0 +1,319 @@
+<template>
+  <el-dialog v-model="dialogVisible" width="70%" top="120px">
+    <template #title>
+      <div class="dialog-title">
+        <div class="title">
+          逆变器详情
+        </div>
+      </div>
+    </template>
+    <div class="form-body">
+        <el-form ref="form" :model="form" label-width="130px">
+            <el-row>
+            <el-col :span="12">
+              <el-form-item label="风场:">
+                <el-select v-model="form.wpName" size="mini" placeholder="风场">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="风机:">
+                <el-select v-model="form.wtId" size="mini" placeholder="风机">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="开始时间:">
+                <el-date-picker
+                    type="date"
+                    v-model="form.departuretime"
+                    value-format="YYYY-MM-DD"
+                    placeholder="请选择"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="结束时间:">
+                <el-date-picker
+                    type="date"
+                    v-model="form.arrivaltime"
+                    value-format="YYYY-MM-DD"
+                    placeholder="请选择"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="维护内容:">
+                <el-input
+                  type="textarea"
+                  resize="none"
+                  :rows="3"
+                  v-model="form.description"
+                  placeholder="维护内容"
+                  readonly
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="损失电量:">
+                <el-input
+                  v-model="form.tjss"
+                  placeholder="请输入损失电量"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="内报/外报:">
+                <el-select v-model="form.wpName" size="mini" placeholder="内报/外报">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+    </div>
+    <el-row class="footerButton">
+        <el-button round @click="cancel">取消</el-button>
+        <el-button round @click="tableRefresh">保存</el-button>
+    </el-row>
+  </el-dialog>
+</template>
+<script>
+import zbJson from './zbJson.json'
+export default {
+  name: "zbDialog", //指标弹窗
+  components: {},
+  props: {
+    uniformName: {
+      type: String,
+      required: true,
+    },
+    uniformCode: {
+      type: String,
+      required: true,
+    },
+  },
+  data() {
+    return {
+      dialogVisible: false,
+      text: "",
+      type: -1,
+      checkAll: false,
+      isIndeterminate: true,
+      checkList: [],
+      moreTargetData: [],
+      moreTargetDatawind: [],
+      allTargetDatawind: [],
+      allMoreTargetData: [],
+      headerIndex: -1,
+      partList: [
+        { label: "发电机", code: "fdj" },
+        { label: "齿轮箱", code: "clx" },
+        { label: "变桨", code: "bj" },
+        { label: "偏航", code: "ph" },
+        { label: "液压", code: "yy" },
+        { label: "机舱", code: "jc" },
+        { label: "其他", code: "qt" },
+      ],
+      showIt: true,
+      rankList: [],
+      form: {
+        wtId: "",
+        wpId: "",
+        wpName: "",
+        tjyy: "",
+        tjss: null,
+        tjfs: null,
+        bugnum: null,
+        workgroup1: null,
+        findlabornum: null,
+        reportlabornum: null,
+        description: null,
+        departuretime: null,
+        arrivaltime: null,
+        prodtdeptopinion: null,
+        workleader: null,
+        repairedtime: null,
+        repairedcomment: null,
+        unresolvedbug: null,
+        checktime: null,
+        degradebugtype: null,
+        repairdeptbugtype1: null,
+        checkdeptlabornum: null,
+        status: null,
+        gzpc: null,
+        gzjx: null,
+        prodtdepttime: null,
+        checkdeptopinion: null,
+        rwfpsc: 0.0,
+        rwfppjsc: 1066.0,
+        ddxcsc: 0.0,
+        ddxcpjsc: 0.0,
+        qxclsc: 0.0,
+        qxclpjsc: 0.0,
+        yssc: 0.0,
+        yspjsc: 0.0,
+        workHours: null,
+      },
+    };
+  },
+  created() {
+    // this.moreTargetData = new Array(50).fill({
+    //     name: "指标测试名称"
+    // })
+    this.moreTargetDatawind = zbJson.wind
+    this.allTargetDatawind = zbJson.wind
+    zbJson.power.forEach(it =>{
+        this.moreTargetData.push({
+            name: it
+        })
+    })
+  },
+  methods: {
+    showCodeList(type, code, index) {
+        this.headerIndex = index;
+        if (type === "all") {
+            this.moreTargetDatawind = zbJson.wind
+        } else {
+            this.moreTargetDatawind = []
+            this.allTargetDatawind.forEach(it => {
+                if (it.code === code) {
+                    this.moreTargetDatawind.push(it)
+                }
+            })
+            
+        }
+    },
+    // 初始化弹窗数据
+    openDialog() {
+      this.dialogVisible = true;
+    },
+    // 取消操作
+    cancel() {
+      this.dialogVisible = false;
+      this.allMoreTargetData = [];
+      this.moreTargetData = [];
+      this.checkList = [];
+    },
+    // 确定并刷新列表
+    tableRefresh() {
+      this.dialogVisible = false;
+      this.headerIndex = -1;
+      this.$emit(
+        "tableRefresh",
+        this.checkList,
+        this.allMoreTargetData.length
+          ? this.allMoreTargetData
+          : this.moreTargetData
+      );
+    },
+    // 全选按钮变化
+    handleCheckAllChange(val) {
+      this.checkList = val
+        ? this.allMoreTargetData.length
+          ? this.allMoreTargetData.map((item) => item.name)
+          : this.moreTargetData.map((item) => item.name)
+        : [];
+      this.isIndeterminate = false;
+    },
+    //各标签按钮变化
+    handleCheckedChange(checked) {
+      const checkedCount = checked.length;
+      this.checkAll =
+        checkedCount ===
+        (this.allMoreTargetData.length
+          ? this.allMoreTargetData.length
+          : this.moreTargetData.length);
+      this.isIndeterminate =
+        checkedCount > 0 &&
+        checkedCount <
+          (this.allMoreTargetData.length
+            ? this.allMoreTargetData.length
+            : this.moreTargetData.length);
+    },
+  },
+  mounted() {},
+  computed: {},
+};
+</script>
+<style lang="less" scoped>
+.dialog-form {
+  display: flex;
+  align-items: center;
+  margin-bottom: 10px;
+  .checkall {
+    margin-right: 10px;
+    width: 80px;
+  }
+}
+
+.el-checkbox {
+  width: 180px;
+}
+
+.targetNav[data-type~="greenSty"] {
+    ul {
+        li {
+            border-left: 1px solid #3b6c53;
+            border-top: 1px solid #3b6c53;
+            border-bottom: 1px solid #3b6c53;
+            &.li-right {
+                border-right: 1px solid #3b6c53;
+            }
+
+            &.active {
+                background-color: rgba(0, 199, 19, 0.4);
+            }
+        }
+    }
+}
+.targetNav[data-type~="blueSty"] {
+    ul {
+        li {
+            border-left: 1px solid #3b526c;
+            border-top: 1px solid #3b526c;
+            border-bottom: 1px solid #3b526c;
+            &.li-right {
+                border-right: 1px solid #3b526c;
+            }
+
+            &.active {
+                background-color: rgba(0, 86, 199, 0.4);
+            }
+        }
+    }   
+}
+.dialog-body{
+    .footerButton{
+        margin-top: 20px;
+    }
+}
+.form-body{
+    .el-row{
+        margin-bottom: 10px;
+    }
+}
+</style>

+ 219 - 0
src/views/IntegratedAlarm/safe/maintenance/windDialog/zbJson.json

@@ -0,0 +1,219 @@
+{
+    "wind": [
+        {
+            "code": "qt",
+            "name": "IGBT温度"
+        },
+        {
+            "code": "fdj",
+            "name": "U1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "U2绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "V1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "V2绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "W1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "W2绕组温度"
+        },
+        {
+            "code": "jc",
+            "name": "X方向振动幅度值"
+        },
+        {
+            "code": "jc",
+            "name": "Y方向振动幅度值"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机1温度"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机2温度"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机3温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱入口油温"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱轴1温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱轴2温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮油油温"
+        },
+        {
+            "code": "fdj",
+            "name": "发电机转速"
+        },
+        {
+            "code": "fdj",
+            "name": "非驱动轴承温度/轴承B温度"
+        },
+        {
+            "code": "qt",
+            "name": "风机60秒风向"
+        },
+        {
+            "code": "qt",
+            "name": "风速"
+        },
+        {
+            "code": "qt",
+            "name": "风向"
+        },
+        {
+            "code": "qt",
+            "name": "功率因数"
+        },
+        {
+            "code": "jc",
+            "name": "环境温度"
+        },
+        {
+            "code": "jc",
+            "name": "机舱温度"
+        },
+        {
+            "code": "bj",
+            "name": "桨距角设定值"
+        },
+        {
+            "code": "jc",
+            "name": "控制柜温度/塔底柜温度"
+        },
+        {
+            "code": "qt",
+            "name": "轮毂温度"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧A相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧B相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧C相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "叶轮转速"
+        },
+        {
+            "code": "fdj",
+            "name": "有功功率"
+        },
+        {
+            "code": "qt",
+            "name": "主轴叶轮侧温度"
+        },
+        {
+            "code": "qt",
+            "name": "总发电量"
+        },
+        {
+            "code": "qt",
+            "name": "无功功率"
+        },
+        {
+            "code": "yy",
+            "name": "液压系统油位"
+        },
+        {
+            "code": "yy",
+            "name": "液压系统油压"
+        },
+        {
+            "code": "ph",
+            "name": "机舱方向/对风角度"
+        },
+        {
+            "code": "ph",
+            "name": "偏航位置"
+        },
+        {
+            "code": "ph",
+            "name": "偏航功率"
+        },
+        {
+            "code": "ph",
+            "name": "偏航右极限位置"
+        }
+    ],
+    "power": [
+        "变压器油温",
+        "电抗器温度",
+        "电网AB线电压",
+        "电网A相电流",
+        "电网A相电压",
+        "电网BC线电压",
+        "电网B相电流",
+        "电网B相电压",
+        "电网CA线电压",
+        "电网C相电流",
+        "电网C相电压",
+        "电网频率",
+        "额定无功输出功率",
+        "负极对地电压",
+        "负极对地阻抗值",
+        "功率因数",
+        "功率因数(遥调)",
+        "机内温度",
+        "累计二氧化碳减排量",
+        "模块温度 1",
+        "模块温度 2",
+        "模块温度 3",
+        "模块温度 4",
+        "模块温度 5",
+        "模块温度 6",
+        "逆变器关机时间",
+        "逆变器交流电流",
+        "逆变器交流电压",
+        "逆变器开机时间",
+        "逆变器输入电流",
+        "逆变器输入电压",
+        "逆变器效率",
+        "逆变器运行状态",
+        "逆变器直流电流",
+        "逆变器直流电压",
+        "年发电量",
+        "日并网分钟",
+        "日发电量",
+        "视在功率",
+        "输入总功率",
+        "无功功率",
+        "无功功率(遥调)",
+        "有功功率",
+        "有功功率(遥调)",
+        "月发电量",
+        "正极对地阻抗值",
+        "总电压",
+        "总发电量",
+        "总运行时间"
+    ]
+}

+ 267 - 0
src/views/IntegratedAlarm/safe/powerRationing/dataJson.json

@@ -0,0 +1,267 @@
+{
+    "total": 503,
+    "pagecount": 26,
+    "pageindex": 1,
+    "rows": [
+      {
+        "id": "d8dcc1af-5365-48c3-a09d-2681bafce2b8",
+        "startTime": "2025-05-12 14:06:53",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 14:06:53",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "d9a1d44b-c989-4c6d-a7ef-b5a255b627db",
+        "startTime": "2025-05-12 14:05:51",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 14:05:51",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "e7216376-4baf-452c-b250-487f5575ff3d",
+        "startTime": "2025-05-12 13:58:12",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:58:12",
+        "wpName": "平鲁虎头山  ",
+        "windPowerStationId": "PL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "6be13c3b-0cc1-4dd8-95d9-a80de130094f",
+        "startTime": "2025-05-12 13:32:10",
+        "description": null,
+        "wts": "1A09, 1B04, 1B09, 1A03, 1C03, 1B11, 1C08, 1B06, 1B05, 1A05, 1C11, 1C06, 1B07, 1A11, 1A01, 1A08, 1B08, 1C09, 1B10, 1C05, 1A07, 1A02, 1A04, 1B01, 1C07, 1C04, 1B03, 1A10, 1C02, 1C01, 1B02, 1A06, 1C10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:32:10",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "ad3894be-3b5e-49c5-8c99-d8081a101da4",
+        "startTime": "2025-05-12 13:28:03",
+        "description": null,
+        "wts": "1A03, 1C11, 1A11, 1C01, 1C10, 1C05, 1B09, 1B02, 1C02, 1B11, 1A05, 1C09, 1B01, 1B04, 1B05, 1B03, 1A01, 1A02, 1C08, 1A06, 1A10, 1C03, 1B08, 1C06, 1A04, 1A09, 1C07, 1A08, 1B06, 1C04, 1A07, 1B07, 1B10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:28:03",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "9c7dc983-8fed-409d-a7be-46d319ad6ffd",
+        "startTime": "2025-05-12 13:25:29",
+        "description": null,
+        "wts": "1B08, 1B06, 1A03, 1C03, 1C07, 1B05, 1C08, 1C04, 1B10, 1B09, 2D13, 1B11, 1A10, 1C06, 1A01, 1A02, 1C05, 1C02, 1C01, 1B02, 1C11, 1B07, 1B01, 1B03, 1C09, 1B04, 1A05",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:25:29",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "f3063245-82ba-4d3b-bc6b-097436c00799",
+        "startTime": "2025-05-12 13:20:52",
+        "description": null,
+        "wts": "1B10, 1C03, 1B03, 1C05, 1C07, 1A02, 1A04, 1C02, 1B07, 1A07, 1B05, 1C01, 1B06, 1B11, 1A03, 1C06, 1B02, 1C04, 1B04, 1A01, 1C11, 1A08, 1B01, 1B08, 1A10",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:20:52",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "df0e25c9-f293-4439-8ada-a0e796bf6ede",
+        "startTime": "2025-05-12 13:14:13",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 13:14:13",
+        "wpName": "浑源峰岳风电场 ",
+        "windPowerStationId": "HY_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "3846702a-ae68-4492-a35f-2d5914d79362",
+        "startTime": null,
+        "description": null,
+        "wts": "A10, A09, A11, B18, B23, B24, B24, A01, A08, A08, A05, A05, A01, B24, A05, A10, B14, A02, B16, A05, A12, B22, B18, A08, B13, A11, A09, B21, B19, B15, B20, A06, B24, A07, A04, B17, A01, A03, A06, B15, A03, B21, B18, B14, B24, B23, A05, B17, B22, A01, B16, B19, A02, A04, B20",
+        "lossPower": 3055184.55,
+        "stopHours": 2.1,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 12:18:13",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "f21919df-3dab-43d1-b843-6b4cec8ef387",
+        "startTime": "2025-05-12 12:17:42",
+        "description": null,
+        "wts": "B23, B17, B22, A06, A04, A04, A12, B13, A01, A02, A04, A05, A03, A04, A08, A10, A07, A12, A09, A11, B14, B15, B18",
+        "lossPower": 16943.73,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 12:17:42",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "38b6f02e-7ee9-46d7-bae2-7a1753ac0c8f",
+        "startTime": "2025-05-12 11:53:57",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-12 11:53:57",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "54f7180a-86ae-4f14-a8b5-4fe728f2c5b5",
+        "startTime": "2025-05-11 16:44:46",
+        "description": null,
+        "wts": "1A09, 1B19",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:44:46",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "3390cc14-5f99-44e2-9baf-49fdb6466fe1",
+        "startTime": "2025-05-11 16:43:46",
+        "description": null,
+        "wts": "1A09, 1B19",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:43:46",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "4cbecc2c-392a-42e9-836d-197d585d7055",
+        "startTime": "2025-05-11 16:39:44",
+        "description": null,
+        "wts": "B22, B17, A06",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:39:44",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "bbecf43d-d8bf-4e87-8155-34954ca9e1d6",
+        "startTime": "2025-05-11 16:39:44",
+        "description": null,
+        "wts": "",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:39:44",
+        "wpName": "方山宝塔山风电场 ",
+        "windPowerStationId": "FS_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "d9321d4c-1077-436a-b59e-40ec941433e9",
+        "startTime": "2025-05-11 16:37:43",
+        "description": null,
+        "wts": "B21, B17, B22, A06, A08, A09",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:37:43",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "774a7857-d0d8-444b-84b9-cc08e5e7d436",
+        "startTime": "2025-05-11 16:36:43",
+        "description": null,
+        "wts": "B17, B22, A08, A06, A12, A09",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:36:43",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "8a44536c-9c2e-4ac3-aeca-0ee17652f7d2",
+        "startTime": "2025-05-11 16:32:41",
+        "description": null,
+        "wts": "A06, A07, A11, B22, A12, A09, B17, A08, B21, A04",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:32:41",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "863d9e38-1936-4d13-acdf-8b995ce55cde",
+        "startTime": "2025-05-11 16:31:40",
+        "description": null,
+        "wts": "A04, A09, B21, A12, B17, A07, A11, A08, A06, B22, B15, B13, B14",
+        "lossPower": 0.0,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:31:40",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      },
+      {
+        "id": "da4ea65b-7207-42b1-8198-d681615a60b1",
+        "startTime": "2025-05-11 16:29:38",
+        "description": null,
+        "wts": "A06, B14, A08, A11, B21, B15, B17, B16, A07, A04, A09, B13, A12, B22",
+        "lossPower": 539.47,
+        "stopHours": 0.0,
+        "stopTypeId": "非停机限电",
+        "stopTime": "2025-05-11 16:29:38",
+        "wpName": "广灵劲风风电场  ",
+        "windPowerStationId": "GL_FDC",
+        "wtcodes": null
+      }
+    ]
+  }

+ 324 - 0
src/views/IntegratedAlarm/safe/powerRationing/index.vue

@@ -0,0 +1,324 @@
+<template>
+  <div class="powerRationingBox">
+    <div class="form-wrapper">
+      <div class="search-wrapper">
+        <div class="search-item">
+          <span class="label">风场:</span>
+          <div class="search-content">
+            <el-select
+              v-model="wpId"
+              size="mini"
+              placeholder="全部"
+              popper-class="select">
+              <el-option
+                v-for="item in wpArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.aname"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="search-item">
+          <span class="label">日期区间:</span>
+          <div class="search-content">
+            <el-date-picker
+              v-model="dateRange"
+              size="mini"
+              type="datetimerange"
+              range-separator="-"
+              format="YYYY-MM-DD HH:mm:ss"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              start-placeholder="开始时间"
+              end-placeholder="结束时间"
+              @change="getTableData"
+              popper-class="date-select"
+            >
+            </el-date-picker>
+          </div>
+        </div>
+      </div>
+      <div class="btns">
+        <el-button class="buttons" round size="mini" @click="getTableData"
+          >查询</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+          @click="addpowerRationing"
+        >
+          新增</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+        >
+          删除</el-button
+        >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+        >
+          导出</el-button
+        >
+      </div>
+    </div>
+    <div class="table-wrapper">
+      <div class="leftContent" :data-type="$store.state.moreSty">
+        <span>{{ pageTitle }}</span>
+      </div>
+      <el-table
+        size="mini"
+        :data="tableData"
+        height="calc(100% - 43px - 40px)"
+        style="width: 100%"
+        stripe
+      >
+        <el-table-column type="selection" width="55" />
+        <el-table-column
+          :label="item.label"
+          :prop="item.prop"
+          show-overflow-tooltip
+          header-align="center"
+          :align="
+            item.prop == 'handleWay' || item.prop == 'faultView'
+              ? 'left'
+              : 'center'
+          "
+          v-for="(item, index) in tHeader"
+          :key="index"
+        >
+          <template #default="scope">
+            <span>
+              {{
+                scope.row[item.prop] != "NULL" && scope.row[item.prop] != null
+                  ? scope.row[item.prop]
+                  : "--"
+              }}
+            </span>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="pagination-wrapper">
+        <el-pagination
+          layout="total, sizes, prev, pager, next"
+          :page-sizes="[22, 100, 500, 1000]"
+          @size-change="
+            (value) => {
+              pageNum = 1;
+              pageSize = value;
+              getTableData();
+            }
+          "
+          :current-page="pageNum"
+          :page-size="pageSize"
+          :total="total"
+          @current-change="currentChange"
+        ></el-pagination>
+      </div>
+    </div>
+    <windDialog
+      ref="windDialog"
+    />
+  </div>
+</template>
+
+<script>
+import dayjs from "dayjs";
+import windDialog from "./windDialog/index.vue";
+import {
+  getWpList,
+  fetchWindturbineList,
+  getStopQueryTableData,
+} from "@/api/zhbj/index.js";
+import dataJson from "./dataJson.json"
+
+export default {
+  name: "powerRationing",
+  components: {
+    windDialog
+  },
+  data() {
+    return {
+      pageTitle: "限电管理",
+      wpId: "",
+      wpArray: [],
+      dateRange: [],
+      description: "",
+      pageNum: 1,
+      pageSize: 22,
+      total: 0,
+      tableData: [],
+      tHeader: [
+        {
+          label: "限电时刻",
+          prop: "stopTime",
+        },
+        {
+          label: "恢复时刻",
+          prop: "startTime",
+        },
+        {
+          label: "停机类型",
+          prop: "stopTypeId",
+        },
+        {
+          label: "限电时间",
+          prop: "stopHours",
+        },
+        {
+          label: "损失电量(kWh)",
+          prop: "lossPower",
+        },
+        {
+          label: "限电原因",
+          prop: "description",
+        },
+        {
+          label: "关联风机",
+          prop: "wts",
+        },
+      ],
+    };
+  },
+
+  created() {
+    this.dateRange = [
+      dayjs().subtract(7, "day").format("YYYY-MM-DD HH:mm:ss"),
+      dayjs().format("YYYY-MM-DD HH:mm:ss"),
+    ];
+    this.getWpList();
+
+    this.getTableData();
+  },
+
+  methods: {
+    async getWpList() {
+      const { data } = await getWpList("windturbine");
+      this.wpId = data?.[0]?.id || "";
+      this.wpArray = data || [];
+    },
+
+    async getTableData() {
+    //   this.BASE.showLoading();
+    //   const { data } = await getStopQueryTableData({
+    //     wpId: this.wpId,
+    //     wtId: this.wtId,
+    //     type: this.type,
+    //     description: this.description,
+    //     begin: this.dateRange?.[0] || "",
+    //     end: this.dateRange?.[1] || "",
+    //     pageNum: this.pageNum,
+    //     pageSize: this.pageSize,
+    //   });
+    //   this.BASE.closeLoading();
+    //   data?.records?.forEach((ele) => {
+    //     ele.stopTimeName = dayjs(ele.stopTime).format("YYYY-MM-DD HH:mm:ss");
+    //     ele.startTimeName = ele.startTime
+    //       ? dayjs(ele.startTime).format("YYYY-MM-DD HH:mm:ss")
+    //       : "--";
+    //     ele.typeName = ele.stopTypeId === "gz" ? "故障" : "检修";
+    //   });
+
+    //   this.tableData = data?.records || [];
+    //   this.total = data.total || 0;
+    this.tableData = dataJson.rows
+    this.total = dataJson.total
+
+    },
+
+    currentChange(pageNum) {
+      this.pageNum = pageNum;
+      this.getTableData();
+    },
+    //添加限电
+    addpowerRationing() {
+        this.$refs.windDialog.openDialog();
+    },
+},
+};
+</script>
+
+<style lang="less" scoped>
+.powerRationingBox {
+  height: 100%;
+  width: 100%;
+  padding: 0 20px;
+  padding-bottom: 15px;
+  .form-wrapper ::v-deep {
+    display: flex;
+    // flex-direction: column;
+    padding-top: 15px;
+    .search-wrapper {
+      display: flex;
+      align-items: center;
+      font-size: 14px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-bottom: 15px;
+      .search-item {
+        display: flex;
+        margin-right: 10px;
+        max-width: 450px;
+        align-items: center;
+        .label {
+          margin-right: 10px;
+          text-align: right;
+          white-space: nowrap;
+          // width: 60px;
+        }
+        .search-content {
+          flex: 1;
+        }
+      }
+    }
+    .btns {
+      margin-left: 35px;
+    }
+    .buttons {
+      background-color: rgba(5, 187, 76, 0.2);
+      border: 1px solid #3b6c53;
+      color: #b3b3b3;
+      font-size: 14px;
+
+      &:hover {
+        background-color: rgba(5, 187, 76, 0.5);
+        color: #ffffff;
+      }
+    }
+  }
+  .table-wrapper {
+    height: calc(100% - 62px);
+    width: 100%;
+    .leftContent[data-type~="greenSty"] {
+            background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+        }
+        .leftContent[data-type~="blueSty"] {
+            background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+        }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      display: flex;
+      align-items: center;
+
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+    .pagination-wrapper :deep {
+      text-align: right;
+      margin-top: 10px;
+    }
+  }
+}
+</style>

+ 354 - 0
src/views/IntegratedAlarm/safe/powerRationing/windDialog/index.vue

@@ -0,0 +1,354 @@
+<template>
+  <el-dialog v-model="dialogVisible" width="70%" top="120px">
+    <template #title>
+      <div class="dialog-title">
+        <div class="title">
+          新增限电情况
+        </div>
+      </div>
+    </template>
+    <div class="form-body">
+        <el-form ref="form" :model="form" label-width="130px">
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="限电原因:">
+                <el-select v-model="form.wpName" size="mini" placeholder="限电原因">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="限电原因:">
+                <el-select v-model="form.wtId" size="mini" placeholder="限电类型">
+                    <el-option
+                        v-for="item in rankList"
+                        :key="item.id"
+                        :value="item.id"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="限电指令:">
+                <el-input
+                  v-model="form.tjss"
+                  placeholder="限电指令"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="当时风速(m/s):">
+                <el-input
+                  v-model="form.tjfs"
+                  placeholder="当时风速"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="限电负荷(万kw):">
+                <el-input
+                  v-model="form.prodtdepttime"
+                  placeholder="限电负荷"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="当时负荷(万kw):">
+                <el-input
+                  v-model="form.workleader"
+                  placeholder="当时负荷"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="限电时间:">
+                <el-date-picker
+                    type="date"
+                    v-model="form.departuretime"
+                    value-format="YYYY-MM-DD"
+                    placeholder="请选择"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="恢复时间:">
+                <el-date-picker
+                    type="date"
+                    v-model="form.arrivaltime"
+                    value-format="YYYY-MM-DD"
+                    placeholder="请选择"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="限电负荷(万kw):">
+                <el-input
+                  v-model="form.prodtdepttime"
+                  placeholder="限电负荷"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          
+        </el-form>
+    </div>
+    <div
+      class="dialog-body"
+    >
+      <img class="dialog-img" src="@/assets/imgs/dialog.png" />
+      <div class="dialog-form">
+        <span style="color: #fff">选择风机:</span>
+        <el-checkbox
+          class="checkall"
+          v-model="checkAll"
+          :indeterminate="isIndeterminate"
+          @change="handleCheckAllChange"
+          >全选</el-checkbox
+        >
+      </div>
+      <el-checkbox-group
+        v-model="checkList"
+      >
+        <el-checkbox
+          v-for="(item, index) in moreTargetData"
+          :key="index"
+          :label="item.name"
+        ></el-checkbox>
+      </el-checkbox-group>
+      <el-row class="footerButton">
+        <el-button round @click="cancel">取消</el-button>
+        <el-button round @click="tableRefresh">保存</el-button>
+      </el-row>
+    </div>
+  </el-dialog>
+</template>
+<script>
+import zbJson from './zbJson.json'
+export default {
+  name: "zbDialog", //指标弹窗
+  components: {},
+  props: {
+    uniformName: {
+      type: String,
+      required: true,
+    },
+    uniformCode: {
+      type: String,
+      required: true,
+    },
+  },
+  data() {
+    return {
+      dialogVisible: false,
+      text: "",
+      type: -1,
+      checkAll: false,
+      isIndeterminate: true,
+      checkList: [],
+      moreTargetData: [],
+      moreTargetDatawind: [],
+      allTargetDatawind: [],
+      allMoreTargetData: [],
+      headerIndex: -1,
+      partList: [
+        { label: "发电机", code: "fdj" },
+        { label: "齿轮箱", code: "clx" },
+        { label: "变桨", code: "bj" },
+        { label: "偏航", code: "ph" },
+        { label: "液压", code: "yy" },
+        { label: "机舱", code: "jc" },
+        { label: "其他", code: "qt" },
+      ],
+      showIt: true,
+      rankList: [],
+      form: {
+        wtId: "",
+        wpId: "",
+        wpName: "",
+        tjyy: "",
+        tjss: null,
+        tjfs: null,
+        bugnum: null,
+        workgroup1: null,
+        findlabornum: null,
+        reportlabornum: null,
+        description: null,
+        departuretime: null,
+        arrivaltime: null,
+        prodtdeptopinion: null,
+        workleader: null,
+        repairedtime: null,
+        repairedcomment: null,
+        unresolvedbug: null,
+        checktime: null,
+        degradebugtype: null,
+        repairdeptbugtype1: null,
+        checkdeptlabornum: null,
+        status: null,
+        gzpc: null,
+        gzjx: null,
+        prodtdepttime: null,
+        checkdeptopinion: null,
+        rwfpsc: 0.0,
+        rwfppjsc: 1066.0,
+        ddxcsc: 0.0,
+        ddxcpjsc: 0.0,
+        qxclsc: 0.0,
+        qxclpjsc: 0.0,
+        yssc: 0.0,
+        yspjsc: 0.0,
+        workHours: null,
+      },
+    };
+  },
+  created() {
+    // this.moreTargetData = new Array(50).fill({
+    //     name: "指标测试名称"
+    // })
+    this.moreTargetDatawind = zbJson.wind
+    this.allTargetDatawind = zbJson.wind
+    zbJson.power.forEach(it =>{
+        this.moreTargetData.push({
+            name: it
+        })
+    })
+  },
+  methods: {
+    showCodeList(type, code, index) {
+        this.headerIndex = index;
+        if (type === "all") {
+            this.moreTargetDatawind = zbJson.wind
+        } else {
+            this.moreTargetDatawind = []
+            this.allTargetDatawind.forEach(it => {
+                if (it.code === code) {
+                    this.moreTargetDatawind.push(it)
+                }
+            })
+            
+        }
+    },
+    // 初始化弹窗数据
+    openDialog() {
+      this.dialogVisible = true;
+    },
+    // 取消操作
+    cancel() {
+      this.dialogVisible = false;
+      this.allMoreTargetData = [];
+      this.moreTargetData = [];
+      this.checkList = [];
+    },
+    // 确定并刷新列表
+    tableRefresh() {
+      this.dialogVisible = false;
+      this.headerIndex = -1;
+      this.$emit(
+        "tableRefresh",
+        this.checkList,
+        this.allMoreTargetData.length
+          ? this.allMoreTargetData
+          : this.moreTargetData
+      );
+    },
+    // 全选按钮变化
+    handleCheckAllChange(val) {
+      this.checkList = val
+        ? this.allMoreTargetData.length
+          ? this.allMoreTargetData.map((item) => item.name)
+          : this.moreTargetData.map((item) => item.name)
+        : [];
+      this.isIndeterminate = false;
+    },
+    //各标签按钮变化
+    handleCheckedChange(checked) {
+      const checkedCount = checked.length;
+      this.checkAll =
+        checkedCount ===
+        (this.allMoreTargetData.length
+          ? this.allMoreTargetData.length
+          : this.moreTargetData.length);
+      this.isIndeterminate =
+        checkedCount > 0 &&
+        checkedCount <
+          (this.allMoreTargetData.length
+            ? this.allMoreTargetData.length
+            : this.moreTargetData.length);
+    },
+  },
+  mounted() {},
+  computed: {},
+};
+</script>
+<style lang="less" scoped>
+.dialog-form {
+  display: flex;
+  align-items: center;
+  margin-bottom: 10px;
+  .checkall {
+    margin-right: 10px;
+    width: 80px;
+  }
+}
+
+.el-checkbox {
+  width: 180px;
+}
+
+.targetNav[data-type~="greenSty"] {
+    ul {
+        li {
+            border-left: 1px solid #3b6c53;
+            border-top: 1px solid #3b6c53;
+            border-bottom: 1px solid #3b6c53;
+            &.li-right {
+                border-right: 1px solid #3b6c53;
+            }
+
+            &.active {
+                background-color: rgba(0, 199, 19, 0.4);
+            }
+        }
+    }
+}
+.targetNav[data-type~="blueSty"] {
+    ul {
+        li {
+            border-left: 1px solid #3b526c;
+            border-top: 1px solid #3b526c;
+            border-bottom: 1px solid #3b526c;
+            &.li-right {
+                border-right: 1px solid #3b526c;
+            }
+
+            &.active {
+                background-color: rgba(0, 86, 199, 0.4);
+            }
+        }
+    }   
+}
+.dialog-body{
+    .footerButton{
+        margin-top: 20px;
+    }
+}
+.form-body{
+    .el-row{
+        margin-bottom: 10px;
+    }
+}
+</style>

+ 219 - 0
src/views/IntegratedAlarm/safe/powerRationing/windDialog/zbJson.json

@@ -0,0 +1,219 @@
+{
+    "wind": [
+        {
+            "code": "qt",
+            "name": "IGBT温度"
+        },
+        {
+            "code": "fdj",
+            "name": "U1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "U2绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "V1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "V2绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "W1绕组温度"
+        },
+        {
+            "code": "fdj",
+            "name": "W2绕组温度"
+        },
+        {
+            "code": "jc",
+            "name": "X方向振动幅度值"
+        },
+        {
+            "code": "jc",
+            "name": "Y方向振动幅度值"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机1温度"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机2温度"
+        },
+        {
+            "code": "bj",
+            "name": "变桨电机3温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱入口油温"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱轴1温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮箱轴2温度"
+        },
+        {
+            "code": "clx",
+            "name": "齿轮油油温"
+        },
+        {
+            "code": "fdj",
+            "name": "发电机转速"
+        },
+        {
+            "code": "fdj",
+            "name": "非驱动轴承温度/轴承B温度"
+        },
+        {
+            "code": "qt",
+            "name": "风机60秒风向"
+        },
+        {
+            "code": "qt",
+            "name": "风速"
+        },
+        {
+            "code": "qt",
+            "name": "风向"
+        },
+        {
+            "code": "qt",
+            "name": "功率因数"
+        },
+        {
+            "code": "jc",
+            "name": "环境温度"
+        },
+        {
+            "code": "jc",
+            "name": "机舱温度"
+        },
+        {
+            "code": "bj",
+            "name": "桨距角设定值"
+        },
+        {
+            "code": "jc",
+            "name": "控制柜温度/塔底柜温度"
+        },
+        {
+            "code": "qt",
+            "name": "轮毂温度"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧A相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧B相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "网侧C相电流"
+        },
+        {
+            "code": "fdj",
+            "name": "叶轮转速"
+        },
+        {
+            "code": "fdj",
+            "name": "有功功率"
+        },
+        {
+            "code": "qt",
+            "name": "主轴叶轮侧温度"
+        },
+        {
+            "code": "qt",
+            "name": "总发电量"
+        },
+        {
+            "code": "qt",
+            "name": "无功功率"
+        },
+        {
+            "code": "yy",
+            "name": "液压系统油位"
+        },
+        {
+            "code": "yy",
+            "name": "液压系统油压"
+        },
+        {
+            "code": "ph",
+            "name": "机舱方向/对风角度"
+        },
+        {
+            "code": "ph",
+            "name": "偏航位置"
+        },
+        {
+            "code": "ph",
+            "name": "偏航功率"
+        },
+        {
+            "code": "ph",
+            "name": "偏航右极限位置"
+        }
+    ],
+    "power": [
+        "变压器油温",
+        "电抗器温度",
+        "电网AB线电压",
+        "电网A相电流",
+        "电网A相电压",
+        "电网BC线电压",
+        "电网B相电流",
+        "电网B相电压",
+        "电网CA线电压",
+        "电网C相电流",
+        "电网C相电压",
+        "电网频率",
+        "额定无功输出功率",
+        "负极对地电压",
+        "负极对地阻抗值",
+        "功率因数",
+        "功率因数(遥调)",
+        "机内温度",
+        "累计二氧化碳减排量",
+        "模块温度 1",
+        "模块温度 2",
+        "模块温度 3",
+        "模块温度 4",
+        "模块温度 5",
+        "模块温度 6",
+        "逆变器关机时间",
+        "逆变器交流电流",
+        "逆变器交流电压",
+        "逆变器开机时间",
+        "逆变器输入电流",
+        "逆变器输入电压",
+        "逆变器效率",
+        "逆变器运行状态",
+        "逆变器直流电流",
+        "逆变器直流电压",
+        "年发电量",
+        "日并网分钟",
+        "日发电量",
+        "视在功率",
+        "输入总功率",
+        "无功功率",
+        "无功功率(遥调)",
+        "有功功率",
+        "有功功率(遥调)",
+        "月发电量",
+        "正极对地阻抗值",
+        "总电压",
+        "总发电量",
+        "总运行时间"
+    ]
+}

+ 44 - 20
src/views/IntegratedAlarm/safe/stopQuery/index.vue

@@ -49,7 +49,7 @@
           </div>
         </div>
         <div class="search-item">
-          <span class="label">停机类型:</span>
+          <span class="label">类型:</span>
           <div class="search-content">
             <el-select
               v-model="type"
@@ -63,7 +63,7 @@
             </el-select>
           </div>
         </div>
-        <div class="search-item">
+        <!-- <div class="search-item">
           <span class="label">故障描述:</span>
           <div class="search-content">
             <el-input
@@ -73,7 +73,7 @@
               clearable
             ></el-input>
           </div>
-        </div>
+        </div> -->
         <div class="search-item">
           <span class="label">日期区间:</span>
           <div class="search-content">
@@ -97,6 +97,13 @@
         <el-button class="buttons" round size="mini" @click="getTableData"
           >查询</el-button
         >
+        <el-button
+          size="mini"
+          class="buttons"
+          round
+        >
+          导出</el-button
+        >
       </div>
     </div>
     <div class="table-wrapper">
@@ -133,6 +140,20 @@
             </span>
           </template>
         </el-table-column>
+        <el-table-column
+            label="操作"
+            width="100"
+            header-align="center"
+            align="center"
+          >
+            <template #default="scope">
+              <el-button
+                style="color: #05bb4c"
+                type="text"
+                >确认本条</el-button
+              >
+            </template>
+          </el-table-column>
       </el-table>
       <div class="pagination-wrapper">
         <el-pagination
@@ -181,41 +202,41 @@ export default {
       tableData: [],
       tHeader: [
         {
-          label: "设备编号",
+          label: "场站",
           prop: "code",
         },
         {
-          label: "停机时间",
+          label: "机组",
+          prop: "code",
+        },
+        {
+          label: "开始时间",
           prop: "stopTimeName",
         },
         {
-          label: "恢复启动时间",
-          prop: "startTimeName",
+          label: "结束时间",
+          prop: "stopTimeName",
         },
         {
           label: "停机小时数",
           prop: "stopHours",
         },
         {
-          label: "损失电量",
-          prop: "lossPower",
-        },
-        {
-          label: "报警编号",
-          prop: "warningId",
+          label: "状态",
+          prop: "typeName",
         },
         {
-          label: "处理方式",
-          prop: "handleWay",
+          label: "停机类型",
+          prop: "typeName",
         },
         {
-          label: "故障现象",
-          prop: "faultView",
+          label: "损失电量(kWh)",
+          prop: "lossPower",
         },
         {
-          label: "故障类型",
-          prop: "typeName",
-        },
+          label: "报警信息",
+          prop: "warningId",
+        }
       ],
     };
   },
@@ -322,6 +343,9 @@ export default {
         }
       }
     }
+    .btns {
+      margin-left: 35px;
+    }
     .buttons {
       background-color: rgba(5, 187, 76, 0.2);
       border: 1px solid #3b6c53;

+ 8 - 4
src/views/IntegratedAlarm/safe/temperatureMonitoring/index.vue

@@ -28,9 +28,13 @@
       </div>
     </div>
     <div class="table-wrapper">
-      <div class="leftContent" :data-type="$store.state.moreSty">
-        <span>{{ pageTitle }}</span>
-      </div>
+        <div class="leftContent" :data-type="$store.state.moreSty">
+            <span>{{ pageTitle }}</span>
+        </div>
+        <el-tabs v-model="activeTab">
+            <el-tab-pane label="发电机" name="1"> </el-tab-pane>
+            <el-tab-pane label="齿轮箱" name="2"> </el-tab-pane>
+        </el-tabs>
     </div>
   </div>
 </template>
@@ -43,7 +47,7 @@ export default {
         pageTitle: "温度监控",
         stationId: "",
         stationList: "",
-
+        activeTab: "1"
     }
   },
   methods: {},