Browse Source

修改图表样式,替换页面仪表盘图片,进度条图片及弹窗图片,修复部分样式上的bug,新增三个kpi文件

baiyanting 1 năm trước cách đây
mục cha
commit
250ad197e9
100 tập tin đã thay đổi với 3944 bổ sung3035 xóa
  1. 2 2
      .env.development
  2. 164 17
      src/App.vue
  3. 8 0
      src/api/factoryMonitor/index.js
  4. 1 0
      src/assets/icon/svg/alarm.svg
  5. 1 0
      src/assets/icon/svg/zhgk.svg
  6. BIN
      src/assets/imgs/arrows.png
  7. BIN
      src/assets/imgs/dialog-title1.png
  8. BIN
      src/assets/imgs/dialog.png
  9. BIN
      src/assets/imgs/fnlyl1.png
  10. BIN
      src/assets/imgs/title_left_bg1.png
  11. BIN
      src/assets/imgs/windPow1.png
  12. BIN
      src/assets/imgs/windPowbac1.png
  13. 10 1
      src/assets/styles/app.less
  14. 157 231
      src/assets/styles/dialog.less
  15. 2 0
      src/assets/styles/el-override/index.less
  16. 14 0
      src/assets/styles/svg.less
  17. 3 30
      src/components/alarm/index.vue
  18. 5 5
      src/components/chart/pie/dash-pie-chart.vue
  19. 40 18
      src/components/chart/powerEcharts.vue
  20. 69 66
      src/components/qushi/dialogCheck.vue
  21. 21 24
      src/components/qushi/qushiDialog.vue
  22. 21 37
      src/components/zbDialog/index.vue
  23. 61 0
      src/router/index.js
  24. 20 0
      src/store/index.js
  25. 3 1
      src/store/modules/user.js
  26. 24 4
      src/views/Home/components/barCharts.vue
  27. 261 236
      src/views/Home/components/map.vue
  28. 8 3
      src/views/Home/components/power-review-home.vue
  29. 26 1
      src/views/Home/components/windChartCom.vue
  30. 10 405
      src/views/Home/index.vue
  31. 2 25
      src/views/economicsOperation/analyse/monthlyAnalysis/index.vue
  32. 38 18
      src/views/economicsOperation/analyse/monthlyAnalysis/reportDialog.vue
  33. 0 55
      src/views/economicsOperation/analyse/standAloneAnalyse/historyDetail.vue
  34. 2 13
      src/views/economicsOperation/analyse/standAloneAnalyse/index.vue
  35. 0 7
      src/views/economicsOperation/analyse/standAloneAnalyse/windDetailDialog.vue
  36. 36 51
      src/views/economicsOperation/benchmarkingManagement/compontent/bar-line-chart.vue
  37. 4 6
      src/views/economicsOperation/benchmarkingManagement/intervalBenchmarking/index.vue
  38. 297 313
      src/views/economicsOperation/benchmarkingManagement/loseRate/index.vue
  39. 6 8
      src/views/economicsOperation/benchmarkingManagement/performanceRankingList/decision1Mx.vue
  40. 2 3
      src/views/economicsOperation/benchmarkingManagement/performanceRankingList/index.vue
  41. 9 30
      src/views/economicsOperation/benchmarkingManagement/projectBenchmarking/index.vue
  42. 2 10
      src/views/economicsOperation/benchmarkingManagement/singleMachineBenchmarking/index.vue
  43. 4 7
      src/views/economicsOperation/benchmarkingManagement/siteBenchmarking/index.vue
  44. 2 3
      src/views/economicsOperation/benchmarkingManagement/valueBenchmarking/index.vue
  45. 4 6
      src/views/economicsOperation/benchmarkingManagement/wiringBenchmarking/index.vue
  46. 11 0
      src/views/economicsOperation/comprehensiveControl/index.vue
  47. 550 0
      src/views/economicsOperation/comprehensiveControl/maintenanceKPI/index.vue
  48. 564 0
      src/views/economicsOperation/comprehensiveControl/runningKPI/index.vue
  49. 777 0
      src/views/economicsOperation/comprehensiveControl/stationControlKPI/index.vue
  50. 4 5
      src/views/economicsOperation/efficiency/consumeEfficiency/index.vue
  51. 0 309
      src/views/economicsOperation/efficiency/lsl/index.vue
  52. 4 5
      src/views/economicsOperation/efficiency/restorationEfficiency/index.vue
  53. 4 5
      src/views/economicsOperation/efficiency/stateEfficiency/index.vue
  54. 0 264
      src/views/economicsOperation/efficiency/xtxl/index.vue
  55. 0 388
      src/views/economicsOperation/efficiency/zhl/index.vue
  56. 9 9
      src/views/economicsOperation/homePage/components/barCharts.vue
  57. 0 2
      src/views/economicsOperation/homePage/index.vue
  58. 21 3
      src/views/economicsOperation/monthElectricAnalyse/components/barCharts.vue
  59. 8 5
      src/views/economicsOperation/monthElectricAnalyse/index.vue
  60. 14 16
      src/views/economicsOperation/performanceAnalyse/performanceAssess/historyDetail.vue
  61. 2 5
      src/views/economicsOperation/performanceAnalyse/performanceAssess/index.vue
  62. 2 6
      src/views/economicsOperation/powerCurve/cutInAndOutAnalysis/index.vue
  63. 2 4
      src/views/economicsOperation/powerCurve/powerLinefitting/index.vue
  64. 1 1
      src/views/economicsOperation/reportForms/newEnergyDaily/index.vue
  65. 2 2
      src/views/economicsOperation/reportForms/newEnergyMonthly/index.vue
  66. 2 2
      src/views/economicsOperation/reportForms/specifcGravity/index.vue
  67. 2 2
      src/views/economicsOperation/reportForms/windMonthly/index.vue
  68. 1 2
      src/views/economicsOperation/thematicAnalysis/MTBF/index.vue
  69. 1 2
      src/views/economicsOperation/thematicAnalysis/MTTR/index.vue
  70. 1 2
      src/views/economicsOperation/thematicAnalysis/affected/index.vue
  71. 2 10
      src/views/economicsOperation/thematicAnalysis/comprehensiveAnalysis/index.vue
  72. 1 2
      src/views/economicsOperation/thematicAnalysis/defect/index.vue
  73. 1 2
      src/views/economicsOperation/thematicAnalysis/failure/index.vue
  74. 2 12
      src/views/economicsOperation/thematicAnalysis/generation/index.vue
  75. 1 2
      src/views/economicsOperation/thematicAnalysis/maintain/index.vue
  76. 1 2
      src/views/economicsOperation/thematicAnalysis/property/index.vue
  77. 1 2
      src/views/economicsOperation/thematicAnalysis/ration/index.vue
  78. 1 2
      src/views/economicsOperation/thematicAnalysis/reset/index.vue
  79. 1 2
      src/views/economicsOperation/thematicAnalysis/state/index.vue
  80. 1 2
      src/views/economicsOperation/thematicAnalysis/synthesize/index.vue
  81. 1 2
      src/views/economicsOperation/thematicAnalysis/windEnergy/index.vue
  82. 1 1
      src/views/report/dlyc.vue
  83. 1 1
      src/views/report/nhdl.vue
  84. 1 1
      src/views/report/xzdl.vue
  85. 0 2
      src/views/stateMonitor/DetailMatrix/index.vue
  86. 0 2
      src/views/stateMonitor/LightMatrix/index.vue
  87. 2 9
      src/views/stateMonitor/alarmCenter/commonAlarm/index.vue
  88. 24 1
      src/views/stateMonitor/factoryMonitor/components/headerButton.vue
  89. 118 0
      src/views/stateMonitor/factoryMonitor/components/power-review-home.vue
  90. 69 14
      src/views/stateMonitor/factoryMonitor/components/saliderBar.vue
  91. 171 23
      src/views/stateMonitor/factoryMonitor/photovoltaic/lightBoosterStation/index.vue
  92. 5 5
      src/views/stateMonitor/factoryMonitor/photovoltaic/lightDataTarget/index.vue
  93. 0 1
      src/views/stateMonitor/factoryMonitor/photovoltaic/lightGeomorphologicMap/components/zhenqudialog.vue
  94. 2 3
      src/views/stateMonitor/factoryMonitor/photovoltaic/lightMatrix/index.vue
  95. 0 1
      src/views/stateMonitor/factoryMonitor/photovoltaic/lightMatrixMonitor/index.vue
  96. 33 42
      src/views/stateMonitor/factoryMonitor/photovoltaic/lighthome/index.vue
  97. 5 5
      src/views/stateMonitor/factoryMonitor/windPowerPlant/DataTarget/index.vue
  98. 155 4
      src/views/stateMonitor/factoryMonitor/windPowerPlant/boosterStation/index.vue
  99. 23 205
      src/views/stateMonitor/factoryMonitor/windPowerPlant/components/barCharts.vue
  100. 0 0
      src/views/stateMonitor/factoryMonitor/windPowerPlant/components/lineCharts.vue

+ 2 - 2
.env.development

@@ -1,7 +1,7 @@
 
-VUE_APP_API=http://192.168.1.105:6060
+# VUE_APP_API=http://192.168.1.100:6060
 
-# VUE_APP_API=http://10.81.3.153:6060
+VUE_APP_API=http://10.81.3.153:6060
 
 
 VUE_APP_ADAPTERURL=http://10.81.3.155:8011

+ 164 - 17
src/App.vue

@@ -105,6 +105,7 @@ import Menu from "@/views/layout/Menu.vue";
 import Header from "@/views/layout/Header.vue";
 import LoginPage from "./views/layout/login-page.vue";
 import sisView from "./views/sisView/index.vue";
+import { GetBoosterlist } from "@/api/factoryMonitor/index.js";
 
 import SvgIcon from "@com/coms/icon/svg-icon.vue";
 import $ from "jquery";
@@ -134,6 +135,41 @@ export default {
         fontsize: "16px",
         transform: "scaleY(1) scaleX(1) translate(-50%, -50%)",
       },
+      // websocket相关
+      socketObj: "", // websocket实例对象
+      //心跳检测
+      heartCheck: {
+        vueThis: this, // vue实例
+        timeout: 30000, // 超时时间
+        timeoutObj: null, // 计时器对象——向后端发送心跳检测
+        serverTimeoutObj: null, // 计时器对象——等待后端心跳检测的回复
+        // 心跳检测重置
+        reset: function () {
+          clearTimeout(this.timeoutObj);
+          clearTimeout(this.serverTimeoutObj);
+          return this;
+        },
+        // 心跳检测启动
+        start: function () {
+          this.timeoutObj && clearTimeout(this.timeoutObj);
+          this.serverTimeoutObj && clearTimeout(this.serverTimeoutObj);
+          this.timeoutObj = setTimeout(() => {
+            // 这里向后端发送一个心跳检测,后端收到后,会返回一个心跳回复
+            this.vueThis.socketObj.send("HeartBeat");
+            console.log("发送心跳检测");
+            this.serverTimeoutObj = setTimeout(() => {
+              // 如果超过一定时间还没重置计时器,说明websocket与后端断开了
+              console.log("未收到心跳检测回复");
+              // 关闭WebSocket
+              this.vueThis.socketObj.close();
+            }, this.timeout);
+          }, this.timeout);
+        },
+      },
+      socketReconnectTimer: null, // 计时器对象——重连
+      socketReconnectLock: false, // WebSocket重连的锁
+      socketLeaveFlag: false, // 离开标记(解决 退出登录再登录 时出现的 多次相同推送 问题,出现的本质是多次建立了WebSocket连接)
+      alarmList: {},
     };
   },
   computed: {
@@ -154,7 +190,7 @@ export default {
       "class",
       themeName === "dark" || themeName === "light" ? themeName : "dark"
     );
-
+    console.log("离开标记", this.socketLeaveFlag);
     // that.$nextTick(() => {
     //   that.API.requestData({
     //     isMust: false, // 请求是否携带 token ,默认为 true ,可缺省
@@ -190,6 +226,14 @@ export default {
     $(window).resize(() => {
       that.setScale();
     });
+    if (!this.socketLeaveFlag) {
+      // 没有离开——重连
+      // websocket重连
+      this.socketReconnect();
+    }
+  },
+  unmounted() {
+    console.log("离开标记", this.socketLeaveFlag);
   },
   methods: {
     getScale() {
@@ -226,26 +270,118 @@ export default {
         }, 500);
       }
     },
+    getBooster() {
+      GetBoosterlist().then((res) => {
+        if (res.data && res.data.code == 200) {
+          this.$store.commit("changeBooster", res.data.data);
+        }
+      });
+    },
     login() {
       this.$store.commit("user/SET_LOGINSTATE", true);
+      this.getBooster();
+      // websocket启动
+      this.createWebSocket();
     },
     selectMenu(menuIndex) {
       this.menuIndex = menuIndex;
     },
-
-    // clearBackground() {
-    //   return;
-    //   let body = $("body.light");
-    //   if (!body) body = $("body.dark");
-    //   body.css({
-    //     // background: "transparent",
-    //     background: "#fff",
-    //   });
-    //   body.find("#app").css({
-    //     // background: "transparent",
-    //     background: "#fff",
-    //   });
-    // },
+    // websocket启动
+    createWebSocket() {
+      //   let webSocketLink = `ws://192.168.1.102:6014/websocketBt/${this.$store.state.user.userId}_${this.$store.state.user.authToken}`;
+      let webSocketLink = `ws://10.81.3.154:6014/websocketBt/${this.$store.state.user.userId}_${this.$store.state.user.authToken}`; // webSocket地址
+      // console.log(webSocketLink);
+      try {
+        if ("WebSocket" in window) {
+          this.socketObj = new WebSocket(webSocketLink);
+        }
+        // websocket事件绑定
+        this.socketEventBind();
+      } catch (e) {
+        console.log("catch" + e);
+        // websocket重连
+        this.socketReconnect();
+      }
+    },
+    // websocket事件绑定
+    socketEventBind() {
+      // 连接成功建立的回调
+      this.socketObj.onopen = this.onopenCallback;
+      // 连接发生错误的回调
+      this.socketObj.onerror = this.onerrorCallback;
+      // 连接关闭的回调
+      this.socketObj.onclose = this.oncloseCallback;
+      // 向后端发送数据的回调
+      this.socketObj.onsend = this.onsendCallback;
+      // 接收到消息的回调
+      this.socketObj.onmessage = this.getMessageCallback;
+
+      //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
+      window.onbeforeunload = () => {
+        this.socketObj.close();
+      };
+    },
+    // websocket重连
+    socketReconnect() {
+      if (this.socketReconnectLock) {
+        return;
+      }
+      this.socketReconnectLock = true;
+      this.socketReconnectTimer && clearTimeout(this.socketReconnectTimer);
+      this.socketReconnectTimer = setTimeout(() => {
+        console.log("WebSocket:重连中...");
+        this.socketReconnectLock = false;
+        // websocket启动
+        this.createWebSocket();
+      }, 4000);
+    },
+    // 连接成功建立的回调
+    onopenCallback: function (event) {
+      console.log("WebSocket:已连接");
+      // 心跳检测重置
+      this.heartCheck.reset().start();
+    },
+    // 连接发生错误的回调
+    onerrorCallback: function (event) {
+      console.log("WebSocket:发生错误");
+      // websocket重连
+      this.socketReconnect();
+    },
+    // 连接关闭的回调
+    oncloseCallback: function (event) {
+      console.log("WebSocket:已关闭");
+      // 心跳检测重置
+      this.heartCheck.reset();
+      if (!this.socketLeaveFlag) {
+        // 没有离开——重连
+        // websocket重连
+        this.socketReconnect();
+      }
+    },
+    // 向后端发送数据的回调
+    onsendCallback: function () {
+      console.log("WebSocket:发送信息给后端");
+    },
+    // 接收到消息的回调
+    getMessageCallback: function (msg) {
+      // console.log(msg);
+      console.log(msg);
+      if (Object.keys(msg) && msg.data == "ok") {
+        // 心跳回复——心跳检测重置
+        // 收到心跳检测回复就说明连接正常
+        console.log("收到心跳检测回复");
+        // 心跳检测重置
+        this.heartCheck.reset().start();
+      } else {
+        // 普通推送——正常处理
+        console.log("收到推送消息");
+        let data = JSON.parse(msg.data);
+        // 相关处理
+        console.log(data);
+        this.alarmList = data;
+        this.$store.commit("changeAlarmlist", data);
+      }
+    },
   },
 
   watch: {
@@ -282,6 +418,17 @@ export default {
     "$store.state.menuData"(res) {
       this.menuData = res;
     },
+    isLogined: {
+      handler(res) {
+        if (!res && this.socketObj) {
+          // 离开标记
+          this.socketLeaveFlag = true;
+          // 关闭WebSocket
+          this.socketObj.close();
+        }
+      },
+      immediate: true,
+    },
     "$store.state.moudleName"(msg) {
       if (window.__MODE__.showModuleName && msg) {
         this.BASE.showMsg({
@@ -296,7 +443,7 @@ export default {
 </script>
 
 <style lang="less">
-@import "./assets/styles/main.less";
+@import "~@/assets/styles/main.less";
 #screen {
   z-index: 100;
   transform-origin: 0 0;
@@ -310,7 +457,7 @@ export default {
 
   &::-webkit-scrollbar {
     width: 6px;
-    height: 6px;
+    height: 8px;
   }
 
   &::-webkit-scrollbar-track-piece {

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

@@ -7,6 +7,14 @@ export function GetStationByCompany(data) {
     method: "get",
   });
 }
+//获取升压站数据
+export function GetBoosterlist(data) {
+  return request({
+    baseURL: process.env.VUE_APP_API,
+    url: `substation/queryall`,
+    method: "get",
+  });
+}
 //获取所有数据指标
 export function GetWtTargets(data) {
   return request({

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
src/assets/icon/svg/alarm.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
src/assets/icon/svg/zhgk.svg


BIN
src/assets/imgs/arrows.png


BIN
src/assets/imgs/dialog-title1.png


BIN
src/assets/imgs/dialog.png


BIN
src/assets/imgs/fnlyl1.png


BIN
src/assets/imgs/title_left_bg1.png


BIN
src/assets/imgs/windPow1.png


BIN
src/assets/imgs/windPowbac1.png


+ 10 - 1
src/assets/styles/app.less

@@ -88,7 +88,16 @@
     padding-right: 0px;
   }
 }
-
+.el-loading-mask {
+  .el-loading-spinner {
+    .path {
+      stroke: #05bb4c;
+    }
+    .el-loading-text {
+      color: #05bb4c !important;
+    }
+  }
+}
 .el-col + .el-col {
   padding-left: 1.481vh;
 }

+ 157 - 231
src/assets/styles/dialog.less

@@ -4,17 +4,6 @@
     border: 1px solid fade(@green, 50);
     box-shadow: 0px 8px 17px 1px rgba(5, 187, 76, 0.3);
 
-    .el-dialog__header {
-      padding: 10px 0;
-      border-bottom: 1px solid #323b3c;
-      margin: 0 24px;
-
-      .el-dialog__title {
-        font-size: 16px;
-        color: fade(@white, 75);
-      }
-    }
-
     &.el-dialog--center .el-dialog__body,
     .el-dialog__body {
       padding: 16px 24px;
@@ -49,7 +38,133 @@
   display: none;
 }
 
+.footerButton {
+  justify-content: right;
+
+  .el-button:first-child {
+    width: 108px;
+    background-color: rgba(84, 183, 90, 0.16) !important;
+    color: #b3b3b3;
+    border-color: transparent;
+  }
+
+  .el-button:last-of-type {
+    background-color: rgba(5, 187, 76, 0.3);
+    border: 1px solid #3b6c53;
+    color: #b3b3b3;
+    font-size: 14px;
+    border: none;
+    width: 108px;
+    min-height: 25px !important;
+
+    &:hover {
+      background-color: rgba(5, 187, 76, 0.6);
+      color: #ffffff;
+    }
+  }
+}
 .el-overlay {
+  ul li {
+    list-style: none;
+  }
+  .el-drawer.rtl {
+    height: 100%;
+    background-color: #161816 !important;
+    .el-drawer__header {
+      font-size: 18px;
+      color: #d8dde3;
+    }
+    .el-drawer__body {
+      height: calc(100% - 70px);
+      .drawer-form {
+        display: flex;
+        align-items: center;
+        margin-bottom: 15px;
+      }
+      .table-wrapper {
+        height: calc(100% - 70px - 33px);
+      }
+      .select-item {
+        margin-right: 10px;
+        white-space: nowrap;
+        display: flex;
+        align-items: center;
+      }
+      .btns {
+        align-items: center;
+        display: flex;
+        .buttons {
+          background-color: rgba(5, 187, 76, 0.2);
+          border: 1px solid #3b6c53;
+          color: #b3b3b3;
+          font-size: 14px;
+
+          &:hover,
+          &.active {
+            background-color: rgba(5, 187, 76, 0.5);
+            color: #ffffff;
+          }
+        }
+      }
+      .el-pagination {
+        display: flex;
+        justify-content: flex-end;
+        padding-bottom: 15px;
+        padding-top: 15px;
+      }
+    }
+  }
+  .el-dialog {
+    &:not(.cDialog) {
+      background: #081410;
+      border: 1px solid #083d22;
+      border-top: 0px;
+      box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.35);
+      border-radius: 12px 12px 6px 6px;
+    }
+  }
+  .el-dialog__header {
+    padding: 20px 0 !important;
+    // border-bottom: 1px solid #323b3c;
+    background: url("~@/assets/imgs/dialog-title1.png") no-repeat;
+    background-size: 100% 100%;
+    background-position: center;
+  }
+
+  .dialog-title {
+    text-align: center;
+    font-size: 18px;
+    font-family: Microsoft YaHei;
+    font-weight: 400;
+    color: #ffffff;
+  }
+  .el-dialog__headerbtn {
+    &:hover,
+    &:active {
+      .el-dialog__close {
+        color: #fff;
+      }
+    }
+  }
+
+  .el-checkbox__input.is-checked .el-checkbox__inner {
+    border-color: #05bb4c !important;
+  }
+  .el-date-editor--daterange {
+    background: transparent;
+    border: 1px solid #2a374f;
+    border-radius: 30px;
+    height: 25px;
+    .el-range-input {
+      background: transparent;
+      color: #fff;
+    }
+    .el-range-separator {
+      width: 10%;
+      color: #fff;
+      position: relative;
+    }
+  }
   .card {
     position: fixed;
     top: 120px;
@@ -167,74 +282,6 @@
     background: rgba(83, 89, 104, 0.1) !important;
   }
 
-  //   .elDatePicker .el-date-picker__time-header {
-  //     border-bottom: 1px solid #323b3c;
-  //   }
-
-  //   .elDatePicker .el-input__inner {
-  //     height: 26px !important;
-  //     line-height: 26px !important;
-  //   }
-
-  //   .elDatePicker .el-picker-panel {
-  //     border: 1px solid #094493 !important;
-  //     background: #090e19 !important;
-  //   }
-
-  //   .elDatePicker .el-date-table th {
-  //     border-bottom: 1px solid #2a374f;
-  //   }
-
-  //   .elDatePicker .el-picker-panel .el-time-panel {
-  //     background: #141a25 !important;
-  //   }
-
-  //   .elDatePicker .el-time-spinner__item.active:not(.disabled) {
-  //     color: #ffffff !important;
-  //   }
-
-  //   .elDatePicker .el-time-panel__footer {
-  //     background: #141a25 !important;
-  //     border-top: 1px solid #323b3c;
-  //   }
-
-  //   .elDatePicker .el-popper__arrow {
-  //     display: none;
-  //   }
-
-  //   .elDatePicker .el-date-table td.next-month,
-  //   .elDatePicker .el-date-table td.prev-month {
-  //     color: #909399;
-  //   }
-
-  //   .elDatePicker .el-date-table td.current:not(.disabled) span {
-  //     background: #0046c7;
-  //   }
-
-  //   .elDatePicker .el-time-panel {
-  //     border: 1px solid #003277 !important;
-  //   }
-
-  //   .elDatePicker .el-picker-panel__footer {
-  //     margin-top: -10px;
-  //     padding-bottom: 10px;
-  //     background: #090e19 !important;
-  //     border-top: 1px solid transparent;
-  //   }
-
-  //   .elDatePicker .el-picker-panel .el-picker-panel__footer .el-button {
-  //     min-height: 22px !important;
-  //     width: 80px;
-  //     background-color: rgba(0, 70, 199, 0.2) !important;
-  //     color: #b3b3b3;
-  //     border-radius: 20px;
-  //     border-color: transparent;
-  //   }
-
-  //   .elDatePicker .el-picker-panel .el-picker-panel__footer .el-button:last-of-type {
-  //     background: rgba(0, 70, 199, 0.4) !important;
-  //   }
-
   .tables .el-input-number__increase,
   .tables .el-input-number__decrease {
     border: none !important;
@@ -328,15 +375,6 @@
   //     backdrop-filter: blur(5px);
   //   }
 
-  .el-dialog {
-    &:not(.cDialog) {
-      background: #0c0f15 !important;
-      border: 1px solid #003277;
-      border-radius: 4px !important;
-      box-shadow: 0 0 22px rgba(0, 70, 199, 0.2) inset !important;
-    }
-  }
-
   .el-dialog--center .el-dialog__body,
   .el-dialog__body {
     padding: 25px 24px;
@@ -346,44 +384,6 @@
     padding: 0px 15px;
   }
 
-  .el-dialog__header {
-    padding: 20px 0 !important;
-    border-bottom: 1px solid #323b3c;
-    margin: 0 24px;
-  }
-
-  /* .matrix-body .el-dialog__header {
-    padding: 0 0 !important;
-    border-bottom: 0px solid #323b3c;
-    margin: 0 24px;
-} */
-
-  .el-dialog__title {
-    font-size: 16px !important;
-    color: #ffffff !important;
-  }
-
-  .el-dialog__body::before,
-  .el-dialog__body::after {
-    content: "";
-    display: block;
-    width: 5px;
-    height: 5px;
-    border-radius: 50%;
-    background: rgba(16, 73, 126, 1);
-    position: absolute;
-  }
-
-  .el-dialog__body::before {
-    bottom: 9px;
-    left: 9px;
-  }
-
-  .el-dialog__body::after {
-    bottom: 9px;
-    right: 9px;
-  }
-
   .el-select .el-select__tags .el-tag {
     background-color: rgba(30, 90, 163, 0.5);
     color: #ffffff;
@@ -498,72 +498,6 @@ background-color: rgba(30,90,163, .5);
     /*font-size: 14px !important;*/
   }
 
-  /*.el-table .el-table__row {*/
-  /*    color: rgba(149, 149, 149, 1);*/
-  /*}*/
-
-  //   .el-table thead {
-  //     color: rgba(255, 255, 255, 1) !important;
-  //   }
-
-  //   .el-table thead .cell {
-  //     font-weight: normal !important;
-  //   }
-
-  //   .el-table tr {
-  //     background-color: transparent !important;
-  //   }
-
-  //   .add .el-table tr {
-  //     background-color: red !important;
-  //   }
-
-  //   .add .el-table .el-table__row--striped {
-  //     background-color: red !important;
-  //   }
-
-  //   .el-table .el-table__row--striped {
-  //     background-color: transparent;
-  //   }
-
-  //   .el-table--striped
-  //     .el-table__body
-  //     tr.el-table__row--striped
-  //     td.el-table__cell {
-  //     background-color: rgba(96, 103, 105, 0.2) !important;
-  //   }
-
-  //   .el-table__body tr.hover-row.current-row > td,
-  //   .el-table__body tr.hover-row.el-table__row--striped.current-row > td,
-  //   .el-table__body tr.hover-row.el-table__row--striped > td,
-  //   .el-table__body tr.hover-row > td {
-  //     background: transparent !important;
-  //     color: #05bb4c !important;
-  //   }
-
-  //   .bodys .el-table th.el-table__cell > .cell {
-  //     height: 50px;
-  //     color: #b3b3b3;
-  //   }
-
-  //   .bodyed .el-table th.el-table__cell > .cell {
-  //     color: #b3b3b3;
-  //   }
-
-  //   .el-table th.el-table__cell {
-  //     background-color: rgba(83, 89, 104, 0.3) !important;
-  //     border-right: 1px solid rgba(0, 0, 0, 0.8);
-  //     border-bottom: 1px solid rgba(0, 0, 0, 0.8) !important;
-  //   }
-
-  //   .el-table td.el-table__cell {
-  //     border-bottom: none !important;
-  //   }
-
-  //   .el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell {
-  //     background-color: transparent !important;
-  //     color: #05bb4c !important;
-  //   }
   .el-checkbox__inner {
     background-color: transparent !important;
     border-color: #959595 !important;
@@ -586,10 +520,6 @@ background-color: rgba(30,90,163, .5);
     padding-left: 0;
   }
 
-  .el-checkbox__input.is-checked .el-checkbox__inner {
-    border-color: rgba(0, 70, 199, 1) !important;
-  }
-
   .el-button.is-round {
     padding: 0px 30px !important;
   }
@@ -613,10 +543,6 @@ background-color: rgba(30,90,163, .5);
     padding: 0 !important;
   }
 
-  .footerButton .el-button:last-of-type {
-    background: rgba(0, 70, 199, 0.4) !important;
-  }
-
   .mentuese .el-table__fixed-header-wrapper .el-table__cell .cell {
     color: #ffffff !important;
   }
@@ -788,42 +714,42 @@ background-color: rgba(30,90,163, .5);
     height: 1px !important;
   }
 
-  .el-dialog__body::before,
-  .el-dialog__body::after {
-    content: "";
-    display: block;
-    width: 5px;
-    height: 5px;
-    border-radius: 50%;
-    background: rgba(16, 73, 126, 1);
-    position: absolute;
-  }
+  //   .el-dialog__body::before,
+  //   .el-dialog__body::after {
+  //     content: "";
+  //     display: block;
+  //     width: 5px;
+  //     height: 5px;
+  //     border-radius: 50%;
+  //     background: rgba(16, 73, 126, 1);
+  //     position: absolute;
+  //   }
 
-  .el-dialog__body::before {
-    bottom: 9px;
-    left: 9px;
-  }
+  //   .el-dialog__body::before {
+  //     bottom: 9px;
+  //     left: 9px;
+  //   }
 
-  .el-dialog__body::after {
-    bottom: 9px;
-    right: 9px;
-  }
+  //   .el-dialog__body::after {
+  //     bottom: 9px;
+  //     right: 9px;
+  //   }
 
-  .dialog-title {
-    position: relative;
-  }
+  //   .dialog-title {
+  //     position: relative;
+  //   }
 
-  .dialog-title .dialog-title-img {
-    position: absolute;
-    left: -25px;
-    top: -15px;
-  }
+  //   .dialog-title .dialog-title-img {
+  //     position: absolute;
 
-  .dialog-title .title {
-    margin-left: 20px;
-    color: #1c99ff;
-    // color: #05bb4c;
-  }
+  //     top: -25px;
+  //   }
+
+  //   .dialog-title .title {
+  //     margin-left: 20px;
+  //     color: #1c99ff;
+  //     // color: #05bb4c;
+  //   }
 
   .dialog-body {
     position: relative;

+ 2 - 0
src/assets/styles/el-override/index.less

@@ -3,3 +3,5 @@
 @import "./el-pagination.less";
 @import "./el-input.less";
 @import "./el-table.less";
+
+

+ 14 - 0
src/assets/styles/svg.less

@@ -151,6 +151,20 @@
     }
   }
 
+   &.svg-icon-lightyellow {
+    svg {
+      use {
+        fill: #F8DE5B;
+      }
+    }
+    &.svg-shadow {
+      svg {
+        use {
+          filter: drop-shadow(0 0 6px #F8DE5B);
+        }
+      }
+    }
+  }
   &.svg-icon-orange {
     svg {
       use {

+ 3 - 30
src/components/alarm/index.vue

@@ -2,7 +2,6 @@
   <el-dialog v-model="dialogVisible" width="80%" top="120px">
     <template #title>
       <div class="dialog-title">
-        <img class="dialog-title-img" src="@/assets/imgs/dialog-title.png" />
         <div class="title">设备报警信息</div>
       </div>
     </template>
@@ -37,11 +36,6 @@
         </el-pagination>
       </div>
     </div>
-    <template #footer>
-      <span class="dialog-footer">
-        <el-button size="mini" round @click="cancel">关闭</el-button>
-      </span>
-    </template>
   </el-dialog>
 </template>
 <script>
@@ -128,30 +122,9 @@ export default {
 };
 </script>
 <style lang="less" scoped>
-.dialog-footer button:first-child {
-  border-color: transparent;
-  margin-right: 10px;
-  background-color: rgba(0, 70, 199, 0.2) !important;
-  color: #b3b3b3;
-}
-.el-dialog {
-  .el-dialog__body {
-    height: calc(100vh - 320px);
-  }
-}
-.footerButton {
-  justify-content: right;
-
-  .el-button:first-child {
-    width: 108px;
-  }
-
-  .el-button:last-of-type {
-    width: 108px;
-    background: rgba(0, 70, 199, 0.4) !important;
-  }
-}
 .el-pagination {
-  text-align: right;
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
 }
 </style>

+ 5 - 5
src/components/chart/pie/dash-pie-chart.vue

@@ -81,7 +81,7 @@ export default {
           z: 8,
           textAlign: "center",
           textStyle: {
-            color:'#999',
+            color: "#999",
             fontSize: 12,
             fontWeight: "normal",
           },
@@ -185,7 +185,7 @@ export default {
           {
             name: "外部刻度",
             type: "gauge",
-             center: ['50%', '49.5%'],
+            center: ["50%", "49.5%"],
             radius: "100%",
             min: this.min, //最小刻度
             max: this.max, //最大刻度
@@ -218,7 +218,7 @@ export default {
               splitNumber: 2,
               lineStyle: {
                 color: $("#appBody").is(".dark")
-                  ? partten.getColor("green")
+                  ? partten.getColor(this.color)
                   : "rgb(57, 54, 143)", //用颜色渐变函数不起作用
                 width: 1,
               },
@@ -297,9 +297,9 @@ export default {
                   // ],
                   [
                     1,
-                    $("#appBody").is(".dark")
+                    this.color == "green"
                       ? "rgba(45,230,150,0.1)"
-                      : "rgba(57, 54, 143, 0.1)",
+                      : "rgba(255, 131, 0, 0.1)",
                   ],
                   // [1, "rgba(45,230,150,0)"],
                 ],

+ 40 - 18
src/components/chart/powerEcharts.vue

@@ -30,11 +30,11 @@ export default {
     },
     width: {
       type: String,
-      default: "870px",
+      default: "100%",
     },
     height: {
       type: String,
-      default: "165px",
+      default: "100%",
     },
     CurveValues: {
       type: Array,
@@ -52,18 +52,25 @@ export default {
     },
     orient: String,
   },
-  mounted() {
-    this.$nextTick(() => {
-      this.getChart();
-    });
-  },
+
   data() {
     return {
       emptyData: [],
       current: 0,
     };
   },
+  mounted() {
+    this.$nextTick(() => {
+      this.getChart();
+      window.addEventListener("resize", this.resize);
+    });
+  },
   methods: {
+    resize() {
+      var chartDom = document.getElementById(`main${this.id}`);
+      var myChart = echarts.init(chartDom); // 绘制图表
+      myChart.resize();
+    },
     getChart() {
       var chartDom = document.getElementById(`main${this.id}`);
       var myChart = echarts.init(chartDom); // 绘制图表
@@ -78,9 +85,26 @@ export default {
         tooltip: {
           // formatter: '{a} <br/>{b} : {c}',
           trigger: "axis",
-          backgroundColor: "rgba(0, 0, 0, 0.3)",
-          textStyle: {
-            color: "white", //设置文字颜色
+          backgroundColor: "rgba(5, 187, 76,0.35)",
+          borderColor: "#05bb4c",
+          formatter: function (params) {
+            var htmlStr = `<div style='font-size:16px;color:#fff;margin-bottom:5px'>${params[0].axisValue}</div>`;
+            for (var i = 0; i < params.length; i++) {
+              htmlStr += `<div style='font-size:16px;color:#fff;margin-bottom:2px'>`;
+              var param = params[i];
+              var seriesName = param.seriesName; //图例名称
+              var value = param.value; //y轴值
+              var data = param.data; //单位判断code
+              var mark = param.marker; //点
+              var unit = `<span style='font-size:14px'>`;
+
+              htmlStr += mark; //一个点
+              htmlStr += `${seriesName} : ${
+                value != null ? value + unit + " MW</span>" : "--"
+              }`; //圆点后面显示的文本
+              htmlStr += "</div>";
+            }
+            return htmlStr;
           },
         },
         legend: {
@@ -142,8 +166,8 @@ export default {
         },
         grid: [
           {
-            left: 50,
-            right: 100,
+            left: 25,
+            right: this.orient ? 100 : 28,
             top: 30,
             bottom: 30,
             containLabel: true,
@@ -242,12 +266,10 @@ export default {
     },
   },
   watch: {
-    CurveValues: {
-      handler() {
-        this.$nextTick(() => {
-          this.getChart();
-        });
-      },
+    "$store.state.isFixed"() {
+      this.$nextTick(() => {
+        this.resize();
+      });
     },
   },
 };

+ 69 - 66
src/components/qushi/dialogCheck.vue

@@ -96,8 +96,8 @@
         class="footerButton"
         style="position: absolute; bottom: 19px; right: 6px"
       >
-        <el-button round @click="cancel">关闭</el-button>
-        <el-button type="primary" round @click="openCurvDatased"
+        <el-button size="mini" round @click="cancel">关闭</el-button>
+        <el-button size="mini" round @click="openCurvDatased"
           >确认</el-button
         >
       </el-row>
@@ -453,30 +453,40 @@ ul li {
   background-position: 7px;
 }
 
-.footerButton {
-  justify-content: right;
-
-  .el-button:first-child {
-    width: 108px;
-    background-color: rgba(0, 70, 199, 0.2) !important;
-    color: #b3b3b3;
-    border-color: transparent;
-  }
-
-  .el-button:last-of-type {
-    width: 108px;
-    background: rgba(0, 70, 199, 0.4) !important;
-  }
-}
+// .footerButton {
+//   justify-content: right;
+
+//   .el-button:first-child {
+//     width: 108px;
+//     background-color: rgba(84, 183, 90, 0.16) !important;
+//     color: #b3b3b3;
+//     border-color: transparent;
+//   }
+
+//   .el-button:last-of-type {
+//      background-color: rgba(5, 187, 76, 0.2);
+//       border: 1px solid #3b6c53;
+//       color: #b3b3b3;
+//       font-size: 14px;
+//       border: none;
+//       width: 108px;
+//       min-height: 25px !important;
+
+//       &:hover {
+//         background-color: rgba(5, 187, 76, 0.5);
+//         color: #ffffff;
+//       }
+//   }
+// }
 
 .searchColor {
-  background-color: rgba(0, 70, 199, 0.2);
-  border: 1px solid #3b4c6c;
+  background-color: rgba(84, 183, 90, 0.2);
+  border: 1px solid #083d22;
   color: #b3b3b3;
   font-size: 14px;
 
   &:hover {
-    background-color: rgba(0, 70, 199, 0.5);
+    background-color: rgba(84, 183, 90, 0.5);
     color: #ffffff;
   }
 }
@@ -484,9 +494,11 @@ ul li {
 .contrasten {
   width: 172px;
   color: #ffffff;
-  border: 1px solid #094493;
-  box-shadow: 0 0 22px rgba(0, 70, 199, 0.2) inset !important;
-  background: #090e19;
+  position: fixed;
+  z-index: 999;
+  border: 1px solid #083d22;
+  box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.35) inset;
+  background: #081410;
 
   div:first-of-type {
     margin-top: 10px;
@@ -508,12 +520,38 @@ ul li {
   div:hover {
     background: linear-gradient(
       90deg,
-      rgba(28, 153, 255, 0.65),
-      rgba(28, 153, 255, 0)
+      rgba(5, 187, 76, 0.5),
+      rgba(5, 187, 76, 0)
     );
   }
 }
 
+.contrasten:before {
+  content: "";
+  position: absolute;
+  top: -21px;
+  left: 0;
+  width: 0;
+  height: 0;
+  border-top: 13px solid transparent;
+  border-left: 0px solid transparent;
+  border-right: 14px solid transparent;
+  border-bottom: 9px solid #081410;
+  z-index: 999;
+}
+
+.contrasten:after {
+  content: "";
+  position: absolute;
+  top: -25px;
+  left: -0.5px;
+  width: 0;
+  height: 0;
+  border-top: 15px solid transparent;
+  border-left: 0px solid transparent;
+  border-right: 15px solid transparent;
+  border-bottom: 10px solid #083d22;
+}
 .searchColor {
   background: rgba(0, 70, 199, 0.4);
   color: #b3b3b3;
@@ -551,40 +589,6 @@ ul li {
   background-color: #ffffff;
 }
 
-.contrasten {
-  position: fixed;
-  z-index: 999;
-  box-shadow: 0 0 22px rgba(0, 70, 199, 0.2) inset !important;
-  //border: 1px solid #094493;
-}
-
-.contrasten:before {
-  content: "";
-  position: absolute;
-  top: -21px;
-  left: 0;
-  width: 0;
-  height: 0;
-  border-top: 13px solid transparent;
-  border-left: 0px solid transparent;
-  border-right: 14px solid transparent;
-  border-bottom: 9px solid #090e19;
-  z-index: 999;
-}
-
-.contrasten:after {
-  content: "";
-  position: absolute;
-  top: -25px;
-  left: -0.5px;
-  width: 0;
-  height: 0;
-  border-top: 15px solid transparent;
-  border-left: 0px solid transparent;
-  border-right: 15px solid transparent;
-  border-bottom: 10px solid #094493;
-}
-
 .changeSer {
   width: 172px;
 
@@ -787,11 +791,10 @@ ul li {
 }
 
 .window {
-  border: 1px solid #094493;
-  background: #090e19 !important;
+  border: 1px solid #083d22;
+  background: #081410 !important;
   border-radius: 3px;
-  box-shadow: 0 0 22px rgba(0, 70, 199, 0.2) inset !important;
-  //box-shadow: 0 0 22px rgb(0 70 199 / 20%) inset !important;
+  box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.35) inset;
 }
 
 .station {
@@ -823,7 +826,7 @@ ul li {
 .ststTit {
   width: 97%;
   height: 50px;
-  color: #1c99ff;
+  color: #05bb4c;
   font-size: 16px;
   line-height: 50px;
   border-bottom: 1px solid #323b3c;
@@ -857,7 +860,7 @@ ul li {
 }
 
 .stations:hover {
-  color: #1c99ff;
-  background: rgba(0, 70, 199, 0.2);
+  color: #05bb4c;
+  background: rgba(84, 183, 90, 0.16);
 }
 </style>

+ 21 - 24
src/components/qushi/qushiDialog.vue

@@ -1,7 +1,6 @@
 <template>
   <div>
     <el-dialog
-      class="dialogs"
       width="85%"
       top="120px"
       v-model="dialogCurveVisible"
@@ -10,9 +9,7 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">{{ chartName }}</div>
-          <!--                    <i class="el-icon-full-screen"  @click="c"></i>-->
         </div>
       </template>
       <div class="dialog-body" style="height: 480px; width: 100%">
@@ -210,7 +207,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">{{ ysetName }}</div>
         </div>
       </template>
@@ -271,10 +267,7 @@
         style="position: absolute; bottom: 50px; right: 0"
         src="@assets/imgs/dialog.png"
       />
-      <el-row
-        class="footerButton changeButton"
-        style="text-align: center; margin-top: 20px"
-      >
+      <el-row class="footerButton" style="text-align: center; margin-top: 20px">
         <el-button
           size="medium"
           style="width: 125px"
@@ -282,7 +275,7 @@
           @click="cancelMultiys()"
           >取消多坐标</el-button
         >
-        <el-button type="primary" size="medium" round @click="saveEditTagInfo()"
+        <el-button size="medium" round @click="saveEditTagInfo()"
           >确定</el-button
         >
       </el-row>
@@ -812,21 +805,21 @@ export default {
 };
 </script>
 <style lang="less" scoped>
-.footerButton {
-  justify-content: right;
+// .footerButton {
+//   justify-content: right;
 
-  .el-button:first-child {
-    width: 108px;
-    background-color: rgba(0, 70, 199, 0.2) !important;
-    color: #b3b3b3;
-    border-color: transparent;
-  }
+//   .el-button:first-child {
+//     width: 108px;
+//     background-color: rgba(0, 70, 199, 0.2) !important;
+//     color: #b3b3b3;
+//     border-color: transparent;
+//   }
 
-  .el-button:last-of-type {
-    width: 108px;
-    background: rgba(0, 70, 199, 0.4) !important;
-  }
-}
+//   .el-button:last-of-type {
+//     width: 108px;
+//     background: rgba(0, 70, 199, 0.4) !important;
+//   }
+// }
 .checkIcon {
   position: absolute;
   left: 45px;
@@ -836,7 +829,8 @@ export default {
 }
 
 .searchColor {
-  background: rgba(0, 70, 199, 0.4);
+  background-color: rgba(5, 187, 76, 0.2);
+  border: 1px solid #3b6c53;
   color: #b3b3b3;
   font-size: 14px;
   border: none;
@@ -844,7 +838,7 @@ export default {
   min-height: 25px !important;
 
   &:hover {
-    background-color: rgba(0, 70, 199, 0.5);
+    background-color: rgba(5, 187, 76, 0.5);
     color: #ffffff;
   }
 }
@@ -884,6 +878,9 @@ export default {
         height: 25px;
         line-height: 25px;
         top: 5px;
+        &:hover {
+          color: #05be4c;
+        }
       }
     }
   }

+ 21 - 37
src/components/zbDialog/index.vue

@@ -1,14 +1,13 @@
 <template>
-  <el-dialog v-model="dialogVisible" width="80%" top="4vh">
+  <el-dialog v-model="dialogVisible" width="80%" top="80px">
     <template #title>
       <div class="dialog-title">
-        <img class="dialog-title-img" src="@/assets/imgs/dialog-title.png" />
         <div class="title">
           {{ showname }}(<span class="count"> {{ checkList.length }} </span>)
         </div>
       </div>
     </template>
-    <div class="dialog-body">
+    <div class="dialog-body" :style="text == 'single'?'height: 700px':'height: 800px'">
       <img class="dialog-img" src="@/assets/imgs/dialog.png" />
       <div class="dialog-form">
         <el-checkbox
@@ -36,7 +35,10 @@
           />
         </el-select>
       </div>
-      <div v-if="text == 'single' && type == -1">
+      <div
+        v-if="text == 'single' && type == -1"
+        style="height: calc(100% - 72px)"
+      >
         <div class="targetNav">
           <ul>
             <li
@@ -68,26 +70,30 @@
           </el-checkbox-group>
         </div>
       </div>
-      <el-checkbox-group v-model="checkList" v-else>
+      <el-checkbox-group
+        v-model="checkList"
+        style="height: calc(100% - 72px)"
+        v-else
+      >
         <el-checkbox
           v-for="(item, index) in moreTargetData"
           :key="index"
           :label="item.name"
         ></el-checkbox>
       </el-checkbox-group>
-      <!-- <el-row class="footerButton">
+      <el-row class="footerButton">
         <el-button round @click="cancel">取消</el-button>
-        <el-button type="primary" round @click="tableRefresh">确认</el-button>
-      </el-row> -->
+        <el-button round @click="tableRefresh">确认</el-button>
+      </el-row>
     </div>
-    <template #footer>
+    <!-- <template #footer>
       <span class="dialog-footer">
         <el-button size="mini" round @click="cancel">取消</el-button>
         <el-button size="mini" type="primary" round @click="tableRefresh"
           >确认</el-button
         >
       </span>
-    </template>
+    </template> -->
   </el-dialog>
 </template>
 <script>
@@ -255,29 +261,7 @@ export default {
     width: 80px;
   }
 }
-.dialog-footer button:first-child {
-  border-color: transparent;
-  margin-right: 10px;
-  background-color: rgba(0, 70, 199, 0.2) !important;
-  color: #b3b3b3;
-}
-.el-dialog {
-  .el-dialog__body {
-    height: calc(100vh - 320px);
-  }
-}
-.footerButton {
-  justify-content: right;
 
-  .el-button:first-child {
-    width: 108px;
-  }
-
-  .el-button:last-of-type {
-    width: 108px;
-    background: rgba(0, 70, 199, 0.4) !important;
-  }
-}
 .el-checkbox {
   width: 180px;
 }
@@ -294,21 +278,21 @@ export default {
       color: #b3bdc0;
       // background: rgba(67, 81, 107, 0.2);
       background: rgba(96, 103, 105, 0.2);
-      border-left: 1px solid #2a374f;
-      border-top: 1px solid #2a374f;
-      border-bottom: 1px solid #2a374f;
+      border-left: 1px solid #3b6c53;
+      border-top: 1px solid #3b6c53;
+      border-bottom: 1px solid #3b6c53;
 
       &.li-left {
         border-radius: 15px 0px 0px 15px;
       }
 
       &.li-right {
-        border-right: 1px solid #2a374f;
+        border-right: 1px solid #3b6c53;
         border-radius: 0px 15px 15px 0px;
       }
 
       &.active {
-        background-color: rgba(0, 70, 199, 0.4);
+        background-color: rgba(0, 199, 19, 0.4);
         color: #ffffff;
       }
     }

+ 61 - 0
src/router/index.js

@@ -382,6 +382,7 @@ export const asyncRoutes = [
       //       icon: "icon-Simple-matrix",
       //     },
       //   },
+      //对标管理
       {
         path: "benchmarkingManagement",
         redirect: "benchmarkingManagement/performanceRankingList",
@@ -524,6 +525,7 @@ export const asyncRoutes = [
           //   },
         ],
       },
+      //三率分析
       {
         path: "efficiency",
         redirect: "efficiency/restorationEfficiency",
@@ -572,6 +574,7 @@ export const asyncRoutes = [
           },
         ],
       },
+      //性能分析
       {
         path: "analyse",
         redirect: "analyse/standAloneAnalyse",
@@ -607,6 +610,7 @@ export const asyncRoutes = [
           },
         ],
       },
+      //性能评估
       {
         path: "performanceAssess",
         component: () =>
@@ -620,6 +624,7 @@ export const asyncRoutes = [
           permissions: ["jn_xndjpg", "*:*:*"],
         },
       },
+      //功率曲线
       {
         path: "powerCurve",
         redirect: "powerCurve/powerLinefitting",
@@ -657,6 +662,7 @@ export const asyncRoutes = [
           },
         ],
       },
+      //专题分析
       {
         path: "thematicAnalysis",
         redirect: "thematicAnalysis/comprehensiveAnalysis",
@@ -738,6 +744,7 @@ export const asyncRoutes = [
           },
         ],
       },
+      //功率预测分析
       {
         path: "monthElectricAnalyse",
         component: () =>
@@ -749,6 +756,60 @@ export const asyncRoutes = [
           permissions: ["jn_ztfx", "*:*:*"],
         },
       },
+      //综合管控KPI
+      {
+        path: "comprehensiveControl",
+        redirect: "comprehensiveControl/running",
+        component: () =>
+          import("@/views/economicsOperation/comprehensiveControl"),
+        name: "comprehensiveControl",
+        meta: {
+          title: "综合管控KPI",
+          icon: "svg-zhgk",
+          permissions: ["jn_ztfx", "*:*:*"],
+        },
+        children: [
+          {
+            path: "running",
+            component: () =>
+              import(
+                "@/views/economicsOperation/comprehensiveControl/runningKPI/index.vue"
+              ),
+            name: "running",
+            meta: {
+              title: "运行KPI",
+              icon: "",
+              permissions: ["jn_ztfx_zhfx", "*:*:*"],
+            },
+          },
+          {
+            path: "maintenance",
+            component: () =>
+              import(
+                "@/views/economicsOperation/comprehensiveControl/maintenanceKPI/index.vue"
+              ),
+            name: "maintenance",
+            meta: {
+              title: "检修KPI",
+              icon: "",
+              permissions: ["jn_ztfx_zhfx", "*:*:*"],
+            },
+          },
+          {
+            path: "stationControl",
+            component: () =>
+              import(
+                "@/views/economicsOperation/comprehensiveControl/stationControlKPI/index.vue"
+              ),
+            name: "stationControl",
+            meta: {
+              title: "场站管控KPI",
+              icon: "",
+              permissions: ["jn_ztfx_zhfx", "*:*:*"],
+            },
+          },
+        ],
+      },
       //   {
       //     path: "reportForms",
       //     redirect: "reportForms/newEnergyDaily",

+ 20 - 0
src/store/index.js

@@ -14,6 +14,10 @@ const state = {
   windturbineMap: {},
   moudleName: localStorage.getItem("ModuleName") || "",
   isFixed: JSON.parse(localStorage.getItem("isFixed")) || false,
+  boosterList: JSON.parse(localStorage.getItem("boosterList")) || [],
+  boosterAlarm: JSON.parse(localStorage.getItem("boosterAlarm")) || 0,
+  drawer: JSON.parse(localStorage.getItem("drawer")) || false,
+  alarmList: JSON.parse(localStorage.getItem("alarmList")) || {},
 };
 
 //改变状态的方法`
@@ -37,6 +41,22 @@ const mutations = {
   changeModuleName(state, newData) {
     state.moudleName = newData;
   },
+  changeBooster(state, data) {
+    state.boosterList = data;
+    localStorage.setItem("boosterList", JSON.stringify(data));
+  },
+  changeBoosterAlarm(state, data) {
+    state.boosterAlarm = data;
+    localStorage.setItem("boosterAlarm", JSON.stringify(data));
+  },
+  changeDrawer(state, data) {
+    state.drawer = data;
+    localStorage.setItem("drawer", data);
+  },
+  changeAlarmlist(state, data) {
+    state.alarmList = data;
+    localStorage.setItem("alarmList", JSON.stringify(data));
+  },
 };
 
 const actions = {

+ 3 - 1
src/store/modules/user.js

@@ -12,7 +12,9 @@ import { login, getUserinfo, logout } from "@/api/common";
 const state = {
   authToken: getCookie("authToken") || "", //
   username: "",
-  loginState: getCookie("loginState") || false,
+  loginState: getCookie("loginState")
+    ? JSON.parse(getCookie("loginState") || "")
+    : false,
   userId: getCookie("userId") || "",
   roles: [],
   permissions: [],

+ 24 - 4
src/views/Home/components/barCharts.vue

@@ -152,15 +152,35 @@ export default {
   methods: {
     initChart() {
       let chart = echarts.init(this.$el);
+      var units = this.units;
       let option = {
         color: this.color,
         zoom: 12,
         tooltip: {
           trigger: "axis",
-          backgroundColor: "rgba(0,70,199,0.35)",
-          borderWidth: 1,
+
+          backgroundColor: "rgba(5, 187, 76,0.35)",
+          borderColor: "#05bb4c",
+          formatter: function (params) {
+            var htmlStr = `<div style='margin-bottom:5px'>${params[0].axisValue}</div>`;
+            for (var i = 0; i < params.length; i++) {
+              htmlStr += `<div style='margin-bottom:2px'>`;
+              var param = params[i];
+              var seriesName = param.seriesName; //图例名称
+              var value = param.value; //y轴值
+              var data = param.data; //单位判断code
+              var mark = param.marker; //点
+              var unit = `<span style='font-size:14px'>`;
+
+              htmlStr += mark; //一个点
+              htmlStr += `${seriesName} : ${
+                value != null ? value + unit + ` ${units}</span>` : "--"
+              }`; //圆点后面显示的文本
+              htmlStr += "</div>";
+            }
+            return htmlStr;
+          },
           padding: [10, 10, 3, 10],
-          borderColor: "#074EAD",
           textStyle: {
             color: "#fff",
             fontSize: 16,
@@ -190,7 +210,7 @@ export default {
           },
         },
         grid: {
-          left:30,
+          left: 30,
           right: 40,
           top: 30,
           bottom: 30,

+ 261 - 236
src/views/Home/components/map.vue

@@ -58,7 +58,7 @@
               </span>
               <span class="unit">MW</span>
             </div>
-            <div class="gf-rl" v-if="tabShow == 0">
+            <div class="qy-rl" v-if="tabShow == 0">
               <span class="text">光伏</span>
               <span class="font-num">{{
                 wpId.includes("GDC")
@@ -81,8 +81,7 @@
         <ul>
           <li v-show="tabShow == -1 || tabShow == 0">
             <div class="imgs">
-              <img src="@assets/imgs/downF.png" />
-              <img src="@assets/imgs/windup.png" class="qty_img" />
+              <img src="@/assets/home/fc_1.png" alt="" />
             </div>
             <p class="qty_tit">
               风场数量
@@ -131,8 +130,7 @@
           <li class="line" v-show="tabShow == 0"></li>
           <li v-show="tabShow == 0 || tabShow == -2">
             <div class="imgs">
-              <img src="@assets/imgs/downg.png" />
-              <img src="@assets/imgs/ptyup.png" class="qty_img" />
+              <img src="@/assets/home/gf_1.png" alt="" />
             </div>
             <p class="qty_tit">
               光伏数量
@@ -183,8 +181,7 @@
           <ul>
             <li v-show="tabShow == -1 || tabShow == 0">
               <div class="imgs">
-                <img src="@assets/imgs/downF.png" />
-                <img src="@assets/imgs/windup.png" class="qty_img" />
+                <img src="@/assets/home/fc_1.png" alt="" />
               </div>
               <p class="qty_tit">
                 风场数量
@@ -230,8 +227,7 @@
             <li class="line" v-if="tabShow == 0"></li>
             <li v-show="tabShow == 0 || tabShow == -2">
               <div class="imgs">
-                <img src="@assets/imgs/downg.png" />
-                <img src="@assets/imgs/ptyup.png" class="qty_img" />
+                <img src="@/assets/home/gf_1.png" alt="" />
               </div>
 
               <p class="qty_tit">
@@ -351,7 +347,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">{{ showName }}</div>
         </div>
       </template>
@@ -447,7 +442,7 @@
             >
               <div class="img-num clearfix">
                 <div class="img float-left">
-                  <img src="../../../assets/home/fc_1.png" alt="" />
+                  <img src="@/assets/home/fc_1.png" alt="" />
                 </div>
                 <div class="num float-left">
                   <span>风电场数量</span> <br />
@@ -487,7 +482,7 @@
             >
               <div class="img-num clearfix">
                 <div class="img float-left">
-                  <img src="../../../assets/home/gf_1.png" alt="" />
+                  <img src="@/assets/home/gf_1.png" alt="" />
                 </div>
                 <div class="num float-left">
                   <span>光伏电站数量</span> <br />
@@ -657,7 +652,7 @@
               <div class="save-item">
                 <div
                   class="jnjp-icon svg-icon svg-icon-green"
-                  style="width:5.5vh,height:5.5vh"
+                  style="width:20px,height:20px"
                 >
                   <svg-icon class="" svgid="svg-煤" />
                 </div>
@@ -783,7 +778,6 @@
       >
         <template #title>
           <div class="dialog-title">
-            <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
             <div class="title">{{ showName }}</div>
           </div>
         </template>
@@ -841,6 +835,7 @@
             <power-review-home
               :data="powerDataHome"
               :id="wpIds"
+              :type="activeTab"
               @chartClick="showPowerChart"
             />
           </div>
@@ -1083,8 +1078,10 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
-          <div class="title">{{ showName }}</div>
+          <div class="title">
+            {{ showName != "清洁能源实时功率详情" ? currentTitle : ""
+            }}{{ showName }}
+          </div>
         </div>
       </template>
       <div class="dialog-body" style="height: 500px">
@@ -1102,134 +1099,49 @@
     <div class="sx-right-box" v-if="currentTitle != '全国'">
       <!-- 山西右侧信息 -->
       <div class="card wind_card">
-        <el-row>
-          <el-col v-show="tabShow == 0 || tabShow == -1">
-            <div class="grid-content">
-              <div
-                class="img"
-                @click="handleClick('SSPJFS', '实时风速', 'm/s')"
-              >
-                <img
-                  src="@/assets/imgs/pointer.png"
-                  :style="{ transform: windSpeedRota }"
-                />
-                <div class="information">
-                  {{ (StationinformationData?.qt?.ssfs).toFixed(2) }}
-                </div>
-                <div class="unit">m/s</div>
-                <p>实时风速</p>
-              </div>
-            </div>
-          </el-col>
-          <el-col v-show="tabShow == 0 || tabShow == -2">
-            <div
-              class="grid-content"
-              @click="handleClick('RPJGZD', '光照强度', 'W/m²')"
-            >
-              <div class="img">
-                <img
-                  src="@/assets/imgs/pointer.png"
-                  :style="{ transform: illuminationRota }"
-                />
-                <div class="information">
-                  {{ (StationinformationData?.qt?.gzzs / 1000).toFixed(2) }}
-                </div>
-                <div class="unit">W/m²</div>
-                <p>光照强度</p>
-              </div>
-            </div>
-          </el-col>
-          <el-col>
-            <div
-              class="grid-content"
-              @click="handleClick('SSZGL', '实际功率', 'MW')"
-            >
-              <div class="img">
-                <img
-                  src="@/assets/imgs/pointer.png"
-                  :style="{ transform: actualPowerRota }"
-                />
-                <div class="information">
-                  {{ (StationinformationData?.qt?.sjgl / 1000).toFixed(2) }}
-                </div>
-                <div class="unit">MW</div>
-                <p>实际功率</p>
-              </div>
-            </div>
-          </el-col>
-          <!-- <el-col>
-            <div
-              class="grid-content"
-              @click="handleClick('SSZLLGL', '理论功率', 'MW')"
-            >
-              <div class="img">
-                <img
-                  src="@/assets/imgs/pointer.png"
-                  :style="{ transform: ideaPowerRota }"
-                />
-                <div class="information">
-                  {{ (StationinformationData?.qt?.llgl / 1000).toFixed(2) }}
-                </div>
-                <div class="unit">MW</div>
-                <p>理论功率</p>
-              </div>
-            </div>
-          </el-col> -->
-          <el-col v-show="tabShow == -1 || tabShow == -2">
-            <div
-              class="grid-content"
-              @click="
-                handleClick(
-                  'FNLYL',
-                  tabShow == -1 ? '风能利用率' : '光能利用率',
-                  '%'
-                )
-              "
-            >
-              <div class="img">
-                <img
-                  src="@/assets/imgs/pointer.png"
-                  :style="{ transform: guarantee }"
-                />
-                <div class="information">
-                  {{ (StationinformationData?.qt?.fnlyl).toFixed(2) }}
-                </div>
-                <div class="unit">%</div>
-                <p>{{ tabShow == -1 ? "风能利用率" : "光能利用率" }}</p>
-              </div>
-            </div>
-          </el-col>
-        </el-row>
+        <power-review-home
+          :data="powerDataHome"
+          :id="wpIds"
+          @chartClick="showPowerChart"
+        />
       </div>
       <div class="card electric_card">
         <el-header>
           <span class="title"></span>
           <soan class="unit">(单位:万kWh)</soan>
         </el-header>
-        <el-row
-          style="cursor: pointer"
-          v-for="(item, index) in fdlList"
-          :key="index"
-          @click="handleElectricDetail(item.id, item.title)"
-        >
-          <el-col :span="4">{{ item.title }}</el-col>
-          <el-col :span="14">
-            <div class="electric">
-              <div
-                class="progress_bar"
-                :style="{
-                  width:
-                    item.value && item.value1
-                      ? (item.value / 10000 / item.value1) * 100 + '%'
-                      : '0',
-                }"
-              >
-                <span class="count">{{ (item.value / 10000).toFixed(2) }}</span>
-                <span class="img"></span>
+        <el-row class="fdl-wrapper">
+          <div
+            class="power-div"
+            v-for="(item, index) in tabShow == 0
+              ? ForecastPowerNewHome_qy
+              : tabShow == -1
+              ? ForecastPowerNewHome_fc
+              : ForecastPowerNewHome_gf"
+            :key="index"
+          >
+            <div class="power-charts">
+              <div class="power-name">{{ item[0].name }}</div>
+              <div class="power-item">
+                <div class="power-value">
+                  <span
+                    :style="
+                      item[0].color === 1
+                        ? 'background-color:#4B55AE'
+                        : 'background-color:#05BB4C'
+                    "
+                  ></span>
+                  <span>{{ item[0].total }}</span>
+                </div>
+                <list-bar-chart-2-home
+                  :list="item"
+                  height="55px"
+                  width="250px"
+                  @click="handleElectricDetail(item[0].id, item[0].name)"
+                />
               </div>
             </div>
-          </el-col>
-          <el-col :span="4">{{ item.value1 }}</el-col>
+          </div>
         </el-row>
         <el-row class="summarize">
           <div
@@ -1318,32 +1230,6 @@
           :dataSimple="StationinformationData?.sbztmap?.gf"
         />
       </div>
-      <!-- 实时负荷弹窗 -->
-      <el-dialog
-        class="dialogs"
-        width="70%"
-        top="120px"
-        v-model="dialogVisible"
-        :show-close="true"
-        destroy-on-close
-      >
-        <template #title>
-          <div class="dialog-title">
-            <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
-            <div class="title">{{ showName }}</div>
-          </div>
-        </template>
-        <div class="dialog-body" style="height: 500px">
-          <img class="dialog-img" src="@assets/imgs/dialog.png" />
-          <windChartCom
-            :windCurveValues="chartsData"
-            :CurveTitle="showName"
-            :unit="unit"
-            height="480px"
-            chartId="windChar"
-          />
-        </div>
-      </el-dialog>
       <!-- 发电量,利用小时弹窗 -->
       <el-dialog
         class="dialogs"
@@ -1354,8 +1240,7 @@
       >
         <template #title>
           <div class="dialog-title">
-            <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
-            <div class="title">{{ showName }}</div>
+            <div class="title">{{ currentTitle }}{{ showName }}</div>
           </div>
         </template>
         <div class="dialog-body" style="height: 500px">
@@ -1698,29 +1583,105 @@ export default {
               },
             ];
           } else if (this.tabShow == 0) {
-            this.powerDataHome = [
-              {
-                title: "清洁能源",
-                value: (data?.qt?.sjgl / 1000).toFixed(2),
-                dialogTitle: "清洁能源",
-                max: 3000,
-                unit: "MW",
-              },
-              {
-                title: "风电",
-                value: (data?.qt?.fdsjgl / 1000).toFixed(2),
-                dialogTitle: "风电功率详情",
-                max: 3000,
-                unit: "MW",
-              },
-              {
-                title: "光伏",
-                value: (data?.qt?.gfsjgl / 1000).toFixed(2),
-                dialogTitle: "光伏功率详情",
-                max: 3000,
-                unit: "MW",
-              },
-            ];
+            if (this.currentTitle != "全国") {
+              if (this.currentTitle.includes("风电场")) {
+                this.powerDataHome = [
+                  {
+                    title: "实时风速",
+                    value: (data?.qt?.ssfs).toFixed(2),
+                    dialogTitle: "实时风速",
+                    max: 3000,
+                    unit: "m/s",
+                  },
+                  {
+                    title: "实际功率",
+                    value: (data?.qt?.fdsjgl).toFixed(2),
+                    dialogTitle: "实际功率",
+                    max: 3000,
+                    unit: "MW",
+                  },
+                  {
+                    title: "风能利用率",
+                    value: (data?.qt?.fnlyl).toFixed(2),
+                    dialogTitle: "风能利用率",
+                    max: 100,
+                    unit: "%",
+                  },
+                ];
+              } else if (this.currentTitle.includes("电站")) {
+                this.powerDataHome = [
+                  {
+                    title: "光照强度",
+                    value: (data?.qt?.gzzs).toFixed(2),
+                    dialogTitle: "光照强度",
+                    max: 3000,
+                    unit: "W/m²",
+                  },
+                  {
+                    title: "实际功率",
+                    value: (data?.qt?.sjgl).toFixed(2),
+                    dialogTitle: "实际功率",
+                    max: 3000,
+                    unit: "MW",
+                  },
+                  {
+                    title: "光能利用率",
+                    value: (data?.qt?.fnlyl).toFixed(2),
+                    dialogTitle: "光能利用率",
+                    max: 100,
+                    unit: "%",
+                  },
+                ];
+              } else {
+                this.powerDataHome = [
+                  {
+                    title: "实时风速",
+                    value: (data?.qt?.ssfs).toFixed(2),
+                    dialogTitle: "实时风速",
+                    max: 3000,
+                    unit: "m/s",
+                  },
+                  {
+                    title: "光照强度",
+                    value: (data?.qt?.gzzs).toFixed(2),
+                    dialogTitle: "光照强度",
+                    max: 3000,
+                    unit: "W/m²",
+                  },
+                  {
+                    title: "实际功率",
+                    value: (data?.qt?.sjgl).toFixed(2),
+                    dialogTitle: "实际功率",
+                    max: 3000,
+                    unit: "MW",
+                  },
+                ];
+              }
+            } else {
+              this.powerDataHome = [
+                {
+                  title: "清洁能源",
+                  value: (data?.qt?.sjgl / 1000).toFixed(2),
+                  dialogTitle: "清洁能源实时功率详情",
+                  max: 3000,
+                  unit: "MW",
+                },
+                {
+                  title: "风电",
+                  value: (data?.qt?.fdsjgl / 1000).toFixed(2),
+                  dialogTitle: "风电实时功率详情",
+                  max: 3000,
+                  unit: "MW",
+                },
+                {
+                  title: "光伏",
+                  value: (data?.qt?.gfsjgl / 1000).toFixed(2),
+                  dialogTitle: "光伏实时功率详情",
+                  max: 3000,
+                  unit: "MW",
+                },
+              ];
+            }
           } else if (this.tabShow == -2) {
             this.powerDataHome = [
               {
@@ -1872,6 +1833,59 @@ export default {
             },
           ],
         ];
+        this.ForecastPowerNewHome_qy = [
+          [
+            {
+              name: "日发电量",
+              id: "day",
+              value: data?.proplanmap
+                ? data?.proplanmap?.qy_r_sjdl < 0
+                  ? 0
+                  : (data?.proplanmap?.qy_r_sjdl / 10000).toFixed(2)
+                : 0,
+              color: 1,
+              total: data?.proplanmap
+                ? data?.proplanmap?.qy_r_jhdl < 0
+                  ? 0
+                  : data?.proplanmap?.qy_r_jhdl
+                : 0,
+            },
+          ],
+          [
+            {
+              name: "月发电量",
+              id: "month",
+              value: data?.proplanmap
+                ? data?.proplanmap?.qy_y_sjdl < 0
+                  ? 0
+                  : (data?.proplanmap?.qy_y_sjdl / 10000).toFixed(2)
+                : 0,
+              color: 1,
+              total: data?.proplanmap
+                ? data?.proplanmap?.qy_y_jhdl < 0
+                  ? 0
+                  : data?.proplanmap?.qy_y_jhdl
+                : 0,
+            },
+          ],
+          [
+            {
+              name: "年发电量",
+              id: "year",
+              value: data?.proplanmap
+                ? data?.proplanmap?.qy_n_sjdl < 0
+                  ? 0
+                  : (data?.proplanmap?.qy_n_sjdl / 10000).toFixed(2)
+                : 0,
+              color: 0,
+              total: data?.proplanmap
+                ? data?.proplanmap?.qy_n_jhdl < 0
+                  ? 0
+                  : data?.proplanmap?.qy_n_jhdl
+                : 0,
+            },
+          ],
+        ];
       });
     },
     // 获取场站24小时功率图
@@ -2220,54 +2234,63 @@ export default {
       if (Object.keys(val).length) {
         let data = val;
         this.fdlList = [
-          {
-            title: "日发电量",
-            id: "day",
-            value:
-              this.tabShow == 0
-                ? data.qy_r_sjdl
-                : this.tabShow == -1
-                ? data.fd_r_sjdl
-                : data.gf_r_sjdl,
-            value1:
-              this.tabShow == 0
-                ? data.qy_r_jhdl
-                : this.tabShow == -1
-                ? data.fd_r_jhdl
-                : data.gf_r_jhdl,
-          },
-          {
-            title: "月发电量",
-            id: "month",
-            value:
-              this.tabShow == 0
-                ? data.qy_y_sjdl
-                : this.tabShow == -1
-                ? data.fd_y_sjdl
-                : data.gf_y_sjdl,
-            value1:
-              this.tabShow == 0
-                ? data.qy_y_jhdl
-                : this.tabShow == -1
-                ? data.fd_y_jhdl
-                : data.gf_y_jhdl,
-          },
-          {
-            title: "年发电量",
-            id: "year",
-            value:
-              this.tabShow == 0
-                ? data.qy_n_sjdl
-                : this.tabShow == -1
-                ? data.fd_n_sjdl
-                : data.gf_n_sjdl,
-            value1:
-              this.tabShow == 0
-                ? data.qy_n_jhdl
-                : this.tabShow == -1
-                ? data.fd_n_jhdl
-                : data.gf_n_jhdl,
-          },
+          [
+            {
+              title: "日发电量",
+              id: "day",
+              value:
+                this.tabShow == 0
+                  ? data.qy_r_sjdl
+                  : this.tabShow == -1
+                  ? data.fd_r_sjdl
+                  : data.gf_r_sjdl,
+              color: 1,
+              total:
+                this.tabShow == 0
+                  ? data.qy_r_jhdl
+                  : this.tabShow == -1
+                  ? data.fd_r_jhdl
+                  : data.gf_r_jhdl,
+            },
+          ],
+          [
+            {
+              title: "月发电量",
+              id: "month",
+              value:
+                this.tabShow == 0
+                  ? data.qy_y_sjdl
+                  : this.tabShow == -1
+                  ? data.fd_y_sjdl
+                  : data.gf_y_sjdl,
+              color: 1,
+              total:
+                this.tabShow == 0
+                  ? data.qy_y_jhdl
+                  : this.tabShow == -1
+                  ? data.fd_y_jhdl
+                  : data.gf_y_jhdl,
+            },
+          ],
+          [
+            {
+              title: "年发电量",
+              id: "year",
+              value:
+                this.tabShow == 0
+                  ? data.qy_n_sjdl
+                  : this.tabShow == -1
+                  ? data.fd_n_sjdl
+                  : data.gf_n_sjdl,
+              color: 0,
+              total:
+                this.tabShow == 0
+                  ? data.qy_n_jhdl
+                  : this.tabShow == -1
+                  ? data.fd_n_jhdl
+                  : data.gf_n_jhdl,
+            },
+          ],
         ];
       }
     },
@@ -2504,7 +2527,9 @@ p {
           .kind {
             width: 20px;
             height: 22px;
-
+            .jnjp-icon1 {
+              margin-left: -8px;
+            }
             .kind-img {
               width: 100%;
               height: 100%;

+ 8 - 3
src/views/Home/components/power-review-home.vue

@@ -10,6 +10,7 @@
           :max="item.max"
           height="98px"
           width="100%"
+          :color="type == 0 || type == -1 ? 'green' : 'orange'"
           @click="openDialog(item.dialogTitle, item.unit)"
         />
       </Col>
@@ -37,19 +38,19 @@ export default {
       valuelist: [
         {
           value: "SSZGL",
-          name: "清洁能源",
+          name: "清洁能源实时功率详情",
           code: "value1",
           sign: 1,
         },
         {
           value: "SSZGL",
-          name: "风电功率详情",
+          name: "风电实时功率详情",
           code: "value2",
           sign: 1,
         },
         {
           value: "SSZGL",
-          name: "光伏功率详情",
+          name: "光伏实时功率详情",
           code: "value3",
           sign: 1,
         },
@@ -84,6 +85,10 @@ export default {
   },
 
   props: {
+    type: {
+      type: Number,
+      default: 0,
+    },
     data: {
       type: Array,
       default: () => [],

+ 26 - 1
src/views/Home/components/windChartCom.vue

@@ -10,6 +10,7 @@
 <script>
 import * as echarts from "echarts";
 import dayjs from "dayjs";
+import { h } from "vue";
 export default {
   name: "windChartCom",
   props: {
@@ -62,16 +63,40 @@ export default {
     getChart() {
       var chartDom = document.getElementById(this.chartId);
       var myChart = echarts.init(chartDom); // 绘制图表
+      var units = this.unit;
       var options = {
         tooltip: {
           trigger: "axis",
-          backgroundColor: "rgba(0, 0, 0, 0.3)",
+
           textStyle: {
             fontSize: 16,
             fontFamily: "楷体",
             color: "white", //设置文字颜色
             fontWeight: "400",
           },
+          backgroundColor: "rgba(5, 187, 76,0.35)",
+          borderColor: "#05bb4c",
+          formatter: function (params) {
+            console.log(params);
+            var htmlStr = `<div style='margin-bottom:5px'>${params[0].axisValue}</div>`;
+            for (var i = 0; i < params.length; i++) {
+              htmlStr += `<div style='margin-bottom:2px'>`;
+              var param = params[i];
+              var seriesName = param.seriesName; //图例名称
+              var value = param.value; //y轴值
+              var data = param.data; //单位判断code
+              var mark = param.marker; //点
+              var unit = `<span style='font-size:14px'>`;
+
+              htmlStr += mark; //一个点
+              htmlStr += `${seriesName} : ${
+                value[1] != null ? value[1] + unit + ` ${units}</span>` : "--"
+              }`; //圆点后面显示的文本
+              htmlStr += "</div>";
+            }
+            console.log(htmlStr);
+            return htmlStr;
+          },
         },
         legend: {
           top: "0",

+ 10 - 405
src/views/Home/index.vue

@@ -439,10 +439,15 @@ export default {
     height: 320px;
     position: relative;
     margin-bottom: 30px;
-    .el-row {
+    .el-row.fdl-wrapper {
       align-items: center;
-      margin-bottom: 31px;
 
+      .power-div {
+        width: 100%;
+        .power-name {
+          color: #999999;
+        }
+      }
       .el-col:first-child {
         text-align: right;
         margin-right: 10px;
@@ -476,7 +481,8 @@ export default {
 
     .el-header {
       display: flex;
-      justify-content: space-between;
+      height: 30px;
+      justify-content: flex-end;
 
       .title {
         font-size: 16px;
@@ -488,71 +494,6 @@ export default {
       }
     }
 
-    .electric {
-      width: 100%;
-      height: 4.5px;
-      background-color: rgba(142, 176, 255, 0.2);
-
-      .progress_bar {
-        position: relative;
-        height: 100%;
-        max-width: 100%;
-        background: linear-gradient(90deg, #001442, #1c99ff);
-
-        .img {
-          background: url("../../assets/imgs/generatingCapacityMonth.png")
-            no-repeat;
-          position: absolute;
-          display: inline-block;
-          width: 39px;
-          height: 39px;
-          top: -17px;
-          right: -22px;
-          transform: scale(0.8);
-        }
-
-        .count {
-          position: absolute;
-          top: -30px;
-          right: -22px;
-          font-size: 14px;
-          color: #2b99ff;
-          font-family: "Arial";
-          font-weight: bolder;
-        }
-
-        .dot {
-          display: inline-block;
-          width: 22.4px;
-          height: 22.4px;
-          border-radius: 50%;
-          border: 1px solid #ff8300;
-          background-color: #573e27;
-          position: absolute;
-          right: -11px;
-          top: -9px;
-          text-align: center;
-          line-height: 22.4px;
-
-          .dots_center {
-            display: inline-block;
-            width: 12px;
-            height: 12px;
-            border-radius: 50%;
-            background-color: #fec448;
-            box-shadow: 0px 0px 13px 12px #e77409a8;
-          }
-        }
-
-        .percentage {
-          position: absolute;
-          top: -8px;
-          right: -50px;
-          font-family: "Arial";
-        }
-      }
-    }
-
     .summarize {
       position: absolute;
       bottom: 0;
@@ -566,7 +507,7 @@ export default {
       color: #b3b3b3;
       padding: 0 35px;
       justify-content: space-between;
-
+    align-items: center;
       .summarize-left {
         text-align: left !important;
         cursor: pointer;
@@ -990,342 +931,6 @@ export default {
   }
 }
 
-.home_light {
-  width: 100%;
-  height: 100%;
-  background: url(../../assets/newHome_b.png);
-  background-repeat: round;
-  .model-bg-new-right {
-    width: 100%;
-    min-height: 135px;
-    background-color: rgba(83, 98, 104, 0.2);
-    border-radius: 6px;
-    display: flex;
-    flex-direction: column;
-    // padding: 1% 5%;
-    .infos {
-      display: flex;
-      flex-direction: column;
-      width: 50%;
-      height: 100%;
-      width: 100%;
-      .titles {
-        display: flex;
-        flex-direction: row;
-        align-items: center;
-        justify-content: space-between;
-        // padding: 0 15px;
-        height: 50%;
-        .amount {
-          display: flex;
-          flex-direction: row;
-          align-items: center;
-
-          .amount-image {
-            margin-left: -42px;
-          }
-
-          .amount-nums {
-            font-size: 12px;
-            color: #7d838c;
-            margin-left: 10px;
-            display: flex;
-            flex-direction: row;
-            align-items: baseline;
-
-            .num-item {
-              font-size: 20px;
-              color: #ffffff;
-              margin-right: 5px;
-            }
-          }
-        }
-
-        .info-nums {
-          display: flex;
-          align-items: baseline;
-          font-size: 14px;
-          color: #7d838c;
-
-          .nums {
-            font-size: 20px;
-            color: #ffffff;
-            margin: 0 5px;
-          }
-        }
-      }
-      .tabSwitchover {
-        // height: 23px;
-        margin-top: 5px;
-        .tabSwitchover-item {
-          width: 42px;
-          line-height: 23px;
-          text-align: center;
-          color: #000;
-          float: left;
-          cursor: pointer;
-        }
-        .tab-active {
-          border-bottom: 1px solid rgb(39, 219, 54);
-          background: linear-gradient(
-            to top,
-            rgba(5, 187, 76, 0.5),
-            rgba(5, 187, 76, 0)
-          );
-        }
-        .unit {
-          height: 35px;
-          line-height: 35px;
-          color: #000;
-          font-size: 12px;
-          // float: right;
-        }
-      }
-      .types {
-        display: flex;
-        flex-direction: row;
-        align-items: center;
-        height: 50%;
-        width: 100%;
-        margin-top: 15px;
-        padding-bottom: 10px;
-        border-bottom: 1px solid #302c2c;
-        .type-model {
-          display: flex;
-          flex-direction: column;
-          justify-content: space-between;
-          align-items: center;
-          width: 16%;
-          // height: 75%;
-          font-size: 16px;
-          .type-name {
-            font-size: 14px;
-            font-family: Agency FB;
-            margin-bottom: 10px;
-          }
-          .type-num {
-            height: 15px;
-          }
-        }
-      }
-    }
-    // .power-charts {
-    //   display: flex;
-    //   flex-direction: row;
-    //   align-items: flex-end;
-    //   width: 100%;
-    //   margin-top: 10px;
-
-    //   .power-name {
-    //     width: 80px;
-    //     margin-bottom: 10px;
-    //     color: #000;
-    //   }
-
-    //   .power-item {
-    //     display: flex;
-    //     flex-direction: column;
-    //     width: 300px;
-
-    //     .power-value {
-    //       border: 1px solid #fff;
-    //       margin-bottom: -12px;
-    //       padding: 0 15px;
-
-    //       .green-value {
-    //         color: #05BB4C;
-    //       }
-
-    //       .purple-value {
-    //         color: #4B55AE;
-    //       }
-    //     }
-    //   }
-    // }
-  }
-
-  .base-info {
-    height: 186px;
-    background: rgba(83, 98, 104, 0.2);
-    position: absolute;
-    bottom: 4%;
-    left: 117px;
-    display: flex;
-    flex-direction: row;
-    border-radius: 6px;
-    .charts {
-      width: 100%;
-      height: 100%;
-      position: relative;
-      margin-left: 1%;
-      .energy-title {
-        // margin-left: 2%;
-        margin-top: 1%;
-        font-size: 16px;
-        color: #000;
-      }
-      .dots {
-        width: 0.185vh;
-        height: 0.185vh;
-        border-radius: 50%;
-        background-color: @write;
-        position: absolute;
-
-        &.left {
-          left: 0.37vh;
-        }
-
-        &.top {
-          top: 0.37vh;
-        }
-      }
-
-      .charts-item {
-        // margin-left: 5%;
-        margin-top: 10px;
-      }
-    }
-  }
-  .model-bg-new {
-    width: 100%;
-    min-height: 135px;
-    background-color: #d1d6d9;
-    border-radius: 6px;
-    display: flex;
-    flex-direction: column;
-    padding: 1% 5%;
-
-    .titles {
-      height: 45px;
-      border-bottom: 1px solid #333333;
-      display: flex;
-      flex-direction: row;
-      align-items: center;
-      justify-content: space-between;
-
-      .name {
-        font-size: 16px;
-        color: #000;
-      }
-
-      .unit {
-        font-size: 12px;
-        color: #000;
-      }
-    }
-
-    .save {
-      display: flex;
-      flex-direction: row;
-      align-items: center;
-      width: 100%;
-      margin: 17px 0;
-
-      .save-item {
-        width: 25%;
-        display: flex;
-        flex-direction: column;
-        align-items: center;
-
-        .kind {
-          width: 20px;
-          height: 22px;
-
-          .kind-img {
-            width: 100%;
-            height: 100%;
-          }
-        }
-
-        .save-value {
-          font-size: 16px;
-          color: #ffffff;
-          margin: 10px 0;
-        }
-
-        .save-name {
-          font-size: 12px;
-          color: #b3b3b3;
-        }
-      }
-    }
-  }
-  .model-bg {
-    width: 100%;
-    min-height: 135px;
-    background-color: rgba(83, 98, 104, 0.2);
-    border-radius: 6px;
-    display: flex;
-    flex-direction: column;
-    padding: 1% 5%;
-
-    .titles {
-      height: 45px;
-      border-bottom: 1px solid #333333;
-      display: flex;
-      flex-direction: row;
-      align-items: center;
-      justify-content: space-between;
-
-      .name {
-        font-size: 16px;
-        color: #000000;
-      }
-
-      .unit {
-        font-size: 12px;
-        color: #606769;
-      }
-    }
-
-    .save {
-      display: flex;
-      flex-direction: row;
-      align-items: center;
-      width: 100%;
-      margin: 17px 0;
-
-      .save-item {
-        width: 25%;
-        display: flex;
-        flex-direction: column;
-        align-items: center;
-
-        .kind {
-          width: 20px;
-          height: 22px;
-
-          .kind-img {
-            width: 100%;
-            height: 100%;
-          }
-        }
-
-        .save-value {
-          font-size: 16px;
-          color: #ffffff;
-          margin: 10px 0;
-        }
-
-        .save-name {
-          font-size: 12px;
-          color: #b3b3b3;
-        }
-      }
-    }
-  }
-}
-
-// .right {
-//   width: 400px;
-//   height: 100px;
-//   position: absolute;
-//   right: 25px;
-//   top: 60px;
-//   z-index: 2;
-//   margin-top: 20px;
-// }
-
 .right {
   width: 450px;
   //   height: 100px;

+ 2 - 25
src/views/economicsOperation/analyse/monthlyAnalysis/index.vue

@@ -74,7 +74,6 @@
     >
       <div class="monthMachine_title clearfix">
         <div class="leftContent floatLeft"><span>单机月度分析</span></div>
-        <div class="rightContent floatRight"></div>
       </div>
       <div class="economicTable1">
         <el-table
@@ -345,11 +344,11 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
       span {
         font-size: 16px;
         font-weight: 400;
-        color: #ffffff;
+        color: #05bb4c;
         margin-left: 25px;
       }
     }
@@ -466,27 +465,5 @@ export default {
       justify-content: flex-end;
     }
   }
-  .el-overlay {
-    .el-overlay-dialog {
-      overflow-y: auto !important;
-      .el-dialog {
-        margin-top: 5vh !important;
-        .el-dialog__header {
-          border-bottom: none;
-          .el-dialog__headerbtn {
-            position: absolute;
-            right: 30px;
-            // top: 38px;
-            .el-dialog__close {
-              background: none;
-            }
-          }
-        }
-        .el-dialog__body {
-          padding-top: 0;
-        }
-      }
-    }
-  }
 }
 </style>

+ 38 - 18
src/views/economicsOperation/analyse/monthlyAnalysis/reportDialog.vue

@@ -511,27 +511,47 @@ export default {
         "故障损失电量",
         "受累损失电量",
       ];
-      let arrwsdata = [];
-      let xAxis = [];
-      res.ws.forEach((e, index) => {
-        let date = e.recorddate.substring(
-          e.recorddate.indexOf("-") + 1,
-          e.recorddate.indexOf("T")
-        );
-        xAxis.push(date);
-        let arr = [];
-        for (let k of ["xdss", "xnss", "jxss", "gzss", "slss"]) {
-          arr.push(e[k]);
-        }
-        let obj = {
-          name: arrwslegend[index],
+      let arrwsdata = [
+        {
+          name: "限电损失电量",
           type: "bar",
           stack: "one",
           barWidth: "10%",
-          data: arr,
-        };
-        arrwsdata.push(obj);
-      });
+          data: res.ws.map((i) => i.xdss),
+        },
+        {
+          name: "性能未达标损失电量",
+          type: "bar",
+          stack: "one",
+          barWidth: "10%",
+          data: res.ws.map((i) => i.xnss),
+        },
+        {
+          name: "检修损失电量",
+          type: "bar",
+          stack: "one",
+          barWidth: "10%",
+          data: res.ws.map((i) => i.jxss),
+        },
+        {
+          name: "故障损失电量",
+          type: "bar",
+          stack: "one",
+          barWidth: "10%",
+          data: res.ws.map((i) => i.gzss),
+        },
+        {
+          name: "受累损失电量",
+          type: "bar",
+          stack: "one",
+          barWidth: "10%",
+          data: res.ws.map((i) => i.slss),
+        },
+      ];
+
+      let xAxis = res.ws.map((i) => dayjs(i.recorddate).format("YYYY-MM-DD"));
+
+      console.log(xAxis, arrwsdata);
       this.getFiveBarEchart(xAxis, arrwslegend, arrwsdata);
     },
     getFiveBarEchart(xAxis, lenged, series) {

+ 0 - 55
src/views/economicsOperation/analyse/standAloneAnalyse/historyDetail.vue

@@ -1,61 +1,6 @@
 <template>
   <div class="historysingleMachine">
     <div class="historysingleMachine_top">
-      <!-- <el-select size="mini" v-model="hiscompanyVal" placeholder="请选择">
-        <el-option
-          v-for="item in historyCompanyOptions"
-          :key="item.id"
-          :label="item.aname"
-          :value="item.id"
-        >
-        </el-option>
-      </el-select>
-      <div class="tabCut">
-        <div
-          @click="changeBtn(val.id)"
-          :class="tabIndex === val.id ? 'active' : ''"
-          v-for="val in tabOptions"
-          :key="val.id"
-        >
-          <span>{{ val.name }}</span>
-        </div>
-      </div> 
-      <div class="station">
-        场站:
-        <el-select
-          size="mini"
-          v-model="hisstationVal"
-          placeholder="请选择"
-          clearable
-          @change="changeStation"
-        >
-          <el-option
-            v-for="item in historyStationOptions"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          >
-          </el-option>
-        </el-select>
-      </div>
-      <div class="station">
-        机组:
-        <el-select
-          size="mini"
-          v-model="hiswindVal"
-          placeholder="请选择"
-          clearable
-          @change="changeWind"
-        >
-          <el-option
-            v-for="item in hisWindOptions"
-            :key="item.id"
-            :label="item.aname"
-            :value="item.id"
-          >
-          </el-option>
-        </el-select>
-      </div>-->
       <div class="stationsv">
         <span class="timeaa">时间:</span>
         <el-date-picker

+ 2 - 13
src/views/economicsOperation/analyse/standAloneAnalyse/index.vue

@@ -68,7 +68,6 @@
     <div class="singleMachine_content">
       <div class="singleMachine_title clearfix">
         <div class="leftContent floatLeft"><span>单机性能分析</span></div>
-        <div class="rightContent floatRight"></div>
       </div>
       <div class="economicTable1">
         <el-table
@@ -135,7 +134,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">{{ dialogTitle }}</div>
         </div>
       </template>
@@ -157,7 +155,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">详情</div>
         </div>
       </template>
@@ -412,13 +409,13 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;
         font-family: Microsoft YaHei;
         font-weight: 400;
-        color: #ffffff;
+        color: #05bb4c;
         margin-left: 25px;
       }
     }
@@ -643,13 +640,5 @@ export default {
       }
     }
   }
-
-  .el-picker__popper .el-date-range-picker__header .el-picker-panel__icon-btn {
-    color: #fff;
-  }
-
-  .el-picker__popper .el-date-table .in-range div {
-    background: #43516b;
-  }
 }
 </style>

+ 0 - 7
src/views/economicsOperation/analyse/standAloneAnalyse/windDetailDialog.vue

@@ -2024,12 +2024,5 @@ export default {
     }
   }
 
-  .el-overlay {
-    .el-overlay-dialog {
-      .dialogShowmodal {
-        margin-top: 10vh !important;
-      }
-    }
-  }
 }
 </style>

+ 36 - 51
src/views/economicsOperation/benchmarkingManagement/compontent/bar-line-chart.vue

@@ -23,37 +23,7 @@ export default {
     bardata: {
       type: Object,
       default: () => {
-        return {
-          area: [
-            "风场1",
-            "风场2",
-            "风场3",
-            "风场4",
-            "风场5",
-            "风场6",
-            "风场7",
-            "风场8",
-            "风场9",
-          ],
-          legend: [
-            "实际电量",
-            "计划检修损失",
-            "非计划检修损失",
-            "限电损失",
-            "受累损失",
-            "性能损失",
-          ],
-          data: [
-            [1320, 1302, 901, 634, 1390, 1330, 1320, 1000, 500],
-            [320, 302, 301, 334, 390, 330, 320, 100, 50],
-            [320, 302, 301, 334, 390, 330, 320, 100, 50],
-            [1320, 1302, 901, 634, 1390, 1330, 1320, 1000, 500],
-            [320, 302, 301, 334, 390, 330, 320, 100, 50],
-            [320, 302, 301, 334, 390, 330, 320, 100, 50],
-            [1320, 1302, 901, 634, 1390, 1330, 1320, 1000, 500],
-            [320, 302, 301, 334, 390, 330, 320, 100, 50],
-          ],
-        };
+        return {};
       },
     },
     lineData: {
@@ -81,7 +51,14 @@ export default {
     // 颜色
     color: {
       type: Array,
-      default: () => ["#323E6F", "#e17e23", "#ba3237", "#c531c7", "#ffffff", "#EDEB2F"],
+      default: () => [
+        "#323E6F",
+        "#e17e23",
+        "#ba3237",
+        "#c531c7",
+        "#ffffff",
+        "#EDEB2F",
+      ],
     },
     // 每页显示个数
     pageSize: {
@@ -128,35 +105,35 @@ export default {
           icon: "ract",
           itemWidth: 4,
           itemHeight: 4,
-          inactiveColor: '#999999',
+          inactiveColor: "#999999",
           padding: [10, 0],
           textStyle: {
-            color: '#999999',
+            color: "#999999",
             fontSize: 12,
           },
         },
         tooltip: {
           trigger: "axis",
-        //   backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: '#05bb4c',
+          //   backgroundColor: "rgba(0,0,0,0.4)",
+          borderColor: "#05bb4c",
           backgroundColor: "rgba(5, 187, 76,0.35)",
           textStyle: {
             color: "#fff",
             fontSize: util.vh(16),
           },
           axisPointer: {
-            type: 'shadow',
+            type: "shadow",
             shadowStyle: {
-              color: 'rgba(105,105,105, .05)',
-              width: '1'
-            }
-          }
+              color: "rgba(105,105,105, .05)",
+              width: "1",
+            },
+          },
         },
         yAxis: [
           {
             type: "category",
             axisLabel: {
-              color: '#999999',
+              color: "#999999",
             },
             inverse: true,
             // minInterval: 10,
@@ -175,12 +152,12 @@ export default {
             type: "value",
             axisLabel: {
               show: false,
-              color: '#999999',
+              color: "#999999",
             },
             axisLine: {
               type: "",
               lineStyle: {
-                color: '#999999',
+                color: "#999999",
               },
               width: 15,
             },
@@ -241,14 +218,18 @@ export default {
           smooth: false, //平滑展示
           xAxisIndex: 0,
           lineStyle: {
-            color: '#05bb4c',
+            color: "#05bb4c",
           },
           itemStyle: {
-            color: '#05bb4c',
+            color: "#05bb4c",
           },
         });
       }
-      chart.setOption(option);//重新绘制图标
+      chart.setOption(option); //重新绘制图标
+    },
+    resize() {
+      let chart = echarts.init(this.$el);
+      chart.resize();
     },
   },
   created() {
@@ -264,7 +245,9 @@ export default {
     this.$nextTick(() => {
       this.$el.style.width = this.width;
       this.$el.style.height = this.height;
+
       this.initChart();
+      window.addEventListener("resize", this.resize);
     });
   },
   updated() {
@@ -275,9 +258,6 @@ export default {
   beforeUpdate() {
     this.areaData = this.bardata.area;
   },
-  beforeUpdate() {
-    this.areaData = this.bardata.area;
-  },
   watch: {
     bardata(val) {
       if (val.area && val.area.length < this.pageSize) {
@@ -287,10 +267,15 @@ export default {
         }
       }
     },
-    "height"() {
+    height() {
       this.areaData = this.bardata.area;
       this.initChart();
     },
+    "$store.state.isFixed": {
+      handler() {
+        this.resize();
+      },
+    },
   },
 };
 </script>

+ 4 - 6
src/views/economicsOperation/benchmarkingManagement/intervalBenchmarking/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="parcel-box">
-    <div class="title">
+    <div class="form-wrapper">
       <el-select
         size="mini"
         :disabled="displayDetail"
@@ -111,7 +111,6 @@
     <div class="bodys" v-if="!displayDetail">
       <div class="line">
         <div class="leftContent"><span>场际对标</span></div>
-        <div class="rightContent"></div>
       </div>
       <div class="economicTable" v-if="!displayDetail">
         <el-table
@@ -599,7 +598,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">对标排名分析</div>
         </div>
       </template>
@@ -1059,7 +1057,7 @@ export default {
   padding-bottom: 10px;
 }
 
-.title {
+.form-wrapper {
   display: flex;
   flex-direction: row;
   align-items: center;
@@ -1185,13 +1183,13 @@ export default {
     height: 41px;
     display: flex;
     align-items: center;
-    background: url("../../../../assets/imgs/title_left_bg.png");
+    background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
     span {
       font-size: 16px;
       font-family: Microsoft YaHei;
       font-weight: 400;
-      color: #ffffff;
+      color: #05bb4c;
       margin-left: 25px;
     }
   }

+ 297 - 313
src/views/economicsOperation/benchmarkingManagement/loseRate/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="parcel-box">
-    <div class="title">
+    <div class="form-wrapper">
       <el-select
         size="mini"
         :disabled="displayDetail"
@@ -149,300 +149,299 @@
         <!-- <el-button round size="mini" class="buttons">导出</el-button> -->
       </div>
     </div>
-    <div class="bodys" v-if="!displayDetail">
-      <div class="line">
-        <div class="leftContent"><span>五项损失率</span></div>
-        <div class="rightContent"></div>
-      </div>
-      <div class="economicTable">
-        <el-table
-          :data="tableData"
-          ref="multipleTable"
-          size="mini"
-          height="100%"
-          :cell-style="{ padding: '4px' }"
-          :row-style="{ height: '0' }"
-          stripe
-          @selection-change="handleCurrentChange"
-        >
-          <el-table-column type="selection" width="60" align="center">
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="name"
-            label="名称"
-            show-overflow-tooltip
-            width="150"
-            sortable
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="zhpm"
-            label="综合排名"
-            show-overflow-tooltip
-            width="80"
-            sortable
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="fdlpm"
-            label="发电量排名"
-            show-overflow-tooltip
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="fdl"
-            label="发电量"
-            show-overflow-tooltip
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="gzssdlpm"
-            show-overflow-tooltip
-            label="故障损失排名"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            show-overflow-tooltip
-            prop="gzssdl"
-            label="故障损失"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="jxssdlpm"
-            show-overflow-tooltip
-            label="检修损失排名"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="jxssdl"
-            show-overflow-tooltip
-            label="检修损失"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="xnssdlpm"
-            show-overflow-tooltip
-            label="性能损失排名"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="xnssdl"
-            show-overflow-tooltip
-            label="性能损失"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="xdssdlpm"
-            show-overflow-tooltip
-            label="限电损失排名"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="xdssdl"
-            show-overflow-tooltip
-            label="限电损失"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            show-overflow-tooltip
-            prop="slssdlpm"
-            label="受累损失排名"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="slssdl"
-            show-overflow-tooltip
-            label="受累损失"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="fnlylpm"
-            show-overflow-tooltip
-            :label="(tabIndex === -1 ? '风能' : '光能') + '利用率排名'"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="fnlyl"
-            show-overflow-tooltip
-            :label="(tabIndex === -1 ? '风能' : '光能') + '利用率(%)'"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="gzsslpm"
-            show-overflow-tooltip
-            label="故障损失率排名"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="gzssl"
-            show-overflow-tooltip
-            label="故障损失率(%)"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="jxsslpm"
-            show-overflow-tooltip
-            label="检修损失率排名"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="jxssl"
-            show-overflow-tooltip
-            label="检修损失率(%)"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="qflpm"
-            show-overflow-tooltip
-            :label="'弃' + (tabIndex === -1 ? '风' : '光') + '率排名'"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="qfl"
-            show-overflow-tooltip
-            :label="'弃' + (tabIndex === -1 ? '风' : '光') + '率(%)'"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="xnsslpm"
-            show-overflow-tooltip
-            label="性能损失率排名"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="xnssl"
-            show-overflow-tooltip
-            label="性能损失率(%)"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            prop="slsslpm"
-            show-overflow-tooltip
-            label="受累损失率排名"
-            sortable
-            width="63"
-          >
-          </el-table-column>
-          <el-table-column
-            align="center"
-            show-overflow-tooltip
-            prop="slssl"
-            label="受累损失率(%)"
-            sortable
-            width="63"
+      <div class="bodys" v-if="!displayDetail">
+        <div class="line">
+          <div class="leftContent"><span>五项损失率</span></div>
+        </div>
+        <div class="economicTable">
+          <el-table
+            :data="tableData"
+            ref="multipleTable"
+            size="mini"
+            height="100%"
+            :cell-style="{ padding: '4px' }"
+            :row-style="{ height: '0' }"
+            stripe
+            @selection-change="handleCurrentChange"
           >
-          </el-table-column>
-          <el-table-column align="center" prop="" label="操作">
-            <template v-slot="scope">
-              <span
-                @click="goDetail(scope.row)"
-                style="cursor: pointer; color: #05bb4c"
-                >详情</span
-              >
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-    </div>
-    <div class="echarts" v-if="!displayDetail">
-      <div class="pie-echarts">
-        <div class="chart-name">
-          <div class="point point-left bottom"></div>
-          <div class="point point-right bottom"></div>
-          损失电量分析
+            <el-table-column type="selection" width="60" align="center">
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="name"
+              label="名称"
+              show-overflow-tooltip
+              width="150"
+              sortable
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="zhpm"
+              label="综合排名"
+              show-overflow-tooltip
+              width="80"
+              sortable
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="fdlpm"
+              label="发电量排名"
+              show-overflow-tooltip
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="fdl"
+              label="发电量"
+              show-overflow-tooltip
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="gzssdlpm"
+              show-overflow-tooltip
+              label="故障损失排名"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              show-overflow-tooltip
+              prop="gzssdl"
+              label="故障损失"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="jxssdlpm"
+              show-overflow-tooltip
+              label="检修损失排名"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="jxssdl"
+              show-overflow-tooltip
+              label="检修损失"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="xnssdlpm"
+              show-overflow-tooltip
+              label="性能损失排名"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="xnssdl"
+              show-overflow-tooltip
+              label="性能损失"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="xdssdlpm"
+              show-overflow-tooltip
+              label="限电损失排名"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="xdssdl"
+              show-overflow-tooltip
+              label="限电损失"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              show-overflow-tooltip
+              prop="slssdlpm"
+              label="受累损失排名"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="slssdl"
+              show-overflow-tooltip
+              label="受累损失"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="fnlylpm"
+              show-overflow-tooltip
+              :label="(tabIndex === -1 ? '风能' : '光能') + '利用率排名'"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="fnlyl"
+              show-overflow-tooltip
+              :label="(tabIndex === -1 ? '风能' : '光能') + '利用率(%)'"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="gzsslpm"
+              show-overflow-tooltip
+              label="故障损失率排名"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="gzssl"
+              show-overflow-tooltip
+              label="故障损失率(%)"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="jxsslpm"
+              show-overflow-tooltip
+              label="检修损失率排名"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="jxssl"
+              show-overflow-tooltip
+              label="检修损失率(%)"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="qflpm"
+              show-overflow-tooltip
+              :label="'弃' + (tabIndex === -1 ? '风' : '光') + '率排名'"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="qfl"
+              show-overflow-tooltip
+              :label="'弃' + (tabIndex === -1 ? '风' : '光') + '率(%)'"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="xnsslpm"
+              show-overflow-tooltip
+              label="性能损失率排名"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="xnssl"
+              show-overflow-tooltip
+              label="性能损失率(%)"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="slsslpm"
+              show-overflow-tooltip
+              label="受累损失率排名"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column
+              align="center"
+              show-overflow-tooltip
+              prop="slssl"
+              label="受累损失率(%)"
+              sortable
+              width="63"
+            >
+            </el-table-column>
+            <el-table-column align="center" prop="" label="操作">
+              <template v-slot="scope">
+                <span
+                  @click="goDetail(scope.row)"
+                  style="cursor: pointer; color: #05bb4c"
+                  >详情</span
+                >
+              </template>
+            </el-table-column>
+          </el-table>
         </div>
-        <PieChart
-          :lossPower="lossPower"
-          width="100%"
-          height="calc(100% - 39px)"
-          :showLable="false"
-        ></PieChart>
       </div>
-      <div class="bar-echarts">
-        <div class="chart-name">
-          <div class="point point-left bottom"></div>
-          <div class="point point-right bottom"></div>
-          五项损失
+      <div class="echarts" v-if="!displayDetail">
+        <div class="pie-echarts">
+          <div class="chart-name">
+            <div class="point point-left bottom"></div>
+            <div class="point point-right bottom"></div>
+            损失电量分析
+          </div>
+            <PieChart
+              :lossPower="lossPower"
+              width="100%"
+              height="100%"
+              :showLable="false"
+            ></PieChart>
+          </div>
+        <div class="bar-echarts">
+          <div class="chart-name">
+            <div class="point point-left bottom"></div>
+            <div class="point point-right bottom"></div>
+            五项损失
+          </div>
+            <BarCharts
+              :list="barList"
+              width="100%"
+              height="100%"
+              :showLegend="true"
+              :xdate="false"
+              :colorIndex="true"
+            ></BarCharts>
+          </div>
         </div>
-        <BarCharts
-          :list="barList"
-          width="100%"
-          height="calc(100% - 39px)"
-          :showLegend="true"
-          :xdate="false"
-          :colorIndex="true"
-        ></BarCharts>
-      </div>
-    </div>
     <div
       v-if="displayDetail"
       style="height: calc(100% - 43px - 35px); padding-bottom: 10px"
@@ -598,7 +597,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">对标排名分析</div>
         </div>
       </template>
@@ -1055,14 +1053,7 @@ export default {
     },
   },
   watch: {
-    screenHeight(val) {
-      this.screenHeight = val;
-      if (val > 1100) {
-        this.echartsHeight = "58vh";
-      } else {
-        this.echartsHeight = "55vh";
-      }
-    },
+   
   },
 };
 </script>
@@ -1071,11 +1062,11 @@ export default {
 .parcel-box {
   height: 100%;
   width: 100%;
-  padding: 0 30px;
+  padding: 0 20px;
   padding-bottom: 10px;
 }
 
-.title {
+.form-wrapper {
   display: flex;
   flex-direction: row;
   align-items: center;
@@ -1200,23 +1191,16 @@ export default {
     height: 41px;
     display: flex;
     align-items: center;
-    background: url("../../../../assets/imgs/title_left_bg.png");
+    background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
     span {
       font-size: 16px;
       font-family: Microsoft YaHei;
       font-weight: 400;
-      color: #ffffff;
+      color: #05bb4c;
       margin-left: 25px;
     }
   }
-
-  .rightContent {
-    width: 212px;
-    height: 28px;
-    margin-top: 13px;
-    background: url("../../../../assets/imgs/title_right_bg.png");
-  }
 }
 
 .economicTable {
@@ -1254,8 +1238,8 @@ export default {
   }
 
   .bar-echarts {
-    width: 69%;
-    margin-left: 1%;
+    width: calc(70% - 20px);
+    margin-left: 20px;
     height: 100%;
     background: rgba(0, 0, 0, 0.45);
     border-radius: 5px;

+ 6 - 8
src/views/economicsOperation/benchmarkingManagement/performanceRankingList/decision1Mx.vue

@@ -180,7 +180,7 @@
         <div class="lyl" :style="{ height: tableData.length * 39 + 'px' }">
           <div class="lyl-item" v-for="(item, index) in tableData" :key="index">
             {{ item.fnlly }}%
-            <img class="lyl-item-img" src="@assets/imgs/fnlyl.png" />
+            <img class="lyl-item-img" src="@assets/imgs/fnlyl1.png" />
           </div>
         </div>
         <div class="dashed" :style="{ height: height }"></div>
@@ -231,8 +231,8 @@ export default {
       ],
       tableHeader: [
         { code: "name", name: "名称", width: 140 },
-        { code: "llfdl", name: "理论发电量", unit: "万kWh", width: 100 },
-        { code: "sjfdl", name: "实际发电量", unit: "万kWh", width: 100 },
+        { code: "llfdl", name: "理论发电量", unit: "万kWh", width: 130 },
+        { code: "sjfdl", name: "实际发电量", unit: "万kWh", width: 130 },
         { code: "fnlly", name: "风能利用率", name1: "光能利用率", unit: "%" },
         {
           code: "speed",
@@ -576,6 +576,7 @@ export default {
 .home-body {
   display: flex;
   flex-direction: column;
+  padding: 0 20px;
 }
 
 .title {
@@ -615,7 +616,6 @@ export default {
 
   .tabCut1 {
     display: inline-block;
-    margin: 0 10px;
 
     div {
       display: inline-block;
@@ -693,7 +693,6 @@ export default {
   width: 98.5%;
   background-color: rgba(0, 0, 0, 0.4);
   margin-top: 10px;
-  margin-left: 1%;
   border-radius: 5px;
   overflow-y: auto;
   position: relative;
@@ -761,7 +760,7 @@ export default {
   display: flex;
   flex-direction: row;
   align-items: center;
-  margin: 10px 0px 0px 20px;
+  margin-top: 10px;
 
   .tabCut-item {
     width: 93px;
@@ -804,8 +803,7 @@ export default {
   font-size: 14px;
   font-family: Arial;
   font-weight: 400;
-  color: #1c98fe;
-  //  color: #05bb4c;
+  color: #05bb4c;
   margin-top: 29px;
   margin-left: 10px;
 }

+ 2 - 3
src/views/economicsOperation/benchmarkingManagement/performanceRankingList/index.vue

@@ -191,7 +191,7 @@
         <div class="lyl" :style="{ height: tableData.length * 39 + 'px' }">
           <div class="lyl-item" v-for="(item, index) in tableData" :key="index">
             {{ item.fnlly }}%
-            <img class="lyl-item-img" src="@assets/imgs/fnlyl.png" />
+            <img class="lyl-item-img" src="@assets/imgs/fnlyl1.png" />
           </div>
         </div>
         <div class="dashed" :style="{ height: height }"></div>
@@ -732,8 +732,7 @@ export default {
   font-size: 14px;
   font-family: Arial;
   font-weight: 400;
-  color: #1c98fe;
-  //  color: #05bb4c;
+  color: #05bb4c;
   margin-top: 29px;
   margin-left: 10px;
 }

+ 9 - 30
src/views/economicsOperation/benchmarkingManagement/projectBenchmarking/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="parcel-box">
-    <div class="title">
+    <div class="form-wrapper">
       <el-select
         size="mini"
         :disabled="displayDetail"
@@ -132,7 +132,6 @@
     <div class="bodys" v-if="!displayDetail">
       <div class="line">
         <div class="leftContent"><span>项目对标</span></div>
-        <div class="rightContent"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -438,12 +437,12 @@
         ></BarCharts>
       </div>
     </div>
-    <div v-if="displayDetail">
+    <div v-if="displayDetail" style="height: calc(100% - 51px)">
       <el-table
         :data="detailTable"
         ref="multipleTable"
         size="mini"
-        style="height: calc(100% - 43px - 35px); padding-bottom: 10px"
+       height="calc(100% - 35px)"
         :cell-style="{ padding: '0px' }"
         :row-style="{ height: '0' }"
         stripe
@@ -642,7 +641,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">对标排名分析</div>
         </div>
       </template>
@@ -686,7 +684,7 @@ export default {
         total: 0,
       },
       pageD: {
-        pagesize: 18,
+        pagesize: 23,
         currentPage: 1,
         total: 0,
       },
@@ -718,8 +716,6 @@ export default {
       windNum5: "",
       tabs: [],
       analyisDialog: [],
-      screenHeight: window.innerHeight,
-      echartsHeight: "55vh",
       detailRow: {},
     };
   },
@@ -739,17 +735,7 @@ export default {
     this.initialization();
   },
   mounted() {
-    if (this.screenHeight > 1100) {
-      this.echartsHeight = "58vh";
-    } else {
-      this.echartsHeight = "55vh";
-    }
-    window.onresize = () => {
-      return (() => {
-        window.screenHeight = window.innerHeight;
-        this.screenHeight = window.screenHeight;
-      })();
-    };
+   
   },
   methods: {
     handlePageChange(val) {
@@ -1081,14 +1067,7 @@ export default {
     },
   },
   watch: {
-    screenHeight(val) {
-      this.screenHeight = val;
-      if (val > 1100) {
-        this.echartsHeight = "58vh";
-      } else {
-        this.echartsHeight = "55vh";
-      }
-    },
+    
   },
 };
 </script>
@@ -1105,7 +1084,7 @@ export default {
   padding-bottom: 10px;
 }
 
-.title {
+.form-wrapper {
   display: flex;
   flex-direction: row;
   align-items: center;
@@ -1228,13 +1207,13 @@ export default {
     height: 41px;
     display: flex;
     align-items: center;
-    background: url("../../../../assets/imgs/title_left_bg.png");
+    background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
     span {
       font-size: 16px;
       font-family: Microsoft YaHei;
       font-weight: 400;
-      color: #ffffff;
+      color: #05bb4c;
       margin-left: 25px;
     }
   }

+ 2 - 10
src/views/economicsOperation/benchmarkingManagement/singleMachineBenchmarking/index.vue

@@ -151,7 +151,6 @@
     <div style="background: rgba(0, 0, 0, 0.4)">
       <div class="Benchmarking_title clearfix">
         <div class="leftContent floatLeft"><span>单机对标</span></div>
-        <div class="rightContent floatRight"></div>
       </div>
       <div class="Benchmarking_Table">
         <el-table
@@ -756,12 +755,12 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
       span {
         font-size: 16px;
         font-family: Microsoft YaHei;
         font-weight: 400;
-        color: #ffffff;
+        color: #05bb4c;
         margin-left: 25px;
       }
     }
@@ -929,12 +928,5 @@ export default {
       }
     }
   }
-
-  .el-picker__popper .el-date-range-picker__header .el-picker-panel__icon-btn {
-    color: #fff;
-  }
-  .el-picker__popper .el-date-table .in-range div {
-    background: #43516b;
-  }
 }
 </style>

+ 4 - 7
src/views/economicsOperation/benchmarkingManagement/siteBenchmarking/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="parcel-box">
-    <div class="title">
+    <div class="form-wrapper">
       <el-select
         size="mini"
         :disabled="displayDetail"
@@ -111,7 +111,6 @@
     <div class="bodys" v-if="!displayDetail">
       <div class="line">
         <div class="leftContent"><span>场内对标</span></div>
-        <div class="rightContent"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -618,7 +617,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">对标排名分析</div>
         </div>
       </template>
@@ -646,7 +644,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">同环比分析</div>
         </div>
       </template>
@@ -1374,7 +1371,7 @@ export default {
 /deep/ .s-tb-th {
   height: 50px;
 }
-.title {
+.form-wrapper {
   display: flex;
   flex-direction: row;
   align-items: center;
@@ -1500,13 +1497,13 @@ export default {
     height: 41px;
     display: flex;
     align-items: center;
-    background: url("../../../../assets/imgs/title_left_bg.png");
+    background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
     span {
       font-size: 16px;
       font-family: Microsoft YaHei;
       font-weight: 400;
-      color: #ffffff;
+      color: #05BB4C;
       margin-left: 25px;
     }
   }

+ 2 - 3
src/views/economicsOperation/benchmarkingManagement/valueBenchmarking/index.vue

@@ -35,7 +35,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>值际对标</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <!-- theoreticalgeneratity 理论发电量
@@ -224,13 +223,13 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;
         font-family: Microsoft YaHei;
         font-weight: 400;
-        color: #ffffff;
+        color: #05BB4C;
         margin-left: 25px;
       }
     }

+ 4 - 6
src/views/economicsOperation/benchmarkingManagement/wiringBenchmarking/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="parcel-box">
-    <div class="title">
+    <div class="form-wrapper">
       <el-select
         size="mini"
         :disabled="displayDetail"
@@ -153,7 +153,6 @@
     <div class="bodys" v-if="!displayDetail">
       <div class="line">
         <div class="leftContent"><span>线路对标</span></div>
-        <div class="rightContent"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -662,7 +661,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">对标排名分析</div>
         </div>
       </template>
@@ -1163,7 +1161,7 @@ export default {
   padding-bottom: 10px;
 }
 
-.title {
+.form-wrapper {
   display: flex;
   flex-direction: row;
   align-items: center;
@@ -1289,13 +1287,13 @@ export default {
     height: 41px;
     display: flex;
     align-items: center;
-    background: url("../../../../assets/imgs/title_left_bg.png");
+    background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
     span {
       font-size: 16px;
       font-family: Microsoft YaHei;
       font-weight: 400;
-      color: #ffffff;
+      color: #05BB4C;
       margin-left: 25px;
     }
   }

+ 11 - 0
src/views/economicsOperation/comprehensiveControl/index.vue

@@ -0,0 +1,11 @@
+<template>
+  <router-view />
+</template>
+
+<script>
+export default {
+  name: "comprehensiveControl", //综合管控KPI
+};
+</script>
+
+<style></style>

+ 550 - 0
src/views/economicsOperation/comprehensiveControl/maintenanceKPI/index.vue

@@ -0,0 +1,550 @@
+<template>
+  <div class="maintenance">
+    <div class="maintenance_top">
+      <el-select
+        size="mini"
+        v-model="tabIndex"
+        placeholder="请选择"
+        clearable
+        @change="getTableData"
+      >
+        <el-option
+          v-for="item in tabOptions"
+          :key="item.id"
+          :label="item.name"
+          :value="item.id"
+        >
+        </el-option>
+      </el-select>
+      <div class="station">
+        时间:
+        <div class="">
+          <el-date-picker
+            size="mini"
+            v-model="pickerTime"
+            type="month"
+            value-format="YYYY-MM"
+            placeholder="选择年月"
+            popper-class="date-select"
+          >
+          </el-date-picker>
+        </div>
+      </div>
+
+      <div class="but">
+        <el-button
+          round
+          size="mini"
+          class="buttons sousuo"
+          @click="getTableData"
+          >搜索</el-button
+        >
+        <el-button round size="mini" class="buttons" @click="downXlsxFn"
+          >导出</el-button
+        >
+      </div>
+    </div>
+    <div
+      style="
+        background: rgba(0, 0, 0, 0.4);
+        height: calc(100% - 43px);
+        padding-bottom: 15px;
+      "
+    >
+      <div class="maintenance_title clearfix">
+        <div class="leftContent floatLeft"><span>检修KPI</span></div>
+      </div>
+      <div class="economicTable1">
+        <el-table
+          :data="maintenanceData"
+          stripe
+          size="mini"
+          height="calc(100% - 40px - 20px)"
+          ref="maintenance_table"
+          style="width: 100%"
+          border
+        >
+          <el-table-column
+            prop="station"
+            label="场站"
+            align="center"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="yxbz"
+            label="检修班组"
+            align="center"
+            width="60px"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="year"
+            label="年份"
+            align="center"
+            width="60px"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="month"
+            label="月份"
+            align="center"
+            width="60px"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            v-for="(item, index) in tableHeader"
+            :key="index"
+            :label="item.title"
+            align="center"
+          >
+            <el-table-column
+              v-for="(subItem, subIndex) in item.children"
+              :key="subIndex"
+              :prop="subItem.code"
+              :label="subItem.title"
+              align="center"
+              show-overflow-tooltip
+            >
+              <el-table-column
+                v-for="(thiItem, thiIndex) in subItem.children"
+                :key="thiIndex"
+                sortable
+                width="63"
+                :prop="thiItem.code"
+                :label="thiItem.title"
+                align="center"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+            </el-table-column>
+          </el-table-column>
+          <el-table-column
+            prop="score"
+            label="总评分"
+            align="center"
+            width="40px"
+            show-overflow-tooltip
+          />
+        </el-table>
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="page.currentPage"
+          :page-size="page.pagesize"
+          layout="total, prev, pager, next, jumper"
+          :total="page.total"
+        >
+        </el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  getApicompanyslist,
+  getApiwpByCplistlist,
+  getApioutputSpeedlist,
+} from "@/api/monthlyPerformanceAnalysis";
+import utils from "@/utills/downXlsx";
+import dayjs from "dayjs";
+import { GetStationByCompany } from "@/api/factoryMonitor/index.js";
+export default {
+  name: "maintenance", //检修KPI
+  components: {},
+  data() {
+    return {
+      stationVal: "",
+      stationOptions: [],
+      pickerTime: "",
+      maintenanceData: [...new Array(15)].fill({
+        id: 1,
+        station: "右玉小五台风电场",
+        yxbz: "1组",
+        year: "2023",
+        month: "09",
+        fnlylValue: 1,
+        fnlylrank: 1,
+        xdsslValue: 1,
+        xdsslRank: 1,
+        xnsslValue: 1,
+        xnsslRank: 1,
+        fwjsl: 1,
+        ztzhl: 1,
+        qxxd: 1,
+        qxys: 1,
+        pjxf: 1,
+        mttf: 1,
+        sblyxs: 1,
+        zhcydl: 1,
+        yhfxzql: 1,
+        score: 12,
+      }),
+      tabIndex: -1,
+      tabOptions: [
+        { id: -1, name: "风电" },
+        { id: -2, name: "光伏" },
+      ],
+      tableHeader: [
+        {
+          title: "生产效率指标",
+          children: [
+            {
+              title: "风能利用率",
+              children: [
+                { title: "值(%)", code: "fnlylValue" },
+                { title: "评分", code: "fnlylrank" },
+              ],
+            },
+            {
+              title: "计划检修损失率",
+              children: [
+                { title: "值(%)", code: "xdsslValue" },
+                { title: "评分", code: "xdsslRank" },
+              ],
+            },
+            {
+              title: "非计划检修损失率",
+              children: [
+                { title: "值(%)", code: "xnsslValue" },
+                { title: "评分", code: "xnsslRank" },
+              ],
+            },
+            {
+              title: "缺陷单接单及时率",
+              children: [
+                { title: "值(%)", code: "fwjsl" },
+                { title: "评分", code: "fwjsl" },
+              ],
+            },
+            {
+              title: "到达消缺地点及时率",
+              children: [
+                { title: "值(%)", code: "ztzhl" },
+                { title: "评分", code: "ztzhl" },
+              ],
+            },
+            {
+              title: "真实消缺及时率",
+              children: [
+                { title: "值(%)", code: "qxxd" },
+                { title: "评分", code: "qxxd" },
+              ],
+            },
+            {
+              title: "MTBF",
+              children: [
+                { title: "值(小时)", code: "qxys" },
+                { title: "评分", code: "qxys" },
+              ],
+            },
+
+            {
+              title: "MTTR",
+              children: [
+                { title: "值(小时)", code: "mttf" },
+                { title: "评分", code: "mttf" },
+              ],
+            },
+          ],
+        },
+        {
+          title: "综合分析指标",
+          children: [
+            {
+              title: "设备利用小时",
+              children: [
+                { title: "值(小时)", code: "sblyxs" },
+                { title: "评分", code: "sblyxs" },
+              ],
+            },
+            {
+              title: "设备可利用率",
+              children: [
+                { title: "值(%)", code: "zhcydl" },
+                { title: "评分", code: "zhcydl" },
+              ],
+            },
+            {
+              title: "等效可用系数",
+              children: [
+                { title: "值(%)", code: "yhfxzql" },
+                { title: "评分", code: "yhfxzql" },
+              ],
+            },
+            {
+              title: "隐患发现准确率",
+              children: [
+                { title: "值(%)", code: "yhfxzql" },
+                { title: "评分", code: "yhfxzql" },
+              ],
+            },
+          ],
+        },
+      ],
+      page: {
+        pagesize: 21,
+        currentPage: 1,
+        total: 0,
+      },
+    };
+  },
+  created() {
+    this.pickerTime = dayjs().format("YYYY-MM");
+  },
+  mounted() {},
+  computed: {},
+  methods: {
+    handleSizeChange(val) {
+      this.page.pagesize = val;
+      this.getTableData();
+    },
+    handleCurrentChange(val) {
+      this.page.currentPage = val;
+      this.getTableData();
+    },
+    getTableData() {},
+    downXlsxFn() {
+      let header = [];
+      this.tableHeader.forEach((it) => {
+        if (it.title !== "操作") {
+          header.push(it.title);
+        }
+      });
+      if (this.maintenanceData.length > 0) {
+        utils.exportExcel(
+          this.$refs["maintenance_table"].$el,
+          header,
+          `${this.pickerTime}检修评价KPI`
+        );
+      }
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.maintenance {
+  padding: 0 20px;
+  height: 100%;
+  .maintenance_title {
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      line-height: 41px;
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+  }
+
+  .clearfix::after {
+    content: "";
+    clear: both;
+    height: 0;
+    line-height: 0;
+    visibility: hidden;
+    display: block;
+  }
+
+  .clearfix {
+    zoom: 1;
+  }
+
+  .maintenance_top {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    margin-top: 10px;
+    margin-bottom: 10px;
+
+    .station {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      font-size: 14px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-right: 10px;
+      margin-left: 10px;
+    }
+
+    .tabCut {
+      display: inline-block;
+      margin: 0 10px;
+
+      div {
+        display: inline-block;
+        width: 60px;
+        height: 27px;
+        border: 1px solid #274934;
+        text-align: center;
+        line-height: 25px;
+        cursor: pointer;
+      }
+
+      div:nth-child(1) {
+        border-radius: 13px 0px 0px 13px;
+      }
+
+      div:nth-child(2) {
+        border-radius: 0px 13px 13px 0px;
+        cursor: not-allowed;
+      }
+
+      .active {
+        background-color: rgba(5, 187, 76, 0.9);
+        color: #fff;
+      }
+    }
+
+    .search-input {
+      margin-left: 10px;
+
+      .el-input__inner {
+        width: 175px;
+      }
+
+      .el-input__suffix {
+        right: -50px;
+      }
+    }
+
+    .but {
+      display: flex;
+      flex-direction: row;
+      align-content: center;
+      margin-left: 20px;
+
+      .buttons:nth-child(1) {
+        background: rgba(5, 187, 76, 0.6);
+        border: 1px solid #3b6c53;
+        border-radius: 13px;
+        color: #fff;
+
+        &:hover {
+          background: rgba(5, 187, 76, 0.9);
+          border-radius: 13px;
+          color: #fff;
+        }
+      }
+
+      .buttons:nth-child(2) {
+        background: rgba(67, 81, 107, 0.3);
+        border: 1px solid #3b6c53;
+        border-radius: 13px;
+        font-size: 14px;
+        color: #b3b3b3;
+      }
+    }
+  }
+
+  .economicTable1 {
+    height: calc(100% - 42px);
+    .el-table ::v-deep {
+      .el-table__header {
+        border-collapse: collapse;
+      }
+      .el-table__body-wrapper {
+        .el-table__body {
+          font-size: 13px;
+          //   border: 1px solid #eceef5;
+          //   border-collapse: collapse;
+        }
+      }
+      th {
+        height: 20px;
+        line-height: 20px;
+        font-size: 14px;
+        &.el-table__cell {
+          border: 1px solid rgba(255, 255, 255, 0.8) !important;
+          &:nth-child(1) {
+            border-left-width: 0 !important;
+            // border-left-width: 0 !important;
+          }
+          &.is-leaf {
+            // border-bottom-width: 1px !important;
+          }
+        }
+      }
+      td {
+        height: 25px;
+        line-height: 25px;
+        font-size: 14px;
+        &.el-table__cell {
+          border-bottom: 1px solid #434141 !important;
+          &:nth-child(1) {
+            border-left-width: 0 !important;
+            // border-left-width: 0 !important;
+          }
+          &.is-leaf {
+            // border-bottom-width: 1px !important;
+          }
+        }
+      }
+    }
+    .el-pagination {
+      display: flex;
+      justify-content: flex-end;
+      padding-right: 40px;
+      padding-top: 20px;
+      .el-pagination__total,
+      .el-pagination__jump {
+        color: #fff;
+      }
+    }
+
+    .el-table__fixed,
+    .el-table__fixed-right {
+      background: rgba(0, 0, 0, 1);
+      border-left: 2px solid #000;
+      height: calc(100% - 15px) !important;
+    }
+
+    .el-table__fixed::before {
+      background-color: #2a2a2a;
+    }
+
+    .el-table__fixed-right::before {
+      background-color: #2a2a2a;
+    }
+  }
+
+  .el-overlay {
+    .el-overlay-dialog {
+      overflow-y: hidden !important;
+
+      .el-dialog {
+        margin-top: 0 !important;
+        .el-dialog__body {
+          height: calc(100% - 51px - 32px);
+        }
+      }
+    }
+  }
+
+  .el-picker__popper .el-date-range-picker__header .el-picker-panel__icon-btn {
+    color: #fff;
+  }
+
+  .el-picker__popper .el-date-table .in-range div {
+    background: #43516b;
+  }
+}
+
+.historyBtn1 {
+  cursor: pointer;
+  color: #05bb4c;
+}
+</style>

+ 564 - 0
src/views/economicsOperation/comprehensiveControl/runningKPI/index.vue

@@ -0,0 +1,564 @@
+<template>
+  <div class="running">
+    <div class="running_top">
+      <el-select
+        size="mini"
+        v-model="tabIndex"
+        placeholder="请选择"
+        clearable
+        @change="getTableData"
+        popper-class="custom-select"
+      >
+        <el-option
+          v-for="item in tabOptions"
+          :key="item.id"
+          :label="item.name"
+          :value="item.id"
+        >
+        </el-option>
+      </el-select>
+      <div class="station">
+        时间:
+        <div class="">
+          <el-date-picker
+            size="mini"
+            v-model="pickerTime"
+            type="month"
+            value-format="YYYY-MM"
+            placeholder="选择年月"
+            popper-class="date-select"
+          >
+          </el-date-picker>
+        </div>
+      </div>
+
+      <div class="but">
+        <el-button
+          round
+          size="mini"
+          class="buttons sousuo"
+          @click="getTableData"
+          >搜索</el-button
+        >
+        <el-button round size="mini" class="buttons" @click="downXlsxFn"
+          >导出</el-button
+        >
+      </div>
+    </div>
+    <div
+      style="
+        background: rgba(0, 0, 0, 0.4);
+        height: calc(100% - 43px);
+        padding-bottom: 15px;
+      "
+    >
+      <div class="running_title clearfix">
+        <div class="leftContent floatLeft"><span>运行KPI</span></div>
+      </div>
+      <div class="economicTable1">
+        <el-table
+          :data="runningData"
+          stripe
+          size="mini"
+          height="calc(100% - 40px - 20px)"
+          ref="running_table"
+          style="width: 100%"
+          border
+        >
+          <el-table-column
+            prop="station"
+            label="场站"
+            align="center"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="yxbz"
+            label="运行班组"
+            align="center"
+            width="60px"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="year"
+            label="年份"
+            align="center"
+            width="60px"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="month"
+            label="月份"
+            align="center"
+            width="60px"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            v-for="(item, index) in tableHeader"
+            :key="index"
+            :label="item.title"
+            align="center"
+          >
+            <el-table-column
+              v-for="(subItem, subIndex) in item.children"
+              :key="subIndex"
+              :prop="subItem.code"
+              :label="subItem.title"
+              align="center"
+              show-overflow-tooltip
+            >
+              <el-table-column
+                v-for="(thiItem, thiIndex) in subItem.children"
+                :key="thiIndex"
+                sortable
+                width="63"
+                :prop="thiItem.code"
+                :label="thiItem.title"
+                align="center"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+            </el-table-column>
+          </el-table-column>
+          <el-table-column
+            prop="score"
+            label="总评分"
+            align="center"
+            width="40px"
+            show-overflow-tooltip
+          />
+        </el-table>
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="page.currentPage"
+          :page-size="page.pagesize"
+          layout="total, prev, pager, next, jumper"
+          :total="page.total"
+        >
+        </el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  getApicompanyslist,
+  getApiwpByCplistlist,
+  getApioutputSpeedlist,
+} from "@/api/monthlyPerformanceAnalysis";
+import utils from "@/utills/downXlsx";
+import dayjs from "dayjs";
+import { GetStationByCompany } from "@/api/factoryMonitor/index.js";
+export default {
+  name: "running", //运行KPI
+  components: {},
+  data() {
+    return {
+      stationVal: "",
+      stationOptions: [],
+      pickerTime: "",
+      runningData: [...new Array(15)].fill({
+        id: 1,
+        station: "右玉小五台风电场",
+        yxbz: "1组",
+        year: "2023",
+        month: "09",
+        fnlylValue: 1,
+        fnlylrank: 1,
+        xdsslValue: 1,
+        xdsslRank: 1,
+        xnsslValue: 1,
+        xnsslRank: 1,
+        fwjsl: 1,
+        ztzhl: 1,
+        qxxd: 1,
+        qxys: 1,
+        pjxf: 1,
+        mttf: 1,
+        sblyxs: 1,
+        zhcydl: 1,
+        yhfxzql: 1,
+        score: 12,
+      }),
+      tabIndex: -1,
+      tabOptions: [
+        { id: -1, name: "风电" },
+        { id: -2, name: "光伏" },
+      ],
+      tableHeader: [
+        {
+          title: "生产效率指标",
+          children: [
+            {
+              title: "风能利用率",
+              children: [
+                { title: "值(%)", code: "fnlylValue" },
+                { title: "评分", code: "fnlylrank" },
+              ],
+            },
+            {
+              title: "限电损失率",
+              children: [
+                { title: "值(%)", code: "xdsslValue" },
+                { title: "评分", code: "xdsslRank" },
+              ],
+            },
+            {
+              title: "性能损失率",
+              children: [
+                { title: "值(%)", code: "xnsslValue" },
+                { title: "评分", code: "xnsslRank" },
+              ],
+            },
+            {
+              title: "复位及时率",
+              children: [
+                { title: "值(%)", code: "fwjsl" },
+                { title: "评分", code: "fwjsl" },
+              ],
+            },
+            {
+              title: "状态转换及时率",
+              children: [
+                { title: "值(%)", code: "ztzhl" },
+                { title: "评分", code: "ztzhl" },
+              ],
+            },
+            {
+              title: "缺陷下单及时率",
+              children: [
+                { title: "值(%)", code: "qxxd" },
+                { title: "评分", code: "qxxd" },
+              ],
+            },
+            {
+              title: "缺陷验收及时率",
+              children: [
+                { title: "值(%)", code: "qxys" },
+                { title: "评分", code: "qxys" },
+              ],
+            },
+            {
+              title: "平均小风切入风速",
+              children: [
+                { title: "值(m/s)", code: "pjxf" },
+                { title: "评分", code: "pjxf" },
+              ],
+            },
+            {
+              title: "MTTF",
+              children: [
+                { title: "值(小时)", code: "mttf" },
+                { title: "评分", code: "mttf" },
+              ],
+            },
+          ],
+        },
+        {
+          title: "综合分析指标",
+          children: [
+            {
+              title: "设备利用小时",
+              children: [
+                { title: "值(小时)", code: "sblyxs" },
+                { title: "评分", code: "sblyxs" },
+              ],
+            },
+            {
+              title: "综合厂用电率",
+              children: [
+                { title: "值(%)", code: "zhcydl" },
+                { title: "评分", code: "zhcydl" },
+              ],
+            },
+            {
+              title: "隐患发现准确率",
+              children: [
+                { title: "值(%)", code: "yhfxzql" },
+                { title: "评分", code: "yhfxzql" },
+              ],
+            },
+          ],
+        },
+      ],
+      page: {
+        pagesize: 21,
+        currentPage: 1,
+        total: 0,
+      },
+    };
+  },
+  created() {
+    this.pickerTime = dayjs().format("YYYY-MM");
+  },
+  mounted() {},
+  computed: {},
+  methods: {
+    handleSizeChange(val) {
+      this.page.pagesize = val;
+      this.getTableData();
+    },
+    handleCurrentChange(val) {
+      this.page.currentPage = val;
+      this.getTableData();
+    },
+    getTableData() {},
+    downXlsxFn() {
+      let header = [];
+      this.tableHeader.forEach((it) => {
+        header.push(it.title);
+      });
+      if (this.runningData.length > 0) {
+        utils.exportExcel(
+          this.$refs["running_table"].$el,
+          header,
+          `${this.pickerTime}运行评价KPI`
+        );
+      }
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.running {
+  padding: 0 20px;
+  height: 100%;
+  .running_title {
+
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      line-height: 41px;
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+
+    .floatLeft {
+      float: left;
+    }
+
+    .floatRight {
+      float: right;
+    }
+
+    .rightContent {
+      width: 212px;
+      height: 28px;
+      margin-top: 13px;
+      background: url("../../../../assets/imgs/title_right_bg.png");
+    }
+  }
+
+  .clearfix::after {
+    content: "";
+    clear: both;
+    height: 0;
+    line-height: 0;
+    visibility: hidden;
+    display: block;
+  }
+
+  .clearfix {
+    zoom: 1;
+  }
+
+  .running_top {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    margin-top: 10px;
+    margin-bottom: 10px;
+
+    .station {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      font-size: 14px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-right: 10px;
+      margin-left: 10px;
+    }
+
+    .tabCut {
+      display: inline-block;
+      margin: 0 10px;
+
+      div {
+        display: inline-block;
+        width: 60px;
+        height: 27px;
+        border: 1px solid #274934;
+        text-align: center;
+        line-height: 25px;
+        cursor: pointer;
+      }
+
+      div:nth-child(1) {
+        border-radius: 13px 0px 0px 13px;
+      }
+
+      div:nth-child(2) {
+        border-radius: 0px 13px 13px 0px;
+        cursor: not-allowed;
+      }
+
+      .active {
+        background-color: rgba(5, 187, 76, 0.9);
+        color: #fff;
+      }
+    }
+
+    .search-input {
+      margin-left: 10px;
+
+      .el-input__inner {
+        width: 175px;
+      }
+
+      .el-input__suffix {
+        right: -50px;
+      }
+    }
+
+    .but {
+      display: flex;
+      flex-direction: row;
+      align-content: center;
+      margin-left: 20px;
+
+      .buttons:nth-child(1) {
+        background: rgba(5, 187, 76, 0.6);
+        border: 1px solid #3b6c53;
+        border-radius: 13px;
+        color: #fff;
+
+        &:hover {
+          background: rgba(5, 187, 76, 0.9);
+          border-radius: 13px;
+          color: #fff;
+        }
+      }
+
+      .buttons:nth-child(2) {
+        background: rgba(67, 81, 107, 0.3);
+        border: 1px solid #3b6c53;
+        border-radius: 13px;
+        font-size: 14px;
+        color: #b3b3b3;
+      }
+    }
+  }
+
+  .economicTable1 {
+    height: calc(100% - 42px);
+    .el-table ::v-deep {
+      .el-table__header {
+        border-collapse: collapse;
+      }
+      .el-table__body-wrapper {
+        .el-table__body {
+          font-size: 13px;
+          //   border: 1px solid #eceef5;
+          //   border-collapse: collapse;
+        }
+      }
+      th {
+        height: 20px;
+        line-height: 20px;
+        font-size: 14px;
+        &.el-table__cell {
+          border: 1px solid rgba(255, 255, 255, 0.8) !important;
+          &:nth-child(1) {
+            border-left-width: 0 !important;
+            // border-left-width: 0 !important;
+          }
+          &.is-leaf {
+            // border-bottom-width: 1px !important;
+          }
+        }
+      }
+      td {
+        height: 25px;
+        line-height: 25px;
+        font-size: 14px;
+        &.el-table__cell {
+          border-bottom: 1px solid #434141 !important;
+          &:nth-child(1) {
+            border-left-width: 0 !important;
+            // border-left-width: 0 !important;
+          }
+          &.is-leaf {
+            // border-bottom-width: 1px !important;
+          }
+        }
+      }
+    }
+    .el-pagination {
+      display: flex;
+      justify-content: flex-end;
+      padding-right: 40px;
+      padding-top: 20px;
+      .el-pagination__total,
+      .el-pagination__jump {
+        color: #fff;
+      }
+    }
+
+    .el-table__fixed,
+    .el-table__fixed-right {
+      background: rgba(0, 0, 0, 1);
+      border-left: 2px solid #000;
+      height: calc(100% - 15px) !important;
+    }
+
+    .el-table__fixed::before {
+      background-color: #2a2a2a;
+    }
+
+    .el-table__fixed-right::before {
+      background-color: #2a2a2a;
+    }
+  }
+
+  .el-overlay {
+    .el-overlay-dialog {
+      overflow-y: hidden !important;
+
+      .el-dialog {
+        margin-top: 0 !important;
+        .el-dialog__body {
+          height: calc(100% - 51px - 32px);
+        }
+      }
+    }
+  }
+
+  .el-picker__popper .el-date-range-picker__header .el-picker-panel__icon-btn {
+    color: #fff;
+  }
+
+  .el-picker__popper .el-date-table .in-range div {
+    background: #43516b;
+  }
+}
+
+.historyBtn1 {
+  cursor: pointer;
+  color: #05bb4c;
+}
+</style>

+ 777 - 0
src/views/economicsOperation/comprehensiveControl/stationControlKPI/index.vue

@@ -0,0 +1,777 @@
+<template>
+  <div class="stationControl">
+    <div class="stationControl_top">
+      <el-select
+        size="mini"
+        v-model="tabIndex"
+        placeholder="请选择"
+        clearable
+        @change="getTableData"
+      >
+        <el-option
+          v-for="item in tabOptions"
+          :key="item.id"
+          :label="item.name"
+          :value="item.id"
+        >
+        </el-option>
+      </el-select>
+      <div class="station">
+        时间:
+        <div class="">
+          <el-date-picker
+            size="mini"
+            v-model="pickerTime"
+            type="month"
+            value-format="YYYY-MM"
+            placeholder="选择年月"
+            popper-class="date-select"
+          >
+          </el-date-picker>
+        </div>
+      </div>
+
+      <div class="but">
+        <el-button
+          round
+          size="mini"
+          class="buttons sousuo"
+          @click="getTableData"
+          >搜索</el-button
+        >
+        <el-button round size="mini" class="buttons" @click="downXlsxFn"
+          >导出</el-button
+        >
+      </div>
+    </div>
+    <div
+      style="
+        background: rgba(0, 0, 0, 0.4);
+        height: calc(100% - 43px);
+        padding-bottom: 15px;
+      "
+    >
+      <div class="stationControl_title clearfix">
+        <div class="leftContent floatLeft">
+          <span>{{ tabIndex == -1 ? "风场" : "电站" }}管控KPI</span>
+        </div>
+      </div>
+      <div class="economicTable1">
+        <el-table
+          :data="stationControlData"
+          stripe
+          size="mini"
+          height="calc(100% - 40px - 20px)"
+          ref="stationControl_table"
+          style="width: 100%"
+          border
+        >
+          <el-table-column
+            prop="station"
+            label="场站"
+            align="center"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            prop="year"
+            label="年份"
+            align="center"
+            width="58"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="month"
+            label="月份"
+            align="center"
+            width="58"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            v-for="(item, index) in tableHeader"
+            :key="index"
+            :label="item.title"
+            align="center"
+          >
+            <el-table-column
+              v-for="(subItem, subIndex) in tabIndex == -1
+                ? item.children
+                : item.childrenG
+                ? item.childrenG
+                : item.children"
+              :key="subIndex"
+              :prop="subItem.code"
+              :label="subItem.title"
+              align="center"
+              show-overflow-tooltip
+            >
+              <el-table-column
+                v-for="(thiItem, thiIndex) in subItem.children"
+                :key="thiIndex"
+                sortable
+                width="45"
+                :prop="thiItem.code"
+                :label="thiItem.title"
+                align="center"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+            </el-table-column>
+          </el-table-column>
+          <el-table-column
+            prop="score"
+            label="总评分"
+            align="center"
+            width="40"
+            show-overflow-tooltip
+          />
+        </el-table>
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="page.currentPage"
+          :page-size="page.pagesize"
+          layout="total, prev, pager, next, jumper"
+          :total="page.total"
+        >
+        </el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  getApicompanyslist,
+  getApiwpByCplistlist,
+  getApioutputSpeedlist,
+} from "@/api/monthlyPerformanceAnalysis";
+import utils from "@/utills/downXlsx";
+import dayjs from "dayjs";
+import { GetStationByCompany } from "@/api/factoryMonitor/index.js";
+export default {
+  name: "stationControl", //场站管控KPI
+  components: {},
+  data() {
+    return {
+      stationVal: "",
+      stationOptions: [],
+      pickerTime: "",
+      stationControlData: [...new Array(15)].fill({
+        id: 1,
+        station: "右玉小五台风电场",
+        yxbz: "1组",
+        year: "2023",
+        month: "09",
+        fnlylValue: 1,
+        fnlylrank: 1,
+        xdsslValue: 1,
+        xdsslRank: 1,
+        xnsslValue: 1,
+        xnsslRank: 1,
+        fwjsl: 1,
+        ztzhl: 1,
+        qxxd: 1,
+        qxys: 1,
+        pjxf: 1,
+        mttf: 1,
+        sblyxs: 1,
+        zhcydl: 1,
+        yhfxzql: 1,
+        score: 12,
+      }),
+      tabIndex: -1,
+      tabOptions: [
+        { id: -1, name: "风电" },
+        { id: -2, name: "光伏" },
+      ],
+      tableHeader: [
+        {
+          title: "安全指标",
+          children: [
+            {
+              title: "人身、设备事故",
+              children: [
+                { title: "值(次)", code: "sblyxs" },
+                { title: "评分", code: "sblyxs" },
+              ],
+            },
+            {
+              title: "设备一类障碍",
+              children: [
+                { title: "值(次)", code: "zhcydl" },
+                { title: "评分", code: "zhcydl" },
+              ],
+            },
+          ],
+        },
+        {
+          title: "生产效率指标",
+          children: [
+            {
+              title: "风能利用率",
+              children: [
+                { title: "值(%)", code: "fnlylValue" },
+                { title: "评分", code: "fnlylrank" },
+              ],
+            },
+            {
+              title: "计划检修损失率",
+              children: [
+                { title: "值(%)", code: "xdsslValue" },
+                { title: "评分", code: "xdsslRank" },
+              ],
+            },
+            {
+              title: "非计划检修损失率",
+              children: [
+                { title: "值(%)", code: "xnsslValue" },
+                { title: "评分", code: "xnsslRank" },
+              ],
+            },
+            {
+              title: "限电损失率",
+              children: [
+                { title: "值(%)", code: "xdsslValue" },
+                { title: "评分", code: "xdsslRank" },
+              ],
+            },
+            {
+              title: "性能损失率",
+              children: [
+                { title: "值(%)", code: "xnsslValue" },
+                { title: "评分", code: "xnsslRank" },
+              ],
+            },
+            {
+              title: "复位及时率",
+              children: [
+                { title: "值(%)", code: "fwjsl" },
+                { title: "评分", code: "fwjsl" },
+              ],
+            },
+            {
+              title: "状态转换及时率",
+              children: [
+                { title: "值(%)", code: "ztzhl" },
+                { title: "评分", code: "ztzhl" },
+              ],
+            },
+            {
+              title: "故障处理及时率",
+              children: [
+                { title: "值(%)", code: "fwjsl" },
+                { title: "评分", code: "fwjsl" },
+              ],
+            },
+            {
+              title: "MTBF",
+              children: [
+                { title: "值(小时)", code: "qxys" },
+                { title: "评分", code: "qxys" },
+              ],
+            },
+            {
+              title: "MTTF",
+              children: [
+                { title: "值(小时)", code: "mttf" },
+                { title: "评分", code: "mttf" },
+              ],
+            },
+            {
+              title: "MTTR",
+              children: [
+                { title: "值(小时)", code: "mttf" },
+                { title: "评分", code: "mttf" },
+              ],
+            },
+          ],
+          childrenG: [
+            {
+              title: "光能利用率",
+              children: [
+                { title: "值(%)", code: "fnlylValue" },
+                { title: "评分", code: "fnlylrank" },
+              ],
+            },
+            {
+              title: "计划检修损失率",
+              children: [
+                { title: "值(%)", code: "xdsslValue" },
+                { title: "评分", code: "xdsslRank" },
+              ],
+            },
+            {
+              title: "非计划检修损失率",
+              children: [
+                { title: "值(%)", code: "xnsslValue" },
+                { title: "评分", code: "xnsslRank" },
+              ],
+            },
+            {
+              title: "限电损失率",
+              children: [
+                { title: "值(%)", code: "xdsslValue" },
+                { title: "评分", code: "xdsslRank" },
+              ],
+            },
+            {
+              title: "性能损失率",
+              children: [
+                { title: "值(%)", code: "xnsslValue" },
+                { title: "评分", code: "xnsslRank" },
+              ],
+            },
+            {
+              title: "复位及时率",
+              children: [
+                { title: "值(%)", code: "fwjsl" },
+                { title: "评分", code: "fwjsl" },
+              ],
+            },
+            {
+              title: "状态转换及时率",
+              children: [
+                { title: "值(%)", code: "ztzhl" },
+                { title: "评分", code: "ztzhl" },
+              ],
+            },
+            {
+              title: "故障处理及时率",
+              children: [
+                { title: "值(%)", code: "fwjsl" },
+                { title: "评分", code: "fwjsl" },
+              ],
+            },
+            {
+              title: "MTBF",
+              children: [
+                { title: "值(小时)", code: "qxys" },
+                { title: "评分", code: "qxys" },
+              ],
+            },
+            {
+              title: "MTTF",
+              children: [
+                { title: "值(小时)", code: "mttf" },
+                { title: "评分", code: "mttf" },
+              ],
+            },
+            {
+              title: "MTTR",
+              children: [
+                { title: "值(小时)", code: "mttf" },
+                { title: "评分", code: "mttf" },
+              ],
+            },
+          ],
+        },
+        {
+          title: "综合分析指标",
+          children: [
+            {
+              title: "设备利用小时",
+              children: [
+                { title: "值(小时)", code: "sblyxs" },
+                { title: "评分", code: "sblyxs" },
+              ],
+            },
+            {
+              title: "综合厂用电率",
+              children: [
+                { title: "值(%)", code: "zhcydl" },
+                { title: "评分", code: "zhcydl" },
+              ],
+            },
+            {
+              title: "设备可利用率",
+              children: [
+                { title: "值(%)", code: "zhcydl" },
+                { title: "评分", code: "zhcydl" },
+              ],
+            },
+            {
+              title: "等效可用系数",
+              children: [
+                { title: "值(%)", code: "yhfxzql" },
+                { title: "评分", code: "yhfxzql" },
+              ],
+            },
+            {
+              title: "隐患发现准确率",
+              children: [
+                { title: "值(%)", code: "yhfxzql" },
+                { title: "评分", code: "yhfxzql" },
+              ],
+            },
+            {
+              title: "风功率预测准确率",
+              children: [
+                { title: "值(%)", code: "yhfxzql" },
+                { title: "评分", code: "yhfxzql" },
+              ],
+            },
+          ],
+          childrenG: [
+            {
+              title: "设备利用小时",
+              children: [
+                { title: "值(小时)", code: "sblyxs" },
+                { title: "评分", code: "sblyxs" },
+              ],
+            },
+            {
+              title: "综合厂用电率",
+              children: [
+                { title: "值(%)", code: "zhcydl" },
+                { title: "评分", code: "zhcydl" },
+              ],
+            },
+            {
+              title: "设备可利用率",
+              children: [
+                { title: "值(%)", code: "zhcydl" },
+                { title: "评分", code: "zhcydl" },
+              ],
+            },
+            {
+              title: "等效可用系数",
+              children: [
+                { title: "值(%)", code: "yhfxzql" },
+                { title: "评分", code: "yhfxzql" },
+              ],
+            },
+            {
+              title: "隐患发现准确率",
+              children: [
+                { title: "值(%)", code: "yhfxzql" },
+                { title: "评分", code: "yhfxzql" },
+              ],
+            },
+            {
+              title: "光功率预测准确率",
+              children: [
+                { title: "值(%)", code: "yhfxzql" },
+                { title: "评分", code: "yhfxzql" },
+              ],
+            },
+          ],
+        },
+        {
+          title: "自然环境影响指标",
+          children: [
+            {
+              title: "平均风速",
+              children: [
+                { title: "值(m/s)", code: "sblyxs" },
+                { title: "评分", code: "sblyxs" },
+              ],
+            },
+            {
+              title: "静风频率",
+              children: [
+                { title: "值(%)", code: "sblyxs" },
+                { title: "评分", code: "sblyxs" },
+              ],
+            },
+            {
+              title: "有效风时率",
+              children: [
+                { title: "值(%)", code: "sblyxs" },
+                { title: "评分", code: "sblyxs" },
+              ],
+            },
+          ],
+          childrenG: [
+            {
+              title: "累计辐射总量",
+              children: [
+                { title: "值(兆焦/平米)", code: "sblyxs" },
+                { title: "评分", code: "sblyxs" },
+              ],
+            },
+          ],
+        },
+      ],
+      page: {
+        pagesize: 21,
+        currentPage: 1,
+        total: 0,
+      },
+    };
+  },
+  created() {
+    this.pickerTime = dayjs().format("YYYY-MM");
+  },
+  mounted() {},
+  computed: {},
+  methods: {
+    handleSizeChange(val) {
+      this.page.pagesize = val;
+      this.getTableData();
+    },
+    handleCurrentChange(val) {
+      this.page.currentPage = val;
+      this.getTableData();
+    },
+
+    getTableData() {},
+    downXlsxFn() {
+      let header = [];
+      this.tableHeader.forEach((it) => {
+        if (it.title !== "操作") {
+          header.push(it.title);
+        }
+      });
+      if (this.stationControlData.length > 0) {
+        utils.exportExcel(
+          this.$refs["stationControl_table"].$el,
+          header,
+          `${this.pickerTime}${
+            this.tabIndex == -1 ? "风场" : "电站"
+          }综合评价KPI`
+        );
+      }
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.stationControl {
+  padding: 0 20px;
+  height: 100%;
+  .stationControl_title {
+
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      line-height: 41px;
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+
+    .floatLeft {
+      float: left;
+    }
+
+    .floatRight {
+      float: right;
+    }
+
+    .rightContent {
+      width: 212px;
+      height: 28px;
+      margin-top: 13px;
+      background: url("../../../../assets/imgs/title_right_bg.png");
+    }
+  }
+
+  .clearfix::after {
+    content: "";
+    clear: both;
+    height: 0;
+    line-height: 0;
+    visibility: hidden;
+    display: block;
+  }
+
+  .clearfix {
+    zoom: 1;
+  }
+
+  .stationControl_top {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    margin-top: 10px;
+    margin-bottom: 10px;
+
+    .station {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      font-size: 14px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-right: 10px;
+      margin-left: 10px;
+    }
+
+    .tabCut {
+      display: inline-block;
+      margin: 0 10px;
+
+      div {
+        display: inline-block;
+        width: 60px;
+        height: 27px;
+        border: 1px solid #274934;
+        text-align: center;
+        line-height: 25px;
+        cursor: pointer;
+      }
+
+      div:nth-child(1) {
+        border-radius: 13px 0px 0px 13px;
+      }
+
+      div:nth-child(2) {
+        border-radius: 0px 13px 13px 0px;
+        cursor: not-allowed;
+      }
+
+      .active {
+        background-color: rgba(5, 187, 76, 0.9);
+        color: #fff;
+      }
+    }
+
+    .search-input {
+      margin-left: 10px;
+
+      .el-input__inner {
+        width: 175px;
+      }
+
+      .el-input__suffix {
+        right: -50px;
+      }
+    }
+
+    .but {
+      display: flex;
+      flex-direction: row;
+      align-content: center;
+      margin-left: 20px;
+
+      .buttons:nth-child(1) {
+        background: rgba(5, 187, 76, 0.6);
+        border: 1px solid #3b6c53;
+        border-radius: 13px;
+        color: #fff;
+
+        &:hover {
+          background: rgba(5, 187, 76, 0.9);
+          border-radius: 13px;
+          color: #fff;
+        }
+      }
+
+      .buttons:nth-child(2) {
+        background: rgba(67, 81, 107, 0.3);
+        border: 1px solid #3b6c53;
+        border-radius: 13px;
+        font-size: 14px;
+        color: #b3b3b3;
+      }
+    }
+  }
+
+  .economicTable1 {
+    height: calc(100% - 42px);
+    .el-table ::v-deep {
+      .el-table__header {
+        border-collapse: collapse;
+      }
+      .el-table__body-wrapper {
+        .el-table__body {
+          font-size: 13px;
+          //   border: 1px solid #eceef5;
+          //   border-collapse: collapse;
+        }
+      }
+      th {
+        height: 20px;
+        line-height: 20px;
+        font-size: 14px;
+        &.el-table__cell {
+          border: 1px solid rgba(255, 255, 255, 0.8) !important;
+          &:nth-child(1) {
+            border-left-width: 0 !important;
+            // border-left-width: 0 !important;
+          }
+          &.is-leaf {
+            // border-bottom-width: 1px !important;
+          }
+        }
+      }
+      td {
+        height: 25px;
+        line-height: 25px;
+        font-size: 14px;
+        &.el-table__cell {
+          border-bottom: 1px solid #434141 !important;
+          &:nth-child(1) {
+            border-left-width: 0 !important;
+            // border-left-width: 0 !important;
+          }
+          &.is-leaf {
+            // border-bottom-width: 1px !important;
+          }
+        }
+      }
+    }
+    .el-pagination {
+      display: flex;
+      justify-content: flex-end;
+      padding-right: 40px;
+      padding-top: 20px;
+      .el-pagination__total,
+      .el-pagination__jump {
+        color: #fff;
+      }
+    }
+
+    .el-table__fixed,
+    .el-table__fixed-right {
+      background: rgba(0, 0, 0, 1);
+      border-left: 2px solid #000;
+      height: calc(100% - 15px) !important;
+    }
+
+    .el-table__fixed::before {
+      background-color: #2a2a2a;
+    }
+
+    .el-table__fixed-right::before {
+      background-color: #2a2a2a;
+    }
+  }
+
+  .el-overlay {
+    .el-overlay-dialog {
+      overflow-y: hidden !important;
+
+      .el-dialog {
+        margin-top: 0 !important;
+        .el-dialog__body {
+          height: calc(100% - 51px - 32px);
+        }
+      }
+    }
+  }
+
+  .el-picker__popper .el-date-range-picker__header .el-picker-panel__icon-btn {
+    color: #fff;
+  }
+
+  .el-picker__popper .el-date-table .in-range div {
+    background: #43516b;
+  }
+}
+
+.historyBtn1 {
+  cursor: pointer;
+  color: #05bb4c;
+}
+</style>

+ 4 - 5
src/views/economicsOperation/efficiency/consumeEfficiency/index.vue

@@ -51,7 +51,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>消缺及时率</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -121,8 +120,8 @@ export default {
     if (day < 10) {
       day = "0" + day;
     }
-    this.starTime = date.getFullYear() + "-" + month + "-" + day;
-    this.endTime = dayjs(new Date().getTime()).format("YYYY-MM-DD");
+    this.starTime = dayjs().add(-1, "day").format("YYYY-MM-DD");
+    this.endTime = dayjs().format("YYYY-MM-DD");
     this.initialization();
   },
   methods: {
@@ -204,13 +203,13 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;
         font-family: Microsoft YaHei;
         font-weight: 400;
-        color: #ffffff;
+        color: #05BB4C;
         margin-left: 25px;
       }
     }

+ 0 - 309
src/views/economicsOperation/efficiency/lsl/index.vue

@@ -1,309 +0,0 @@
-<template>
-  <div class="parcel-box">
-    <div class="title">
-      <el-select
-        size="mini"
-        v-model="company"
-        placeholder="请选择"
-        @change="getTableDate"
-      >
-        <el-option
-          v-for="item in companyOptions"
-          :key="item.id"
-          :label="item.aname"
-          :value="item.id"
-        >
-        </el-option>
-      </el-select>
-      <div class="station">
-        开始日期
-        <div class="search-input">
-          <el-date-picker
-            v-model="starTime"
-            type="date"
-            value-format="YYYY-MM-DD"
-            placeholder="选择日期"
-            popper-class="date-select"
-          >
-          </el-date-picker>
-        </div>
-      </div>
-      <div class="station">
-        结束日期
-        <div class="search-input">
-          <el-date-picker
-            v-model="endTime"
-            type="date"
-            value-format="YYYY-MM-DD"
-            placeholder="选择日期"
-            popper-class="date-select"
-          >
-          </el-date-picker>
-        </div>
-      </div>
-      <el-button round size="mini" class="searchColor" @click="getTableDate"
-        >搜索</el-button
-      >
-      <!-- <el-button round size="mini">导出</el-button> -->
-    </div>
-    <div class="data-bodys">
-      <div class="line clearfix">
-        <div class="leftContent left"><span>复位及时率</span></div>
-        <div class="rightContent right"></div>
-      </div>
-      <div class="economicTable">
-        <el-table
-          :data="tableData"
-          style="width: 100%"
-          size="mini"
-          stripe
-          height="85vh"
-        >
-          <el-table-column
-            align="center"
-            prop="unit"
-            label="风场"
-            width="200"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="five"
-            label="5分钟 / 复位次数"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="fives"
-            label="5分钟 / 复位率"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="ten"
-            label="10分钟 / 复位次数"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="tens"
-            label="10分钟 / 复位率"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="fifteen"
-            label="15分钟 / 复位次数"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="fifteens"
-            label="15分钟 / 复位率"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="twenty"
-            label="20分钟 / 复位次数"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="twentys"
-            label="20分钟 / 复位率"
-            sortable
-          ></el-table-column>
-        </el-table>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import dayjs from "dayjs";
-import { companys, timelyRate } from "@/api/curveAnalyse";
-export default {
-  name: "curveAnalyse",
-  components: {},
-  data() {
-    return {
-      starTime: "",
-      endTime: "",
-      company: "",
-      companyOptions: [],
-      tableData: [],
-    };
-  },
-  watch: {},
-  filters: {},
-  computed: {},
-  created() {
-    let date = new Date();
-    date.setDate(1);
-    let month = parseInt(date.getMonth() + 1);
-    let day = date.getDate();
-    if (month < 10) {
-      month = "0" + month;
-    }
-    if (day < 10) {
-      day = "0" + day;
-    }
-    this.starTime = date.getFullYear() + "-" + month + "-" + day;
-    this.endTime = dayjs(new Date().getTime()).format("YYYY-MM-DD");
-    this.initialization();
-  },
-  methods: {
-    initialization() {
-      companys().then(({ data: res }) => {
-        this.companyOptions = res.data;
-        this.company = res.data[0].id;
-        this.getTableDate();
-      });
-    },
-    getTableDate() {
-      timelyRate({
-        companyId: this.company,
-        beginDate: this.starTime,
-        endDate: this.endTime,
-      }).then(({ data: res }) => {
-        if (res) {
-          let data = [];
-          res.data.forEach((item, index) => {
-            data[index] = {
-              unit: item.wpid,
-              five: item.wfz,
-              fives: item.wfzfwl,
-              ten: item.sfz,
-              tens: item.sfzfwl,
-              fifteen: item.swfz,
-              fifteens: item.swfzfwl,
-              twenty: item.esfz,
-              twentys: item.esfzfwl,
-              is_light: false,
-            };
-          });
-          this.tableData = data;
-        }
-      });
-    },
-  },
-  mounted() {},
-  beforeUnmount() {},
-};
-</script>
-
-<style lang="less" scoped>
-.title {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  margin-top: 10px;
-  padding-left: 20px;
-
-  .station {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    font-size: 14px;
-    font-family: Microsoft YaHei;
-    font-weight: 400;
-    color: #b3b3b3;
-    margin-left: 10px;
-  }
-
-  .search-input {
-    margin-left: 10px;
-  }
-
-  .but {
-    display: flex;
-    flex-direction: row;
-    align-content: center;
-    margin-left: 20px;
-  }
-
-  .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;
-    }
-  }
-}
-
-.data-bodys {
-  display: flex;
-  flex-direction: column;
-  background-color: rgba(0, 0, 0, 0.45);
-  border-radius: 5px;
-  padding: 5px;
-}
-
-.parcel-box {
-  padding: 0 20px;
-  box-sizing: border-box;
-
-  .line {
-    padding-bottom: 5px;
-    .leftContent {
-      width: 242px;
-      height: 41px;
-      line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
-
-      span {
-        font-size: 16px;
-        font-family: Microsoft YaHei;
-        font-weight: 400;
-        color: #ffffff;
-        margin-left: 25px;
-      }
-    }
-
-    .rightContent {
-      width: 212px;
-      height: 28px;
-      margin-top: 13px;
-      background: url("../../../../assets/imgs/title_right_bg.png");
-    }
-  }
-}
-
-.clearfix::after {
-  content: "";
-  clear: both;
-  height: 0;
-  line-height: 0;
-  visibility: hidden;
-  display: block;
-}
-
-.clearfix {
-  zoom: 1;
-}
-
-.left {
-  float: left;
-}
-
-.right {
-  float: right;
-}
-
-.searchColor {
-  background-color: rgba(5, 187, 76, 0.2);
-  border: 1px solid #3b6c53;
-  color: #b3b3b3;
-  font-size: 14px;
-  margin-left: 10px;
-  &:hover {
-    background-color: rgba(5, 187, 76, 0.5);
-    color: #ffffff;
-  }
-}
-</style>

+ 4 - 5
src/views/economicsOperation/efficiency/restorationEfficiency/index.vue

@@ -51,7 +51,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>复位及时率</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -151,8 +150,8 @@ export default {
     if (day < 10) {
       day = "0" + day;
     }
-    this.starTime = date.getFullYear() + "-" + month + "-" + day;
-    this.endTime = dayjs(new Date().getTime()).format("YYYY-MM-DD");
+   this.starTime = dayjs().add(-1, "day").format("YYYY-MM-DD");
+    this.endTime = dayjs().format("YYYY-MM-DD");
     this.initialization();
   },
   methods: {
@@ -248,13 +247,13 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;
         font-family: Microsoft YaHei;
         font-weight: 400;
-        color: #ffffff;
+        color: #05BB4C;
         margin-left: 25px;
       }
     }

+ 4 - 5
src/views/economicsOperation/efficiency/stateEfficiency/index.vue

@@ -74,7 +74,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>状态转换率</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -174,8 +173,8 @@ export default {
     if (day < 10) {
       day = "0" + day;
     }
-    this.starTime = date.getFullYear() + "-" + month + "-" + day;
-    this.endTime = dayjs(new Date().getTime()).format("YYYY-MM-DD");
+    this.starTime = dayjs().add(-1, "day").format("YYYY-MM-DD");
+    this.endTime = dayjs().format("YYYY-MM-DD");
     this.initialization();
   },
   methods: {
@@ -269,13 +268,13 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;
         font-family: Microsoft YaHei;
         font-weight: 400;
-        color: #ffffff;
+        color: #05BB4C;
         margin-left: 25px;
       }
     }

+ 0 - 264
src/views/economicsOperation/efficiency/xtxl/index.vue

@@ -1,264 +0,0 @@
-<template>
-  <div class="parcel-box">
-    <div class="title">
-      <el-select
-        size="mini"
-        v-model="company"
-        placeholder="请选择"
-        @change="getTableDate"
-      >
-        <el-option
-          v-for="item in companyOptions"
-          :key="item.id"
-          :label="item.aname"
-          :value="item.id"
-        >
-        </el-option>
-      </el-select>
-      <div class="station">
-        开始日期
-        <div class="search-input">
-          <el-date-picker
-            v-model="starTime"
-            type="date"
-            value-format="YYYY-MM-DD"
-            placeholder="选择日期"
-            popper-class="date-select"
-          >
-          </el-date-picker>
-        </div>
-      </div>
-      <div class="station">
-        结束日期
-        <div class="search-input">
-          <el-date-picker
-            v-model="endTime"
-            type="date"
-            value-format="YYYY-MM-DD"
-            placeholder="选择日期"
-            popper-class="date-select"
-          >
-          </el-date-picker>
-        </div>
-      </div>
-      <el-button round size="mini" class="searchColor" @click="getTableDate"
-        >搜索</el-button
-      >
-      <!-- <el-button round size="mini">导出</el-button> -->
-    </div>
-    <div class="data-bodys">
-      <div class="line clearfix">
-        <div class="leftContent left"><span>消缺及时率</span></div>
-        <div class="rightContent right"></div>
-      </div>
-      <div class="economicTable">
-        <el-table
-          :data="tableData"
-          style="width: 100%"
-          size="mini"
-          stripe
-          height="85vh"
-        >
-          <el-table-column
-            align="center"
-            prop="wpid"
-            label="风场"
-            width="200"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="gzCount"
-            label="故障次数"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="xqCount"
-            label="消缺及时次数"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="xqjsl"
-            label="消缺及时次数"
-            sortable
-          ></el-table-column>
-        </el-table>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import dayjs from "dayjs";
-import { companys, eliminatRate } from "@/api/curveAnalyse";
-export default {
-  name: "curveAnalyse",
-  components: {},
-  data() {
-    return {
-      starTime: "",
-      endTime: "",
-      company: "",
-      companyOptions: [],
-      tableData: [],
-    };
-  },
-  watch: {},
-  filters: {},
-  computed: {},
-  created() {
-    let date = new Date();
-    date.setDate(1);
-    let month = parseInt(date.getMonth() + 1);
-    let day = date.getDate();
-    if (month < 10) {
-      month = "0" + month;
-    }
-    if (day < 10) {
-      day = "0" + day;
-    }
-    this.starTime = date.getFullYear() + "-" + month + "-" + day;
-    this.endTime = dayjs(new Date().getTime()).format("YYYY-MM-DD");
-    this.initialization();
-  },
-  methods: {
-    initialization() {
-      companys().then(({ data: res }) => {
-        this.companyOptions = res.data;
-        this.company = res.data[0].id;
-        this.getTableDate();
-      });
-    },
-    getTableDate() {
-      eliminatRate({
-        companyId: this.company,
-        beginDate: this.starTime,
-        endDate: this.endTime,
-      }).then(({ data: res }) => {
-        if (res) {
-          this.tableData = res.data;
-        }
-      });
-    },
-  },
-  mounted() {},
-  beforeUnmount() {},
-};
-</script>
-
-<style lang="less" scoped>
-.title {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  margin-top: 10px;
-  padding-left: 20px;
-
-  .station {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    font-size: 14px;
-    font-family: Microsoft YaHei;
-    font-weight: 400;
-    color: #b3b3b3;
-    margin-left: 10px;
-  }
-
-  .search-input {
-    margin-left: 10px;
-  }
-
-  .but {
-    display: flex;
-    flex-direction: row;
-    align-content: center;
-    margin-left: 20px;
-  }
-
-  .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;
-    }
-  }
-}
-
-.data-bodys {
-  display: flex;
-  flex-direction: column;
-  background-color: rgba(0, 0, 0, 0.45);
-  border-radius: 5px;
-  padding: 5px;
-}
-
-.parcel-box {
-  padding: 0 20px;
-  box-sizing: border-box;
-
-  .line {
-    padding-bottom: 5px;
-    .leftContent {
-      width: 242px;
-      height: 41px;
-      line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
-
-      span {
-        font-size: 16px;
-        font-family: Microsoft YaHei;
-        font-weight: 400;
-        color: #ffffff;
-        margin-left: 25px;
-      }
-    }
-
-    .rightContent {
-      width: 212px;
-      height: 28px;
-      margin-top: 13px;
-      background: url("../../../../assets/imgs/title_right_bg.png");
-    }
-  }
-}
-
-.clearfix::after {
-  content: "";
-  clear: both;
-  height: 0;
-  line-height: 0;
-  visibility: hidden;
-  display: block;
-}
-
-.clearfix {
-  zoom: 1;
-}
-
-.left {
-  float: left;
-}
-
-.right {
-  float: right;
-}
-
-.searchColor {
-  background-color: rgba(5, 187, 76, 0.2);
-  border: 1px solid #3b6c53;
-  color: #b3b3b3;
-  font-size: 14px;
-  margin-left: 10px;
-  &:hover {
-    background-color: rgba(5, 187, 76, 0.5);
-    color: #ffffff;
-  }
-}
-</style>

+ 0 - 388
src/views/economicsOperation/efficiency/zhl/index.vue

@@ -1,388 +0,0 @@
-<template>
-  <div class="parcel-box">
-    <div class="title">
-      <el-select
-        size="mini"
-        v-model="company"
-        placeholder="请选择"
-        @change="getTableDate"
-      >
-        <el-option
-          v-for="item in companyOptions"
-          :key="item.id"
-          :label="item.aname"
-          :value="item.id"
-        >
-        </el-option>
-      </el-select>
-      <div class="station">
-        开始日期
-        <div class="search-input">
-          <el-date-picker
-            v-model="starTime"
-            type="date"
-            value-format="YYYY-MM-DD"
-            placeholder="选择日期"
-            popper-class="date-select"
-          >
-          </el-date-picker>
-        </div>
-      </div>
-      <div class="station">
-        结束日期
-        <div class="search-input">
-          <el-date-picker
-            v-model="endTime"
-            type="date"
-            value-format="YYYY-MM-DD"
-            placeholder="选择日期"
-            popper-class="date-select"
-          >
-          </el-date-picker>
-        </div>
-      </div>
-      <div class="date">
-        <div
-          class="day"
-          :class="current === '1' ? 'active' : ''"
-          @click="handleChange('1')"
-        >
-          小于3米风速
-        </div>
-        <div
-          class="mouth"
-          :class="current === '2' ? 'active' : ''"
-          @click="handleChange('2')"
-        >
-          大于3米风速
-        </div>
-        <div
-          class="year"
-          :class="current === '3' ? 'active' : ''"
-          @click="handleChange('3')"
-        >
-          大于4米风速
-        </div>
-      </div>
-      <el-button round size="mini" class="searchColor" @click="getTableDate"
-        >搜索</el-button
-      >
-      <!-- <el-button round size="mini">导出</el-button> -->
-    </div>
-    <div class="data-bodys">
-      <div class="line clearfix">
-        <div class="leftContent left"><span>状态转换率</span></div>
-        <div class="rightContent right"></div>
-      </div>
-      <div class="economicTable">
-        <el-table
-          :data="tableData"
-          style="width: 100%"
-          size="mini"
-          stripe
-          height="85vh"
-        >
-          <el-table-column
-            align="center"
-            prop="wpid"
-            label="风场"
-            width="200"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="wfz"
-            label="5分钟(次)"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="wfzfwl"
-            label="5分钟(率)"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="sfz"
-            label="10分钟(次)"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="sfzfwl"
-            label="10分钟(率)"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="swfz"
-            label="15分钟(次)"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="swfzfwl"
-            label="15分钟(率)"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="esfz"
-            label="20分钟(次)"
-            sortable
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="esfzfwl"
-            label="20分钟(率)"
-            sortable
-          ></el-table-column>
-        </el-table>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import dayjs from "dayjs";
-import { companys, conversionRate } from "@/api/curveAnalyse";
-export default {
-  name: "curveAnalyse",
-  components: {},
-  data() {
-    return {
-      starTime: "",
-      endTime: "",
-      company: "",
-      companyOptions: [],
-      tableData: [],
-      current: "1",
-    };
-  },
-  filters: {},
-  computed: {},
-  created() {
-    let date = new Date();
-    date.setDate(1);
-    let month = parseInt(date.getMonth() + 1);
-    let day = date.getDate();
-    if (month < 10) {
-      month = "0" + month;
-    }
-    if (day < 10) {
-      day = "0" + day;
-    }
-    this.starTime = date.getFullYear() + "-" + month + "-" + day;
-    this.endTime = dayjs(new Date().getTime()).format("YYYY-MM-DD");
-    this.initialization();
-  },
-  methods: {
-    initialization() {
-      companys().then(({ data: res }) => {
-        this.companyOptions = res.data;
-        this.company = res.data[0].id;
-        this.getTableDate();
-      });
-    },
-    getTableDate() {
-      conversionRate({
-        companyId: this.company,
-        beginDate: this.starTime,
-        endDate: this.endTime,
-      }).then(({ data: res }) => {
-        if (res) {
-          const current = this.current;
-          if (current == "1") {
-            this.tableData = res.data.小于3米风速;
-          } else if (current == "2") {
-            this.tableData = res.data.大于3米风速;
-          } else {
-            this.tableData = res.data.大于4米风速;
-          }
-        }
-      });
-    },
-    handleChange(val) {
-      this.current = val;
-      this.getTableDate();
-    },
-  },
-  mounted() {},
-  beforeUnmount() {},
-};
-</script>
-
-<style lang="less" scoped>
-.title {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  margin-top: 10px;
-  padding-left: 20px;
-
-  .station {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    font-size: 14px;
-    font-family: Microsoft YaHei;
-    font-weight: 400;
-    color: #b3b3b3;
-    margin-left: 10px;
-  }
-
-  .search-input {
-    margin-left: 10px;
-  }
-
-  .but {
-    display: flex;
-    flex-direction: row;
-    align-content: center;
-    margin-left: 20px;
-  }
-
-  .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;
-    }
-  }
-}
-
-.data-bodys {
-  display: flex;
-  flex-direction: column;
-  background-color: rgba(0, 0, 0, 0.45);
-  border-radius: 5px;
-  padding: 5px;
-}
-
-.parcel-box {
-  padding: 0 20px;
-  box-sizing: border-box;
-
-  .line {
-    padding-bottom: 5px;
-
-    .leftContent {
-      width: 242px;
-      height: 41px;
-      line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
-
-      span {
-        font-size: 16px;
-        font-family: Microsoft YaHei;
-        font-weight: 400;
-        color: #ffffff;
-        margin-left: 25px;
-      }
-    }
-
-    .rightContent {
-      width: 212px;
-      height: 28px;
-      margin-top: 13px;
-      background: url("../../../../assets/imgs/title_right_bg.png");
-    }
-  }
-}
-
-.clearfix::after {
-  content: "";
-  clear: both;
-  height: 0;
-  line-height: 0;
-  visibility: hidden;
-  display: block;
-}
-
-.clearfix {
-  zoom: 1;
-}
-
-.left {
-  float: left;
-}
-
-.right {
-  float: right;
-}
-
-.searchColor {
-  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;
-  }
-}
-
-.date {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  font-size: 12px;
-  font-family: Microsoft YaHei;
-  font-weight: 400;
-  color: #b3b3b3;
-  margin: 0 15px;
-
-  .day {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    width: 100px;
-    height: 26px;
-    border: 1px solid #3b6c53;
-    border-radius: 11px 0px 0px 11px;
-    background: rgba(67, 81, 107, 0.2);
-
-    &.active {
-      background: rgba(5, 187, 76, 0.4);
-      color: #ffffff;
-    }
-  }
-
-  .mouth {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    width: 100px;
-    height: 26px;
-    border-top: 1px solid #3b6c53;
-    border-bottom: 1px solid #3b6c53;
-    background: rgba(67, 81, 107, 0.2);
-
-    &.active {
-      background: rgba(5, 187, 76, 0.4);
-      color: #ffffff;
-    }
-  }
-
-  .year {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    width: 100px;
-    height: 26px;
-    border: 1px solid #3b6c53;
-    border-radius: 0px 11px 11px 0px;
-    background: rgba(67, 81, 107, 0.2);
-
-    &.active {
-      background: rgba(5, 187, 76, 0.4);
-      color: #ffffff;
-    }
-  }
-}
-</style>

+ 9 - 9
src/views/economicsOperation/homePage/components/barCharts.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="chart" :id="id"></div>
+  <div class="chart" :id="id" :style="{ width, height }"></div>
 </template>
 
 <script>
@@ -371,7 +371,7 @@ export default {
           top: 40,
           left: 10,
           right: 15,
-          bottom:25,
+          bottom: 25,
           containLabel: true,
         },
         xAxis: [
@@ -411,8 +411,8 @@ export default {
   },
   mounted() {
     this.$nextTick(() => {
-      this.$el.style.width = this.width;
-      this.$el.style.height = this.height;
+      //   this.$el.style.width = this.width;
+      //   this.$el.style.height = this.height;
       this.initChart();
       this.firstAnimation = false;
     });
@@ -435,9 +435,9 @@ export default {
 </script>
 
 <style lang="less">
-.chart {
-  width: 100%;
-  height: 100%;
-  display: inline-block;
-}
+// .chart {
+//   width: 100%;
+//   height: 100%;
+//   display: inline-block;
+// }
 </style>

+ 0 - 2
src/views/economicsOperation/homePage/index.vue

@@ -854,7 +854,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">{{ allZbphl[0]?.name }}排行榜</div>
         </div>
       </template>
@@ -1037,7 +1036,6 @@ export default {
         })
         .then(({ data: res }) => {
           if (res) {
-    
             this.allData = res.data;
             let arr = [];
             if (this.staType != -2) {

+ 21 - 3
src/views/economicsOperation/monthElectricAnalyse/components/barCharts.vue

@@ -80,12 +80,30 @@ export default {
         tooltip: {
           trigger: "axis",
           backgroundColor: "rgba(5, 187, 76,0.35)",
-          borderWidth: 1,
-          padding: [10, 10, 3, 10],
           borderColor: "#05bb4c",
+          formatter: function (params) {
+            var htmlStr = `<div style='margin-bottom:5px'>${params[0].axisValue}</div>`;
+            for (var i = 0; i < params.length; i++) {
+              htmlStr += `<div style='margin-bottom:2px'>`;
+              var param = params[i];
+              var seriesName = param.seriesName; //图例名称
+              var value = param.value; //y轴值
+              var data = param.data; //单位判断code
+              var mark = param.marker; //点
+              var unit = `<span style='font-size:14px'>`;
+
+              htmlStr += mark; //一个点
+              htmlStr += `${seriesName} : ${
+                value != null ? value + unit + ` 万kWh</span>` : "--"
+              }`; //圆点后面显示的文本
+              htmlStr += "</div>";
+            }
+            return htmlStr;
+          },
+          padding: [10, 10, 3, 10],
           textStyle: {
             color: "#fff",
-            fontSize: 12,
+            fontSize: 16,
           },
           axisPointer: {
             type: "shadow",

+ 8 - 5
src/views/economicsOperation/monthElectricAnalyse/index.vue

@@ -41,7 +41,7 @@
       v-loading="loading"
       element-loading-background="rgba(4, 12, 11, 0.8)"
     >
-      <img src="@/assets/imgs/glycfx-bg1.png" alt="" />
+      <!-- <img src="@/assets/imgs/glycfx-bg1.png" alt="" /> -->
       <div class="line clearfix">
         <div class="leftContent">
           <span>{{ selectValue }}</span>
@@ -130,7 +130,6 @@ export default {
     };
   },
   watch: {},
-  filters: {},
   created() {
     this.initialization();
   },
@@ -237,6 +236,7 @@ export default {
   box-sizing: border-box;
   width: 100%;
   height: 100%;
+
   .search {
     display: flex;
     flex-direction: row;
@@ -287,7 +287,10 @@ export default {
   .parcel-content {
     width: 100%;
     height: calc(100% - 88px);
-    position: relative;
+    // position: relative;
+    background: url("~@/assets/imgs/glycfx-bg1.png") no-repeat;
+    background-size: 100% 100%;
+    background-position: center;
     img {
       position: absolute;
       top: 0;
@@ -300,13 +303,13 @@ export default {
         width: 242px;
         height: 45px;
         line-height: 45px;
-        background: url("~@/assets/imgs/title_left_bg.png");
+        background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
         span {
           font-size: 16px;
           font-family: Microsoft YaHei;
           font-weight: 400;
-          color: #ffffff;
+          color: #05bb4c;
           margin-left: 25px;
         }
       }

+ 14 - 16
src/views/economicsOperation/performanceAnalyse/performanceAssess/historyDetail.vue

@@ -11,8 +11,6 @@
         format="YYYY/MM/DD"
         value-format="YYYY-MM-DD"
       />
-      <!-- <el-button class="sousuo" @click="seachData">搜索</el-button> -->
-
       <el-button round size="mini" class="buttons" @click="seachData"
         >搜索</el-button
       >
@@ -146,11 +144,23 @@ export default {
   .historyEvaluation_top {
     display: flex;
     padding-bottom: 25px;
-    .el-date-editor--daterange {
+
+    .buttons {
+      background-color: rgba(5, 187, 76, 0.2);
+      border: 1px solid #3b6c53;
+      color: #b3b3b3;
+      font-size: 14px;
+      margin-left: 10px;
+      &:hover {
+        background-color: rgba(5, 187, 76, 0.5);
+        color: #ffffff;
+      }
+    }
+    .el-date-editor--daterange ::v-deep{
       background: transparent;
       border: 1px solid #2a374f;
       border-radius: 30px;
-      //    align-items: center;
+      height: 25px;
       .el-range-input {
         background: transparent;
         color: #fff;
@@ -161,18 +171,6 @@ export default {
         position: relative;
       }
     }
-
-    .buttons {
-      background-color: rgba(5, 187, 76, 0.2);
-      border: 1px solid #3b6c53;
-      color: #b3b3b3;
-      font-size: 14px;
-      margin-left: 10px;
-      &:hover {
-        background-color: rgba(5, 187, 76, 0.5);
-        color: #ffffff;
-      }
-    }
   }
   .economicTable1 {
     height: calc(100% - 68px);

+ 2 - 5
src/views/economicsOperation/performanceAnalyse/performanceAssess/index.vue

@@ -127,7 +127,6 @@
     >
       <div class="Evaluation_title clearfix">
         <div class="leftContent floatLeft"><span>性能等级评估</span></div>
-        <div class="rightContent floatRight"></div>
       </div>
 
       <div class="economicTable1">
@@ -200,7 +199,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">{{ dialogTitle }}</div>
         </div>
       </template>
@@ -217,7 +215,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">信息对比</div>
         </div>
       </template>
@@ -452,12 +449,12 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
       span {
         font-size: 16px;
         font-family: Microsoft YaHei;
         font-weight: 400;
-        color: #ffffff;
+        color: #05bb4c;
         margin-left: 25px;
       }
     }

+ 2 - 6
src/views/economicsOperation/powerCurve/cutInAndOutAnalysis/index.vue

@@ -71,7 +71,6 @@
     >
       <div class="cutInAndOut_title clearfix">
         <div class="leftContent floatLeft"><span>切入切出分析</span></div>
-        <div class="rightContent floatRight"></div>
       </div>
       <div class="economicTable1">
         <el-table
@@ -142,7 +141,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">历史数据查询</div>
         </div>
       </template>
@@ -384,19 +382,17 @@ export default {
   padding: 0 30px;
   height: 100%;
   .cutInAndOut_title {
-    padding-left: 10px;
-
     .leftContent {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;
         font-family: Microsoft YaHei;
         font-weight: 400;
-        color: #ffffff;
+        color: #05BB4C;
         margin-left: 25px;
       }
     }

+ 2 - 4
src/views/economicsOperation/powerCurve/powerLinefitting/index.vue

@@ -103,7 +103,6 @@
     >
       <div class="powerLinefitting_title clearfix">
         <div class="leftContent floatLeft"><span>功率曲线拟合</span></div>
-        <div class="rightContent floatRight"></div>
       </div>
 
       <div class="powerLinefitting_Table">
@@ -534,17 +533,16 @@ export default {
     }
   }
   .powerLinefitting_title {
-    padding-left: 10px;
     .leftContent {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
       span {
         font-size: 16px;
         font-family: Microsoft YaHei;
         font-weight: 400;
-        color: #ffffff;
+        color: #05BB4C;
         margin-left: 25px;
       }
     }

+ 1 - 1
src/views/economicsOperation/reportForms/newEnergyDaily/index.vue

@@ -530,7 +530,7 @@ export default {
     height: 41px;
     display: flex;
     align-items: center;
-    background: url("../../../../assets/imgs/title_left_bg.png");
+    background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
     span {
       font-size: 16px;

+ 2 - 2
src/views/economicsOperation/reportForms/newEnergyMonthly/index.vue

@@ -68,7 +68,7 @@
     <div style="background: rgba(0, 0, 0, 0.45)">
       <div class="singleMachine_title clearfix">
         <div class="leftContent floatLeft"><span>{{}}新能源月报</span></div>
-        <!--                <div class="rightContent floatRight"></div>-->
+        <!--               -->
       </div>
       <div class="singleMachine_Table">
         <el-table
@@ -591,7 +591,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 2 - 2
src/views/economicsOperation/reportForms/specifcGravity/index.vue

@@ -59,7 +59,7 @@
     <div style="background: rgba(0, 0, 0, 0.45)">
       <div class="singleMachine_title clearfix">
         <div class="leftContent floatLeft"><span>各风场生产月报</span></div>
-        <!--                <div class="rightContent floatRight"></div>-->
+        <!--               -->
       </div>
       <div class="singleMachine_Table">
         <el-table
@@ -454,7 +454,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 2 - 2
src/views/economicsOperation/reportForms/windMonthly/index.vue

@@ -68,7 +68,7 @@
     <div style="background: rgba(0, 0, 0, 0.45)">
       <div class="singleMachine_title clearfix">
         <div class="leftContent floatLeft"><span>{{}}单机性能分析表</span></div>
-        <!--                <div class="rightContent floatRight"></div>-->
+        <!--               -->
       </div>
       <div class="singleMachine_Table">
         <el-table
@@ -471,7 +471,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/MTBF/index.vue

@@ -67,7 +67,6 @@
         <div class="leftContent line-left">
           <span>{{ selectValue }}</span>
         </div>
-        <div class="rightContent floatRight"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -492,7 +491,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
       padding-left: 25px;
       span {
         font-size: 16px;

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/MTTR/index.vue

@@ -38,7 +38,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>MTTR分析</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -324,7 +323,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/affected/index.vue

@@ -38,7 +38,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>受累损失率</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -324,7 +323,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 2 - 10
src/views/economicsOperation/thematicAnalysis/comprehensiveAnalysis/index.vue

@@ -50,7 +50,6 @@
     </div>
     <div class="comAnalysis_title clearfix">
       <div class="leftContent floatLeft"><span>综合分析</span></div>
-      <div class="rightContent floatRight"></div>
     </div>
     <div class="downPdf">
       <div class="comAnalysis_Table">
@@ -746,12 +745,11 @@ export default {
 
   .comAnalysis_title {
     background: rgba(0, 0, 0, 0.45);
-
     .leftContent {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;
@@ -770,12 +768,6 @@ export default {
       float: right;
     }
 
-    .rightContent {
-      width: 212px;
-      height: 28px;
-      margin-top: 13px;
-      background: url("../../../../assets/imgs/title_right_bg.png");
-    }
   }
 
   .clearfix::after {
@@ -884,7 +876,7 @@ export default {
     height: calc(100% - 58px - 32px);
     padding-bottom: 10px;
     .comAnalysis_Table {
-      padding: 10px 0;
+      padding-bottom: 10px;
       display: flex;
       height: calc(100% - 300px);
       .table_month,

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/defect/index.vue

@@ -38,7 +38,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>消缺及时率</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -324,7 +323,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/failure/index.vue

@@ -67,7 +67,6 @@
         <div class="leftContent left">
           <span>{{ selectValue }}</span>
         </div>
-        <div class="rightContent floatRight"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -577,7 +576,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 2 - 12
src/views/economicsOperation/thematicAnalysis/generation/index.vue

@@ -67,7 +67,6 @@
         <div class="leftContent left">
           <span>{{ selectValue }}</span>
         </div>
-        <div class="rightContent floatRight"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -373,7 +372,7 @@ export default {
 
 <style lang="less" scoped>
 .parcel-box {
-  padding: 0 30px;
+  padding: 0 20px;
   box-sizing: border-box;
   height: 100%;
   .data-bodys {
@@ -416,7 +415,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("~@/assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
       span {
         font-size: 16px;
         font-family: Microsoft YaHei;
@@ -426,15 +425,6 @@ export default {
       }
     }
 
-    .rightContent {
-      width: 212px;
-      height: 28px;
-      margin-top: 13px;
-      background: url("../../../../assets/imgs/title_right_bg.png");
-    }
-    .floatRight {
-      float: right;
-    }
   }
 
   .search {

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/maintain/index.vue

@@ -38,7 +38,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>维护损失率</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -324,7 +323,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/property/index.vue

@@ -38,7 +38,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>性能损失率</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -324,7 +323,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/ration/index.vue

@@ -38,7 +38,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>限电损失率</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -324,7 +323,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/reset/index.vue

@@ -83,7 +83,6 @@
         <div class="leftContent left">
           <span>{{ selectValue }}</span>
         </div>
-        <div class="rightContent floatRight"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -539,7 +538,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/state/index.vue

@@ -38,7 +38,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>状态转换率</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -324,7 +323,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/synthesize/index.vue

@@ -38,7 +38,6 @@
     <div class="data-bodys">
       <div class="line clearfix">
         <div class="leftContent left"><span>综合厂用电量</span></div>
-        <div class="rightContent right"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -325,7 +324,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 1 - 2
src/views/economicsOperation/thematicAnalysis/windEnergy/index.vue

@@ -47,7 +47,6 @@
         <div class="leftContent left">
           <span>{{ tabIndex == -1 ? "风能利用率" : "光能利用率" }}</span>
         </div>
-        <div class="rightContent floatRight"></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -446,7 +445,7 @@ export default {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("../../../../assets/imgs/title_left_bg.png");
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 1 - 1
src/views/report/dlyc.vue

@@ -300,7 +300,7 @@
 	};
 </script>
 
-<style lang="less">
+<style lang="less" scoped>
 	.main-body {
 		.dlTable {
 			.el-table thead.is-group th.el-table__cell {

+ 1 - 1
src/views/report/nhdl.vue

@@ -300,7 +300,7 @@
 	};
 </script>
 
-<style lang="less">
+<style lang="less" scoped>
 	.main-body {
 		.dlTable {
 			.el-table thead.is-group th.el-table__cell {

+ 1 - 1
src/views/report/xzdl.vue

@@ -300,7 +300,7 @@
 	};
 </script>
 
-<style lang="less">
+<style lang="less" scoped>
 	.main-body {
 		.dlTable {
 			.el-table thead.is-group th.el-table__cell {

+ 0 - 2
src/views/stateMonitor/DetailMatrix/index.vue

@@ -285,7 +285,6 @@
       </el-scrollbar>
       <qushi-dialog ref="child" :chartName="chartName"></qushi-dialog>
       <el-dialog
-        class="dialogs"
         width="90%"
         top="40px"
         v-model="displayMatrix"
@@ -294,7 +293,6 @@
       >
         <template #title>
           <div class="dialog-title">
-            <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
             <div class="title">设备详情</div>
           </div>
         </template>

+ 0 - 2
src/views/stateMonitor/LightMatrix/index.vue

@@ -377,7 +377,6 @@
     </el-scrollbar>
   </div>
   <el-dialog
-    class="dialogs"
     width="90%"
     top="40px"
     v-model="displayMatrix"
@@ -386,7 +385,6 @@
   >
     <template #title>
       <div class="dialog-title">
-        <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
         <div class="title">设备详情</div>
       </div>
     </template>

+ 2 - 9
src/views/stateMonitor/alarmCenter/commonAlarm/index.vue

@@ -373,22 +373,15 @@ export default {
         height: 41px;
         display: flex;
         align-items: center;
-        background: url("~@/assets/imgs/title_left_bg.png");
+        background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
         span {
           font-size: 16px;
           font-family: Microsoft YaHei;
           font-weight: 400;
-          color: #ffffff;
+          color: #05bb4c;
           margin-left: 25px;
         }
       }
-      .right-content {
-        position: relative;
-        width: 212px;
-        height: 28px;
-        margin-top: 13px;
-        background: url("~@/assets/imgs/title_right_bg.png");
-      }
     }
     .economicTable {
       height: calc(100% - 45px);

+ 24 - 1
src/views/stateMonitor/factoryMonitor/components/headerButton.vue

@@ -105,6 +105,7 @@ export default {
   data() {
     return {
       byRouter: false,
+      bootid: "",
       tab: "JZ",
       OrganizationList: [
         {
@@ -144,6 +145,7 @@ export default {
           this.localWpinfo = {
             wpid: val.query.wpid,
             wpname: val.query.wpname,
+            bootid: val.query.bootid,
           };
           localStorage.setItem("companyId", "KGDL_FGS");
           localStorage.setItem("wpInfo", JSON.stringify(this.localWpinfo));
@@ -161,6 +163,11 @@ export default {
       deep: true,
     },
   },
+  computed: {
+    boosterList() {
+      return this.$store.state.boosterList;
+    },
+  },
   created() {
     if (!this.byRouter) {
       this.localWpinfo = JSON.parse(localStorage.getItem("wpInfo"))
@@ -182,6 +189,7 @@ export default {
         this.stationName,
         val
       );
+      //   this.$emit('alarm')
     },
     //获取区域公司
     getOrganizationList() {
@@ -260,11 +268,17 @@ export default {
             this.pageData[0].name,
             this.tab
           );
+          let booster = this.boosterList.find(
+            (i) => i.windpowerstationId == this.stationCode
+          );
+          this.bootid = booster.id;
+          this.$emit("alarm", booster && booster.id, booster && booster.name);
         }
         if (!Object.keys(this.localWpinfo).length) {
           this.localWpinfo = {
             wpid: this.pageData[0].nemCode,
             wpname: this.pageData[0].name,
+            bootid: this.bootid,
           };
           localStorage.setItem("wpInfo", JSON.stringify(this.localWpinfo));
         }
@@ -343,8 +357,17 @@ export default {
           this.stationName,
           this.tab
         );
+        let booster = this.boosterList.find(
+          (i) => i.windpowerstationId == this.stationCode
+        );
+        console.log(booster);
+        this.$emit("alarm", booster && booster.id, booster && booster.name);
       }
-      this.localWpinfo = { wpid: val, wpname: this.stationName };
+      this.localWpinfo = {
+        wpid: val,
+        wpname: this.stationName,
+        bootid: this.bootid,
+      };
       localStorage.setItem("wpInfo", JSON.stringify(this.localWpinfo));
     },
     // 实现分页的方法

+ 118 - 0
src/views/stateMonitor/factoryMonitor/components/power-review-home.vue

@@ -0,0 +1,118 @@
+<template>
+  <div class="power-review">
+    <Row type="flex" justify="space-between" :align="'middle'">
+      <!-- 功率复核 PowerLoad -->
+      <Col v-for="item in PowerLoad" :key="item" :span="6">
+        <dash-pie-chart
+          :title="item.title"
+          :unit="item.unit"
+          :value="item.value"
+          :max="item.max"
+          :color="type == -1 ? 'green' : 'orange'"
+          height="98px"
+          width="100%"
+        />
+      </Col>
+    </Row>
+  </div>
+</template>
+
+<script>
+import Col from "@/components/coms/grid/col.vue";
+import Row from "@/components/coms/grid/row.vue";
+import DashPieChart from "@/components/chart/pie/dash-pie-chart.vue";
+import { FindGroupRealtime } from "@/api/home/home.js";
+import dayjs from "dayjs";
+export default {
+  components: {
+    Row,
+    Col,
+    DashPieChart,
+  },
+
+  data() {
+    return {
+      // 功率复核数据
+      PowerLoad: [],
+      valuelist: [
+        {
+          value: "SSZGL",
+          name: "清洁能源实时功率详情",
+          code: "value1",
+          sign: 1,
+        },
+        {
+          value: "SSZGL",
+          name: "风电实时功率详情",
+          code: "value2",
+          sign: 1,
+        },
+        {
+          value: "SSZGL",
+          name: "光伏实时功率详情",
+          code: "value3",
+          sign: 1,
+        },
+        {
+          value: "SSPJFS",
+          name: "实时风速",
+          code: "value4",
+        },
+        {
+          value: "RPJGZD",
+          name: "光照强度",
+          code: "value6",
+        },
+        {
+          value: "SSZGL",
+          name: "实际功率",
+          code: "value1",
+        },
+        {
+          value: "FNLYL",
+          name: "风能利用率",
+          code: "value7",
+        },
+        {
+          value: "FNLYL",
+          name: "光能利用率",
+          code: "value7",
+        },
+      ],
+      wpId: "",
+    };
+  },
+
+  props: {
+    type: {
+      type: Number,
+      default: -1,
+    },
+    data: {
+      type: Array,
+      default: () => [],
+    },
+  },
+
+  mounted() {
+    this.PowerLoad = this.data;
+  },
+
+  methods: {},
+
+  watch: {
+    data(res) {
+      this.PowerLoad = res;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.power-review {
+  padding: 15px 10px 10px 10px;
+}
+.col + .col {
+  margin-left: 0px;
+}
+</style>

+ 69 - 14
src/views/stateMonitor/factoryMonitor/components/saliderBar.vue

@@ -7,6 +7,24 @@
         :class="{ active: $route.meta.title == item.title }"
         @click="routerTarget(index)"
       >
+        <el-tooltip
+          effect="dark"
+          placement="bottom"
+          hide-after="10"
+          :enterable="false"
+          :content="alarmLength + '条'"
+          v-if="
+            item.title == '升压站' &&
+            alarmLength > 0 &&
+            $route.meta.title == item.title
+          "
+        >
+          <span class="alarm-icon svg-icon svg-icon-red" @click="handler">
+            <SvgIcon svgid="svg-alarm"></SvgIcon>
+          </span>
+          <!-- <span>{{ alarmLength }}</span> -->
+        </el-tooltip>
+
         <router-link :to="item.path">
           <el-tooltip
             effect="dark"
@@ -16,7 +34,14 @@
             :enterable="false"
             hide-after="10"
           >
-            <div class="svg-icon svg-icon-sm">
+            <div
+              class="svg-icon svg-icon-sm salider-item"
+              :class="
+                $route.meta.title == item.title
+                  ? 'svg-icon-lightyellow'
+                  : 'svg-icon-green'
+              "
+            >
               <SvgIcon :svgid="item.icon"></SvgIcon>
             </div>
           </el-tooltip>
@@ -39,6 +64,7 @@ export default {
   data() {
     return {
       saliderIndex: 0,
+      alarmFlag: false,
     };
   },
   created() {},
@@ -47,8 +73,16 @@ export default {
       this.saliderIndex = index;
       //   this.$router.push(path);
     },
+    handler() {
+      this.alarmFlag = true;
+      this.$store.commit("changeDrawer", this.alarmFlag);
+    },
+  },
+  computed: {
+    alarmLength() {
+      return this.$store.state.boosterAlarm;
+    },
   },
-  computed: {},
 };
 </script>
 <style lang="less" scoped>
@@ -63,33 +97,54 @@ ul li {
     align-items: center;
     width: 50px;
     margin-top: 50px;
-    // border-right: 1px solid #1c99ff;
-    border-right: 1px solid #05b74a;
-    border-radius: 25px;
-    // background: linear-gradient(267deg, #002767, transparent);
-    background: linear-gradient(267deg, #006702, transparent);
-    padding: 16px 0;
+    // // border-right: 1px solid #1c99ff;
+    // border-right: 1px solid #05b74a;
+    // border-radius: 25px;
+    // // background: linear-gradient(267deg, #002767, transparent);
+    // background: linear-gradient(267deg, #006702, transparent);
+    padding: 30px 0;
+    background: rgba(83, 98, 104, 0.2);
+    border: 1px solid #606769;
   }
   li {
     display: flex;
+    position: relative;
     align-items: center;
     justify-content: center;
     width: 36px;
     height: 36px;
-    border-radius: 50%;
-    // background: rgba(0, 70, 199, 0.2);
-    background: rgba(96, 103, 105, 0.2);
-    color: #fff;
-    font-size: 17px;
+    // border-radius: 50%;
+    border: 1px solid #05bb4c;
     margin-top: 16px;
     cursor: pointer;
+    .alarm-icon {
+      display: flex;
+      width: 20px;
+      height: 20px;
+      position: absolute;
+      top: -23%;
+      right: -23%;
+      //   background: #fff;
+    //   color: red;
+      font-weight: 700;
+      font-size: 12px;
+      border-radius: 50%;
+      justify-content: center;
+      align-items: center;
+    }
   }
   li:first-child {
     margin-top: 0;
   }
   .active {
     // background: linear-gradient(90deg, #1c99ff, #1b3ec2);
-    background: linear-gradient(90deg, #05b74a, #43702d);
+    // background: linear-gradient(90deg, #05b74a, #43702d);
+    border: 1px solid #f8de5b;
+    .salider-item {
+      border: 1px solid #f8de5b;
+      padding: 6px;
+      box-sizing: content-box;
+    }
   }
 }
 </style>

+ 171 - 23
src/views/stateMonitor/factoryMonitor/photovoltaic/lightBoosterStation/index.vue

@@ -1,60 +1,135 @@
 <template>
-  <headerButton :type="stationType" @renderData="renderData" />
-  <div style="height: calc(100% - 57px)">
+  <headerButton
+    :type="stationType"
+    @renderData="renderData"
+    @alarm="handleAlarm"
+  />
+  <div style="height: calc(100% - 77px)">
     <!-- 光伏 *************** -->
 
     <!-- 繁峙均然 -->
     <GFfanshijunran
-        class="booster-station-body"
-        v-if="wpId === 'SXJ_KGDL_JR_GDC_STA'"
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_JR_GDC_STA'"
     />
     <!-- 方山孙家山 -->
     <GFfangshansunjiashan
-        class="booster-station-body"
-        v-if="wpId === 'SXJ_KGDL_FS_GDC_STA'"
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_FS_GDC_STA'"
     />
     <!-- 屯留吾元 -->
     <GFtunliuwuyuan
-        class="booster-station-body"
-        v-if="wpId === 'SXJ_KGDL_TL_GDC_STA'"
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_TL_GDC_STA'"
     />
     <!-- 山阴荣新 -->
     <GFshanyinrongxin
-        class="booster-station-body"
-        v-if="wpId === 'SXJ_KGDL_SY_GDC_STA'"
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_SY_GDC_STA'"
     />
     <!-- 阳高蔚家堡 -->
     <GFyanggaoweijiabao
-        class="booster-station-body"
-        v-if="wpId === 'SXJ_KGDL_YG_GDC_STA'"
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_YG_GDC_STA'"
     />
     <!-- 应县晶辉 -->
     <GFyingxianjinghui
-        class="booster-station-body"
-        v-if="wpId === 'SXJ_KGDL_YX_GDC_STA'"
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_YX_GDC_STA'"
     />
 
     <!-- 怀仁初晨 -->
     <GFhuairenchuchen
-        class="booster-station-body"
-        v-if="wpId === 'SXJ_KGDL_HR_GDC_STA'"
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_HR_GDC_STA'"
     />
     <!-- 右玉右卫 -->
     <GFyouyuyouwei
-        class="booster-station-body"
-        v-if="wpId === 'SXJ_KGDL_YY_GDC_STA'"
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_YY_GDC_STA'"
     />
     <!-- 平鲁阻虎 -->
     <GFpingluzuhu
-        class="booster-station-body"
-        v-if="wpId === 'SXJ_KGDL_PL_GDC_STA'"
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_PL_GDC_STA'"
     />
     <!-- 天镇旭升 -->
     <GFtianzhenxusheng
-        class="booster-station-body"
-        v-if="wpId === 'SXJ_KGDL_TZ_GDC_STA'"
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_TZ_GDC_STA'"
     />
   </div>
+  <el-drawer
+    class="custom-drawer"
+    v-model="drawer"
+    :title="title + '报警列表'"
+    direction="rtl"
+    size="45%"
+    :before-close="handleClose"
+  >
+    <div class="drawer-form">
+      <div class="select-item">
+        开始日期:
+        <el-date-picker
+          v-model="begin"
+          type="datetime"
+          value-format="YYYY-MM-DD HH:mm:ss"
+          placeholder="选择日期"
+          size="mini"
+          popper-class="date-select"
+        >
+        </el-date-picker>
+      </div>
+      <div class="select-item">
+        结束日期:
+        <el-date-picker
+          v-model="end"
+          type="datetime"
+          value-format="YYYY-MM-DD HH:mm:ss"
+          placeholder="选择日期"
+          size="mini"
+          popper-class="date-select"
+        >
+        </el-date-picker>
+      </div>
+      <div class="btns">
+        <el-button round size="mini" class="buttons" @click="getAlarm"
+          >搜索</el-button
+        >
+      </div>
+    </div>
+    <div class="table-wrapper">
+      <el-table height="100%" :data="drawerList">
+        <el-table-column
+          property="ts"
+          label="时间"
+          width="200"
+          align="center"
+        />
+        <el-table-column
+          property="description"
+          label="描述"
+          show-overflow-tooltip
+          align="center"
+        />
+        <el-table-column
+          property="confirmed"
+          label="是否确认"
+          width="120"
+          align="center"
+        />
+      </el-table>
+      <el-pagination
+        style="display: flex; justify-content: flex-end; align-items: center"
+        @current-change="handleCurrentChange"
+        :current-page="page.currentPage"
+        :page-size="page.pagesize"
+        layout="total, prev, pager, next, jumper"
+        :total="page.total"
+      >
+      </el-pagination>
+    </div>
+  </el-drawer>
 </template>
 <script>
 import headerButton from "../../components/headerButton.vue";
@@ -68,7 +143,9 @@ import GFtunliuwuyuan from "./components/tunliuwuyuan.vue";
 import GFyanggaoweijiabao from "./components/yanggaoweijiabao.vue";
 import GFyingxianjinghui from "./components/yingxianjinghui.vue";
 import GFyouyuyouwei from "./components/youyuyouwei.vue";
-
+import { GetTableData } from "@/api/zhbj/index.js";
+import dayjs from "dayjs";
+import { ElMessageBox } from "element-plus";
 export default {
   name: "lightBoosterStation",
   components: {
@@ -88,12 +165,83 @@ export default {
     return {
       stationType: "-2",
       wpId: "",
+      drawer: false,
+      title: "",
+      drawerList: [],
+      description: "",
+      sub: "",
+      begin: "",
+      end: "",
+      page: { currentPage: 1, pagesize: 22, total: 0 },
     };
   },
+  watch: {
+    "$store.state.drawer": {
+      handler(val) {
+        this.drawer = val;
+      },
+      immediate: true,
+    },
+  },
   methods: {
     renderData(company, wpId) {
       this.wpId = wpId;
     },
+    handleAlarm(id, name) {
+      this.sub = id;
+      this.title = name;
+      this.begin = dayjs()
+        .add(-2, "day")
+        .startOf("day")
+        .format("YYYY-MM-DD HH:mm:ss");
+      this.end = dayjs().format("YYYY-MM-DD HH:mm:ss");
+      //   this.drawer = true;
+      //   console.log(id);
+      this.getAlarm();
+    },
+    getAlarm() {
+      let params = {
+        begin: this.begin,
+        end: this.end,
+        alarmType: "booststation",
+        stationid: this.sub,
+        description: this.description,
+        pageNum: this.page.currentPage,
+        pageSize: this.page.pagesize,
+      };
+      GetTableData(params).then(({ data }) => {
+        if (data.ls.length) {
+          this.drawerList = data.ls.map((item) => {
+            return {
+              ...item,
+              confirmed: item.confirmed ? "是" : "否",
+              ts: dayjs(item.ts).format("YYYY-MM-DD HH:mm:ss"),
+            };
+          });
+          this.page.total = data.total;
+        } else {
+          this.drawerList = [];
+          this.page.total = 0;
+        }
+        if (!this.drawer) {
+          this.$store.commit("changeBoosterAlarm", data.total);
+        }
+      });
+    },
+    handleCurrentChange(val) {
+      this.page.currentPage = val;
+      this.getAlarm();
+    },
+    handleClose() {
+      ElMessageBox.confirm("你确定要关闭吗?")
+        .then(() => {
+          this.drawer = false;
+          this.$store.commit("changeDrawer", this.drawer);
+        })
+        .catch(() => {
+          // catch error
+        });
+    },
   },
 };
 </script>

+ 5 - 5
src/views/stateMonitor/factoryMonitor/photovoltaic/lightDataTarget/index.vue

@@ -27,7 +27,7 @@
           label="序号"
           align="center"
           fixed
-          width="52"
+          width="58"
         >
         </el-table-column>
         <el-table-column
@@ -445,7 +445,7 @@ ul li {
 }
 
 .el-tag:hover {
-  color: #1c99ff;
+  color: #05bb4c;
 }
 
 .DataTarget {
@@ -534,13 +534,13 @@ ul li {
     height: 41px;
     display: flex;
     align-items: center;
-    background: url("../../../../../assets/imgs/title_left_bg.png");
+    background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
     span {
       font-size: 16px;
       font-family: Microsoft YaHei;
       font-weight: 400;
-      color: #ffffff;
+      color: #05BB4C;
       margin-left: 25px;
     }
   }
@@ -550,7 +550,7 @@ ul li {
     width: 212px;
     height: 28px;
     margin-top: 13px;
-    background: url("../../../../../assets/imgs/title_right_bg.png");
+    // background: url("../../../../../assets/imgs/title_right_bg.png");
 
     .more {
       float: right;

+ 0 - 1
src/views/stateMonitor/factoryMonitor/photovoltaic/lightGeomorphologicMap/components/zhenqudialog.vue

@@ -2,7 +2,6 @@
   <el-dialog class="dialogs" width="80%" v-model="diaplay" :show-close="true">
     <template #title>
       <div class="dialog-title">
-        <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
         <div class="title">{{ showname }}</div>
       </div>
     </template>

+ 2 - 3
src/views/stateMonitor/factoryMonitor/photovoltaic/lightMatrix/index.vue

@@ -227,7 +227,6 @@
     >
       <template #title>
         <div class="dialog-title">
-          <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
           <div class="title">设备详情</div>
         </div>
       </template>
@@ -1227,8 +1226,8 @@ p {
       flex-direction: row;
       align-items: center;
       height: 65px;
-      background: rgba(0, 70, 199, 0.08);
-      border: 1px solid #1e386a;
+        background: #081410;
+    border: 1px solid #083D22;
       position: relative;
       flex: 1 0 auto;
       margin-left: 10px;

+ 0 - 1
src/views/stateMonitor/factoryMonitor/photovoltaic/lightMatrixMonitor/index.vue

@@ -282,7 +282,6 @@
   >
     <template #title>
       <div class="dialog-title">
-        <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
         <div class="title">设备详情</div>
       </div>
     </template>

+ 33 - 42
src/views/stateMonitor/factoryMonitor/photovoltaic/lighthome/index.vue

@@ -111,45 +111,11 @@
           </div>
           <div class="base-info-right">
             <div class="target">
-              <div class="grid-content">
-                <div class="img">
-                  <img
-                    src="@/assets/imgs/lightpointer.png"
-                    :style="{ transform: windSpeedRota }"
-                  />
-                  <div class="information">
-                    {{ dataDeal(wpInfos?.sspjfsgzd, 2) }}
-                  </div>
-                  <div class="unit">W/m²</div>
-                </div>
-                <p>光照强度</p>
-              </div>
-              <div class="grid-content">
-                <div class="img">
-                  <img
-                    src="@/assets/imgs/lightpointer.png"
-                    :style="{ transform: windPawer }"
-                  />
-                  <div class="information">
-                    {{ wpInfos?.yggl || 0 }}
-                  </div>
-                  <div class="unit">MW</div>
-                </div>
-                <p>有功功率</p>
-              </div>
-              <div class="grid-content">
-                <div class="img">
-                  <img
-                    src="@/assets/imgs/lightpointer.png"
-                    :style="{ transform: windLoad }"
-                  />
-                  <div class="information">
-                    {{ dataDeal(wpInfos?.fhl, 2) }}
-                  </div>
-                  <div class="unit">%</div>
-                </div>
-                <p>负荷率</p>
-              </div>
+              <power-review-home
+                :data="powerDataHome"
+                type="-2"
+                @chartClick="showPowerChart"
+              />
             </div>
             <div class="info-block">
               <div
@@ -278,6 +244,7 @@
 
 <script>
 import headerButton from "@/views/stateMonitor/factoryMonitor/components/headerButton";
+import powerReviewHome from "@/views/stateMonitor/factoryMonitor/components/power-review-home.vue";
 import powerEcharts from "@/components/chart/powerEcharts.vue";
 import { GetWpInfos, GetWpHisdata } from "@/api/factoryMonitor/index.js";
 import { GetWpPoints, GetPointFitting } from "@/api/points/index.js";
@@ -293,6 +260,7 @@ export default {
     BarCharts,
     LineCharts,
     headerButton,
+    powerReviewHome,
   },
   data() {
     return {
@@ -547,6 +515,7 @@ export default {
         },
       ],
       firstFlag: false,
+      powerDataHome: {}, //圆盘数据
     };
   },
   computed: {
@@ -655,6 +624,29 @@ export default {
           for (var key in this.wpInfos) {
             this.wpInfos[key] = this.wpInfos[key] < 0 ? 0 : this.wpInfos[key];
           }
+          this.powerDataHome = [
+            {
+              title: "光照强度",
+              value: this.wpInfos.sspjfsgzd.toFixed(2),
+              dialogTitle: "光照强度",
+              max: 3000,
+              unit: "m/s",
+            },
+            {
+              title: "有功功率",
+              value: this.wpInfos.yggl.toFixed(2),
+              dialogTitle: "有功功率",
+              max: 3000,
+              unit: "MW",
+            },
+            {
+              title: "负荷率",
+              value: this.wpInfos.fhl.toFixed(2),
+              dialogTitle: "负荷率",
+              max: 100,
+              unit: "%",
+            },
+          ];
           if (flag) {
             this.getLossValuesAnalyse(this.dates);
           }
@@ -1104,6 +1096,8 @@ export default {
     align-items: center;
     position: relative;
     border-radius: 5px;
+    padding: 0 15px;
+    padding-bottom: 20px;
     .status-concent {
       width: 90%;
       height: calc(100% - 39px);
@@ -1449,9 +1443,6 @@ export default {
       }
 
       .target {
-        display: flex;
-        flex-direction: row;
-        align-items: center;
         background-color: rgba(96, 103, 105, 0.2);
         height: 45%;
 

+ 5 - 5
src/views/stateMonitor/factoryMonitor/windPowerPlant/DataTarget/index.vue

@@ -27,7 +27,7 @@
           label="序号"
           align="center"
           fixed
-          width="52"
+          width="58"
         >
         </el-table-column>
         <el-table-column
@@ -441,7 +441,7 @@ ul li {
 }
 
 .el-tag:hover {
-  color: #1c99ff;
+  color: #05bb4c;
 }
 
 .DataTarget {
@@ -530,13 +530,13 @@ ul li {
     height: 41px;
     display: flex;
     align-items: center;
-    background: url("../../../../../assets/imgs/title_left_bg.png");
+    background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
     span {
       font-size: 16px;
       font-family: Microsoft YaHei;
       font-weight: 400;
-      color: #ffffff;
+      color: #05BB4C;
       margin-left: 25px;
     }
   }
@@ -546,7 +546,7 @@ ul li {
     width: 212px;
     height: 28px;
     margin-top: 13px;
-    background: url("../../../../../assets/imgs/title_right_bg.png");
+    // background: url("../../../../../assets/imgs/title_right_bg.png");
 
     .more {
       float: right;

+ 155 - 4
src/views/stateMonitor/factoryMonitor/windPowerPlant/boosterStation/index.vue

@@ -1,5 +1,9 @@
 <template>
-  <headerButton :type="stationType" @renderData="renderData" />
+  <headerButton
+    :type="stationType"
+    @renderData="renderData"
+    @alarm="handleAlarm"
+  />
   <div style="height: calc(100% - 57px)">
     <!-- 风场 *************** -->
     <!-- 高家堰 -->
@@ -7,7 +11,10 @@
     <!-- 败虎堡 -->
     <BHB class="booster-station-body" v-if="wpId === 'SXJ_KGDL_BHB_FDC_STA'" />
     <!-- 败虎堡三期 -->
-    <BHBSQ class="booster-station-body" v-if="wpId === 'SXJ_KGDL_BHB3_FDC_STA'" />
+    <BHBSQ
+      class="booster-station-body"
+      v-if="wpId === 'SXJ_KGDL_BHB3_FDC_STA'"
+    />
     <!-- 丁家窑 -->
     <DJY class="booster-station-body" v-if="wpId === 'SXJ_KGDL_DJY_FDC_STA'" />
     <!-- 红石峁Vue组件-2022-10-20 11_55_20 -->
@@ -31,10 +38,81 @@
     <!-- 米粮局Vue组件-2022-10-24 16_45_46 -->
     <MLJ class="booster-station-body" v-if="wpId === 'NMM_KGDL_MLJ_FDC_STA'" />
   </div>
+  <el-drawer
+    class="custom-drawer"
+    v-model="drawer"
+    :title="title + '报警列表'"
+    direction="rtl"
+    size="45%"
+    :before-close="handleClose"
+  >
+    <div class="drawer-form">
+      <div class="select-item">
+        开始日期:
+        <el-date-picker
+          v-model="begin"
+          type="datetime"
+          value-format="YYYY-MM-DD HH:mm:ss"
+          placeholder="选择日期"
+          size="mini"
+          popper-class="date-select"
+        >
+        </el-date-picker>
+      </div>
+      <div class="select-item">
+        结束日期:
+        <el-date-picker
+          v-model="end"
+          type="datetime"
+          value-format="YYYY-MM-DD HH:mm:ss"
+          placeholder="选择日期"
+          size="mini"
+          popper-class="date-select"
+        >
+        </el-date-picker>
+      </div>
+      <div class="btns">
+        <el-button round size="mini" class="buttons" @click="getAlarm"
+          >搜索</el-button
+        >
+      </div>
+    </div>
+    <div class="table-wrapper">
+      <el-table height="100%" :data="drawerList">
+        <el-table-column
+          property="ts"
+          label="时间"
+          width="200"
+          align="center"
+        />
+        <el-table-column
+          property="description"
+          label="描述"
+          show-overflow-tooltip
+          align="center"
+        />
+        <el-table-column
+          property="confirmed"
+          label="是否确认"
+          width="120"
+          align="center"
+        />
+      </el-table>
+      <el-pagination
+        style="display: flex; justify-content: flex-end; align-items: center"
+        @current-change="handleCurrentChange"
+        :current-page="page.currentPage"
+        :page-size="page.pagesize"
+        layout="total, prev, pager, next, jumper"
+        :total="page.total"
+      >
+      </el-pagination>
+    </div>
+  </el-drawer>
 </template>
 <script>
 import headerButton from "../../components/headerButton.vue";
-
+import { ElMessageBox } from "element-plus";
 // 风场
 import GJY from "./components/GJY.vue";
 import BHB from "./components/BHB.vue";
@@ -50,6 +128,8 @@ import YLZ from "./components/YLZ.vue";
 import YF from "./components/YF.vue";
 import ZK from "./components/ZK.vue";
 import MLJ from "./components/MLJ.vue";
+import { GetTableData } from "@/api/zhbj/index.js";
+import dayjs from "dayjs";
 export default {
   name: "boosterStation",
   components: {
@@ -73,16 +153,87 @@ export default {
     return {
       stationType: "-1",
       wpId: "",
+      drawer: false,
+      title: "",
+      drawerList: [],
+      description: "",
+      sub: "",
+      begin: "",
+      end: "",
+      page: { currentPage: 1, pagesize: 22, total: 0 },
     };
   },
+  watch: {
+    "$store.state.drawer": {
+      handler(val) {
+        this.drawer = val;
+      },
+      immediate: true,
+    },
+  },
   methods: {
     renderData(company, wpId) {
       this.wpId = wpId;
     },
+    handleAlarm(id, name) {
+      this.sub = id;
+      this.title = name;
+      this.begin = dayjs()
+        .add(-2, "day")
+        .startOf("day")
+        .format("YYYY-MM-DD HH:mm:ss");
+      this.end = dayjs().format("YYYY-MM-DD HH:mm:ss");
+      //   this.drawer = true;
+      //   console.log(id);
+      this.getAlarm();
+    },
+    getAlarm() {
+      let params = {
+        begin: this.begin,
+        end: this.end,
+        alarmType: "booststation",
+        stationid: this.sub,
+        description: this.description,
+        pageNum: this.page.currentPage,
+        pageSize: this.page.pagesize,
+      };
+      GetTableData(params).then(({ data }) => {
+        if (data.ls.length) {
+          this.drawerList = data.ls.map((item) => {
+            return {
+              ...item,
+              confirmed: item.confirmed ? "是" : "否",
+              ts: dayjs(item.ts).format("YYYY-MM-DD HH:mm:ss"),
+            };
+          });
+          this.page.total = data.total;
+        } else {
+          this.drawerList = [];
+          this.page.total = 0;
+        }
+        if (!this.drawer) {
+          this.$store.commit("changeBoosterAlarm", data.total);
+        }
+      });
+    },
+    handleCurrentChange(val) {
+      this.page.currentPage = val;
+      this.getAlarm();
+    },
+    handleClose() {
+      ElMessageBox.confirm("你确定要关闭吗?")
+        .then(() => {
+          this.drawer = false;
+          this.$store.commit("changeDrawer", this.drawer);
+        })
+        .catch(() => {
+          // catch error
+        });
+    },
   },
 };
 </script>
-<style>
+<style lang="less">
 .booster-station-body {
   height: 100%;
 }

+ 23 - 205
src/views/stateMonitor/factoryMonitor/windPowerPlant/components/barCharts.vue

@@ -22,208 +22,7 @@ export default {
     // 传入数据
     list: {
       type: Array,
-      default: () => [
-        {
-          title: "日发电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 5,
-            },
-            {
-              text: "4日",
-              value: 25,
-            },
-            {
-              text: "5日",
-              value: 4,
-            },
-            {
-              text: "6日",
-              value: 9,
-            },
-          ],
-        },
-        {
-          title: "上网电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 6,
-            },
-            {
-              text: "3日",
-              value: 2,
-            },
-            {
-              text: "4日",
-              value: 3,
-            },
-            {
-              text: "5日",
-              value: 3,
-            },
-            {
-              text: "6日",
-              value: 6,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "购网电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 3,
-            },
-            {
-              text: "2日",
-              value: 11,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 7,
-            },
-            {
-              text: "5日",
-              value: 9,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "风速",
-          yAxisIndex: 1,
-          value: [
-            {
-              text: "1日",
-              value: 8,
-            },
-            {
-              text: "2日",
-              value: 15,
-            },
-            {
-              text: "3日",
-              value: 3,
-            },
-            {
-              text: "4日",
-              value: 8,
-            },
-            {
-              text: "5日",
-              value: 12,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "风速1",
-          yAxisIndex: 1,
-          value: [
-            {
-              text: "1日",
-              value: 8,
-            },
-            {
-              text: "2日",
-              value: 15,
-            },
-            {
-              text: "3日",
-              value: 3,
-            },
-            {
-              text: "4日",
-              value: 8,
-            },
-            {
-              text: "5日",
-              value: 12,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "风速2",
-          yAxisIndex: 1,
-          value: [
-            {
-              text: "1日",
-              value: 8,
-            },
-            {
-              text: "2日",
-              value: 15,
-            },
-            {
-              text: "3日",
-              value: 3,
-            },
-            {
-              text: "4日",
-              value: 8,
-            },
-            {
-              text: "5日",
-              value: 12,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-      ],
+      default: () => [],
     },
     // 单位
     units: {
@@ -454,11 +253,30 @@ export default {
         ],
         tooltip: {
           trigger: "axis",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
+          backgroundColor: "rgba(5, 187, 76,0.35)",
+          borderColor: "#05bb4c",
+          formatter: function (params) {
+            var htmlStr = `<div style='margin-bottom:5px'>${params[0].axisValue}</div>`;
+            for (var i = 0; i < params.length; i++) {
+              htmlStr += `<div style='margin-bottom:2px'>`;
+              var param = params[i];
+              var seriesName = param.seriesName; //图例名称
+              var value = param.value; //y轴值
+              var data = param.data; //单位判断code
+              var mark = param.marker; //点
+              var unit = `<span style='font-size:14px'>`;
+
+              htmlStr += mark; //一个点
+              htmlStr += `${seriesName} : ${
+                value != null ? value + unit + " 万kWh</span>" : "--"
+              }`; //圆点后面显示的文本
+              htmlStr += "</div>";
+            }
+            return htmlStr;
+          },
           textStyle: {
             color: "#fff",
-            fontSize: 12,
+            fontSize: 16,
           },
         },
         legend: {

+ 0 - 0
src/views/stateMonitor/factoryMonitor/windPowerPlant/components/lineCharts.vue


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác