Browse Source

增加皮肤,增加模拟数据;

SunZehao 6 months ago
parent
commit
d906575c3c
100 changed files with 44422 additions and 1818 deletions
  1. 2 1
      public/index.html
  2. 15 2
      src/App.vue
  3. BIN
      src/assets/imgs/dialog-title2.png
  4. BIN
      src/assets/imgs/glycfx-bg2.png
  5. BIN
      src/assets/nxfImg/ship.png
  6. 111 0
      src/assets/styles/blueStyle/app.less
  7. 778 0
      src/assets/styles/blueStyle/blueSty.less
  8. 117 0
      src/assets/styles/blueStyle/button.less
  9. 75 0
      src/assets/styles/blueStyle/color.less
  10. 1020 0
      src/assets/styles/blueStyle/dialog.less
  11. 13 0
      src/assets/styles/blueStyle/el-override/el-card.less
  12. 451 0
      src/assets/styles/blueStyle/el-override/el-input.less
  13. 51 0
      src/assets/styles/blueStyle/el-override/el-pagination.less
  14. 163 0
      src/assets/styles/blueStyle/el-override/el-table.less
  15. 7 0
      src/assets/styles/blueStyle/el-override/index.less
  16. 29 0
      src/assets/styles/blueStyle/font.less
  17. 0 0
      src/assets/styles/blueStyle/form.css
  18. 521 0
      src/assets/styles/blueStyle/form.less
  19. 19 0
      src/assets/styles/blueStyle/main.less
  20. 298 0
      src/assets/styles/blueStyle/svg.less
  21. 29 0
      src/assets/styles/blueStyle/table-form.less
  22. 87 0
      src/assets/styles/blueStyle/table.less
  23. 98 90
      src/assets/styles/button.less
  24. 3 2
      src/assets/styles/common/color.less
  25. 366 347
      src/assets/styles/el-override/el-input.less
  26. 1 3
      src/assets/styles/main.less
  27. BIN
      src/assets/weather/icowater.png
  28. BIN
      src/assets/weather/sun.png
  29. BIN
      src/assets/weather/wea_1.png
  30. BIN
      src/assets/weather/wea_2.png
  31. BIN
      src/assets/weather/wea_3.png
  32. BIN
      src/assets/weather/wea_4.png
  33. BIN
      src/assets/weather/wea_5.png
  34. 313 326
      src/components/chart/bar/list-bar-chart2.vue
  35. 27 5
      src/components/coms/panel/panel-sand-toolbar.vue
  36. 27 5
      src/components/coms/panel/panel-sand.vue
  37. 7 1
      src/components/coms/panel/panel.vue
  38. 5 4
      src/router/index.js
  39. 3 1
      src/store/index.js
  40. 1 1
      src/store/modules/user.js
  41. 4 1
      src/views/Home/index.vue
  42. 978 0
      src/views/IntegratedAlarm/component/ThreeModel1.vue
  43. 153 0
      src/views/IntegratedAlarm/component/dataBJJson.json
  44. 141 0
      src/views/IntegratedAlarm/component/hls.vue
  45. 234 0
      src/views/IntegratedAlarm/component/p-panel.vue
  46. 62 0
      src/views/IntegratedAlarm/component/power-plan.vue
  47. 60 0
      src/views/IntegratedAlarm/component/power-review.vue
  48. 288 0
      src/views/IntegratedAlarm/component/rank-table.vue
  49. 151 0
      src/views/IntegratedAlarm/component/st-back.vue
  50. 148 0
      src/views/IntegratedAlarm/component/weather.vue
  51. 1219 0
      src/views/IntegratedAlarm/component/weatherDia.vue
  52. 3528 0
      src/views/IntegratedAlarm/component/weatherDialog.vue
  53. 2181 0
      src/views/IntegratedAlarm/component/weatherDialogdataJson.json
  54. 1257 9
      src/views/IntegratedAlarm/index.vue
  55. 346 0
      src/views/economicsOperation/benchmarkingManagement/intervalBenchmarking/dataJson.json
  56. 9 2
      src/views/economicsOperation/benchmarkingManagement/intervalBenchmarking/index.vue
  57. 440 0
      src/views/economicsOperation/benchmarkingManagement/loseRate/dataJson.json
  58. 9 3
      src/views/economicsOperation/benchmarkingManagement/loseRate/index.vue
  59. 221 0
      src/views/economicsOperation/benchmarkingManagement/performanceRankingList/dataJson.json
  60. 726 751
      src/views/economicsOperation/benchmarkingManagement/performanceRankingList/index.vue
  61. 379 0
      src/views/economicsOperation/benchmarkingManagement/projectBenchmarking/dataJson.json
  62. 9 2
      src/views/economicsOperation/benchmarkingManagement/projectBenchmarking/index.vue
  63. 280 0
      src/views/economicsOperation/benchmarkingManagement/siteBenchmarking/dataJson.json
  64. 9 2
      src/views/economicsOperation/benchmarkingManagement/siteBenchmarking/index.vue
  65. 379 0
      src/views/economicsOperation/benchmarkingManagement/wiringBenchmarking/dataJson.json
  66. 9 2
      src/views/economicsOperation/benchmarkingManagement/wiringBenchmarking/index.vue
  67. 88 0
      src/views/economicsOperation/efficiency/consumeEfficiency/dataJson.json
  68. 13 3
      src/views/economicsOperation/efficiency/consumeEfficiency/index.vue
  69. 207 0
      src/views/economicsOperation/efficiency/restorationEfficiency/dataJson.json
  70. 13 3
      src/views/economicsOperation/efficiency/restorationEfficiency/index.vue
  71. 605 0
      src/views/economicsOperation/efficiency/stateEfficiency/dataJson.json
  72. 13 3
      src/views/economicsOperation/efficiency/stateEfficiency/index.vue
  73. 496 0
      src/views/economicsOperation/nxfHomePage/component/dataJJJson.json
  74. 330 0
      src/views/economicsOperation/nxfHomePage/component/forecastBarComponent.vue
  75. 327 0
      src/views/economicsOperation/nxfHomePage/component/marker-line-chart.vue
  76. 390 0
      src/views/economicsOperation/nxfHomePage/component/multiple-bar-chart.vue
  77. 488 0
      src/views/economicsOperation/nxfHomePage/component/multiple-y-line-chart-normal.vue
  78. 353 0
      src/views/economicsOperation/nxfHomePage/component/operationTable.vue
  79. 208 0
      src/views/economicsOperation/nxfHomePage/component/percent-bar.vue
  80. 129 0
      src/views/economicsOperation/nxfHomePage/component/percent-card-2.vue
  81. 185 0
      src/views/economicsOperation/nxfHomePage/component/power-plan.vue
  82. 289 0
      src/views/economicsOperation/nxfHomePage/index.vue
  83. 120 0
      src/views/economicsOperation/stationAnalyse/electricAnalyse/dataJson.json
  84. 24 7
      src/views/economicsOperation/stationAnalyse/electricAnalyse/index.vue
  85. 228 0
      src/views/economicsOperation/stationAnalyse/stationElectricAnalyse/dataJson.json
  86. 23 7
      src/views/economicsOperation/stationAnalyse/stationElectricAnalyse/index.vue
  87. 553 0
      src/views/economicsOperation/stationAnalyse/windAndPhotovoltaic/components/dataJson.json
  88. 1 1
      src/views/economicsOperation/stationAnalyse/windAndPhotovoltaic/components/photovoltaic.vue
  89. 37 9
      src/views/economicsOperation/stationAnalyse/windAndPhotovoltaic/components/wind.vue
  90. 7 2
      src/views/economicsOperation/stationAnalyse/windAndPhotovoltaic/index.vue
  91. 3003 0
      src/views/economicsOperation/thematicAnalysis/MTBF/dataJson.json
  92. 26 36
      src/views/economicsOperation/thematicAnalysis/MTBF/index.vue
  93. 560 0
      src/views/economicsOperation/thematicAnalysis/comprehensiveAnalysis/dataJson.json
  94. 26 7
      src/views/economicsOperation/thematicAnalysis/comprehensiveAnalysis/index.vue
  95. 8069 0
      src/views/economicsOperation/thematicAnalysis/failure/dataJson.json
  96. 32 90
      src/views/economicsOperation/thematicAnalysis/failure/index.vue
  97. 8069 0
      src/views/economicsOperation/thematicAnalysis/generation/dataJson.json
  98. 32 90
      src/views/economicsOperation/thematicAnalysis/generation/index.vue
  99. 1621 0
      src/views/economicsOperation/thematicAnalysis/windEnergy/dataJson.json
  100. 0 0
      src/views/economicsOperation/thematicAnalysis/windEnergy/index.vue

+ 2 - 1
public/index.html

@@ -35,7 +35,8 @@
   </title>
 </head>
 
-<body id="appBody" class="dark">
+<!-- class="dark" -->
+<body id="appBody">
   <div id="ie_dialog">
     本平台仅支持非ie浏览器使用
   </div>

+ 15 - 2
src/App.vue

@@ -2,6 +2,7 @@
   <div
     v-if="!showSisView"
     id="screen"
+    :class="$store.state.moreSty"
     :style="{
       width: `${style.width}px`,
       height: `${style.height}px`,
@@ -24,7 +25,7 @@
           >
         </div>
         <div class="header-menu-body">
-          <Header />
+          <Header @proStyle="proStyleFn" />
         </div>
       </div>
       <div
@@ -142,6 +143,7 @@ export default {
  
   },
   mounted() {
+    this.$store.state.moreSty = window.sessionStorage.getItem("moreSty") || 'greenSty'
     let that = this;
     that.setScale();
     /*窗口改变事件*/
@@ -153,6 +155,10 @@ export default {
     console.log("离开标记", this.socketLeaveFlag);
   },
   methods: {
+    proStyleFn(value) {
+        window.sessionStorage.setItem("moreSty", value)
+        this.$store.state.moreSty = value
+    },
     getScale() {
       const w = window.innerWidth / this.style.width;
       const h = window.innerHeight / this.style.height;
@@ -246,7 +252,14 @@ export default {
 </script>
 
 <style lang="less">
-@import "~@/assets/styles/main.less";
+@import "~@/assets/styles/font.less";
+#screen.greenSty{
+    @import "~@/assets/styles/main.less";
+}
+    @import "~@/assets/styles/blueStyle/blueSty.less";
+#screen.blueSty{
+    @import "~@/assets/styles/blueStyle/main.less";
+}
 #screen {
   z-index: 100;
   transform-origin: 0 0;

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


BIN
src/assets/imgs/glycfx-bg2.png


BIN
src/assets/nxfImg/ship.png


+ 111 - 0
src/assets/styles/blueStyle/app.less

@@ -0,0 +1,111 @@
+.background {
+  background: fade(@darkgray, 20);
+}
+
+.pd-8 {
+  padding: 10px;
+}
+
+.pd-t-8 {
+  padding-top: 10px;
+}
+
+.pd-b-8 {
+  padding-bottom: 10px;
+}
+
+.pd-l-8 {
+  padding-left: 10px;
+}
+
+.pd-r-8 {
+  padding-right: 10px;
+}
+
+.pd-16 {
+  padding: 1.481vh;
+}
+.pd-t-16 {
+  padding-top: 1.481vh;
+}
+
+.pd-b-16 {
+  padding-bottom: 1.481vh;
+}
+
+.pd-l-16 {
+  padding-left: 1.481vh;
+}
+
+.pd-r-16 {
+  padding-right: 1.481vh;
+}
+
+.mg-8 {
+  margin: 10px;
+}
+
+.mg-t-8 {
+  margin-top: 10px;
+}
+
+.mg-b-8 {
+  margin-bottom: 10px;
+}
+
+.mg-l-8 {
+  margin-left: 10px;
+}
+
+.mg-r-8 {
+  margin-right: 10px;
+}
+
+.mg-16 {
+  margin: 15px;
+}
+.mg-t-16 {
+  margin-top: 15px;
+}
+
+.mg-b-16 {
+  margin-bottom: 15px;
+}
+
+.mg-l-16 {
+  margin-left: 15px;
+}
+
+.mg-r-16 {
+  margin-right: 15px;
+}
+
+.scroll {
+  overflow: hidden;
+  padding-right: 6px;
+  &:hover {
+    overflow: auto;
+    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;
+}
+
+.blur {
+  backdrop-filter: blur(3px);
+}
+
+.pointer {
+  cursor: pointer;
+}

+ 778 - 0
src/assets/styles/blueStyle/blueSty.less

@@ -0,0 +1,778 @@
+@picker-bg-color: fade(rgb(3, 7, 19), 95);
+
+#screen.blueSty {
+    background: #09172b;
+
+    // /integratedAlarm/safe/realwarning 卡片
+    .card {
+        color: rgb(228, 236, 255);
+        background: #142446;
+
+        .safeCom {
+            .safeCom_head {
+                border-bottom: 0;
+            }
+        }
+    }
+
+    // /integratedAlarm/safe/dataSearch
+    .data-search {
+        .data-content {
+            .card-left {
+
+                .cardleft,
+                .cardright {
+                    background: rgb(21, 37, 69);
+                }
+            }
+
+            .card-right {
+                background: rgb(21, 37, 69);
+            }
+        }
+    }
+
+    // 历史数据按钮弹窗顶部按钮
+    .pickerFifter {
+        .buttons {
+            background-color: rgba(37, 112, 206, 0.2);
+            border: 1px solid rgb(37, 112, 206);
+            color: rgb(37, 112, 206);
+        }
+    }
+
+
+    // /integratedAlarm/alarmConfig/historyConfig 编辑按钮弹窗底部底部按钮
+    .footerButton {
+        .el-button:first-child {
+            background-color: rgba(37, 112, 206, 0.16) !important;
+
+        }
+
+        .el-button:last-of-type {
+            color: #fff;
+            background-color: rgb(37, 112, 206);
+        }
+    }
+
+    // /economicsOperation/benchmarkingManagement/performanceRankingList
+    .tabCut {
+        .active {
+            background: rgb(37, 112, 206);
+        }
+    }
+
+    .buttons {
+        color: #fff;
+        background-color: rgb(37, 112, 206);
+        border: 0;
+
+        &:hover {
+            color: rgb(223, 232, 250);
+            background: rgb(26, 92, 175);
+        }
+    }
+
+    .performance {
+        .lyl-item {
+            color: #67b9ff;
+        }
+    }
+
+    .tabCut1 {
+        .tabCut-item {
+            background: rgba(37, 112, 206, 0.4);
+
+            &.active {
+                background: rgb(37, 112, 206);
+            }
+        }
+    }
+
+    // /economicsOperation/thematicAnalysis/windEnergy
+    .parcel-box .search .searchColor {
+        color: #fff;
+        background-color: rgb(37, 112, 206);
+        border: 0;
+
+        &:hover {
+            color: rgb(223, 232, 250);
+            background: rgb(26, 92, 175);
+        }
+    }
+
+    // /economicsOperation/stationAnalyse/WindAndPhotovoltaic
+    .windAndPhotovoltaic .wp-search .searchColor {
+        color: #fff;
+        background-color: rgb(37, 112, 206);
+        border: 0;
+
+        &:hover {
+            color: rgb(223, 232, 250);
+            background: rgb(26, 92, 175);
+        }
+    }
+
+    // /economicsOperation/windAnalyse/powerSearch
+    .selections {
+        .selections_btn {
+            background: rgba(37, 112, 206, 0.2);
+            border: 1px solid rgba(37, 112, 206, 0.2);
+
+            &.active {
+                background: rgb(37, 112, 206);
+                border: 1px solid rgb(37, 112, 206);
+            }
+        }
+    }
+
+    // /economicsOperation/windAnalyse/qxpclfx
+    .query-items {
+        .newspan {
+            &.active {
+                background: linear-gradient(to top, rgba(#67b9ff, 0.5), rgba(#67b9ff, 0));
+
+                &:after {
+                    border-color: #67b9ff;
+                }
+            }
+
+            &:hover {
+                background: linear-gradient(to top, rgba(#67b9ff, 0.5), rgba(#67b9ff, 0));
+
+                &:after {
+                    border-color: #67b9ff;
+                }
+            }
+        }
+    }
+
+    .searchColor {
+        color: #fff;
+        background-color: rgb(37, 112, 206);
+        border: 0;
+
+        &:hover {
+            color: rgb(223, 232, 250);
+            background: rgb(26, 92, 175);
+        }
+    }
+
+    // /economicsOperation/efficiency/stateEfficiency
+    .date {
+
+        .day,
+        .year {
+            border: 1px solid #67b9ff;
+
+            &.active {
+                background: rgba(#67b9ff, 0.4);
+            }
+        }
+
+        .mouth {
+            border-top: 1px solid #67b9ff;
+            border-bottom: 1px solid #67b9ff;
+
+            &.active {
+                background: rgba(#67b9ff, 0.4);
+            }
+        }
+    }
+
+    // /integratedAlarm/deviceConfig
+    .device-config .device-content .box-card-tree,
+    .device-config .device-content .box-card {
+        background: rgb(21, 37, 69)
+    }
+
+    // header 菜单激活状态
+    .header-menu {
+        .header-menu-list {
+            .header-menu-item {
+                outline: none;
+
+                &.active {
+                    color: #67b9ff;
+                    background: linear-gradient(to top, rgba(#2169c3, 0.5), rgba(#142446, 0)) !important;
+                    border-color: #2169c3 !important;
+
+                    &:after {
+                        border-color: #2169c3;
+                    }
+                }
+            }
+        }
+
+        // header 右侧 user
+        .header-menu-user {
+            .header-menu-user-title {
+                .el-dropdown-link {
+                    color: #67b9ff;
+                }
+            }
+        }
+    }
+
+    // 左侧菜单
+    .menu-list {
+        .menu-item {
+            .svg-icon-green {
+                svg {
+                    use {
+                        fill: #fff;
+                    }
+                }
+            }
+
+            .svg-icon-gray {
+                svg {
+                    use {
+                        fill: #777;
+                    }
+                }
+            }
+
+        }
+    }
+
+    // 表格类页面内表格上文本方标题
+    .leftContent {
+        span {
+            color: rgb(254, 254, 255);
+        }
+    }
+
+    // 部分页面顶部搜索条件框
+    .form-wrapper {
+        .btns {
+            .buttons {
+                color: #fff;
+                background-color: rgb(37, 112, 206);
+                border: 0;
+
+                &:hover {
+                    color: rgb(223, 232, 250);
+                    background: rgb(26, 92, 175);
+                }
+            }
+        }
+    }
+
+    // 左侧导航背景颜色
+    .menu-body {
+        background: rgb(8, 23, 44);
+
+        // 左侧导航菜单二级
+        .sub-menu {
+            background: rgba(3, 7, 19, 0.75);
+            border-color: rgba(#2169c3, 0.5);
+
+            .menu-item {
+                border: 0;
+                color: #777;
+                background: rgb(8, 23, 44);
+
+                &.active {
+                    background: rgb(26, 102, 198);
+
+                    .sub-menu-text {
+                        color: #fff;
+                    }
+
+                }
+            }
+        }
+
+        // 左侧菜单底部图钉
+        .svg-icon-green {
+            svg {
+                use {
+                    fill: #2169c3;
+                }
+            }
+        }
+    }
+
+    // 页面渲染 router 部分背景颜色
+    .main-body {
+        background: rgb(3, 7, 19);
+    }
+
+    // el-dialog 弹窗
+    .el-dialog {
+        background: fade(rgb(3, 7, 19), 95);
+        border: 1px solid fade(#2169c3, 50);
+        box-shadow: 0px 8px 17px 1px rgba(#2169c3, 0.3);
+
+        &.el-dialog--center .el-dialog__body,
+        .el-dialog__body {
+            padding: 16px 24px;
+        }
+
+        &.hide-header {
+            .el-dialog__header {
+                background: none; // 去除弹窗 header 背景图片
+                border: none;
+
+                .el-dialog__title {
+                    display: none;
+                }
+            }
+        }
+    }
+
+    // el-dialog 弹窗 class el-overlay
+    .el-overlay {
+        .el-dialog__header {
+            background: none; // 去除弹窗 header 背景图片
+        }
+    }
+
+    .el-loading-mask {
+        .el-loading-spinner {
+            .path {
+                stroke: #2169c3;
+            }
+
+            .el-loading-text {
+                color: #2169c3 !important;
+            }
+        }
+    }
+
+    // select 组件
+    .el-select {
+        .el-select__tags {
+            .el-tag {
+                background: #000;
+
+                .el-icon-close {
+                    background-color: transparent;
+                    border: 1px solid #fff;
+                }
+            }
+        }
+    }
+
+    // 组件下拉选框
+    .el-popper {
+        &.el-cascader__dropdown[role="tooltip"] {
+            background: @picker-bg-color;
+            border-color: @picker-bg-color;
+
+            .el-cascader-menu {
+                border-color: @gray;
+            }
+
+            .el-cascader-node:not(.is-disabled):focus,
+            .el-cascader-node:not(.is-disabled):hover {
+                background: fade(@green, 20);
+                color: @green;
+            }
+
+            .el-cascader-node.in-active-path,
+            .el-cascader-node.is-active,
+            .el-cascader-node.is-selectable.in-checked-path {
+                color: @green;
+            }
+        }
+
+        &.el-select__popper[role="tooltip"] {
+            border-color: @picker-bg-color;
+            background: @picker-bg-color;
+
+            .el-cascader-menu {
+                border-color: @gray;
+            }
+
+            .el-select-dropdown__item.hover,
+            .el-select-dropdown__item:hover {
+                background: fade(rgb(26, 92, 175), 20);
+                color: rgb(223, 232, 250);
+
+                // color           : #fff;
+                // background-color: rgb(37, 112, 206);
+                // border          : 0;
+            }
+
+            .el-select-dropdown__item.selected {
+                background: transparent;
+                color: rgb(26, 92, 175);
+                border-color: rgb(26, 92, 175);
+            }
+        }
+    }
+
+    // 日期选择组件
+    .el-picker__popper.el-popper[role="tooltip"] {
+        border-color: @picker-bg-color !important;
+        background: @picker-bg-color !important;
+    }
+
+    .el-picker-panel__footer {
+        background: @picker-bg-color ;
+
+        .el-button--text {
+            color: #fff;
+        }
+
+        .el-button.is-plain {
+            color: #67b9ff;
+            border-color: #67b9ff;
+        }
+    }
+
+    .el-date-editor.is-active,
+    .el-date-editor.is-active:hover,
+    .el-date-editor.is-focus .el-input__inner {
+        border-color: rgb(26, 92, 175);
+    }
+
+    .date-select.el-picker__popper.el-popper[role="tooltip"] .el-picker-panel .el-date-table td.current:not(.disabled) span,
+    .el-picker-panel.el-date-range-picker .el-date-range-picker__content .el-date-table td.end-date span,
+    .el-picker-panel.el-date-range-picker .el-date-range-picker__content .el-date-table td.start-date span {
+        background: rgb(26, 92, 175);
+    }
+
+    .date-select.el-picker__popper.el-popper[role="tooltip"] .el-picker-panel .el-date-table td.available:hover {
+        color: rgb(26, 92, 175);
+    }
+
+    .el-date-picker__header {
+
+        .el-icon-d-arrow-left:hover,
+        .el-icon-arrow-left:hover,
+        .el-date-picker__header-label:hover,
+        .el-icon-d-arrow-right:hover,
+        .el-icon-arrow-right:hover {
+            color: rgb(26, 92, 175);
+        }
+    }
+
+    .el-picker-panel {
+        .el-time-panel {
+            border-color: #fff;
+            background-color: rgb(3, 7, 19);
+            box-shadow: var(--el-box-shadow-light);
+        }
+
+        .el-time-spinner__item {
+            color: rgb(223, 232, 250);
+
+            &.active {
+                color: #67b9ff;
+            }
+
+            &:hover:not(.disabled):not(.active) {
+                background: fade(rgb(26, 92, 175), 75);
+            }
+        }
+
+        .el-time-panel__footer {
+            background: rgb(3, 7, 19);
+        }
+
+        .el-time-panel__btn.cancel {
+            color: #fff,
+        }
+
+        .el-time-panel__btn.confirm {
+            color: #67b9ff,
+        }
+    }
+
+    .date-select.el-picker__popper.el-popper[role="tooltip"] .el-picker-panel .el-date-picker__editor-wrap .el-time-panel .el-time-panel__content {
+        background: transparent;
+    }
+
+    // el-tree
+    .el-tree.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
+        color: #67b9ff;
+    }
+
+    .el-tree .el-tree-node__content:hover,
+    .el-tree .el-upload-list__item:hover {
+        color: #67b9ff;
+    }
+
+    // el-radio
+    .el-overlay .el-radio-group .el-radio-button__original-radio:checked+.el-radio-button__inner {
+        background-color: rgba(#67b9ff, 0.75);
+    }
+
+    .el-overlay .el-radio-group .el-radio-button__original-radio+.el-radio-button__inner {
+        border-color: #2169c3;
+    }
+
+    .el-overlay .el-radio-group .el-radio-button__original-radio+.el-radio-button__inner {
+        background: rgba(0, 0, 0, 0.5);
+    }
+
+    // 确认弹窗
+    .el-overlay .el-message-box {
+        background: rgba(3, 7, 19, 0.95);
+        border: 1px solid rgba(33, 105, 195, 0.5);
+        box-shadow: 0px 8px 17px 1px rgba(33, 105, 195, 0.3);
+
+        .el-message-box__btns {
+            .el-button.el-button--primary {
+                color: #fff;
+                background-color: rgb(37, 112, 206);
+                border: 0;
+
+                &:hover {
+                    color: rgb(223, 232, 250);
+                    background: rgb(26, 92, 175);
+                }
+            }
+        }
+    }
+
+    // 分页器
+    .el-pagination {
+        .el-pagination__sizes {
+            .el-input {
+                .el-input__inner:hover {
+                    border-color: #47aee7;
+                }
+            }
+        }
+
+        .el-pager {
+            li.active {
+                color: #47aee7;
+            }
+        }
+
+    }
+
+    // el-checkbox
+    .el-checkbox .el-checkbox__input.is-checked .el-checkbox__inner,
+    .el-checkbox .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+        background-color: #2169c3;
+        border-color: #2169c3;
+    }
+
+    .el-checkbox .el-checkbox__input.is-checked+.el-checkbox__label {
+        color: #67b9ff;
+    }
+
+    // el-tabs
+    .el-tabs .el-tabs__item.is-active,
+    .el-tabs .el-tabs__item:hover {
+        color: #67b9ff;
+    }
+
+    .el-tabs .el-tabs__active-bar {
+        background-color: #67b9ff;
+    }
+
+    .el-tabs.el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
+        border-bottom-color: #67b9ff;
+    }
+
+    .el-tabs.el-tabs--card>.el-tabs__header .el-tabs__nav {
+        border-color: #67b9ff;
+    }
+
+    .el-tabs.el-tabs--card>.el-tabs__header .el-tabs__item {
+        border-color: #67b9ff;
+    }
+
+    .el-tabs .el-tabs__item {
+        color: #aaa;
+    }
+
+    // 下拉菜单
+    .dropdown .el-dropdown-menu {
+        background: rgb(10, 23, 42);
+
+        .el-dropdown-menu__item {
+            color: #fff;
+
+            &:hover {
+                color: #67b9ff;
+            }
+        }
+    }
+
+    // 顶部右上角退出登录
+    .el-scrollbar__view.el-dropdown__list {
+        background: transparent;
+        margin: 0;
+        padding: 0;
+    }
+
+    // el-radio 选中状态
+    .el-radio.is-checked {
+        .el-radio__inner {
+            background: #67b9ff;
+            border-color: #67b9ff;
+        }
+
+        .el-radio__label {
+            color: #67b9ff;
+        }
+    }
+
+    // el-popover
+    .el-popover {
+        background: rgb(3, 7, 19);
+    }
+
+    // 部分页面顶部搜索条件右侧按钮
+    .search-wrapper {
+        .buttons {
+            color: #fff;
+            background-color: rgb(37, 112, 206);
+            border: 0;
+
+            &:hover {
+                color: rgb(223, 232, 250);
+                background: rgb(26, 92, 175);
+            }
+        }
+    }
+
+    // el-table
+    .main-body,
+    .warn-table,
+    .df-table {
+
+        .el-table,
+        .custom-table.el-table {
+            background: rgb(3, 7, 19);
+            border: 0px; // 包裹表格父元素边框
+
+
+
+            .el-table__row {
+                background: transparent; // 表格底色,因表格上层有其他颜色遮挡所以视觉效果看起来仿佛是表格边框
+
+                & .el-table__cell {
+                    border-bottom: 1px solid rgb(17, 58, 120) !important; // 表格单元格底部边框颜色
+
+                    .el-button {
+                        color: rgb(71, 174, 231) !important;
+
+                        &:active {
+                            color: #70d0f4 !important;
+                        }
+                    }
+                }
+            }
+
+            &.el-table--border::after,
+            &.el-table--group::after,
+            &::before {
+                background-color: transparent;
+            }
+
+            tr {
+                td {
+                    background-color: rgb(3, 7, 19); // 表格基数行背景颜色
+                }
+
+                &:hover td {
+                    color: #67b9ff; // 表格基数行 hover 文字颜色
+                    background-color: rgb(3, 7, 19) !important; // 表格基数行 hover 背景颜色
+                }
+            }
+
+            td {
+                border: 0px; // 表格内部除了最后一行底部以外的上下左右边框
+                padding: 0;
+                height: 37px;
+                line-height: 37px;
+                color: rgb(194, 225, 255);
+
+                &.light,
+                &.always-light {
+                    color: #67b9ff !important;
+                }
+            }
+
+            th {
+                border: 0px;
+                padding: 0px;
+                height: 37px;
+                line-height: 37px;
+                font-weight: normal;
+                text-align: center;
+                // color      : rgb(85, 113, 166);
+                color: rgb(255, 255, 255);
+                cursor: pointer;
+
+                &.is-leaf {
+                    border: 0px;
+                }
+
+                &.light,
+                &.always-light {
+                    color: #67b9ff !important;
+                }
+            }
+
+            th,
+            tr {
+                background-color: transparent;
+                border: 0px;
+            }
+
+            thead {
+                color: @gray-l;
+                font-weight: 500;
+                font-size: 14px;
+                border: 0px;
+
+                th,
+                &.is-group th {
+                    &.el-table__cell {
+                        background: rgb(19, 35, 71);
+                        border-color: transparent !important;
+                    }
+                }
+            }
+
+            .el-table__body {
+                border: 0px; // 表格最外侧除右边以外边框
+                font-size: 14px;
+            }
+
+            &.el-table--striped .el-table__body tr.el-table__row--striped {
+                td {
+                    background-color: rgb(16, 25, 46) !important; // 表格偶数行背景颜色
+                }
+
+                &:hover td {
+                    color: #67b9ff !important;
+                    background-color: rgb(16, 25, 46) !important; // 表格偶数行 hover 背景颜色
+                }
+
+
+            }
+
+            &.el-table--border,
+            &.el-table--group {
+                border: none;
+            }
+
+            .ascending .sort-caret.ascending {
+                border-bottom-color: #2169c3;
+            }
+
+            .descending .sort-caret.descending {
+                border-top-color: #2169c3;
+            }
+        }
+
+        .el-table__expanded-cell {
+            background: transparent;
+        }
+
+        .el-table__footer-wrapper tbody td {
+            background: #1a1f2fcc;
+        }
+    }
+}

+ 117 - 0
src/assets/styles/blueStyle/button.less

@@ -0,0 +1,117 @@
+.btn {
+    //   height: 33px;
+    //   line-height: 33px;
+    //   flex: 0 0 auto;
+    background-color: transparent !important;
+    border: 1px solid @darkgray !important;
+    //   padding: 0 1.481vh;
+    color: @gray !important;
+    font-size: @fontsize-s !important;
+    //   cursor: pointer;
+
+    &:hover {
+        border-color: @darkBlue !important;
+        color: @darkBlue !important;
+        background: fade(@darkBlue, 20) !important;
+    }
+
+    &.green {
+        border-color: @darkBlue !important;
+        color: @darkBlue !important;
+        background: fade(@darkBlue, 20) !important;
+    }
+
+    &+button {
+        margin-left: 16px;
+    }
+}
+
+.tabCut1 {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    margin: 10px 0px 0px 20px;
+
+    .tabCut-item {
+        width: 93px;
+        height: 23px;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        margin-right: 10px;
+        background: fade(@darkBlue, 70);
+        color: fade(@white, 90);
+        position: relative;
+        font-size: 12px;
+
+        &.green1 {
+            background: fade(@darkBlue, 90);
+            color: fade(@white, 90);
+        }
+
+        &.green1:before {
+            content: "";
+            width: 1px;
+            height: 7px;
+            background-color: #ffffff;
+            position: absolute;
+            left: 0;
+        }
+
+        &.green1:after {
+            content: "";
+            width: 1px;
+            height: 7px;
+            background-color: #ffffff;
+            position: absolute;
+            right: 0;
+        }
+    }
+}
+
+.tabCut2 {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    margin: 10px 0px 0px 20px;
+
+    .tabCut-item {
+        width: 110px;
+        height: 25px;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        // margin-right: 10px;
+        background: fade(@darkBlue, 70);
+        color: fade(@white, 90);
+        position: relative;
+        font-size: 12px;
+
+        &.green1 {
+            background: fade(@darkBlue, 80);
+            color: fade(@white, 90);
+        }
+
+        &.green1:before {
+            content: "";
+            width: 1px;
+            height: 7px;
+            background-color: #ffffff;
+            position: absolute;
+            left: 0;
+        }
+
+        &.green1:after {
+            content: "";
+            width: 1px;
+            height: 7px;
+            background-color: #ffffff;
+            position: absolute;
+            right: 0;
+        }
+    }
+}
+
+.el-date-editor {
+    background: transparent !important;
+}

+ 75 - 0
src/assets/styles/blueStyle/color.less

@@ -0,0 +1,75 @@
+.bg-green {
+    background: @darkBlue;
+}
+
+.green {
+    color: @darkBlue;
+}
+
+.bg-yellow {
+    background: @yellow;
+}
+
+.bg-blue {
+    background: @blue;
+}
+
+.bg-pink {
+    background: @pink;
+}
+
+.blue {
+    color: @blue;
+}
+
+.darkblue {
+    color: @darkBlue2;
+}
+
+.yellow {
+    color: @yellow;
+}
+
+.gray {
+    color: @font-color;
+}
+
+.purple {
+    color: @purple;
+}
+
+.bg-purple {
+    background: @purple;
+}
+
+.orange {
+    color: @orange;
+}
+
+.bg-orange {
+    background: @orange;
+}
+
+.red {
+    color: @red;
+}
+
+.bg-red {
+    background: @red;
+}
+
+.gary-l {
+    color: @gray-l;
+}
+
+.gray-l {
+    color: @gray-l;
+}
+
+.pink {
+    color: @pink;
+}
+
+.white {
+    color: @white;
+}

File diff suppressed because it is too large
+ 1020 - 0
src/assets/styles/blueStyle/dialog.less


+ 13 - 0
src/assets/styles/blueStyle/el-override/el-card.less

@@ -0,0 +1,13 @@
+.main-body {
+  .el-card {
+    background: transparent;
+    border-color: fade(@gray, 50);
+    border-radius: 0;
+
+    .el-card__header {
+      color: @gray-l;
+      background: fade(@gray, 20);
+      border: none;
+    }
+  }
+}

+ 451 - 0
src/assets/styles/blueStyle/el-override/el-input.less

@@ -0,0 +1,451 @@
+@picker-bg-color: fade(#121d1c, 95);
+
+body {
+    .el-input__inner {
+        background: fade(@gray, 20);
+        color: @gray-l;
+    }
+
+    .el-input {
+        &.is-disabled .el-input__inner {
+            background-color: fade(@gray-l, 20);
+            border-color: @gray;
+            color: @gray;
+            cursor: not-allowed;
+        }
+
+        &.is-in-pagination .el-input__inner[type="number"] {
+            width: 48px;
+        }
+
+        .el-input__inner[type="number"] {
+            width: 200px;
+
+            &::-webkit-textfield-decoration-container {
+                appearance: none;
+            }
+
+            &::-webkit-inner-spin-button,
+            &::-webkit-outer-spin-button {
+                appearance: none;
+            }
+        }
+    }
+
+    // 数字组件
+    .el-input-number {
+        &.is-controls-right {
+            .el-input-number__increase {
+                border-bottom: 1px solid @gray;
+            }
+
+            .el-input-number__decrease,
+            .el-input-number__increase {
+                line-height: 15px;
+                color: @gray-l;
+                background: fade(@gray, 40);
+                border-left: 1px solid @gray;
+            }
+        }
+    }
+
+    .el-input-number {
+
+        // width: 100%;
+        .el-input-number__decrease,
+        .el-input-number__increase {
+            background: rgba(67, 81, 107, 0.2) !important;
+
+            position: absolute;
+            z-index: 10;
+            border: 0;
+
+            // height: 33px;
+            // line-height: 33px;
+            &:hover {
+                color: #05be4c;
+            }
+        }
+    }
+
+    // 日期组件
+    .el-date-editor {
+        --el-date-editor-daterange-width: 480px;
+
+        &.is-active,
+        &.is-active:hover,
+        &.is-focus .el-input__inner {
+            border-color: @darkBlue;
+        }
+
+        // el datetimerange Start
+        &.el-date-editor--datetimerange {
+            border: 1px solid fade(@gray, 20);
+            height: 33px;
+            padding: 0 8px;
+            width: 369px;
+
+            .el-range-separator {
+                color: @gray-l;
+                line-height: 33px;
+            }
+
+            .el-range-input {
+                flex-basis: 145px;
+                line-height: 33px;
+                background: transparent;
+                color: @gray-l;
+
+                &::placeholder {
+                    text-align: center;
+                    color: @gray-l;
+                }
+            }
+        }
+
+        // el datetimerange End
+    }
+
+    // 单选框
+    .el-radio {
+        color: @gray-l;
+
+        &.is-checked {
+            .el-radio__inner {
+                background: @darkBlue;
+                border-color: @darkBlue;
+            }
+
+            .el-radio__label {
+                color: @darkBlue;
+            }
+        }
+
+        &.is-bordered.is-checked {
+            border-color: @darkBlue;
+        }
+
+        &:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner {
+            box-shadow: 0 0 2px 2px @darkBlue;
+        }
+    }
+
+    // 单选框组
+    .el-radio-group {
+        height: 33px;
+
+        &>.el-radio {
+            line-height: 33px;
+        }
+    }
+
+    .el-checkbox {
+        height: 33px;
+        line-height: 33px;
+        color: @gray-l;
+
+        &.is-bordered {
+            height: 33px;
+            line-height: 33px;
+            padding: 0px 20px;
+            border-color: @gray;
+
+            &.is-checked {
+                border-color: @darkBlue;
+            }
+        }
+
+        .el-checkbox__inner {
+            background: fade(@gray, 20);
+            border-color: fade(@gray, 40);
+        }
+
+        .el-checkbox__input {
+            display: block;
+        }
+
+        .el-checkbox__input.is-checked+.el-checkbox__label {
+            color: @darkBlue;
+        }
+
+        .el-checkbox__input.is-checked .el-checkbox__inner,
+        .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+            background-color: @darkBlue;
+            border-color: @darkBlue;
+        }
+
+        .el-checkbox__input.is-focus .el-checkbox__inner {
+            border-color: @darkBlue;
+        }
+    }
+
+    .warn-table {
+        .el-checkbox__input.is-checked+.el-checkbox__label {
+            color: #d35400;
+        }
+
+        .el-checkbox__input.is-checked .el-checkbox__inner,
+        .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+            background-color: #d35400;
+            border-color: #d35400;
+        }
+
+        .el-checkbox__input.is-focus .el-checkbox__inner {
+            border-color: #d35400;
+        }
+    }
+
+    // 树组件
+    .el-tree {
+        color: @gray-l;
+        background: fade(@gray, 20);
+
+        .el-checkbox__inner {
+            background: transparent;
+            border-color: @gray;
+        }
+
+        .el-tree-node:focus>.el-tree-node__content {
+            background: transparent;
+        }
+
+        .el-checkbox__input.is-disabled .el-checkbox__inner {
+            background: @gray;
+            border-color: @gray;
+        }
+
+        &.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
+            background: transparent;
+            color: @darkBlue;
+        }
+
+        .el-tree-node__content:hover,
+        .el-upload-list__item:hover {
+            background: transparent;
+            color: @darkBlue;
+        }
+
+        .el-checkbox__inner:hover {
+            border-color: @darkBlue;
+        }
+
+        .el-checkbox__input.is-focus .el-checkbox__inner {
+            border-color: @darkBlue;
+        }
+
+        .el-checkbox__input.is-checked .el-checkbox__inner,
+        .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+            background: @darkBlue;
+            border-color: @darkBlue;
+        }
+    }
+
+    // Cascader 级联选择器
+    .el-cascader {
+        line-height: 30px;
+
+        .el-cascader__tags {
+            .el-tag {
+                color: white;
+                background-color: fade(@darkBlue, 50);
+
+                .el-icon-close {
+                    background-color: fade(@darkBlue, 50);
+                }
+            }
+        }
+
+        .el-input__suffix {
+            right: 0px;
+        }
+    }
+
+    .el-select {
+        .el-input.is-focus .el-input__inner {
+            border-color: @darkBlue;
+        }
+
+        .el-input__inner:focus {
+            border-color: @darkBlue;
+        }
+    }
+
+    .el-select .el-select__tags .el-tag {
+        background: #000;
+    }
+
+    .el-select .el-select__tags .el-tag .el-icon-close {
+        background-color: transparent;
+        border: 1px solid #fff;
+    }
+
+    .el-popper {
+        &.el-cascader__dropdown[role="tooltip"] {
+            background: @picker-bg-color;
+            border-color: @picker-bg-color;
+
+            .el-cascader-menu {
+                border-color: @gray;
+            }
+
+            .el-cascader-node:not(.is-disabled):focus,
+            .el-cascader-node:not(.is-disabled):hover {
+                background: fade(@darkBlue, 20);
+                color: @darkBlue;
+            }
+
+            .el-cascader-node.in-active-path,
+            .el-cascader-node.is-active,
+            .el-cascader-node.is-selectable.in-checked-path {
+                color: @darkBlue;
+            }
+        }
+
+        &.el-select__popper[role="tooltip"] {
+            border-color: @picker-bg-color;
+            background: @picker-bg-color;
+
+            .el-cascader-menu {
+                border-color: @gray;
+            }
+
+            .el-select-dropdown__item.hover,
+            .el-select-dropdown__item:hover {
+                background: fade(@darkBlue, 20);
+                color: @darkBlue;
+            }
+
+            .el-select-dropdown__item.selected {
+                background: transparent;
+                color: @darkBlue;
+            }
+        }
+    }
+}
+
+.el-picker__popper.el-popper[role="tooltip"] {
+    border-color: @picker-bg-color !important;
+    background: @picker-bg-color !important;
+}
+
+.el-picker-panel {
+
+    // el datetimerange  picker Start
+    &.el-date-range-picker {
+        color: @gray-l;
+        background: transparent;
+
+        .el-date-range-picker__time-header {
+            border-color: @gray;
+
+            .el-icon-arrow-right {
+                color: @gray-l;
+            }
+
+            .el-input__inner {
+                background: fade(@gray, 20);
+                color: @gray-l;
+                border-color: @gray;
+            }
+
+            .el-date-range-picker__time-picker-wrap {
+                .el-time-panel {
+                    background-color: @picker-bg-color;
+
+                    .el-time-spinner__item.active:not(.disabled) {
+                        color: @darkBlue;
+                    }
+
+                    .el-time-spinner__item:hover:not(.disabled):not(.active) {
+                        background: transparent;
+                        color: @darkBlue;
+                    }
+                }
+
+                .el-time-panel__btn.confirm {
+                    color: @darkBlue;
+                }
+
+                .el-time-panel__btn.cancel {
+                    color: @gray;
+                }
+            }
+        }
+
+        .el-date-range-picker__content {
+            border-color: @gray;
+
+            .el-date-table {
+                th {
+                    color: @gray-l;
+                }
+
+                td {
+                    &.available:hover {
+                        color: @darkBlue;
+                    }
+
+                    &.in-range div,
+                    &.in-range div:hover {
+                        background: fade(@gray, 40);
+                    }
+
+                    &.end-date span,
+                    &.start-date span {
+                        background: @darkBlue;
+                    }
+
+                    &.today {
+                        span {
+                            color: @darkBlue;
+                        }
+
+                        &.end-date span,
+                        &.start-date span {
+                            color: @white;
+                        }
+                    }
+
+                    &.next-month,
+                    &.prev-month {
+                        color: @gray;
+                    }
+                }
+            }
+        }
+    }
+
+    // el datetimerange  picker End
+
+    .el-picker-panel__body {
+        border-color: @gray;
+    }
+
+    .el-picker-panel__footer {
+        background: transparent;
+        border-color: @gray;
+
+        .el-button--text {
+            color: @gray;
+        }
+
+        .el-button.is-plain {
+            background: transparent;
+            border-color: @darkBlue;
+            color: @darkBlue;
+        }
+    }
+
+    .el-time-panel__btn.confirm {
+        color: @darkBlue;
+    }
+
+    .el-time-panel__btn.cancel {
+        color: @gray;
+    }
+}
+
+.el-popper__arrow::before {
+    background: fade(#121d1c, 95) !important;
+    border: 1px solid fade(#121d1c, 95) !important;
+}

+ 51 - 0
src/assets/styles/blueStyle/el-override/el-pagination.less

@@ -0,0 +1,51 @@
+// el-pagination
+.main-body {
+    .el-pagination {
+        display: flex;
+        justify-content: flex-end;
+        align-items: center;
+        color: #b3bdc0;
+
+        .el-pagination__total {
+            color: #b3bdc0;
+        }
+
+        .el-pagination__jump {
+            color: #b3bdc0;
+        }
+
+        button {
+
+            &.btn-next,
+            &.btn-prev {
+                background: center center no-repeat fade(@gray, 20);
+                color: @gray-l;
+            }
+
+            &:disabled {
+                color: @gray-l;
+                background-color: fade(@gray, 20);
+                cursor: not-allowed;
+            }
+        }
+
+        .el-pager li {
+            color: @gray-l;
+            background: fade(@gray, 20);
+
+            &.active {
+                color: @darkBlue;
+            }
+        }
+
+        .el-input__inner {
+            color: @gray-l;
+            background: fade(@gray, 20);
+            border: 1px solid fade(@gray, 20);
+        }
+
+        .el-pagination__sizes .el-input .el-input__inner:hover {
+            border-color: @darkBlue;
+        }
+    }
+}

+ 163 - 0
src/assets/styles/blueStyle/el-override/el-table.less

@@ -0,0 +1,163 @@
+// el-table
+.main-body,
+.warn-table,
+.df-table {
+
+    .el-table,
+    .custom-table.el-table {
+        background: transparent;
+        border: 0px;
+
+        &.el-table--border::after,
+        &.el-table--group::after,
+        &::before {
+            background-color: transparent;
+        }
+
+        tr {
+            &:hover {
+                td {
+                    color: @darkBlue;
+                    background-color: transparent !important;
+                }
+            }
+        }
+
+        td {
+            border: 0px;
+            padding: 0;
+            //   height: 27px;
+            //   line-height: 27px;
+            height: 37px;
+            line-height: 37px;
+            //   font-size: 12px;
+            color: #b3bdc0;
+
+            &.light,
+            &.always-light {
+                color: @darkBlue !important;
+            }
+        }
+
+        th {
+            border: 0px;
+            padding: 0px;
+            //   height: 30px;
+            //   line-height: 30px;
+            height: 37px;
+            line-height: 37px;
+            font-weight: normal;
+            text-align: center;
+            color: @gray-l;
+            cursor: pointer;
+
+            &.is-leaf {
+                border: 0px;
+            }
+
+            &.light,
+            &.always-light {
+                color: @darkBlue !important;
+            }
+        }
+
+        th,
+        tr {
+            background-color: transparent;
+            border: 0px;
+        }
+
+        thead {
+            color: @gray-l;
+            font-weight: 500;
+            font-size: 14px;
+            border: 0px;
+
+            th,
+            &.is-group th {
+                &.el-table__cell {
+                    background: #132347;
+                }
+
+                // & > .cell {
+                // }
+
+                // background-color: fade(@gray, 20);
+            }
+        }
+
+        .el-table__body {
+            border: 0px;
+            font-size: 14px;
+        }
+
+        &.el-table--striped .el-table__body tr.el-table__row--striped {
+            &:hover td {
+                background-color: fade(@gray, 20) !important;
+            }
+
+            td {
+                background-color: fade(@gray, 20);
+            }
+        }
+
+        &.el-table--border,
+        &.el-table--group {
+            border: none;
+        }
+
+        .ascending .sort-caret.ascending {
+            border-bottom-color: @darkBlue;
+        }
+
+        .descending .sort-caret.descending {
+            border-top-color: @darkBlue;
+        }
+    }
+
+    .el-table__expanded-cell {
+        background: transparent;
+    }
+
+    .el-table__footer-wrapper tbody td {
+        background: #1a1f2fcc;
+    }
+
+    //   .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;
+    //     color: @darkBlue;
+    //   }
+}
+
+.warn-table {
+    .el-table {
+        thead th.el-table__cell {
+            background: rgba(83, 89, 104, 0.3);
+        }
+
+        &.el-table--striped .el-table__body tr.el-table__row--striped td {
+            background-color: #161415;
+        }
+
+        tr {
+            &.isConfirm {
+                &:hover {
+                    td {
+                        color: #05bb4c !important;
+                        background-color: transparent !important;
+                    }
+                }
+            }
+
+            &:hover {
+                td {
+                    color: #d35400 !important;
+                    background-color: transparent !important;
+                }
+            }
+        }
+    }
+}

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

@@ -0,0 +1,7 @@
+@import "./el-card.less";
+@import "./el-pagination.less";
+@import "./el-pagination.less";
+@import "./el-input.less";
+@import "./el-table.less";
+
+

+ 29 - 0
src/assets/styles/blueStyle/font.less

@@ -0,0 +1,29 @@
+@font-face {
+  font-family: @font-family-num;
+  src: url("../font/Bicubik.woff"), url("../font/Bicubik.ttf");
+}
+
+@font-face {
+  font-family: "SourceHanSans";
+  src: url("../font/SourceHanSansCN-Normal.ttf");
+}
+
+.font-num {
+  font-family: @font-family-num;
+}
+
+.font-cn {
+  font-family: "SourceHanSans";
+}
+
+.font-md {
+  font-size: @fontsize;
+}
+
+.font-sm {
+  font-size: @fontsize-s;
+}
+
+.font-lg {
+  font-size: @fontsize-l;
+}

+ 0 - 0
src/assets/styles/blueStyle/form.css


+ 521 - 0
src/assets/styles/blueStyle/form.less

@@ -0,0 +1,521 @@
+// 查询 样式
+.main-body {
+    input {
+        box-sizing: border-box;
+        flex: 0 0 200px;
+        border: 0px solid @darkgray;
+        color: @white;
+        outline: unset;
+        border-radius: 0%;
+        padding-right: 40px;
+        background: fade(#536268, 20);
+        height: 33px;
+        line-height: 33px;
+
+        &::placeholder {
+            font-size: 12px;
+            text-align: left;
+            color: @darkgray;
+        }
+    }
+
+    input[type="checkbox"] {
+        position: relative;
+        display: inline-block;
+        appearance: none;
+        width: 14px;
+        height: 14px;
+        outline: none;
+        border: 1px solid @gray;
+        background-color: #000;
+        border-radius: 20%;
+        margin: 0;
+        padding: 0;
+
+        &:checked {
+            border-color: @darkBlue;
+            background: @darkBlue;
+        }
+
+        &::after {
+            display: inline-block;
+            content: " ";
+            position: absolute;
+            left: 30%;
+            top: 5%;
+            width: 3px;
+            height: 7px;
+            border-color: #fff;
+            border-style: solid;
+            border-width: 0px 2px 2px 0px;
+            transform: rotate(45deg);
+            opacity: 0;
+        }
+
+        &:checked::after {
+            content: "";
+            opacity: 1;
+            transition: opacity 0.3s ease-out;
+        }
+    }
+
+    //   新样式
+    .query-form {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        margin-top: 10px;
+        padding-left: 20px;
+
+        &.left {
+            justify-content: flex-start;
+        }
+
+        // 带标签查询项
+        .station1 {
+            display: flex;
+            flex-direction: row;
+            align-items: center;
+            font-size: 14px;
+            font-family: Microsoft YaHei;
+            font-weight: 400;
+            color: #6d6c6c;
+            margin-right: 10px;
+        }
+
+        // 日期
+        .dates {
+            display: flex;
+            flex-direction: row;
+            align-items: center;
+            font-size: 14px;
+            font-family: Microsoft YaHei;
+            font-weight: 400;
+            color: #6d6c6c;
+            margin-right: 10px;
+        }
+
+        .search-input {
+            margin-left: 10px;
+        }
+
+        .el-input__inner {
+            border-radius: 12.5px !important;
+        }
+
+        .query-actions {
+            display: flex;
+            flex-direction: row;
+            align-content: center;
+            margin-left: 10px;
+        }
+    }
+
+    input {
+        box-sizing: border-box;
+        flex: 0 0 200px;
+        border: 0px solid @darkgray;
+        color: @white;
+        outline: unset;
+        padding-right: 40px;
+        background: fade(#536268, 20);
+
+        &::placeholder {
+            font-size: 12px;
+            text-align: left;
+            color: @darkgray;
+        }
+    }
+
+    input[type="checkbox"] {
+        position: relative;
+        display: inline-block;
+        appearance: none;
+        width: 14px;
+        height: 14px;
+        outline: none;
+        border: 1px solid @gray;
+        background-color: #000;
+        border-radius: 20%;
+        margin: 0;
+        padding: 0;
+
+        &:checked {
+            border-color: @darkBlue;
+            background: @darkBlue;
+        }
+
+        &::after {
+            display: inline-block;
+            content: " ";
+            position: absolute;
+            left: 30%;
+            top: 5%;
+            width: 3px;
+            height: 7px;
+            border-color: #fff;
+            border-style: solid;
+            border-width: 0px 2px 2px 0px;
+            transform: rotate(45deg);
+            opacity: 0;
+        }
+
+        &:checked::after {
+            content: "";
+            opacity: 1;
+            transition: opacity 0.3s ease-out;
+        }
+    }
+
+    .el-form {
+        .el-form-item {
+            margin-bottom: 8px;
+
+            .el-form-item__label {
+                line-height: 33px;
+                color: @gray-l;
+                font-family: "SourceHanSans";
+            }
+
+            .el-form-item__content {
+                line-height: 33px;
+
+                .el-input {
+                    line-height: 33px;
+
+                    .el-input__inner {
+                        background: fade(#536268, 20);
+                        border-color: fade(#536268, 20);
+                        height: 33px;
+                        line-height: 33px;
+                        padding-left: 30px;
+                        color: #ffffff;
+                        font-size: 12px;
+                        font-family: "SourceHanSans";
+
+                        &::placeholder {
+                            font-size: 12px;
+                            color: #606769;
+                        }
+                    }
+                }
+
+                .el-textarea {
+                    .el-textarea__inner {
+                        background: fade(#536268, 20);
+                        border-color: fade(#536268, 20);
+                        color: #ffffff;
+                        font-size: 12px;
+                        font-family: "SourceHanSans";
+
+                        &::placeholder {
+                            font-size: 12px;
+                            color: #606769;
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+.search-input {
+    .el-input {
+        line-height: 33px;
+        height: 33px;
+
+        &.el-input--prefix .el-input__inner {
+            //   padding-left: 30px;
+        }
+
+        .el-input__icon {
+            height: 33px;
+            line-height: 33px;
+        }
+    }
+
+    .el-select {
+        line-height: 33px;
+
+        .el-input {
+            .el-input__suffix {
+                padding: 0 8px;
+                background: transparent;
+                right: 0;
+            }
+
+            .el-input__icon {
+                line-height: 33px;
+                height: 33px;
+            }
+
+            .el-input__inner {
+                background: fade(#536268, 20);
+                border-color: fade(#536268, 20);
+                height: 33px;
+                line-height: 33px;
+                padding-left: 30px;
+
+                &::placeholder {
+                    text-align: right;
+                    padding-right: 8px;
+                    color: @gray;
+                }
+            }
+        }
+
+        .el-select__tags .el-tag {
+            background-color: fade(@darkBlue, 50);
+            color: @white;
+
+            .el-icon-close {
+                background-color: fade(@darkBlue, 50);
+            }
+        }
+    }
+
+    .el-input__prefix {
+        // left: unset;
+        // right: 5px;
+    }
+
+    .el-input__suffix {
+        right: 30px;
+    }
+}
+
+.select {
+    &.el-select__popper.el-popper[role="tooltip"] {
+        background: fade(#121d1c, 95);
+        border: 1px solid fade(#121d1c, 95);
+    }
+
+    .el-select-dropdown {
+        &.is-multiple .el-select-dropdown__item.selected {
+            background-color: fade(@darkBlue, 20);
+            color: #fff;
+            font-weight: 400;
+            border: 1px solid @darkBlue;
+        }
+
+        .el-select-dropdown__item {
+            color: @font-color;
+
+            &:hover {
+                background-color: fade(@darkBlue, 20);
+                color: #fff;
+            }
+
+            &.selected {
+                background-color: fade(@darkBlue, 20);
+                color: #fff;
+                border: 1px solid #05bb4c;
+                font-weight: 500;
+            }
+        }
+    }
+
+    &.el-popper.is-light .el-popper__arrow::before {
+        background: fade(#121d1c, 95);
+        border: 1px solid fade(#121d1c, 95) !important;
+    }
+}
+
+.date-select {
+    .el-picker-panel__icon-btn {
+        color: #b3b3b3;
+    }
+
+    .el-date-picker__header-label {
+        color: #fff;
+    }
+
+    .el-month-table td.disabled .cell {
+        background-color: #787b7f;
+    }
+
+    .el-date-table td.disabled div {
+        background-color: #74777c;
+    }
+
+    .el-input {
+        .el-input__inner {
+            background: fade(#536268, 20);
+            border-color: fade(#536268, 20);
+            height: 33px;
+            line-height: 33px;
+            padding-left: 30px;
+            color: #ffffff;
+            font-size: 12px;
+            font-family: "SourceHanSans";
+
+            &::placeholder {
+                font-size: 12px;
+                color: #606769;
+            }
+        }
+    }
+
+    &.el-picker__popper.el-popper[role="tooltip"] {
+        background: fade(#121d1c, 95);
+        border: 1px solid fade(#121d1c, 95);
+
+        .el-picker-panel {
+            background: transparent;
+            color: @white;
+
+            .el-date-table {
+                th {
+                    color: @white;
+                }
+
+                td {
+
+                    &.next-month,
+                    &.prev-month {
+                        color: @gray;
+                    }
+
+                    &.available:hover {
+                        color: @darkBlue;
+                    }
+
+                    &.today span {
+                        color: @blue;
+                    }
+
+                    &.today.end-date span,
+                    &.today.start-date span {
+                        color: #fff;
+                    }
+
+                    &.current:not(.disabled) span {
+                        color: @white;
+                        background: @darkBlue;
+                    }
+                }
+            }
+
+            .el-year-table td.today .cell {
+                color: @white;
+            }
+
+            .el-date-picker__editor-wrap {
+                .el-time-panel {
+                    .el-time-panel__content {
+                        background: fade(#121d1c, 95);
+                    }
+
+                    .el-time-panel__footer {
+                        background: fade(#121d1c, 95);
+                    }
+                }
+            }
+
+            .el-picker-panel__footer {
+                background: fade(#121d1c, 95);
+            }
+        }
+    }
+
+    .el-select-dropdown {
+        &.is-multiple .el-select-dropdown__item.selected {
+            background-color: fade(@darkBlue, 100);
+            color: #fff;
+            font-weight: 400;
+        }
+
+        .el-select-dropdown__item {
+            color: @font-color;
+
+            &:hover {
+                background-color: fade(@darkBlue, 100);
+                color: #fff;
+            }
+
+            &.selected {
+                background-color: fade(@darkBlue, 100);
+                color: #fff;
+            }
+        }
+    }
+
+    &.el-popper.is-light .el-popper__arrow::before {
+        background: fade(#121d1c, 95);
+        border: 1px solid fade(#121d1c, 95) !important;
+    }
+
+    .el-picker-panel__icon-btn:hover {
+        color: @darkBlue;
+    }
+
+    .el-date-picker__header-label.active,
+    .el-date-picker__header-label:hover {
+        color: @darkBlue;
+    }
+
+    .el-year-table td .cell:hover,
+    .el-year-table td.current:not(.disabled) .cell {
+        color: @darkBlue;
+    }
+
+    .el-month-table td .cell:hover {
+        color: @darkBlue;
+    }
+
+    .el-month-table td.current:not(.disabled) .cell {
+        color: @darkBlue;
+    }
+
+}
+
+// .el-input-number {
+//   .el-input {
+//     .el-input__inner {
+//       background: fade(#536268, 20);
+//       border-color: fade(#536268, 20);
+//       height: 33px;
+//       line-height: 33px;
+//       padding-left: 30px;
+//       color: #ffffff;
+//       font-size: 12px;
+//       font-family: "SourceHanSans";
+
+//       &::placeholder {
+//         font-size: 12px;
+//         color: #606769;
+//       }
+//     }
+//   }
+// }
+
+.el-checkbox-group {
+    .el-checkbox {
+        &.is-checked {
+            .el-checkbox__input {
+
+                &.is-checked {
+                    .el-checkbox__inner {
+                        background-color: @darkBlue;
+                        border-color: @darkBlue;
+                    }
+                }
+            }
+
+            .el-checkbox__label {
+                color: @darkBlue;
+            }
+        }
+
+        .el-checkbox__input {
+            .el-checkbox__inner {
+                background-color: transparent;
+                border-color: #606769;
+            }
+        }
+
+        .el-checkbox__label {
+            color: @gray-l;
+        }
+    }
+}

+ 19 - 0
src/assets/styles/blueStyle/main.less

@@ -0,0 +1,19 @@
+@import "./app.less";
+
+@import "./color.less";
+
+@import "./svg.less";
+
+@import "./table-form.less";
+
+@import "./form.less";
+
+@import "./button.less";
+
+@import "./dialog.less";
+
+@import "./table.less";
+
+
+// el 样式 重写
+@import "./el-override/index.less";

+ 298 - 0
src/assets/styles/blueStyle/svg.less

@@ -0,0 +1,298 @@
+.svg-icon {
+    font-size: 0;
+    line-height: 0;
+
+    svg {
+        width: 21px;
+        height: 21px;
+
+        use {
+            fill: #fff;
+        }
+    }
+
+    &.svg-icon-sm {
+        line-height: 0;
+        width: 14.8px;
+        height: 14.8px;
+
+        svg {
+            width: 14.8px;
+            height: 14.8px;
+        }
+    }
+
+    &.svg-icon-md {
+        line-height: 0;
+        width: 21px;
+        height: 21px;
+
+        svg {
+            width: 21px;
+            height: 21px;
+        }
+    }
+
+    &.svg-icon-lg {
+        line-height: 0;
+        width: 33.3px;
+        height: 33.3px;
+
+        svg {
+            width: 33.3px;
+            height: 33.3px;
+        }
+    }
+
+    &.svg-icon-llg {
+        line-height: 0;
+        width: 44.4px;
+        height: 44.4px;
+
+        svg {
+            width: 44.4px;
+            height: 44.4px;
+        }
+    }
+
+    &.svg-icon-gray {
+        svg {
+            use {
+                fill: @gray;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @gray);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-gray-l {
+        svg {
+            use {
+                fill: @gray-l;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @gray-l);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-green {
+        svg {
+            use {
+                fill: @darkBlue;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @darkBlue);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-red {
+        svg {
+            use {
+                fill: @red;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @red);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-blue {
+        svg {
+            use {
+                fill: @darkBlue;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @darkBlue);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-darkblue {
+        svg {
+            use {
+                fill: @darkBlue2;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @darkBlue2);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-yellow {
+        svg {
+            use {
+                fill: @yellow;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @yellow);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-lightyellow {
+        svg {
+            use {
+                fill: #F8DE5B;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px #F8DE5B);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-orange {
+        svg {
+            use {
+                fill: @orange;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @orange);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-purple {
+        svg {
+            use {
+                fill: @purple;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @purple);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-write {
+        svg {
+            use {
+                fill: @write;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @write);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-black {
+        svg {
+            use {
+                fill: @black;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @black);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-pink {
+        svg {
+            use {
+                fill: @pink;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px @pink);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-skyBlue {
+        svg {
+            use {
+                fill: #1c99ff;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px #1c99ff);
+                }
+            }
+        }
+    }
+
+    &.svg-icon-orange1 {
+        svg {
+            use {
+                fill: #ff8300;
+            }
+        }
+
+        &.svg-shadow {
+            svg {
+                use {
+                    filter: drop-shadow(0 0 6px #ff8300);
+                }
+            }
+        }
+    }
+
+}

+ 29 - 0
src/assets/styles/blueStyle/table-form.less

@@ -0,0 +1,29 @@
+.table-form {
+  width: 100%;
+  border-collapse: collapse;
+
+  tr {
+    background: transparent;
+
+    &:nth-child(2n) {
+      background: fade(@darkgray, 20);
+    }
+    td {
+      padding: 10px;
+      border: 0px;
+      font-size: 12px;
+      text-align: center;
+
+      &.text {
+        min-width: 13vh;
+      }
+
+      &.value {
+        min-width: 6vh;
+      }
+      &.unit {
+        min-width: 40px;
+      }
+    }
+  }
+}

+ 87 - 0
src/assets/styles/blueStyle/table.less

@@ -0,0 +1,87 @@
+// 自定义table
+@titleGray: #9ca5a8;
+@rowGray : #606769;
+@darkBack : #536268;
+
+.el-table td.el-table__cell,
+.el-table th.el-table__cell.is-leaf {
+    border-bottom: 0 !important;
+}
+
+.economicTable .el-table__header-wrapper tr .cell {
+    color: #bcd2ff;
+}
+
+.el-table th.el-table__cell {
+    border-right: 1px solid rgba(0, 0, 0, 0.8) !important;
+}
+
+.com-table {
+    width: 100%;
+    border-collapse: collapse;
+
+    thead {
+        tr {
+            display: table;
+            table-layout: fixed;
+            width: 100%;
+
+            th {
+                background-color: #132347;
+                height: 30px;
+                line-height: 30px;
+                color: #c2e1ff;
+                font-weight: 400;
+                font-size: 14px;
+                position: sticky;
+                top: 0;
+                cursor: pointer;
+
+                &.light,
+                &.always-light {
+                    color: #67b9ff;
+                }
+            }
+        }
+    }
+
+    tbody {
+        display: block;
+
+        tr {
+            display: table;
+            table-layout: fixed;
+            width: 100%;
+
+            &:nth-child(2n) {
+                background-color: fade(@rowGray, 20%);
+            }
+
+            td {
+                padding: 4px;
+                color: #c2e1ff;
+                text-align: center;
+                font-size: 14px;
+                white-space: nowrap;
+                overflow: hidden;
+                text-overflow: ellipsis;
+
+                &>span {
+                    white-space: nowrap;
+                    overflow: hidden;
+                    text-overflow: ellipsis;
+                }
+
+                &.light,
+                &.always-light {
+                    color: #67b9ff !important;
+                }
+
+                &.num {
+                    font-family: "Bicubik";
+                    font-weight: 400;
+                }
+            }
+        }
+    }
+}

+ 98 - 90
src/assets/styles/button.less

@@ -1,109 +1,117 @@
 .btn {
-  //   height: 33px;
-  //   line-height: 33px;
-  //   flex: 0 0 auto;
-  background-color: transparent !important;
-  border: 1px solid @darkgray !important;
-  //   padding: 0 1.481vh;
-  color: @gray !important;
-  font-size: @fontsize-s !important;
-  //   cursor: pointer;
+    //   height: 33px;
+    //   line-height: 33px;
+    //   flex: 0 0 auto;
+    background-color: transparent !important;
+    border: 1px solid @darkgray !important;
+    //   padding: 0 1.481vh;
+    color: @gray !important;
+    font-size: @fontsize-s !important;
+    //   cursor: pointer;
 
-  &:hover {
-    border-color: @green !important;
-    color: @green !important;
-    background: fade(@green, 20) !important;
-  }
+    &:hover {
+        border-color: @green !important;
+        color: @green !important;
+        background: fade(@green, 20) !important;
+    }
 
-  &.green {
-    border-color: @green !important;
-    color: @green !important;
-    background: fade(@green, 20) !important;
-  }
+    &.green {
+        border-color: @green !important;
+        color: @green !important;
+        background: fade(@green, 20) !important;
+    }
 
-  & + button {
-    margin-left: 16px;
-  }
+    &+button {
+        margin-left: 16px;
+    }
 }
-.tabCut1 {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  margin: 10px 0px 0px 20px;
 
-  .tabCut-item {
-    width: 93px;
-    height: 23px;
+.tabCut1 {
     display: flex;
+    flex-direction: row;
     align-items: center;
-    justify-content: center;
-    margin-right: 10px;
-    background: fade(@green, 70);
-    color: fade(@white, 90);
-    position: relative;
-    font-size: 12px;
-    &.green1 {
-      background: fade(@green, 90);
-      color: fade(@white, 90);
-    }
+    margin: 10px 0px 0px 20px;
 
-    &.green1:before {
-      content: "";
-      width: 1px;
-      height: 7px;
-      background-color: #ffffff;
-      position: absolute;
-      left: 0;
-    }
+    .tabCut-item {
+        width: 93px;
+        height: 23px;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        margin-right: 10px;
+        background: fade(@green, 70);
+        color: fade(@white, 90);
+        position: relative;
+        font-size: 12px;
+
+        &.green1 {
+            background: fade(@green, 90);
+            color: fade(@white, 90);
+        }
 
-    &.green1:after {
-      content: "";
-      width: 1px;
-      height: 7px;
-      background-color: #ffffff;
-      position: absolute;
-      right: 0;
+        &.green1:before {
+            content: "";
+            width: 1px;
+            height: 7px;
+            background-color: #ffffff;
+            position: absolute;
+            left: 0;
+        }
+
+        &.green1:after {
+            content: "";
+            width: 1px;
+            height: 7px;
+            background-color: #ffffff;
+            position: absolute;
+            right: 0;
+        }
     }
-  }
 }
-.tabCut2 {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  margin: 10px 0px 0px 20px;
 
-  .tabCut-item {
-    width: 110px;
-    height: 25px;
+.tabCut2 {
     display: flex;
+    flex-direction: row;
     align-items: center;
-    justify-content: center;
-    // margin-right: 10px;
-    background: fade(@green, 70);
-    color: fade(@white, 90);
-    position: relative;
-    font-size: 12px;
-    &.green1 {
-      background: fade(@green, 80);
-      color: fade(@white, 90);
-    }
+    margin: 10px 0px 0px 20px;
 
-    &.green1:before {
-      content: "";
-      width: 1px;
-      height: 7px;
-      background-color: #ffffff;
-      position: absolute;
-      left: 0;
-    }
+    .tabCut-item {
+        width: 110px;
+        height: 25px;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        // margin-right: 10px;
+        background: fade(@green, 70);
+        color: fade(@white, 90);
+        position: relative;
+        font-size: 12px;
+
+        &.green1 {
+            background: fade(@green, 80);
+            color: fade(@white, 90);
+        }
 
-    &.green1:after {
-      content: "";
-      width: 1px;
-      height: 7px;
-      background-color: #ffffff;
-      position: absolute;
-      right: 0;
+        &.green1:before {
+            content: "";
+            width: 1px;
+            height: 7px;
+            background-color: #ffffff;
+            position: absolute;
+            left: 0;
+        }
+
+        &.green1:after {
+            content: "";
+            width: 1px;
+            height: 7px;
+            background-color: #ffffff;
+            position: absolute;
+            right: 0;
+        }
     }
-  }
 }
+
+.el-date-editor {
+    background: transparent;
+}

+ 3 - 2
src/assets/styles/common/color.less

@@ -2,7 +2,7 @@
 @yellow: #edbf03;
 @blue: #1a93cf;
 // @darkBlue: #4b55ae;
-@darkBlue: #1974ff;
+@darkBlue: #2169c3;
 @darkBlue2: #1529E9;
 @darkgray: #606769;
 @gray: #606769;
@@ -18,10 +18,11 @@
 @pink: #c531c7;
 
 @greenLinearTop: linear-gradient(to top, fade(@green, 50%), fade(@green, 0));
+@blueLinearTop: linear-gradient(to top, fade(@darkBlue, 50%), fade(@darkBlue, 0));
 @greenLinearRight: linear-gradient(to right, fade(@green, 50%), fade(@green, 0));
 @redLinearRight: linear-gradient(to right, fade(@red, 50%), fade(@red, 0));
 
 @deepblueLinearTop: linear-gradient(to top, fade(@deepblue, 50%), fade(@deepblue, 0));
 @deepblueLinearRight: linear-gradient(to right, fade(@deepblue, 50%), fade(@deepblue, 0));
 
-@font-color: #7a8385;
+@font-color: #7a8385;

+ 366 - 347
src/assets/styles/el-override/el-input.less

@@ -1,433 +1,452 @@
 @picker-bg-color: fade(#121d1c, 95);
 
 body {
-  .el-input__inner {
-    background: fade(@gray, 20);
-    color: @gray-l;
-  }
-
-  .el-input {
-    &.is-disabled .el-input__inner {
-      background-color: fade(@gray-l, 20);
-      border-color: @gray;
-      color: @gray;
-      cursor: not-allowed;
+    .el-input__inner {
+        background: fade(@gray, 20);
+        color: @gray-l;
     }
 
-    &.is-in-pagination .el-input__inner[type="number"] {
-      width: 48px;
-    }
+    .el-input {
+        &.is-disabled .el-input__inner {
+            background-color: fade(@gray-l, 20);
+            border-color: @gray;
+            color: @gray;
+            cursor: not-allowed;
+        }
 
-    .el-input__inner[type="number"] {
-      width: 200px;
+        &.is-in-pagination .el-input__inner[type="number"] {
+            width: 48px;
+        }
 
-      &::-webkit-textfield-decoration-container {
-        appearance: none;
-      }
+        .el-input__inner[type="number"] {
+            width: 200px;
 
-      &::-webkit-inner-spin-button,
-      &::-webkit-outer-spin-button {
-        appearance: none;
-      }
-    }
-  }
-
-  // 数字组件
-  .el-input-number {
-    &.is-controls-right {
-      .el-input-number__increase {
-        border-bottom: 1px solid @gray;
-      }
-
-      .el-input-number__decrease,
-      .el-input-number__increase {
-        line-height: 15px;
-        color: @gray-l;
-        background: fade(@gray, 40);
-        border-left: 1px solid @gray;
-      }
-    }
-  }
-  .el-input-number {
-    // width: 100%;
-    .el-input-number__decrease,
-    .el-input-number__increase {
-      background: rgba(67, 81, 107, 0.2) !important;
-
-      position: absolute;
-      z-index: 10;
-      border: 0;
-      // height: 33px;
-      // line-height: 33px;
-      &:hover {
-        color: #05be4c;
-      }
+            &::-webkit-textfield-decoration-container {
+                appearance: none;
+            }
+
+            &::-webkit-inner-spin-button,
+            &::-webkit-outer-spin-button {
+                appearance: none;
+            }
+        }
     }
-  }
-
-  // 日期组件
-  .el-date-editor {
-    --el-date-editor-daterange-width: 480px;
-    &.is-active,
-    &.is-active:hover,
-    &.is-focus .el-input__inner {
-      border-color: @green;
+
+    // 数字组件
+    .el-input-number {
+        &.is-controls-right {
+            .el-input-number__increase {
+                border-bottom: 1px solid @gray;
+            }
+
+            .el-input-number__decrease,
+            .el-input-number__increase {
+                line-height: 15px;
+                color: @gray-l;
+                background: fade(@gray, 40);
+                border-left: 1px solid @gray;
+            }
+        }
     }
 
-    // el datetimerange Start
-    &.el-date-editor--datetimerange {
-      border: 1px solid fade(@gray, 20);
-      height: 33px;
-      padding: 0 8px;
-      width: 369px;
+    .el-input-number {
 
-      .el-range-separator {
-        color: @gray-l;
-        line-height: 33px;
-      }
+        // width: 100%;
+        .el-input-number__decrease,
+        .el-input-number__increase {
+            background: rgba(67, 81, 107, 0.2) !important;
 
-      .el-range-input {
-        flex-basis: 145px;
-        line-height: 33px;
-        background: transparent;
-        color: @gray-l;
-        &::placeholder {
-          text-align: center;
-          color: @gray-l;
+            position: absolute;
+            z-index: 10;
+            border: 0;
+
+            // height: 33px;
+            // line-height: 33px;
+            &:hover {
+                color: #05be4c;
+            }
         }
-      }
     }
-    // el datetimerange End
-  }
 
-  // 单选框
-  .el-radio {
-    color: @gray-l;
+    // 日期组件
+    .el-date-editor {
+        --el-date-editor-daterange-width: 480px;
+        background: transparent;
 
-    &.is-checked {
-      .el-radio__inner {
-        background: @green;
-        border-color: @green;
-      }
+        &.is-active,
+        &.is-active:hover,
+        &.is-focus .el-input__inner {
+            border-color: @green;
+        }
 
-      .el-radio__label {
-        color: @green;
-      }
-    }
+        // el datetimerange Start
+        &.el-date-editor--datetimerange {
+            border: 1px solid fade(@gray, 20);
+            height: 33px;
+            padding: 0 8px;
+            width: 369px;
 
-    &.is-bordered.is-checked {
-      border-color: @green;
-    }
+            .el-range-separator {
+                color: @gray-l;
+                line-height: 33px;
+            }
 
-    &:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner {
-      box-shadow: 0 0 2px 2px @green;
-    }
-  }
+            .el-range-input {
+                flex-basis: 145px;
+                line-height: 33px;
+                background: transparent;
+                color: @gray-l;
 
-  // 单选框组
-  .el-radio-group {
-    height: 33px;
-    & > .el-radio {
-      line-height: 33px;
-    }
-  }
-
-  .el-checkbox {
-    height: 33px;
-    line-height: 33px;
-    color: @gray-l;
-
-    &.is-bordered {
-      height: 33px;
-      line-height: 33px;
-      padding: 0px 20px;
-      border-color: @gray;
-
-      &.is-checked {
-        border-color: @green;
-      }
-    }
+                &::placeholder {
+                    text-align: center;
+                    color: @gray-l;
+                }
+            }
+        }
 
-    .el-checkbox__inner {
-      background: fade(@gray, 20);
-      border-color: fade(@gray, 40);
-    }
-    .el-checkbox__input {
-      display: block;
-    }
-    .el-checkbox__input.is-checked + .el-checkbox__label {
-      color: @green;
+        // el datetimerange End
     }
 
-    .el-checkbox__input.is-checked .el-checkbox__inner,
-    .el-checkbox__input.is-indeterminate .el-checkbox__inner {
-      background-color: @green;
-      border-color: @green;
-    }
+    // 单选框
+    .el-radio {
+        color: @gray-l;
 
-    .el-checkbox__input.is-focus .el-checkbox__inner {
-      border-color: @green;
-    }
-  }
-  .warn-table {
-    .el-checkbox__input.is-checked + .el-checkbox__label {
-      color: #d35400;
-    }
+        &.is-checked {
+            .el-radio__inner {
+                background: @green;
+                border-color: @green;
+            }
 
-    .el-checkbox__input.is-checked .el-checkbox__inner,
-    .el-checkbox__input.is-indeterminate .el-checkbox__inner {
-      background-color: #d35400;
-      border-color: #d35400;
-    }
+            .el-radio__label {
+                color: @green;
+            }
+        }
 
-    .el-checkbox__input.is-focus .el-checkbox__inner {
-      border-color: #d35400;
-    }
-  }
-  // 树组件
-  .el-tree {
-    color: @gray-l;
-    background: fade(@gray, 20);
-
-    .el-checkbox__inner {
-      background: transparent;
-      border-color: @gray;
-    }
+        &.is-bordered.is-checked {
+            border-color: @green;
+        }
 
-    .el-tree-node:focus > .el-tree-node__content {
-      background: transparent;
+        &:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner {
+            box-shadow: 0 0 2px 2px @green;
+        }
     }
 
-    .el-checkbox__input.is-disabled .el-checkbox__inner {
-      background: @gray;
-      border-color: @gray;
-    }
+    // 单选框组
+    .el-radio-group {
+        height: 33px;
 
-    &.el-tree--highlight-current
-      .el-tree-node.is-current
-      > .el-tree-node__content {
-      background: transparent;
-      color: @green;
+        &>.el-radio {
+            line-height: 33px;
+        }
     }
 
-    .el-tree-node__content:hover,
-    .el-upload-list__item:hover {
-      background: transparent;
-      color: @green;
-    }
+    .el-checkbox {
+        height: 33px;
+        line-height: 33px;
+        color: @gray-l;
+
+        &.is-bordered {
+            height: 33px;
+            line-height: 33px;
+            padding: 0px 20px;
+            border-color: @gray;
+
+            &.is-checked {
+                border-color: @green;
+            }
+        }
+
+        .el-checkbox__inner {
+            background: fade(@gray, 20);
+            border-color: fade(@gray, 40);
+        }
 
-    .el-checkbox__inner:hover {
-      border-color: @green;
+        .el-checkbox__input {
+            display: block;
+        }
+
+        .el-checkbox__input.is-checked+.el-checkbox__label {
+            color: @green;
+        }
+
+        .el-checkbox__input.is-checked .el-checkbox__inner,
+        .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+            background-color: @green;
+            border-color: @green;
+        }
+
+        .el-checkbox__input.is-focus .el-checkbox__inner {
+            border-color: @green;
+        }
     }
 
-    .el-checkbox__input.is-focus .el-checkbox__inner {
-      border-color: @green;
+    .warn-table {
+        .el-checkbox__input.is-checked+.el-checkbox__label {
+            color: #d35400;
+        }
+
+        .el-checkbox__input.is-checked .el-checkbox__inner,
+        .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+            background-color: #d35400;
+            border-color: #d35400;
+        }
+
+        .el-checkbox__input.is-focus .el-checkbox__inner {
+            border-color: #d35400;
+        }
     }
 
-    .el-checkbox__input.is-checked .el-checkbox__inner,
-    .el-checkbox__input.is-indeterminate .el-checkbox__inner {
-      background: @green;
-      border-color: @green;
+    // 树组件
+    .el-tree {
+        color: @gray-l;
+        background: fade(@gray, 20);
+
+        .el-checkbox__inner {
+            background: transparent;
+            border-color: @gray;
+        }
+
+        .el-tree-node:focus>.el-tree-node__content {
+            background: transparent;
+        }
+
+        .el-checkbox__input.is-disabled .el-checkbox__inner {
+            background: @gray;
+            border-color: @gray;
+        }
+
+        &.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
+            background: transparent;
+            color: @green;
+        }
+
+        .el-tree-node__content:hover,
+        .el-upload-list__item:hover {
+            background: transparent;
+            color: @green;
+        }
+
+        .el-checkbox__inner:hover {
+            border-color: @green;
+        }
+
+        .el-checkbox__input.is-focus .el-checkbox__inner {
+            border-color: @green;
+        }
+
+        .el-checkbox__input.is-checked .el-checkbox__inner,
+        .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+            background: @green;
+            border-color: @green;
+        }
     }
-  }
 
-  // Cascader 级联选择器
-  .el-cascader {
-    line-height: 30px;
-    .el-cascader__tags {
-      .el-tag {
-        color: white;
-        background-color: fade(@green, 50);
+    // Cascader 级联选择器
+    .el-cascader {
+        line-height: 30px;
+
+        .el-cascader__tags {
+            .el-tag {
+                color: white;
+                background-color: fade(@green, 50);
+
+                .el-icon-close {
+                    background-color: fade(@green, 50);
+                }
+            }
+        }
 
-        .el-icon-close {
-          background-color: fade(@green, 50);
+        .el-input__suffix {
+            right: 0px;
         }
-      }
     }
 
-    .el-input__suffix {
-      right: 0px;
+    .el-select {
+        .el-input.is-focus .el-input__inner {
+            border-color: @green;
+        }
+
+        .el-input__inner:focus {
+            border-color: @green;
+        }
     }
-  }
 
-  .el-select {
-    .el-input.is-focus .el-input__inner {
-      border-color: @green;
+    .el-select .el-select__tags .el-tag {
+        background: #000;
     }
-    .el-input__inner:focus {
-      border-color: @green;
+
+    .el-select .el-select__tags .el-tag .el-icon-close {
+        background-color: transparent;
+        border: 1px solid #fff;
     }
-  }
-  .el-select .el-select__tags .el-tag {
-    background: #000;
-  }
-  .el-select .el-select__tags .el-tag .el-icon-close {
-    background-color: transparent;
-    border: 1px solid #fff;
-  }
-  .el-popper {
-    &.el-cascader__dropdown[role="tooltip"] {
-      background: @picker-bg-color;
-      border-color: @picker-bg-color;
-
-      .el-cascader-menu {
-        border-color: @gray;
-      }
 
-      .el-cascader-node:not(.is-disabled):focus,
-      .el-cascader-node:not(.is-disabled):hover {
-        background: fade(@green, 20);
-        color: @green;
-      }
+    .el-popper {
+        &.el-cascader__dropdown[role="tooltip"] {
+            background: @picker-bg-color;
+            border-color: @picker-bg-color;
 
-      .el-cascader-node.in-active-path,
-      .el-cascader-node.is-active,
-      .el-cascader-node.is-selectable.in-checked-path {
-        color: @green;
-      }
-    }
+            .el-cascader-menu {
+                border-color: @gray;
+            }
 
-    &.el-select__popper[role="tooltip"] {
-      border-color: @picker-bg-color;
-      background: @picker-bg-color;
+            .el-cascader-node:not(.is-disabled):focus,
+            .el-cascader-node:not(.is-disabled):hover {
+                background: fade(@green, 20);
+                color: @green;
+            }
 
-      .el-cascader-menu {
-        border-color: @gray;
-      }
+            .el-cascader-node.in-active-path,
+            .el-cascader-node.is-active,
+            .el-cascader-node.is-selectable.in-checked-path {
+                color: @green;
+            }
+        }
 
-      .el-select-dropdown__item.hover,
-      .el-select-dropdown__item:hover {
-        background: fade(@green, 20);
-        color: @green;
-      }
+        &.el-select__popper[role="tooltip"] {
+            border-color: @picker-bg-color;
+            background: @picker-bg-color;
 
-      .el-select-dropdown__item.selected {
-        background: transparent;
-        color: @green;
-      }
+            .el-cascader-menu {
+                border-color: @gray;
+            }
+
+            .el-select-dropdown__item.hover,
+            .el-select-dropdown__item:hover {
+                background: fade(@green, 20);
+                color: @green;
+            }
+
+            .el-select-dropdown__item.selected {
+                background: transparent;
+                color: @green;
+            }
+        }
     }
-  }
 }
 
 .el-picker__popper.el-popper[role="tooltip"] {
-  border-color: @picker-bg-color !important;
-  background: @picker-bg-color !important;
+    border-color: @picker-bg-color !important;
+    background: @picker-bg-color !important;
 }
 
 .el-picker-panel {
-  // el datetimerange  picker Start
-  &.el-date-range-picker {
-    color: @gray-l;
-    background: transparent;
-
-    .el-date-range-picker__time-header {
-      border-color: @gray;
 
-      .el-icon-arrow-right {
+    // el datetimerange  picker Start
+    &.el-date-range-picker {
         color: @gray-l;
-      }
+        background: transparent;
 
-      .el-input__inner {
-        background: fade(@gray, 20);
-        color: @gray-l;
-        border-color: @gray;
-      }
+        .el-date-range-picker__time-header {
+            border-color: @gray;
 
-      .el-date-range-picker__time-picker-wrap {
-        .el-time-panel {
-          background-color: @picker-bg-color;
+            .el-icon-arrow-right {
+                color: @gray-l;
+            }
 
-          .el-time-spinner__item.active:not(.disabled) {
-            color: @green;
-          }
-          .el-time-spinner__item:hover:not(.disabled):not(.active) {
-            background: transparent;
-            color: @green;
-          }
-        }
+            .el-input__inner {
+                background: fade(@gray, 20);
+                color: @gray-l;
+                border-color: @gray;
+            }
 
-        .el-time-panel__btn.confirm {
-          color: @green;
-        }
+            .el-date-range-picker__time-picker-wrap {
+                .el-time-panel {
+                    background-color: @picker-bg-color;
 
-        .el-time-panel__btn.cancel {
-          color: @gray;
-        }
-      }
-    }
+                    .el-time-spinner__item.active:not(.disabled) {
+                        color: @green;
+                    }
 
-    .el-date-range-picker__content {
-      border-color: @gray;
+                    .el-time-spinner__item:hover:not(.disabled):not(.active) {
+                        background: transparent;
+                        color: @green;
+                    }
+                }
 
-      .el-date-table {
-        th {
-          color: @gray-l;
-        }
+                .el-time-panel__btn.confirm {
+                    color: @green;
+                }
 
-        td {
-          &.available:hover {
-            color: @green;
-          }
+                .el-time-panel__btn.cancel {
+                    color: @gray;
+                }
+            }
+        }
 
-          &.in-range div,
-          &.in-range div:hover {
-            background: fade(@gray, 40);
-          }
+        .el-date-range-picker__content {
+            border-color: @gray;
+
+            .el-date-table {
+                th {
+                    color: @gray-l;
+                }
+
+                td {
+                    &.available:hover {
+                        color: @green;
+                    }
+
+                    &.in-range div,
+                    &.in-range div:hover {
+                        background: fade(@gray, 40);
+                    }
+
+                    &.end-date span,
+                    &.start-date span {
+                        background: @green;
+                    }
+
+                    &.today {
+                        span {
+                            color: @green;
+                        }
+
+                        &.end-date span,
+                        &.start-date span {
+                            color: @white;
+                        }
+                    }
+
+                    &.next-month,
+                    &.prev-month {
+                        color: @gray;
+                    }
+                }
+            }
+        }
+    }
 
-          &.end-date span,
-          &.start-date span {
-            background: @green;
-          }
+    // el datetimerange  picker End
 
-          &.today {
-            span {
-              color: @green;
-            }
+    .el-picker-panel__body {
+        border-color: @gray;
+    }
 
-            &.end-date span,
-            &.start-date span {
-              color: @white;
-            }
-          }
+    .el-picker-panel__footer {
+        background: transparent;
+        border-color: @gray;
 
-          &.next-month,
-          &.prev-month {
+        .el-button--text {
             color: @gray;
-          }
         }
-      }
-    }
-  }
-  // el datetimerange  picker End
 
-  .el-picker-panel__body {
-    border-color: @gray;
-  }
-
-  .el-picker-panel__footer {
-    background: transparent;
-    border-color: @gray;
+        .el-button.is-plain {
+            background: transparent;
+            border-color: @green;
+            color: @green;
+        }
+    }
 
-    .el-button--text {
-      color: @gray;
+    .el-time-panel__btn.confirm {
+        color: @green;
     }
 
-    .el-button.is-plain {
-      background: transparent;
-      border-color: @green;
-      color: @green;
+    .el-time-panel__btn.cancel {
+        color: @gray;
     }
-  }
-  .el-time-panel__btn.confirm {
-    color: @green;
-  }
-
-  .el-time-panel__btn.cancel {
-    color: @gray;
-  }
 }
 
 .el-popper__arrow::before {
-  background: fade(#121d1c, 95) !important;
-  border: 1px solid fade(#121d1c, 95) !important;
-}
+    background: fade(#121d1c, 95) !important;
+    border: 1px solid fade(#121d1c, 95) !important;
+}

+ 1 - 3
src/assets/styles/main.less

@@ -2,8 +2,6 @@
 
 @import "./color.less";
 
-@import "./font.less";
-
 @import "./svg.less";
 
 @import "./table-form.less";
@@ -17,4 +15,4 @@
 @import "./table.less";
 
 // el 样式 重写
-@import "./el-override/index.less";
+@import "./el-override/index.less";

BIN
src/assets/weather/icowater.png


BIN
src/assets/weather/sun.png


BIN
src/assets/weather/wea_1.png


BIN
src/assets/weather/wea_2.png


BIN
src/assets/weather/wea_3.png


BIN
src/assets/weather/wea_4.png


BIN
src/assets/weather/wea_5.png


+ 313 - 326
src/components/chart/bar/list-bar-chart2.vue

@@ -1,345 +1,332 @@
 <template>
-  <div>
-    <div
-      class="chart"
-      v-for="index of list.length"
-      :key="index"
-      :id="id + index"
-    ></div>
-  </div>
+    <div>
+        <div class="chart" v-for="index of list.length" :key="index" :id="id + index"></div>
+    </div>
 </template>
 
 <script>
-import util from "@/helper/util.js";
-import partten from "@/helper/partten.js";
-import * as echarts from "echarts";
+    import util from "@/helper/util.js";
+    import partten from "@/helper/partten.js";
+    import * as echarts from "echarts";
 
-export default {
-  name: "percent-pie",
-  componentName: "percent-pie",
-  props: {
-    width: {
-      type: String,
-      default: "100%",
-    },
-    height: {
-      type: String,
-      default: "18.519vh",
-    },
-    //  传入数据
-    list: {
-      type: Array,
-      default: () => [
-        {
-          name: "当日预测电量",
-          value: 103.62,
-          total: 200,
-        },
-        {
-          name: "实际发电量",
-          value: 98.62,
-          total: 100,
-        },
-        {
-          name: "当月预测电量",
-          value: 113.27,
-          total: 100,
-        },
-        {
-          name: "实际发电量",
-          value: 136.72,
-          total: 100,
-        },
-      ],
-    },
-    total: {
-      type: Number,
-      default: 150,
-    },
-    colors: {
-      type: Array,
-      default: () => ["green", "purple"],
-    },
-  },
-  data() {
-    return {
-      id: "",
-      chart: null,
-      firstAnimation: true,
-    };
-  },
-  created() {
-   
-  },
-  computed: {
-    datas() {
-      return this.list.map((t) => {
-        return t.value;
-      });
-    },
-  },
-  methods: {
-    resize() {},
-    initChart(value, index) {
-      var currColor = this.colors[ (value.color?value.color % 2 : index % 2) ];
-      var $dom = document.getElementById(this.id + (index + 1));
-      $dom.style.width = this.width;
-      $dom.style.height = `calc(${this.height} / ${this.list.length} - 4px)`;
-      let chart = echarts.init($dom);
-      let option = {
-        xAxis: {
-          max: value.total,
-          splitLine: {
-            show: false,
-          },
-          axisLine: {
-            show: false,
-          },
-          axisLabel: {
-            show: false,
-          },
-          axisTick: {
-            show: false,
-          },
-        },
-        grid: {
-          left: 16,
-          top: 16, // 设置条形图的边s距
-          right: 0,
-          bottom: 0,
-          containLabel: true,
-        },
-        yAxis: [
-          {
-            type: "category",
-            inverse: true,
-            data: [value],
-            axisLine: {
-              show: false,
-            },
-            axisTick: {
-              show: false,
+    export default {
+        name: "percent-pie",
+        componentName: "percent-pie",
+        props: {
+            width: {
+                type: String,
+                default: "95%",
             },
-            axisLabel: {
-              show: false,
+            height: {
+                type: String,
+                default: "18.519vh",
             },
-          },
-        ],
-        series: [
-          // 内
-          {
-            type: "bar",
-            barWidth: 6,
-            animation: this.firstAnimation,
-            // legendHoverLink: false,
-            // silent: true,
-            itemStyle: {
-              normal: {
-                color: function (params) {
-                  return {
-                    type: "linear",
-                    x: 100,
-                    y: 10,
-                    x2: 1,
-                    y2: 0,
-                    colorStops: [
-                      {
-                        offset: 0,
-                        color: partten.getColor(currColor), // 0% 处的颜色
-                      },
-                      {
-                        offset: 1,
-                        color: partten.getColor(currColor), // 100% 处的颜色
-                      },
-                    ],
-                  };
-                },
-                shadowBlur: 10,
-                shadowColor: "rgba(255, 255, 255, 0.30)",
-              },
-            },
-            label: {
-              // normal: {
-              //   show: true,
-              //   position: [0, util.vh("-20")],
-              //   formatter: function (param) {
-              //     return param.data.name + '      ' + param.data.value;
-              //   },
-              //   textStyle: {
-              //     color:
-              //       this.$store.state.themeName === "dark" ? "#ffffff" : "#000",
-              //     fontSize: 12,
-              //   },
-              // },
-            },
-            data: [value],
-            z: 1,
-            animationEasing: "elasticOut",
-          },
-          // 三角
-          {
-            type: "pictorialBar",
-            symbolPosition: "end",
-            animation: this.firstAnimation,
-            data: [value.value],
-            symbol: "triangle",
-            symbolOffset: [0, -10],
-            symbolSize: [5, 5],
-            symbolRotate: 180,
-            itemStyle: {
-              normal: {
-                borderWidth: 0,
-                color: function (params) {
-                  return partten.getColor(currColor);
-                },
-                // shadowBlur: 2,
-                // shadowColor: "rgba(255, 255, 255, 0.80)",
-              },
+            //  传入数据
+            list: {
+                type: Array,
+                default: () => [{
+                        name: "日发电量",
+                        value: 103.62,
+                        total: 200,
+                    },
+                    {
+                        name: "月发电量",
+                        value: 98.62,
+                        total: 100,
+                    },
+                    {
+                        name: "年发电量",
+                        value: 113.27,
+                        total: 100,
+                    },
+                ],
             },
-          },
-          // 分隔
-          {
-            type: "pictorialBar",
-            itemStyle: {
-              normal: {
-                color:
-                  this.$store.state.themeName === "dark" ? "#20314f" : "#000",
-              },
+            total: {
+                type: Number,
+                default: 150,
             },
-            animation: this.firstAnimation,
-            symbolRepeat: "fixed",
-            symbolMargin: 4,
-            symbol: "rect",
-            symbolClip: true,
-            symbolSize: [1, 8],
-            symbolPosition: "start",
-            symbolOffset: [8, -1],
-            symbolBoundingData: value.total,
-            symbolRotate: -15,
-            data: [value],
-            z: 2,
-            animationEasing: "elasticOut",
-          },
-          // 外边框
-          {
-            type: "pictorialBar",
-            animation: this.firstAnimation,
-            symbol: "rect",
-            symbolBoundingData: value.total,
-            itemStyle: {
-              normal: {
-                color: "none",
-              },
+            colors: {
+                type: Array,
+                default: () => ["#2999a0", "#67b9ff", "#ff6271"],
             },
-            label: {
-              normal: {
-                formatter: (params) => {
-                  return "{gm|}{f|  " + params.data + "}";
-                },
-                rich: {
-                  f: {
-                    color:
-                      this.$store.state.themeName === "dark" ? "#fff" : "#000",
-                    fontSize: 14,
-                    lineHeight: 20,
-                    fontFamily: "Bicubik",
-                  },
-                  gm: {
-                    backgroundColor: partten.getColor(currColor),
-                    width: 4,
-                    height: 4,
-                    lineHeight: 20,
-                    verticalAlign: "middle",
-                    borderRadius: [50, 50, 50, 50],
-                  },
-                },
-                position: "right",
-                distance: 8, // 向右偏移位置
-                show: true,
-              },
+        },
+        data() {
+            return {
+                id: "",
+                chart: null,
+                firstAnimation: true,
+            };
+        },
+        created() {
+
+        },
+        computed: {
+            datas() {
+                return this.list.map((t) => {
+                    return t.value;
+                });
             },
-            // data: [+value.total],
-          },
-          // 外框
-          {
-            type: "bar",
-            animation: this.firstAnimation,
-            name: "外框",
-            barGap: "-120%", // 设置外框粗细
-            data: [
-              {
-                value: value.total,
-                itemStyle: {
-                  normal: {
-                    color: "transparent",
-                    borderColor: partten.getColor(currColor), // [, "#333"],
-                    borderWidth: 1, // 边框宽度
-                    // barBorderRadius: 0, //圆角半径
-                    opacity: 0.5,
-                    label: {
-                      // 标签显示位置
-                      show: false,
-                      position: "top", // insideTop 或者横向的 insideLeft
+        },
+        methods: {
+            resize() {},
+            initChart(value, index) {
+                var currColor = this.colors[(value.color ? value.color % 2 : index % 2)];
+                var $dom = document.getElementById(this.id + (index + 1));
+                $dom.style.width = this.width;
+                $dom.style.height = `calc(${this.height} / ${this.list.length} - 4px)`;
+                let chart = echarts.init($dom);
+                let option = {
+                    xAxis: {
+                        max: value.total,
+                        splitLine: {
+                            show: false,
+                        },
+                        axisLine: {
+                            show: false,
+                        },
+                        axisLabel: {
+                            show: false,
+                        },
+                        axisTick: {
+                            show: false,
+                        },
                     },
-                  },
-                },
-              },
-            ],
-            barWidth: 9,
-          },
-        ],
-      };
+                    grid: {
+                        left: 16,
+                        top: 16, // 设置条形图的边s距
+                        right: 0,
+                        bottom: 0,
+                        containLabel: true,
+                    },
+                    yAxis: [{
+                        type: "category",
+                        inverse: true,
+                        data: [value],
+                        axisLine: {
+                            show: false,
+                        },
+                        axisTick: {
+                            show: false,
+                        },
+                        axisLabel: {
+                            show: false,
+                        },
+                    }, ],
+                    series: [
+                        // 内
+                        {
+                            type: "bar",
+                            barWidth: 6,
+                            animation: this.firstAnimation,
+                            // legendHoverLink: false,
+                            // silent: true,
+                            itemStyle: {
+                                // normal: {
+                                //     color: function (params) {
+                                //         return {
+                                //             type: "linear",
+                                //             x: 100,
+                                //             y: 10,
+                                //             x2: 1,
+                                //             y2: 0,
+                                //             colorStops: [{
+                                //                     offset: 0,
+                                //                     color: partten.getColor(currColor), // 0% 处的颜色
+                                //                 },
+                                //                 {
+                                //                     offset: 1,
+                                //                     color: partten.getColor(currColor), // 100% 处的颜色
+                                //                 },
+                                //             ],
+                                //         };
+                                //     },
+                                //     shadowBlur: 10,
+                                //     shadowColor: "rgba(255, 255, 255, 0.30)",
+                                // },
+                                color: currColor
+                            },
+                            label: {
+                                // normal: {
+                                //   show: true,
+                                //   position: [0, util.vh("-20")],
+                                //   formatter: function (param) {
+                                //     return param.data.name + '      ' + param.data.value;
+                                //   },
+                                //   textStyle: {
+                                //     color:
+                                //       this.$store.state.themeName === "dark" ? "#ffffff" : "#000",
+                                //     fontSize: 12,
+                                //   },
+                                // },
+                            },
+                            data: [value],
+                            z: 1,
+                            animationEasing: "elasticOut",
+                        },
+                        // 三角
+                        {
+                            type: "pictorialBar",
+                            symbolPosition: "end",
+                            animation: this.firstAnimation,
+                            data: [value.value],
+                            symbol: "triangle",
+                            symbolOffset: [0, -10],
+                            symbolSize: [5, 5],
+                            symbolRotate: 180,
+                            label: {
+                                show: false,
+                                position: "right"
+                            },
+                            itemStyle: {
+                                normal: {
+                                    borderWidth: 0,
+                                    color: function (params) {
+                                        return partten.getColor(currColor);
+                                    },
+                                    // shadowBlur: 2,
+                                    // shadowColor: "rgba(255, 255, 255, 0.80)",
+                                },
+                            },
+                        },
+                        // 分隔
+                        {
+                            type: "pictorialBar",
+                            itemStyle: {
+                                normal: {
+                                    color: this.$store.state.themeName === "dark" ? "#20314f" : "#000",
+                                },
+                            },
+                            animation: this.firstAnimation,
+                            symbolRepeat: "fixed",
+                            symbolMargin: 4,
+                            symbol: "rect",
+                            symbolClip: true,
+                            symbolSize: [1, 8],
+                            symbolPosition: "start",
+                            symbolOffset: [8, -1],
+                            symbolBoundingData: value.total,
+                            symbolRotate: -15,
+                            data: [value],
+                            z: 2,
+                            animationEasing: "elasticOut",
+                        },
+                        // 外边框
+                        {
+                            type: "pictorialBar",
+                            animation: this.firstAnimation,
+                            symbol: "rect",
+                            symbolBoundingData: value.total,
+                            itemStyle: {
+                                normal: {
+                                    color: "none",
+                                },
+                            },
+                            label: {
+                                normal: {
+                                    formatter: (params) => {
+                                        return "{gm|}{f|  " + params.data + "}";
+                                    },
+                                    rich: {
+                                        f: {
+                                            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
+                                            fontSize: 14,
+                                            lineHeight: 20,
+                                            fontFamily: "Bicubik",
+                                        },
+                                        gm: {
+                                            backgroundColor: partten.getColor(currColor),
+                                            width: 4,
+                                            height: 4,
+                                            lineHeight: 20,
+                                            verticalAlign: "middle",
+                                            borderRadius: [50, 50, 50, 50],
+                                        },
+                                    },
+                                    position: "right",
+                                    distance: 8, // 向右偏移位置
+                                    show: true,
+                                },
+                            },
+                            // data: [+value.total],
+                        },
+                        // 外框
+                        {
+                            type: "bar",
+                            animation: this.firstAnimation,
+                            name: "外框",
+                            barGap: "-120%", // 设置外框粗细
+                            data: [{
+                                value: value.total,
+                                itemStyle: {
+                                    normal: {
+                                        color: "transparent",
+                                        borderColor: partten.getColor(currColor), // [, "#333"],
+                                        borderWidth: 1, // 边框宽度
+                                        // barBorderRadius: 0, //圆角半径
+                                        opacity: 0.5,
+                                        label: {
+                                            // 标签显示位置
+                                            show: false,
+                                            position: "top", // insideTop 或者横向的 insideLeft
+                                        },
+                                    },
+                                },
+                            }, ],
+                            barWidth: 9,
+                        },
+                    ],
+                };
 
-      chart.clear();
-      chart.setOption(option);
+                chart.clear();
+                chart.setOption(option);
 
-      this.resize = function () {
-        chart.resize();
-      };
+                this.resize = function () {
+                    chart.resize();
+                };
 
-      window.removeEventListener("resize", this.resize);
-      window.addEventListener("resize", this.resize);
-    },
-  },
-  created() {
-    this.id = "pie-chart-" + util.newGUID();
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.$el.style.width = this.width;
-      this.$el.style.height = this.height;
-      this.list.forEach((value, index) => {
-        this.initChart(value, index);
-      });
-      this.firstAnimation = false;
-    });
-  },
-  updated() {
-    this.$nextTick(() => {
-      this.list.forEach((value, index) => {
-        this.initChart(value, index);
-      });
-    });
-  },
-  unmounted() {
-    window.removeEventListener("resize", this.resize);
-  },
+                window.removeEventListener("resize", this.resize);
+                window.addEventListener("resize", this.resize);
+            },
+        },
+        created() {
+            this.id = "pie-chart-" + util.newGUID();
+        },
+        mounted() {
+            this.$nextTick(() => {
+                this.$el.style.width = this.width;
+                this.$el.style.height = this.height;
+                this.list.forEach((value, index) => {
+                    this.initChart(value, index);
+                });
+                this.firstAnimation = false;
+            });
+        },
+        updated() {
+            this.$nextTick(() => {
+                this.list.forEach((value, index) => {
+                    this.initChart(value, index);
+                });
+            });
+        },
+        unmounted() {
+            window.removeEventListener("resize", this.resize);
+        },
 
-  watch: {
-    "$store.state.themeName"() {
-      this.list.forEach((value, index) => {
-        this.initChart(value, index);
-      });
-    },
-  },
-};
+        watch: {
+            "$store.state.themeName"() {
+                this.list.forEach((value, index) => {
+                    this.initChart(value, index);
+                });
+            },
+        },
+    };
 </script>
 
 <style lang="less">
-.chart {
-  width: 100%;
-  height: 100%;
-  display: inline-block;
-  cursor: default;
-}
-</style>
+    .chart {
+        width: 100%;
+        height: 100%;
+        display: inline-block;
+        cursor: default;
+    }
+</style>

+ 27 - 5
src/components/coms/panel/panel-sand-toolbar.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="com-panel-sand">
+    <div class="com-panel-sand" :data-type="$store.state.moreSty">
         <div class="com-panel-sand-header font-sm white">
             {{ title }}<div class="com-panel-sand-sub-title"><slot name="tools"></slot></div>
         </div>
@@ -23,10 +23,35 @@ export default {
 };
 </script>
 <style lang="less">
+.com-panel-sand[data-type~="greenSty"] {
+    border-top: 1px solid @green;
+    &::after {
+        background: @green;
+    }
+    .com-panel-sand-header {
+        border-bottom: 1px solid #15a95266;
+        &::after,
+        &::before {
+            background: @green;
+        }
+    }
+}
+.com-panel-sand[data-type~="blueSty"] {
+    border-top: 1px solid @darkBlue;
+    &::after {
+        background: @darkBlue;
+    }
+    .com-panel-sand-header {
+        border-bottom: 1px solid @darkBlue;
+        &::after,
+        &::before {
+            background: @darkBlue;
+        }
+    }
+}
 .com-panel-sand {
     background: #1a1f2fCC;
     padding: 0 1.481vh 1.481vh 1.481vh;
-    border-top: 1px solid #15a952;
     position: relative;
 
     &::after {
@@ -34,7 +59,6 @@ export default {
         position: absolute;
         width: 5px;
         height: 5px;
-        background: #15a952;
         right: -2.5px;
         top: -2.5px;
     }
@@ -43,7 +67,6 @@ export default {
         text-align: center;
         position: relative;
         padding: 0.833vh 0;
-        border-bottom: 1px solid #15a95266;
 
         &::after,
         &::before {
@@ -52,7 +75,6 @@ export default {
             bottom: -1px;
             width: 15px;
             height: 1px;
-            background: #15a952;
         }
 
         &::after {

+ 27 - 5
src/components/coms/panel/panel-sand.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="com-panel-sand">
+    <div class="com-panel-sand" :data-type="$store.state.moreSty">
         <div class="com-panel-sand-header font-sm white">
             {{ title }}<span class="com-panel-sand-sub-title font-sm gray">{{ subTitle }}</span>
         </div>
@@ -28,10 +28,35 @@ export default {
 };
 </script>
 <style lang="less">
+.com-panel-sand[data-type~="greenSty"] {
+    border-top: 1px solid @green;
+    &::after {
+        background: @green;
+    }
+    .com-panel-sand-header {
+        border-bottom: 1px solid #15a95266;
+        &::after,
+        &::before {
+            background: @green;
+        }
+    }
+}
+.com-panel-sand[data-type~="blueSty"] {
+    border-top: 1px solid @darkBlue;
+    &::after {
+        background: @darkBlue;
+    }
+    .com-panel-sand-header {
+        border-bottom: 1px solid @darkBlue;
+        &::after,
+        &::before {
+            background: @darkBlue;
+        }
+    }
+}
 .com-panel-sand {
     background: #1a1f2fCC;
     padding: 0 1.481vh 1.481vh 1.481vh;
-    border-top: 1px solid #15a952;
     position: relative;
 
     &::after {
@@ -39,7 +64,6 @@ export default {
         position: absolute;
         width: 5px;
         height: 5px;
-        background: #15a952;
         right: -2.5px;
         top: -2.5px;
     }
@@ -48,7 +72,6 @@ export default {
         text-align: center;
         position: relative;
         padding: 0.833vh 0;
-        border-bottom: 1px solid #15a95266;
 
         &::after,
         &::before {
@@ -57,7 +80,6 @@ export default {
             bottom: -1px;
             width: 15px;
             height: 1px;
-            background: #15a952;
         }
 
         &::after {

+ 7 - 1
src/components/coms/panel/panel.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="com-panel" :class="{ 'no-title': !hasTitle, line: showLine }">
+  <div class="com-panel" :data-type="$store.state.moreSty" :class="{ 'no-title': !hasTitle, line: showLine }">
     <div v-if="hasTitle" class="panel-header">
       <div class="panel-title">
         <i v-if="hasIcon" class="panel-icon" :class="icon"></i>
@@ -49,6 +49,12 @@ export default {
 };
 </script>
 <style lang="less">
+.com-panel[data-type~="greenSty"] {
+    
+}
+.com-panel[data-type~="blueSty"] {
+    background: #142446  !important;
+}
 .com-panel {
   &.line {
     border-left: 1px solid @gray;

+ 5 - 4
src/router/index.js

@@ -749,10 +749,11 @@ export const asyncRoutes = [
   //经济运行
   {
     path: "/economicsOperation",
-    redirect:
-      "/economicsOperation/benchmarkingManagement/performanceRankingList",
-    component: () =>
-      import("@/views/economicsOperation/benchmarkingManagement"),
+    // redirect:
+    //   "/economicsOperation/benchmarkingManagement/performanceRankingList",
+    // component: () =>
+      //   import("@/views/economicsOperation/benchmarkingManagement"),
+    component: () => import("@/views/economicsOperation/nxfHomePage"),
     name: "economicsOperation",
     meta: {
       title: "经济运行",

+ 3 - 1
src/store/index.js

@@ -32,7 +32,9 @@ const state = {
   //实时报警列表最大长度
   warningListLimitLength: 30,
   setConfig: 1,
-  menuState: 1,
+    menuState: 1,
+    moreSty: 'greenSty'
+  
 };
 
 //改变状态的方法`

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

@@ -17,7 +17,7 @@ const state = {
     : false,
   userId: getCookie("userId") || "",
   roles: [],
-  permissions: [],
+    permissions: [],
 };
 const mutations = {
   REMOVE_TOKEN(state) {

+ 4 - 1
src/views/Home/index.vue

@@ -1,8 +1,11 @@
 <template>
   <div :class="$store.state.themeName === 'light' ? 'home_light' : 'home'">
-    <div class="top-mid-panel">
+    <div class="top-mid-panel" v-if="$store.state.moreSty === 'greenSty'">
       <Map ref="map"></Map>
     </div>
+    <div v-else>
+        bluePage
+    </div>
   </div>
 </template>
 

+ 978 - 0
src/views/IntegratedAlarm/component/ThreeModel1.vue

@@ -0,0 +1,978 @@
+<template>
+    <div class="three-model">
+        <loading ref="pageLoading"></loading>
+        <div class="map-3d" :style="'transform: rotate(' + mapDeg + 'deg);'">
+            <img :src="require('@assets/png/3dmap.png')" alt="" />
+        </div>
+        <div class="three-html-layer">
+            <div v-for="(info, index) of htmlLayer" :key="index" class="three-html-dom fan-info" :id="info.id"
+                v-show="info.show" :style="'left: ' + info.x + 'px; top: ' + info.y + 'px;'">
+                <div class="fan-name pointer" @click.stop="info.clickName">
+                    {{ info.name }}
+                </div>
+                <div class="fan-can-click" @click.stop="info.clickFan" :style="
+            'left: ' +
+            info.fanX +
+            'px; top: ' +
+            info.fanY +
+            'px; width: ' +
+            info.fanW +
+            'px; height: ' +
+            info.fanH +
+            'px;'
+          "></div>
+            </div>
+            <div class="three-html-dom build-info" :id="fanInfoLayer.id" v-show="fanInfoLayer.show" :style="
+          'left: ' + fanInfoLayer.x + 'px; top: ' + fanInfoLayer.y + 'px;'
+        ">
+                <div class="build-info-close" @click.stop="hideFanInfo">
+                    <i class="el-icon-close"></i>
+                </div>
+                <div class="build-info-item purple" :style="
+            'left: ' + circleXY[0].x + 'px; top: -' + circleXY[0].y + 'px'
+          ">
+                    <div class="build-info-item-num">{{ jkd }}</div>
+                    <div class="build-info-item-text">健康度</div>
+                </div>
+                <div class="build-info-item blue" :style="
+            'left: ' + circleXY[1].x + 'px; top: -' + circleXY[1].y + 'px'
+          ">
+                    <div class="build-info-item-num">{{ ysl }}</div>
+                    <div class="build-info-item-text">优</div>
+                </div>
+                <div class="build-info-item yellow" :style="
+            'left: ' + circleXY[2].x + 'px; top: -' + circleXY[2].y + 'px'
+          ">
+                    <div class="build-info-item-num">{{ lsl }}</div>
+                    <div class="build-info-item-text">良</div>
+                </div>
+                <div class="build-info-item orange" :style="
+            'left: ' + circleXY[3].x + 'px; top: -' + circleXY[3].y + 'px'
+          ">
+                    <div class="build-info-item-num">{{ csl }}</div>
+                    <div class="build-info-item-text">差</div>
+                </div>
+                <div class="build-info-item red" :style="
+            'left: ' + circleXY[4].x + 'px; top: -' + circleXY[4].y + 'px'
+          ">
+                    <div class="build-info-item-num">{{ gzsl }}</div>
+                    <div class="build-info-item-text">故障</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    import loading from "@com/coms/loading/loading.vue";
+    import * as THREE from "three";
+    import {
+        GLTFLoader
+    } from "@node/three/examples/jsm/loaders/GLTFLoader.js";
+    import {
+        OrbitControls
+    } from "@node/three/examples/jsm/controls/OrbitControls.js";
+    import {
+        GeometryUtils
+    } from "@node/three/examples/jsm/utils/GeometryUtils.js";
+    let camera, scene, renderer, controls;
+    let mixers = [];
+    let clock = new THREE.Clock();
+    let fanAnimates = [];
+    let fans = [];
+    // let cylinder = null;
+    export default {
+        // 名称
+        name: "ThreeModel1",
+        // 使用组件
+        components: {
+            loading,
+        },
+        // 传入参数
+        props: {
+            data: {
+                type: Object,
+                default: () => {},
+            },
+        },
+        // 自定义事件
+        emits: {
+            when: null,
+        },
+        // 数据
+        data() {
+            const that = this;
+            return {
+                mapSource: {},
+                pointer: false,
+                jkd: null,
+                ysl: null,
+                lsl: null,
+                csl: null,
+                gzsl: null,
+                htmlLayer: [
+                    //惠安
+                    {
+                        id: "fan-huian",
+                        x: 0,
+                        y: 0,
+                        show: true,
+                        ox: 28,
+                        oy: 10,
+                        fanW: 70,
+                        fanH: 100,
+                        fanX: -15,
+                        fanY: -110,
+                        position: null,
+                        name: "惠安风场",
+                        clickName: function () {
+                            that.clickMapItem(
+                                [
+                                    "XS_FDC_SC",
+                                    "XG01_26_TD",
+                                    "XG01_27_TD",
+                                    "XG01_29_TD",
+                                    "XG01_30_TD",
+                                    "XG01_31_TD",
+                                ],
+                                "XS_FDC"
+                            );
+                        },
+                        clickFan: () => {
+                            that.showFanInfo(that.htmlLayer[0].position);
+                            that.jkd = that.htmlLayer[0].jkd;
+                            that.ysl = that.htmlLayer[0].ysl;
+                            that.lsl = that.htmlLayer[0].lsl;
+                            that.csl = that.htmlLayer[0].csl;
+                            that.gzsl = that.htmlLayer[0].gzsl;
+                            that.clickMapItem(
+                                [
+                                    "XS_FDC_SC",
+                                    "XG01_26_TD",
+                                    "XG01_27_TD",
+                                    "XG01_29_TD",
+                                    "XG01_30_TD",
+                                    "XG01_31_TD",
+                                ],
+                                "XS_FDC"
+                            );
+                        },
+                    },
+                    // 大楼
+                    {
+                        id: "build",
+                        x: 0,
+                        y: 0,
+                        show: true,
+                        ox: 27,
+                        oy: 20,
+                        fanW: 60,
+                        fanH: 100,
+                        fanX: -260,
+                        fanY: -200,
+                        position: null,
+                        name: "宁夏分公司",
+                        clickName: function () {
+                            that.clickMapItem(
+                                [
+                                    "SBQ_FDC_SC",
+                                    "NSS_FDC_SC",
+                                    "QS_FDC_SC",
+                                    "MHS_FDC_SC",
+                                    "XS_FDC_SC",
+                                    "PL_GDC_SC",
+                                ],
+                                "0"
+                            );
+                        },
+                        clickFan: () => {
+                            that.showFanInfo(that.htmlLayer[1].position);
+                            that.jkd = that.htmlLayer[1].jkd;
+                            that.ysl = that.htmlLayer[1].ysl;
+                            that.lsl = that.htmlLayer[1].lsl;
+                            that.csl = that.htmlLayer[1].csl;
+                            that.gzsl = that.htmlLayer[1].gzsl;
+                            that.clickMapItem(
+                                [
+                                    "SBQ_FDC_SC",
+                                    "NSS_FDC_SC",
+                                    "QS_FDC_SC",
+                                    "MHS_FDC_SC",
+                                    "XS_FDC_SC",
+                                    "PL_GDC_SC",
+                                ],
+                                "0"
+                            );
+                        },
+                    },
+                    // 宁东光伏
+                    {
+                        id: "light-ndgf",
+                        x: 0,
+                        y: 0,
+                        show: true,
+                        ox: 315,
+                        oy: 100,
+                        fanW: 60,
+                        fanH: 80,
+                        fanX: 0,
+                        fanY: -80,
+                        position: null,
+                        name: "宁东光伏",
+                        clickName: function () {
+                            console.log("宁东光伏");
+                        },
+                        clickFan: () => {
+                            console.log("宁东光伏");
+                        },
+                    },
+                ],
+                fanInfoLayer: {
+                    id: "fan-info",
+                    x: 0,
+                    y: 0,
+                    show: false,
+                    ox: 70,
+                    oy: -40,
+                    position: null,
+                },
+                circleXY: [{
+                        x: 130 * Math.cos((180 / 180) * Math.PI) - 33,
+                        y: 130 * Math.sin((180 / 180) * Math.PI) + 33,
+                    },
+                    {
+                        x: 130 * Math.cos((135 / 180) * Math.PI) - 33,
+                        y: 130 * Math.sin((135 / 180) * Math.PI) + 33,
+                    },
+                    {
+                        x: 130 * Math.cos((90 / 180) * Math.PI) - 33,
+                        y: 130 * Math.sin((90 / 180) * Math.PI) + 33,
+                    },
+                    {
+                        x: 130 * Math.cos((45 / 180) * Math.PI) - 33,
+                        y: 130 * Math.sin((45 / 180) * Math.PI) + 33,
+                    },
+                    {
+                        x: 130 * Math.cos((0 / 180) * Math.PI) - 33,
+                        y: 130 * Math.sin((0 / 180) * Math.PI) + 33,
+                    },
+                ],
+                colors: [{
+                        colorName: "green",
+                        state: "dj",
+                        stateName: "待机",
+                        color: 0x05bb4c
+                    },
+                    {
+                        colorName: "blue",
+                        state: "yx",
+                        stateName: "运行",
+                        color: 0x4b55ae
+                    },
+                    {
+                        colorName: "pink",
+                        state: "xd",
+                        stateName: "限电",
+                        color: 0xc531c7
+                    },
+                    {
+                        colorName: "red",
+                        state: "gz",
+                        stateName: "故障",
+                        color: 0xba3237
+                    },
+                    {
+                        colorName: "orange",
+                        state: "jx",
+                        stateName: "检修",
+                        color: 0xe17e23,
+                    },
+                    {
+                        colorName: "gray",
+                        state: "lx",
+                        stateName: "离线",
+                        color: 0x606769
+                    },
+                    {
+                        colorName: "white",
+                        state: "sl",
+                        stateName: "受累",
+                        color: 0xffffff
+                    },
+                ],
+                fanName: "",
+                playAnimation: true,
+                mapDeg: 0,
+            };
+        },
+        // 函数
+        methods: {
+            rinseData() {
+                if (this.mapSource && this.mapSource.MHS_FDC) {
+                    for (let pKey in this.mapSource) {
+                        if (pKey === "all") {
+                            for (let cKey in this.mapSource[pKey]) {
+                                this.htmlLayer[10][cKey] = this.mapSource[pKey][cKey];
+                            }
+                        }
+                        this.htmlLayer.forEach((ele) => {
+                            if (
+                                pKey.toLowerCase().indexOf(ele.id.toLowerCase().split("-")[1]) !==
+                                -1
+                            ) {
+                                for (let cKey in this.mapSource[pKey]) {
+                                    ele[cKey] = this.mapSource[pKey][cKey];
+                                }
+                            }
+                        });
+                    }
+                }
+            },
+            // 点击风场或者光伏传回点击的值
+            clickMapItem(videoArray = [], wpId = "") {
+                this.$emit("clickMapItem", videoArray, wpId);
+            },
+            // Vector3 to screen
+            vector3ToScreen(position) {
+                const centerX = this.$el.scrollWidth / 2;
+                const centerY = this.$el.scrollHeight / 2;
+                const v3 = new THREE.Vector3(position.x, position.y, position.z);
+                const standardVec = v3.project(camera);
+                const screenX = Math.round(centerX * standardVec.x + centerX);
+                const screenY = Math.round(-centerY * standardVec.y + centerY);
+                return {
+                    x: screenX,
+                    y: screenY
+                };
+            },
+            // 场景
+            initScene() {
+                scene = new THREE.Scene();
+                // scene.background = new THREE.Color(0xa0a0a0);
+            },
+            // 相机
+            initCamera() {
+                camera = new THREE.PerspectiveCamera(
+                    45,
+                    this.$el.scrollWidth / this.$el.scrollHeight,
+                    0.1,
+                    10000
+                );
+                camera.position.set(50, 50, 50);
+            },
+            // 坐标轴
+            initAxesHelper() {
+                const axesHelper = new THREE.AxesHelper(150);
+                scene.add(axesHelper);
+                axesHelper.position.set(0, 0, 0);
+            },
+            // 渲染器
+            initRender() {
+                renderer = new THREE.WebGLRenderer({
+                    antialias: true,
+                    alpha: true
+                });
+                // renderer.setClearAlpha(0);
+                renderer.setSize(this.$el.scrollWidth, this.$el.scrollHeight);
+                this.$el.append(renderer.domElement);
+            },
+            // 灯光
+            initLight() {
+                // let light = new THREE.PointLight(0xffffff, 2);
+                let light = new THREE.AmbientLight(0xffffff, 5);
+                // light.position.set(50, 50, 50);
+                scene.add(light);
+            },
+            // 控制器
+            initControls() {
+                controls = new OrbitControls(camera, renderer.domElement);
+                controls.enablePan = false;
+                controls.maxPolarAngle = (45 / 180) * Math.PI;
+                controls.minPolarAngle = (45 / 180) * Math.PI;
+                controls.maxAzimuthAngle = (45 / 180) * Math.PI;
+                controls.minAzimuthAngle = (45 / 180) * Math.PI;
+                controls.enableKeys = false;
+                controls.enableZoom = false;
+                controls.update();
+                // controls.maxAzimuthAngle = 50 / 180 *  Math.PI;
+                // controls.minAzimuthAngle = 40 / 180 *  Math.PI;
+                // controls.addEventListener("change", () => {
+                //     let cDeg = controls.getAzimuthalAngle() / Math.PI * 180;
+                //     this.mapDeg = cDeg - 40 - 5;
+                //     this.setEveryHTML();
+                // });
+            },
+            // 初始化一个风机动画
+            initFanAnimate(obj) {
+                let fanAnimateObj = {
+                    speed: 0.05,
+                    rotate: 0,
+                    fan: obj.getObjectByName(`${obj.name}_leaf`),
+                    fan1: obj.getObjectByName(`${obj.name}_leaf_1`),
+                    fan2: obj.getObjectByName(`${obj.name}_leaf_2`),
+                    fan3: obj.getObjectByName(`${obj.name}_leaf_3`),
+                };
+                let fanAnimateFunction = function () {
+                    // fanAnimateObj.fan.rotateOnAxis(new THREE.Vector3(0, 1, 0), fanAnimateObj.speed);
+                    fanAnimateObj.fan.rotateY(fanAnimateObj.speed);
+                    // fanAnimateObj.fan1.rotateZ(fanAnimateObj.speed);
+                    // fanAnimateObj.fan2.rotateZ(fanAnimateObj.speed);
+                    // fanAnimateObj.fan3.rotateZ(fanAnimateObj.speed);
+                    // fanAnimateObj.rotate += fanAnimateObj.speed;
+                    // if (fanAnimateObj.rotate >= 360) {
+                    //     fanAnimateObj.rotate = 0;
+                    // }
+                    fanAnimateObj.animateId =
+                        window.requestAnimationFrame(fanAnimateFunction);
+                };
+                fanAnimateObj.stop = function () {
+                    window.cancelAnimationFrame(fanAnimateObj.animateId);
+                };
+                fanAnimateObj.start = function () {
+                    fanAnimateFunction();
+                };
+                fanAnimateFunction();
+                fanAnimates.push(fanAnimateObj);
+                return fanAnimateObj;
+            },
+            // 清空风机动画
+            clearFanAnimate: function () {
+                while (fanAnimates.length > 0) {
+                    let fanAnimateObj = fanAnimates.shift();
+                    fanAnimateObj.stop();
+                }
+                this.playAnimation = false;
+            },
+            // 开始风机动画
+            startFanAnimate: function () {
+                fans.forEach((fan) => {
+                    this.initFanAnimate(fan);
+                });
+                this.playAnimation = true;
+            },
+            // 内容
+            initContent() {
+                // 加载3D地面
+                let loaderGround = new GLTFLoader(); /*实例化加载器*/
+                loaderGround.load(
+                    "static/3d/fanvar.gltf",
+                    (gltf) => {
+                        gltf.scene.position.set(17, 10, -12);
+                        scene.add(gltf.scene);
+                        let rootNode = gltf.scene.children[0];
+                        let fan = gltf.scene.children[0].children[0];
+                        rootNode.remove(fan);
+                        this.setFanPosition(rootNode, fan);
+                    },
+                    (xhr) => {},
+                    function (error) {
+                        console.error("load error!" + error.getWebGLErrorMessage());
+                    }
+                );
+                loaderGround.load(
+                    "static/3d/light.gltf",
+                    (gltf) => {
+                        gltf.scene.position.set(17, 10, -12);
+                        scene.add(gltf.scene);
+                        let rootNode = gltf.scene.children[0];
+                        let light = gltf.scene.children[0].children[0];
+                        rootNode.remove(light);
+                        this.setLightPosition(rootNode, light);
+                    },
+                    (xhr) => {},
+                    function (error) {
+                        console.error("load error!" + error.getWebGLErrorMessage());
+                    }
+                );
+                loaderGround.load(
+                    "static/3d/build.gltf",
+                    (gltf) => {
+                        gltf.scene.position.set(0, 0, -35); // 10, 0, -50    -6, 0.13, -50
+                        scene.add(gltf.scene);
+                        gltf.scene.rotateY(120);
+                        this.htmlLayer[1].position = {
+                            x: -6,
+                            y: -4,
+                            z: -35,
+                        };
+                        scene.onAfterRender = () => {
+                            this.$emit("when");
+                            this.$refs.pageLoading.hide();
+                            this.setEveryHTML();
+                        };
+                    },
+                    (xhr) => {},
+                    function (error) {
+                        console.error("load error!" + error.getWebGLErrorMessage());
+                    }
+                );
+            },
+            // 改变元素底盘的颜色(带底盘的)
+            changeObjectColor(obj, colorName) {
+                for (let i = 1; i <= 4; i++) {
+                    let c = obj.getObjectByName(`${obj.name}_c_${i}`);
+                    c.material = new THREE.MeshBasicMaterial({
+                        color: 0xf0f0f0,
+                        opacity: 0.8,
+                        transparent: true,
+                    });
+                }
+                let leaf = obj.getObjectByName(`${obj.name}_leaf`);
+                for (let chind of leaf.children) {
+                    chind.material = new THREE.MeshBasicMaterial({
+                        color: 0xf0f0f0,
+                        opacity: 0.8,
+                        transparent: true,
+                    });
+                }
+                let chassis = obj.getObjectByName(`${obj.name}_chassis`);
+                // let color = this.colors.find(t => t.colorName == colorName || t.state == colorName || t.stateName == colorName).color;
+                chassis.material = new THREE.MeshBasicMaterial({
+                    // color: color,
+                    color: 0xf0f0f0,
+                    opacity: 0.8,
+                    transparent: true,
+                });
+            },
+            // 改变元素的颜色(光伏)
+            changeElColor(obj, colorName) {
+                // let color = this.colors.find(t => t.colorName == colorName || t.state == colorName || t.stateName == colorName).color;
+                // for (let i = 1; i <= 6; i++) {
+                //     let el = obj.getObjectByName(`${obj.name}_item_${i}`);
+                //     el.material = new THREE.MeshBasicMaterial({
+                //         color: color,
+                //         opacity: 0.8,
+                //         transparent: true,
+                //     });
+                // }
+            },
+            // 设置风机name
+            setFanName(obj, name) {
+                obj.name = name;
+                obj.userData.name = name;
+                // "Cylinder881" "Cone277"
+                let Cylinder881 = obj.getObjectByName("Cylinder881");
+                let Cylinder882 = obj.getObjectByName("Cylinder882");
+                let Cylinder883 = obj.getObjectByName("Cylinder883");
+                let Cone277 = obj.getObjectByName("Cone277");
+                Cylinder881.name = `${name}_c_1`;
+                Cylinder881.userData.name = `${name}_c_1`;
+                Cylinder882.name = `${name}_c_2`;
+                Cylinder882.userData.name = `${name}_c_2`;
+                Cylinder883.name = `${name}_c_3`;
+                Cylinder883.userData.name = `${name}_c_3`;
+                Cone277.name = `${name}_c_4`;
+                Cone277.userData.name = `${name}_c_4`;
+                // "Box719")
+                let fanBig1_1 = obj.getObjectByName("Box719");
+                let fanBig1_2 = obj.getObjectByName("Box720");
+                let fanBig1_3 = obj.getObjectByName("Box721");
+                fanBig1_1.name = `${name}_leaf_1`;
+                fanBig1_1.userData.name = `${name}_leaf_1`;
+                fanBig1_2.name = `${name}_leaf_2`;
+                fanBig1_2.userData.name = `${name}_leaf_2`;
+                fanBig1_3.name = `${name}_leaf_3`;
+                fanBig1_3.userData.name = `${name}_leaf_3`;
+                obj.children[obj.children.length - 1].name = `${name}_chassis`;
+                obj.children[obj.children.length - 1].userData.name = `${name}_chassis`;
+                obj.remove(fanBig1_1, fanBig1_2, fanBig1_3);
+                var group = new THREE.Group();
+                // var group = new THREE.Mesh(new THREE.BoxGeometry(0.01, 0.01, 0.01),
+                //     new THREE.MeshBasicMaterial({
+                //         color: 0xff0000
+                //     })
+                // );
+                group.position.set(
+                    group.position.x + 0.0067,
+                    group.position.y,
+                    group.position.z + 0.01
+                );
+                fanBig1_1.position.set(
+                    fanBig1_1.position.x - 0.0067,
+                    fanBig1_1.position.y,
+                    fanBig1_1.position.z - 0.01
+                );
+                fanBig1_2.position.set(
+                    fanBig1_2.position.x - 0.0067,
+                    fanBig1_2.position.y,
+                    fanBig1_2.position.z - 0.01
+                );
+                fanBig1_3.position.set(
+                    fanBig1_3.position.x - 0.0067,
+                    fanBig1_3.position.y,
+                    fanBig1_3.position.z - 0.01
+                );
+                group.add(fanBig1_1, fanBig1_2, fanBig1_3);
+                obj.add(group);
+                group.name = `${name}_leaf`;
+            },
+            // 设置风机位置 颜色
+            setFanPosition(rootNode, obj) {
+
+                //惠安
+                let fan_huian = obj.clone(true);
+                fan_huian.position.set(-9, -15, -20);
+                this.setFanName(fan_huian, "fan_huian");
+                rootNode.add(fan_huian);
+                this.htmlLayer[0].position = fan_huian.position;
+                fan_huian.score = this.htmlLayer[0].jkd;
+                this.initCylinderGeometry(fan_huian);
+
+                // 改一下颜色
+                this.changeObjectColor(fan_huian, "检修"); // 惠安
+
+                // 风机存入数组
+                fans.push(fan_huian);
+
+                // 开始风机动画
+                this.startFanAnimate();
+
+                // 设置位置
+                this.setEveryHTML();
+            },
+            // 设置光伏位置 颜色
+            setLightPosition(rootNode, obj) {
+                obj.scale.set(200, 200, 200);
+
+                // 宁东光伏
+                let light_ndgf = obj.clone(true);
+                light_ndgf.position.set(-30, -7, -18);
+                rootNode.add(light_ndgf);
+                this.htmlLayer[2].position = light_ndgf.position;
+
+                // 改变颜色
+                this.changeElColor(light_ndgf, "受累"); // 宁东光伏
+
+                // 设置位置
+                this.setEveryHTML();
+            },
+            // 创建一个圆柱
+            initCylinderGeometry(obj, mode = "fan") {
+                let cr = 1.7;
+                let xyz = [5.75, 6.85, -0.63];
+                switch (mode) {
+                    case "fan":
+                        cr = 1.7;
+                        xyz = [5.75, 6.85, -0.63];
+                        break;
+                    case "light":
+                        cr = 3;
+                        xyz = [5.75, 6.85, -0.63];
+                        break;
+
+                    default:
+                        break;
+                }
+                let geometry = new THREE.CylinderGeometry(cr, cr, 4, 128, 1, true);
+                //加载纹理
+                let texture = new THREE.TextureLoader().load(
+                    obj.score < 60 ?
+                    "static/3d/beam-texture-red.png" :
+                    "static/3d/beam-texture-blue.png"
+                );
+                texture.wrapS = texture.wrapT = THREE.RepeatWrapping; //每个都重复
+                texture.repeat.set(1, 1);
+                texture.needsUpdate = true;
+                let materials = [
+                    //圆柱侧面材质,使用纹理贴图
+                    new THREE.MeshBasicMaterial({
+                        map: texture,
+                        side: THREE.FrontSide,
+                        transparent: true,
+                    }),
+                    //圆柱顶材质
+                    new THREE.MeshBasicMaterial({
+                        transparent: true,
+                        opacity: 0,
+                        side: THREE.DoubleSide,
+                        // side: THREE.DoubleSide,THREE.FrontSide THREE.BackSide
+                    }),
+                    //圆柱底材质
+                    new THREE.MeshBasicMaterial({
+                        transparent: true,
+                        opacity: 0,
+                        side: THREE.DoubleSide,
+                    }),
+                ];
+                let cylinder = new THREE.Mesh(geometry, materials);
+                cylinder.position.set(
+                    obj.position.x + xyz[0],
+                    obj.position.y + xyz[1],
+                    obj.position.z + xyz[2]
+                );
+                scene.add(cylinder);
+            },
+            // 设置每一个html的位置
+            setEveryHTML() {
+                this.htmlLayer.forEach((value) => {
+                    if (value.show && value.position) {
+                        const screen = this.vector3ToScreen(value.position);
+                        value.x = screen.x + value.ox;
+                        value.y = screen.y + value.oy;
+                    }
+                });
+            },
+            // 判断时候是可点击对象 返回null 或object
+            getClickObject(intersects) {
+                const names = ["fan"];
+                const namesRoot = ["fanvar"];
+                let x = true;
+                let obj = null;
+                for (let intersect of intersects) {
+                    let temObj = intersect.object;
+                    while (x) {
+                        for (let name of names) {
+                            if (temObj.name.indexOf(`${name}_`) == 0) {
+                                obj = temObj;
+                                x = false;
+                                break;
+                            }
+                        }
+                        if (x && temObj.parent) {
+                            temObj = temObj.parent;
+                            continue;
+                        }
+                        break;
+                    }
+                }
+                if (obj) {
+                    while (obj.parent && !namesRoot.includes(obj.parent.name)) {
+                        obj = obj.parent;
+                    }
+                }
+                if (obj && !namesRoot.includes(obj.parent.name)) {
+                    obj = null;
+                }
+                return obj;
+            },
+            // 显示风机弹出层
+            showFanInfo(position) {
+                this.fanInfoLayer.position = {
+                    x: position.x,
+                    y: position.y,
+                    z: position.z,
+                };
+                const screen = this.vector3ToScreen(this.fanInfoLayer.position);
+                this.fanInfoLayer.x = screen.x + this.fanInfoLayer.ox;
+                this.fanInfoLayer.y = screen.y + this.fanInfoLayer.oy;
+                this.fanInfoLayer.show = true;
+            },
+            // 隐藏风机弹出层
+            hideFanInfo() {
+                this.fanInfoLayer.show = false;
+            },
+            // 初始化云
+            initCloud() {},
+            // 初始化
+            initThree() {
+                this.initScene();
+                // this.initAxesHelper();
+                this.initCamera();
+                this.initRender();
+                this.initLight();
+                this.initControls();
+                this.initContent();
+                this.initCloud();
+                renderer.setAnimationLoop(this.animate);
+            },
+            // 动画
+            animate() {
+                renderer.render(scene, camera);
+            },
+        },
+        // 生命周期钩子
+        beforeCreate() {
+            // 创建前
+        },
+        created() {
+            // 创建后
+        },
+        beforeMount() {
+            // 渲染前
+        },
+        mounted() {
+            // 渲染后
+            this.initThree();
+            this.mapSource = this.data;
+            this.rinseData();
+        },
+        beforeUpdate() {
+            // 数据更新前
+        },
+        updated() {
+            // 数据更新后
+        },
+        beforeUnmount() {
+            // 销毁前
+            renderer.setAnimationLoop(null);
+            camera = null;
+            scene = null;
+            renderer = null;
+        },
+        watch: {
+            data(res) {
+                this.mapSource = res;
+                this.rinseData();
+            },
+        },
+    };
+</script>
+
+<style lang="less" scoped>
+    .three-model {
+        position: relative;
+        overflow: hidden;
+        // left: -112px;
+
+        .map-3d {
+            position: absolute;
+            width: 1118px;
+            height: 678px;
+            left: calc(50% - 559px);
+            top: calc(50% - 339px);
+            z-index: -1;
+
+            map {
+                width: 100%;
+                height: 100%;
+            }
+        }
+
+        .three-html-layer {
+            .three-html-dom {
+                position: absolute;
+            }
+
+            .fan-name {
+                display: inline-block;
+                height: 22px;
+                background: #222632;
+                border: 1px solid #646464;
+                border-radius: 10px;
+                padding: 0 10px;
+                font-size: 12px;
+                font-weight: 400;
+                color: #ffffff;
+                line-height: 22px;
+            }
+
+            .fan-can-click {
+                position: absolute;
+                background: #ff0000;
+                opacity: 0;
+                cursor: pointer;
+            }
+
+            .build-info {
+                width: 166px;
+                height: 33px;
+                // position: relative;
+
+                .build-info-close {
+                    position: absolute;
+                    width: 40px;
+                    height: 40px;
+                    top: -20px;
+                    left: -20px;
+                    border-radius: 50%;
+                    background: #1a1f2fd8;
+                    border: 1px solid #05bb4c;
+                    box-shadow: 0px 8px 17px 1px #05bb4c66;
+                    cursor: pointer;
+                    color: @gray-l;
+                    transition: all 0.3s;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    font-size: 14px;
+
+                    &:hover {
+                        color: #05bb4c;
+                    }
+                }
+
+                .build-info-item {
+                    width: 66px;
+                    height: 66px;
+                    border-radius: 50%;
+                    background: #1a1f2fe5;
+                    position: absolute;
+
+                    &::after {
+                        content: "";
+                        position: absolute;
+                        width: 44px;
+                        height: 2px;
+                        left: calc(50% - 22px);
+                        top: calc(50% - 1px);
+                    }
+
+                    .build-info-item-num {
+                        font-size: 22px;
+                        font-weight: 500;
+                        color: #ffffff;
+                        text-align: center;
+                        line-height: 1.2;
+                        margin-top: 6px;
+                        margin-bottom: 3px;
+                    }
+
+                    .build-info-item-text {
+                        font-size: 12px;
+                        color: #ffffff;
+                        font-weight: 400;
+                        text-align: center;
+                    }
+
+                    &.blue {
+                        border: 2px solid #1da0d7;
+
+                        &::after {
+                            background: #1da0d7;
+                        }
+                    }
+
+                    &.red {
+                        border: 2px solid #ff0000;
+
+                        &::after {
+                            background: #ff0000;
+                        }
+                    }
+
+                    &.green {
+                        border: 2px solid #05bb4c;
+
+                        &::after {
+                            background: #05bb4c;
+                        }
+                    }
+
+                    &.purple {
+                        border: 2px solid #323e6f;
+
+                        &::after {
+                            background: #323e6f;
+                        }
+                    }
+
+                    &.orange {
+                        border: 2px solid #db5520;
+
+                        &::after {
+                            background: #db5520;
+                        }
+                    }
+
+                    &.yellow {
+                        border: 2px solid #edb32f;
+
+                        &::after {
+                            background: #edb32f;
+                        }
+                    }
+                }
+            }
+        }
+    }
+</style>

+ 153 - 0
src/views/IntegratedAlarm/component/dataBJJson.json

@@ -0,0 +1,153 @@
+{
+    "success": true,
+    "code": 200,
+    "message": "成功",
+    "data": {
+        "tqmap1": {
+            "tqtp": "水",
+            "wd": 25,
+            "tqmc": "雷阵雨",
+            "fx": "东",
+            "fs": 2.24,
+            "qxd": 10,
+            "sd": 29,
+            "dqyl": 1024,
+            "richushijian": "07:07",
+            "riluoshijian": "18:50"
+        },
+        "gxkmap": {
+            "bg_dxkyss": 30,
+            "ydxkyss": 20,
+            "tb_dxkyss": -35,
+            "hb_dxkyss": -55,
+
+            "bg_sbklyl": 40,
+            "ysbklyl": 23,
+            "hb_sbklyl": -35,
+            "tb_sbklyl": -55,
+
+            "bg_mtbf": 500,
+            "mtbf": 14,
+            "hb_mtbf": -35,
+            "tb_mtbf": -55,
+
+            "bg_mttr": 600,
+            "mttr": 8,
+            "hb_mttr": -35,
+            "tb_mttr": -55,
+
+            "bg_mttf": 700,
+            "mttf": 9,
+            "hb_mttf": -35,
+            "tb_mttf": -55
+        },
+        "rmls": {
+            "data": [
+                {
+                    "wtId": "NG01_04",
+                    "recodedate": "2024-08-08 08:00:00",
+                    "operation": "可运行"
+                },
+                {
+                    "wtId": "NG01_05",
+                    "recodedate": "2024-08-09 08:00:00",
+                    "operation": "可运行"
+                },
+                {
+                    "wtId": "NG01_06",
+                    "recodedate": "2024-08-10 08:00:00",
+                    "operation": "不可运行"
+                },
+                {
+                    "wtId": "NG01_07",
+                    "recodedate": "2024-08-11 08:00:00",
+                    "operation": "可运行"
+                },
+                {
+                    "wtId": "NG01_08",
+                    "recodedate": "2024-08-12 08:00:00",
+                    "operation": "可运行"
+                }
+            ]
+        },
+        "sels": {
+            "data": [
+                {
+                    "windPowerStationId": "NG01_04",
+                    "stopTime": "2024-08-08 08:00:00",
+                    "stopHours": "8.9"
+                },
+                {
+                    "windPowerStationId": "NG01_05",
+                    "stopTime": "2024-08-09 08:00:00",
+                    "stopHours": "9.9"
+                },
+                {
+                    "windPowerStationId": "NG01_06",
+                    "stopTime": "2024-08-10 08:00:00",
+                    "stopHours": "6.9"
+                },
+                {
+                    "windPowerStationId": "NG01_07",
+                    "stopTime": "2024-08-11 08:00:00",
+                    "stopHours": "15.9"
+                },
+                {
+                    "windPowerStationId": "NG01_08",
+                    "stopTime": "2024-08-12 08:00:00",
+                    "stopHours": "5.9"
+                }
+            ]
+        },
+    "warnChartData": [{
+        "name": "2024-01",
+        "value": 210
+      },
+      {
+        "name": "2024-02",
+        "value": 260
+      },
+      {
+        "name": "2024-03",
+        "value": 580
+      },
+      {
+        "name": "2024-04",
+        "value": 540
+      },
+      {
+        "name": "2024-05",
+        "value": 360
+      },
+      {
+        "name": "2024-06",
+        "value": 510
+      }
+    ],
+    "bjChartData": [{
+        "name": "2024-01",
+        "value": 510
+      },
+      {
+        "name": "2024-02",
+        "value": 200
+      },
+      {
+        "name": "2024-03",
+        "value": 530
+      },
+      {
+        "name": "2024-04",
+        "value": 200
+      },
+      {
+        "name": "2024-05",
+        "value": 350
+      },
+      {
+        "name": "2024-06",
+        "value": 310
+      }
+    ]
+}
+}

+ 141 - 0
src/views/IntegratedAlarm/component/hls.vue

@@ -0,0 +1,141 @@
+<template>
+  <video
+    class="hlsVideo"
+    ref="hlsVideo"
+    autoplay
+    muted
+    :style="'width:' + width + ';height:' + height"
+    v-if="code"
+  ></video>
+</template>
+
+<script>
+export default {
+  // 名称
+  name: "Hls",
+  // 使用组件
+  components: {},
+  // 传入参数
+  props: {
+    width: {
+      type: String,
+      default: "100%",
+    },
+    height: {
+      type: String,
+      default: "100%",
+    },
+    code: {
+      type: String,
+      default: "",
+    },
+  },
+  emits: {},
+  // 数据
+  data() {
+    return {
+      socket: null,
+      isReady: false,
+      devs: [],
+      hls: null,
+      currDevCode: null,
+    };
+  },
+  // 函数
+  methods: {
+    _play: function () {
+      if (Hls.isSupported()) {
+        var self = this;
+        self.$nextTick(function () {
+          var video = self.$refs.hlsVideo;
+          self.hls && self.hls.destroy();
+          video.volume = 1.0;
+          self.hls = new Hls();
+          self.hls.on(Hls.Events.MANIFEST_PARSED, () => {
+            self.$refs.video.play();
+          });
+          self.hls.loadSource(
+            // `http://192.168.10.25:1935/hls/${self.currDevCode}/index.m3u8`
+            `http://192.168.1.82:1935/hls/${self.code}/index.m3u8`
+          );
+          self.hls.attachMedia(video);
+        });
+      }
+    },
+    onReady() {
+      this.send({ action: "loadDevs" });
+    },
+    onDevChoosed(index) {
+      this.currDevCode = this.devs[index].code;
+      this._play();
+    },
+    onMessage(data) {
+      var result = eval(data);
+      if (result.code === "fail") {
+        if (result.message) {
+          this.$message.error(result.message);
+        } else {
+          this.$message.error("操作失败");
+        }
+      } else if (result.action == "loadDevs") {
+        this.devs = result.object;
+      }
+
+      console.log("result", result);
+    },
+    send(message) {
+      if (!this.isReady) {
+        alert("this socket is not ready!");
+        return;
+      }
+      this.socket.send(JSON.stringify(message));
+    },
+  },
+  // 生命周期钩子
+  beforeCreate() {
+    // 创建前
+  },
+  created() {
+    // 创建后
+    var self = this;
+    if (window.WebSocket) {
+      self.socket = new WebSocket("ws://" + window.location.host + "/api.ws");
+      //建立websocket连接
+      self.socket.onopen = function () {
+        self.isReady = self.socket.readyState == 1;
+        self.onReady();
+      };
+      self.socket.onmessage = function (event) {
+        var data = JSON.parse(event.data);
+        self.onMessage(data);
+      };
+      self.socket.onclose = function (event) {
+        self.isReady = false;
+      };
+      self._play();
+    }
+  },
+  beforeMount() {
+    // 渲染前
+  },
+  mounted() {
+    // 渲染后
+  },
+  beforeUnmount(){
+    this.hls && this.hls.destroy()
+  },
+  beforeUpdate() {},
+  updated() {},
+  watch: {
+    code() {
+      this._play();
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.hlsVideo {
+  object-fit: fill;
+}
+</style>

+ 234 - 0
src/views/IntegratedAlarm/component/p-panel.vue

@@ -0,0 +1,234 @@
+<template>
+    <div class="p-panel">
+        <div class="p-panel-title font-sm">{{ title }}</div>
+        <div class="p-panel-body">
+            <div class="pp-info">
+                <div class="pp-info-days">
+                    <span class="font-num blue font-lg pp-info-days-num">{{
+            days
+          }}</span>
+                    <span class="gray font-sm">{{ daysUnit }}</span>
+                </div>
+                <div class="pp-info-data">
+                    <span class="gray-l font-sm">{{ data1Str }}</span>
+                    <span class="pp-icon-l svg-icon" :class="data1IconClass">
+                        <svg-icon :svgid="data1Icon" />
+                    </span>
+                    <span class="gray-l font-sm">{{ data2Str }}</span>
+                    <span class="pp-icon-r svg-icon" :class="data2IconClass">
+                        <svg-icon :svgid="data2Icon" />
+                    </span>
+                </div>
+            </div>
+            <div class="pp-data">
+                <div class="pp-tip" :style="'margin-left: ' + mLeft(data) + '%'">
+                    <div class="pp-tip-data font-sm">
+                        {{
+              (data * 100).toFixed(2)
+            }}%
+                    </div>
+                    <div class="pp-tip-icon">
+                        <i class="el-icon-caret-bottom font-sm" :style="'color: ' + dataColor"></i>
+                    </div>
+                </div>
+                <div class="pp-data-box" :style="
+            'border-color: ' + dataColor + '4d; background: ' + backColor + ';'
+          ">
+                    <div class="pp-data-split" v-for="index of 19" :key="index"></div>
+                    <div class="pp-data-num" :style="
+              'width: ' + mLeft(data) + '%; background: ' + dataColor + ';'
+            "></div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    import SvgIcon from "@com/coms/icon/svg-icon.vue";
+    export default {
+        // 名称
+        name: "Ppanel",
+        // 使用组件
+        components: {
+            SvgIcon,
+        },
+        // 传入参数
+        props: {
+            title: {
+                type: String,
+                default: "利用小时",
+            },
+            days: {
+                type: Number,
+                default: 88.5,
+            },
+            daysUnit: {
+                type: String,
+                default: "小时",
+            },
+            data1Str: {
+                type: String,
+                default: "环",
+            },
+            data1IconClass: {
+                type: String,
+                default: "svg-icon-sm svg-icon-green",
+            },
+            data1Icon: {
+                type: String,
+                default: "svg-arrow-up-1",
+            },
+            data2Str: {
+                type: String,
+                default: "同",
+            },
+            data2Icon: {
+                type: String,
+                default: "svg-arrow-dpwn-1",
+            },
+            data2IconClass: {
+                type: String,
+                default: "svg-icon-sm svg-icon-yellow",
+            },
+            data: {
+                type: Number,
+                default: 0.75,
+            },
+            dataColor: {
+                type: String,
+                default: "#05BB4C",
+            },
+            backColor: {
+                type: String,
+                default: "#4B55AE",
+            },
+        },
+        emits: {},
+        // 数据
+        data() {
+            return {};
+        },
+        // 函数
+        methods: {
+            mLeft: function (data) {
+                if (data > 0) {
+                    const r = data * 100 / 2 + 50;
+                    return r > 100 ? 100 : r;
+                } else if (data < 0) {
+                    const r = 50 - ((0 - data * 100) / 2);
+                    return r < 0 ? 0 : r;
+                } else {
+                    return 50;
+                }
+            }
+        },
+        // 生命周期钩子
+        beforeCreate() {
+            // 创建前
+        },
+        created() {
+            // 创建后
+        },
+        beforeMount() {
+            // 渲染前
+        },
+        mounted() {
+            // 渲染后
+        },
+        beforeUpdate() {},
+        updated() {},
+    };
+</script>
+
+<style lang="less">
+    .p-panel {
+        background: #1a1f2fcc;
+        width: 206px;
+
+        .font-sm {
+            font-size: 12px;
+        }
+
+        .font-lg {
+            font-size: 16px;
+        }
+
+        .p-panel-title {
+            height: 2.778vh;
+            line-height: 2.778vh;
+            text-align: center;
+            color: #ffffff;
+            border-bottom: 1px solid #ffffff66;
+        }
+
+        .p-panel-body {
+            .pp-info {
+                padding-top: 1.111vh;
+                display: flex;
+
+                .pp-info-days-num {
+                    padding: 1.204vh 0.926vh 0 1.944vh;
+                }
+
+                .pp-info-data {
+                    margin-left: auto;
+
+                    .pp-icon-l {
+                        padding: 1.111vh 1.037vh 0 0.556vh;
+                    }
+
+                    .pp-icon-r {
+                        padding: 1.111vh 0.833vh 0 0.556vh;
+                    }
+                }
+            }
+
+            .pp-data {
+                padding: 0.741vh 0.556vh 1.389vh 0.556vh;
+
+                .pp-tip {
+                    display: inline-block;
+
+                    .pp-tip-data,
+                    .pp-tip-icon {
+                        margin-left: -100%;
+                        text-align: center;
+                    }
+
+                    .pp-tip-icon {
+                        margin-top: -0.37vh;
+                    }
+                }
+
+                .pp-data-box {
+                    height: 0.741vh;
+                    width: 190px;
+                    border: 1px solid;
+                    position: relative;
+                    display: flex;
+                    transform: skewX(-25deg);
+
+                    .pp-data-split {
+                        width: 10px;
+                        height: 100%;
+                        z-index: 2;
+                        transition: 0.2s;
+
+                        +.pp-data-split {
+                            border-left: 1px solid #172f2e;
+                        }
+                    }
+
+                    .pp-data-num {
+                        position: absolute;
+                        top: 0;
+                        left: 0;
+                        height: 100%;
+                        z-index: 1;
+                    }
+                }
+            }
+        }
+    }
+</style>

+ 62 - 0
src/views/IntegratedAlarm/component/power-plan.vue

@@ -0,0 +1,62 @@
+<template>
+  <div class="power-plan">
+    <row>
+      <Col :span="12">
+        <percent-card-2 title="月计划完成率" TotalText="实际" ActualText="计划" :TotalValue="monthPlan.plan" :ActualValue="monthPlan.actual" />
+      </Col>
+      <Col :span="12">
+        <percent-card-2 title="年计划完成率" TotalText="实际" ActualText="计划" :TotalValue="yearPlan.plan" :ActualValue="yearPlan.actual" />
+      </Col>
+    </row>
+  </div>
+</template>
+
+<script>
+import Col from "@com/coms/grid/col.vue";
+import Row from "@com/coms/grid/row.vue";
+import PercentCard2 from "@com/coms/cards/percent-card-2.vue";
+export default {
+  components: { Row, Col, PercentCard2 },
+  props: {
+
+  },
+  data() {
+    return {
+      // tab项
+      tabs: [
+        {
+          id: "1",
+          text: "风电",
+        },
+        {
+          id: "2",
+          text: "光电",
+        },
+        {
+          id: "3",
+          text: "总和",
+        },
+      ],
+      // 月计划完成率
+      monthPlan: {
+        plan: 343,
+        actual: 343,
+      },
+      // 年计划完成率
+      yearPlan: {
+        plan: 343,
+        actual: 343,
+      },
+    };
+  },
+  methods: {
+
+  },
+};
+</script>
+
+<style lang="less">
+.power-plan {
+  padding: 1.481vh 0;
+}
+</style>

+ 60 - 0
src/views/IntegratedAlarm/component/power-review.vue

@@ -0,0 +1,60 @@
+<template>
+  <div class="power-review">
+    <Row type="flex" justify="center" :align="'middle'">
+      <!-- 功率复核 PowerLoad -->
+      <Col v-for="item in PowerLoad" :key="item" :span="6">
+        <dash-pie-chart :title="item.title" :value="item.value" height="10vh" />
+      </Col>
+    </Row>
+  </div>
+</template>
+
+<script>
+import Col from "@com/coms/grid/col.vue";
+import Row from "@com/coms/grid/row.vue";
+import DashPieChart from "@com/chart/pie/dash-pie-chart.vue";
+
+export default {
+  components: {
+    Row,
+    Col,
+    DashPieChart,
+  },
+  data() {
+    return {
+      // 功率复核数据
+      PowerLoad: [
+        {
+          title: "风速",
+          value: 12.3,
+        },
+        {
+          title: "功率",
+          value: 22,
+        },
+      ],
+    };
+  },
+  mounted() {
+    this.PowerLoad = [
+      {
+        title: "风速",
+        value: 12,
+      },
+      {
+        title: "功率",
+        value: 22,
+      },
+    ];
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.power-review {
+  padding: 0;
+}
+.col + .col {
+  margin-left: 100px;
+}
+</style>

+ 288 - 0
src/views/IntegratedAlarm/component/rank-table.vue

@@ -0,0 +1,288 @@
+<template>
+    <table class="com-table rank-table">
+        <thead>
+            <tr>
+                <!-- <th>排名</th> -->
+                <th v-for="(col, index) of data.column" :key="index" :class="{ light: col.is_light }"
+                    :style="{ width: col.width, height: '4vh' }" @click="onSort(col)">
+                    {{ col.name }}
+                </th>
+            </tr>
+        </thead>
+        <el-scrollbar>
+            <tbody :style="{ height: height }">
+                <tr v-for="(row, index) of tableData" :key="index" class="rank" :class="rankSty(row)"
+                    @click="clickRow(row)">
+                    <!-- <td class="rank-index">
+            <span>{{ index + 1 }}</span>
+          </td> -->
+                    <td v-for="(col, i) of data.column" :key="i" :style="{ width: col.width }" :class="{
+              light: hoverRow == row || hoverCol == col,
+              num: col.is_num,
+              'always-light': col.is_light || row.is_light,
+            }" @mouseleave="leave()">
+                        <component :is="col.type ? col.type : 'span'" v-bind="col.props"
+                            v-html="template(col, row[col.field])" @click="onClick(col, row)">
+                        </component>
+                    </td>
+                </tr>
+            </tbody>
+        </el-scrollbar>
+        <el-pagination class="mg-t-8" v-if="pageable" @current-change="handleCurrentChange" :current-page="currentPage"
+            :page-size="pageSize" :total="data.total" v-bind="elPaggingProps">
+        </el-pagination>
+    </table>
+</template>
+
+<script>
+    export default {
+        // 名称
+        name: "ComTable",
+        // 使用组件
+        components: {},
+        // 传入参数
+        props: {
+            /**
+                *   {
+                        column: [{
+                            name: "风机名称",
+                            field: "name",
+                            type:'div',
+                            width:'', // 宽度
+                            is_num: false, // 是否为数字
+                            is_light: false, // 是否高亮
+                            template:function(){ }
+                            click:function(){} //点击事件
+                            sortable:fasle // 排序
+                            // 新增用于在表格中使用动态三方组件
+                            type:'el-tag', // * 新增 用于传入三方组件名称 实现三方组件引入  component :is 方式实现
+                            props:{}, // * 新增 用户传入三方组件的 props 与type同时使用
+                        },{
+                            name: "冷却风温度",
+                            field: "lqf",
+                            is_num: true,
+                            is_light: false
+                        }],
+                        data: [{
+                            name: "1E01",
+                            lqf: 15.78,
+                            is_light: false
+                        }],
+                        total:200
+                    }
+                */
+            data: Object,
+            // hover 样式
+            showHover: {
+                type: Boolean,
+                default: true,
+            },
+            // 列高亮
+            showColHover: {
+                type: Boolean,
+                default: false,
+            },
+            canScroll: {
+                type: Boolean,
+                default: true,
+            },
+            pageSize: {
+                type: Number,
+                default: 0,
+            },
+            height: {
+                type: String,
+                default: "",
+            },
+            // 新增 支持 pagging 组件
+            elPaggingProps: {
+                type: Object,
+                default: () => {
+                    return {
+                        layout: "total, sizes, prev, pager, next, jumper",
+                        // "page-sizes": [100, 200, 300, 400],
+                    };
+                },
+            },
+        },
+        // 自定义事件
+        emits: {
+            // 分页事件
+            onPagging: null,
+        },
+        // 数据
+        data() {
+            return {
+                hoverRow: -1,
+                hoverCol: -1,
+                sortCol: "",
+                sortType: "",
+                currentPage: 1,
+            };
+        },
+        computed: {
+            tableData() {
+                let that = this;
+                if (this.sortCol == "") {
+                    return this.data.data;
+                } else {
+                    let data = this.data.data;
+
+                    data.sort((a, b) => {
+                        let rev = 1;
+                        if (that.sortType == "ASC") rev = 1;
+                        else if (that.sortType == "DESC") rev = -1;
+
+                        if (a[that.sortCol] > b[that.sortCol]) return rev * 1;
+                        if (a[that.sortCol] < b[that.sortCol]) return rev * -1;
+                        return 0;
+                    });
+                    return data;
+                }
+            },
+            pageable() {
+                return this.pageSize != 0;
+            },
+            pages() {
+                if (this.pageable) return parseInt(this.data.total / this.pageSize) + 1;
+                else return 0;
+            },
+            startRow() {
+                if (this.pageable) return (this.currentPage - 1) * this.pageSize;
+                else return 0;
+            },
+            endRow() {
+                if (this.pageable) return this.currentPage * this.pageSize;
+                else return this.data.data.length;
+            },
+        },
+        // 函数
+        methods: {
+            rankSty(row) {
+                if (row.operation === '不可运行') {
+                    return 'rank0'
+                }
+            },
+            clickRow(row) {
+                this.$emit("rowClick", row);
+            },
+            onClick(col, data) {
+                if (col.click) col.click(event, data);
+            },
+            onSort(col) {
+                if (col.sortable == true) {
+                    this.sortCol = col.field;
+                    switch (this.sortType) {
+                        case "":
+                            this.sortType = "DESC";
+                            break;
+                        case "DESC":
+                            this.sortType = "ASC";
+                            break;
+                        case "ASC":
+                            this.sortType = "";
+                            break;
+                    }
+                }
+            },
+            template(col, data) {
+                if (!col.template) return data;
+                else return col.template(data);
+            },
+            hover(row, col) {
+                if (this.showHover) {
+                    this.hoverRow = row;
+                    if (this.showColHover) this.hoverCol = col;
+                }
+            },
+            leave() {
+                this.hoverRow = -1;
+                this.hoverCol = -1;
+            },
+            handleCurrentChange(val) {
+                this.currentPage = val;
+                this.$emit("onPagging", {
+                    pageIndex: this.currentPage,
+                    pageSize: this.pageSize,
+                    start: this.startRow,
+                    end: this.endRow,
+                });
+            },
+        },
+        // 生命周期钩子
+        beforeCreate() {
+            // 创建前
+        },
+        created() {
+            // 创建后
+        },
+        beforeMount() {
+            // 渲染前
+        },
+        mounted() {
+            // 渲染后
+        },
+        beforeUpdate() {},
+        updated() {},
+    };
+</script>
+
+<style lang="less">
+    .rank-table {
+        thead tr th {
+            color: #ffffff;
+        }
+
+        .rank {
+            background: transparent !important;
+            border-bottom: 1px solid #5362684d;
+            cursor: pointer;
+
+            td {
+                height: 4.5vh;
+                line-height: 4.5vh;
+                padding: 0;
+                color: #ffffff;
+
+                &.rank-index {
+                    span {
+                        width: 1.852vh;
+                        height: 1.852vh;
+                        display: flex;
+                        margin: 0.37vh auto;
+                        background: #414e64;
+                        align-items: center;
+                        justify-content: center;
+                    }
+                }
+            }
+        }
+
+        .rank.rank0 td {
+            color: #ffa025;
+
+            &.rank-index span {
+                background: #ffa025;
+                color: #ffffff;
+            }
+        }
+
+        // .rank.rank1 td {
+        //     color: #05bb4c;
+
+        //     &.rank-index span {
+        //         background: #05bb4c;
+        //         color: #ffffff;
+        //     }
+        // }
+
+        // .rank.rank2 td {
+        //     color: #4b55ae;
+
+        //     &.rank-index span {
+        //         background: #4b55ae;
+        //         color: #ffffff;
+        //     }
+        // }
+    }
+</style>

+ 151 - 0
src/views/IntegratedAlarm/component/st-back.vue

@@ -0,0 +1,151 @@
+<template>
+    <div class="st-back">
+        <svg viewBox="0 0 872 872" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+            <defs>
+                <polygon id="sjx-svg-def" points="13 0 26 22 0 22" fill="#F4DF6A"></polygon>
+                <rect id="cjx-svg-def" x="0" y="0" width="94" height="12" fill="#F4DF6A"></rect>
+            </defs>
+            <circle cx="436" cy="436" r="430" stroke="#2F3647" stroke-width="2" fill="none" stroke-dasharray="15,10">
+                <animateTransform
+                    attributeName="transform"
+                    attributeType="XML"
+                    type="rotate"
+                    from="359 436 436"
+                    to="0 436 436"
+                    dur="100s"
+                    repeatCount="indefinite"
+                />
+            </circle>
+            <circle cx="436" cy="436" r="270" stroke="#2F3647" stroke-width="70" fill="none" stroke-dasharray="500,50">
+                <animateTransform
+                    attributeName="transform"
+                    attributeType="XML"
+                    type="rotate"
+                    from="0 436 436"
+                    to="359 436 436"
+                    dur="50s"
+                    repeatCount="indefinite"
+                />
+            </circle>
+            <circle cx="436" cy="436" r="350" stroke="#2F3647" stroke-width="2" fill="none"></circle>
+            <use xlink:href="#sjx-svg-def" x="424" y="815">
+                <animateTransform
+                    attributeName="transform"
+                    attributeType="XML"
+                    type="rotate"
+                    from="0 436 436"
+                    to="359 436 436"
+                    dur="30s"
+                    repeatCount="indefinite"
+                />
+            </use>
+            <use xlink:href="#sjx-svg-def" x="75" y="245">
+                <animateTransform
+                    attributeName="transform"
+                    attributeType="XML"
+                    type="rotate"
+                    from="0 436 436"
+                    to="359 436 436"
+                    dur="30s"
+                    repeatCount="indefinite"
+                />
+            </use>
+            <use xlink:href="#sjx-svg-def" x="775" y="245">
+                <animateTransform
+                    attributeName="transform"
+                    attributeType="XML"
+                    type="rotate"
+                    from="0 436 436"
+                    to="359 436 436"
+                    dur="30s"
+                    repeatCount="indefinite"
+                />
+            </use>
+            <use xlink:href="#cjx-svg-def" x="390" y="778">
+                <animateTransform
+                    attributeName="transform"
+                    attributeType="XML"
+                    type="rotate"
+                    from="359 436 436"
+                    to="0 436 436"
+                    dur="30s"
+                    repeatCount="indefinite"
+                />
+            </use>
+            <use xlink:href="#cjx-svg-def" x="390" y="778">
+                <animateTransform
+                    attributeName="transform"
+                    attributeType="XML"
+                    type="rotate"
+                    from="135 436 436"
+                    to="-224 436 436"
+                    dur="30s"
+                    repeatCount="indefinite"
+                />
+            </use>
+            <use xlink:href="#cjx-svg-def" x="390" y="778">
+                <animateTransform
+                    attributeName="transform"
+                    attributeType="XML"
+                    type="rotate"
+                    from="225 436 436"
+                    to="-134 436 436"
+                    dur="30s"
+                    repeatCount="indefinite"
+                />
+            </use>
+        </svg>
+    </div>
+</template>
+
+<script>
+export default {
+    // 名称
+    name: "st-back",
+    // 使用组件
+    components: {},
+    // 数据
+    data() {
+        return {};
+    },
+    // 函数
+    methods: {},
+    // 生命周期钩子
+    beforeCreate() {
+        // 创建前
+    },
+    created() {
+        // 创建后
+    },
+    beforeMount() {
+        // 渲染前
+    },
+    mounted() {
+        // 渲染后
+    },
+    beforeUpdate() {
+        // 数据更新前
+    },
+    updated() {
+        // 数据更新后
+    },
+};
+</script>
+
+<style lang="less">
+.st-back {
+    width: 872px;
+    height: 872px;
+    position: fixed;
+    z-index: 0;
+    // left: calc(50% - 436px - 112px);
+    left: calc(50% - 436px);
+    top: calc(50% - 436px);
+    transform: rotateX(45deg);
+
+    svg {
+        width: 872px;
+        height: 872px;
+    }
+}
+</style>

+ 148 - 0
src/views/IntegratedAlarm/component/weather.vue

@@ -0,0 +1,148 @@
+<template>
+    <div class="weather">
+        <div class="weather-info">
+            <span class="svg-icon">
+                <svg-icon class="weather-icon" :svgid="'svg-' + sourceData.tqtp" />
+            </span>
+            <div>
+                <div class="temperature">{{ sourceData.wd }} °</div>
+                <div class="other">
+                    <span>{{ sourceData.tqmc }}</span>
+                    <span>{{ sourceData.fx }}</span>
+                    <span>{{ sourceData.fs }}</span>
+                </div>
+            </div>
+        </div>
+        <div class="other-info">
+            <Row>
+                <Col>
+                <div class="svg-icon svg-icon-sm other-icon">
+                    <svg-icon svgid="svg-能见度" />
+                </div>
+                <div class="value">{{ sourceData.qxd }}</div>
+                <div class="text">能见度</div>
+                </Col>
+                <Col>
+                <div class="svg-icon svg-icon-sm other-icon">
+                    <svg-icon svgid="svg-湿度" />
+                </div>
+                <div class="value">{{ sourceData.sd }}</div>
+                <div class="text">湿度</div>
+                </Col>
+                <Col>
+                <div class="svg-icon svg-icon-sm other-icon">
+                    <svg-icon svgid="svg-气压" />
+                </div>
+                <div class="value">{{ sourceData.dqyl }}</div>
+                <div class="text">气压</div>
+                </Col>
+                <Col>
+                <div class="svg-icon svg-icon-sm other-icon">
+                    <svg-icon svgid="svg-日出" />
+                </div>
+                <div class="value">{{ sourceData.richushijian }}</div>
+                <div class="text">日出时间</div>
+                </Col>
+                <Col>
+                <div class="svg-icon svg-icon-sm other-icon">
+                    <svg-icon svgid="svg-日落" />
+                </div>
+                <div class="value">{{ sourceData.riluoshijian }}</div>
+                <div class="text">日落时间</div>
+                </Col>
+            </Row>
+        </div>
+    </div>
+</template>
+
+<script>
+    import Col from "@com/coms/grid/col.vue";
+    import Row from "@com/coms/grid/row.vue";
+    import SvgIcon from "@com/coms/icon/svg-icon.vue";
+
+    export default {
+        components: {
+            Row,
+            Col,
+            SvgIcon
+        },
+        props: {
+            data: {
+                type: Object,
+                default: () => {},
+            },
+        },
+        // 数据自己获取天气情况
+        data() {
+            return {
+                weather: "阴", // 气象
+                temperature: "11", // 温度
+                windDirection: "北风", // 风向
+                windSpeed: "3-4级", // 风速
+                visibility: "20KM", //能见度
+                humidity: "75.0%", // 湿度
+                pressure: "994kPa", // 气压
+                sunrise: "04:06", // 日出
+                sunset: "18:50", // 日落
+
+                sourceData: {},
+            };
+        },
+
+        mounted() {
+            this.sourceData = this.data;
+        },
+
+        watch: {
+            data(res) {
+                this.sourceData = res;
+            },
+        },
+    };
+</script>
+
+<style lang="less" scoped>
+    .weather {
+        margin-top: 2.5vh;
+
+        .weather-info {
+            display: flex;
+            margin-bottom: 0.741vh;
+
+            .weather-icon {
+                width: 4.63vh;
+                height: 4.63vh;
+                margin: 0 1.481vh;
+            }
+
+            .temperature {
+                font-size: 2.407vh;
+            }
+
+            .other span {
+                font-size: @fontsize-s;
+                margin-right: 2.222vh;
+            }
+        }
+
+        .other-info {
+            text-align: center;
+            font-size: 14px;
+            margin-top: 2.5vh;
+
+            .text {
+                color: #9aa6a9;
+                font-size: 12px;
+                // margin-bottom: 0.741vh;
+            }
+
+            .value {
+                margin: 0.741vh 0 0 0;
+            }
+
+            .other-icon {
+                margin: 0 auto;
+            }
+        }
+    }
+</style>

File diff suppressed because it is too large
+ 1219 - 0
src/views/IntegratedAlarm/component/weatherDia.vue


File diff suppressed because it is too large
+ 3528 - 0
src/views/IntegratedAlarm/component/weatherDialog.vue


File diff suppressed because it is too large
+ 2181 - 0
src/views/IntegratedAlarm/component/weatherDialogdataJson.json


File diff suppressed because it is too large
+ 1257 - 9
src/views/IntegratedAlarm/index.vue


+ 346 - 0
src/views/economicsOperation/benchmarkingManagement/intervalBenchmarking/dataJson.json

@@ -0,0 +1,346 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 200,
+        "message": "成功",
+        "count": null,
+        "data": {
+            "total": 13,
+            "pageSize": 10,
+            "resultList": [
+                {
+                    "id": "SXJ_KGDL_XWT_FDC_STA",
+                    "name": "13风电场",
+                    "ordernum": 1.0,
+                    "date": null,
+                    "zhpm": 10,
+                    "fdlpm": 10,
+                    "fdl": 61.09,
+                    "llfdl": 172.47,
+                    "gzssdlpm": 10,
+                    "gzssdl": 107.97,
+                    "jxssdlpm": 2,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 4,
+                    "xnssdl": 3.41,
+                    "xdssdlpm": 2,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 9,
+                    "slssdl": 0.0,
+                    "fnlylpm": 10,
+                    "fnlyl": 35.42,
+                    "gzsslpm": 10,
+                    "gzssl": 62.6,
+                    "jxsslpm": 2,
+                    "jxssl": 0.0,
+                    "qflpm": 2,
+                    "qfl": 0.0,
+                    "xnsslpm": 9,
+                    "xnssl": 1.98,
+                    "zssdl": 111.38,
+                    "slssl": 0.0,
+                    "slsslpm": 9
+                },
+                {
+                    "id": "SXJ_KGDL_YF_FDC_STA",
+                    "name": "06风电场",
+                    "ordernum": 3.0,
+                    "date": null,
+                    "zhpm": 2,
+                    "fdlpm": 2,
+                    "fdl": 1065.82,
+                    "llfdl": 1089.16,
+                    "gzssdlpm": 2,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 9,
+                    "jxssdl": 14.62,
+                    "xnssdlpm": 8,
+                    "xnssdl": 8.71,
+                    "xdssdlpm": 8,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 6,
+                    "slssdl": 0.0,
+                    "fnlylpm": 6,
+                    "fnlyl": 97.86,
+                    "gzsslpm": 2,
+                    "gzssl": 0.0,
+                    "jxsslpm": 8,
+                    "jxssl": 1.34,
+                    "qflpm": 8,
+                    "qfl": 0.0,
+                    "xnsslpm": 6,
+                    "xnssl": 0.8,
+                    "zssdl": 23.33,
+                    "slssl": 0.0,
+                    "slsslpm": 6
+                },
+                {
+                    "id": "SXJ_KGDL_BHB3_FDC_STA",
+                    "name": "04风电场",
+                    "ordernum": 4.0,
+                    "date": null,
+                    "zhpm": 3,
+                    "fdlpm": 3,
+                    "fdl": 861.29,
+                    "llfdl": 878.1,
+                    "gzssdlpm": 9,
+                    "gzssdl": 11.6,
+                    "jxssdlpm": 1,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 7,
+                    "xnssdl": 5.21,
+                    "xdssdlpm": 1,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 4,
+                    "slssdl": 0.0,
+                    "fnlylpm": 5,
+                    "fnlyl": 98.09,
+                    "gzsslpm": 9,
+                    "gzssl": 1.32,
+                    "jxsslpm": 1,
+                    "jxssl": 0.0,
+                    "qflpm": 1,
+                    "qfl": 0.0,
+                    "xnsslpm": 4,
+                    "xnssl": 0.59,
+                    "zssdl": 16.81,
+                    "slssl": 0.0,
+                    "slsslpm": 4
+                },
+                {
+                    "id": "SXJ_KGDL_PDL_FDC_STA",
+                    "name": "11风电场",
+                    "ordernum": 5.0,
+                    "date": null,
+                    "zhpm": 7,
+                    "fdlpm": 7,
+                    "fdl": 440.64,
+                    "llfdl": 461.38,
+                    "gzssdlpm": 8,
+                    "gzssdl": 1.78,
+                    "jxssdlpm": 7,
+                    "jxssdl": 4.63,
+                    "xnssdlpm": 9,
+                    "xnssdl": 14.34,
+                    "xdssdlpm": 7,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 10,
+                    "slssdl": 0.0,
+                    "fnlylpm": 9,
+                    "fnlyl": 95.5,
+                    "gzsslpm": 7,
+                    "gzssl": 0.39,
+                    "jxsslpm": 7,
+                    "jxssl": 1.0,
+                    "qflpm": 7,
+                    "qfl": 0.0,
+                    "xnsslpm": 10,
+                    "xnssl": 3.11,
+                    "zssdl": 20.75,
+                    "slssl": 0.0,
+                    "slsslpm": 10
+                },
+                {
+                    "id": "SXJ_KGDL_GJY_FDC_STA",
+                    "name": "02风电场",
+                    "ordernum": 8.0,
+                    "date": null,
+                    "zhpm": 1,
+                    "fdlpm": 1,
+                    "fdl": 2613.97,
+                    "llfdl": 2642.33,
+                    "gzssdlpm": 6,
+                    "gzssdl": 0.23,
+                    "jxssdlpm": 6,
+                    "jxssdl": 2.01,
+                    "xnssdlpm": 10,
+                    "xnssdl": 26.12,
+                    "xdssdlpm": 4,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 7,
+                    "slssdl": 0.0,
+                    "fnlylpm": 3,
+                    "fnlyl": 98.93,
+                    "gzsslpm": 6,
+                    "gzssl": 0.01,
+                    "jxsslpm": 4,
+                    "jxssl": 0.08,
+                    "qflpm": 4,
+                    "qfl": 0.0,
+                    "xnsslpm": 7,
+                    "xnssl": 0.99,
+                    "zssdl": 28.36,
+                    "slssl": 0.0,
+                    "slsslpm": 7
+                },
+                {
+                    "id": "SXJ_KGDL_PTZ_FDC_STA",
+                    "name": "09风电场",
+                    "ordernum": 9.0,
+                    "date": null,
+                    "zhpm": 4,
+                    "fdlpm": 4,
+                    "fdl": 692.91,
+                    "llfdl": 718.73,
+                    "gzssdlpm": 4,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 10,
+                    "jxssdl": 21.47,
+                    "xnssdlpm": 6,
+                    "xnssdl": 4.35,
+                    "xdssdlpm": 10,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 5,
+                    "slssdl": 0.0,
+                    "fnlylpm": 8,
+                    "fnlyl": 96.41,
+                    "gzsslpm": 4,
+                    "gzssl": 0.0,
+                    "jxsslpm": 10,
+                    "jxssl": 2.99,
+                    "qflpm": 10,
+                    "qfl": 0.0,
+                    "xnsslpm": 5,
+                    "xnssl": 0.61,
+                    "zssdl": 25.82,
+                    "slssl": 0.0,
+                    "slsslpm": 5
+                },
+                {
+                    "id": "SXJ_KGDL_HSM_FDC_STA",
+                    "name": "05风电场",
+                    "ordernum": 10.0,
+                    "date": null,
+                    "zhpm": 8,
+                    "fdlpm": 8,
+                    "fdl": 338.02,
+                    "llfdl": 349.81,
+                    "gzssdlpm": 3,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 8,
+                    "jxssdl": 8.25,
+                    "xnssdlpm": 5,
+                    "xnssdl": 3.54,
+                    "xdssdlpm": 9,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 8,
+                    "slssdl": 0.0,
+                    "fnlylpm": 7,
+                    "fnlyl": 96.63,
+                    "gzsslpm": 3,
+                    "gzssl": 0.0,
+                    "jxsslpm": 9,
+                    "jxssl": 2.36,
+                    "qflpm": 9,
+                    "qfl": 0.0,
+                    "xnsslpm": 8,
+                    "xnssl": 1.01,
+                    "zssdl": 11.79,
+                    "slssl": 0.0,
+                    "slsslpm": 8
+                },
+                {
+                    "id": "SXJ_KGDL_ZK_FDC_STA",
+                    "name": "07风电场",
+                    "ordernum": 11.0,
+                    "date": null,
+                    "zhpm": 5,
+                    "fdlpm": 5,
+                    "fdl": 584.07,
+                    "llfdl": 585.34,
+                    "gzssdlpm": 1,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 4,
+                    "jxssdl": 0.57,
+                    "xnssdlpm": 3,
+                    "xnssdl": 0.7,
+                    "xdssdlpm": 5,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 2,
+                    "slssdl": 0.0,
+                    "fnlylpm": 2,
+                    "fnlyl": 99.78,
+                    "gzsslpm": 1,
+                    "gzssl": 0.0,
+                    "jxsslpm": 5,
+                    "jxssl": 0.1,
+                    "qflpm": 5,
+                    "qfl": 0.0,
+                    "xnsslpm": 2,
+                    "xnssl": 0.12,
+                    "zssdl": 1.27,
+                    "slssl": 0.0,
+                    "slsslpm": 2
+                },
+                {
+                    "id": "SXJ_KGDL_YTY_FDC_STA",
+                    "name": "08风电场",
+                    "ordernum": 12.0,
+                    "date": null,
+                    "zhpm": 9,
+                    "fdlpm": 9,
+                    "fdl": 192.61,
+                    "llfdl": 195.47,
+                    "gzssdlpm": 7,
+                    "gzssdl": 0.84,
+                    "jxssdlpm": 5,
+                    "jxssdl": 1.34,
+                    "xnssdlpm": 2,
+                    "xnssdl": 0.69,
+                    "xdssdlpm": 6,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 3,
+                    "slssdl": 0.0,
+                    "fnlylpm": 4,
+                    "fnlyl": 98.54,
+                    "gzsslpm": 8,
+                    "gzssl": 0.43,
+                    "jxsslpm": 6,
+                    "jxssl": 0.69,
+                    "qflpm": 6,
+                    "qfl": 0.0,
+                    "xnsslpm": 3,
+                    "xnssl": 0.35,
+                    "zssdl": 2.87,
+                    "slssl": 0.0,
+                    "slsslpm": 3
+                },
+                {
+                    "id": "SXJ_KGDL_YLZ_FDC_STA",
+                    "name": "10风电场",
+                    "ordernum": 13.0,
+                    "date": null,
+                    "zhpm": 6,
+                    "fdlpm": 6,
+                    "fdl": 499.79,
+                    "llfdl": 500.3,
+                    "gzssdlpm": 5,
+                    "gzssdl": 0.05,
+                    "jxssdlpm": 3,
+                    "jxssdl": 0.14,
+                    "xnssdlpm": 1,
+                    "xnssdl": 0.31,
+                    "xdssdlpm": 3,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 1,
+                    "slssdl": 0.0,
+                    "fnlylpm": 1,
+                    "fnlyl": 99.9,
+                    "gzsslpm": 5,
+                    "gzssl": 0.01,
+                    "jxsslpm": 3,
+                    "jxssl": 0.03,
+                    "qflpm": 3,
+                    "qfl": 0.0,
+                    "xnsslpm": 1,
+                    "xnssl": 0.06,
+                    "zssdl": 0.5,
+                    "slssl": 0.0,
+                    "slsslpm": 1
+                }
+            ],
+            "pageNum": 1
+        }
+    }
+}

+ 9 - 2
src/views/economicsOperation/benchmarkingManagement/intervalBenchmarking/index.vue

@@ -137,7 +137,8 @@
             <template v-slot="scope">
               <span
                 @click="goDetail(scope.row)"
-                style="cursor: pointer; color: #05bb4c"
+                style="cursor: pointer;"
+                :style="$store.state.moreSty === 'greenSty' ? 'color: #05bb4c' : 'color: #67b9ff'"
                 >{{ scope.row.name }}</span
               >
             </template>
@@ -287,6 +288,7 @@ import { getStation, cjdb, details } from "@/api/performance";
 import PieChart from "../../homePage/components/pieChart.vue";
 import BarCharts from "../../homePage/components/barCharts.vue";
 import dayinfo from "../compontent/dayinfo.vue";
+import dataJson from "./dataJson.json"
 export default {
   name: "intervalBenchmarking", //场际对标
   components: {
@@ -400,6 +402,7 @@ export default {
       //   this.initialization()
     },
     initialization() {
+        this.dataChange(dataJson.data)
       companys().then(({ data: res }) => {
         if (res.data) {
           this.company = res.data[0].id;
@@ -433,6 +436,11 @@ export default {
         target: "",
         sort: "",
       }).then(({ data: res }) => {
+        this.dataChange(res)
+        
+      });
+    },
+    dataChange(res) {
         if (res.data) {
           let barList = [
             {
@@ -476,7 +484,6 @@ export default {
           this.lossPower = lossPower;
           this.barList = barList;
         }
-      });
     },
     handleStationChange(val) {
       this.stationObj = val;

+ 440 - 0
src/views/economicsOperation/benchmarkingManagement/loseRate/dataJson.json

@@ -0,0 +1,440 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 200,
+        "message": "成功",
+        "count": null,
+        "data": [
+            {
+                "id": "SXJ_KGDL_XWT_FDC_STA",
+                "name": "13风电场",
+                "ordernum": 1.0,
+                "date": null,
+                "zhpm": 13,
+                "fdlpm": 13,
+                "fdl": 61.09,
+                "llfdl": 172.47,
+                "gzssdlpm": 13,
+                "gzssdl": 107.97,
+                "jxssdlpm": 4,
+                "jxssdl": 0.0,
+                "xnssdlpm": 5,
+                "xnssdl": 3.41,
+                "xdssdlpm": 4,
+                "xdssdl": 0.0,
+                "slssdlpm": 11,
+                "slssdl": 0.0,
+                "fnlylpm": 13,
+                "fnlyl": 35.42,
+                "gzsslpm": 13,
+                "gzssl": 62.6,
+                "jxsslpm": 4,
+                "jxssl": 0.0,
+                "qflpm": 4,
+                "qfl": 0.0,
+                "xnsslpm": 11,
+                "xnssl": 1.98,
+                "zssdl": 111.38,
+                "slssl": 0.0,
+                "slsslpm": 11
+            },
+            {
+                "id": "SXJ_KGDL_BHB_FDC_STA",
+                "name": "03风电场",
+                "ordernum": 2.0,
+                "date": null,
+                "zhpm": 5,
+                "fdlpm": 10,
+                "fdl": 266.02,
+                "llfdl": 275.19,
+                "gzssdlpm": 3,
+                "gzssdl": 0.0,
+                "jxssdlpm": 2,
+                "jxssdl": 0.0,
+                "xnssdlpm": 10,
+                "xnssdl": 9.17,
+                "xdssdlpm": 2,
+                "xdssdl": 0.0,
+                "slssdlpm": 13,
+                "slssdl": 0.0,
+                "fnlylpm": 8,
+                "fnlyl": 96.67,
+                "gzsslpm": 3,
+                "gzssl": 0.0,
+                "jxsslpm": 2,
+                "jxssl": 0.0,
+                "qflpm": 2,
+                "qfl": 0.0,
+                "xnsslpm": 13,
+                "xnssl": 3.33,
+                "zssdl": 9.17,
+                "slssl": 0.0,
+                "slsslpm": 13
+            },
+            {
+                "id": "SXJ_KGDL_YF_FDC_STA",
+                "name": "06风电场",
+                "ordernum": 3.0,
+                "date": null,
+                "zhpm": 9,
+                "fdlpm": 2,
+                "fdl": 1065.82,
+                "llfdl": 1089.16,
+                "gzssdlpm": 5,
+                "gzssdl": 0.0,
+                "jxssdlpm": 11,
+                "jxssdl": 14.62,
+                "xnssdlpm": 9,
+                "xnssdl": 8.71,
+                "xdssdlpm": 10,
+                "xdssdl": 0.0,
+                "slssdlpm": 7,
+                "slssdl": 0.0,
+                "fnlylpm": 7,
+                "fnlyl": 97.86,
+                "gzsslpm": 5,
+                "gzssl": 0.0,
+                "jxsslpm": 10,
+                "jxssl": 1.34,
+                "qflpm": 10,
+                "qfl": 0.0,
+                "xnsslpm": 7,
+                "xnssl": 0.8,
+                "zssdl": 23.33,
+                "slssl": 0.0,
+                "slsslpm": 7
+            },
+            {
+                "id": "SXJ_KGDL_BHB3_FDC_STA",
+                "name": "04风电场",
+                "ordernum": 4.0,
+                "date": null,
+                "zhpm": 7,
+                "fdlpm": 4,
+                "fdl": 861.29,
+                "llfdl": 878.1,
+                "gzssdlpm": 12,
+                "gzssdl": 11.6,
+                "jxssdlpm": 3,
+                "jxssdl": 0.0,
+                "xnssdlpm": 8,
+                "xnssdl": 5.21,
+                "xdssdlpm": 3,
+                "xdssdl": 0.0,
+                "slssdlpm": 5,
+                "slssdl": 0.0,
+                "fnlylpm": 6,
+                "fnlyl": 98.09,
+                "gzsslpm": 12,
+                "gzssl": 1.32,
+                "jxsslpm": 3,
+                "jxssl": 0.0,
+                "qflpm": 3,
+                "qfl": 0.0,
+                "xnsslpm": 5,
+                "xnssl": 0.59,
+                "zssdl": 16.81,
+                "slssl": 0.0,
+                "slsslpm": 5
+            },
+            {
+                "id": "SXJ_KGDL_PDL_FDC_STA",
+                "name": "11风电场",
+                "ordernum": 5.0,
+                "date": null,
+                "zhpm": 8,
+                "fdlpm": 8,
+                "fdl": 440.64,
+                "llfdl": 461.38,
+                "gzssdlpm": 11,
+                "gzssdl": 1.78,
+                "jxssdlpm": 9,
+                "jxssdl": 4.63,
+                "xnssdlpm": 11,
+                "xnssdl": 14.34,
+                "xdssdlpm": 9,
+                "xdssdl": 0.0,
+                "slssdlpm": 12,
+                "slssdl": 0.0,
+                "fnlylpm": 12,
+                "fnlyl": 95.5,
+                "gzsslpm": 10,
+                "gzssl": 0.39,
+                "jxsslpm": 9,
+                "jxssl": 1.0,
+                "qflpm": 9,
+                "qfl": 0.0,
+                "xnsslpm": 12,
+                "xnssl": 3.11,
+                "zssdl": 20.75,
+                "slssl": 0.0,
+                "slsslpm": 12
+            },
+            {
+                "id": "SXJ_KGDL_NJL_FDC_STA",
+                "name": "01风电场",
+                "ordernum": 6.0,
+                "date": null,
+                "zhpm": 12,
+                "fdlpm": 3,
+                "fdl": 927.97,
+                "llfdl": 965.82,
+                "gzssdlpm": 9,
+                "gzssdl": 0.38,
+                "jxssdlpm": 13,
+                "jxssdl": 22.43,
+                "xnssdlpm": 12,
+                "xnssdl": 15.03,
+                "xdssdlpm": 11,
+                "xdssdl": 0.0,
+                "slssdlpm": 10,
+                "slssdl": 0.0,
+                "fnlylpm": 11,
+                "fnlyl": 96.08,
+                "gzsslpm": 9,
+                "gzssl": 0.04,
+                "jxsslpm": 11,
+                "jxssl": 2.32,
+                "qflpm": 11,
+                "qfl": 0.0,
+                "xnsslpm": 10,
+                "xnssl": 1.56,
+                "zssdl": 37.84,
+                "slssl": 0.0,
+                "slsslpm": 10
+            },
+            {
+                "id": "SXJ_KGDL_DJY_FDC_STA",
+                "name": "14风电场",
+                "ordernum": 7.0,
+                "date": null,
+                "zhpm": 1,
+                "fdlpm": 12,
+                "fdl": 83.04,
+                "llfdl": 83.19,
+                "gzssdlpm": 1,
+                "gzssdl": 0.0,
+                "jxssdlpm": 1,
+                "jxssdl": 0.0,
+                "xnssdlpm": 1,
+                "xnssdl": 0.16,
+                "xdssdlpm": 1,
+                "xdssdl": 0.0,
+                "slssdlpm": 3,
+                "slssdl": 0.0,
+                "fnlylpm": 2,
+                "fnlyl": 99.82,
+                "gzsslpm": 1,
+                "gzssl": 0.0,
+                "jxsslpm": 1,
+                "jxssl": 0.0,
+                "qflpm": 1,
+                "qfl": 0.0,
+                "xnsslpm": 3,
+                "xnssl": 0.19,
+                "zssdl": 0.16,
+                "slssl": 0.0,
+                "slsslpm": 3
+            },
+            {
+                "id": "SXJ_KGDL_GJY_FDC_STA",
+                "name": "02风电场",
+                "ordernum": 8.0,
+                "date": null,
+                "zhpm": 11,
+                "fdlpm": 1,
+                "fdl": 2613.97,
+                "llfdl": 2642.33,
+                "gzssdlpm": 8,
+                "gzssdl": 0.23,
+                "jxssdlpm": 8,
+                "jxssdl": 2.01,
+                "xnssdlpm": 13,
+                "xnssdl": 26.12,
+                "xdssdlpm": 6,
+                "xdssdl": 0.0,
+                "slssdlpm": 8,
+                "slssdl": 0.0,
+                "fnlylpm": 4,
+                "fnlyl": 98.93,
+                "gzsslpm": 8,
+                "gzssl": 0.01,
+                "jxsslpm": 6,
+                "jxssl": 0.08,
+                "qflpm": 6,
+                "qfl": 0.0,
+                "xnsslpm": 8,
+                "xnssl": 0.99,
+                "zssdl": 28.36,
+                "slssl": 0.0,
+                "slsslpm": 8
+            },
+            {
+                "id": "SXJ_KGDL_PTZ_FDC_STA",
+                "name": "09风电场",
+                "ordernum": 9.0,
+                "date": null,
+                "zhpm": 10,
+                "fdlpm": 5,
+                "fdl": 692.91,
+                "llfdl": 718.73,
+                "gzssdlpm": 6,
+                "gzssdl": 0.0,
+                "jxssdlpm": 12,
+                "jxssdl": 21.47,
+                "xnssdlpm": 7,
+                "xnssdl": 4.35,
+                "xdssdlpm": 13,
+                "xdssdl": 0.0,
+                "slssdlpm": 6,
+                "slssdl": 0.0,
+                "fnlylpm": 10,
+                "fnlyl": 96.41,
+                "gzsslpm": 6,
+                "gzssl": 0.0,
+                "jxsslpm": 13,
+                "jxssl": 2.99,
+                "qflpm": 13,
+                "qfl": 0.0,
+                "xnsslpm": 6,
+                "xnssl": 0.61,
+                "zssdl": 25.82,
+                "slssl": 0.0,
+                "slsslpm": 6
+            },
+            {
+                "id": "SXJ_KGDL_HSM_FDC_STA",
+                "name": "05风电场",
+                "ordernum": 10.0,
+                "date": null,
+                "zhpm": 6,
+                "fdlpm": 9,
+                "fdl": 338.02,
+                "llfdl": 349.81,
+                "gzssdlpm": 4,
+                "gzssdl": 0.0,
+                "jxssdlpm": 10,
+                "jxssdl": 8.25,
+                "xnssdlpm": 6,
+                "xnssdl": 3.54,
+                "xdssdlpm": 12,
+                "xdssdl": 0.0,
+                "slssdlpm": 9,
+                "slssdl": 0.0,
+                "fnlylpm": 9,
+                "fnlyl": 96.63,
+                "gzsslpm": 4,
+                "gzssl": 0.0,
+                "jxsslpm": 12,
+                "jxssl": 2.36,
+                "qflpm": 12,
+                "qfl": 0.0,
+                "xnsslpm": 9,
+                "xnssl": 1.01,
+                "zssdl": 11.79,
+                "slssl": 0.0,
+                "slsslpm": 9
+            },
+            {
+                "id": "SXJ_KGDL_ZK_FDC_STA",
+                "name": "07风电场",
+                "ordernum": 11.0,
+                "date": null,
+                "zhpm": 3,
+                "fdlpm": 6,
+                "fdl": 584.07,
+                "llfdl": 585.34,
+                "gzssdlpm": 2,
+                "gzssdl": 0.0,
+                "jxssdlpm": 6,
+                "jxssdl": 0.57,
+                "xnssdlpm": 4,
+                "xnssdl": 0.7,
+                "xdssdlpm": 7,
+                "xdssdl": 0.0,
+                "slssdlpm": 2,
+                "slssdl": 0.0,
+                "fnlylpm": 3,
+                "fnlyl": 99.78,
+                "gzsslpm": 2,
+                "gzssl": 0.0,
+                "jxsslpm": 7,
+                "jxssl": 0.1,
+                "qflpm": 7,
+                "qfl": 0.0,
+                "xnsslpm": 2,
+                "xnssl": 0.12,
+                "zssdl": 1.27,
+                "slssl": 0.0,
+                "slsslpm": 2
+            },
+            {
+                "id": "SXJ_KGDL_YTY_FDC_STA",
+                "name": "08风电场",
+                "ordernum": 12.0,
+                "date": null,
+                "zhpm": 4,
+                "fdlpm": 11,
+                "fdl": 192.61,
+                "llfdl": 195.47,
+                "gzssdlpm": 10,
+                "gzssdl": 0.84,
+                "jxssdlpm": 7,
+                "jxssdl": 1.34,
+                "xnssdlpm": 3,
+                "xnssdl": 0.69,
+                "xdssdlpm": 8,
+                "xdssdl": 0.0,
+                "slssdlpm": 4,
+                "slssdl": 0.0,
+                "fnlylpm": 5,
+                "fnlyl": 98.54,
+                "gzsslpm": 11,
+                "gzssl": 0.43,
+                "jxsslpm": 8,
+                "jxssl": 0.69,
+                "qflpm": 8,
+                "qfl": 0.0,
+                "xnsslpm": 4,
+                "xnssl": 0.35,
+                "zssdl": 2.87,
+                "slssl": 0.0,
+                "slsslpm": 4
+            },
+            {
+                "id": "SXJ_KGDL_YLZ_FDC_STA",
+                "name": "10风电场",
+                "ordernum": 13.0,
+                "date": null,
+                "zhpm": 2,
+                "fdlpm": 7,
+                "fdl": 499.79,
+                "llfdl": 500.3,
+                "gzssdlpm": 7,
+                "gzssdl": 0.05,
+                "jxssdlpm": 5,
+                "jxssdl": 0.14,
+                "xnssdlpm": 2,
+                "xnssdl": 0.31,
+                "xdssdlpm": 5,
+                "xdssdl": 0.0,
+                "slssdlpm": 1,
+                "slssdl": 0.0,
+                "fnlylpm": 1,
+                "fnlyl": 99.9,
+                "gzsslpm": 7,
+                "gzssl": 0.01,
+                "jxsslpm": 5,
+                "jxssl": 0.03,
+                "qflpm": 5,
+                "qfl": 0.0,
+                "xnsslpm": 1,
+                "xnssl": 0.06,
+                "zssdl": 0.5,
+                "slssl": 0.0,
+                "slsslpm": 1
+            }
+        ]
+    }
+}

+ 9 - 3
src/views/economicsOperation/benchmarkingManagement/loseRate/index.vue

@@ -176,7 +176,8 @@
             <template #default="scope">
               <span
                 @click="goDetail(scope.row)"
-                style="cursor: pointer; color: #05bb4c"
+                style="cursor: pointer; "
+                :style="$store.state.moreSty === 'greenSty' ? 'color: #05bb4c' : 'color: #67b9ff'"
                 >{{ scope.row.name }}</span
               >
             </template>
@@ -319,6 +320,7 @@ import {
 import PieChart from "../../homePage/components/pieChart.vue";
 import BarCharts from "../../homePage/components/barCharts.vue";
 import dayinfo from "../compontent/dayinfo.vue";
+import dataJson from "./dataJson.json"
 export default {
   name: "lostRate", //场际对标
   components: {
@@ -416,6 +418,7 @@ export default {
       //   this.gerWxssl();
     },
     initialization() {
+        this.dataChange(dataJson.data)
       companys().then(({ data: res }) => {
         if (res.data) {
           this.company = res.data[0].id;
@@ -474,6 +477,11 @@ export default {
         target: "",
         sort: "",
       }).then(({ data: res }) => {
+        this.dataChange(res)
+        
+      });
+    },
+    dataChange(res) {
         if (res.data.length) {
           let barList = [
             {
@@ -522,9 +530,7 @@ export default {
           this.lossPower = [];
           this.barList = [];
         }
-      });
     },
-
     handleCompanyChange(val) {
       this.company = val;
       this.lineObj = [];

+ 221 - 0
src/views/economicsOperation/benchmarkingManagement/performanceRankingList/dataJson.json

@@ -0,0 +1,221 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 200,
+        "message": "成功",
+        "count": null,
+        "data": [
+            {
+                "id": "SXJ_KGDL_XWT_FDC_STA",
+                "name": "13风电场",
+                "llfdl": 172.47,
+                "sjfdl": 61.09,
+                "speed": 5.91,
+                "fjhjx": 107.97,
+                "jhjx": 0.0,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 3.41,
+                "fnlly": 35.42,
+                "point": 189.72,
+                "ordernum": 1
+            },
+            {
+                "id": "SXJ_KGDL_BHB_FDC_STA",
+                "name": "03风电场",
+                "llfdl": 275.19,
+                "sjfdl": 266.02,
+                "speed": 5.58,
+                "fjhjx": 0.0,
+                "jhjx": 0.0,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 9.17,
+                "fnlly": 96.67,
+                "point": 302.71,
+                "ordernum": 2
+            },
+            {
+                "id": "SXJ_KGDL_YF_FDC_STA",
+                "name": "06风电场",
+                "llfdl": 1089.16,
+                "sjfdl": 1065.82,
+                "speed": 5.07,
+                "fjhjx": 0.0,
+                "jhjx": 14.62,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 8.71,
+                "fnlly": 97.86,
+                "point": 1198.08,
+                "ordernum": 3
+            },
+            {
+                "id": "SXJ_KGDL_BHB3_FDC_STA",
+                "name": "04风电场",
+                "llfdl": 878.1,
+                "sjfdl": 861.29,
+                "speed": 5.68,
+                "fjhjx": 11.6,
+                "jhjx": 0.0,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 5.21,
+                "fnlly": 98.09,
+                "point": 965.91,
+                "ordernum": 4
+            },
+            {
+                "id": "SXJ_KGDL_PDL_FDC_STA",
+                "name": "11风电场",
+                "llfdl": 461.38,
+                "sjfdl": 440.64,
+                "speed": 7.53,
+                "fjhjx": 1.78,
+                "jhjx": 4.63,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 14.34,
+                "fnlly": 95.5,
+                "point": 507.52,
+                "ordernum": 5
+            },
+            {
+                "id": "SXJ_KGDL_NJL_FDC_STA",
+                "name": "01风电场",
+                "llfdl": 965.82,
+                "sjfdl": 927.97,
+                "speed": 6.79,
+                "fjhjx": 0.38,
+                "jhjx": 22.43,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 15.03,
+                "fnlly": 96.08,
+                "point": 1062.4,
+                "ordernum": 6
+            },
+            {
+                "id": "SXJ_KGDL_DJY_FDC_STA",
+                "name": "14风电场",
+                "llfdl": 83.19,
+                "sjfdl": 83.04,
+                "speed": 0.24,
+                "fjhjx": 0.0,
+                "jhjx": 0.0,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 0.16,
+                "fnlly": 99.82,
+                "point": 91.51,
+                "ordernum": 7
+            },
+            {
+                "id": "SXJ_KGDL_GJY_FDC_STA",
+                "name": "02风电场",
+                "llfdl": 2642.33,
+                "sjfdl": 2613.97,
+                "speed": 6.11,
+                "fjhjx": 0.23,
+                "jhjx": 2.01,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 26.12,
+                "fnlly": 98.93,
+                "point": 2906.56,
+                "ordernum": 8
+            },
+            {
+                "id": "SXJ_KGDL_PTZ_FDC_STA",
+                "name": "09风电场",
+                "llfdl": 718.73,
+                "sjfdl": 692.91,
+                "speed": 5.13,
+                "fjhjx": 0.0,
+                "jhjx": 21.47,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 4.35,
+                "fnlly": 96.41,
+                "point": 790.6,
+                "ordernum": 9
+            },
+            {
+                "id": "SXJ_KGDL_HSM_FDC_STA",
+                "name": "05风电场",
+                "llfdl": 349.81,
+                "sjfdl": 338.02,
+                "speed": 4.78,
+                "fjhjx": 0.0,
+                "jhjx": 8.25,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 3.54,
+                "fnlly": 96.63,
+                "point": 384.79,
+                "ordernum": 10
+            },
+            {
+                "id": "SXJ_KGDL_ZK_FDC_STA",
+                "name": "07风电场",
+                "llfdl": 585.34,
+                "sjfdl": 584.07,
+                "speed": 4.02,
+                "fjhjx": 0.0,
+                "jhjx": 0.57,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 0.7,
+                "fnlly": 99.78,
+                "point": 643.87,
+                "ordernum": 11
+            },
+            {
+                "id": "SXJ_KGDL_YTY_FDC_STA",
+                "name": "08风电场",
+                "llfdl": 195.47,
+                "sjfdl": 192.61,
+                "speed": 5.52,
+                "fjhjx": 0.84,
+                "jhjx": 1.34,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 0.69,
+                "fnlly": 98.54,
+                "point": 215.02,
+                "ordernum": 12
+            },
+            {
+                "id": "SXJ_KGDL_YLZ_FDC_STA",
+                "name": "10风电场",
+                "llfdl": 500.3,
+                "sjfdl": 499.79,
+                "speed": 4.12,
+                "fjhjx": 0.05,
+                "jhjx": 0.14,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 0.31,
+                "fnlly": 99.9,
+                "point": 550.33,
+                "ordernum": 13
+            },
+            {
+                "id": "hj",
+                "name": "合计",
+                "llfdl": 8917.29,
+                "sjfdl": 8627.24,
+                "speed": 5.11,
+                "fjhjx": 122.85,
+                "jhjx": 75.46,
+                "sl": 0.0,
+                "xd": 0.0,
+                "xn": 91.74,
+                "fnlly": 96.75,
+                "point": 9809.02,
+                "ordernum": null
+            }
+        ]
+    }
+}

File diff suppressed because it is too large
+ 726 - 751
src/views/economicsOperation/benchmarkingManagement/performanceRankingList/index.vue


+ 379 - 0
src/views/economicsOperation/benchmarkingManagement/projectBenchmarking/dataJson.json

@@ -0,0 +1,379 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 200,
+        "message": "成功",
+        "count": null,
+        "data": {
+            "total": 18,
+            "pageSize": 11,
+            "resultList": [
+                {
+                    "id": "SXJ_KGDL_GJYF01_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 1.0,
+                    "date": null,
+                    "zhpm": 5,
+                    "fdlpm": 5,
+                    "fdl": 473.49,
+                    "llfdl": 478.71,
+                    "gzssdlpm": 9,
+                    "gzssdl": 0.23,
+                    "jxssdlpm": 8,
+                    "jxssdl": 0.72,
+                    "xnssdlpm": 7,
+                    "xnssdl": 4.26,
+                    "xdssdlpm": 8,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 7,
+                    "slssdl": 0.0,
+                    "fnlylpm": 4,
+                    "fnlyl": 98.91,
+                    "gzsslpm": 9,
+                    "gzssl": 0.05,
+                    "jxsslpm": 8,
+                    "jxssl": 0.15,
+                    "qflpm": 8,
+                    "qfl": 0.0,
+                    "xnsslpm": 7,
+                    "xnssl": 0.89,
+                    "zssdl": 5.21,
+                    "slssl": 0.0,
+                    "slsslpm": 7
+                },
+                {
+                    "id": "SXJ_KGDL_GJYF02_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 2.0,
+                    "date": null,
+                    "zhpm": 1,
+                    "fdlpm": 1,
+                    "fdl": 1591.28,
+                    "llfdl": 1610.34,
+                    "gzssdlpm": 4,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 5,
+                    "jxssdl": 0.19,
+                    "xnssdlpm": 11,
+                    "xnssdl": 18.88,
+                    "xdssdlpm": 5,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 9,
+                    "slssdl": 0.0,
+                    "fnlylpm": 5,
+                    "fnlyl": 98.82,
+                    "gzsslpm": 4,
+                    "gzssl": 0.0,
+                    "jxsslpm": 5,
+                    "jxssl": 0.01,
+                    "qflpm": 5,
+                    "qfl": 0.0,
+                    "xnsslpm": 9,
+                    "xnssl": 1.17,
+                    "zssdl": 19.07,
+                    "slssl": 0.0,
+                    "slsslpm": 9
+                },
+                {
+                    "id": "SXJ_KGDL_YFF01_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 4.0,
+                    "date": null,
+                    "zhpm": 3,
+                    "fdlpm": 3,
+                    "fdl": 719.27,
+                    "llfdl": 734.93,
+                    "gzssdlpm": 5,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 10,
+                    "jxssdl": 10.31,
+                    "xnssdlpm": 9,
+                    "xnssdl": 5.36,
+                    "xdssdlpm": 9,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 6,
+                    "slssdl": 0.0,
+                    "fnlylpm": 7,
+                    "fnlyl": 97.87,
+                    "gzsslpm": 5,
+                    "gzssl": 0.0,
+                    "jxsslpm": 9,
+                    "jxssl": 1.4,
+                    "qflpm": 9,
+                    "qfl": 0.0,
+                    "xnsslpm": 6,
+                    "xnssl": 0.73,
+                    "zssdl": 15.67,
+                    "slssl": 0.0,
+                    "slsslpm": 6
+                },
+                {
+                    "id": "SXJ_KGDL_PTZF01_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 9.0,
+                    "date": null,
+                    "zhpm": 8,
+                    "fdlpm": 8,
+                    "fdl": 267.8,
+                    "llfdl": 290.64,
+                    "gzssdlpm": 8,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 11,
+                    "jxssdl": 21.26,
+                    "xnssdlpm": 3,
+                    "xnssdl": 1.58,
+                    "xdssdlpm": 11,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 3,
+                    "slssdl": 0.0,
+                    "fnlylpm": 10,
+                    "fnlyl": 92.14,
+                    "gzsslpm": 8,
+                    "gzssl": 0.0,
+                    "jxsslpm": 11,
+                    "jxssl": 7.31,
+                    "qflpm": 11,
+                    "qfl": 0.0,
+                    "xnsslpm": 3,
+                    "xnssl": 0.54,
+                    "zssdl": 22.84,
+                    "slssl": 0.0,
+                    "slsslpm": 3
+                },
+                {
+                    "id": "SXJ_KGDL_PTZF02_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 10.0,
+                    "date": null,
+                    "zhpm": 6,
+                    "fdlpm": 6,
+                    "fdl": 425.11,
+                    "llfdl": 428.09,
+                    "gzssdlpm": 3,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 6,
+                    "jxssdl": 0.21,
+                    "xnssdlpm": 4,
+                    "xnssdl": 2.76,
+                    "xdssdlpm": 6,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 5,
+                    "slssdl": 0.0,
+                    "fnlylpm": 3,
+                    "fnlyl": 99.3,
+                    "gzsslpm": 3,
+                    "gzssl": 0.0,
+                    "jxsslpm": 6,
+                    "jxssl": 0.05,
+                    "qflpm": 6,
+                    "qfl": 0.0,
+                    "xnsslpm": 5,
+                    "xnssl": 0.64,
+                    "zssdl": 2.97,
+                    "slssl": 0.0,
+                    "slsslpm": 5
+                },
+                {
+                    "id": "SXJ_KGDL_XWTF01_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 11.0,
+                    "date": null,
+                    "zhpm": 10,
+                    "fdlpm": 11,
+                    "fdl": 61.09,
+                    "llfdl": 172.47,
+                    "gzssdlpm": 11,
+                    "gzssdl": 107.97,
+                    "jxssdlpm": 4,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 5,
+                    "xnssdl": 3.41,
+                    "xdssdlpm": 4,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 10,
+                    "slssdl": 0.0,
+                    "fnlylpm": 11,
+                    "fnlyl": 35.42,
+                    "gzsslpm": 11,
+                    "gzssl": 62.6,
+                    "jxsslpm": 4,
+                    "jxssl": 0.0,
+                    "qflpm": 4,
+                    "qfl": 0.0,
+                    "xnsslpm": 10,
+                    "xnssl": 1.98,
+                    "zssdl": 111.38,
+                    "slssl": 0.0,
+                    "slsslpm": 10
+                },
+                {
+                    "id": "SXJ_KGDL_HSMF01_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 12.0,
+                    "date": null,
+                    "zhpm": 7,
+                    "fdlpm": 7,
+                    "fdl": 338.02,
+                    "llfdl": 349.81,
+                    "gzssdlpm": 7,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 9,
+                    "jxssdl": 8.25,
+                    "xnssdlpm": 6,
+                    "xnssdl": 3.54,
+                    "xdssdlpm": 10,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 8,
+                    "slssdl": 0.0,
+                    "fnlylpm": 9,
+                    "fnlyl": 96.63,
+                    "gzsslpm": 7,
+                    "gzssl": 0.0,
+                    "jxsslpm": 10,
+                    "jxssl": 2.36,
+                    "qflpm": 10,
+                    "qfl": 0.0,
+                    "xnsslpm": 8,
+                    "xnssl": 1.01,
+                    "zssdl": 11.79,
+                    "slssl": 0.0,
+                    "slsslpm": 8
+                },
+                {
+                    "id": "SXJ_KGDL_ZKF01_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 14.0,
+                    "date": null,
+                    "zhpm": 4,
+                    "fdlpm": 4,
+                    "fdl": 584.07,
+                    "llfdl": 585.34,
+                    "gzssdlpm": 2,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 7,
+                    "jxssdl": 0.57,
+                    "xnssdlpm": 2,
+                    "xnssdl": 0.7,
+                    "xdssdlpm": 7,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 1,
+                    "slssdl": 0.0,
+                    "fnlylpm": 2,
+                    "fnlyl": 99.78,
+                    "gzsslpm": 2,
+                    "gzssl": 0.0,
+                    "jxsslpm": 7,
+                    "jxssl": 0.1,
+                    "qflpm": 7,
+                    "qfl": 0.0,
+                    "xnsslpm": 1,
+                    "xnssl": 0.12,
+                    "zssdl": 1.27,
+                    "slssl": 0.0,
+                    "slsslpm": 1
+                },
+                {
+                    "id": "SXJ_KGDL_BHBF01_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 16.0,
+                    "date": null,
+                    "zhpm": 9,
+                    "fdlpm": 9,
+                    "fdl": 266.02,
+                    "llfdl": 275.19,
+                    "gzssdlpm": 6,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 2,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 10,
+                    "xnssdl": 9.17,
+                    "xdssdlpm": 2,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 11,
+                    "slssdl": 0.0,
+                    "fnlylpm": 8,
+                    "fnlyl": 96.67,
+                    "gzsslpm": 6,
+                    "gzssl": 0.0,
+                    "jxsslpm": 2,
+                    "jxssl": 0.0,
+                    "qflpm": 2,
+                    "qfl": 0.0,
+                    "xnsslpm": 11,
+                    "xnssl": 3.33,
+                    "zssdl": 9.17,
+                    "slssl": 0.0,
+                    "slsslpm": 11
+                },
+                {
+                    "id": "SXJ_KGDL_BHB3F01_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 19.0,
+                    "date": null,
+                    "zhpm": 2,
+                    "fdlpm": 2,
+                    "fdl": 861.29,
+                    "llfdl": 878.1,
+                    "gzssdlpm": 10,
+                    "gzssdl": 11.6,
+                    "jxssdlpm": 3,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 8,
+                    "xnssdl": 5.21,
+                    "xdssdlpm": 3,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 4,
+                    "slssdl": 0.0,
+                    "fnlylpm": 6,
+                    "fnlyl": 98.09,
+                    "gzsslpm": 10,
+                    "gzssl": 1.32,
+                    "jxsslpm": 3,
+                    "jxssl": 0.0,
+                    "qflpm": 3,
+                    "qfl": 0.0,
+                    "xnsslpm": 4,
+                    "xnssl": 0.59,
+                    "zssdl": 16.81,
+                    "slssl": 0.0,
+                    "slsslpm": 4
+                },
+                {
+                    "id": "SXJ_KGDL_DJYF01_EG",
+                    "name": "某某一期项目",
+                    "ordernum": 20.0,
+                    "date": null,
+                    "zhpm": 11,
+                    "fdlpm": 10,
+                    "fdl": 83.04,
+                    "llfdl": 83.19,
+                    "gzssdlpm": 1,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 1,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 1,
+                    "xnssdl": 0.16,
+                    "xdssdlpm": 1,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 2,
+                    "slssdl": 0.0,
+                    "fnlylpm": 1,
+                    "fnlyl": 99.82,
+                    "gzsslpm": 1,
+                    "gzssl": 0.0,
+                    "jxsslpm": 1,
+                    "jxssl": 0.0,
+                    "qflpm": 1,
+                    "qfl": 0.0,
+                    "xnsslpm": 2,
+                    "xnssl": 0.19,
+                    "zssdl": 0.16,
+                    "slssl": 0.0,
+                    "slsslpm": 2
+                }
+            ],
+            "pageNum": 1
+        }
+    }
+}

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

@@ -156,7 +156,8 @@
             <template v-slot="scope">
               <span
                 @click="goDetail(scope.row)"
-                style="cursor: pointer; color: #05bb4c"
+                style="cursor: pointer;"
+                :style="$store.state.moreSty === 'greenSty' ? 'color: #05bb4c' : 'color: #67b9ff'"
                 >{{ scope.row.name }}</span
               >
             </template>
@@ -307,6 +308,7 @@ import { getStation, getProject, xmdb, details } from "@/api/performance";
 import PieChart from "../../homePage/components/pieChart.vue";
 import BarCharts from "../../homePage/components/barCharts.vue";
 import dayinfo from "../compontent/dayinfo.vue";
+import dataJson from "./dataJson.json"
 export default {
   name: "projectBenchmarking", //项目对标
   components: {
@@ -406,6 +408,7 @@ export default {
       this.getXmdb();
     },
     initialization() {
+        this.dataChange(dataJson.data)
       companys().then(({ data: res }) => {
         if (res.data) {
           this.company = res.data[0].id;
@@ -451,6 +454,11 @@ export default {
         target: "",
         sort: "",
       }).then(({ data: res }) => {
+        this.dataChange(res)
+        
+      });
+    },
+    dataChange(res) {
         if (res.data) {
           let barList = [
             {
@@ -494,7 +502,6 @@ export default {
           this.lossPower = lossPower;
           this.barList = barList;
         }
-      });
     },
     handleStationChange(val) {
       if (!val.length) {

+ 280 - 0
src/views/economicsOperation/benchmarkingManagement/siteBenchmarking/dataJson.json

@@ -0,0 +1,280 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 200,
+        "message": "成功",
+        "count": null,
+        "data": {
+            "total": 8,
+            "pageSize": 11,
+            "resultList": [
+                {
+                    "id": null,
+                    "name": null,
+                    "ordernum": null,
+                    "date": "2024-08-08",
+                    "zhpm": 8,
+                    "fdlpm": 8,
+                    "fdl": 0.06,
+                    "llfdl": 1.13,
+                    "gzssdlpm": 1,
+                    "gzssdl": 1.05,
+                    "jxssdlpm": 8,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 1,
+                    "xnssdl": 0.01,
+                    "xdssdlpm": 8,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 1,
+                    "slssdl": 0.0,
+                    "fnlylpm": 8,
+                    "fnlyl": 5.31,
+                    "gzsslpm": 8,
+                    "gzssl": 92.92,
+                    "jxsslpm": 8,
+                    "jxssl": 0.0,
+                    "qflpm": 8,
+                    "qfl": 0.0,
+                    "xnsslpm": 1,
+                    "xnssl": 0.88,
+                    "zssdl": 1.06,
+                    "slssl": 0.0,
+                    "slsslpm": 1
+                },
+                {
+                    "id": null,
+                    "name": null,
+                    "ordernum": null,
+                    "date": "2024-08-09",
+                    "zhpm": 4,
+                    "fdlpm": 4,
+                    "fdl": 2.75,
+                    "llfdl": 10.0,
+                    "gzssdlpm": 5,
+                    "gzssdl": 6.89,
+                    "jxssdlpm": 4,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 7,
+                    "xnssdl": 0.37,
+                    "xdssdlpm": 4,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 8,
+                    "slssdl": 0.0,
+                    "fnlylpm": 4,
+                    "fnlyl": 27.5,
+                    "gzsslpm": 4,
+                    "gzssl": 68.9,
+                    "jxsslpm": 4,
+                    "jxssl": 0.0,
+                    "qflpm": 4,
+                    "qfl": 0.0,
+                    "xnsslpm": 8,
+                    "xnssl": 3.7,
+                    "zssdl": 7.26,
+                    "slssl": 0.0,
+                    "slsslpm": 8
+                },
+                {
+                    "id": null,
+                    "name": null,
+                    "ordernum": null,
+                    "date": "2024-08-10",
+                    "zhpm": 3,
+                    "fdlpm": 1,
+                    "fdl": 11.2,
+                    "llfdl": 27.91,
+                    "gzssdlpm": 6,
+                    "gzssdl": 16.19,
+                    "jxssdlpm": 1,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 8,
+                    "xnssdl": 0.53,
+                    "xdssdlpm": 1,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 7,
+                    "slssdl": 0.0,
+                    "fnlylpm": 1,
+                    "fnlyl": 40.13,
+                    "gzsslpm": 1,
+                    "gzssl": 58.01,
+                    "jxsslpm": 1,
+                    "jxssl": 0.0,
+                    "qflpm": 1,
+                    "qfl": 0.0,
+                    "xnsslpm": 7,
+                    "xnssl": 1.9,
+                    "zssdl": 16.72,
+                    "slssl": 0.0,
+                    "slsslpm": 7
+                },
+                {
+                    "id": null,
+                    "name": null,
+                    "ordernum": null,
+                    "date": "2024-08-11",
+                    "zhpm": 1,
+                    "fdlpm": 2,
+                    "fdl": 10.13,
+                    "llfdl": 28.55,
+                    "gzssdlpm": 7,
+                    "gzssdl": 18.12,
+                    "jxssdlpm": 2,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 5,
+                    "xnssdl": 0.3,
+                    "xdssdlpm": 2,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 2,
+                    "slssdl": 0.0,
+                    "fnlylpm": 2,
+                    "fnlyl": 35.48,
+                    "gzsslpm": 2,
+                    "gzssl": 63.47,
+                    "jxsslpm": 2,
+                    "jxssl": 0.0,
+                    "qflpm": 2,
+                    "qfl": 0.0,
+                    "xnsslpm": 2,
+                    "xnssl": 1.05,
+                    "zssdl": 18.42,
+                    "slssl": 0.0,
+                    "slsslpm": 2
+                },
+                {
+                    "id": null,
+                    "name": null,
+                    "ordernum": null,
+                    "date": "2024-08-12",
+                    "zhpm": 5,
+                    "fdlpm": 5,
+                    "fdl": 0.85,
+                    "llfdl": 3.15,
+                    "gzssdlpm": 4,
+                    "gzssdl": 2.26,
+                    "jxssdlpm": 7,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 4,
+                    "xnssdl": 0.04,
+                    "xdssdlpm": 7,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 4,
+                    "slssdl": 0.0,
+                    "fnlylpm": 7,
+                    "fnlyl": 26.98,
+                    "gzsslpm": 7,
+                    "gzssl": 71.75,
+                    "jxsslpm": 7,
+                    "jxssl": 0.0,
+                    "qflpm": 7,
+                    "qfl": 0.0,
+                    "xnsslpm": 4,
+                    "xnssl": 1.27,
+                    "zssdl": 2.3,
+                    "slssl": 0.0,
+                    "slsslpm": 4
+                },
+                {
+                    "id": null,
+                    "name": null,
+                    "ordernum": null,
+                    "date": "2024-08-13",
+                    "zhpm": 6,
+                    "fdlpm": 6,
+                    "fdl": 0.83,
+                    "llfdl": 3.07,
+                    "gzssdlpm": 2,
+                    "gzssdl": 2.2,
+                    "jxssdlpm": 5,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 2,
+                    "xnssdl": 0.04,
+                    "xdssdlpm": 5,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 5,
+                    "slssdl": 0.0,
+                    "fnlylpm": 5,
+                    "fnlyl": 27.04,
+                    "gzsslpm": 5,
+                    "gzssl": 71.66,
+                    "jxsslpm": 5,
+                    "jxssl": 0.0,
+                    "qflpm": 5,
+                    "qfl": 0.0,
+                    "xnsslpm": 5,
+                    "xnssl": 1.3,
+                    "zssdl": 2.24,
+                    "slssl": 0.0,
+                    "slsslpm": 5
+                },
+                {
+                    "id": null,
+                    "name": null,
+                    "ordernum": null,
+                    "date": "2024-08-14",
+                    "zhpm": 7,
+                    "fdlpm": 7,
+                    "fdl": 0.83,
+                    "llfdl": 3.07,
+                    "gzssdlpm": 3,
+                    "gzssdl": 2.2,
+                    "jxssdlpm": 6,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 3,
+                    "xnssdl": 0.04,
+                    "xdssdlpm": 6,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 6,
+                    "slssdl": 0.0,
+                    "fnlylpm": 6,
+                    "fnlyl": 27.04,
+                    "gzsslpm": 6,
+                    "gzssl": 71.66,
+                    "jxsslpm": 6,
+                    "jxssl": 0.0,
+                    "qflpm": 6,
+                    "qfl": 0.0,
+                    "xnsslpm": 6,
+                    "xnssl": 1.3,
+                    "zssdl": 2.24,
+                    "slssl": 0.0,
+                    "slsslpm": 6
+                },
+                {
+                    "id": null,
+                    "name": null,
+                    "ordernum": null,
+                    "date": "2024-08-15",
+                    "zhpm": 2,
+                    "fdlpm": 3,
+                    "fdl": 10.13,
+                    "llfdl": 28.55,
+                    "gzssdlpm": 8,
+                    "gzssdl": 18.12,
+                    "jxssdlpm": 3,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 6,
+                    "xnssdl": 0.3,
+                    "xdssdlpm": 3,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 3,
+                    "slssdl": 0.0,
+                    "fnlylpm": 3,
+                    "fnlyl": 35.48,
+                    "gzsslpm": 3,
+                    "gzssl": 63.47,
+                    "jxsslpm": 3,
+                    "jxssl": 0.0,
+                    "qflpm": 3,
+                    "qfl": 0.0,
+                    "xnsslpm": 3,
+                    "xnssl": 1.05,
+                    "zssdl": 18.42,
+                    "slssl": 0.0,
+                    "slsslpm": 3
+                }
+            ],
+            "pageNum": 1
+        }
+    }
+}

+ 9 - 2
src/views/economicsOperation/benchmarkingManagement/siteBenchmarking/index.vue

@@ -135,7 +135,8 @@
             <template v-slot="scope">
               <span
                 @click="goDetail(scope.row)"
-                style="cursor: pointer; color: #05bb4c"
+                style="cursor: pointer;"
+                :style="$store.state.moreSty === 'greenSty' ? 'color: #05bb4c' : 'color: #67b9ff'"
                 >{{ scope.row.date }}</span
               >
             </template>
@@ -590,6 +591,7 @@ import { getStation, cndb, thb, details } from "@/api/performance";
 import PieChart from "../../homePage/components/pieChart.vue";
 import BarCharts from "../../homePage/components/barCharts.vue";
 import dayinfo from "../compontent/dayinfo.vue";
+import dataJson from "./dataJson.json"
 export default {
   name: "siteBenchmarking", //场内对标
   components: {
@@ -705,6 +707,7 @@ export default {
       //   this.initialization();
     },
     initialization() {
+        this.dataChange(dataJson.data)
       companys().then(({ data: res }) => {
         if (res.data) {
           this.company = res.data[0].id;
@@ -742,6 +745,11 @@ export default {
         target: "",
         sort: "",
       }).then(({ data: res }) => {
+        this.dataChange(res)
+        
+      });
+    },
+    dataChange(res) {
         if (res.data && res.data.resultList && res.data.resultList.length) {
           let barList = [
             {
@@ -792,7 +800,6 @@ export default {
           this.lossPower = [];
           this.barList = [];
         }
-      });
     },
     handleStationChange(val) {
       this.stationObj = val;

+ 379 - 0
src/views/economicsOperation/benchmarkingManagement/wiringBenchmarking/dataJson.json

@@ -0,0 +1,379 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 200,
+        "message": "成功",
+        "count": null,
+        "data": {
+            "total": 58,
+            "pageSize": 11,
+            "resultList": [
+                {
+                    "id": "SXJ_KGDL_GJYF01_LN",
+                    "name": "某风电场一号集电线路",
+                    "ordernum": 1.0,
+                    "date": null,
+                    "zhpm": 3,
+                    "fdlpm": 3,
+                    "fdl": 249.53,
+                    "llfdl": 252.41,
+                    "gzssdlpm": 8,
+                    "gzssdl": 0.2,
+                    "jxssdlpm": 8,
+                    "jxssdl": 0.59,
+                    "xnssdlpm": 8,
+                    "xnssdl": 2.09,
+                    "xdssdlpm": 8,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 7,
+                    "slssdl": 0.0,
+                    "fnlylpm": 4,
+                    "fnlyl": 98.86,
+                    "gzsslpm": 8,
+                    "gzssl": 0.08,
+                    "jxsslpm": 8,
+                    "jxssl": 0.23,
+                    "qflpm": 8,
+                    "qfl": 0.0,
+                    "xnsslpm": 7,
+                    "xnssl": 0.83,
+                    "zssdl": 2.88,
+                    "slssl": 0.0,
+                    "slsslpm": 7
+                },
+                {
+                    "id": "SXJ_KGDL_GJYF05_LN",
+                    "name": "某风电场五号集电线路",
+                    "ordernum": 5.0,
+                    "date": null,
+                    "zhpm": 1,
+                    "fdlpm": 1,
+                    "fdl": 259.62,
+                    "llfdl": 263.0,
+                    "gzssdlpm": 4,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 4,
+                    "jxssdl": 0.05,
+                    "xnssdlpm": 9,
+                    "xnssdl": 3.34,
+                    "xdssdlpm": 4,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 8,
+                    "slssdl": 0.0,
+                    "fnlylpm": 5,
+                    "fnlyl": 98.71,
+                    "gzsslpm": 4,
+                    "gzssl": 0.0,
+                    "jxsslpm": 4,
+                    "jxssl": 0.02,
+                    "qflpm": 4,
+                    "qfl": 0.0,
+                    "xnsslpm": 8,
+                    "xnssl": 1.27,
+                    "zssdl": 3.39,
+                    "slssl": 0.0,
+                    "slsslpm": 8
+                },
+                {
+                    "id": "SXJ_KGDL_GJYF08_LN",
+                    "name": "某风电场八号集电线路",
+                    "ordernum": 8.0,
+                    "date": null,
+                    "zhpm": 2,
+                    "fdlpm": 2,
+                    "fdl": 253.95,
+                    "llfdl": 255.87,
+                    "gzssdlpm": 3,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 2,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 7,
+                    "xnssdl": 1.92,
+                    "xdssdlpm": 2,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 6,
+                    "slssdl": 0.0,
+                    "fnlylpm": 3,
+                    "fnlyl": 99.25,
+                    "gzsslpm": 3,
+                    "gzssl": 0.0,
+                    "jxsslpm": 2,
+                    "jxssl": 0.0,
+                    "qflpm": 2,
+                    "qfl": 0.0,
+                    "xnsslpm": 6,
+                    "xnssl": 0.75,
+                    "zssdl": 1.92,
+                    "slssl": 0.0,
+                    "slsslpm": 6
+                },
+                {
+                    "id": "SXJ_KGDL_NJLF01_LN",
+                    "name": "某风电场一号集电线路",
+                    "ordernum": 15.0,
+                    "date": null,
+                    "zhpm": 7,
+                    "fdlpm": 7,
+                    "fdl": 199.02,
+                    "llfdl": 205.62,
+                    "gzssdlpm": 9,
+                    "gzssdl": 0.37,
+                    "jxssdlpm": 7,
+                    "jxssdl": 0.12,
+                    "xnssdlpm": 11,
+                    "xnssdl": 6.11,
+                    "xdssdlpm": 7,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 11,
+                    "slssdl": 0.0,
+                    "fnlylpm": 8,
+                    "fnlyl": 96.79,
+                    "gzsslpm": 9,
+                    "gzssl": 0.18,
+                    "jxsslpm": 7,
+                    "jxssl": 0.06,
+                    "qflpm": 7,
+                    "qfl": 0.0,
+                    "xnsslpm": 11,
+                    "xnssl": 2.97,
+                    "zssdl": 6.6,
+                    "slssl": 0.0,
+                    "slsslpm": 11
+                },
+                {
+                    "id": "SXJ_KGDL_NJLF02_LN",
+                    "name": "某风电场二号集电线路",
+                    "ordernum": 16.0,
+                    "date": null,
+                    "zhpm": 5,
+                    "fdlpm": 5,
+                    "fdl": 218.31,
+                    "llfdl": 223.77,
+                    "gzssdlpm": 7,
+                    "gzssdl": 0.01,
+                    "jxssdlpm": 5,
+                    "jxssdl": 0.06,
+                    "xnssdlpm": 10,
+                    "xnssdl": 5.39,
+                    "xdssdlpm": 5,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 10,
+                    "slssdl": 0.0,
+                    "fnlylpm": 6,
+                    "fnlyl": 97.56,
+                    "gzsslpm": 7,
+                    "gzssl": 0.0,
+                    "jxsslpm": 5,
+                    "jxssl": 0.03,
+                    "qflpm": 5,
+                    "qfl": 0.0,
+                    "xnsslpm": 10,
+                    "xnssl": 2.41,
+                    "zssdl": 5.46,
+                    "slssl": 0.0,
+                    "slsslpm": 10
+                },
+                {
+                    "id": "SXJ_KGDL_PTZF01_LN",
+                    "name": "某风电场一号集电线路",
+                    "ordernum": 19.0,
+                    "date": null,
+                    "zhpm": 8,
+                    "fdlpm": 8,
+                    "fdl": 119.89,
+                    "llfdl": 133.12,
+                    "gzssdlpm": 6,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 11,
+                    "jxssdl": 12.4,
+                    "xnssdlpm": 4,
+                    "xnssdl": 0.83,
+                    "xdssdlpm": 11,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 3,
+                    "slssdl": 0.0,
+                    "fnlylpm": 10,
+                    "fnlyl": 90.06,
+                    "gzsslpm": 6,
+                    "gzssl": 0.0,
+                    "jxsslpm": 11,
+                    "jxssl": 9.31,
+                    "qflpm": 11,
+                    "qfl": 0.0,
+                    "xnsslpm": 3,
+                    "xnssl": 0.62,
+                    "zssdl": 13.23,
+                    "slssl": 0.0,
+                    "slsslpm": 3
+                },
+                {
+                    "id": "SXJ_KGDL_PTZF03_LN",
+                    "name": "某风电场三号集电线路",
+                    "ordernum": 21.0,
+                    "date": null,
+                    "zhpm": 6,
+                    "fdlpm": 6,
+                    "fdl": 206.84,
+                    "llfdl": 208.33,
+                    "gzssdlpm": 2,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 6,
+                    "jxssdl": 0.07,
+                    "xnssdlpm": 6,
+                    "xnssdl": 1.43,
+                    "xdssdlpm": 6,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 5,
+                    "slssdl": 0.0,
+                    "fnlylpm": 2,
+                    "fnlyl": 99.28,
+                    "gzsslpm": 2,
+                    "gzssl": 0.0,
+                    "jxsslpm": 6,
+                    "jxssl": 0.03,
+                    "qflpm": 6,
+                    "qfl": 0.0,
+                    "xnsslpm": 5,
+                    "xnssl": 0.69,
+                    "zssdl": 1.5,
+                    "slssl": 0.0,
+                    "slsslpm": 5
+                },
+                {
+                    "id": "SXJ_KGDL_YLZF02_LN",
+                    "name": "某风电场四号集电线路",
+                    "ordernum": 32.0,
+                    "date": null,
+                    "zhpm": 4,
+                    "fdlpm": 4,
+                    "fdl": 231.68,
+                    "llfdl": 231.84,
+                    "gzssdlpm": 1,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 1,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 1,
+                    "xnssdl": 0.16,
+                    "xdssdlpm": 1,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 1,
+                    "slssdl": 0.0,
+                    "fnlylpm": 1,
+                    "fnlyl": 99.93,
+                    "gzsslpm": 1,
+                    "gzssl": 0.0,
+                    "jxsslpm": 1,
+                    "jxssl": 0.0,
+                    "qflpm": 1,
+                    "qfl": 0.0,
+                    "xnsslpm": 1,
+                    "xnssl": 0.07,
+                    "zssdl": 0.16,
+                    "slssl": 0.0,
+                    "slsslpm": 1
+                },
+                {
+                    "id": "SXJ_KGDL_XWTF02_LN",
+                    "name": "某风电场二号集电线路",
+                    "ordernum": 37.0,
+                    "date": null,
+                    "zhpm": 10,
+                    "fdlpm": 11,
+                    "fdl": 27.43,
+                    "llfdl": 77.95,
+                    "gzssdlpm": 11,
+                    "gzssdl": 49.09,
+                    "jxssdlpm": 3,
+                    "jxssdl": 0.0,
+                    "xnssdlpm": 5,
+                    "xnssdl": 1.43,
+                    "xdssdlpm": 3,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 9,
+                    "slssdl": 0.0,
+                    "fnlylpm": 11,
+                    "fnlyl": 35.19,
+                    "gzsslpm": 11,
+                    "gzssl": 62.98,
+                    "jxsslpm": 3,
+                    "jxssl": 0.0,
+                    "qflpm": 3,
+                    "qfl": 0.0,
+                    "xnsslpm": 9,
+                    "xnssl": 1.83,
+                    "zssdl": 50.52,
+                    "slssl": 0.0,
+                    "slsslpm": 9
+                },
+                {
+                    "id": "SXJ_KGDL_YTYF02_LN",
+                    "name": "某风电场二号集电线路",
+                    "ordernum": 41.0,
+                    "date": null,
+                    "zhpm": 11,
+                    "fdlpm": 10,
+                    "fdl": 71.85,
+                    "llfdl": 73.88,
+                    "gzssdlpm": 10,
+                    "gzssdl": 0.84,
+                    "jxssdlpm": 9,
+                    "jxssdl": 0.82,
+                    "xnssdlpm": 2,
+                    "xnssdl": 0.38,
+                    "xdssdlpm": 9,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 2,
+                    "slssdl": 0.0,
+                    "fnlylpm": 7,
+                    "fnlyl": 97.25,
+                    "gzsslpm": 10,
+                    "gzssl": 1.14,
+                    "jxsslpm": 9,
+                    "jxssl": 1.11,
+                    "qflpm": 9,
+                    "qfl": 0.0,
+                    "xnsslpm": 2,
+                    "xnssl": 0.51,
+                    "zssdl": 2.04,
+                    "slssl": 0.0,
+                    "slsslpm": 2
+                },
+                {
+                    "id": "SXJ_KGDL_YFF04_LN",
+                    "name": "某风电场四号集电线路",
+                    "ordernum": 46.0,
+                    "date": null,
+                    "zhpm": 9,
+                    "fdlpm": 9,
+                    "fdl": 96.75,
+                    "llfdl": 100.74,
+                    "gzssdlpm": 5,
+                    "gzssdl": 0.0,
+                    "jxssdlpm": 10,
+                    "jxssdl": 3.35,
+                    "xnssdlpm": 3,
+                    "xnssdl": 0.63,
+                    "xdssdlpm": 10,
+                    "xdssdl": 0.0,
+                    "slssdlpm": 4,
+                    "slssdl": 0.0,
+                    "fnlylpm": 9,
+                    "fnlyl": 96.04,
+                    "gzsslpm": 5,
+                    "gzssl": 0.0,
+                    "jxsslpm": 10,
+                    "jxssl": 3.33,
+                    "qflpm": 10,
+                    "qfl": 0.0,
+                    "xnsslpm": 4,
+                    "xnssl": 0.63,
+                    "zssdl": 3.98,
+                    "slssl": 0.0,
+                    "slsslpm": 4
+                }
+            ],
+            "pageNum": 1
+        }
+    }
+}

+ 9 - 2
src/views/economicsOperation/benchmarkingManagement/wiringBenchmarking/index.vue

@@ -177,7 +177,8 @@
             <template v-slot="scope">
               <span
                 @click="goDetail(scope.row)"
-                style="cursor: pointer; color: #05bb4c"
+                style="cursor: pointer;"
+                :style="$store.state.moreSty === 'greenSty' ? 'color: #05bb4c' : 'color: #67b9ff'"
                 >{{ scope.row.name }}</span
               >
             </template>
@@ -338,6 +339,7 @@ import {
 import PieChart from "../../homePage/components/pieChart.vue";
 import BarCharts from "../../homePage/components/barCharts.vue";
 import dayinfo from "../compontent/dayinfo.vue";
+import dataJson from "./dataJson.json"
 export default {
   name: "wiringBenchmarking", //线路对标
   components: {
@@ -453,6 +455,7 @@ export default {
       this.gerXldb();
     },
     initialization() {
+        this.dataChange(dataJson.data)
       companys().then(({ data: res }) => {
         if (res.data) {
           this.company = res.data[0].id;
@@ -507,6 +510,11 @@ export default {
         target: "",
         sort: "",
       }).then(({ data: res }) => {
+        this.dataChange(res)
+        
+      });
+    },
+    dataChange(res) {
         if (res.data) {
           let barList = [
             {
@@ -550,7 +558,6 @@ export default {
           this.lossPower = lossPower;
           this.barList = barList;
         }
-      });
     },
     handleCompanyChange(val) {
       this.company = val;

+ 88 - 0
src/views/economicsOperation/efficiency/consumeEfficiency/dataJson.json

@@ -0,0 +1,88 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 200,
+        "message": "成功",
+        "count": null,
+        "data": [
+            {
+                "ordernum": 1,
+                "wpid": "13风电场",
+                "gzCount": 712,
+                "xqCount": 712,
+                "xqjsl": 100.0
+            },
+            {
+                "ordernum": 2,
+                "wpid": "03风电场",
+                "gzCount": 94,
+                "xqCount": 94,
+                "xqjsl": 100.0
+            },
+            {
+                "ordernum": 3,
+                "wpid": "06风电场",
+                "gzCount": 591,
+                "xqCount": 591,
+                "xqjsl": 100.0
+            },
+            {
+                "ordernum": 4,
+                "wpid": "04风电场",
+                "gzCount": 73,
+                "xqCount": 73,
+                "xqjsl": 100.0
+            },
+            {
+                "ordernum": 5,
+                "wpid": "11风电场",
+                "gzCount": 265,
+                "xqCount": 265,
+                "xqjsl": 100.0
+            },
+            {
+                "ordernum": 6,
+                "wpid": "01风电场",
+                "gzCount": 214,
+                "xqCount": 214,
+                "xqjsl": 100.0
+            },
+            {
+                "ordernum": 7,
+                "wpid": "14风电场",
+                "gzCount": 22,
+                "xqCount": 20,
+                "xqjsl": 90.91
+            },
+            {
+                "ordernum": 8,
+                "wpid": "02风电场",
+                "gzCount": 7,
+                "xqCount": 7,
+                "xqjsl": 100.0
+            },
+            {
+                "ordernum": 9,
+                "wpid": "09风电场",
+                "gzCount": 383,
+                "xqCount": 383,
+                "xqjsl": 100.0
+            },
+            {
+                "ordernum": 10,
+                "wpid": "05风电场",
+                "gzCount": 1531,
+                "xqCount": 1531,
+                "xqjsl": 100.0
+            },
+            {
+                "ordernum": 12,
+                "wpid": "08风电场",
+                "gzCount": 1,
+                "xqCount": 1,
+                "xqjsl": 100.0
+            }
+        ]
+    }
+}

+ 13 - 3
src/views/economicsOperation/efficiency/consumeEfficiency/index.vue

@@ -50,7 +50,7 @@
     </div>
     <div class="data-bodys">
       <div class="line clearfix">
-        <div class="leftContent left"><span>消缺及时率</span></div>
+        <div class="leftContent left" :data-type="$store.state.moreSty"><span>消缺及时率</span></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -97,6 +97,7 @@
 <script>
 import dayjs from "dayjs";
 import { companys, eliminatRate } from "@/api/curveAnalyse";
+import dataJson from "./dataJson.json"
 export default {
   name: "consumeEfficiency",
   components: {},
@@ -129,6 +130,7 @@ export default {
   },
   methods: {
     initialization() {
+        this.dataChange(dataJson.data)
       companys().then(({ data: res }) => {
         this.companyOptions = res.data;
         this.company = res.data[0].id;
@@ -142,11 +144,14 @@ export default {
         beginDate: this.starTime,
         endDate: this.endTime,
       }).then(({ data: res }) => {
+        this.dataChange(res)
+      });
+    },
+    dataChange(res) {
         if (res) {
           this.BASE.closeLoading();
           this.tableData = res.data;
         }
-      });
     },
   },
   mounted() {},
@@ -204,11 +209,16 @@ export default {
 
   .line {
     padding-bottom: 5px;
+    .leftContent[data-type~="greenSty"] {
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+    }
+    .leftContent[data-type~="blueSty"] {
+      background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+    }
     .leftContent {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 207 - 0
src/views/economicsOperation/efficiency/restorationEfficiency/dataJson.json

@@ -0,0 +1,207 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 200,
+        "message": "成功",
+        "count": null,
+        "data": [
+            {
+                "ordernum": 1,
+                "wpid": "13风电场",
+                "date": null,
+                "yfwcs": 631.0,
+                "wfz": 369.0,
+                "wfzfwl": 58.48,
+                "sfz": 461.0,
+                "sfzfwl": 73.06,
+                "swfz": 514.0,
+                "swfzfwl": 81.46,
+                "esfz": 555.0,
+                "esfzfwl": 87.96
+            },
+            {
+                "ordernum": 2,
+                "wpid": "03风电场",
+                "date": null,
+                "yfwcs": 88.0,
+                "wfz": 83.0,
+                "wfzfwl": 94.32,
+                "sfz": 87.0,
+                "sfzfwl": 98.86,
+                "swfz": 88.0,
+                "swfzfwl": 100.0,
+                "esfz": 88.0,
+                "esfzfwl": 100.0
+            },
+            {
+                "ordernum": 3,
+                "wpid": "06风电场",
+                "date": null,
+                "yfwcs": 585.0,
+                "wfz": 553.0,
+                "wfzfwl": 94.53,
+                "sfz": 569.0,
+                "sfzfwl": 97.26,
+                "swfz": 583.0,
+                "swfzfwl": 99.66,
+                "esfz": 585.0,
+                "esfzfwl": 100.0
+            },
+            {
+                "ordernum": 4,
+                "wpid": "04风电场",
+                "date": null,
+                "yfwcs": 63.0,
+                "wfz": 18.0,
+                "wfzfwl": 28.57,
+                "sfz": 34.0,
+                "sfzfwl": 53.97,
+                "swfz": 42.0,
+                "swfzfwl": 66.67,
+                "esfz": 50.0,
+                "esfzfwl": 79.37
+            },
+            {
+                "ordernum": 5,
+                "wpid": "11风电场",
+                "date": null,
+                "yfwcs": 217.0,
+                "wfz": 207.0,
+                "wfzfwl": 95.39,
+                "sfz": 210.0,
+                "sfzfwl": 96.77,
+                "swfz": 214.0,
+                "swfzfwl": 98.62,
+                "esfz": 215.0,
+                "esfzfwl": 99.08
+            },
+            {
+                "ordernum": 6,
+                "wpid": "01风电场",
+                "date": null,
+                "yfwcs": 188.0,
+                "wfz": 180.0,
+                "wfzfwl": 95.74,
+                "sfz": 181.0,
+                "sfzfwl": 96.28,
+                "swfz": 188.0,
+                "swfzfwl": 100.0,
+                "esfz": 188.0,
+                "esfzfwl": 100.0
+            },
+            {
+                "ordernum": 7,
+                "wpid": "14风电场",
+                "date": null,
+                "yfwcs": 12.0,
+                "wfz": 10.0,
+                "wfzfwl": 83.33,
+                "sfz": 10.0,
+                "sfzfwl": 83.33,
+                "swfz": 10.0,
+                "swfzfwl": 83.33,
+                "esfz": 10.0,
+                "esfzfwl": 83.33
+            },
+            {
+                "ordernum": 8,
+                "wpid": "02风电场",
+                "date": null,
+                "yfwcs": 5.0,
+                "wfz": 3.0,
+                "wfzfwl": 60.0,
+                "sfz": 4.0,
+                "sfzfwl": 80.0,
+                "swfz": 4.0,
+                "swfzfwl": 80.0,
+                "esfz": 5.0,
+                "esfzfwl": 100.0
+            },
+            {
+                "ordernum": 9,
+                "wpid": "09风电场",
+                "date": null,
+                "yfwcs": 334.0,
+                "wfz": 333.0,
+                "wfzfwl": 99.7,
+                "sfz": 334.0,
+                "sfzfwl": 100.0,
+                "swfz": 334.0,
+                "swfzfwl": 100.0,
+                "esfz": 334.0,
+                "esfzfwl": 100.0
+            },
+            {
+                "ordernum": 10,
+                "wpid": "05风电场",
+                "date": null,
+                "yfwcs": 1332.0,
+                "wfz": 1314.0,
+                "wfzfwl": 98.65,
+                "sfz": 1328.0,
+                "sfzfwl": 99.7,
+                "swfz": 1332.0,
+                "swfzfwl": 100.0,
+                "esfz": 1332.0,
+                "esfzfwl": 100.0
+            },
+            {
+                "ordernum": 11,
+                "wpid": "07风电场",
+                "date": null,
+                "yfwcs": 0.0,
+                "wfz": 0.0,
+                "wfzfwl": 0.0,
+                "sfz": 0.0,
+                "sfzfwl": 0.0,
+                "swfz": 0.0,
+                "swfzfwl": 0.0,
+                "esfz": 0.0,
+                "esfzfwl": 0.0
+            },
+            {
+                "ordernum": 12,
+                "wpid": "08风电场",
+                "date": null,
+                "yfwcs": 1.0,
+                "wfz": 1.0,
+                "wfzfwl": 100.0,
+                "sfz": 1.0,
+                "sfzfwl": 100.0,
+                "swfz": 1.0,
+                "swfzfwl": 100.0,
+                "esfz": 1.0,
+                "esfzfwl": 100.0
+            },
+            {
+                "ordernum": 13,
+                "wpid": "10风电场",
+                "date": null,
+                "yfwcs": 0.0,
+                "wfz": 0.0,
+                "wfzfwl": 0.0,
+                "sfz": 0.0,
+                "sfzfwl": 0.0,
+                "swfz": 0.0,
+                "swfzfwl": 0.0,
+                "esfz": 0.0,
+                "esfzfwl": 0.0
+            },
+            {
+                "ordernum": 31,
+                "wpid": "合计",
+                "date": null,
+                "yfwcs": 3456.0,
+                "wfz": 3071.0,
+                "wfzfwl": 88.86,
+                "sfz": 3219.0,
+                "sfzfwl": 93.14,
+                "swfz": 3310.0,
+                "swfzfwl": 95.78,
+                "esfz": 3363.0,
+                "esfzfwl": 97.31
+            }
+        ]
+    }
+}

+ 13 - 3
src/views/economicsOperation/efficiency/restorationEfficiency/index.vue

@@ -50,7 +50,7 @@
     </div>
     <div class="data-bodys">
       <div class="line clearfix">
-        <div class="leftContent left"><span>复位及时率</span></div>
+        <div class="leftContent left" :data-type="$store.state.moreSty"><span>复位及时率</span></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -132,6 +132,7 @@
 <script>
 import dayjs from "dayjs";
 import { companys, timelyRate } from "@/api/curveAnalyse";
+import dataJson from "./dataJson.json"
 export default {
   name: "restorationEfficiency",
   components: {},
@@ -164,6 +165,7 @@ export default {
   },
   methods: {
     initialization() {
+        this.dataChange(dataJson.data)
       companys().then(({ data: res }) => {
         this.companyOptions = res.data;
         this.company = res.data[0].id;
@@ -176,6 +178,10 @@ export default {
         beginDate: this.starTime,
         endDate: this.endTime,
       }).then(({ data: res }) => {
+        this.dataChange(res)
+      });
+    },
+    dataChange(res) {
         if (res) {
           let data = [];
           res.data.forEach((item, index) => {
@@ -194,7 +200,6 @@ export default {
           });
           this.tableData = data;
         }
-      });
     },
   },
   mounted() {},
@@ -251,11 +256,16 @@ export default {
   padding-bottom: 10px;
   .line {
     padding-bottom: 5px;
+    .leftContent[data-type~="greenSty"] {
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+    }
+    .leftContent[data-type~="blueSty"] {
+      background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+    }
     .leftContent {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 605 - 0
src/views/economicsOperation/efficiency/stateEfficiency/dataJson.json

@@ -0,0 +1,605 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 200,
+        "message": "成功",
+        "count": null,
+        "data": {
+            "大于4米风速": [
+                {
+                    "ordernum": 1,
+                    "wpid": "13风电场",
+                    "date": null,
+                    "yfwcs": 157.0,
+                    "wfz": 150.0,
+                    "wfzfwl": 95.54,
+                    "sfz": 153.0,
+                    "sfzfwl": 97.45,
+                    "swfz": 153.0,
+                    "swfzfwl": 97.45,
+                    "esfz": 155.0,
+                    "esfzfwl": 98.73
+                },
+                {
+                    "ordernum": 2,
+                    "wpid": "03风电场",
+                    "date": null,
+                    "yfwcs": 250.0,
+                    "wfz": 243.0,
+                    "wfzfwl": 97.2,
+                    "sfz": 247.0,
+                    "sfzfwl": 98.8,
+                    "swfz": 247.0,
+                    "swfzfwl": 98.8,
+                    "esfz": 247.0,
+                    "esfzfwl": 98.8
+                },
+                {
+                    "ordernum": 3,
+                    "wpid": "06风电场",
+                    "date": null,
+                    "yfwcs": 306.0,
+                    "wfz": 298.0,
+                    "wfzfwl": 97.39,
+                    "sfz": 299.0,
+                    "sfzfwl": 97.71,
+                    "swfz": 302.0,
+                    "swfzfwl": 98.69,
+                    "esfz": 303.0,
+                    "esfzfwl": 99.02
+                },
+                {
+                    "ordernum": 4,
+                    "wpid": "04风电场",
+                    "date": null,
+                    "yfwcs": 133.0,
+                    "wfz": 131.0,
+                    "wfzfwl": 98.5,
+                    "sfz": 133.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 133.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 133.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 5,
+                    "wpid": "11风电场",
+                    "date": null,
+                    "yfwcs": 246.0,
+                    "wfz": 205.0,
+                    "wfzfwl": 83.33,
+                    "sfz": 227.0,
+                    "sfzfwl": 92.28,
+                    "swfz": 238.0,
+                    "swfzfwl": 96.75,
+                    "esfz": 239.0,
+                    "esfzfwl": 97.15
+                },
+                {
+                    "ordernum": 6,
+                    "wpid": "01风电场",
+                    "date": null,
+                    "yfwcs": 426.0,
+                    "wfz": 391.0,
+                    "wfzfwl": 91.78,
+                    "sfz": 401.0,
+                    "sfzfwl": 94.13,
+                    "swfz": 408.0,
+                    "swfzfwl": 95.77,
+                    "esfz": 410.0,
+                    "esfzfwl": 96.24
+                },
+                {
+                    "ordernum": 7,
+                    "wpid": "14风电场",
+                    "date": null,
+                    "yfwcs": 252.0,
+                    "wfz": 250.0,
+                    "wfzfwl": 99.21,
+                    "sfz": 250.0,
+                    "sfzfwl": 99.21,
+                    "swfz": 250.0,
+                    "swfzfwl": 99.21,
+                    "esfz": 250.0,
+                    "esfzfwl": 99.21
+                },
+                {
+                    "ordernum": 8,
+                    "wpid": "02风电场",
+                    "date": null,
+                    "yfwcs": 271.0,
+                    "wfz": 253.0,
+                    "wfzfwl": 93.36,
+                    "sfz": 259.0,
+                    "sfzfwl": 95.57,
+                    "swfz": 264.0,
+                    "swfzfwl": 97.42,
+                    "esfz": 267.0,
+                    "esfzfwl": 98.52
+                },
+                {
+                    "ordernum": 9,
+                    "wpid": "09风电场",
+                    "date": null,
+                    "yfwcs": 103.0,
+                    "wfz": 92.0,
+                    "wfzfwl": 89.32,
+                    "sfz": 99.0,
+                    "sfzfwl": 96.12,
+                    "swfz": 101.0,
+                    "swfzfwl": 98.06,
+                    "esfz": 101.0,
+                    "esfzfwl": 98.06
+                },
+                {
+                    "ordernum": 10,
+                    "wpid": "05风电场",
+                    "date": null,
+                    "yfwcs": 189.0,
+                    "wfz": 175.0,
+                    "wfzfwl": 92.59,
+                    "sfz": 184.0,
+                    "sfzfwl": 97.35,
+                    "swfz": 188.0,
+                    "swfzfwl": 99.47,
+                    "esfz": 188.0,
+                    "esfzfwl": 99.47
+                },
+                {
+                    "ordernum": 11,
+                    "wpid": "07风电场",
+                    "date": null,
+                    "yfwcs": 363.0,
+                    "wfz": 328.0,
+                    "wfzfwl": 90.36,
+                    "sfz": 331.0,
+                    "sfzfwl": 91.18,
+                    "swfz": 339.0,
+                    "swfzfwl": 93.39,
+                    "esfz": 343.0,
+                    "esfzfwl": 94.49
+                },
+                {
+                    "ordernum": 12,
+                    "wpid": "08风电场",
+                    "date": null,
+                    "yfwcs": 55.0,
+                    "wfz": 50.0,
+                    "wfzfwl": 90.91,
+                    "sfz": 52.0,
+                    "sfzfwl": 94.55,
+                    "swfz": 53.0,
+                    "swfzfwl": 96.36,
+                    "esfz": 53.0,
+                    "esfzfwl": 96.36
+                },
+                {
+                    "ordernum": 13,
+                    "wpid": "10风电场",
+                    "date": null,
+                    "yfwcs": 64.0,
+                    "wfz": 59.0,
+                    "wfzfwl": 92.19,
+                    "sfz": 63.0,
+                    "sfzfwl": 98.44,
+                    "swfz": 64.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 64.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 31,
+                    "wpid": "合计",
+                    "date": null,
+                    "yfwcs": 2815.0,
+                    "wfz": 2625.0,
+                    "wfzfwl": 93.25,
+                    "sfz": 2698.0,
+                    "sfzfwl": 95.84,
+                    "swfz": 2740.0,
+                    "swfzfwl": 97.34,
+                    "esfz": 2753.0,
+                    "esfzfwl": 97.8
+                }
+            ],
+            "小于3米风速": [
+                {
+                    "ordernum": 1,
+                    "wpid": "13风电场",
+                    "date": null,
+                    "yfwcs": 0.0,
+                    "wfz": 0.0,
+                    "wfzfwl": 0.0,
+                    "sfz": 0.0,
+                    "sfzfwl": 0.0,
+                    "swfz": 0.0,
+                    "swfzfwl": 0.0,
+                    "esfz": 0.0,
+                    "esfzfwl": 0.0
+                },
+                {
+                    "ordernum": 2,
+                    "wpid": "03风电场",
+                    "date": null,
+                    "yfwcs": 1.0,
+                    "wfz": 1.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 1.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 1.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 1.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 3,
+                    "wpid": "06风电场",
+                    "date": null,
+                    "yfwcs": 18.0,
+                    "wfz": 18.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 18.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 18.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 18.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 4,
+                    "wpid": "04风电场",
+                    "date": null,
+                    "yfwcs": 0.0,
+                    "wfz": 0.0,
+                    "wfzfwl": 0.0,
+                    "sfz": 0.0,
+                    "sfzfwl": 0.0,
+                    "swfz": 0.0,
+                    "swfzfwl": 0.0,
+                    "esfz": 0.0,
+                    "esfzfwl": 0.0
+                },
+                {
+                    "ordernum": 5,
+                    "wpid": "11风电场",
+                    "date": null,
+                    "yfwcs": 6.0,
+                    "wfz": 6.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 6.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 6.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 6.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 6,
+                    "wpid": "01风电场",
+                    "date": null,
+                    "yfwcs": 10.0,
+                    "wfz": 10.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 10.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 10.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 10.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 7,
+                    "wpid": "14风电场",
+                    "date": null,
+                    "yfwcs": 106.0,
+                    "wfz": 106.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 106.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 106.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 106.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 8,
+                    "wpid": "02风电场",
+                    "date": null,
+                    "yfwcs": 7.0,
+                    "wfz": 5.0,
+                    "wfzfwl": 71.43,
+                    "sfz": 5.0,
+                    "sfzfwl": 71.43,
+                    "swfz": 5.0,
+                    "swfzfwl": 71.43,
+                    "esfz": 5.0,
+                    "esfzfwl": 71.43
+                },
+                {
+                    "ordernum": 9,
+                    "wpid": "09风电场",
+                    "date": null,
+                    "yfwcs": 20.0,
+                    "wfz": 20.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 20.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 20.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 20.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 10,
+                    "wpid": "05风电场",
+                    "date": null,
+                    "yfwcs": 39.0,
+                    "wfz": 39.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 39.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 39.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 39.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 11,
+                    "wpid": "07风电场",
+                    "date": null,
+                    "yfwcs": 18.0,
+                    "wfz": 18.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 18.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 18.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 18.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 12,
+                    "wpid": "08风电场",
+                    "date": null,
+                    "yfwcs": 6.0,
+                    "wfz": 5.0,
+                    "wfzfwl": 83.33,
+                    "sfz": 5.0,
+                    "sfzfwl": 83.33,
+                    "swfz": 6.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 6.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 13,
+                    "wpid": "10风电场",
+                    "date": null,
+                    "yfwcs": 0.0,
+                    "wfz": 0.0,
+                    "wfzfwl": 0.0,
+                    "sfz": 0.0,
+                    "sfzfwl": 0.0,
+                    "swfz": 0.0,
+                    "swfzfwl": 0.0,
+                    "esfz": 0.0,
+                    "esfzfwl": 0.0
+                },
+                {
+                    "ordernum": 31,
+                    "wpid": "合计",
+                    "date": null,
+                    "yfwcs": 231.0,
+                    "wfz": 228.0,
+                    "wfzfwl": 98.7,
+                    "sfz": 228.0,
+                    "sfzfwl": 98.7,
+                    "swfz": 229.0,
+                    "swfzfwl": 99.13,
+                    "esfz": 229.0,
+                    "esfzfwl": 99.13
+                }
+            ],
+            "大于3米风速": [
+                {
+                    "ordernum": 1,
+                    "wpid": "13风电场",
+                    "date": null,
+                    "yfwcs": 742.0,
+                    "wfz": 738.0,
+                    "wfzfwl": 99.46,
+                    "sfz": 738.0,
+                    "sfzfwl": 99.46,
+                    "swfz": 741.0,
+                    "swfzfwl": 99.87,
+                    "esfz": 742.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 2,
+                    "wpid": "03风电场",
+                    "date": null,
+                    "yfwcs": 1420.0,
+                    "wfz": 1417.0,
+                    "wfzfwl": 99.79,
+                    "sfz": 1417.0,
+                    "sfzfwl": 99.79,
+                    "swfz": 1418.0,
+                    "swfzfwl": 99.86,
+                    "esfz": 1418.0,
+                    "esfzfwl": 99.86
+                },
+                {
+                    "ordernum": 3,
+                    "wpid": "06风电场",
+                    "date": null,
+                    "yfwcs": 3141.0,
+                    "wfz": 3139.0,
+                    "wfzfwl": 99.94,
+                    "sfz": 3140.0,
+                    "sfzfwl": 99.97,
+                    "swfz": 3140.0,
+                    "swfzfwl": 99.97,
+                    "esfz": 3140.0,
+                    "esfzfwl": 99.97
+                },
+                {
+                    "ordernum": 4,
+                    "wpid": "04风电场",
+                    "date": null,
+                    "yfwcs": 373.0,
+                    "wfz": 373.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 373.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 373.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 373.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 5,
+                    "wpid": "11风电场",
+                    "date": null,
+                    "yfwcs": 609.0,
+                    "wfz": 607.0,
+                    "wfzfwl": 99.67,
+                    "sfz": 609.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 609.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 609.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 6,
+                    "wpid": "01风电场",
+                    "date": null,
+                    "yfwcs": 694.0,
+                    "wfz": 692.0,
+                    "wfzfwl": 99.71,
+                    "sfz": 694.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 694.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 694.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 7,
+                    "wpid": "14风电场",
+                    "date": null,
+                    "yfwcs": 647.0,
+                    "wfz": 647.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 647.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 647.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 647.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 8,
+                    "wpid": "02风电场",
+                    "date": null,
+                    "yfwcs": 1074.0,
+                    "wfz": 1071.0,
+                    "wfzfwl": 99.72,
+                    "sfz": 1071.0,
+                    "sfzfwl": 99.72,
+                    "swfz": 1073.0,
+                    "swfzfwl": 99.91,
+                    "esfz": 1074.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 9,
+                    "wpid": "09风电场",
+                    "date": null,
+                    "yfwcs": 603.0,
+                    "wfz": 603.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 603.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 603.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 603.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 10,
+                    "wpid": "05风电场",
+                    "date": null,
+                    "yfwcs": 1314.0,
+                    "wfz": 1312.0,
+                    "wfzfwl": 99.85,
+                    "sfz": 1313.0,
+                    "sfzfwl": 99.92,
+                    "swfz": 1313.0,
+                    "swfzfwl": 99.92,
+                    "esfz": 1313.0,
+                    "esfzfwl": 99.92
+                },
+                {
+                    "ordernum": 11,
+                    "wpid": "07风电场",
+                    "date": null,
+                    "yfwcs": 430.0,
+                    "wfz": 427.0,
+                    "wfzfwl": 99.3,
+                    "sfz": 427.0,
+                    "sfzfwl": 99.3,
+                    "swfz": 427.0,
+                    "swfzfwl": 99.3,
+                    "esfz": 427.0,
+                    "esfzfwl": 99.3
+                },
+                {
+                    "ordernum": 12,
+                    "wpid": "08风电场",
+                    "date": null,
+                    "yfwcs": 170.0,
+                    "wfz": 170.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 170.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 170.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 170.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 13,
+                    "wpid": "10风电场",
+                    "date": null,
+                    "yfwcs": 257.0,
+                    "wfz": 257.0,
+                    "wfzfwl": 100.0,
+                    "sfz": 257.0,
+                    "sfzfwl": 100.0,
+                    "swfz": 257.0,
+                    "swfzfwl": 100.0,
+                    "esfz": 257.0,
+                    "esfzfwl": 100.0
+                },
+                {
+                    "ordernum": 31,
+                    "wpid": "合计",
+                    "date": null,
+                    "yfwcs": 11474.0,
+                    "wfz": 11453.0,
+                    "wfzfwl": 99.82,
+                    "sfz": 11459.0,
+                    "sfzfwl": 99.87,
+                    "swfz": 11465.0,
+                    "swfzfwl": 99.92,
+                    "esfz": 11467.0,
+                    "esfzfwl": 99.94
+                }
+            ]
+        }
+    }
+}

+ 13 - 3
src/views/economicsOperation/efficiency/stateEfficiency/index.vue

@@ -73,7 +73,7 @@
     </div>
     <div class="data-bodys">
       <div class="line clearfix">
-        <div class="leftContent left"><span>状态转换率</span></div>
+        <div class="leftContent left" :data-type="$store.state.moreSty"><span>状态转换率</span></div>
       </div>
       <div class="economicTable">
         <el-table
@@ -155,6 +155,7 @@
 <script>
 import dayjs from "dayjs";
 import { companys, conversionRate } from "@/api/curveAnalyse";
+import dataJson from "./dataJson.json"
 export default {
   name: "stateEfficiency",
   components: {},
@@ -187,6 +188,7 @@ export default {
   },
   methods: {
     initialization() {
+        this.dataChange(dataJson.data)
       companys().then(({ data: res }) => {
         this.companyOptions = res.data;
         this.company = res.data[0].id;
@@ -199,6 +201,10 @@ export default {
         beginDate: this.starTime,
         endDate: this.endTime,
       }).then(({ data: res }) => {
+        this.dataChange(res)
+      });
+    },
+    dataChange(res) {
         if (res) {
           const current = this.current;
           if (current == "1") {
@@ -209,7 +215,6 @@ export default {
             this.tableData = res.data.大于4米风速;
           }
         }
-      });
     },
     handleChange(val) {
       this.current = val;
@@ -271,12 +276,17 @@ export default {
 
   .line {
     padding-bottom: 5px;
+    .leftContent[data-type~="greenSty"] {
+      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+    }
+    .leftContent[data-type~="blueSty"] {
+      background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+    }
 
     .leftContent {
       width: 242px;
       height: 41px;
       line-height: 41px;
-      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

+ 496 - 0
src/views/economicsOperation/nxfHomePage/component/dataJJJson.json

@@ -0,0 +1,496 @@
+{
+    "success": true,
+    "code": 200,
+    "message": "成功",
+    "data": {
+        "fdl": [{
+            "name": "日发电量",
+            "value": 103.62,
+            "total": 200,
+            "bfb": "51",
+            "top": "5px",
+            "top1": "5px",
+            "top2": "24px",
+            "top3": "37px"
+        },
+        {
+            "name": "月发电量",
+            "value": 98.62,
+            "total": 100,
+            "bfb": "98",
+            "top": "53px",
+            "top1": "53px",
+            "top2": "74px",
+            "top3": "85px"
+        },
+        {
+            "name": "年发电量",
+            "value": 113.27,
+            "total": 200,
+            "bfb": "52",
+            "top": "100px",
+            "top1": "100px",
+            "top2": "125px",
+            "top3": "132px"
+        }
+    ],
+    "zbtqdb": {
+        "column": [{
+                "name": "指标名称",
+                "field": "wtId"
+            },
+            {
+                "name": "2024年",
+                "field": "recodedate"
+            },
+            {
+                "name": "2023年",
+                "field": "recodedate2"
+            },
+            {
+                "name": "涨跌%",
+                "field": "operation"
+            }
+        ],
+        "data": [{
+                "wtId": "风电发电量",
+                "recodedate": "30998.58",
+                "recodedate2": "32254.69",
+                "operation": "-4.48"
+            },{
+                "wtId": "光伏发电量",
+                "recodedate": "8998.58",
+                "recodedate2": "4254.69",
+                "operation": "83.1"
+            },{
+                "wtId": "购网电量",
+                "recodedate": "218.58",
+                "recodedate2": "119.69",
+                "operation": "81.5"
+            },{
+                "wtId": "综合场用电量",
+                "recodedate": "220.58",
+                "recodedate2": "470.69",
+                "operation": "-53.22"
+            },{
+                "wtId": "两个细则",
+                "recodedate": "950.58",
+                "recodedate2": "752.69",
+                "operation": "195.9"
+            },{
+                "wtId": "利用小时",
+                "recodedate": "430.58h",
+                "recodedate2": "410.69h",
+                "operation": "24"
+            },{
+                "wtId": "风能利用率",
+                "recodedate": "86.58%",
+                "recodedate2": "89.69%",
+                "operation": "-2.4"
+            },{
+                "wtId": "光能利用率",
+                "recodedate": "88.58%",
+                "recodedate2": "92.69%",
+                "operation": "-4.19"
+            },{
+                "wtId": "设备可利用率",
+                "recodedate": "96.58%",
+                "recodedate2": "94.69%",
+                "operation": "1.68"
+            },{
+                "wtId": "复位成功率",
+                "recodedate": "84.58%",
+                "recodedate2": "97.69%",
+                "operation": "-6.19"
+            },{
+                "wtId": "复位及时率",
+                "recodedate": "100%",
+                "recodedate2": "100%",
+                "operation": "0"
+            },{
+                "wtId": "消缺及时率",
+                "recodedate": "96.16%",
+                "recodedate2": "100%",
+                "operation": "-1.84"
+            },{
+                "wtId": "综合厂用电率",
+                "recodedate": "2.33%",
+                "recodedate2": "4.21%",
+                "operation": "-1.88"
+            },{
+                "wtId": "风能利用率",
+                "recodedate": "86.58%",
+                "recodedate2": "89.69%",
+                "operation": "-2.4"
+            },{
+                "wtId": "光能利用率",
+                "recodedate": "88.58%",
+                "recodedate2": "92.69%",
+                "operation": "-4.19"
+            }
+        ]
+    },
+    "fnlyl": {
+        "column": [{
+                "name": "排名",
+                "field": "index"
+            },
+            {
+                "name": "名称",
+                "field": "name"
+            },
+            {
+                "name": "风能利用率%",
+                "field": "fnlyl"
+            },
+            {
+                "name": "去年同期%",
+                "field": "yearTq"
+            },
+            {
+                "name": "涨跌%",
+                "field": "operation"
+            }
+        ],
+        "data": [{
+                "index": "1",
+                "name": "惠安风场",
+                "fnlyl": "309.58",
+                "yearTq": "322.69",
+                "operation": "-1.48"
+            },{
+                "index": "2",
+                "name": "测试风场",
+                "fnlyl": "39.58",
+                "yearTq": "32.69",
+                "operation": "-0.48"
+            },{
+                "index": "3",
+                "name": "测试风场2",
+                "fnlyl": "50.58",
+                "yearTq": "32.69",
+                "operation": "0.48"
+            },{
+                "index": "4",
+                "name": "测试风场3",
+                "fnlyl": "39.58",
+                "yearTq": "32.69",
+                "operation": "-0.48"
+            },{
+                "index": "5",
+                "name": "测试风场4",
+                "fnlyl": "39.58",
+                "yearTq": "32.69",
+                "operation": "-0.48"
+            }
+        ]
+    },
+    "sbklyl": {
+        "column": [{
+                "name": "排名",
+                "field": "index"
+            },
+            {
+                "name": "名称",
+                "field": "name"
+            },
+            {
+                "name": "设备利用率%",
+                "field": "fnlyl"
+            },
+            {
+                "name": "去年同期%",
+                "field": "yearTq"
+            },
+            {
+                "name": "涨跌%",
+                "field": "operation"
+            }
+        ],
+        "data": [{
+                "index": "1",
+                "name": "惠安风场",
+                "fnlyl": "309.58",
+                "yearTq": "322.69",
+                "operation": "-1.48"
+            },{
+                "index": "2",
+                "name": "测试风场",
+                "fnlyl": "39.58",
+                "yearTq": "32.69",
+                "operation": "-0.48"
+            },{
+                "index": "3",
+                "name": "测试风场2",
+                "fnlyl": "50.58",
+                "yearTq": "32.69",
+                "operation": "0.48"
+            },{
+                "index": "4",
+                "name": "测试风场3",
+                "fnlyl": "39.58",
+                "yearTq": "32.69",
+                "operation": "2.48"
+            },{
+                "index": "5",
+                "name": "测试风场4",
+                "fnlyl": "39.58",
+                "yearTq": "32.69",
+                "operation": "2.48"
+            }
+        ]
+    },
+    "lgxzkh": {
+        "column": [{
+                "name": "排名",
+                "field": "index"
+            },
+            {
+                "name": "名称",
+                "field": "name"
+            },
+            {
+                "name": "考核分数",
+                "field": "fnlyl"
+            },
+            {
+                "name": "去年同期%",
+                "field": "yearTq"
+            },
+            {
+                "name": "涨跌%",
+                "field": "operation"
+            }
+        ],
+        "data": [{
+                "index": "1",
+                "name": "惠安风场",
+                "fnlyl": "309.58",
+                "yearTq": "322.69",
+                "operation": "-1.48"
+            },{
+                "index": "2",
+                "name": "测试风场",
+                "fnlyl": "39.58",
+                "yearTq": "32.69",
+                "operation": "-0.48"
+            },{
+                "index": "3",
+                "name": "测试风场2",
+                "fnlyl": "50.58",
+                "yearTq": "32.69",
+                "operation": "-0.48"
+            },{
+                "index": "4",
+                "name": "测试风场3",
+                "fnlyl": "39.58",
+                "yearTq": "32.69",
+                "operation": "2.48"
+            },{
+                "index": "5",
+                "name": "测试风场4",
+                "fnlyl": "39.58",
+                "yearTq": "32.69",
+                "operation": "2.48"
+            }
+        ]
+    },
+    "planData": {
+        "zfdljh": 2313,
+        "zfdlsj": 1589,
+        "zjd": 90.26,
+        "zwcl": 85,
+        "yfdljh": 23135,
+        "yfdlsj": 20025,
+        "yjd": 95.26,
+        "ywcl": 89,
+        "nfdljh": 122313,
+        "nfdlsj": 102512,
+        "njd": 92.26,
+        "nwcl": 93
+      },
+    "Powertrend": [
+        {
+          "title": "限电量",
+          "yAxisIndex": 0,
+          "value": [
+            {
+              "text": "2024-01",
+              "value": 210
+            },
+            {
+              "text": "2024-02",
+              "value": 260
+            },
+            {
+              "text": "2024-03",
+              "value": 580
+            },
+            {
+              "text": "2024-04",
+              "value": 540
+            },
+            {
+              "text": "2024-05",
+              "value": 360
+            },
+            {
+              "text": "2024-06",
+              "value": 510
+            }
+          ]
+        },
+        {
+          "title": "去年同期限电量",
+          "yAxisIndex": 1,
+          "value": [
+            {
+                "text": "2024-01",
+                "value": 6
+              },
+              {
+                "text": "2024-02",
+                "value": 7
+              },
+              {
+                "text": "2024-03",
+                "value": 10
+              },
+              {
+                "text": "2024-04",
+                "value": 8
+              },
+              {
+                "text": "2024-05",
+                "value": 5
+              },
+              {
+                "text": "2024-06",
+                "value": 9
+              }
+          ]
+        }],
+    "Powerloss": [
+        {
+          "title": "损失电量",
+          "yAxisIndex": 0,
+          "value": [
+            {
+              "text": "2024-01",
+              "value": 1210
+            },
+            {
+              "text": "2024-02",
+              "value": 2160
+            },
+            {
+              "text": "2024-03",
+              "value": 5180
+            },
+            {
+              "text": "2024-04",
+              "value": 5140
+            },
+            {
+              "text": "2024-05",
+              "value": 1360
+            },
+            {
+              "text": "2024-06",
+              "value": 1510
+            }
+          ]
+        },
+        {
+          "title": "去年同期损失电量",
+          "yAxisIndex": 1,
+          "value": [
+            {
+                "text": "2024-01",
+                "value": 6
+              },
+              {
+                "text": "2024-02",
+                "value": 5
+              },
+              {
+                "text": "2024-03",
+                "value": 10
+              },
+              {
+                "text": "2024-04",
+                "value": 5
+              },
+              {
+                "text": "2024-05",
+                "value": 5
+              },
+              {
+                "text": "2024-06",
+                "value": 5
+              }
+          ]
+        }],
+    "Powersend": [
+        {
+            "title": "发电量",
+            "value": [
+              {
+                "text": "2024-01",
+                "value": 1210
+              },
+              {
+                "text": "2024-02",
+                "value": 2160
+              },
+              {
+                "text": "2024-03",
+                "value": 5180
+              },
+              {
+                "text": "2024-04",
+                "value": 5140
+              },
+              {
+                "text": "2024-05",
+                "value": 1360
+              },
+              {
+                "text": "2024-06",
+                "value": 1510
+              }
+            ]
+        },
+        {
+            "title": "去年同期发电量",
+            "value": [
+              {
+                "text": "2024-01",
+                "value": 1310
+              },
+              {
+                "text": "2024-02",
+                "value": 2060
+              },
+              {
+                "text": "2024-03",
+                "value": 5380
+              },
+              {
+                "text": "2024-04",
+                "value": 4140
+              },
+              {
+                "text": "2024-05",
+                "value": 1660
+              },
+              {
+                "text": "2024-06",
+                "value": 1810
+              }
+            ]
+        }
+    ]
+    }
+    
+}

+ 330 - 0
src/views/economicsOperation/nxfHomePage/component/forecastBarComponent.vue

@@ -0,0 +1,330 @@
+<template>
+    <div>
+        <div class="chart" v-for="index of list.length" :key="index" :id="id + index"></div>
+    </div>
+</template>
+
+<script>
+    import util from "@/helper/util.js";
+    import partten from "@/helper/partten.js";
+    import * as echarts from "echarts";
+
+    export default {
+        name: "percent-pie",
+        componentName: "percent-pie",
+        props: {
+            width: {
+                type: String,
+                default: "100%",
+            },
+            height: {
+                type: String,
+                default: "18.519vh",
+            },
+            //  传入数据
+            list: {
+                type: Array,
+                default: () => [],
+            },
+            total: {
+                type: Number,
+                default: 1500,
+            },
+            theme: {
+                type: Boolean,
+                default: false,
+            },
+            colors: {
+                type: Array,
+                default: () => ["#FF9B23", "#1C99FF"],
+            },
+        },
+        data() {
+            return {
+                id: "",
+                chart: null,
+                firstAnimation: true,
+            };
+        },
+
+        computed: {
+            datas() {
+                return this.list.map((t) => {
+                    return t.value;
+                });
+            },
+        },
+        methods: {
+            resize() {},
+            initChart(value, index) {
+                var currColor = value.color;
+                var $dom = document.getElementById(this.id + (index + 1));
+                $dom.style.width = this.width;
+                $dom.style.height = `calc(${this.height} / ${this.list.length} - 4px)`;
+                let chart = echarts.init($dom);
+                let option = {
+                    xAxis: {
+                        //   max: value.total,
+                        splitLine: {
+                            show: false,
+                        },
+                        axisLine: {
+                            show: false,
+                        },
+                        axisLabel: {
+                            show: false,
+                        },
+                        axisTick: {
+                            show: false,
+                        },
+                    },
+                    grid: {
+                        left: 16,
+                        top: 20, // 设置条形图的边s距
+                        right: 0,
+                        bottom: 0,
+                        containLabel: true,
+                    },
+                    yAxis: [{
+                        type: "category",
+                        inverse: true,
+                        data: [value],
+                        axisLine: {
+                            show: false,
+                        },
+                        axisTick: {
+                            show: false,
+                        },
+                        axisLabel: {
+                            show: false,
+                        },
+                    }, ],
+                    series: [
+                        // 内
+                        {
+                            type: "bar",
+                            barWidth: 6,
+                            animation: this.firstAnimation,
+                            // legendHoverLink: false,
+                            // silent: true,
+                            itemStyle: {
+                                normal: {
+                                    color: function (params) {
+                                        return {
+                                            type: "linear",
+                                            x: 100,
+                                            y: 10,
+                                            x2: 1,
+                                            y2: 0,
+                                            colorStops: [{
+                                                    offset: 0,
+                                                    color: currColor, // 0% 处的颜色
+                                                },
+                                                {
+                                                    offset: 1,
+                                                    color: currColor, // 100% 处的颜色
+                                                },
+                                            ],
+                                        };
+                                    },
+                                    shadowBlur: 10,
+                                    shadowColor: "rgba(255, 255, 255, 0.30)",
+                                },
+                            },
+                            label: {
+                                normal: {
+                                    show: false,
+                                    position: [0, -20],
+                                    formatter: function (param) {
+                                        return param.data.value;
+                                    },
+                                    textStyle: {
+                                        color: "#ffffff",
+                                        // this.$store.state.themeName === "dark" ? "#ffffff" : "#000",
+                                        fontSize: 12,
+                                    },
+                                },
+                            },
+                            data: [value],
+                            z: 1,
+                            animationEasing: "elasticOut",
+                        },
+                        // 三角
+                        {
+                            type: "pictorialBar",
+                            symbolPosition: "end",
+                            animation: this.firstAnimation,
+                            data: [value.value],
+                            symbol: "triangle",
+                            symbolOffset: [0, -10],
+                            symbolSize: [5, 5],
+                            symbolRotate: 180,
+                            itemStyle: {
+                                normal: {
+                                    borderWidth: 0,
+                                    color: function (params) {
+                                        return currColor;
+                                    },
+                                    // shadowBlur: 2,
+                                    // shadowColor: "rgba(255, 255, 255, 0.80)",
+                                },
+                            },
+                        },
+                        // 分隔
+                        {
+                            type: "pictorialBar",
+                            itemStyle: {
+                                normal: {
+                                    color: this.theme ? "#fff" : "#000",
+                                },
+                            },
+                            animation: this.firstAnimation,
+                            symbolRepeat: "fixed",
+                            symbolMargin: 4,
+                            symbol: "rect",
+                            symbolClip: true,
+                            symbolSize: [1, 8],
+                            symbolPosition: "start",
+                            symbolOffset: [8, -1],
+                            symbolBoundingData: value.total,
+                            symbolRotate: -15,
+                            data: [value],
+                            z: 2,
+                            animationEasing: "elasticOut",
+                        },
+                        // 外边框
+                        {
+                            type: "pictorialBar",
+                            animation: this.firstAnimation,
+                            symbol: "rect",
+                            symbolBoundingData: value.total,
+                            itemStyle: {
+                                normal: {
+                                    color: "none",
+                                },
+                            },
+                            label: {
+                                normal: {
+                                    formatter: (params) => {
+                                        return "{gm|}{f|  " + params.data + "}";
+                                    },
+                                    rich: {
+                                        f: {
+                                            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
+                                            fontSize: 14,
+                                            lineHeight: 20,
+                                            fontFamily: "Bicubik",
+                                        },
+                                        gm: {
+                                            backgroundColor: currColor,
+                                            width: 4,
+                                            height: 4,
+                                            lineHeight: 20,
+                                            verticalAlign: "middle",
+                                            borderRadius: [50, 50, 50, 50],
+                                        },
+                                    },
+                                    position: "right",
+                                    distance: 8, // 向右偏移位置
+                                    show: true,
+                                },
+                            },
+                            // data: [+value.total],
+                        },
+                        // 外框
+                        {
+                            type: "bar",
+                            animation: this.firstAnimation,
+                            name: "外框",
+                            barGap: "-120%", // 设置外框粗细
+                            data: [{
+                                value: value.total,
+                                itemStyle: {
+                                    normal: {
+                                        color: "transparent",
+                                        borderColor: currColor, // [, "#333"],
+                                        borderWidth: 1, // 边框宽度
+                                        // barBorderRadius: 0, //圆角半径
+                                        opacity: 0.5,
+                                        label: {
+                                            // 标签显示位置
+                                            show: false,
+                                            position: "top", // insideTop 或者横向的 insideLeft
+                                        },
+                                    },
+                                },
+                            }, ],
+                            barWidth: 9,
+                        },
+                    ],
+                };
+
+                chart.clear();
+                chart.setOption(option);
+
+                this.resize = function () {
+                    chart.resize();
+                };
+
+                window.removeEventListener("resize", this.resize);
+                window.addEventListener("resize", this.resize);
+            },
+            handleElectricDetail() {},
+        },
+        created() {
+            this.id = "pie-chart-" + util.newGUID();
+        },
+        mounted() {
+            // this.$nextTick(() => {
+            //   this.$el.style.width = this.width;
+            //   this.$el.style.height = this.height;
+            //   this.list.forEach((value, index) => {
+            //     this.initChart(value, index);
+            //   });
+            //   this.firstAnimation = false;
+            // });
+        },
+        //   updated() {
+        //     this.$nextTick(() => {
+        //       this.list.forEach((value, index) => {
+        //         this.initChart(value, index);
+        //       });
+        //     });
+        //   },
+        watch: {
+            list: {
+                handler(val) {
+                    if (val && val.length) {
+                        this.$nextTick(() => {
+                            this.$el.style.width = this.width;
+                            this.$el.style.height = this.height;
+                            this.list.forEach((value, index) => {
+                                this.initChart(value, index);
+                            });
+                            this.firstAnimation = false;
+                        });
+                    }
+                },
+                deep: true,
+                immediate: true,
+            },
+            "$store.state.theme"() {
+                this.list.forEach((value, index) => {
+                    this.initChart(value, index);
+                });
+            },
+        },
+        unmounted() {
+            window.removeEventListener("resize", this.resize);
+        },
+    };
+</script>
+
+<style lang="less">
+    .chart {
+        width: 100%;
+        height: 100%;
+        display: inline-block;
+        cursor: default;
+    }
+</style>

+ 327 - 0
src/views/economicsOperation/nxfHomePage/component/marker-line-chart.vue

@@ -0,0 +1,327 @@
+<template>
+    <div class="chart" :id="id"></div>
+</template>
+
+<script>
+    import util from "@/helper/util.js";
+    import partten from "@/helper/partten.js";
+    import * as echarts from "echarts";
+
+    export default {
+        name: "double-line-chart",
+        componentName: "double-line-chart",
+        props: {
+            isChartClick: {
+                type: Boolean,
+                default: false,
+            },
+            width: {
+                type: String,
+                default: "100%",
+            },
+            height: {
+                type: String,
+                default: "13.889vh",
+            },
+            // 传入数据
+            list: {
+                type: Array,
+                default: () => [{
+                        title: "绿线",
+                        value: [{
+                                text: "",
+                                value: 0,
+                            },
+                            {
+                                text: "0:00",
+                                value: 20,
+                            },
+                            {
+                                text: "10:00",
+                                value: 1,
+                            },
+                            {
+                                text: "11:00",
+                                value: 40,
+                            },
+                            {
+                                text: "12:00",
+                                value: 10,
+                            },
+                            {
+                                text: "13:00",
+                                value: 15,
+                            },
+                            {
+                                text: "14:00",
+                                value: 30,
+                            },
+                            {
+                                text: "15:00",
+                                value: 40,
+                            },
+                            {
+                                text: "",
+                                value: 10,
+                            },
+                        ],
+                    },
+                    {
+                        title: "黄线",
+                        value: [{
+                                text: "",
+                                value: 0,
+                            },
+                            {
+                                text: "0:00",
+                                value: 40,
+                            },
+                            {
+                                text: "10:00",
+                                value: 20,
+                            },
+                            {
+                                text: "11:00",
+                                value: 20,
+                            },
+                            {
+                                text: "12:00",
+                                value: 10,
+                            },
+                            {
+                                text: "13:00",
+                                value: 40,
+                            },
+                            {
+                                text: "14:00",
+                                value: 50,
+                            },
+                            {
+                                text: "15:00",
+                                value: 40,
+                            },
+                            {
+                                text: "",
+                                value: 10,
+                            },
+                        ],
+                    },
+                ],
+            },
+            // 单位
+            unit: {
+                type: String,
+                default: "MW",
+            },
+            showLegend: {
+                type: Boolean,
+                default: false,
+            },
+            myUnit: {
+                type: String,
+            },
+        },
+        data() {
+            return {
+                id: "",
+                chart: null,
+                color: ["#05bb4c", "#4b55ae", "#fa8c16"],
+            };
+        },
+        computed: {
+            colorValue() {
+                return partten.getColor(this.color);
+            },
+            datas() {
+                return this.list.map((t) => {
+                    return t.value;
+                });
+            },
+            legend() {
+                return this.list.map((t) => {
+                    return t.title;
+                });
+            },
+            xdata() {
+                return this.list[0].value.map((t) => {
+                    return t.text;
+                });
+            },
+            series() {
+                let that = this;
+                let result = [];
+
+                this.list.forEach((value, index) => {
+                    result.push({
+                        name: value.title,
+                        type: "line",
+                        smooth: true,
+                        showSymbol: false,
+                        zlevel: index,
+                        lineStyle: {
+                            normal: {
+                                color: this.color[index],
+                                width: 1,
+                            },
+                        },
+                        markPoint: {},
+                        // index == 0
+                        //   ? {
+                        //       data: [
+                        //         {
+                        //           type: "average",
+                        //           name: "保证功率",
+                        //           symbolSize: 0,
+                        //           label: {
+                        //             offset: [0, -40],
+                        //             formatter: function(param) {
+                        //               return `{title|${param.name}}` + "\n" + `{value| ${param.value}${that.unit}}`;
+                        //             },
+                        //             backgroundColor: partten.getColor("green") + 33,
+                        //             borderColor: partten.getColor("green"),
+                        //             borderWidth: 0.5,
+                        //             borderRadius: 2,
+                        //             padding: 8,
+                        //             rich: {
+                        //               title: {
+                        //                 color: partten.getColor("green"),
+                        //                 fontSize: 12,
+                        //               },
+                        //               value: {
+                        //                 color: "#fff",
+                        //                 fontSize: 16,
+                        //                 padding: [12, 0, 0, -4],
+                        //               },
+                        //             },
+                        //           },
+                        //         },
+                        //       ],
+                        //     }
+                        //   : {},
+                        yAxisIndex: value.yAxisIndex,
+                        data: value.value.map((t) => {
+                            return t.value;
+                        }),
+                    });
+                });
+                return result;
+            },
+            yAxis() {
+                let result = [];
+                result.push({
+                    type: "value",
+                    name: this.unit,
+                    axisLabel: {
+                        formatter: "{value}",
+                        fontSize: util.vh(14),
+                    },
+                    boundaryGap: false,
+                    //分格线
+                    splitLine: {
+                        show: true,
+                        lineStyle: {
+                            color: partten.getColor("gray"),
+                            type: "dashed",
+                        },
+                    },
+                });
+                return result;
+            },
+        },
+        methods: {
+            resize() {},
+            initChart() {
+                let that = this;
+                const chart = echarts.init(this.$el);
+
+                let option = {
+                    color: this.color,
+                    tooltip: {
+                        trigger: "axis",
+                        backgroundColor: "rgba(0,0,0,0.4)",
+                        borderColor: partten.getColor("gray"),
+                        textStyle: {
+                            color: "#fff",
+                            fontSize: util.vh(16),
+                        },
+                    },
+                    legend: {
+                        show: this.showLegend,
+                        data: this.legend,
+                        right: 56,
+                        icon: "circle",
+                        itemWidth: 6,
+                        inactiveColor: partten.getColor("gray"),
+                        textStyle: {
+                            color: partten.getColor("grayl"),
+                            fontSize: 12,
+                        },
+                    },
+                    grid: {
+                        top: this.myUnit === 'MW' ? 32 : 16,
+                        left: 32,
+                        right: 8,
+                        bottom: 24,
+                    },
+                    xAxis: [{
+                        type: "category",
+                        boundaryGap: false,
+                        axisLabel: {
+                            formatter: "{value}",
+                            textStyle: {
+                                color: partten.getColor("gray"),
+                                fontSize: util.vh(14),
+                            },
+                        },
+                        data: this.xdata,
+                    }, ],
+                    yAxis: this.yAxis,
+                    series: this.series,
+                };
+                chart.clear();
+                chart.setOption(option);
+                if (this.isChartClick) {
+                    chart.getZr().off("click");
+                    chart.getZr().on("click", (params) => {
+                        that.chartClick();
+                    });
+                }
+                this.resize = function () {
+                    chart.resize();
+                };
+
+                window.addEventListener("resize", this.resize);
+            },
+            chartClick() {
+                this.$emit("chartClick");
+            }
+        },
+        created() {
+            this.id = "pie-chart-" + util.newGUID();
+            // console.log('list',this.list);
+        },
+        mounted() {
+            this.$nextTick(() => {
+                this.$el.style.width = this.width;
+                this.$el.style.height = this.height;
+                this.initChart();
+            });
+        },
+        updated() {
+            this.$nextTick(() => {
+                this.initChart();
+            });
+        },
+        unmounted() {
+            window.removeEventListener("resize", this.resize);
+        },
+    };
+</script>
+
+<style lang="less">
+    .chart {
+        width: 100%;
+        height: 100%;
+        display: inline-block;
+    }
+</style>

+ 390 - 0
src/views/economicsOperation/nxfHomePage/component/multiple-bar-chart.vue

@@ -0,0 +1,390 @@
+<template>
+    <div class="chart" :id="id"></div>
+</template>
+
+<script>
+    import util from "@/helper/util.js";
+    import partten from "@/helper/partten.js";
+    import * as echarts from "echarts";
+
+    export default {
+        name: "multiple-bar-charts",
+        componentName: "multiple-bar-chart",
+        props: {
+            width: {
+                type: String,
+                default: "100%",
+            },
+            height: {
+                type: String,
+                default: "13.889vh",
+            },
+            // 传入数据
+            list: {
+                type: Array,
+                default: () => [{
+                        title: "日发电量",
+                        yAxisIndex: 0,
+                        value: [{
+                            text: "1日",
+                            value: 1,
+                        }, ],
+                    },
+                    {
+                        title: "上网电量",
+                        yAxisIndex: 0,
+                        value: [{
+                                text: "1日",
+                                value: 1,
+                            },
+                            {
+                                text: "2日",
+                                value: 2,
+                            },
+                            {
+                                text: "3日",
+                                value: 1,
+                            },
+                            {
+                                text: "4日",
+                                value: 3,
+                            },
+                            {
+                                text: "5日",
+                                value: 3,
+                            },
+                            {
+                                text: "6日",
+                                value: 3,
+                            },
+                            {
+                                text: "7日",
+                                value: 3,
+                            },
+                        ],
+                    },
+                    {
+                        title: "购网电量",
+                        yAxisIndex: 0,
+                        value: [{
+                                text: "1日",
+                                value: 1,
+                            },
+                            {
+                                text: "2日",
+                                value: 2,
+                            },
+                            {
+                                text: "3日",
+                                value: 1,
+                            },
+                            {
+                                text: "4日",
+                                value: 3,
+                            },
+                            {
+                                text: "5日",
+                                value: 3,
+                            },
+                            {
+                                text: "6日",
+                                value: 3,
+                            },
+                            {
+                                text: "7日",
+                                value: 3,
+                            },
+                        ],
+                    },
+                    {
+                        title: "风速",
+                        yAxisIndex: 1,
+                        value: [{
+                                text: "1日",
+                                value: 1,
+                            },
+                            {
+                                text: "2日",
+                                value: 2,
+                            },
+                            {
+                                text: "3日",
+                                value: 1,
+                            },
+                            {
+                                text: "4日",
+                                value: 3,
+                            },
+                            {
+                                text: "5日",
+                                value: 3,
+                            },
+                            {
+                                text: "6日",
+                                value: 3,
+                            },
+                            {
+                                text: "7日",
+                                value: 3,
+                            },
+                        ],
+                    },
+                ],
+            },
+            // 单位
+            units: {
+                type: Array,
+                default: () => ["(万KWh)", "(风速)"],
+            },
+            // 显示 legend
+            showLegend: {
+                type: Boolean,
+                default: true,
+            },
+            // 颜色#
+            color: {
+                type: Array,
+                default: () => [
+                    "#2999a0", "#67b9ff", "#ff6271", 
+                    "#05bb4c",
+                    "#4b55ae",
+                    "#fa8c16",
+                    "#f8de5b",
+                    "#1a93cf",
+                    "#c531c7",
+                    "#bd3338",
+                ],
+            },
+            showAnimation: {
+                type: Boolean,
+                default: true,
+            },
+            // 柱子最大宽度
+            barMaxWidth: {
+                type: Number || String,
+                default: 0,
+            },
+            // 柱子间距
+            barGap: {
+                type: Number || String,
+                default: 0,
+            },
+        },
+        data() {
+            return {
+                id: "",
+                chart: null,
+                firstAnimation: true,
+            };
+        },
+        computed: {
+            legend() {
+                return this.list.map((t) => {
+                    return t.title;
+                });
+            },
+            xdata() {
+                let result = [];
+                if (this.list && this.list.length > 0 && this.list[0].value.length > 0) {
+                    result = this.list[0].value.map((t) => {
+                        return t.text;
+                    });
+                }
+                return result;
+            },
+            ydata() {
+                let result = [];
+                this.units.forEach((value, index) => {
+                    let data = null;
+                    if (index == 0) {
+                        data = {
+                            type: "value",
+                            name: value,
+                            nameTextStyle: {
+                                color: "#a6c1dd"
+                            },
+                            axisLabel: {
+                                formatter: "{value} ",
+                                fontSize: 12,
+                                textStyle: {
+                                    color: this.$store.state.themeName === "dark" ?
+                                        "#a6c1dd" : "#000",
+                                },
+                            },
+                            //分格线
+                            splitLine: {
+                                lineStyle: {
+                                    color: this.$store.state.themeName === "dark" ? "#404d69" : "#000",
+                                    type: "dashed",
+                                },
+                            },
+                        };
+                    } else {
+                        data = {
+                            type: "value",
+                            name: value,
+                            nameTextStyle: {
+                                color: "#a6c1dd"
+                            },
+                            axisLabel: {
+                                formatter: "{value}",
+                                fontSize: 12,
+                                textStyle: {
+                                    color: this.$store.state.themeName === "dark" ?
+                                        "#a6c1dd" : "#000",
+                                },
+                            },
+                            //分格线
+                            splitLine: {
+                                show: false,
+                            },
+                        };
+                    }
+
+                    result.push(data);
+                });
+
+                return result;
+            },
+            series() {
+                let result = [];
+                if (this.list && this.list.length > 0) {
+                    this.list.forEach((value, index) => {
+                        let seriesItem = {
+                            name: value.title,
+                            type: "bar",
+                            barWidth: "8%",
+                            animation: this.firstAnimation && this.showAnimation,
+                            yAxisIndex: value.yAxisIndex,
+                            data: value.value.map((t) => {
+                                return t.value;
+                            }),
+                        };
+                        if (this.barMaxWidth) {
+                            seriesItem.barMaxWidth = this.barMaxWidth;
+                        } else {
+                            seriesItem.barWidth = "8%";
+                        }
+
+                        if (this.barGap) {
+                            seriesItem.barGap = this.barGap;
+                        }
+                        result.push(seriesItem);
+                    });
+                }
+                return result;
+            },
+        },
+        methods: {
+            resize() {
+                this.initChart();
+            },
+            initChart() {
+                let chart = echarts.init(this.$el);
+
+                let option = {
+                    color: this.color,
+                    tooltip: {
+                        trigger: "axis",
+                        backgroundColor: this.$store.state.themeName === "dark" ?
+                            "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
+                        borderColor: this.$store.state.themeName === "dark" ?
+                            partten.getColor("gray") : "#000",
+                        textStyle: {
+                            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
+                            fontSize: 12,
+                        },
+                    },
+                    legend: {
+                        show: this.showLegend,
+                        data: this.legend,
+                        right: 56,
+                        icon: "ract",
+                        itemWidth: 8,
+                        itemHeight: 8,
+                        inactiveColor: this.$store.state.themeName === "dark" ?
+                            partten.getColor("gray") : "#000",
+                        textStyle: {
+                            fontSize: 12,
+                            color: this.$store.state.themeName === "dark" ?
+                                partten.getColor("grayl") : "#000",
+                        },
+                    },
+                    grid: {
+                        top: 32,
+                        left: 25,
+                        right: 30,
+                        bottom: 0,
+                        containLabel: true,
+                    },
+                    xAxis: [{
+                        type: "category",
+                        data: this.xdata,
+                        nameLocation: "center",
+                        axisPointer: {
+                            type: "shadow",
+                        },
+                        axisLabel: {
+                            interval: 0,
+                            fontSize: 12,
+                            textStyle: {
+                                color: this.$store.state.themeName === "dark" ?
+                                    "#a6c1dd" : "#000",
+                            },
+                        },
+                    }, ],
+                    yAxis: this.ydata,
+                    series: this.series,
+                };
+
+                chart.clear();
+                chart.setOption(option);
+
+                this.resize = function () {
+                    chart.resize();
+                };
+
+                window.addEventListener("resize", this.resize);
+            },
+        },
+        created() {
+            this.$nextTick(() => {
+                this.id = "pie-chart-" + util.newGUID();
+            });
+        },
+        mounted() {
+            this.$nextTick(() => {
+                this.$el.style.width = this.width;
+                this.$el.style.height = this.height;
+                this.initChart();
+                this.firstAnimation = false;
+            });
+        },
+        updated() {
+            this.$nextTick(() => {
+                this.initChart();
+            });
+        },
+        unmounted() {
+            window.removeEventListener("resize", this.resize);
+        },
+
+        watch: {
+            "$store.state.themeName"() {
+                let myChart = echarts.init(document.getElementById(this.id));
+                myChart.dispose();
+                setTimeout(() => {
+                    this.initChart();
+                }, 300);
+            },
+        },
+    };
+</script>
+
+<style lang="less">
+    .chart {
+        width: 100%;
+        height: 100%;
+        display: inline-block;
+    }
+</style>

+ 488 - 0
src/views/economicsOperation/nxfHomePage/component/multiple-y-line-chart-normal.vue

@@ -0,0 +1,488 @@
+<template>
+  <div class="chart" :id="id"></div>
+</template>
+
+<script>
+import util from "@/helper/util.js";
+import partten from "@/helper/partten.js";
+import * as echarts from "echarts";
+
+export default {
+  name: "multiple-y-line-chart-normal",
+  componentName: "multiple-y-line-chart-normal",
+  props: {
+    width: {
+      type: String,
+      default: "100%",
+    },
+    height: {
+      type: String,
+      default: "13.889vh",
+    },
+    // 数据
+    list: {
+      type: Array,
+      default: () => [
+        {
+          title: "机舱震动x方向",
+          yAxisIndex: 0,
+          value: [
+            {
+              text: "-0.003",
+              value: -0.003,
+            },
+            {
+              text: "-0.002",
+              value: -0.002,
+            },
+            {
+              text: "-0.003",
+              value: -0.006,
+            },
+            {
+              text: "-0.003",
+              value: -0.003,
+            },
+            {
+              text: "-0.002",
+              value: -0.002,
+            },
+            {
+              text: "-0.003",
+              value: -0.006,
+            },
+            {
+              text: "-0.003",
+              value: -0.003,
+            },
+            {
+              text: "-0.002",
+              value: -0.002,
+            },
+            {
+              text: "-0.003",
+              value: -0.006,
+            },
+          ],
+        },
+        {
+          title: "机舱震动y方向",
+          yAxisIndex: 1,
+          value: [
+            {
+              text: "-0.01",
+              value: -0.01,
+            },
+            {
+              text: "-0.005",
+              value: -0.005,
+            },
+            {
+              text: "-0.008",
+              value: -0.008,
+            },
+            {
+              text: "-0.01",
+              value: -0.01,
+            },
+            {
+              text: "-0.005",
+              value: -0.005,
+            },
+            {
+              text: "-0.008",
+              value: -0.008,
+            },
+            {
+              text: "-0.01",
+              value: -0.01,
+            },
+            {
+              text: "-0.005",
+              value: -0.005,
+            },
+            {
+              text: "-0.008",
+              value: -0.008,
+            },
+          ],
+        },
+        {
+          title: "机舱震动最大偏移值",
+          yAxisIndex: 2,
+          value: [
+            {
+              text: "1",
+              value: 1,
+            },
+            {
+              text: "0.05",
+              value: 0.05,
+            },
+            {
+              text: "0.5",
+              value: 0.5,
+            },
+            {
+              text: "1",
+              value: 1,
+            },
+            {
+              text: "0.05",
+              value: 0.05,
+            },
+            {
+              text: "0.5",
+              value: 0.5,
+            },
+            {
+              text: "1",
+              value: 1,
+            },
+            {
+              text: "0.05",
+              value: 0.05,
+            },
+            {
+              text: "0.5",
+              value: 0.5,
+            },
+          ],
+        },
+        {
+          title: "风速1",
+          yAxisIndex: 3,
+          value: [
+            {
+              text: "1",
+              value: 1,
+            },
+            {
+              text: "5",
+              value: 5,
+            },
+            {
+              text: "3",
+              value: 1,
+            },
+            {
+              text: "1",
+              value: 1,
+            },
+            {
+              text: "5",
+              value: 5,
+            },
+            {
+              text: "3",
+              value: 1,
+            },
+            {
+              text: "1",
+              value: 1,
+            },
+            {
+              text: "5",
+              value: 5,
+            },
+            {
+              text: "3",
+              value: 1,
+            },
+          ],
+        },
+        {
+          title: "风速2",
+          yAxisIndex: 4,
+          value: [
+            {
+              text: "1",
+              value: 1,
+            },
+            {
+              text: "2",
+              value: 2,
+            },
+            {
+              text: "3",
+              value: 1,
+            },
+            {
+              text: "1",
+              value: 1,
+            },
+            {
+              text: "2",
+              value: 2,
+            },
+            {
+              text: "3",
+              value: 1,
+            },
+            {
+              text: "1",
+              value: 1,
+            },
+            {
+              text: "2",
+              value: 2,
+            },
+            {
+              text: "3",
+              value: 1,
+            },
+          ],
+        },
+      ],
+    },
+    showLegend: {
+      type: Boolean,
+      default: false,
+    },
+    // 轴
+    yAxises: {
+      type: Array,
+      default: () => [
+        {
+          name: "机舱震动x方向",
+          min: -0.01,
+          max: 0,
+          unit: "",
+          position: "left",
+        },
+        {
+          name: "机舱震动y方向",
+          min: -0.01,
+          max: 0,
+          unit: "",
+          position: "right",
+        },
+        {
+          name: "机舱震动最大偏移值",
+          min: 0,
+          max: 1,
+          unit: "",
+          position: "left",
+        },
+        {
+          name: "风速1",
+          min: 0,
+          max: 10,
+          unit: "",
+          position: "right",
+        },
+        {
+          name: "风速2",
+          min: 0,
+          max: 10,
+          unit: "",
+          position: "left",
+        },
+      ],
+    },
+  },
+  data() {
+    return {
+      id: "",
+      chart: null,
+      color: ["#2999a0", "#67b9ff", "#ff6271", "#05b2fa", "#0ef167","#05bb4c", "#4b55ae", "#EDB32F", "#DB5520", "#323E6F",  ],
+    };
+  },
+  computed: {
+    legend() {
+      return this.list.map((t) => {
+        return t.title;
+      });
+    },
+    xdata() {
+      return this.list[0]?.value.map((t) => {
+        return t.text;
+      });
+    },
+    yAxis() {
+      let result = [];
+      let p = { left: 0, right: 0 };
+      this.yAxises.forEach((item, index) => {
+        result.push({
+          type: "value",
+          name: `${item.name}${item.unit}`,
+          nameLocation: p[item.position] % 2 == 0 ? "end" : "start",
+          nameGap: 10,
+          nameTextStyle: {
+            color: "#a6c1dd"
+          },
+          min: item.min,
+          max: item.max,
+          position: item.position,
+          offset: 10,
+          axisLabel: {
+            formatter: "{value}",
+            fontSize: 12,
+            textStyle: {
+              color:
+                this.$store.state.themeName === "dark"
+                  ? "#a6c1dd"
+                  : "#000",
+            },
+          },
+          //分格线
+          splitLine: {
+            show: index === 0 ? true : false,
+            lineStyle: {
+              color: "#404d69",
+              type: "dashed",
+            },
+          },
+          axisLine: {
+            show: true,
+          },
+          axisTick: {
+            show: true,
+          },
+        });
+        p[item.position]++;
+      });
+      return result;
+    },
+    series() {
+      let result = [];
+      this.list.forEach((value, index) => {
+        result.push({
+          name: value.title,
+          type: "line",
+          smooth: true,
+          zlevel: index,
+          lineStyle: {
+            normal: {
+              color: this.color[index],
+              width: 2,
+            },
+          },
+          showSymbol: false,
+          yAxisIndex: value.yAxisIndex,
+          data: value.value.map((t) => {
+            return t.value;
+          }),
+        });
+      });
+
+      return result;
+    },
+  },
+  methods: {
+    resize() {},
+    initChart() {
+      const chart = echarts.init(this.$el);
+
+      let option = this.option();
+      chart.clear();
+
+      chart.setOption(option);
+      this.resize = function () {
+        chart.resize();
+      };
+
+      window.addEventListener("resize", this.resize);
+    },
+    option: function () {
+      return {
+        color: this.color,
+        tooltip: {
+          trigger: "axis",
+          backgroundColor:
+            this.$store.state.themeName === "dark"
+              ? "rgba(0,0,0,0.4)"
+              : "rgba(255,255,255,0.5)",
+          borderColor:
+            this.$store.state.themeName === "dark"
+              ? partten.getColor("gray")
+              : "#000",
+          textStyle: {
+            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
+            fontSize: 12,
+          },
+        },
+        legend: {
+          show: this.showLegend,
+          data: this.legend,
+          top: "top",
+          icon: "circle",
+          itemWidth: 6,
+          inactiveColor: partten.getColor("gray"),
+          textStyle: {
+            color:
+              this.$store.state.themeName === "dark"
+                ? partten.getColor("grayl")
+                : "#000",
+            fontSize: 12,
+          },
+        },
+        grid: {
+          top: 27,
+          left: 30,
+          right: 40,
+          bottom: 0,
+          containLabel: true,
+        },
+        xAxis: [
+          {
+            type: "category",
+            boundaryGap: false,
+            axisLabel: {
+              formatter: "{value}",
+              fontSize: 12,
+              textStyle: {
+                color:
+                  this.$store.state.themeName === "dark"
+                    ? "#a6c1dd"
+                    : "#000",
+              },
+            },
+            data: this.xdata,
+          },
+        ],
+        yAxis: this.yAxis,
+        series: this.series,
+      };
+    },
+    reload: function () {
+      const chart = echarts.getInstanceByDom(this.$el);
+      chart.clear();
+      let option = this.option();
+      chart.setOption(option);
+    },
+  },
+  created() {
+    this.id = "pie-chart-" + util.newGUID();
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.$el.style.width = this.width;
+      this.$el.style.height = this.height;
+      this.initChart();
+    });
+  },
+  updated() {
+    this.$nextTick(() => {
+      this.initChart();
+    });
+  },
+  unmounted() {
+    window.removeEventListener("resize", this.resize);
+  },
+
+  watch: {
+    "$store.state.themeName"() {
+      this.initChart();
+    },
+  },
+};
+</script>
+
+<style lang="less">
+.chart {
+  width: 100%;
+  height: 100%;
+  display: inline-block;
+}
+</style>

+ 353 - 0
src/views/economicsOperation/nxfHomePage/component/operationTable.vue

@@ -0,0 +1,353 @@
+<template>
+    <table class="com-table rank-table operationTable" :data-type="$store.state.moreSty">
+        <thead>
+            <tr>
+                <!-- <th>排名</th> -->
+                <th v-for="(col, index) of data.column" :key="index" :class="{ light: col.is_light }"
+                    :style="{ width: col.width, height: '45px' }" @click="onSort(col)">
+                    {{ col.name }}
+                </th>
+            </tr>
+        </thead>
+        <!-- <tbody :style="{ height: height, 'overflow-y': 'auto' }">
+            <tr v-for="(row, index) of tableData" :key="index" class="rank rank' + index" @click="clickRow(row)">
+                <td v-for="(col, i) of data.column" :key="i" :style="{ width: col.width }" :class="{
+              light: hoverRow == row || hoverCol == col,
+              num: col.is_num,
+              'always-light': col.is_light || row.is_light,
+            }" @mouseleave="leave()">
+                    <component :is="col.type ? col.type : 'span'" v-bind="col.props"
+                        v-html="template(col, row[col.field])" @click="onClick(col, row)">
+                    </component>
+                </td>
+            </tr>
+        </tbody> -->
+        <tbody :style="{ height: height, 'overflow-y': 'auto' }">
+            <tr v-for="(row, index) of tableData" :key="index" class="rank">
+                <td v-for="(col, i) of data.column" :key="i">
+                    <span :class="tdColor(col.name, index, row[col.field])">
+                        <span>{{row[col.field]}}</span></span>
+                </td>
+            </tr>
+        </tbody>
+        <el-pagination class="mg-t-8" v-if="pageable" @current-change="handleCurrentChange" :current-page="currentPage"
+            :page-size="pageSize" :total="data.total" v-bind="elPaggingProps">
+        </el-pagination>
+    </table>
+</template>
+
+<script>
+    export default {
+        // 名称
+        name: "ComTable",
+        // 使用组件
+        components: {},
+        // 传入参数
+        props: {
+            /**
+                *   {
+                        column: [{
+                            name: "风机名称",
+                            field: "name",
+                            type:'div',
+                            width:'', // 宽度
+                            is_num: false, // 是否为数字
+                            is_light: false, // 是否高亮
+                            template:function(){ }
+                            click:function(){} //点击事件
+                            sortable:fasle // 排序
+                            // 新增用于在表格中使用动态三方组件
+                            type:'el-tag', // * 新增 用于传入三方组件名称 实现三方组件引入  component :is 方式实现
+                            props:{}, // * 新增 用户传入三方组件的 props 与type同时使用
+                        },{
+                            name: "冷却风温度",
+                            field: "lqf",
+                            is_num: true,
+                            is_light: false
+                        }],
+                        data: [{
+                            name: "1E01",
+                            lqf: 15.78,
+                            is_light: false
+                        }],
+                        total:200
+                    }
+                */
+            data: Object,
+            // hover 样式
+            showHover: {
+                type: Boolean,
+                default: true,
+            },
+            // 列高亮
+            showColHover: {
+                type: Boolean,
+                default: false,
+            },
+            canScroll: {
+                type: Boolean,
+                default: true,
+            },
+            pageSize: {
+                type: Number,
+                default: 0,
+            },
+            height: {
+                type: String,
+                default: "",
+            },
+            // 新增 支持 pagging 组件
+            elPaggingProps: {
+                type: Object,
+                default: () => {
+                    return {
+                        layout: "total, sizes, prev, pager, next, jumper",
+                        // "page-sizes": [100, 200, 300, 400],
+                    };
+                },
+            },
+        },
+        // 自定义事件
+        emits: {
+            // 分页事件
+            onPagging: null,
+        },
+        // 数据
+        data() {
+            return {
+                hoverRow: -1,
+                hoverCol: -1,
+                sortCol: "",
+                sortType: "",
+                currentPage: 1,
+            };
+        },
+        computed: {
+            tableData() {
+                let that = this;
+                if (this.sortCol == "") {
+                    return this.data.data;
+                } else {
+                    let data = this.data.data;
+
+                    data.sort((a, b) => {
+                        let rev = 1;
+                        if (that.sortType == "ASC") rev = 1;
+                        else if (that.sortType == "DESC") rev = -1;
+
+                        if (a[that.sortCol] > b[that.sortCol]) return rev * 1;
+                        if (a[that.sortCol] < b[that.sortCol]) return rev * -1;
+                        return 0;
+                    });
+                    return data;
+                }
+            },
+            pageable() {
+                return this.pageSize != 0;
+            },
+            pages() {
+                if (this.pageable) return parseInt(this.data.total / this.pageSize) + 1;
+                else return 0;
+            },
+            startRow() {
+                if (this.pageable) return (this.currentPage - 1) * this.pageSize;
+                else return 0;
+            },
+            endRow() {
+                if (this.pageable) return this.currentPage * this.pageSize;
+                else return this.data.data.length;
+            },
+        },
+        // 函数
+        methods: {
+            tdColor(name, index, data) {
+                let str = ''
+                if (name === '排名') {
+                    if (index === 0) {
+                        str = 'tdindex tdIndex0'
+                    } else if (index === 1) {
+                        str = 'tdindex tdIndex1'
+                    } else if (index === 2) {
+                        str = 'tdindex tdIndex2'
+                    }
+                } else if (name === '涨跌%') {
+                    if (data < 0) {
+                        str = 'tdzd1'
+                    } else {
+                        str = 'tdzd2'
+                    }
+                }
+                return str
+            },
+            clickRow(row) {
+                this.$emit("rowClick", row);
+            },
+            onClick(col, data) {
+                if (col.click) col.click(event, data);
+            },
+            onSort(col) {
+                if (col.sortable == true) {
+                    this.sortCol = col.field;
+                    switch (this.sortType) {
+                        case "":
+                            this.sortType = "DESC";
+                            break;
+                        case "DESC":
+                            this.sortType = "ASC";
+                            break;
+                        case "ASC":
+                            this.sortType = "";
+                            break;
+                    }
+                }
+            },
+            template(col, data) {
+                if (!col.template) return data;
+                else return col.template(data);
+            },
+            hover(row, col) {
+                if (this.showHover) {
+                    this.hoverRow = row;
+                    if (this.showColHover) this.hoverCol = col;
+                }
+            },
+            leave() {
+                this.hoverRow = -1;
+                this.hoverCol = -1;
+            },
+            handleCurrentChange(val) {
+                this.currentPage = val;
+                this.$emit("onPagging", {
+                    pageIndex: this.currentPage,
+                    pageSize: this.pageSize,
+                    start: this.startRow,
+                    end: this.endRow,
+                });
+            },
+        },
+        // 生命周期钩子
+        beforeCreate() {
+            // 创建前
+        },
+        created() {
+            // 创建后
+        },
+        beforeMount() {
+            // 渲染前
+        },
+        mounted() {
+            // 渲染后
+        },
+        beforeUpdate() {},
+        updated() {},
+    };
+</script>
+
+<style lang="less">
+    .operationTable {
+        height: 100%;
+    }
+
+    .operationTable[data-type~="greenSty"] {}
+
+    .operationTable[data-type~="blueSty"] {
+        thead tr th {
+            background: #23396f !important;
+        }
+    }
+
+    .rank-table {
+        thead tr th {
+            color: #bcd2ff;
+        }
+
+        .rank {
+            background: transparent !important;
+            border-bottom: 1px solid #5362684d;
+            cursor: pointer;
+
+            td {
+                height: 4.5vh;
+                line-height: 4.5vh;
+                padding: 0;
+                // color: #ffffff;
+                color: #c2e1ff;
+
+                &.rank-index {
+                    span {
+                        width: 1.852vh;
+                        height: 1.852vh;
+                        display: flex;
+                        margin: 0.37vh auto;
+                        background: #414e64;
+                        align-items: center;
+                        justify-content: center;
+                    }
+                }
+            }
+
+            .tdindex {
+                width: 25px;
+                height: 25px;
+                display: inline-block;
+                color: #fff;
+                position: relative;
+                top: 6px;
+                border-radius: 5px;
+
+                span {
+                    position: absolute;
+                    top: -10px;
+                    left: 9px;
+                }
+            }
+
+            .tdIndex0 {
+                background: #2169c3;
+            }
+
+            .tdIndex1 {
+                background: #2999a0;
+            }
+
+            .tdIndex2 {
+                background: #67b9ff;
+            }
+
+            .tdzd1 {
+                color: #ff6271;
+            }
+
+            .tdzd2 {
+                color: #2999a0;
+            }
+        }
+
+        .rank.rank0 td {
+            color: #edb32f;
+
+            &.rank-index span {
+                background: #edb32f;
+                color: #ffffff;
+            }
+        }
+
+        .rank.rank1 td {
+            color: #05bb4c;
+
+            &.rank-index span {
+                background: #05bb4c;
+                color: #ffffff;
+            }
+        }
+
+        .rank.rank2 td {
+            color: #4b55ae;
+
+            &.rank-index span {
+                background: #4b55ae;
+                color: #ffffff;
+            }
+        }
+    }
+</style>

+ 208 - 0
src/views/economicsOperation/nxfHomePage/component/percent-bar.vue

@@ -0,0 +1,208 @@
+<template>
+    <div class="chart" style="width: 100%;height: 13vh" :id="id"></div>
+</template>
+
+<script>
+    import util from "@/helper/util.js";
+    import partten from "@/helper/partten.js";
+    import * as echarts from "echarts";
+
+    export default {
+        name: "dsah-pie",
+        componentName: "dsah-pie",
+        props: {
+            nameVa: {
+                type: String,
+                default: "",
+            },
+            width: {
+                type: String,
+                default: "7.407vh",
+            },
+            height: {
+                type: String,
+                default: "7.407vh",
+            },
+            // 传入数据
+            value: {
+                type: Number,
+                default: 25,
+            },
+            // 颜色 green yellow (partten中支持的颜色)
+            color: {
+                type: String,
+                default: "green",
+            },
+        },
+        data() {
+            return {
+                id: "",
+                chart: null,
+            };
+        },
+        computed: {
+            colorValue() {
+                return partten.getColor(this.color);
+            },
+            text() {
+                return this.value + "%";
+            },
+        },
+        created() {
+            this.id = "pie-chart-" + util.newGUID();
+        },
+        methods: {
+            initChart() {
+                let chart = echarts.init(this.$el);
+
+                let option = {
+                    title: [{
+                        text: this.text,
+                        subtext: this.nameVa,
+                        x: "47%",
+                        y: "32%",
+                        textAlign: "center",
+                        textStyle: {
+                            fontSize: 16,
+                            fontFamily: "Bicubik",
+                            fontWeight: "600",
+                            color: "rgb(255, 255, 255)",
+                            textAlign: "center",
+                        },
+                        subtextStyle: {
+                            fontSize: 14,
+                            color: "rgb(255, 255, 255)",
+                            textAlign: "center",
+                        },
+                    }, ],
+                    polar: {
+                        radius: ["100%", "85%"],
+                        center: ["50%", "50%"],
+                    },
+                    angleAxis: {
+                        max: 100,
+                        show: false,
+                        startAngle: 180,
+                    },
+                    radiusAxis: {
+                        type: "category",
+                        show: true,
+                        axisLabel: {
+                            show: false,
+                        },
+                        axisLine: {
+                            show: false,
+                        },
+                        axisTick: {
+                            show: false,
+                        },
+                    },
+                    series: [{
+                            name: "",
+                            z: "8",
+                            type: "bar",
+                            roundCap: true,
+                            barWidth: 80,
+                            showBackground: true,
+                            backgroundStyle: {
+                                color: "rgb(35, 57, 111)"
+                            },
+                            data: [this.value],
+                            coordinateSystem: "polar",
+                            itemStyle: {
+                                normal: {
+                                    // color: "rgb(81, 81, 81)",
+                                    color: function(params) {
+                                        var colorList = [
+                                            new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+                                                offset: 0, color: 'rgb(33, 107, 214)' // 颜色渐变
+                                            }, {
+                                                offset: 1, color: 'rgb(110, 205, 243)'   // 颜色渐变
+                                            }]),
+                                            // ... 可以定义更多的颜色渐变
+                                        ];
+                                        return colorList[params.dataIndex % colorList.length];
+                                    }
+                                },
+                            },
+                        },
+                        {
+                            type: "pie",
+                            radius: ["100%", "100%"],
+                            startAngle: 100,
+                            center: ["50%", "50%"],
+                            data: [{
+                                    hoverOffset: 1,
+                                    value: 100,
+                                    name: "",
+                                    itemStyle: {
+                                        // color: "rgb(33, 105, 195)",
+                                        background: "linear-gradient(rgb(33, 107, 214), rgb(110, 205, 243))",
+                                    },
+                                    label: {
+                                        show: false,
+                                    },
+                                    labelLine: {
+                                        normal: {
+                                            smooth: true,
+                                            lineStyle: {
+                                                width: 0,
+                                            },
+                                        },
+                                    },
+                                    hoverAnimation: false,
+                                },
+                                {
+                                    label: {
+                                        show: false,
+                                    },
+                                    labelLine: {
+                                        normal: {
+                                            smooth: true,
+                                            lineStyle: {
+                                                width: 0,
+                                            },
+                                        },
+                                    },
+                                    value: 0,
+                                    hoverAnimation: false,
+                                    itemStyle: {
+                                        color: "rgb(33, 105, 195)",
+                                    },
+                                },
+                            ],
+                        },
+                    ],
+                };
+
+                chart.setOption(option);
+            },
+        },
+        mounted() {
+            this.$nextTick(() => {
+                this.$el.style.width = this.width;
+                this.$el.style.height = this.height;
+                this.initChart();
+            });
+        },
+        updated() {
+            this.$nextTick(() => {
+                this.initChart();
+            });
+        },
+        watch: {
+            "$store.state.themeName"() {
+                this.initChart();
+            },
+        },
+    };
+</script>
+
+<style lang="less">
+    .chart {
+        // width: 10vh;
+        // height: 10vh;
+        // display: block;
+        // margin: auto;
+    }
+</style>

+ 129 - 0
src/views/economicsOperation/nxfHomePage/component/percent-card-2.vue

@@ -0,0 +1,129 @@
+<template>
+    <div class="percent-card">
+        <div class="card-chart">
+            <percent-bar width="13vh" height="13vh" :value="percent" :nameVa="PercentName" :color="color" />
+            <div class="card-title gray">{{ title }}</div>
+        </div>
+        <div class="card-info">
+            <div class="card-value">
+                <span class="value-text newBlue">{{ TotalText }}</span>
+                <span class="newwhite">{{ TotalValue.toFixed(2) }}</span>
+            </div>
+            <div class="card-value">
+                <span class="value-text newBlue">{{ ActualText }}</span>
+                <span class="newwhite">{{ ActualValue * 10 }}</span>
+            </div>
+            <div class="card-value">
+                <span class="value-text newBlue">{{ PercentText }}</span>
+                <span class="newwhite">{{ PercentValue }}</span>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    // 百分比card2
+    // 使用位置 驾驶舱首页 计划电量完成情况 中的百分比卡片
+    import PercentBar from "./percent-bar.vue";
+    export default {
+        created() {},
+        components: {
+            PercentBar,
+        },
+        props: {
+            title: {
+                type: String,
+                default: "月计划完成率",
+            },
+            PercentName: {
+                type: String,
+                default: "",
+            },
+            TotalText: {
+                type: String,
+                default: "实际",
+            },
+            TotalValue: {
+                type: Number,
+                String,
+                default: 0,
+            },
+            ActualText: {
+                type: String,
+                default: "计划",
+            },
+            ActualValue: {
+                type: Number,
+                String,
+                default: 0,
+            },
+            PercentText: {
+                type: String,
+                default: "计划",
+            },
+            PercentValue: {
+                type: Number,
+                String,
+                default: 0,
+            },
+            color: {
+                type: String,
+                default: "green",
+            },
+        },
+
+        computed: {
+            percent() {
+                return this.TotalValue === 0 || this.ActualValue === 0 ?
+                    0 :
+                    parseInt((this.TotalValue / this.ActualValue) * 100);
+            },
+        },
+    };
+</script>
+
+<style lang="less" scoped>
+    .percent-card {
+        display: flex;
+
+        .card-chart {
+            flex: 1 1 5.926vh;
+        }
+
+        .card-title {
+            text-align: center;
+            width: 100%;
+            margin-top: 1.481vh;
+            font-size: 12px;
+        }
+
+        .card-info {
+            flex: auto;
+            align-self: center;
+            margin-left: 10px;
+            margin-top: -0.4vh;
+
+            .card-value {
+                font-size: 14px;
+                font-weight: 600;
+                margin-bottom: 1.1111vh;
+                white-space: nowrap;
+
+                .value-text {
+                    margin-right: 10px;
+                    font-family: @font-family-num;
+                }
+                .newBlue{
+                    color: #4d72bb;
+                }
+                .newwhite{
+                    color: #c3e1ff;
+                }
+            }
+
+            .card-text {
+                font-size: @fontsize;
+            }
+        }
+    }
+</style>

+ 185 - 0
src/views/economicsOperation/nxfHomePage/component/power-plan.vue

@@ -0,0 +1,185 @@
+<template>
+    <div class="power-plan">
+        <row style="margin-top: 30px">
+            <Col :span="8">
+            <percent-card-2 :title="''" TotalText="周实际" ActualText="周计划" PercentText="超日历进度" PercentName="周完成"
+                :TotalValue="planData.zfdlsj" :ActualValue="planData.zfdljh" :PercentValue="planData.zjd"
+                :percent="planData.zwcl" :Datasv="planData" />
+            </Col>
+            <Col :span="8">
+            <percent-card-2 :title="''" TotalText="月实际" ActualText="月计划" PercentText="超日历进度" PercentName="月完成"
+                :TotalValue="planData.yfdlsj" :ActualValue="planData.yfdljh" :PercentValue="planData.yjd"
+                :percent="planData.ywcl" />
+            </Col>
+            <Col :span="8">
+            <percent-card-2 :title="''" TotalText="年实际" ActualText="年计划" PercentText="超日历进度" PercentName="年完成"
+                :TotalValue="planData.nfdlsj" :ActualValue="planData.nfdljh" :PercentValue="planData.njd"
+                :percent="planData.nwcl" />
+            </Col>
+        </row>
+    </div>
+</template>
+
+<script>
+    import Col from "@com/coms/grid/col.vue";
+    import Row from "@com/coms/grid/row.vue";
+    import Tab from "@com/coms/tabs/tab.vue";
+    import PercentCard2 from "./percent-card-2.vue";
+    export default {
+        components: {
+            Row,
+            Col,
+            Tab,
+            PercentCard2
+        },
+        data() {
+            return {
+                planData: {},
+                wpId: "",
+                showTitle: "",
+                // tab项
+                tabs: [{
+                    id: "1",
+                    text: "",
+                }, ],
+                // 月计划完成率
+                monthPlan: {
+                    plan: 100,
+                    actual: 40,
+                },
+                // 年计划完成率
+                yearPlan: {
+                    plan: 100,
+                    actual: 25,
+                },
+            };
+        },
+        props: {
+            showSingle: {
+                type: Boolean,
+                default: false,
+            },
+            data: {
+                type: Object,
+                default: () => {},
+            },
+            id: {
+                type: String,
+                default: "",
+            },
+            title: {
+                type: String,
+                default: "",
+            },
+        },
+        computed: {
+            currTabs() {
+                if (this.showSingle) {
+                    return [{
+                        id: "1",
+                        text: "风电",
+                    }, ];
+                } else return this.tabs;
+            },
+        },
+        mounted() {
+            this.planData = this.data;
+            this.wpId = this.id;
+            this.tabs[0].text = this.title;
+        },
+        methods: {
+            selectionItemClick(item) {
+                // 点击tab选项 模拟数据变化
+                // 动态改变子组件数据变化
+                this.monthPlan = {
+                    plan: 100,
+                    actual: 25,
+                };
+                this.yearPlan = {
+                    plan: 100,
+                    actual: 45,
+                };
+            },
+
+            openDialog(dialogTitle, subUrl, dialogType) {
+                let that = this;
+
+                that.API.requestData({
+                    method: "POST",
+                    subUrl,
+                    data: {
+                        id: that.wpId,
+                    },
+                    success(res) {
+                        let key = [{
+                                key: "value1",
+                                title: "月计划发电量",
+                            },
+                            {
+                                key: "value2",
+                                title: "年计划发电量",
+                            },
+                            {
+                                key: "value3",
+                                title: "月发电量",
+                            },
+                            {
+                                key: "value4",
+                                title: "年发电量",
+                            },
+                        ];
+
+                        let doneLineChartData = {
+                            // 图表所用单位
+                            units: [""],
+                            value: [],
+                        };
+
+                        key.forEach((keyEle, keyIndex) => {
+                            doneLineChartData.value.push({
+                                title: keyEle.title,
+                                yAxisIndex: 0, // 使用单位
+                                value: [],
+                            });
+
+                            res.data.forEach((ele) => {
+                                doneLineChartData.value[keyIndex].value.push({
+                                    text: ele.name,
+                                    value: ele[keyEle.key],
+                                });
+                            });
+                        });
+
+                        that.$emit("chartClick", {
+                            dialogTitle,
+                            dialogType,
+                            data: doneLineChartData,
+                        });
+                    },
+                });
+            },
+        },
+
+        watch: {
+            data(res) {
+                this.planData = res;
+            },
+            id(res) {
+                this.wpId = res;
+            },
+            title(res) {
+                this.tabs[0].text = res;
+            },
+        },
+    };
+</script>
+
+<style lang="less">
+    .power-plan {
+        padding: 0 1.481vh;
+
+        .power-plan-tab {
+            margin-bottom: 2.222vh;
+        }
+    }
+</style>

+ 289 - 0
src/views/economicsOperation/nxfHomePage/index.vue

@@ -0,0 +1,289 @@
+<template>
+    <div style="width: 100%;height:100%;padding: 10px;">
+        <div class="operationHome" v-if="$route.path === '/economicsOperation'">
+            <!-- <tab @select="selectionItemClick" /> -->
+            <div class="tabs">
+                <div class="tab-item" :data-type="$store.state.moreSty" v-for="(item, index) of tabData" :key="item" @click="selectTab(index, item)"
+                    :class="{ active: activeIndex == index }">
+                    {{ item.text }}
+                </div>
+            </div>
+            <div class="homeMain">
+                <div class="homeLeaf">
+                    <Row type="flex" class="plan" style="height:20%">
+                        <Col :span="24">
+                        <com-panel title="发电量" sub-title="(单位:万kWh)" bodyPadd="50px"
+                            style="position: relative;height: 100%">
+                            <div v-for="it in ForecastPower" :key="it" class="powerName">
+                                <span :style="{top: it.top}">{{it.name}}</span>
+                                <span :style="{top: it.top1}">{{it.value}}</span>
+                                <span :style="{top: it.top2}">{{it.bfb}}%</span>
+                                <span :style="{top: it.top3}">理论发电量 {{it.total}}</span>
+                            </div>
+                            <list-bar-chart-2 :list="ForecastPower" height="15vh" />
+                        </com-panel>
+                        </Col>
+                    </Row>
+                    <Row type="flex" class="plan" style="height:78%">
+                        <Col :span="24">
+                        <com-panel title="主要经济指标同期对比" sub-title="(电量单位:万kWh)" style="position: relative;height: 100%">
+                            <operationTable :data="zbtqdb" height="100%"></operationTable>
+                        </com-panel>
+                        </Col>
+                    </Row>
+                </div>
+                <div class="homeCenter">
+                    <Row type="flex" style="height:20%;">
+                        <Col :span="24" class="powerPlanEc" :data-type="$store.state.moreSty">
+                        <power-plan :data="planData" :title="planBtnName" />
+                        </Col>
+                    </Row>
+                    <Row type="flex" style="height:25%">
+                        <Col :span="24">
+                        <com-panel title="限电" style="position: relative;height: 100%">
+                            <multiple-y-line-chart-normal height="100%" :list="Powertrend" :yAxises="PowertrendYAxises"
+                                :showLegend="true" :hoverType="'axis'" />
+                        </com-panel>
+                        </Col>
+                    </Row>
+                    <Row type="flex" style="height:25%">
+                        <Col :span="24">
+                        <com-panel title="损失电量" style="position: relative;height: 100%">
+                            <multiple-y-line-chart-normal height="100%" :list="Powerloss" :yAxises="PowerlossYAxises"
+                                :showLegend="true" :hoverType="'axis'" />
+                        </com-panel>
+                        </Col>
+                    </Row>
+                    <Row type="flex" style="height:26%">
+                        <Col :span="24">
+                        <com-panel title="发电量" style="position: relative;height: 100%">
+                            <!-- <marker-line-chart :height="'100%'" :list="Powersend" myUnit='MW' :showLegend="true" /> -->
+                            <multiple-bar-chart :list="Powersend" :units="['电量(万kwh)']" height="100%"
+                                :showLegend="true" />
+                        </com-panel>
+                        </Col>
+                    </Row>
+                </div>
+                <div class="homeRight">
+                    <Row type="flex" class="rightplan" v-for="it in rightTableData" :key="it.name" style="height:32%">
+                        <Col :span="24">
+                        <com-panel :title="it.name" sub-title="(电量单位:万kWh)" style="position: relative;height: 100%">
+                            <operationTable :data="it.data" height="100%"></operationTable>
+                        </com-panel>
+                        </Col>
+                    </Row>
+                </div>
+            </div>
+        </div>
+        <router-view v-else />
+    </div>
+</template>
+
+<script>
+    import Row from "@com/coms/grid/row.vue";
+    import Col from "@com/coms/grid/col.vue";
+    import ComPanel from "@com/coms/panel/panel";
+    import ListBarChart2 from "@com/chart/bar/list-bar-chart2.vue";
+    import forecastBarComponent from "./component/forecastBarComponent.vue";
+    import Tab from "@com/coms/tabs/tab.vue";
+    import operationTable from "./component/operationTable.vue";
+    import PowerPlan from "./component/power-plan.vue";
+    import dataJson from "./component/dataJJJson.json"
+    import MultipleYLineChartNormal from "./component/multiple-y-line-chart-normal.vue";
+    import MultipleBarChart from "./component/multiple-bar-chart.vue";
+    export default {
+        name: "economicsOperation",
+        components: {
+            Row,
+            Col,
+            ComPanel,
+            ListBarChart2,
+            Tab,
+            forecastBarComponent,
+            operationTable,
+            PowerPlan,
+            MultipleYLineChartNormal,
+            MultipleBarChart
+        },
+        data() {
+            return {
+                activeIndex: 0,
+                tabData: [{
+                    id: "year",
+                    text: "年",
+                }, {
+                    id: "month",
+                    text: "月",
+                }, {
+                    id: "week",
+                    text: "周",
+                }, ],
+                rightTableData: [{
+                        name: '风能利用率年排名',
+                        data: dataJson.data.fnlyl
+                    },
+                    {
+                        name: '设备可利用率年排名',
+                        data: dataJson.data.sbklyl
+                    },
+                    {
+                        name: '两个细则考核',
+                        data: dataJson.data.lgxzkh
+                    },
+                ],
+                ForecastPower: dataJson.data.fdl,
+                fnlyl: dataJson.data.fnlyl,
+                zbtqdb: dataJson.data.zbtqdb,
+                sbklyl: {},
+                lgxzkh: {},
+                planData: dataJson.data.planData,
+                planBtnName: "全部",
+                Powertrend: dataJson.data.Powertrend,
+                PowertrendYAxises: [{
+                        name: "限电量",
+                        min: 0,
+                        max: null,
+                        unit: "(万kWh)",
+                        position: "left",
+                    },
+                    {
+                        name: "限电率",
+                        min: 0,
+                        max: 10,
+                        unit: "(%)",
+                        position: "right",
+                    },
+                ],
+                Powerloss: dataJson.data.Powerloss,
+                PowerlossYAxises: [{
+                        name: "损失电量",
+                        min: 0,
+                        max: null,
+                        unit: "(万kWh)",
+                        position: "left",
+                    },
+                    {
+                        name: "限电率",
+                        min: 0,
+                        max: 10,
+                        unit: "(%)",
+                        position: "right",
+                    },
+                ],
+                Powersend: dataJson.data.Powersend,
+            }
+        },
+        mounted() {},
+        methods: {
+            selectTab(index, item) {
+                this.activeIndex = index;
+            },
+        }
+    };
+</script>
+
+<style lang="less">
+    .operationHome {
+        width: 100%;
+        height: 100%;
+
+        .tabs {
+            display: flex;
+            color: #fff;
+            margin-bottom: 1.111vh;
+            font-size: 12px;
+            display: flex;
+            justify-content: end;
+            .tab-item[data-type~="greenSty"] {
+                &.active {
+                    background-image: @greenLinearTop;
+                }
+            }
+            .tab-item[data-type~="blueSty"] {
+                &.active {
+                    background-image: @blueLinearTop;
+                }
+            }
+
+            .tab-item {
+                padding: 0.37vh 1.852vh;
+                cursor: pointer;
+
+                &.active {
+                    color: #fff;
+                    position: relative;
+
+                    &::after {
+                        content: "";
+                        position: absolute;
+                        width: 100%;
+                        height: 0.463vh;
+                        border: 0.093vh solid #2169c3;
+                        border-top: 0;
+                        left: 0;
+                        bottom: 0;
+                        box-sizing: border-box;
+                    }
+                }
+            }
+        }
+
+        .homeMain {
+            width: 100%;
+            height: calc(100% - 25px);
+            display: flex;
+            justify-content: space-between;
+
+            .homeLeaf {
+                width: 25%;
+                height: 100%;
+
+                .powerName {
+                    span {
+                        position: absolute;
+
+                        &:nth-child(1) {
+                            font-size: 12px;
+                            left: 30px;
+                        }
+
+                        &:nth-child(2) {
+                            font-size: 16px;
+                            left: 85px;
+                        }
+
+                        &:nth-child(3) {
+                            font-size: 12px;
+                            right: 10px;
+                        }
+
+                        &:nth-child(4) {
+                            font-size: 12px;
+                            right: 50px;
+                        }
+                    }
+                }
+            }
+
+            .homeCenter {
+                width: 48%;
+                height: 100%;
+
+                .powerPlanEc[data-type~="blueSty"] {
+                    background: #142446 !important;
+                }
+            }
+
+            .homeRight {
+                width: 25%;
+                height: 100%;
+
+                .rightplan {
+                    margin-bottom: 15px;
+                }
+            }
+        }
+
+
+    }
+</style>

+ 120 - 0
src/views/economicsOperation/stationAnalyse/electricAnalyse/dataJson.json

@@ -0,0 +1,120 @@
+{
+    "code": 200,
+    "data": {
+        "value": [
+            {
+                "jhdl": 550.0,
+                "rfdlyc": 199.25,
+                "sjdl": 270.11,
+                "hours": 1,
+                "dyzb": 49.0,
+                "qnzb": 6.0,
+                "dqzql": 96.3
+            },
+            {
+                "jhdl": 299.36,
+                "rfdlyc": 161.22,
+                "sjdl": 242.26,
+                "hours": 2,
+                "dyzb": 81.0,
+                "qnzb": 6.0,
+                "dqzql": 96.49
+            },
+            {
+                "jhdl": 290.0,
+                "rfdlyc": 199.25,
+                "sjdl": 270.11,
+                "hours": 3,
+                "dyzb": 93.0,
+                "qnzb": 6.0,
+                "dqzql": 96.3
+            },
+            {
+                "jhdl": 410.9,
+                "rfdlyc": 178.13,
+                "sjdl": 256.61,
+                "hours": 4,
+                "dyzb": 62.0,
+                "qnzb": 6.0,
+                "dqzql": 96.4
+            },
+            {
+                "jhdl": 394.01,
+                "rfdlyc": 199.25,
+                "sjdl": 270.11,
+                "hours": 5,
+                "dyzb": 69.0,
+                "qnzb": 6.0,
+                "dqzql": 96.3
+            },
+            {
+                "jhdl": 248.46,
+                "rfdlyc": 178.13,
+                "sjdl": 256.61,
+                "hours": 6,
+                "dyzb": 103.0,
+                "qnzb": 6.0,
+                "dqzql": 96.4
+            },
+            {
+                "jhdl": 196.1,
+                "rfdlyc": 199.25,
+                "sjdl": 270.11,
+                "hours": 7,
+                "dyzb": 138.0,
+                "qnzb": 6.0,
+                "dqzql": 96.3
+            },
+            {
+                "jhdl": 237.11,
+                "rfdlyc": 199.25,
+                "sjdl": 270.11,
+                "hours": 8,
+                "dyzb": 114.0,
+                "qnzb": 6.0,
+                "dqzql": 96.3
+            },
+            {
+                "jhdl": 216.16,
+                "rfdlyc": 178.13,
+                "sjdl": 256.61,
+                "hours": 9,
+                "dyzb": 119.0,
+                "qnzb": 6.0,
+                "dqzql": 96.4
+            },
+            {
+                "jhdl": 325.46,
+                "rfdlyc": 199.25,
+                "sjdl": 270.11,
+                "hours": 10,
+                "dyzb": 83.0,
+                "qnzb": 6.0,
+                "dqzql": 96.3
+            },
+            {
+                "jhdl": 536.41,
+                "rfdlyc": 178.13,
+                "sjdl": 256.61,
+                "hours": 11,
+                "dyzb": 48.0,
+                "qnzb": 6.0,
+                "dqzql": 96.4
+            },
+            {
+                "jhdl": 500.0,
+                "rfdlyc": 199.25,
+                "sjdl": 270.11,
+                "hours": 12,
+                "dyzb": 54.0,
+                "qnzb": 6.0,
+                "dqzql": 96.3
+            }
+        ],
+        "bnjhdlhj": 4203.97,
+        "rfdlychj": 2268.45,
+        "bnsjdlhj": 2794.46,
+        "qnzbhj": 66.0,
+        "dqzqlhj": 96.35
+    }
+}

+ 24 - 7
src/views/economicsOperation/stationAnalyse/electricAnalyse/index.vue

@@ -61,12 +61,13 @@
     </div>
     <div
       class="parcel-content"
+       :data-type="$store.state.moreSty"
       v-loading="loading"
       element-loading-background="rgba(4, 12, 11, 0.8)"
     >
       <!-- <img src="@/assets/imgs/glycfx-bg1.png" alt="" /> -->
       <div class="line clearfix">
-        <div class="leftContent">
+        <div class="leftContent" :data-type="$store.state.moreSty">
           <span>{{ selectValue }}</span>
         </div>
       </div>
@@ -121,6 +122,7 @@ import {
   getMonthElectricAnalyse,
   getMonthElectricAnalyseGf,
 } from "@/api/monthlyPerformanceAnalysis.js";
+import dataJson from "./dataJson.json"
 export default {
   name: "ElectricAnalyse",
   components: {
@@ -196,6 +198,7 @@ export default {
       }
     },
     initialization() {
+        this.dataChange(dataJson.data, dataJson.code)
       companys().then(({ data: res }) => {
         if (res.data) {
           this.companyOptions = res.data;
@@ -234,7 +237,13 @@ export default {
     asyncDataFd() {
       getMonthElectricAnalyse({ wpId: this.station, year: this.year }).then(
         ({ data, code }) => {
-          if (code == 200) {
+          this.dataChange(data, code)
+        }
+      );
+          this.loading = false;
+    },
+    dataChange(data, code) {
+        if (code == 200) {
             //合计列
             let hj = [
               data.bnjhdlhj,
@@ -296,9 +305,6 @@ export default {
             ];
             this.list = list;
           }
-          this.loading = false;
-        }
-      );
     },
     asyncDataGf() {
       getMonthElectricAnalyseGf({ wpId: this.station, year: this.year }).then(
@@ -465,11 +471,17 @@ export default {
       }
     }
   }
+  .parcel-content[data-type~="greenSty"] {
+        background: url("~@/assets/imgs/glycfx-bg1.png") no-repeat;
+    }
+    .parcel-content[data-type~="blueSty"] {
+        background: url("~@/assets/imgs/glycfx-bg2.png") no-repeat;
+    }
   .parcel-content {
     width: 100%;
     height: calc(100% - 88px);
     // position: relative;
-    background: url("~@/assets/imgs/glycfx-bg1.png") no-repeat;
+    
     background-size: 100% 100%;
     background-position: center;
     img {
@@ -480,11 +492,16 @@ export default {
       height: 100%;
     }
     .line {
+        .leftContent[data-type~="greenSty"] {
+            background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+        }
+        .leftContent[data-type~="blueSty"] {
+            background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+        }
       .leftContent {
         width: 242px;
         height: 45px;
         line-height: 45px;
-        background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
         span {
           font-size: 16px;

+ 228 - 0
src/views/economicsOperation/stationAnalyse/stationElectricAnalyse/dataJson.json

@@ -0,0 +1,228 @@
+{
+    "code": 200,
+    "data": {
+        "value": [
+            {
+                "hours": 1,
+                "zhcydl": 32.94,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 0.0,
+                "sjdl": 270.11,
+                "sjdltb": 0.0,
+                "sjdlhb": 0.0,
+                "swdl": 240.17,
+                "swdltb": 0.0,
+                "swdlhb": 0.0,
+                "gwdl": 3.0,
+                "gwdltb": 0.0,
+                "gwdlhb": 0.0,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.0
+            },
+            {
+                "hours": 2,
+                "zhcydl": 29.61,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 32.94,
+                "sjdl": 242.26,
+                "sjdltb": 0.0,
+                "sjdlhb": 270.11,
+                "swdl": 215.13,
+                "swdltb": 0.0,
+                "swdlhb": 240.17,
+                "gwdl": 2.48,
+                "gwdltb": 0.0,
+                "gwdlhb": 3.0,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            },
+            {
+                "hours": 3,
+                "zhcydl": 32.94,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 29.61,
+                "sjdl": 270.11,
+                "sjdltb": 0.0,
+                "sjdlhb": 242.26,
+                "swdl": 240.17,
+                "swdltb": 0.0,
+                "swdlhb": 215.13,
+                "gwdl": 3.0,
+                "gwdltb": 0.0,
+                "gwdlhb": 2.48,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            },
+            {
+                "hours": 4,
+                "zhcydl": 31.66,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 32.94,
+                "sjdl": 256.61,
+                "sjdltb": 0.0,
+                "sjdlhb": 270.11,
+                "swdl": 227.84,
+                "swdltb": 0.0,
+                "swdlhb": 240.17,
+                "gwdl": 2.89,
+                "gwdltb": 0.0,
+                "gwdlhb": 3.0,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            },
+            {
+                "hours": 5,
+                "zhcydl": 32.94,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 31.66,
+                "sjdl": 270.11,
+                "sjdltb": 0.0,
+                "sjdlhb": 256.61,
+                "swdl": 240.17,
+                "swdltb": 0.0,
+                "swdlhb": 227.84,
+                "gwdl": 3.0,
+                "gwdltb": 0.0,
+                "gwdlhb": 2.89,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            },
+            {
+                "hours": 6,
+                "zhcydl": 31.66,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 32.94,
+                "sjdl": 256.61,
+                "sjdltb": 0.0,
+                "sjdlhb": 270.11,
+                "swdl": 227.84,
+                "swdltb": 0.0,
+                "swdlhb": 240.17,
+                "gwdl": 2.89,
+                "gwdltb": 0.0,
+                "gwdlhb": 3.0,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            },
+            {
+                "hours": 7,
+                "zhcydl": 32.94,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 31.66,
+                "sjdl": 270.11,
+                "sjdltb": 0.0,
+                "sjdlhb": 256.61,
+                "swdl": 240.17,
+                "swdltb": 0.0,
+                "swdlhb": 227.84,
+                "gwdl": 3.0,
+                "gwdltb": 0.0,
+                "gwdlhb": 2.89,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            },
+            {
+                "hours": 8,
+                "zhcydl": 32.94,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 32.94,
+                "sjdl": 270.11,
+                "sjdltb": 0.0,
+                "sjdlhb": 270.11,
+                "swdl": 240.17,
+                "swdltb": 0.0,
+                "swdlhb": 240.17,
+                "gwdl": 3.0,
+                "gwdltb": 0.0,
+                "gwdlhb": 3.0,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            },
+            {
+                "hours": 9,
+                "zhcydl": 31.66,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 32.94,
+                "sjdl": 256.61,
+                "sjdltb": 0.0,
+                "sjdlhb": 270.11,
+                "swdl": 227.84,
+                "swdltb": 0.0,
+                "swdlhb": 240.17,
+                "gwdl": 2.89,
+                "gwdltb": 0.0,
+                "gwdlhb": 3.0,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            },
+            {
+                "hours": 10,
+                "zhcydl": 32.94,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 31.66,
+                "sjdl": 270.11,
+                "sjdltb": 0.0,
+                "sjdlhb": 256.61,
+                "swdl": 240.17,
+                "swdltb": 0.0,
+                "swdlhb": 227.84,
+                "gwdl": 3.0,
+                "gwdltb": 0.0,
+                "gwdlhb": 2.89,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            },
+            {
+                "hours": 11,
+                "zhcydl": 31.66,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 32.94,
+                "sjdl": 256.61,
+                "sjdltb": 0.0,
+                "sjdlhb": 270.11,
+                "swdl": 227.84,
+                "swdltb": 0.0,
+                "swdlhb": 240.17,
+                "gwdl": 2.89,
+                "gwdltb": 0.0,
+                "gwdlhb": 3.0,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            },
+            {
+                "hours": 12,
+                "zhcydl": 32.94,
+                "zhcydltb": 0.0,
+                "zhcydlhb": 31.66,
+                "sjdl": 270.11,
+                "sjdltb": 0.0,
+                "sjdlhb": 256.61,
+                "swdl": 240.17,
+                "swdltb": 0.0,
+                "swdlhb": 227.84,
+                "gwdl": 3.0,
+                "gwdltb": 0.0,
+                "gwdlhb": 2.89,
+                "zhcydll": 12.0,
+                "zhcydlltb": 0.0,
+                "zhcydllhb": 0.12
+            }
+        ],
+        "zhcydlsum": 386.83,
+        "sjdlsum": 3159.47,
+        "swdlsum": 2807.68,
+        "gwdlsum": 35.04,
+        "zhcydllsum": 147.0
+    }
+}

+ 23 - 7
src/views/economicsOperation/stationAnalyse/stationElectricAnalyse/index.vue

@@ -66,12 +66,13 @@
     </div>
     <div
       class="parcel-content"
+      :data-type="$store.state.moreSty"
       v-loading="loading"
       element-loading-background="rgba(4, 12, 11, 0.8)"
     >
       <!-- <img src="@/assets/imgs/glycfx-bg1.png" alt="" /> -->
       <div class="line clearfix">
-        <div class="leftContent">
+        <div class="leftContent" :data-type="$store.state.moreSty">
           <span>{{ selectValue }}</span>
         </div>
       </div>
@@ -176,6 +177,7 @@
 import LineCharts from "./components/line-bar-charts.vue";
 import { companys } from "@/api/curveAnalyse";
 import { GetStationByCompany } from "@/api/factoryMonitor/index.js";
+import dataJson from "./dataJson.json"
 import {
   getOwnDemand,
   getAllStation,
@@ -249,6 +251,7 @@ export default {
       }
     },
     initialization() {
+        this.dataChange(dataJson.data, dataJson.code)
       companys().then(({ data: res }) => {
         if (res.data) {
           this.companyOptions = res.data;
@@ -277,7 +280,12 @@ export default {
       this.loading = true;
       getOwnDemand({ wpId: this.station, year: this.year }).then(
         ({ data, code }) => {
-          if (code == 200) {
+            this.dataChange(data, code)
+        }
+      );
+    },
+    dataChange(data, code) {
+        if (code == 200) {
             //合计列
             let hj = [
               data.zhcydlsum,
@@ -353,9 +361,7 @@ export default {
             this.list = list;
             this.loading = false;
           }
-        }
-      );
-    },
+    }
   },
 };
 </script>
@@ -446,11 +452,16 @@ export default {
       }
     }
   }
+  .parcel-content[data-type~="greenSty"] {
+        background: url("~@/assets/imgs/glycfx-bg1.png") no-repeat;
+    }
+    .parcel-content[data-type~="blueSty"] {
+        background: url("~@/assets/imgs/glycfx-bg2.png") no-repeat;
+    }
   .parcel-content {
     width: 100%;
     height: calc(100% - 88px);
     // position: relative;
-    background: url("~@/assets/imgs/glycfx-bg1.png") no-repeat;
     background-size: 100% 100%;
     background-position: center;
     img {
@@ -461,11 +472,16 @@ export default {
       height: 100%;
     }
     .line {
+        .leftContent[data-type~="greenSty"] {
+            background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+        }
+        .leftContent[data-type~="blueSty"] {
+            background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+        }
       .leftContent {
         width: 242px;
         height: 45px;
         line-height: 45px;
-        background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
         span {
           font-size: 16px;

+ 553 - 0
src/views/economicsOperation/stationAnalyse/windAndPhotovoltaic/components/dataJson.json

@@ -0,0 +1,553 @@
+{
+    "code": 270,
+    "tabledata": [
+        {
+            "wpid": "SXJ_KGDL_GJY_FDC_STA",
+            "name": "02风电场",
+            "pjfs": 2.0,
+            "zdfs": 4.0,
+            "zxfs": 6.0,
+            "pjfx": 6.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_HSM_FDC_STA",
+            "name": "05风电场",
+            "pjfs": 0.8,
+            "zdfs": 5.0,
+            "zxfs": 2.8,
+            "pjfx": 2.2,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_PDL_FDC_STA",
+            "name": "11风电场",
+            "pjfs": 2.0,
+            "zdfs": 5.0,
+            "zxfs": 0.8,
+            "pjfx": 9.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_ZK_FDC_STA",
+            "name": "07风电场",
+            "pjfs": 5.0,
+            "zdfs": 2.0,
+            "zxfs": 4.0,
+            "pjfx": 6.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_PTZ_FDC_STA",
+            "name": "09风电场",
+            "pjfs": 5.0,
+            "zdfs": 6.0,
+            "zxfs": 8.0,
+            "pjfx": 7.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_YTY_FDC_STA",
+            "name": "08风电场",
+            "pjfs": 5.0,
+            "zdfs": 0.5,
+            "zxfs": 6.0,
+            "pjfx": 5.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_YLZ_FDC_STA",
+            "name": "10风电场",
+            "pjfs": 5.0,
+            "zdfs": 3.0,
+            "zxfs": 4.0,
+            "pjfx": 9.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_XWT_FDC_STA",
+            "name": "13风电场",
+            "pjfs": 1.0,
+            "zdfs": 8.0,
+            "zxfs": 9.0,
+            "pjfx": 6.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_BHB_FDC_STA",
+            "name": "03风电场",
+            "pjfs": 5.0,
+            "zdfs": 0.5,
+            "zxfs": 6.0,
+            "pjfx": 6.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_YF_FDC_STA",
+            "name": "06风电场",
+            "pjfs": 10.0,
+            "zdfs": 6.0,
+            "zxfs": 15.0,
+            "pjfx": 8.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_BHB3_FDC_STA",
+            "name": "04风电场",
+            "pjfs": 10.0,
+            "zdfs": 15.0,
+            "zxfs": 2.0,
+            "pjfx": 5.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_NJL_FDC_STA",
+            "name": "01风电场",
+            "pjfs": 6.0,
+            "zdfs": 8.0,
+            "zxfs": 2.0,
+            "pjfx": 10.0,
+            "hours": null
+        },
+        {
+            "wpid": "SXJ_KGDL_DJY_FDC_STA",
+            "name": "14风电场",
+            "pjfs": 10.0,
+            "zdfs": 5.0,
+            "zxfs": 8.0,
+            "pjfx": 9.0,
+            "hours": null
+        }
+    ],
+    "linedata": [
+        {
+            "time": "08-15 08:00",
+            "value6": 5.0
+        },
+        {
+            "time": "08-15 09:00",
+            "value6": 8.0
+        },
+        {
+            "time": "08-15 10:00",
+            "value6": 12.0
+        },
+        {
+            "time": "08-15 11:00",
+            "value6": 6.0
+        },
+        {
+            "time": "08-15 12:00",
+            "value6": 10.0
+        },
+        {
+            "time": "08-15 13:00",
+            "value6": 16.0
+        }
+    ],
+    "resesdata": [
+        {
+            "count": [
+                [
+                    0,
+                    0,
+                    0,
+                    8,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    4,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    6,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    10,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    15,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    17,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    8,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    9,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    10,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    15,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    20,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ]
+            ],
+            "wt": "SXJ_KGDL_GJY_FDC_STA",
+            "roses": [
+                [
+                    1,
+                    0,
+                    0,
+                    0,
+                    0,
+                    8,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    10,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ],
+                [
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0,
+                    0
+                ]
+            ]
+        }
+    ]
+}

+ 1 - 1
src/views/economicsOperation/stationAnalyse/windAndPhotovoltaic/components/photovoltaic.vue

@@ -87,7 +87,7 @@ export default {
   },
   methods: {
     getData() {
-      this.BASE.showLoading();
+    //   this.BASE.showLoading();
       getVoltaicAnalysis(this.date).then((res) => {
         if (res.code == 200) {
           this.tableData = res.data

+ 37 - 9
src/views/economicsOperation/stationAnalyse/windAndPhotovoltaic/components/wind.vue

@@ -51,6 +51,7 @@
 import lineCharts from "@/views/economicsOperation/stationAnalyse/windAndPhotovoltaic/components/lineCharts.vue";
 import radarChart from "@/views/economicsOperation/stationAnalyse/windAndPhotovoltaic/components/radar-chart.vue";
 import dayjs from "dayjs";
+import dataJson from "./dataJson.json"
 import {
   getWindAnalysis,
   getWindAnalysisChart,
@@ -98,16 +99,30 @@ export default {
       }
     },
     getData(val) {
-      this.BASE.showLoading();
-      getWindAnalysis(this.date).then((res) => {
+    //   this.BASE.showLoading();
+      this.tabledataChange(dataJson, val)
+    //   getWindAnalysis(this.date).then((res) => {
+    //     this.tabledataChange(res, val)
+    //   }).catch(error => {
+    //     BASE.closeLoading();
+    //   })
+    },
+    tabledataChange(res, val) {
         if (res.code == 200) {
           this.tableData = res.data ? res.data : [];
           this.rowClick(this.tableData[0] || {}, val);
+        } else {
+            this.tableData = res.tabledata ? res.tabledata : [];
+            this.rowClick(this.tableData[0] || {}, val);
         }
-      });
     },
     getLineChart(wpid) {
-      getWindAnalysisChart({ Data: this.date, wpid }).then((res) => {
+        this.linedataChange(dataJson)
+    //   getWindAnalysisChart({ Data: this.date, wpid }).then((res) => {
+    //     this.linedataChange(res)
+    //   });
+    },
+    linedataChange(res) {
         if (res.code == 200) {
           this.lineChart = res.data
             ? res.data.map((item) => {
@@ -117,21 +132,34 @@ export default {
                 };
               })
             : [];
+        } else {
+            this.lineChart = res.linedata
+            ? res.linedata.map((item) => {
+                return {
+                  dateTime: item.time,
+                  value: item.value6,
+                };
+              })
+            : [];
         }
         this.chartLoading = false;
         this.BASE.closeLoading();
-      });
     },
     getRadarChart(wpid) {
+        this.rosedataChange(dataJson)
       getWindAnalysisRadarChart({ Data: this.date, wpid }).then((res) => {
+        this.rosedataChange(res)
+      });
+    },
+    rosedataChange(res) {
         if (res.code == 200) {
           this.radarChart =
             res.data && res.data[0].count ? res.data[0].count : [];
+        } else {
+            this.radarChart =
+            res.resesdata && res.resesdata[0].count ? res.resesdata[0].count : [];
         }
-        // this.chartLoading = false;
-        // this.BASE.closeLoading();
-      });
-    },
+    }
   },
 };
 </script>

+ 7 - 2
src/views/economicsOperation/stationAnalyse/windAndPhotovoltaic/index.vue

@@ -29,7 +29,7 @@
       >
     </div>
     <div class="wp-content">
-      <div class="leftContent">
+      <div class="leftContent" :data-type="$store.state.moreSty">
         <span>{{ selectValue }}</span>
       </div>
       <div class="wp-body">
@@ -141,11 +141,16 @@ export default {
   .wp-content {
     height: calc(100% - 40px);
     padding-bottom: 10px;
+    .leftContent[data-type~="greenSty"] {
+            background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+        }
+        .leftContent[data-type~="blueSty"] {
+            background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+        }
     .leftContent {
       width: 242px;
       height: 45px;
       line-height: 45px;
-      background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
 
       span {
         font-size: 16px;

File diff suppressed because it is too large
+ 3003 - 0
src/views/economicsOperation/thematicAnalysis/MTBF/dataJson.json


+ 26 - 36
src/views/economicsOperation/thematicAnalysis/MTBF/index.vue

@@ -188,6 +188,7 @@
 
 import BarCharts from "@/views/economicsOperation/thematicAnalysis/components/barCharts.vue";
 import { companys, mtbfList, mttrList } from "@/api/curveAnalyse";
+import dataJson from "./dataJson.json"
 export default {
   name: "curveAnalyse",
   components: {
@@ -293,60 +294,48 @@ export default {
       this.BASE.showLoading();
       switch (this.selectValue) {
         case "MTBF":
+            this.dataChange(dataJson.data.mtbfdata)
           mtbfList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
 
         case "MTTR":
+            this.dataChange(dataJson.data.mttrdata)
           mttrList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
       }
     },
+    dataChange(res) {
+        if (res.length) {
+            let arr = [
+            {
+                wpname: "",
+                data: {
+                wpname: "期次",
+                current: "本期",
+                sameperiod: "同期",
+                },
+            },
+            ];
+            this.tableData = [...arr, ...res];
+            this.rowClick(res[res.length - 1]);
+        } else {
+            this.BASE.closeLoading();
+            this.barList = [];
+            this.tableData = [];
+        }
+    },
     monthChange(data) {
       let year = new Date(data).getFullYear().toString();
       return year;
@@ -367,6 +356,7 @@ export default {
       }
     },
     initialization() {
+        this.dataChange(dataJson.data.mtbfdata)
       companys().then(({ data: res }) => {
         if (res.data) {
           this.companyOptions = res.data;

+ 560 - 0
src/views/economicsOperation/thematicAnalysis/comprehensiveAnalysis/dataJson.json

@@ -0,0 +1,560 @@
+{
+    "code": 0,
+    "data": {
+        "success": true,
+        "code": 207,
+        "message": "成功",
+        "count": null,
+        "data": [
+            {
+                "type": "本期",
+                "yllfdl": 9177.45,
+                "ysjfdl": 3022.89,
+                "yfnlyl": 32.94,
+                "ywhssdl": 40.51,
+                "ywhssl": 0.44,
+                "ygzssdl": 656.26,
+                "ygzssl": 7.15,
+                "yxdssdl": 2558.27,
+                "yxdssl": 27.88,
+                "yxnssdl": 5785.85,
+                "yxnssl": 63.04,
+                "yslssdl": 0.0,
+                "yslssl": 0.0,
+                "nllfdl": 105787.72,
+                "nsjfdl": 33869.82,
+                "nfnlyl": 32.02,
+                "nwhssdl": 474.91,
+                "nwhssl": 0.45,
+                "ngzssdl": 7625.11,
+                "ngzssl": 7.21,
+                "nxdssdl": 29656.99,
+                "nxdssl": 28.03,
+                "nxnssdl": 67629.6,
+                "nxnssl": 63.93,
+                "nslssdl": 0.0,
+                "nslssl": 0.0
+            },
+            {
+                "type": "同期",
+                "yllfdl": 9177.45,
+                "ysjfdl": 3022.89,
+                "yfnlyl": 32.94,
+                "ywhssdl": 40.51,
+                "ywhssl": 0.44,
+                "ygzssdl": 656.26,
+                "ygzssl": 7.15,
+                "yxdssdl": 2558.27,
+                "yxdssl": 27.88,
+                "yxnssdl": 5785.85,
+                "yxnssl": 63.04,
+                "yslssdl": 0.0,
+                "yslssl": 0.0,
+                "nllfdl": 105495.87,
+                "nsjfdl": 33835.59,
+                "nfnlyl": 32.07,
+                "nwhssdl": 473.6,
+                "nwhssl": 0.45,
+                "ngzssdl": 7612.83,
+                "ngzssl": 7.22,
+                "nxdssdl": 29544.7,
+                "nxdssl": 28.01,
+                "nxnssdl": 67379.45,
+                "nxnssl": 63.87,
+                "nslssdl": 0.0,
+                "nslssl": 0.0
+            },
+            {
+                "type": "比较",
+                "yllfdl": null,
+                "ysjfdl": null,
+                "yfnlyl": 1.0,
+                "ywhssdl": null,
+                "ywhssl": 1.0,
+                "ygzssdl": null,
+                "ygzssl": 1.0,
+                "yxdssdl": null,
+                "yxdssl": 1.0,
+                "yxnssdl": null,
+                "yxnssl": 1.0,
+                "yslssdl": null,
+                "yslssl": 1.0,
+                "nllfdl": null,
+                "nsjfdl": null,
+                "nfnlyl": 2.0,
+                "nwhssdl": null,
+                "nwhssl": 1.0,
+                "ngzssdl": null,
+                "ngzssl": 2.0,
+                "nxdssdl": null,
+                "nxdssl": 1.0,
+                "nxnssdl": null,
+                "nxnssl": 1.0,
+                "nslssdl": null,
+                "nslssl": 1.0
+            }
+        ],
+        "tabledata": {
+            "当年": [
+                {
+                    "wpid": "13风电场",
+                    "mtbf": 280368.0,
+                    "mttr": 0.0,
+                    "fwjsl": 0.0,
+                    "ztzhl": 98.92,
+                    "xqjsl": 0.0,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 1
+                },
+                {
+                    "wpid": "03风电场",
+                    "mtbf": 196933.2,
+                    "mttr": 2.88,
+                    "fwjsl": 0.0,
+                    "ztzhl": 0.0,
+                    "xqjsl": 0.0,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 2
+                },
+                {
+                    "wpid": "06风电场",
+                    "mtbf": 101329.65,
+                    "mttr": 7.59,
+                    "fwjsl": 47.16,
+                    "ztzhl": 48.83,
+                    "xqjsl": 45.63,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 3
+                },
+                {
+                    "wpid": "04风电场",
+                    "mtbf": 140478.31,
+                    "mttr": 406.75,
+                    "fwjsl": 26.34,
+                    "ztzhl": 75.25,
+                    "xqjsl": 55.46,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 4
+                },
+                {
+                    "wpid": "11风电场",
+                    "mtbf": 228384.0,
+                    "mttr": 0.0,
+                    "fwjsl": 0.0,
+                    "ztzhl": 76.56,
+                    "xqjsl": 0.0,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 5
+                },
+                {
+                    "wpid": "01风电场",
+                    "mtbf": 380160.0,
+                    "mttr": 0.36,
+                    "fwjsl": 0.0,
+                    "ztzhl": 77.32,
+                    "xqjsl": 0.0,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 6
+                },
+                {
+                    "wpid": "02风电场",
+                    "mtbf": 7771.21,
+                    "mttr": 294.05,
+                    "fwjsl": 0.0,
+                    "ztzhl": 98.98,
+                    "xqjsl": 0.0,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 8
+                },
+                {
+                    "wpid": "09风电场",
+                    "mtbf": 13343.37,
+                    "mttr": 10.44,
+                    "fwjsl": 99.64,
+                    "ztzhl": 85.16,
+                    "xqjsl": 94.81,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 9
+                },
+                {
+                    "wpid": "05风电场",
+                    "mtbf": 72998.69,
+                    "mttr": 11.44,
+                    "fwjsl": 86.39,
+                    "ztzhl": 73.58,
+                    "xqjsl": 84.97,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 10
+                },
+                {
+                    "wpid": "07风电场",
+                    "mtbf": 439200.0,
+                    "mttr": 0.0,
+                    "fwjsl": 0.0,
+                    "ztzhl": 99.97,
+                    "xqjsl": 0.0,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 11
+                },
+                {
+                    "wpid": "08风电场",
+                    "mtbf": 175680.0,
+                    "mttr": 0.24,
+                    "fwjsl": 0.0,
+                    "ztzhl": 90.44,
+                    "xqjsl": 0.0,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 12
+                },
+                {
+                    "wpid": "10风电场",
+                    "mtbf": 104832.0,
+                    "mttr": 77.52,
+                    "fwjsl": 10.92,
+                    "ztzhl": 90.1,
+                    "xqjsl": 16.39,
+                    "tqmtbf": null,
+                    "tqmttr": null,
+                    "tqfwjsl": null,
+                    "tqztzhl": null,
+                    "tqxqjsl": null,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 13
+                }
+            ],
+            "当月": [
+                {
+                    "wpid": "13风电场",
+                    "mtbf": 23760.0,
+                    "mttr": 0.0,
+                    "fwjsl": 0.0,
+                    "ztzhl": 98.94,
+                    "xqjsl": 0.0,
+                    "tqmtbf": 23760.0,
+                    "tqmttr": 0.0,
+                    "tqfwjsl": 0.0,
+                    "tqztzhl": 98.94,
+                    "tqxqjsl": 0.0,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 1
+                },
+                {
+                    "wpid": "03风电场",
+                    "mtbf": 16855.1,
+                    "mttr": 0.24,
+                    "fwjsl": 0.0,
+                    "ztzhl": 0.0,
+                    "xqjsl": 0.0,
+                    "tqmtbf": 16855.1,
+                    "tqmttr": 0.24,
+                    "tqfwjsl": 0.0,
+                    "tqztzhl": 0.0,
+                    "tqxqjsl": 0.0,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 2
+                },
+                {
+                    "wpid": "06风电场",
+                    "mtbf": 8460.02,
+                    "mttr": 0.66,
+                    "fwjsl": 47.74,
+                    "ztzhl": 49.52,
+                    "xqjsl": 45.16,
+                    "tqmtbf": 8460.02,
+                    "tqmttr": 0.66,
+                    "tqfwjsl": 47.74,
+                    "tqztzhl": 49.52,
+                    "tqxqjsl": 45.16,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 3
+                },
+                {
+                    "wpid": "04风电场",
+                    "mtbf": 11800.97,
+                    "mttr": 34.39,
+                    "fwjsl": 27.26,
+                    "ztzhl": 74.03,
+                    "xqjsl": 54.84,
+                    "tqmtbf": 11800.97,
+                    "tqmttr": 34.39,
+                    "tqfwjsl": 27.26,
+                    "tqztzhl": 74.03,
+                    "tqxqjsl": 54.84,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 4
+                },
+                {
+                    "wpid": "11风电场",
+                    "mtbf": 19344.0,
+                    "mttr": 0.0,
+                    "fwjsl": 0.0,
+                    "ztzhl": 76.94,
+                    "xqjsl": 0.0,
+                    "tqmtbf": 19344.0,
+                    "tqmttr": 0.0,
+                    "tqfwjsl": 0.0,
+                    "tqztzhl": 76.94,
+                    "tqxqjsl": 0.0,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 5
+                },
+                {
+                    "wpid": "01风电场",
+                    "mtbf": 32208.0,
+                    "mttr": 0.03,
+                    "fwjsl": 0.0,
+                    "ztzhl": 77.42,
+                    "xqjsl": 0.0,
+                    "tqmtbf": 32208.0,
+                    "tqmttr": 0.03,
+                    "tqfwjsl": 0.0,
+                    "tqztzhl": 77.42,
+                    "tqxqjsl": 0.0,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 6
+                },
+                {
+                    "wpid": "02风电场",
+                    "mtbf": 668.09,
+                    "mttr": 25.33,
+                    "fwjsl": 0.0,
+                    "ztzhl": 99.0,
+                    "xqjsl": 0.0,
+                    "tqmtbf": 668.09,
+                    "tqmttr": 25.33,
+                    "tqfwjsl": 0.0,
+                    "tqztzhl": 99.0,
+                    "tqxqjsl": 0.0,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 8
+                },
+                {
+                    "wpid": "09风电场",
+                    "mtbf": 1161.66,
+                    "mttr": 0.88,
+                    "fwjsl": 99.65,
+                    "ztzhl": 85.13,
+                    "xqjsl": 93.55,
+                    "tqmtbf": 1161.66,
+                    "tqmttr": 0.88,
+                    "tqfwjsl": 99.65,
+                    "tqztzhl": 85.13,
+                    "tqxqjsl": 93.55,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 9
+                },
+                {
+                    "wpid": "05风电场",
+                    "mtbf": 6095.82,
+                    "mttr": 0.97,
+                    "fwjsl": 86.61,
+                    "ztzhl": 73.74,
+                    "xqjsl": 83.87,
+                    "tqmtbf": 6095.82,
+                    "tqmttr": 0.97,
+                    "tqfwjsl": 86.61,
+                    "tqztzhl": 73.74,
+                    "tqxqjsl": 83.87,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 10
+                },
+                {
+                    "wpid": "07风电场",
+                    "mtbf": 37200.0,
+                    "mttr": 0.0,
+                    "fwjsl": 0.0,
+                    "ztzhl": 99.97,
+                    "xqjsl": 0.0,
+                    "tqmtbf": 37200.0,
+                    "tqmttr": 0.0,
+                    "tqfwjsl": 0.0,
+                    "tqztzhl": 99.97,
+                    "tqxqjsl": 0.0,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 11
+                },
+                {
+                    "wpid": "08风电场",
+                    "mtbf": 14880.0,
+                    "mttr": 0.02,
+                    "fwjsl": 0.0,
+                    "ztzhl": 90.32,
+                    "xqjsl": 0.0,
+                    "tqmtbf": 14880.0,
+                    "tqmttr": 0.02,
+                    "tqfwjsl": 0.0,
+                    "tqztzhl": 90.32,
+                    "tqxqjsl": 0.0,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 12
+                },
+                {
+                    "wpid": "10风电场",
+                    "mtbf": 8892.0,
+                    "mttr": 6.46,
+                    "fwjsl": 10.74,
+                    "ztzhl": 90.26,
+                    "xqjsl": 16.13,
+                    "tqmtbf": 8892.0,
+                    "tqmttr": 6.46,
+                    "tqfwjsl": 10.74,
+                    "tqztzhl": 90.26,
+                    "tqxqjsl": 16.13,
+                    "mtbfCompare": 2,
+                    "mttrCompare": 2,
+                    "fwjslCompare": 2,
+                    "ztzhlCompare": 2,
+                    "xqjslCompare": 2,
+                    "ordernum": 13
+                }
+            ]
+        }
+    }
+}

+ 26 - 7
src/views/economicsOperation/thematicAnalysis/comprehensiveAnalysis/index.vue

@@ -325,6 +325,7 @@ import {
 } from "@/api/monthlyPerformanceAnalysis";
 import Get_PDF from "@/tools/htmlToPdf.js";
 import * as echarts from "echarts";
+import dataJson from "./dataJson.json"
 export default {
   name: "comprehensiveAnalysis",
   data() {
@@ -449,6 +450,11 @@ export default {
       });
     },
   },
+  mounted() {
+      this.dataChange(dataJson.data)
+      this.tabledataChange(dataJson.data)
+      this.changePieData();
+  },
   methods: {
     // 获取公司列表
     async getCompanyData() {
@@ -487,10 +493,14 @@ export default {
         type: this.tabIndex,
         month: this.pickerTimer,
       };
-      const { data: datas } = await getApimaintoplist(params);
       this.comAnalysisData = [];
       this.comAnalysisDataCompare = {};
-      if (datas.data.length > 0) {
+      const { data: datas } = await getApimaintoplist(params);
+      this.dataChange(datas)
+      this.changePieData();
+    },
+    dataChange(datas) {
+        if (datas.data.length > 0) {
         datas.data.forEach((it) => {
           if (it.type !== "比较") {
             this.comAnalysisData.push(it);
@@ -499,7 +509,6 @@ export default {
           }
         });
       }
-      this.changePieData();
     },
     async getTableCenterData() {
       this.samePeriodOfTheMonth = [];
@@ -510,10 +519,20 @@ export default {
         month: this.pickerTimer,
       };
       const { data: datas } = await getApimaincenterlist(params);
-      if (datas && datas.data) {
-        this.samePeriodOfTheMonth = datas.data["当月"];
-        this.samePeriodOfTheYear = datas.data["当年"];
-      }
+      this.tabledataChange(datas)
+    },
+    tabledataChange(datas) {
+        if (datas.code === 200) {
+            if (datas && datas.data) {
+                this.samePeriodOfTheMonth = datas.data["当月"];
+                this.samePeriodOfTheYear = datas.data["当年"];
+            }
+        } else {
+            if (datas && datas.tabledata) {
+                this.samePeriodOfTheMonth = datas.tabledata["当月"];
+                this.samePeriodOfTheYear = datas.tabledata["当年"];
+            }
+        }
     },
     // 处理饼状图数据
     changePieData() {

File diff suppressed because it is too large
+ 8069 - 0
src/views/economicsOperation/thematicAnalysis/failure/dataJson.json


+ 32 - 90
src/views/economicsOperation/thematicAnalysis/failure/index.vue

@@ -196,6 +196,7 @@ import {
   xnsslList,
   slsslList,
 } from "@/api/curveAnalyse";
+import dataJson from "./dataJson.json"
 export default {
   name: "curveAnalyse",
   components: {
@@ -310,137 +311,77 @@ export default {
       this.BASE.showLoading();
       switch (this.selectValue) {
         case "故障损失率":
+            this.dataChange(dataJson.data.gzdata)
           gzsslList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
         case "检修损失率":
+            this.dataChange(dataJson.data.jxdata)
           whsslList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
         case "限电损失率":
+            this.dataChange(dataJson.data.xddata)
           xdsslList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
         case "受累损失率":
+            this.dataChange(dataJson.data.sldata)
           slsslList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
         case "性能损失率":
+            this.dataChange(dataJson.data.xndata)
           xnsslList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
       }
     },
+    dataChange(res) {
+        if (res.length) {
+            let arr = [
+            {
+                wpname: "",
+                data: {
+                wpname: "期次",
+                current: "本期",
+                sameperiod: "同期",
+                },
+            },
+            ];
+            this.tableData = [...arr, ...res];
+            this.rowClick(res[res.length - 1]);
+        } else {
+            this.BASE.closeLoading();
+            this.barList = [];
+            this.tableData = [];
+        }
+    },
     getHomePageData() {
       this.search();
     },
@@ -464,6 +405,7 @@ export default {
       }
     },
     initialization() {
+        this.dataChange(dataJson.data.gzdata)
       companys().then(({ data: res }) => {
         if (res.data) {
           this.companyOptions = res.data;

File diff suppressed because it is too large
+ 8069 - 0
src/views/economicsOperation/thematicAnalysis/generation/dataJson.json


+ 32 - 90
src/views/economicsOperation/thematicAnalysis/generation/index.vue

@@ -207,6 +207,7 @@ import {
   swdlList,
   lyxsList,
 } from "@/api/curveAnalyse";
+import dataJson from "./dataJson.json"
 export default {
   name: "curveAnalyse",
   components: {
@@ -322,138 +323,78 @@ export default {
       this.BASE.showLoading();
       switch (this.selectValue) {
         case "发电量":
+            this.dataChange(dataJson.data.fdldata)
           fdlList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
 
         case "综合场用电量":
+            this.dataChange(dataJson.data.zhcydldata)
           zhcydlList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
         case "上网电量":
+            this.dataChange(dataJson.data.swdldata)
           swdlList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
         case "购网电量":
+            this.dataChange(dataJson.data.gwdldata)
           gwdlList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
         case "利用小时":
+            this.dataChange(dataJson.data.lyxsdata)
           lyxsList({
             companys: this.company,
             type: this.tabIndex,
             year: this.monthChange(this.searchYear),
           }).then(({ data: res }) => {
-            if (res.data.length) {
-              let arr = [
-                {
-                  wpname: "",
-                  data: {
-                    wpname: "期次",
-                    current: "本期",
-                    sameperiod: "同期",
-                  },
-                },
-              ];
-              this.tableData = [...arr, ...res.data];
-              this.rowClick(res.data[res.data.length - 1]);
-            } else {
-              this.BASE.closeLoading();
-              this.barList = [];
-              this.tableData = [];
-            }
+            this.dataChange(res.data)
           });
           break;
       }
     },
+    dataChange(res) {
+        if (res.length) {
+            let arr = [
+            {
+                wpname: "",
+                data: {
+                wpname: "期次",
+                current: "本期",
+                sameperiod: "同期",
+                },
+            },
+            ];
+            this.tableData = [...arr, ...res];
+            this.rowClick(res[res.length - 1]);
+        } else {
+            this.BASE.closeLoading();
+            this.barList = [];
+            this.tableData = [];
+        }
+    },
     monthChange(data) {
       let year = new Date(data).getFullYear().toString();
       return year;
@@ -475,6 +416,7 @@ export default {
       }
     },
     initialization() {
+        this.dataChange(dataJson.data.fdldata)
       companys().then(({ data: res }) => {
         if (res.data) {
           this.companyOptions = res.data;

File diff suppressed because it is too large
+ 1621 - 0
src/views/economicsOperation/thematicAnalysis/windEnergy/dataJson.json


+ 0 - 0
src/views/economicsOperation/thematicAnalysis/windEnergy/index.vue


Some files were not shown because too many files changed in this diff