Browse Source

性能分析

lining 3 years ago
parent
commit
6cd15d81af
100 changed files with 15898 additions and 15725 deletions
  1. 3 2
      package.json
  2. 1 0
      public/index.html
  3. 2 1
      public/static/config/modeConfig.js
  4. BIN
      public/static/img/jnjp1.jpg
  5. BIN
      public/static/img/jnjp2.jpg
  6. BIN
      public/static/img/jnjp3.jpg
  7. BIN
      public/static/img/jnjp4.jpg
  8. 2 0
      public/static/js/hlslib/hls.min.js
  9. 2 2
      sh.exe.stackdump
  10. 1 0
      src/api/axios.js
  11. 484 0
      src/components/chart/combination/area-line-chart-2.vue
  12. 25 25
      src/components/chart/radar/normal-radar-chart.vue
  13. 10 1
      src/components/chart/radar/radar-chart.vue
  14. 1 0
      src/components/coms/cards/percent-card-2.vue
  15. 14 8
      src/components/coms/table/table3.vue
  16. 16 18
      src/components/other/cesium/index.vue
  17. 105 100
      src/components/other/healthReport/index.vue
  18. 54 14
      src/router/index.js
  19. 25 13
      src/tools/basicTool.js
  20. 94 48
      src/tools/excel/Export2Excel.js
  21. 42 2
      src/views/About.vue
  22. 0 1
      src/views/Decision/Decision1.vue
  23. 0 1
      src/views/Decision/Decision1Mx.vue
  24. 1 0
      src/views/Decision/Decision2.vue
  25. 1 0
      src/views/Decision/Decision2Cjdb.vue
  26. 1 1
      src/views/Decision/Decision2Cndb.vue
  27. 1 0
      src/views/Decision/Decision2Xldb.vue
  28. 2 1
      src/views/Decision/Decision2Xmdb.vue
  29. 1 0
      src/views/Decision/Decision3.vue
  30. 1 0
      src/views/Decision/Decision4.vue
  31. 1 1
      src/views/Decision/dayinfo.vue
  32. 233 0
      src/views/Decision/dual-pie-chart.vue
  33. 352 0
      src/views/Decision/zbtjfx.vue
  34. 1 1
      src/views/HealthControl/Health0.vue
  35. 2 2
      src/views/HealthControl/Health3.vue
  36. 43 27
      src/views/HealthControl/Health4.vue
  37. 1 1
      src/views/HealthControl/HealthTab1.vue
  38. 1 1
      src/views/HealthControl/HealthTab2.vue
  39. 74 55
      src/views/HealthControl/assess/assessindex.vue
  40. 588 0
      src/views/HealthControl/assess/selfEvaluate.vue
  41. 32 21
      src/views/HealthControl/gradeHistory.vue
  42. 1 1
      src/views/MalfunctionWarning/components/records.vue
  43. 1 0
      src/views/NewPages/alarm-center-1.vue
  44. 33 23
      src/views/NewPages/area-line-chart.vue
  45. 25 9
      src/views/NewPages/dj1.vue
  46. 19 18
      src/views/NewPages/multiple-y-line-chart-normal.vue
  47. 0 341
      src/views/Others/gz.vue
  48. 0 255
      src/views/Others/gzCgd.vue
  49. 1 0
      src/views/Others/index.vue
  50. 0 37
      src/views/Others/xn.vue
  51. 0 37
      src/views/Others/yj.vue
  52. 0 37
      src/views/Others/zn.vue
  53. 187 7
      src/views/SandTable/SandTable.vue
  54. 134 98
      src/views/SandTable/component/ThreeModel1.vue
  55. 138 0
      src/views/SandTable/component/hls.vue
  56. 13 2
      src/views/WindSite/components/boosterstation/BoosterStation.js
  57. 12 29
      src/views/WindSite/components/boosterstation/dwk.vue
  58. 12 14
      src/views/WindSite/components/boosterstation/hzj.vue
  59. 11 42
      src/views/WindSite/components/boosterstation/mch.vue
  60. 64 249
      src/views/WindSite/components/boosterstation/mhs.vue
  61. 195 224
      src/views/WindSite/components/boosterstation/nss.vue
  62. 35 290
      src/views/WindSite/components/boosterstation/pl1.vue
  63. 14 53
      src/views/WindSite/components/boosterstation/pl2.vue
  64. 1039 5430
      src/views/WindSite/components/boosterstation/qs.vue
  65. 821 3478
      src/views/WindSite/components/boosterstation/sbdl.vue
  66. 1720 3279
      src/views/WindSite/components/boosterstation/sbq.vue
  67. 27 123
      src/views/WindSite/components/boosterstation/xh.vue
  68. 34 273
      src/views/WindSite/components/boosterstation/xs.vue
  69. 3 2
      src/views/WindSite/components/generalappearance/dwk.vue
  70. 5253 0
      src/views/WindSite/components/generalappearance/hzj.vue
  71. 3 4
      src/views/WindSite/components/generalappearance/mch.vue
  72. 3 2
      src/views/WindSite/components/generalappearance/mhs.vue
  73. 4 3
      src/views/WindSite/components/generalappearance/nss.vue
  74. 3 2
      src/views/WindSite/components/generalappearance/pl1.vue
  75. 3 2
      src/views/WindSite/components/generalappearance/pl2.vue
  76. 3 2
      src/views/WindSite/components/generalappearance/qs.vue
  77. 3 2
      src/views/WindSite/components/generalappearance/sbq.vue
  78. 3 2
      src/views/WindSite/components/generalappearance/xh.vue
  79. 3 2
      src/views/WindSite/components/generalappearance/xs.vue
  80. BIN
      src/views/WindSite/components/generalappearance/zm_mw.png
  81. 1 1
      src/views/WindSite/components/previewPicture.vue
  82. 12 9
      src/views/WindSite/pages/BoosterStation.vue
  83. 4 1
      src/views/WindSite/pages/GeneralAppearance.vue
  84. 230 107
      src/views/WindSite/pages/Home/Home.vue
  85. 63 28
      src/views/WindSite/pages/Home/Station.vue
  86. 316 0
      src/views/WindSite/pages/Home/stationJson/MHS_FDC.js
  87. 1 0
      src/views/WindSite/pages/Map.vue
  88. 228 149
      src/views/layout/Menu.vue
  89. 142 0
      src/views/malfunctionDiagnose/gzfl.vue
  90. 21 6
      src/views/malfunctionDiagnose/index.vue
  91. 5 303
      src/views/malfunctionRecall/components/fault-diagnosis.vue
  92. 4 2
      src/views/malfunctionRecall/index.vue
  93. 568 399
      src/views/report/ExportExcel.vue
  94. 623 0
      src/views/sampleDatabase/fault/index - 副本.vue
  95. 489 0
      src/views/sampleDatabase/fault/index.vue
  96. 799 0
      src/views/sampleDatabase/fault/point - 副本.vue
  97. 317 0
      src/views/sampleDatabase/fault/point.vue
  98. 26 0
      src/views/sampleDatabase/market/index.vue
  99. 12 1
      src/views/Others/otherComponent.vue
  100. 0 0
      src/views/sampleDatabase/performance/index.vue

+ 3 - 2
package.json

@@ -12,12 +12,14 @@
   "dependencies": {
     "@antv/x6": "^1.24.4",
     "@arcgis/core": "^4.19.3",
+    "@open-wc/webpack-import-meta-loader": "git+https://github.com/KmjKoishi/webpack-import-meta-loader-fixed.git",
     "animate.css": "3.5",
     "axios": "^0.21.1",
     "cesium": "^1.78.0",
     "core-js": "^3.6.5",
     "echarts": "^5.1.1",
     "echarts-gl": "^2.0.4",
+    "echarts-stat": "^1.2.0",
     "element-plus": "^1.1.0-beta.4",
     "file-saver": "^2.0.5",
     "font-awesome": "^4.7.0",
@@ -37,8 +39,7 @@
     "vue-axios": "^3.2.4",
     "vue-router": "^4.0.0-0",
     "vuex": "^4.0.0-0",
-    "xlsx": "^0.17.0",
-    "@open-wc/webpack-import-meta-loader": "git+https://github.com/KmjKoishi/webpack-import-meta-loader-fixed.git"
+    "xlsx": "^0.17.0"
   },
   "devDependencies": {
     "@vue/cli-plugin-babel": "~4.5.0",

+ 1 - 0
public/index.html

@@ -15,6 +15,7 @@
       }
     }
   </script>
+  <script src="./static/js/hlslib/hls.min.js"></script>
   <style type="text/css">
     #ie_dialog {
       width: 350px;

+ 2 - 1
public/static/config/modeConfig.js

@@ -16,8 +16,9 @@ const tilesMaxLevel = 18;
 const adapterUrl = "http://10.155.32.4:8011/";
 
 if (localTest) {
-    baseURL = "http://192.168.10.13:8082/" // 联机调试 - 石林
+    // baseURL = "http://192.168.10.13:8082/" // 联机调试 - 石林
     // baseURL = "http://10.155.32.33:9001/" // 联机调试 - 谢生杰
+    baseURL = "http://192.168.10.6:8082/" // 联机调试 - 王昌盛
 
     tilesUrl = "http://localhost:8080/static/cesium/Assets/Textures/NaturalEarthII";
 } else {

BIN
public/static/img/jnjp1.jpg


BIN
public/static/img/jnjp2.jpg


BIN
public/static/img/jnjp3.jpg


BIN
public/static/img/jnjp4.jpg


File diff suppressed because it is too large
+ 2 - 0
public/static/js/hlslib/hls.min.js


+ 2 - 2
sh.exe.stackdump

@@ -1,8 +1,8 @@
 Stack trace:
 Frame        Function    Args
-00000010002  0018006021E (00180241C10, 001802340B9, 00000010002, 000FFFFBA40)
+00000010002  0018006021E (00180241C10, 001802340B9, 00000000000, 000FFFFBA40)
 00000010002  00180048859 (00000000001, 00180328B40, 00000000001, 00180328B40)
-00000010002  00180048892 (00000000001, 00180328E50, 00000010002, 00000000008)
+00000010002  00180048892 (00000000001, 00180328E50, 00000000000, 00000000008)
 00000010002  001800598BC (001800C0322, 00000000000, 00000000000, 00000000000)
 000FFFFCCD0  0018005994E (000FFFFCDF0, 000FFFFCCD0, FFFFFFFFFFFFFFD8, 00000000000)
 000FFFFCCD0  00180048FE1 (00000000000, 00000000000, 00000000000, 00000000000)

+ 1 - 0
src/api/axios.js

@@ -15,6 +15,7 @@ axios.defaults.withCredentials = true;
     baseURL: "http://192.168.10.23:8082/", // 请求服务器地址 + 端口,可缺省
     subUrl: "api/repassword", // 请求接口地址,必传项
     timeout: 3000, // 请求超时时间,默认 3s ,可缺省
+    body: { id: "151", name: "张三" }, // 请求体所携带的 Body ,如果后端要求 Body 传参的话需要携带此参数,且请求方式需为 POST
     data: { name: "admin", pasword: "123456" }, // 请求所携带参数,默认为空,可缺省
     success (res) {
       // 请求成功的回调

+ 484 - 0
src/components/chart/combination/area-line-chart-2.vue

@@ -0,0 +1,484 @@
+<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-chart",
+  componentName: "multiple-bar-chart",
+  props: {
+    width: {
+      type: String,
+      default: "100%",
+    },
+    height: {
+      type: String,
+      default: "800px",
+    },
+    lineData: {
+      type: Array,
+      default: () => [
+        {
+          text: "日发电量",
+          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,
+            },
+            {
+              text: "8",
+              value: 3,
+            },
+            {
+              text: "9",
+              value: 3,
+            },
+            {
+              text: "10",
+              value: 3,
+            },
+            {
+              text: "11",
+              value: 3,
+            },
+            {
+              text: "12",
+              value: 3,
+            },
+            {
+              text: "13",
+              value: 3,
+            },
+            {
+              text: "14",
+              value: 3,
+            },
+            {
+              text: "15",
+              value: 3,
+            },
+            {
+              text: "16",
+              value: 3,
+            },
+          ],
+        },
+        {
+          text: "上网电量",
+          yAxisIndex: 1,
+          value: [
+            {
+              text: "1",
+              value: 1,
+            },
+            {
+              text: "2",
+              value: 2,
+            },
+            {
+              text: "3",
+              value: 1,
+            },
+            {
+              text: "4",
+              value: 3,
+            },
+            {
+              text: "5",
+              value: 4,
+            },
+            {
+              text: "6",
+              value: 5,
+            },
+            {
+              text: "7",
+              value: 6,
+            },
+            {
+              text: "8",
+              value: 7,
+            },
+            {
+              text: "9",
+              value: 8,
+            },
+            {
+              text: "10",
+              value: 7,
+            },
+            {
+              text: "11",
+              value: 9,
+            },
+            {
+              text: "12",
+              value: 2,
+            },
+            {
+              text: "13",
+              value: 3,
+            },
+            {
+              text: "14",
+              value: 5,
+            },
+            {
+              text: "15",
+              value: 12,
+            },
+            {
+              text: "16",
+              value: 11,
+            },
+          ],
+        },
+      ],
+    },
+    areaData: {
+      type: Array,
+      default: () => [
+        {
+          name: "1",
+          start: 0,
+          end: 100,
+          state: "green",
+        },
+        {
+          name: "1",
+          start: 100,
+          end: 200,
+          state: "red",
+        },
+        {
+          name: "1",
+          start: 200,
+          end: 300,
+          state: "yellow",
+        },
+        {
+          name: "2",
+          start: 300,
+          end: 800,
+          state: "green",
+        },
+        {
+          name: "3",
+          start: 800,
+          end: 9000,
+          state: "green",
+        },
+      ],
+    },
+    // 单位
+    units: {
+      type: Array,
+      default: () => ["健康趋势", "风机健康状态数量"],
+    },
+    // 显示 legend
+    showLegend: {
+      type: Boolean,
+      default: true,
+    },
+    // 颜色
+    color: {
+      type: Array,
+      default: () => ["#323E6F", "#1DA0D7", "#02BB4C", "#DB5520", "#EDB32F", "#EDEB2F"],
+    },
+  },
+  data() {
+    return {
+      id: "",
+      chart: null,
+    };
+  },
+  computed: {
+    legend() {
+      let data = [];
+      this.lineData.forEach((value, index) => {
+        data.push(value.text);
+      });
+      return data;
+    },
+    xAxisData() {
+      let data = [];
+      if (this.lineData.length > 0)
+        this.lineData[0].value.forEach((value, index) => {
+          data.push(value.text);
+        });
+      return data;
+    },
+    yAxisData() {
+      let result = [];
+      this.units.forEach((value, index) => {
+        let data = {
+          type: "value",
+          name: value,
+          axisLabel: {
+            formatter: "{value} ",
+            color: partten.getColor("gray"),
+          },
+          axisLine: {
+            type: "dashed",
+            lineStyle: {
+              color: partten.getColor("gray"),
+            },
+            width: 5,
+          },
+          axisTick: {
+            show: false,
+          },
+          splitLine: {
+            lineStyle: {
+              type: "dashed",
+              dashOffset: 10,
+              color: partten.getColor("gray") + 80,
+            },
+          },
+        };
+        result.push(data);
+      });
+
+      result.push({
+        data: [this.areaData[0].name],
+        axisLabel: { show: false },
+      });
+
+      return result;
+    },
+    areaChartData() {
+      let data = [];
+      for (var i = 0; i < this.areaData.length; i++) {
+        let item = this.areaData[i];
+        var color = item.state;
+        data.push({
+          name: item.name,
+          value: [item.start, item.end, item.end - item.start],
+          itemStyle: {
+            normal: {
+              color: color,
+            },
+          },
+          exData: item,
+        });
+      }
+      return data;
+    },
+    areaMax() {
+      let max = 0;
+      this.areaData.forEach((value) => {
+        if (max < value.end) max = value.end;
+      });
+      return max;
+    },
+  },
+  methods: {
+    renderItem(params, api) {
+      var start = api.coord([api.value(0)]);
+      var end = api.coord([api.value(1)]);
+      var height = api.size([0, 1])[1];
+
+      var rectShape = echarts.graphic.clipRectByRect(
+        {
+          x: start[0],
+          y: start[1] - height / 2,
+          width: end[0] - start[0],
+          height: height,
+        },
+        {
+          x: params.coordSys.x,
+          y: params.coordSys.y,
+          width: params.coordSys.width,
+          height: params.coordSys.height,
+        }
+      );
+
+      return (
+        rectShape && {
+          type: "rect",
+          transition: ["shape"],
+          shape: rectShape,
+          style: api.style(),
+        }
+      );
+    },
+    initChart() {
+      let that = this;
+      let chart = echarts.init(this.$el);
+
+      let option = {
+        color: this.color,
+        grid: {
+          left: 40,
+          right: 40,
+          bottom: 40,
+          top: 32,
+          containLabel: true,
+        },
+        tooltip: {
+          show: true,
+          trigger: "axis",
+          axisPointer: {
+            type: "cross",
+          },
+          backgroundColor: "rgba(0,0,0,0.4)",
+          borderColor: partten.getColor("gray"),
+          textStyle: {
+            color: "#fff",
+            fontSize: 14,
+          },
+        },
+        legend: {
+          show: this.showLegend,
+          data: this.legend,
+          right: 120,
+          icon: "ract",
+          itemWidth: 8,
+          itemHeight: 8,
+          inactiveColor: partten.getColor("gray"),
+          textStyle: {
+            color: partten.getColor("grayl"),
+            fontSize: 12,
+          },
+        },
+        xAxis: [
+          {
+            type: "category",
+            axisLabel: {
+              color: partten.getColor("gray"),
+            },
+            axisLine: {
+              show: false,
+            },
+            axisTick: {
+              show: false,
+            },
+            data: this.xAxisData,
+          },
+          {
+            show: false,
+            min: 0,
+            max: this.areaMax,
+            axisLabel: {
+              show: false,
+              formatter: function(val) {
+                return Math.max(0, val - 0) + " ms";
+              },
+            },
+          },
+        ],
+        yAxis: this.yAxisData,
+        series: [],
+      };
+
+      // line data
+      if (this.lineData.length > 0) {
+        this.lineData.forEach((value, index) => {
+          option.series.push({
+            name: value.text,
+            type: "line",
+            data: value.value,
+            smooth: true, //平滑展示
+            yAxisIndex: value.yAxisIndex,
+            // lineStyle: {
+            //   color: partten.getColor("green"),
+            // },
+            // itemStyle: {
+            //   color: partten.getColor("green"),
+            // },
+          });
+        });
+      }
+
+      // 区域
+      if (this.areaData && this.areaData.length > 0) {
+        option.series.push({
+          type: "custom",
+          renderItem: this.renderItem,
+          yAxisIndex: this.units.length,
+          xAxisIndex: 1,
+          itemStyle: {
+            opacity: 0.2,
+          },
+          tooltip: {
+            show: false,
+            formatter: function(params) {
+              return params.marker + params.name + ": " + params.value[2] + "s";
+            },
+          },
+          encode: {
+            x: [1, 2],
+            y: 0,
+          },
+          data: this.areaChartData,
+        });
+      }
+
+      chart.setOption(option);
+
+      return chart;
+    },
+  },
+  emits: {
+    areaClick: null,
+  },
+  created() {
+    this.id = "pie-chart-" + util.newGUID();
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.$el.style.width = this.width;
+      this.$el.style.height = this.height;
+      let that = this;
+      let chart = this.initChart();
+      chart.on("click", function(e, p) {
+        if (e.seriesType == "custom") {
+          that.$emit("areaClick", { data: e.data.exData });
+        }
+      });
+    });
+  },
+  updated() {
+    this.$nextTick(() => {
+      this.initChart();
+    });
+  },
+};
+</script>
+
+<style lang="less">
+.chart {
+  width: 100%;
+  height: 100%;
+  display: inline-block;
+}
+</style>

+ 25 - 25
src/components/chart/radar/normal-radar-chart.vue

@@ -23,8 +23,8 @@ export default {
     },
     // 标题
     title: {
-      type: String,
-      default: "标题",
+      type: Array,
+      default: () => ["-", "-"],
     },
     // 值
     value: {
@@ -66,37 +66,34 @@ export default {
             borderWidth: 0.5,
           },
         },
-		{
-		  areaStyle: {
-		    color: "rgba(165,228,175, 0.9)",
-		  },
-		  lineStyle: {
-		    color: "rgba(255,255,255, 0.85)",
-		  },
-		  itemStyle: {
-		    color: "rgba(165,228,175, 0.5)",
-		    borderColor: "rgba(255,255,255, 0.5)",
-		    borderWidth: 0.5,
-		  },
-		},
+        {
+          areaStyle: {
+            color: "rgba(165,228,175, 0.9)",
+          },
+          lineStyle: {
+            color: "rgba(255,255,255, 0.85)",
+          },
+          itemStyle: {
+            color: "rgba(165,228,175, 0.5)",
+            borderColor: "rgba(255,255,255, 0.5)",
+            borderWidth: 0.5,
+          },
+        },
       ],
     };
   },
-  computed: {
-    series() {
+  methods: {
+    renderValue() {
       let result = [];
       this.value.forEach((value, index) => {
         result.push({
-          name: this.title,
+          name: this.title[index],
           type: "radar",
           data: value.data,
         });
       });
-
       return result;
     },
-  },
-  methods: {
     initChart() {
       let chart = echarts.init(this.$el);
 
@@ -109,9 +106,12 @@ export default {
               maxValue = value;
             }
           });
-          item.areaStyle = this.lineStyles[index % this.lineStyles.length].areaStyle;
-          item.lineStyle = this.lineStyles[index % this.lineStyles.length].lineStyle;
-          item.itemStyle = this.lineStyles[index % this.lineStyles.length].itemStyle;
+          item.areaStyle =
+            this.lineStyles[index % this.lineStyles.length].areaStyle;
+          item.lineStyle =
+            this.lineStyles[index % this.lineStyles.length].lineStyle;
+          item.itemStyle =
+            this.lineStyles[index % this.lineStyles.length].itemStyle;
         });
       maxValue *= 1.5;
 
@@ -353,7 +353,7 @@ export default {
             indicator: indicator,
           },
         ],
-        series: this.series,
+        series: this.renderValue(),
       };
 
       chart.setOption(option);

+ 10 - 1
src/components/chart/radar/radar-chart.vue

@@ -24,7 +24,7 @@ export default {
     // 标题
     title: {
       type: String,
-      default: "标题",
+      default: "",
     },
     // 值
     value: {
@@ -122,6 +122,14 @@ export default {
             color: "#fff",
             fontSize: util.vh(16),
           },
+          position: function(pos, params, dom, rect, size) {
+            // 鼠标在左侧时 tooltip 显示到右侧,鼠标在右侧时 tooltip 显示到左侧。
+            var obj = { top: 60 };
+            obj[["left", "right"][+(pos[0] < size.viewSize[0] / 2)]] = 5;
+            return obj;
+          },
+          extraCssText: "position: absolute; margin-top:-20%;",
+          // extraCssText: "max-width:140px;position:sticky;top:0;left:0"
         },
         radar: [
           // 最低层 90
@@ -367,5 +375,6 @@ export default {
   height: 100%;
   display: block;
   margin: auto;
+  position: relative;
 }
 </style>

+ 1 - 0
src/components/coms/cards/percent-card-2.vue

@@ -85,6 +85,7 @@ export default {
       font-size: @fontsize-s;
       font-weight: 600;
       margin-bottom: 1.1111vh;
+      white-space: nowrap;
 
       .value-text {
         margin-right: 0.741vh;

+ 14 - 8
src/components/coms/table/table3.vue

@@ -16,7 +16,7 @@
       :width="col.width"
       :min-width="col.minWidth"
       :sortable="col.sortable"
-	  :sort-orders="sortOrder"
+      :sort-orders="sortOrder"
       :sort-by="col.field + '.count'"
       :show-overflow-tooltip="!col.slot"
       :fixed="col.fixed"
@@ -89,6 +89,12 @@ export default {
         };
       },
     },
+    sortOrder: {
+      type: Array,
+      default: () => {
+        return ["descending", "ascending", null];
+      },
+    },
   },
   // 自定义事件
   emits: {
@@ -136,12 +142,12 @@ export default {
       if (this.pageable) return this.currentPage * this.pageSize;
       else return this.data.data.length;
     },
-	sortOrder:{
-	  type:Array,
-	  default:()  =>{
-		return ['descending', 'ascending', null]
-	  }
-	}
+    // sortOrder: {
+    //   type: Array,
+    //   default: () => {
+    //     return ["descending", "ascending", null];
+    //   },
+    // },
   },
   // 函数
   methods: {
@@ -164,7 +170,7 @@ export default {
   },
   created() {
     // 创建后
-	this.selfPageSize = this.pageSize
+    this.selfPageSize = this.pageSize;
   },
   beforeMount() {
     // 渲染前

+ 16 - 18
src/components/other/cesium/index.vue

@@ -50,30 +50,28 @@
 </template>
  
 <script>
-// import addCircleWave from "./static/CiecleScan";
-// import Windy from "./static/wind/Windy";
-// import response from "./static/2017121300";
-// import wtTree from "./static/fj";
+import addCircleWave from "./static/CiecleScan";
+import Windy from "./static/wind/Windy";
+import response from "./static/2017121300";
+import wtTree from "./static/fj";
 
-// import h337 from "./static/heatmap";
+import h337 from "./static/heatmap";
 
-// import $ from "jquery";
+import $ from "jquery";
 
-// import {
-//   createSnowStage,
-//   createRainStage,
-// } from "./static/postProcessController";
+import {
+  createSnowStage,
+  createRainStage,
+} from "./static/postProcessController";
 
-// const Cesium = require("cesium/Cesium");
-// const widgets = require("cesium/Widgets/widgets.css");
+const Cesium = require("cesium/Cesium");
+const widgets = require("cesium/Widgets/widgets.css");
 
 export default {
   data() {
     return {
       viewer: null,
-      // url: "http://localhost:8080/static/cesium/Assets/Textures/temp",
-      // url: "http://localhost:8080/static/cesium/Assets/Textures/NaturalEarthII",
-      url: "http://10.155.32.4/tiles",
+      url: window.__MODE__.tilesUrl,
       publicPath: "./",
       initPosition: [106.0231304, 37.73323706, 0],
 
@@ -108,9 +106,9 @@ export default {
   created() {},
 
   mounted() {
-    // this.initMap();
-    // this.handleCommand("b");
-    // this.flyto(1600000);
+    this.initMap();
+    this.handleCommand("b");
+    this.flyto(1600000);
   },
 
   computed: {},

+ 105 - 100
src/components/other/healthReport/index.vue

@@ -142,7 +142,7 @@
           <normal-line-chart :list="qxpcls" />
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2">对风偏差:</el-form-item>
@@ -194,7 +194,7 @@
           />
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2">切入切出:</el-form-item>
@@ -227,7 +227,7 @@
           </el-table>
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2"
@@ -253,19 +253,15 @@
               yhbjcount.tdgtime
             }}分钟。
           </el-form-item>
-          <el-form-item class="text-indent-2" v-if="bjyhcount.length > 0"
-            >其中以{{ bjyhcount[0].yhmx }}发生频次最高,为{{
-              bjyhcount[0].count
-            }}次;{{ bjyhcount[1].yhmx }}次之,为{{ bjyhcount[1].count }}次;{{
-              bjyhcount[2].yhmx
-            }}第三,为{{ bjyhcount[0].count }}次。
+          <el-form-item class="text-indent-2" v-if="bjyhcount.length > 0">
+			<font v-if="bjyhcount[0].yhmx">其中以{{ bjyhcount[0].yhmx }}发生频次最高,为{{ bjyhcount[0].count }}次;</font>
+			<font v-if="bjyhcount[1].yhmx">{{ bjyhcount[1].yhmx }}次之,为{{ bjyhcount[1].count }}次;</font>
+			<font v-if="bjyhcount[2].yhmx">{{ bjyhcount[2].yhmx }}第三,为{{ bjyhcount[0].count }}次。</font>
           </el-form-item>
-          <el-form-item class="text-indent-2"
-            >其中以{{ bjyhcount[3].yhmx }}发生时长最长,为{{
-              bjyhcount[3].times
-            }}分钟;{{ bjyhcount[4].yhmx }}次之,为{{
-              bjyhcount[4].yhmx
-            }}分钟;{{ bjyhcount[5].yhmx }}第三,为{{ bjyhcount[5].yhmx }}分钟。
+          <el-form-item class="text-indent-2" >
+			<font v-if="bjyhcount[3].yhmx">其中以{{ bjyhcount[3].yhmx }}发生时长最长,为{{ bjyhcount[3].times }}分钟;</font>
+			<font v-if="bjyhcount[4].yhmx">{{ bjyhcount[4].yhmx }}次之,为{{ bjyhcount[4].yhmx }}分钟;</font>
+			<font v-if="bjyhcount[5].yhmx">{{ bjyhcount[5].yhmx }}第三,为{{ bjyhcount[5].yhmx }}分钟。</font>
           </el-form-item>
           <div class="logHead">部件隐患对比(次|分钟)</div>
           <el-table
@@ -338,7 +334,7 @@
           </el-table>
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2">故障分类:</el-form-item>
@@ -392,7 +388,7 @@
           </el-table>
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2"
@@ -432,7 +428,7 @@
           </el-table>
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2"
@@ -463,7 +459,7 @@
           </el-table>
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2">发电机:</el-form-item>
@@ -492,7 +488,7 @@
           </el-table>
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2"
@@ -521,7 +517,7 @@
           >
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2">齿轮箱:</el-form-item>
@@ -616,7 +612,7 @@
             <el-table-column prop="scz" label="实测值"></el-table-column>
             <el-table-column prop="df" label="得分"></el-table-column>
           </el-table>
-
+ 
           <el-form-item class="imp fw text-indent-2">震动监测:</el-form-item>
           <el-form-item class="text-indent-2">时域分析分析法</el-form-item>
           <el-form-item class="text-indent-2"
@@ -642,7 +638,7 @@
           >
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2"
@@ -696,7 +692,7 @@
           </el-table>
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="imp fw text-indent-2"
@@ -743,7 +739,7 @@
               :label="sbklyls[0].date"
             ></el-table-column>
           </el-table>
-
+ 
           <el-form-item class="imp fw text-indent-2"
             >2、设备可利用率</el-form-item
           >
@@ -827,7 +823,7 @@
           <div class="logHead">
             {{ datas.year }}年{{ datas.month }}月性能评价明细
           </div>
-
+ 
           <table
             border="1"
             class="xnpjfx"
@@ -867,7 +863,7 @@
           </table>
         </el-form>
       </div>
-
+ 
       <div class="textBox" v-if="Number(datas.isrecommend) == 1">
         <el-form>
           <el-form-item class="imp fw"><b>推荐检修方案</b></el-form-item>
@@ -918,7 +914,7 @@
           >
         </el-form>
       </div>
-
+ 
       <div class="textBox">
         <el-form>
           <el-form-item class="fw" style="margin: 10px 0; text-align: center"
@@ -929,7 +925,7 @@
     </div>
   </el-dialog>
 </template>
-
+ 
 <script>
 import DoubleLineChart from "@com/chart/line/double-line-chart.vue";
 // import ScatterLineChart from "@com/chart/combination/scatter-line-chart.vue";
@@ -1001,12 +997,18 @@ export default {
         {
           title: "曲线偏差率",
           yAxisIndex: 0,
-          value: [],
+          value: [{
+              text: "1",
+              value: 0,
+            }],
         },
         {
           title: "基准值",
           yAxisIndex: 0,
-          value: [],
+          value: [{
+              text: "1",
+              value: 0,
+            },],
         },
       ],
       // 隐患部件频次统计
@@ -1106,7 +1108,7 @@ export default {
       xnpjmx: [],
       pjmxs: [],
       wttragetreportcharts: [],
-
+ 
       zhrank: 2,
       // 维修换件频次
       wxhjpc: [
@@ -1605,7 +1607,7 @@ export default {
       reqData: {},
     };
   },
-
+ 
   props: {
     show: {
       type: Boolean,
@@ -1634,7 +1636,6 @@ export default {
       $(".bjyhdb .el-table__header-wrapper table .is-group tr").eq(1).remove();
     },
     yhmxdbMethod({ row, column, rowIndex, columnIndex }) {
-      // 	console.log(rowIndex + "==" + columnIndex)
       if (rowIndex < 8) {
         if (rowIndex === 0 && columnIndex === 0) {
           return [8, 1];
@@ -1690,20 +1691,20 @@ export default {
         "健康评价报告概述"
       );
     },
-
+ 
     // 关闭弹窗
     dialogClosed() {
       this.dialogVisible = false;
       this.$emit("closed", false);
     },
-
+ 
     // 改变列颜色
     columnStyle({ row, column, rowIndex, columnIndex }) {
       if (columnIndex === 0) {
         return "background:rgb(204,255,255);";
       }
     },
-
+ 
     // 获取报告详情
     getReport(wtid,recorddate) {
       let that = this;
@@ -1721,10 +1722,11 @@ export default {
         }, // 请求所携带参数,默认为空,可缺省
         success(res) {
           if (res.code == 200) {
-				that.datas = res.data;
-				that.healthreport = that.datas.healthreport;
-				that.randomInitDate();
-    
+            that.datas = res.data;
+            that.healthreport = res.data.healthreport;
+            that.randomInitDate();
+ 
+            that.qxpcls = [];
             // 功率曲线拟合
             let glqxnh = [
               {
@@ -1738,7 +1740,7 @@ export default {
                 value: [],
               },
             ];
-            that.datas.healthreport.nhglqxs && that.datas.healthreport.nhglqxs.forEach((item) => {
+            res.data.healthreport.nhglqxs && res.data.healthreport.nhglqxs.forEach((item) => {
               if (Number(item.speed) % 1 == 0) {
                 glqxnh[0].value.push({
                   text: item.speed,
@@ -1751,7 +1753,7 @@ export default {
               }
             });
             that.glqxnh = glqxnh;
-
+ 
             //曲线偏差率
 	        that.qxpcls = [];
             let qxpcls = [
@@ -1766,21 +1768,25 @@ export default {
                 value: [],
               },
             ];
-            let qxpcl = that.datas.healthreport.qxpcls.sort(that.compare("date"));
-            if (qxpcl != null && qxpcl != undefined) {
-              for (var i = qxpcl.length - 1; i >= 0; i--) {
-                qxpcls[0].value.push({
-                  text: new Date(qxpcl[i].date).formatDate("yyyy-MM-dd"),
-                  value: Number(qxpcl[i].qxpcl).toFixed(2),
-                });
-                qxpcls[1].value.push({
-                  text: new Date(qxpcl[i].date).formatDate("yyyy-MM-dd"),
-                  value: Number(qxpcl[i].jzz).toFixed(2),
-                });
-              }
-              that.qxpcls = qxpcls;
-            }
-
+			console.log(11111,res.data.healthreport.qxpcls)
+			if(res.data.healthreport.qxpcls){
+				let qxpcl = res.data.healthreport.qxpcls.sort(that.compare("date"));
+				if (qxpcl != null && qxpcl != undefined) {
+				  for (var i = qxpcl.length - 1; i >= 0; i--) {
+				    qxpcls[0].value.push({
+				      text: new Date(qxpcl[i].date).formatDate("yyyy-MM-dd"),
+				      value: Number(qxpcl[i].qxpcl).toFixed(2),
+				    });
+				    qxpcls[1].value.push({
+				      text: new Date(qxpcl[i].date).formatDate("yyyy-MM-dd"),
+				      value: Number(qxpcl[i].jzz).toFixed(2),
+				    });
+				  }
+				  that.qxpcls = qxpcls;
+				  console.log(11111,that.qxpcls)
+				}
+			}
+ 
             // 对风偏差
             that.dfpc = [];
             let dfpc = {
@@ -1806,21 +1812,21 @@ export default {
                 },
               ],
             };
-            that.datas.healthreport.nipples && that.datas.healthreport.nipples.forEach((item) => {
+            res.data.healthreport.nipples && res.data.healthreport.nipples.forEach((item) => {
               let obj = {
                 text: item.pcl,
                 value: item.count,
               };
               dfpc.nipples[0].value.push(obj);
             });
-            that.datas.healthreport.dfpclpowers && that.datas.healthreport.dfpclpowers.forEach((item) => {
+            res.data.healthreport.dfpclpowers && res.data.healthreport.dfpclpowers.forEach((item) => {
               let obj = {
                 text: item.power,
                 value: item.dfpcl,
               };
               dfpc.dfpclpowers[0].value.push(obj);
             });
-            that.datas.healthreport.dfpclSpeeds && that.datas.healthreport.dfpclSpeeds.forEach((item) => {
+            res.data.healthreport.dfpclSpeeds && res.data.healthreport.dfpclSpeeds.forEach((item) => {
               let obj = {
                 text: item.speed,
                 value: item.dfpcl,
@@ -1828,7 +1834,7 @@ export default {
               dfpc.dfpclSpeeds[0].value.push(obj);
             });
             that.dfpc = dfpc;
-
+ 
             // 部件隐患对比
             that.bjyhdbs = [];
             that.bjyhdbs = that.datas.healthreport.bjyhdbs;
@@ -1880,7 +1886,7 @@ export default {
                 }
                 if (that.yhmxdbs2.length == 3) break;
               }
-
+ 
               // 部件隐患数据频次时长统计
               let ybmxdj1 = Object.assign([], ybmxdj);
               let ybmxdj2 = Object.assign([], ybmxdj);
@@ -1896,17 +1902,16 @@ export default {
                 that.bjyhcount.push(array2[2]);
               }
             }
-
             //切入切出对比
             that.qrqcs = [];
-            that.datas.healthreport.qrqcs && that.datas.healthreport.qrqcs.forEach((item) => {
+            res.data.healthreport.qrqcs && res.data.healthreport.qrqcs.forEach((item) => {
               item.xfqr = item.xfqr == null ? 0 : item.xfqr.toFixed(2);
               item.xfqc = item.xfqc == null ? 0 : item.xfqc.toFixed(2);
               item.dfqr = item.dfqr == null ? 0 : item.dfqr.toFixed(2);
               item.dfqc = item.dfqc == null ? 0 : item.dfqc.toFixed(2);
               that.qrqcs.push(item);
             });
-
+ 
             //设备可利用率
             let sbklyls = that.datas.healthreport.sbklyls;
             that.sbklyls = sbklyls;
@@ -1962,7 +1967,7 @@ export default {
               that.sbklyls2.push(sbklyls5);
               that.sbklyls2.push(sbklyls6);
               that.sbklyls2.push(sbklyls7);
-
+ 
               // 风能利用率
               let fnlyl = that.datas.healthreport.fnlyls;
               let fnlyl1 = {
@@ -2029,12 +2034,12 @@ export default {
               that.fnlyls.push(fnlyl8);
               that.fnlyls.push(fnlyl9);
             }
-
+ 
             // 故障分类
             that.faultclass = that.datas.healthreport.faultclass.sort(
               that.compare("monthwarningnum")
             );
-
+ 
             // 功率对部件温度影响
             that.partwds = [];
             let partwds = that.datas.healthreport.partwds;
@@ -2060,7 +2065,7 @@ export default {
               } else if (item.part.indexOf("cf")) {
                 bj = "测风系统";
               }
-
+ 
               partwd.push({
                 bj: bj,
                 wdcd: item.type,
@@ -2077,7 +2082,7 @@ export default {
               });
             });
             that.partwds = partwd;
-
+ 
             // 性能评价结果
             that.xnpjjg = [];
             let pjmxs = that.datas.healthreport.pjjgs;
@@ -2110,7 +2115,7 @@ export default {
                 that.xnpjjg.push(xnpj3);
               }
             }
-
+ 
             // 评价结果明细
             that.xnpjmx = [];
             let pjmx = that.datas.healthreport.pjmxs[0];
@@ -2310,7 +2315,7 @@ export default {
                 ],
               },
             ];
-
+ 
             // 部件劣化状态4张图表
             let fdj = [
                 {
@@ -2340,8 +2345,8 @@ export default {
                   value: [],
                 },
               ];
-
-            that.datas.healthreport.wttragetreportcharts && that.datas.healthreport.wttragetreportcharts.forEach((item) => {
+ 
+            res.data.healthreport.wttragetreportcharts && res.data.healthreport.wttragetreportcharts.forEach((item) => {
               var recorddate = new Date(item.recorddate).formatDate(
                 "yyyy-MM-dd hh:mm"
               );
@@ -2496,7 +2501,7 @@ export default {
       this.bjzb.push(obj14);
     },
   },
-
+ 
   watch: {
     show(value) {
       this.dialogVisible = value;
@@ -2511,66 +2516,66 @@ export default {
   },
 };
 </script>
-
+ 
 <style lang="less" scoped>
 .cDialog {
   position: relative;
-
+ 
   .pdfDom {
     padding: 30px 50px;
   }
-
+ 
   .title {
     text-align: center;
     font-size: 24px;
     font-weight: 700;
   }
-
+ 
   .tableBox {
     width: 100%;
     display: flex;
     justify-content: space-between;
     align-items: center;
-
+ 
     .l,
     .r {
       width: 49%;
       align-self: flex-start;
     }
-
+ 
     .fw {
       font-weight: 700;
     }
   }
-
+ 
   .infoBox {
     margin-top: 10px;
     font-size: 16px;
-
+ 
     .red {
       color: #f25656;
     }
-
+ 
     .purple {
       color: rgb(112, 88, 209);
     }
-
+ 
     .info {
       color: #1595fa;
     }
-
+ 
     p {
       text-indent: 2em;
     }
   }
-
+ 
   .textBox {
     width: 100%;
     margin-top: 10px;
     font-size: 16px;
   }
 }
-
+ 
 .logHead {
   display: flex;
   width: 100%;
@@ -2581,52 +2586,52 @@ export default {
   justify-content: center;
   margin-top: 15px;
 }
-
+ 
 .border-b {
   border-bottom: 1px solid #c0ccda;
 }
-
+ 
 .p-5 {
   padding: 5px;
 }
-
+ 
 .m-b-10 {
   margin-bottom: 10px;
 }
-
+ 
 .text-indent-2 {
   text-indent: 2em;
 }
-
+ 
 .text-indent-4 {
   text-indent: 4em;
 }
 </style>
-
+ 
 <style lang="less">
 .cDialog {
   .cell {
     text-align: center;
   }
-
+ 
   .el-dialog__body {
     max-height: 850px;
     overflow-y: scroll;
     padding: 0;
   }
-
+ 
   .el-form-item.imp {
     .el-form-item__content {
       font-size: 24px;
     }
   }
-
+ 
   .el-form-item {
     margin-bottom: 0;
   }
-
+ 
   .el-table td {
     color: black;
   }
 }
-</style>
+</style>

+ 54 - 14
src/router/index.js

@@ -150,6 +150,12 @@ const routes = [{
 		import( /* webpackChunkName: "decision1" */ "../views/Decision/Decision1.vue"),
 },
 {
+	path: "/decision/zbtjfx", // 节能减排KPI
+	name: "decision1",
+	component: () =>
+		import( /* webpackChunkName: "decision1" */ "../views/Decision/zbtjfx.vue"),
+},
+{
 	path: "/decision/decision1Mx", //风机绩效榜明细
 	name: "decision1Mx",
 	component: () =>
@@ -379,6 +385,11 @@ const routes = [{
 	component: () => import("../views/HealthControl/assess/assessindex.vue")
 },
 {
+	path: "/health/assess/selfEvaluate", // 自组合评级
+	name: "assessEvaluate",
+	component: () => import("../views/HealthControl/assess/selfEvaluate.vue")
+},
+{
 	path: "/health/assess/config",
 	name: "assessconfig",
 	component: () => import("../views/HealthControl/assess/assessconfig.vue")
@@ -395,6 +406,12 @@ const routes = [{
 		import( /* webpackChunkName: "malfunctionStatistics" */ "../views/malfunctionRecall/index.vue"),
 },
 {
+	path: "/health/gzzd/gzfl", // 故障分类
+	name: "gzfl",
+	component: () =>
+		import( /* webpackChunkName: "malfunctionStatistics" */ "../views/malfunctionDiagnose/gzfl.vue"),
+},
+{
 	path: "/health/frist",
 	name: "health",
 	component: () =>
@@ -419,6 +436,11 @@ const routes = [{
 		import("../views/HealthControl/Health3.vue"),
 },
 {
+	path: "/health/healthLineChart/:wpId/:wtId", // 劣化状态分析
+	component: () => import( /* webpackChunkName: "healthLineChart" */
+		"../views/HealthControl/healthLineChart.vue"),
+},
+{
 	path: "/health/health4",
 	name: "health4",
 	children: [{
@@ -432,18 +454,11 @@ const routes = [{
 		component: () =>
 			import( /* webpackChunkName: "health8" */ "../views/HealthControl/Health10.vue"),
 	}, {
-		path: "healthLineChart/:wpId/:wtId", // 风机健康趋势
-		component: () =>
-			import( /* webpackChunkName: "healthLineChart" */
-				"../views/HealthControl/healthLineChart.vue"),
-	},
-	{
 		path: "healthLineChart2/:wpId/:wtId", // 健康趋势
 		component: () =>
 			import( /* webpackChunkName: "healthLineChart2" */
 				"../views/HealthControl/healthLineChart2.vue"),
-	}
-	],
+	}],
 	component: () =>
 		import("../views/HealthControl/Health4.vue"),
 },
@@ -578,10 +593,10 @@ const routes = [{
 		import('../views/Others/index.vue'),
 },
 {
-	path: "/others/reportPandect", // 报表总览
+	path: "/others/reportPandect", // 报表总览
 	name: "reportPandect",
 	component: () =>
-		import( /* webpackChunkName: "reportPandect" */ "../views/reportPandect/index.vue"),
+		import( /* webpackChunkName: "reportPandect" */ "../views/reportPandect/index.vue"),
 }, {
 	path: "/others/tjfx",
 	name: "tjfx",
@@ -765,15 +780,40 @@ const routes = [{
 	component: () =>
 		import( /* webpackChunkName: "czjl" */ "../views/warn/czjl.vue"),
 },
+{//光伏告警
+	path: "/others/alarmCenter/gfgj",
+	name: "gfgj",
+	component: () =>
+		import( /* webpackChunkName: "gfgj" */ "../views/warn/gfgj.vue"),
+},
 {
 	path: "/others/alarmCenter/boosterAlarm",
 	name: "boosterAlarm",
 	component: () => import("../views/alarmCenter/boosterAlarm.vue")
 },
-{//样本库,基础库,知识库
-	path: "/others/otherComponent",
-	name: "otherComponent",
-	component: () => import("../views/Others/otherComponent.vue")
+//故障样本库
+{
+	path: "/others/fault",
+	name: "fault",
+	component: () => import("../views/sampleDatabase/fault/index.vue")
+},
+//性能样本库
+{
+	path: "/others/performance",
+	name: "performance",
+	component: () => import("../views/sampleDatabase/performance/index.vue")
+},
+//预警样本库
+{
+	path: "/others/warning",
+	name: "warning",
+	component: () => import("../views/sampleDatabase/warning/index.vue")
+},
+//智能营销样本库
+{
+	path: "/others/market",
+	name: "market",
+	component: () => import("../views/sampleDatabase/market/index.vue")
 },
 // 报警中心-SCADA报警
 {

+ 25 - 13
src/tools/basicTool.js

@@ -13,7 +13,7 @@ export default {
    * @param {String} msg 消息提示的内容
    * @param {String} type 消息提示的类型,可选值为 ['success(成功)','warning(警告)','error(错误)',或者直接传入空字符串],默认 error
    */
-  showMsg (options) {
+  showMsg(options) {
     ElMessage({
       showClose: (options.showClose == true || options.showClose == false) ? options.showClose : false,
       center: (options.center == true || options.center == false) ? options.center : true,
@@ -32,7 +32,7 @@ export default {
    * @param {String} text 蒙版上显示的提示文本
    * @param {String} background 蒙版的背景颜色,写死 50% 透明度的纯黑色
    */
-  showLoading (opt) {
+  showLoading(opt) {
     let options = opt || {};
     loadingStatus = ElLoading.service({
       target: options.target || 'body',
@@ -48,7 +48,7 @@ export default {
    * 获取标签上的自定义属性
    * @param {any} node 传入 字符串 或 标准DOM对象 或 jQuery DOM对象 ,函数自动判断传入的类型并返回其 dataset 属性。
    */
-  getCurrentData (node) {
+  getCurrentData(node) {
     // 如果传入的是 jQuery 对象
     if (window.jQuery && node instanceof jQuery) {
       return node[0].dataset;
@@ -76,7 +76,7 @@ export default {
   /**
    * 关闭loading
    */
-  closeLoading () {
+  closeLoading() {
     loadingStatus.close();
   },
 
@@ -84,7 +84,7 @@ export default {
    * 深拷贝 json 数组
    * @param {Array} jsonArray 传入 Json 数组,返回一个指向新指针拷贝份数据
    */
-  deepCopy (jsonArray) {
+  deepCopy(jsonArray) {
     return JSON.parse(JSON.stringify(jsonArray));
   },
 
@@ -93,14 +93,14 @@ export default {
    * @param {String} key 需要找到的 ID
    * @param {Array} treeData 树形 Array
    */
-  getTreeDeepArr (key, treeData) {
+  getTreeDeepArr(key, treeData) {
 
     let arr = []; // 在递归时操作的数组
     let returnArr = []; // 存放结果的数组
     let depth = 0; // 定义全局层级
 
     // 定义递归函数
-    function childrenEach (childrenData, depthN) {
+    function childrenEach(childrenData, depthN) {
 
       for (var j = 0; j < childrenData.length; j++) {
 
@@ -138,7 +138,7 @@ export default {
    * 获取数据的类型
    * @param {any} options 传入一个数据,返回其类型 (object, array, string, number等)
    */
-  getType (options) {
+  getType(options) {
     return Object.prototype.toString.call(options).slice(8, Object.prototype.toString.call(options).length - 1).toLowerCase();
   },
 
@@ -151,7 +151,7 @@ export default {
    * @param {Number} speed 滚动到指定位置需要的时间 (动画时间),默认 200
    * @param {Function} success 滚动执行完毕后的回调函数
    */
-  scrollTo (options) {
+  scrollTo(options) {
     if (!options || !options.el) {
       this.showMsg({
         msg: 'scrollTo() 方法需要传入 el 属性'
@@ -175,7 +175,7 @@ export default {
    * @param {Object} tableData 用于规定表格表头和内容的 Object
    * @param {String} excelName 导出的文件名
    */
-  exportExcel (tableData, excelName) {
+  exportExcel(tableData, excelName) {
     const { export_json_to_excel } = require('@tools/excel/Export2Excel.js'); // 注意这个Export2Excel路径      
     let tHeader = []; // 上面设置Excel的表格第一行的标题       
     let filterVal = []; // 上面的index、nickName、name是tableData里对象的属性key值   
@@ -194,10 +194,22 @@ export default {
     export_json_to_excel(tHeader, data, (excelName || "导出的Excel")); // 最后一个是表名字
   },
 
+  /**
+   * 导出多个 sheet 的单独表格
+   * @param {Array} thArray sheet 的表头,需传入二维数组
+   * @param {Array} dataArray 表格数据,需传入二维数组
+   * @param {Array} sheetNameArray sheet 的名称
+   * @param {String} fileName 导出的文件名称
+   */
+  exportMultiple(thArray, dataArray, sheetNameArray, fileName) {
+    const { exportMultiple } = require('@tools/excel/Export2Excel.js');
+    exportMultiple(thArray, dataArray, sheetNameArray, fileName);
+  },
+
 
 
   // JS 触发全屏功能
-  requestFullscreen () {
+  requestFullscreen() {
     //全屏
     const docElm = document.documentElement;
     //W3C
@@ -225,7 +237,7 @@ export default {
    * 颜色进制转换  16 <--> 10 互转
    * @param {String} colorStr 传入一个颜色字符串, 16进制 或者 10进制 ,返回转换后的结果,例:传入 #1890ff ,返回 rgb(24, 144, 255),反之亦然
    */
-  replaceColor (colorStr) {
+  replaceColor(colorStr) {
     if (!colorStr) return '';
 
     let colorString = colorStr.replace(/#|rgb|\(|\)|\|;|\s+/g, "");
@@ -261,7 +273,7 @@ export default {
   },
 
   elCkeck: {
-    isNumber (rule, value, callback) {
+    isNumber(rule, value, callback) {
       if (value === '') {
         callback(new Error('该值不可为空'));
       } else if (!/^(-?\d+)(\.\d+)?$/.test(value)) {

+ 94 - 48
src/tools/excel/Export2Excel.js

@@ -4,7 +4,7 @@ require('script-loader!file-saver');
 require('./Blob.js');//转二进制用  这边要写你的blob的实际地址
 require('script-loader!xlsx/dist/xlsx.core.min');
 
-function generateArray (table) {
+function generateArray(table) {
   var out = [];
   var rows = table.querySelectorAll('tr');
   var ranges = [];
@@ -54,13 +54,13 @@ function generateArray (table) {
   return [out, ranges];
 };
 
-function datenum (v, date1904) {
+function datenum(v, date1904) {
   if (date1904) v += 1462;
   var epoch = Date.parse(v);
   return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);
 }
 
-function sheet_from_array_of_arrays (data, opts) {
+function sheet_from_array_of_arrays(data, opts) {
   var ws = {};
   var range = {
     s: {
@@ -102,29 +102,27 @@ function sheet_from_array_of_arrays (data, opts) {
   return ws;
 }
 
-function Workbook () {
+function Workbook() {
   if (!(this instanceof Workbook)) return new Workbook();
   this.SheetNames = [];
   this.Sheets = {};
 }
 
-function s2ab (s) {
+function s2ab(s) {
   var buf = new ArrayBuffer(s.length);
   var view = new Uint8Array(buf);
   for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
   return buf;
 }
 
-export function export_table_to_excel (id) {
+export function export_table_to_excel(id) {
   var theTable = document.getElementById(id);
-  console.log('a')
   var oo = generateArray(theTable);
   var ranges = oo[1];
 
   /* original data */
   var data = oo[0];
   var ws_name = "风机数据";
-  console.log(data);
 
   var wb = new Workbook(),
     ws = sheet_from_array_of_arrays(data);
@@ -148,10 +146,9 @@ export function export_table_to_excel (id) {
   }), "test.xlsx")
 }
 
-function formatJson (jsonData) {
-  console.log(jsonData)
+function formatJson(jsonData) {
 }
-export function export_json_to_excel (th, jsonData, defaultTitle) {
+export function export_json_to_excel(th, jsonData, defaultTitle) {
 
   /* original data */
 
@@ -178,51 +175,100 @@ export function export_json_to_excel (th, jsonData, defaultTitle) {
   }), title + ".xlsx")
 };
 
-export function export_blob (th, jsonData,defaultTitle) {
+export function export_blob(th, jsonData, defaultTitle) {
   var data = jsonData;
   data.unshift(th);
   var ws_name = "风机数据";
   var wb = new Workbook(),
-  ws = sheet_from_array_of_arrays(data);
+    ws = sheet_from_array_of_arrays(data);
   /* add worksheet to workbook */
   wb.SheetNames.push(ws_name);
   wb.Sheets[ws_name] = ws;
-  var wbout = XLSX.write(wb, {bookType: 'xlsx',bookSST: false,type: 'binary'});
-  
-  if(defaultTitle){//只渲染一个excel
-  	saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}),defaultTitle+".xlsx")
-  }else{//返回多个blob
-  	var aaa = new Blob([s2ab(wbout)], {type: 'text/plain'});
-  	return aaa;
+  var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' });
+
+  if (defaultTitle) {//只渲染一个excel
+    saveAs(new Blob([s2ab(wbout)], { type: "application/octet-stream" }), defaultTitle + ".xlsx")
+  } else {//返回多个blob
+    var aaa = new Blob([s2ab(wbout)], { type: 'text/plain' });
+    return aaa;
   }
 };
 
 export function export_more_blob(th, jsonData, defaultTitle) {
-    var data = jsonData;
-    //添加标题
-    for (var i = 0; i < th.length; i++) {
-      data[i].unshift(th[i])
-    }
-    //这里是定义sheet的名称 有几个sheet就加几个
-    var ws_name = ["日上网电量","上网功率","测风塔数据"];
-    var wb = new Workbook(),ws=[];
-    //数据转换
-    for (var j = 0; j < th.length; j++) {
-      ws.push(sheet_from_array_of_arrays(data[j]))
-    }
-    /* add worksheet to workbook */
-    //生成多个sheet
-    for (var k = 0; k < th.length; k++) {
-      wb.SheetNames.push(ws_name[k])
-      wb.Sheets[ws_name[k]] = ws[k]
-    }
-	
-    var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: false, type: 'binary'});
-    
-	if(defaultTitle){//只渲染一个excel
-		saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}),defaultTitle+".xlsx")
-	}else{//返回多个blob
-		var aaa = new Blob([s2ab(wbout)], {type: 'text/plain'});
-		return aaa;
-	}
-} 
+  var data = jsonData;
+  //添加标题
+  for (var i = 0; i < th.length; i++) {
+    data[i].unshift(th[i])
+  }
+  //这里是定义sheet的名称 有几个sheet就加几个
+  var ws_name = ["日上网电量", "上网功率", "测风塔数据"];
+  var wb = new Workbook(), ws = [];
+  //数据转换
+  for (var j = 0; j < th.length; j++) {
+    ws.push(sheet_from_array_of_arrays(data[j]))
+  }
+  /* add worksheet to workbook */
+  //生成多个sheet
+  for (var k = 0; k < th.length; k++) {
+    wb.SheetNames.push(ws_name[k])
+    wb.Sheets[ws_name[k]] = ws[k]
+  }
+
+  var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' });
+
+  if (defaultTitle) {//只渲染一个excel
+    saveAs(new Blob([s2ab(wbout)], { type: "application/octet-stream" }), defaultTitle + ".xlsx")
+  } else {//返回多个blob
+    var aaa = new Blob([s2ab(wbout)], { type: 'text/plain' });
+    return aaa;
+  }
+}
+
+export function exportMultiple(thArray, dataArray, sheetNameArray, fileName = "导出的Excel") {
+
+  let ws_name = sheetNameArray;
+  let wb = new Workbook();
+  let ws = [];
+  let filterArray = [];
+
+  const formatJson = function (filterVal, jsonData) {
+    return jsonData.map(v => filterVal.map(j => v[j]));
+  };
+
+  thArray.forEach((pEle, pIndex) => {
+    ws.push([]);
+    dataArray[pIndex].unshift(pEle);
+    filterArray.push([]);
+    pEle.forEach(cEle => {
+      filterArray[pIndex].push(cEle.field);
+    });
+  });
+
+  thArray.forEach((pEle, pIndex) => {
+    const data = formatJson(filterArray[pIndex], dataArray[pIndex]);
+    ws[pIndex].push(sheet_from_array_of_arrays(data));
+    wb.SheetNames.push(ws_name[pIndex]);
+    wb.Sheets[ws_name[pIndex]] = ws[pIndex][0];
+  });
+
+
+  let cellKes = []
+  for (var i = 0; i < 26; i++) {
+    cellKes.push(String.fromCharCode(65 + i));
+  }
+
+  let idx = 0;
+  ws.forEach((pEle, pIndex) => {
+    idx = 0
+    thArray[pIndex].forEach(thEle => {
+      pEle.forEach(cEle => {
+        cEle[cellKes[idx] + 1] = { v: thEle.name, t: "s" }
+        idx++;
+      });
+    });
+  });
+
+  let wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' });
+  saveAs(new Blob([s2ab(wbout)], { type: "application/octet-stream" }), fileName + ".xlsx");
+
+}

+ 42 - 2
src/views/About.vue

@@ -60,7 +60,7 @@
 </template>
 
 <script>
-// import ListBarChart from "../components/chart/bar/list-bar-chart.vue";
+import ListBarChart from "../components/chart/bar/list-bar-chart.vue";
 import HealthReport from "@com/other/healthReport/index.vue";
 import FJ from "@com/other/fj/index.vue";
 import clock from "@com/other/clock/index.vue";
@@ -79,7 +79,7 @@ export default {
     HealthReport,
     FJ,
     clock,
-    cesium
+    cesium,
   },
 
   created() {
@@ -97,6 +97,46 @@ export default {
     this.tableData = tableData;
   },
 
+  mounted() {
+    let thArray = [
+      [
+        { field: "name", name: "表1姓名" },
+        { field: "age", name: "表1年龄" },
+        { field: "sex", name: "表1性别" },
+      ],
+      [
+        { field: "name", name: "表2姓名" },
+        { field: "age", name: "表2年龄" },
+        { field: "sex", name: "表2性别" },
+      ],
+      [
+        { field: "name", name: "表3姓名" },
+        { field: "age", name: "表3年龄" },
+        { field: "sex", name: "表3性别" },
+      ],
+    ];
+
+    let dataArray = [
+      [
+        { name: "张三", age: 12, sex: "男" },
+        { name: "李四", age: 19, sex: "男" },
+      ],
+      [
+        { name: "王五", age: 9, sex: "女" },
+        { name: "赵六", age: 21, sex: "男" },
+      ],
+      [
+        { name: "吴七", age: 26, sex: "男" },
+        { name: "沈八", age: 17, sex: "女" },
+        { name: "刘九", age: 18, sex: "女" },
+      ],
+    ];
+
+    let sheetNameArray=["这是sheet-1","这是sheet-2","这是sheet-3"]
+
+    this.BASE.exportMultiple(thArray, dataArray, sheetNameArray, "单表格多sheet示例");
+  },
+
   methods: {
     showDialog() {
       this.show = true;

+ 0 - 1
src/views/Decision/Decision1.vue

@@ -1,6 +1,5 @@
 <template>
   <div class="decision-page-1">
-    <!-- 查询样式统一处理 样式在 assets/styles/form.less 文件中 -->
     <div class="query mg-b-8">
       <div class="query-items">
         <div class="query-item">

+ 0 - 1
src/views/Decision/Decision1Mx.vue

@@ -1,6 +1,5 @@
 <template>
 	<div class="decision-page-1">
-		<!-- 查询样式统一处理 样式在 assets/styles/form.less 文件中 -->
 		<div class="query mg-b-8">
 			<div class="query-items">
 				<div class="query-item">

+ 1 - 0
src/views/Decision/Decision2.vue

@@ -178,6 +178,7 @@
     >
       <dayinfo
         :radarValue="radarValue"
+		:title="[windNum,windNum2]"
         :windNum="windNum"
         :windNum2="windNum2"
         :tabs="tabs"

+ 1 - 0
src/views/Decision/Decision2Cjdb.vue

@@ -129,6 +129,7 @@
     >
       <dayinfo
         :radarValue="radarValue"
+		:title="[windNum,windNum2]"
         :windNum="windNum"
         :windNum2="windNum2"
         :tabs="tabs"

+ 1 - 1
src/views/Decision/Decision2Cndb.vue

@@ -111,6 +111,7 @@
     >
       <dayinfo
         :radarValue="radarValue"
+        :title="[windNum, windNum2]"
         :windNum="windNum"
         :windNum2="windNum2"
         :tabs="tabs"
@@ -898,7 +899,6 @@ export default {
           ],
         },
       ];
-
       var analyis = [],
         gzssdl = [],
         jxssdl = [],

+ 1 - 0
src/views/Decision/Decision2Xldb.vue

@@ -160,6 +160,7 @@
     >
       <dayinfo
         :radarValue="radarValue"
+		:title="[windNum,windNum2]"
         :windNum="windNum"
         :windNum2="windNum2"
         :tabs="tabs"

+ 2 - 1
src/views/Decision/Decision2Xmdb.vue

@@ -140,6 +140,7 @@
     >
       <dayinfo
         :radarValue="radarValue"
+		:title="[windNum,windNum2]"
         :windNum="windNum"
         :windNum2="windNum2"
         :tabs="tabs"
@@ -151,7 +152,7 @@
 
 <script>
 import MultipleBarChart from "../../components/chart/bar/multiple-bar-chart.vue";
-import DualPieChart from "../../components/chart/pie/dual-pie-chart.vue";
+import DualPieChart from "./dual-pie-chart.vue";
 import SvgIcon from "../../components/coms/icon/svg-icon.vue";
 import Panel from "../../components/coms/panel/panel.vue";
 import Table from "../../components/coms/table/table.vue";

+ 1 - 0
src/views/Decision/Decision3.vue

@@ -163,6 +163,7 @@
     >
       <dayinfo
         :radarValue="radarValue"
+		:title="[windNum,windNum2]"
         :windNum="windNum"
         :windNum2="windNum2"
         :tabs="tabs"

+ 1 - 0
src/views/Decision/Decision4.vue

@@ -54,6 +54,7 @@
     >
       <dayinfo
         :radarValue="radarValue"
+		:title="[windNum,windNum2]"
         :windNum="windNum"
         :windNum2="windNum2"
         :tabs="tabs"

+ 1 - 1
src/views/Decision/dayinfo.vue

@@ -8,7 +8,7 @@
 					</span>
 				</div>
 				<div class="chart-body">
-					<normal-radar-chart :height="'500px'" :value="radarValue" />
+					<normal-radar-chart :height="'500px'" :value="radarValue" :tltle="['windNum','windNum2']"/>
 				</div>
 			</div>
 			<div class="left">

+ 233 - 0
src/views/Decision/dual-pie-chart.vue

@@ -0,0 +1,233 @@
+<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: "dsah-pie",
+  componentName: "dsah-pie",
+  props: {
+    width: {
+      type: String,
+      default: "100%",
+    },
+    height: {
+      type: String,
+      default: "18.519vh",
+    },
+    // 内部饼图数据
+    innerData: {
+      type: Array,
+      default: () => [
+        {
+          value: 700,
+          unit: "个",
+          name: "行业大类1",
+        },
+        {
+          value: 679,
+          unit: "个",
+          name: "行业大类2",
+        },
+        {
+          value: 1548,
+          unit: "个",
+          name: "行业大类3",
+        },
+      ],
+    },
+    // 外部饼图数据
+    outerData: {
+      type: Array,
+      default: () => [
+        {
+          value: 310,
+          unit: "个",
+          name: "邮件营销",
+        },
+        {
+          value: 234,
+          unit: "个",
+          name: "联盟广告",
+        },
+        {
+          value: 335,
+          unit: "个",
+          name: "视频广告",
+        },
+        {
+          value: 548,
+          unit: "个",
+          name: "百度",
+        },
+        {
+          value: 351,
+          unit: "个",
+          name: "谷歌",
+        },
+      ],
+    },
+    // 颜色
+    color: {
+      type: String,
+      default: "green",
+    },
+    showLegend: {
+      type: Boolean,
+      default: true,
+    },
+  },
+  data() {
+    return {
+      id: "",
+      chart: null,
+    };
+  },
+  computed: {},
+  methods: {
+    initChart() {
+      let that = this;
+      let legend1 = this.innerData.map((v) => v.name);
+      let legend2 = this.outerData.map((v) => v.name);
+      let legendData = [...legend1, ...legend2];
+
+      let option = {
+        color: ["#1893ce", "#edbf00", "#039178", "#ae4802", "#ea8b00"],
+        tooltip: {
+          trigger: "item",
+          backgroundColor: "rgba(0,0,0,0.4)",
+          borderColor: partten.getColor("gray"),
+          textStyle: {
+            color: "#fff",
+            fontSize: util.vh(16),
+          },
+        },
+        grid: {
+          top: 32,
+          left: 60,
+          right: 40,
+          bottom: 24,
+        },
+        legend: {
+          show: this.showLegend,
+          orient: "vertical", //纵向图例
+          right: "16",
+          bottom: 32,
+          itemWidth: 15,
+          itemHeight: 15,
+          formatter: (name) => {
+            if (that.innerData.length) {
+              const item = that.innerData.filter((item) => item.name === name)[0];
+              return `{name|${name}:}{value| ${item.value}}`;
+            }
+          },
+          //icon: 'circle',
+          itemGap: 12, //图例item间距
+          textStyle: {
+            color: partten.getColor("gray"),
+            fontSize: util.vh(14),
+            rich: {
+              name: {
+                color: partten.getColor("gray"),
+                fontSize: 12,
+              },
+              value: {
+                color: partten.getColor("grayl"),
+                fontSize: 12,
+              },
+            },
+          },
+          data: legend1,
+        },
+        series: [
+          {
+            name: "",
+            type: "pie",
+            center: ["20%", "50%"],
+            radius: [0, "35%"],
+            itemStyle: {
+              normal: {},
+            },
+            label: {
+              normal: {
+                show: false,
+              },
+            },
+            labelLine: {
+              normal: {
+                show: false,
+              },
+            },
+            data: this.innerData,
+          },
+          {
+            name: "",
+            type: "pie",
+            center: ["20%", "50%"],
+            radius: ["55%", "95%"],
+            data: this.outerData,
+            labelLine: {
+              normal: {
+                // length: 40,
+                // length2: 120,
+                lineStyle: {
+                  color: "#fff",
+                  fontSize: util.vh(14),
+                },
+              },
+            },
+            itemStyle: {
+              normal: {
+                borderWidth: util.vh(14),
+                borderColor: "#071812",
+              },
+            },
+            label: {
+              normal: {
+                formatter: (params) => {
+                  return "{percent|" + params.percent.toFixed(2) + "%}";
+                },
+                padding: [0, 0, 0, 0],
+                rich: {
+                  color: "#ffffff" + "cc",
+                  percent: {
+                    fontSize: util.vh(14),
+                    color: "#ffffff" + "cc",
+                  },
+                },
+              },
+            },
+          },
+        ],
+      };
+
+      this.chart.setOption(option);
+    },
+  },
+  created() {
+    this.id = "pie-chart-" + util.newGUID();
+  },
+  mounted() {
+    this.$el.style.width = this.width;
+    this.$el.style.height = this.height;
+    this.chart = echarts.init(this.$el);
+    this.initChart();
+  },
+  updated() {
+    this.initChart();
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.chart {
+  width: 100%;
+  height: 100%;
+  display: block;
+  margin: auto;
+}
+</style>

File diff suppressed because it is too large
+ 352 - 0
src/views/Decision/zbtjfx.vue


+ 1 - 1
src/views/HealthControl/Health0.vue

@@ -67,7 +67,7 @@
               <div class="fan-code-label font-md gray-l" style="margin-left:100px">中频:</div>
               <div class="fan-code-value font-md green">{{stoptypemap && stoptypemap.top2type}}</div>
               <div class="fan-code-label font-md gray-l" style="margin-left:65px">低频:</div>
-              <div class="fan-code-value font-md green">{{stoptypemap && stoptypemap.top3type}}</div>
+              <div class="fan-code-value font-md green">{{stoptypemap && (stoptypemap.top3type == 'null'?'暂无数据':stoptypemap.top3type)}}</div>
             </div>
             <!-- <span class="svg-icon svg-icon-white svg-icon-md mg-l-16">
               <SvgIcon svgid="svg-wind-site"></SvgIcon>

+ 2 - 2
src/views/HealthControl/Health3.vue

@@ -46,7 +46,7 @@
             </div>
           </div>
           <div class="dashboard">
-            <dashboard-2 :height="'7.5vh'" :width="'115px'" :value="sourceMap.yfdl" />
+            <dashboard-2 :height="'7.5vh'" :width="'115px'" :value="sourceMap.yczqlmonth" />
             <div class="lengends">
               <div class="item">
                 <span class="label">本月发电量</span>
@@ -56,7 +56,7 @@
               <div class="item">
                 <span class="label">本月预测电量</span>
                 <span class="lengend green"></span>
-                <span class="value">{{sourceMap.yczqlmonth}}</span>
+                <span class="value">{{sourceMap.ycdl1month}}</span>
               </div>
             </div>
           </div>

+ 43 - 27
src/views/HealthControl/Health4.vue

@@ -10,9 +10,20 @@
           <div class="page-common-body-menu-border left bottom"></div>
           <div class="page-common-body-menu-border right top"></div>
           <div class="page-common-body-menu-border right bottom"></div>
-          <div class="page-common-body-menu-item" v-for="(menuData, index) of menuDatas" :key="index" @click="clickMenu(index)" :class="{ active: activeIndex == index }">
+          <div
+            class="page-common-body-menu-item"
+            v-for="(menuData, index) of menuDatas"
+            :key="index"
+            @click="clickMenu(index)"
+            :class="{ active: activeIndex == index }"
+          >
             <router-link :to="menuData.path">
-              <span class="svg-icon" :class="activeIndex == index ? 'svg-icon-yellow' : 'svg-icon-green'">
+              <span
+                class="svg-icon"
+                :class="
+                  activeIndex == index ? 'svg-icon-yellow' : 'svg-icon-green'
+                "
+              >
                 <SvgIcon :svgid="menuData.icon"></SvgIcon>
               </span>
             </router-link>
@@ -30,38 +41,43 @@ export default {
   components: { SvgIcon },
   data() {
     return {
-      activeIndex:0,
-      wpId:"",
-      wtId:"",
-      menuDatas: [{
-        icon: "svg-q实时监视",
-        path: "/health/health0",
-      },{
-        icon: "svg-q健康",
-        path: "/health/health10",
-      },{
-        icon: "svg-q趋势",
-        path: "/health/health4/healthLineChart2",
-      },{
-        icon: "svg-q曲线",
-        path: "/health/health4/healthLineChart",
-      }]
+      activeIndex: 0,
+      wpId: "",
+      wtId: "",
+      menuDatas: [
+        {
+          icon: "svg-q实时监视",
+          path: "/health/health0",
+        },
+        {
+          icon: "svg-q健康",
+          path: "/health/health10",
+        },
+        {
+          icon: "svg-q趋势",
+          path: "/health/health4/healthLineChart2",
+        },
+        {
+          icon: "svg-q曲线",
+          path: "/health/health4/healthLineChart",
+        },
+      ],
     };
   },
 
   created() {
-   this.wtId = this.$route.params.wtId;
-   this.wpId = this.$route.params.wpId;
-   this.menuDatas.forEach(ele=>{
-     ele.path += ('/'+this.wpId + '/'+this.wtId);
-   });
+    this.wtId = this.$route.params.wtId;
+    this.wpId = this.$route.params.wpId;
+    this.menuDatas.forEach((ele) => {
+      ele.path += "/" + this.wpId + "/" + this.wtId;
+    });
   },
-  
-  methods:{
-    clickMenu: function(index) {
+
+  methods: {
+    clickMenu: function (index) {
       this.activeIndex = index;
     },
-  }
+  },
 };
 </script>
 

+ 1 - 1
src/views/HealthControl/HealthTab1.vue

@@ -152,7 +152,7 @@ export default {
         wtId: item.wtid,
         recorddate: new Date(item.createdate).formatDate("yyyy-MM-dd"),
       };
-	  this.$refs.eport.getReport(item.wtid,recorddate);
+	  // this.$refs.eport.getReport(item.wtid,recorddate);
     },
     // 关闭健康报告
     closed() {

+ 1 - 1
src/views/HealthControl/HealthTab2.vue

@@ -45,7 +45,7 @@
       </panel>
     </div>
   </div>
-  <health-report :show="reportshow" :params="reportparams" @closed="closed" />
+  <health-report :show="reportshow" :params="reportparams" @closed="closed"/>
 </template>
 
 <script>

+ 74 - 55
src/views/HealthControl/assess/assessindex.vue

@@ -8,7 +8,9 @@
           :key="index"
           :class="{ active: cur == index }"
           @click="handleOpen(item, index)"
-        >{{ item }}</div>
+        >
+          {{ item }}
+        </div>
       </div>
     </div>
     <div class="query mg-b-8">
@@ -16,7 +18,12 @@
         <div class="query-item">
           <div class="lable">场站:</div>
           <div class="search-input">
-            <el-select v-model="value1" clearable placeholder="请选择" popper-class="select">
+            <el-select
+              v-model="value1"
+              clearable
+              placeholder="请选择"
+              popper-class="select"
+            >
               <el-option
                 v-for="item in ChangZhan"
                 :key="item.id"
@@ -74,18 +81,30 @@
         ref="curRef"
         :data="tableData"
         :pageSize="20"
-        :pageable=false
+        :pageable="false"
         height="73vh"
         v-loading="tableLoading"
         element-loading-text="拼命加载中.."
         element-loading-background="rgba(0, 0, 0, 0.8)"
       ></ComTable>
     </div>
-    <el-dialog :title="dialogTitle" v-model="dialogVisible" width="70%" top="10vh" custom-class="modal">
+    <el-dialog
+      :title="dialogTitle"
+      v-model="dialogVisible"
+      width="70%"
+      top="10vh"
+      custom-class="modal"
+    >
       <dayinfo :gridDatas="dialogData1" :chartDatas="dialogData2" />
     </el-dialog>
-    <el-dialog :title="'历史数据查询>>'+hisDialogTitle" v-model="hisDialogVisible" width="70%" top="10vh" custom-class="modal">
-      <gradeHistory :option="hisOption" ref="gradeHistory"/>
+    <el-dialog
+      :title="'历史数据查询>>' + hisDialogTitle"
+      v-model="hisDialogVisible"
+      width="70%"
+      top="10vh"
+      custom-class="modal"
+    >
+      <gradeHistory :option="hisOption" ref="gradeHistory" />
     </el-dialog>
   </div>
 </template>
@@ -104,12 +123,12 @@ export default {
       optionData: [
         "风机日信息量化评级管理",
         "风机月信息量化评级管理",
-        "风机年信息量化评级管理"
+        "风机年信息量化评级管理",
       ],
       dialogTitle: "日信息对比",
       dialogVisible: false,
       hisDialogVisible: false,
-      hisDialogTitle:"",
+      hisDialogTitle: "",
       ChangZhan: [],
       value1: "MHS_FDC",
       date: "",
@@ -119,7 +138,7 @@ export default {
       dataIds: new Set(),
       dialogData1: [],
       dialogData2: [],
-      hisOption:{},
+      hisOption: {},
       tableData: {
         column: [
           {
@@ -131,7 +150,7 @@ export default {
             template: () => {
               return "<input class='check curCheckBox checkItem' type='CheckBox'/>";
             },
-            click: function(event, data) {
+            click: function (event, data) {
               if (event.target.checked == false) {
                 that.dataIds.delete(data.id);
               }
@@ -142,7 +161,7 @@ export default {
                   event.target.checked = false;
                 }
               }
-            }
+            },
           },
           {
             name: "风机编号",
@@ -150,7 +169,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "等級",
@@ -158,7 +177,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
 
           {
@@ -167,7 +186,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "发电量(kWh)",
@@ -175,7 +194,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "理论发电量(kWh)",
@@ -183,7 +202,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "平均风速(m/s)",
@@ -191,7 +210,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "平均功率(kW)",
@@ -199,7 +218,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "故障损失电量(kWh)",
@@ -207,7 +226,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "限电损失电量(kWh)",
@@ -215,7 +234,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "维护损失电量(kWh)",
@@ -223,7 +242,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "性能损失电量(kWh)",
@@ -231,7 +250,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "利用小时数(h)",
@@ -239,7 +258,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "拟合优度(%)",
@@ -247,7 +266,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "设备可利用率(%)",
@@ -255,7 +274,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "等效可用系数(%)",
@@ -263,7 +282,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "有效风时数(h)",
@@ -271,7 +290,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "平均切入风速(m/s)",
@@ -279,7 +298,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "静风频率(%)",
@@ -287,7 +306,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "功率一致性系数(%)",
@@ -295,7 +314,7 @@ export default {
             is_num: false,
             is_light: false,
             sortable: true,
-            id: "id"
+            id: "id",
           },
           {
             name: "操作",
@@ -307,8 +326,8 @@ export default {
             template: () => {
               return "<el-button type='text' style='cursor: pointer;' value='xq'>详情</el-button>&nbsp;<el-button type='text' style='cursor: pointer;' value='ls'>历史</el-button>";
             },
-            click: function(event, data) {
-              if('xq' == event.target.getAttribute("value")){
+            click: function (event, data) {
+              if ("xq" == event.target.getAttribute("value")) {
                 that.dialogVisible = true;
                 that.dialogData1 = [data];
                 const service1 = {
@@ -323,8 +342,8 @@ export default {
                     data["yeardxkyxs"],
                     data["yearyxfss"],
                     data["yearfs"],
-                    data["yearjfpl"]
-                  ]
+                    data["yearjfpl"],
+                  ],
                 };
                 const chartData = [
                   {
@@ -338,14 +357,14 @@ export default {
                       "等效可利用系数",
                       "有效风时数",
                       "平均风速",
-                      "静风频率"
+                      "静风频率",
                     ],
-                    data: [service1]
-                  }
+                    data: [service1],
+                  },
                 ];
                 that.dialogData2 = chartData;
               }
-              if('ls' == event.target.getAttribute("value")){
+              if ("ls" == event.target.getAttribute("value")) {
                 that.hisOption["shows"] = that.shows;
                 that.hisOption["date"] = that.date;
                 that.hisOption["windturbineid"] = data.windturbineid;
@@ -353,12 +372,12 @@ export default {
                 that.hisDialogVisible = true;
                 that.$refs.gradeHistory.getTable();
               }
-            }
-          }
+            },
+          },
         ],
-        data: []
+        data: [],
       },
-      tableId: ""
+      tableId: "",
     };
   },
   created() {
@@ -377,7 +396,7 @@ export default {
       let subUrl = "";
       const data = {
         isAsc: "asc",
-        wpId: this.value1
+        wpId: this.value1,
       };
       if ("d" == this.shows) {
         subUrl = "/benchmarking/gadaylistByPage";
@@ -414,7 +433,7 @@ export default {
         },
         Error(res) {
           console.log("tag", res);
-        }
+        },
       });
     },
     //   tab
@@ -449,7 +468,7 @@ export default {
         success(res) {
           that.ChangZhan = res.data;
           that.value1 = res.data[0].id;
-        }
+        },
       });
     },
     // 查询
@@ -465,7 +484,7 @@ export default {
         const tmpArr = Array.from(that.dataIds);
         const data = {
           gaid1: tmpArr[0],
-          gaid2: tmpArr[1]
+          gaid2: tmpArr[1],
         };
 
         that.API.requestData({
@@ -474,8 +493,8 @@ export default {
           data: data,
           success(res) {
             that.dialogData1 = [res.data.gaid1, res.data.gaid2];
-			console.log(that.dialogData1)
-          }
+            console.log(that.dialogData1);
+          },
         });
         that.API.requestData({
           method: "GET",
@@ -496,10 +515,10 @@ export default {
                   "等效可利用系数",
                   "有效风时数",
                   "平均风速",
-                  "静风频率"
+                  "静风频率",
                 ],
-                data: []
-              }
+                data: [],
+              },
             ];
             if (data1) {
               chartData[0].data.push(that.getChartData(data1));
@@ -508,7 +527,7 @@ export default {
               chartData[0].data.push(that.getChartData(data2));
             }
             that.dialogData2 = chartData;
-          }
+          },
         });
       }
       this.clearCheckBox();
@@ -516,7 +535,7 @@ export default {
     getChartData(resData) {
       const chartData = {};
       const rowMap = {};
-      resData.forEach(function(rowData, index) {
+      resData.forEach(function (rowData, index) {
         rowMap[rowData["name"]] = rowData["data1"];
       });
       chartData["name"] = resData[resData.length - 1]["name"];
@@ -550,8 +569,8 @@ export default {
       if (vl == 2) {
         return year + "";
       }
-    }
-  }
+    },
+  },
 };
 </script>
 <style scoped>

+ 588 - 0
src/views/HealthControl/assess/selfEvaluate.vue

@@ -0,0 +1,588 @@
+<template>
+  <div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div
+          class="newspan"
+          v-for="(item, index) of optionData"
+          :key="index"
+          :class="{ active: cur == index }"
+          @click="handleOpen(item, index)"
+        >
+          {{ item }}
+        </div>
+      </div>
+    </div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div class="query-item">
+          <div class="lable">模型名称:</div>
+          <div class="search-input">
+            <el-select
+              v-model="modelName"
+              clearable
+              placeholder="请选择"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in modelNameArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              ></el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">场站:</div>
+          <div class="search-input">
+            <el-select
+              v-model="value1"
+              clearable
+              placeholder="请选择"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in ChangZhan"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              ></el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item" v-if="shows == 'd'">
+          <div class="lable">日期:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="date"
+              type="date"
+              placeholder="选择日期"
+              popper-class="date-select"
+              value-format="YYYY-MM-DD"
+            ></el-date-picker>
+          </div>
+        </div>
+        <div class="query-item" v-if="shows == 'm'">
+          <div class="lable">年月:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="date"
+              type="month"
+              placeholder="选择年月"
+              popper-class="date-select"
+              value-format="YYYY-MM"
+            ></el-date-picker>
+          </div>
+        </div>
+        <div class="query-item" v-if="shows == 'y'">
+          <div class="lable">年:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="date"
+              type="year"
+              placeholder="选择年"
+              popper-class="date-select"
+              value-format="YYYY"
+            ></el-date-picker>
+          </div>
+        </div>
+        <div class="query-actions">
+          <button class="btn green" @click="handleSubmit">查询</button>
+          <button class="btn green" @click="contrast">对比</button>
+        </div>
+      </div>
+    </div>
+    <div class="table-box curTableBox">
+      <div class="title">{{ showTitle }}</div>
+      <ComTable
+        class="curTableStyle"
+        ref="curRef"
+        :data="tableData"
+        :pageSize="20"
+        :pageable="false"
+        height="70vh"
+        v-loading="tableLoading"
+        element-loading-text="拼命加载中.."
+        element-loading-background="rgba(0, 0, 0, 0.8)"
+      ></ComTable>
+    </div>
+    <el-dialog
+      :title="dialogTitle"
+      v-model="dialogVisible"
+      width="70%"
+      top="10vh"
+      custom-class="modal"
+    >
+      <dayinfo :gridDatas="dialogData1" :chartDatas="dialogData2" />
+    </el-dialog>
+    <el-dialog
+      :title="'历史数据查询>>' + hisDialogTitle"
+      v-model="hisDialogVisible"
+      width="70%"
+      top="10vh"
+      custom-class="modal"
+    >
+      <gradeHistory :option="hisOption" ref="gradeHistory" />
+    </el-dialog>
+  </div>
+</template>
+<script>
+import ComTable from "@/components/coms/table/table-unpage.vue";
+import Dayinfo from "../dayinfo.vue";
+import GradeHistory from "../gradeHistory.vue";
+
+export default {
+  name: "gradeassessment",
+  components: { ComTable, Dayinfo, GradeHistory },
+  data() {
+    let that = this;
+    return {
+      cur: 0,
+      optionData: [
+        "风机日信息量化评级管理",
+        "风机月信息量化评级管理",
+        "风机年信息量化评级管理",
+      ],
+      dialogTitle: "日信息对比",
+      dialogVisible: false,
+      hisDialogVisible: false,
+      hisDialogTitle: "",
+      ChangZhan: [],
+      modelNameArray: [],
+      value1: "MHS_FDC",
+      modelName: "",
+      date: "",
+      shows: "d",
+      showTitle: "风机日信息量化评级管理",
+      tableLoading: true,
+      dataIds: new Set(),
+      dialogData1: [],
+      dialogData2: [],
+      hisOption: {},
+      tableData: {},
+      tableId: "",
+    };
+  },
+  created() {
+    this.date = this.getDate(0);
+
+    let p1 = new Promise((res, rej) => {
+      this.ChangZhanVal(res);
+    });
+    let p2 = new Promise((res, rej) => {
+      this.getModelNameArray(res);
+    });
+
+    Promise.all([p1, p2]).then(() => {
+      this.getTable(this.date);
+    });
+  },
+  methods: {
+    clearCheckBox() {
+      this.$refs.curRef.clearCheckBox();
+      this.dataIds = new Set();
+    },
+    // 获取表格数据
+    getTable(date) {
+      let that = this;
+      let subUrl = "";
+      const data = {
+        tid: that.modelName,
+        wpid: that.value1,
+      };
+      if ("d" == that.shows) {
+        subUrl = "evaluation/dayilyList";
+        data["date"] = date;
+      }
+      if ("m" == that.shows) {
+        subUrl = "evaluation/monthlyList";
+        const dateStr = date.split("-");
+        if (dateStr.length > 1) {
+          data["date"] = dateStr[0] + "-" + dateStr[1];
+        }
+      }
+      if ("y" == that.shows) {
+        subUrl = "evaluation/yearlyList";
+        data["date"] = date.split("-")[0];
+      }
+      that.tableLoading = true;
+      that.API.requestData({
+        timeout: 60000,
+        method: "GET",
+        baseURL: "http://10.155.32.4:8034/",
+        subUrl: subUrl,
+        data: data,
+        success(res) {
+          that.tableLoading = false;
+          if (res.data.length) {
+            const tableTargetName = {
+              target001: "平均切入风速",
+              target002: "平均达到额定风速",
+              target003: "平均大风切出风速",
+              target004: "功率一致性系数",
+              target005: "曲线偏差率",
+              target006: "对风偏差率",
+              target007: "拟合优度",
+              target008: "性能损失率",
+              target009: "利用小时数",
+              target010: "设备可利用率",
+              target011: "等效可利用系数",
+              target012: "故障损失率",
+              target013: "平均无故障间隔时间",
+              target014: "平均故障间隔时间",
+              target015: "平均风速",
+              target016: "有效风时数",
+              target017: "静风频率",
+            };
+
+            let tableData = {
+              column: [
+                {
+                  name: "",
+                  field: "fj",
+                  is_num: false,
+                  is_light: false,
+                  sortable: false,
+                  template: () => {
+                    return "<input class='check curCheckBox checkItem' type='CheckBox'/>";
+                  },
+                  click(event, data) {
+                    if (event.target.checked == false) {
+                      that.dataIds.delete(data.wtid);
+                    }
+                    if (event.target.checked) {
+                      if (that.dataIds.size < 2) {
+                        that.dataIds.add(data.wtid);
+                      } else {
+                        event.target.checked = false;
+                      }
+                    }
+                  },
+                },
+                {
+                  name: "风机",
+                  field: "wtid",
+                  is_num: false,
+                  is_light: false,
+                  sortable: true,
+                },
+                {
+                  name: "日期",
+                  field: "date",
+                  is_num: false,
+                  is_light: false,
+                  sortable: true,
+                },
+                {
+                  name: "评级",
+                  field: "grade",
+                  is_num: false,
+                  is_light: false,
+                  sortable: true,
+                  width: "100px",
+                },
+                {
+                  name: "排名",
+                  field: "ranking",
+                  is_num: true,
+                  is_light: false,
+                  sortable: true,
+                },
+              ],
+              data: [],
+            };
+
+            res.data.forEach((ele) => {
+              ele.date = new Date(ele.date).formatDate("yyyy-MM-dd hh:mm:ss");
+              for (let key in ele) {
+                if (key.indexOf("target") !== -1) {
+                  ele["copyValue"] = ele[key]["value"];
+                }
+              }
+            });
+
+            const itemTemp = res.data[0];
+
+            for (let key in itemTemp) {
+              if (key.indexOf("target") !== -1) {
+                tableData.column.push({
+                  name: tableTargetName[key],
+                  field: "copyValue",
+                  is_num: true,
+                  is_light: false,
+                  sortable: true,
+                });
+              }
+            }
+            tableData.data = res.data;
+            that.tableData = tableData;
+          }
+        },
+        Error(res) {
+          console.log("tag", res);
+        },
+      });
+    },
+    //   tab
+    handleOpen(vl, index) {
+      this.$nextTick(() => {
+        this.cur = index;
+        this.showTitle = vl;
+        if (index == 0) {
+          this.date = this.getDate(0);
+          this.shows = "d";
+          this.dialogTitle = "日信息对比";
+        }
+        if (index == 1) {
+          this.date = this.getDate(1);
+          this.shows = "m";
+          this.dialogTitle = "月信息对比";
+        }
+        if (index == 2) {
+          this.date = this.getDate(2);
+          this.shows = "y";
+          this.dialogTitle = "年信息对比";
+        }
+      });
+    },
+    // 场站
+    ChangZhanVal(r) {
+      var that = this;
+      that.API.requestData({
+        method: "GET",
+        baseURL: "http://10.155.32.4:9001/",
+        subUrl: "benchmarking/wplist",
+        success(res) {
+          that.ChangZhan = res.data;
+          that.value1 = res.data[0].id;
+          r("OK");
+        },
+      });
+    },
+
+    // 模型名称
+    getModelNameArray(r) {
+      var that = this;
+      that.API.requestData({
+        method: "GET",
+        baseURL: "http://10.155.32.4:8034/",
+        subUrl: "evaluation/modelMainList",
+        data: {
+          name: "",
+        },
+        success(res) {
+          that.modelNameArray = res.data;
+          that.modelName = res.data[0].id;
+          r("OK");
+        },
+      });
+    },
+
+    // 查询
+    handleSubmit() {
+      this.clearCheckBox();
+      this.getTable(this.date);
+    },
+    // 日信息对比
+    contrast() {
+      var that = this;
+      if (that.dataIds.size == 2) {
+        that.dialogVisible = true;
+        const tmpArr = Array.from(that.dataIds);
+        const data = {
+          gaid1: tmpArr[0],
+          gaid2: tmpArr[1],
+        };
+
+        that.API.requestData({
+          method: "GET",
+          subUrl: "/benchmarking/wtinfo",
+          data: data,
+          success(res) {
+            that.dialogData1 = [res.data.gaid1, res.data.gaid2];
+            console.log(that.dialogData1);
+          },
+        });
+        that.API.requestData({
+          method: "GET",
+          subUrl: "/benchmarking/wtchart",
+          data: data,
+          success(res) {
+            const data1 = res.data.gaid1;
+            const data2 = res.data.gaid2;
+            const chartData = [
+              {
+                indicator: [
+                  "平均切入风速",
+                  "性能损失电量",
+                  "拟合优度",
+                  "功率一致性系数",
+                  "利用小时",
+                  "设备可利用率",
+                  "等效可利用系数",
+                  "有效风时数",
+                  "平均风速",
+                  "静风频率",
+                ],
+                data: [],
+              },
+            ];
+            if (data1) {
+              chartData[0].data.push(that.getChartData(data1));
+            }
+            if (data2) {
+              chartData[0].data.push(that.getChartData(data2));
+            }
+            that.dialogData2 = chartData;
+          },
+        });
+      }
+      this.clearCheckBox();
+    },
+    getChartData(resData) {
+      const chartData = {};
+      const rowMap = {};
+      resData.forEach(function (rowData, index) {
+        rowMap[rowData["name"]] = rowData["data1"];
+      });
+      chartData["name"] = resData[resData.length - 1]["name"];
+      chartData["value"] = [];
+      chartData["value"].push(rowMap["平均切入风速"]);
+      chartData["value"].push(rowMap["性能损失电量"]);
+      chartData["value"].push(rowMap["拟合优度"]);
+      chartData["value"].push(rowMap["功率一致性系数"]);
+      chartData["value"].push(rowMap["利用小时"]);
+      chartData["value"].push(rowMap["设备可利用率"]);
+      chartData["value"].push(rowMap["等效可利用系数"]);
+      chartData["value"].push(rowMap["有效风时数"]);
+      chartData["value"].push(rowMap["平均风速"]);
+      chartData["value"].push(rowMap["静风频率"]);
+      return chartData;
+    },
+    // 获取日期
+    getDate(vl) {
+      var date = new Date();
+      var year = date.getFullYear(),
+        month = date.getMonth() + 1,
+        day = date.getDate() - 1;
+      month >= 1 && month <= 9 ? (month = "0" + month) : "";
+      day >= 0 && day <= 9 ? (day = "0" + day) : "";
+      if (vl == 0) {
+        return year + "-" + month + "-" + day;
+      }
+      if (vl == 1) {
+        return year + "-" + month;
+      }
+      if (vl == 2) {
+        return year + "";
+      }
+    },
+  },
+};
+</script>
+<style scoped>
+.newsDiv {
+  color: rgba(255, 255, 255, 0.75);
+  background-color: rgba(255, 255, 255, 0.1);
+  margin-bottom: 8px;
+  line-height: 3.4259vh;
+  padding: 0 15px;
+}
+.newspan {
+  line-height: 30px;
+  cursor: pointer;
+  padding: 0 1vw;
+  margin: 0 2px;
+  color: #9ca5a8;
+  transition: color 0.2s ease-in-out;
+  position: relative;
+}
+.newspan:hover {
+  background: linear-gradient(
+    to top,
+    rgba(5, 187, 76, 0.5),
+    rgba(5, 187, 76, 0)
+  );
+  color: white;
+  position: relative;
+}
+.newspan:hover::after {
+  content: "";
+  position: absolute;
+  width: 100%;
+  height: 0.463vh;
+  border: 0.093vh solid #05bb4c;
+  border-top: 0;
+  left: 0;
+  bottom: 0;
+  box-sizing: border-box;
+}
+.active {
+  background: linear-gradient(
+    to top,
+    rgba(5, 187, 76, 0.5),
+    rgba(5, 187, 76, 0)
+  );
+  color: white;
+  position: relative;
+}
+.active::after {
+  content: "";
+  position: absolute;
+  width: 100%;
+  height: 0.463vh;
+  border: 0.093vh solid #05bb4c;
+  border-top: 0;
+  left: 0;
+  bottom: 0;
+  box-sizing: border-box;
+}
+.title {
+  background: rgba(255, 255, 255, 0.1);
+  margin-bottom: 8px;
+  padding: 1vh;
+}
+</style>
+<style lang="less">
+.decision-page-2 {
+  .content .project-table {
+    tbody {
+      height: calc(100vh - 24.5vh);
+    }
+  }
+  .project-table {
+    overflow: auto;
+    tbody {
+      height: 239px;
+    }
+
+    th,
+    td {
+      color: #b2bdc0;
+
+      &:nth-child(1) {
+        width: 50px;
+      }
+
+      &:nth-child(2) {
+        width: 50px;
+      }
+    }
+  }
+
+  .action {
+    text-decoration: underline;
+    color: @green;
+    cursor: pointer;
+  }
+}
+</style>
+<style lang="less">
+.curTableBox {
+  width: 100%;
+  .curTableStyle {
+    overflow-x: scroll;
+  }
+}
+</style>

File diff suppressed because it is too large
+ 32 - 21
src/views/HealthControl/gradeHistory.vue


+ 1 - 1
src/views/MalfunctionWarning/components/records.vue

@@ -289,7 +289,7 @@ export default {
       that.resultList = [];
       let data = that.showResultList[that.current];
       let dataList = [];
-      data.coordinate.forEach((item, index) => {
+      data?.coordinate.forEach((item, index) => {
         let idList = [];
         item.value.forEach((val) => {
           let datas = {};

+ 1 - 0
src/views/NewPages/alarm-center-1.vue

@@ -297,6 +297,7 @@ export default {
   methods: {
     //对比
     showChart(column) {
+		console.log(column.column.name)
       let that = this;
       that.dialogTitle = column.column.name;
       that.wtId = column.row.name;

+ 33 - 23
src/views/NewPages/area-line-chart.vue

@@ -201,7 +201,7 @@ export default {
     units: {
       type: Array,
       // default: () => ["健康趋势", "风机健康状态数量"],
-       default: () => ["(实时功率)", "(风速)"],
+      default: () => ["(实时功率)", "(风速)"],
     },
     // 显示 legend
     showLegend: {
@@ -211,24 +211,31 @@ export default {
     // 颜色
     color: {
       type: Array,
-      default: () => ["#323E6F", "#1DA0D7", "#02BB4C", "#DB5520", "#EDB32F", "#EDEB2F"],
+      default: () => [
+        "#323E6F",
+        "#1DA0D7",
+        "#02BB4C",
+        "#DB5520",
+        "#EDB32F",
+        "#EDEB2F",
+      ],
     },
   },
-  data () {
+  data() {
     return {
       id: "",
       chart: null,
     };
   },
   computed: {
-    legend () {
+    legend() {
       let data = [];
       this.lineData.forEach((value, index) => {
         data.push(value.text);
       });
       return data;
     },
-    xAxisData () {
+    xAxisData() {
       let data = [];
       if (this.lineData.length > 0)
         this.lineData[0].value.forEach((value, index) => {
@@ -236,7 +243,7 @@ export default {
         });
       return data;
     },
-    areaChartData () {
+    areaChartData() {
       let data = [];
       for (var i = 0; i < this.areaData.length; i++) {
         let item = this.areaData[i];
@@ -254,7 +261,7 @@ export default {
       }
       return data;
     },
-    areaMax () {
+    areaMax() {
       let max = 0;
       this.areaData.forEach((value) => {
         if (max < value.end) max = value.end;
@@ -263,7 +270,7 @@ export default {
     },
   },
   methods: {
-    renderItem (params, api) {
+    renderItem(params, api) {
       var start = api.coord([api.value(0)]);
       var end = api.coord([api.value(1)]);
       var height = api.size([0, 1])[1];
@@ -292,9 +299,7 @@ export default {
         }
       );
     },
-    initChart () {
-      console.log("units:",this.units)
-      console.log("areaData:",this.areaData)
+    initChart() {
       let that = this;
       let chart = echarts.init(this.$el);
 
@@ -336,15 +341,14 @@ export default {
         xAxis: [
           {
             type: "category",
-             name: this.units[2],
+            name: this.units[2],
             axisLabel: {
-              
               color: partten.getColor("gray"),
             },
             // axisLine: {
             //   show: false,
             // },
-               axisLine: {
+            axisLine: {
               type: "dashed",
               lineStyle: {
                 color: partten.getColor("gray"),
@@ -368,9 +372,10 @@ export default {
             },
           },
         ],
-        yAxis: [{
-           type: "value",
-        },
+        yAxis: [
+          {
+            type: "value",
+          },
           {
             type: "value",
             name: this.units[0],
@@ -400,6 +405,12 @@ export default {
             data: [this.areaData[0].name],
             axisLabel: { show: false },
           },
+          {
+            name: "风速",
+            type: "value",
+            min: 0,
+            max: 30,
+          },
         ],
         series: [],
       };
@@ -407,13 +418,12 @@ export default {
       // line data
       if (this.lineData.length > 0) {
         this.lineData.forEach((value, index) => {
-          console.log('valueTEXT:',value)
           option.series.push({
             name: value.text,
             type: "line",
             data: value.value,
             smooth: true, //平滑展示
-            yAxisIndex: 0,
+            yAxisIndex: value.yAxisIndex,
             // lineStyle: {
             //   color: partten.getColor("green"),
             // },
@@ -456,23 +466,23 @@ export default {
   emits: {
     areaClick: null,
   },
-  created () {
+  created() {
     this.id = "pie-chart-" + util.newGUID();
   },
-  mounted () {
+  mounted() {
     this.$nextTick(() => {
       this.$el.style.width = this.width;
       this.$el.style.height = this.height;
       let that = this;
       let chart = this.initChart();
-      chart.on("click", function(e, p) {
+      chart.on("click", function (e, p) {
         if (e.seriesType == "custom") {
           that.$emit("areaClick", { data: e.data.exData });
         }
       });
     });
   },
-  updated () {
+  updated() {
     this.$nextTick(() => {
       this.initChart();
     });

+ 25 - 9
src/views/NewPages/dj1.vue

@@ -726,6 +726,7 @@
 
 <script>
 import AreaLineChart from "./area-line-chart.vue";
+// import AreaLineChart from "../../components/chart/line/multiple-y-line-chart-normal.vue";
 // import AreaLineChart from "../../components/chart/combination/area-line-chart.vue";
 // import MultipleBarLineChart1 from "./multiple-bar-line-chart.vue";
 import MultipleBarLineChart from "../../components/chart/combination/multiple-bar-line-chart.vue";
@@ -1070,23 +1071,21 @@ export default {
           let lostChartData = [
             {
               text: "实发功率",
-              value: [
-                {
-                  text: "1",
-                  value: 1,
-                },
-              ],
+              yAxisIndex: 0,
+              value: [],
             },
             {
               text: "保证功率",
+              yAxisIndex: 0,
               value: [],
             },
             {
               text: "风速",
+              yAxisIndex: 3,
               value: [],
             },
           ];
-          const lostChartUnit = ["实发功率", "保证功率", "风速", "状态"];
+          const lostChartUnit = ["实发功率", "保证功率", "风速"];
 
           keyArray.forEach((key, keyIndex) => {
             res.data.forEach((ele) => {
@@ -1416,13 +1415,30 @@ export default {
           };
 
           if (res.data.data) {
-			  mgtData.indicator = ["北", "北北西", "北西", "西北西", "西", "西南西", "南西", "南南西", "南", "南南东", "东南", "东南东","东", "东北东", "北东", "北北东"]
+            mgtData.indicator = [
+              "北",
+              "北北西",
+              "北西",
+              "西北西",
+              "西",
+              "西南西",
+              "南西",
+              "南南西",
+              "南",
+              "南南东",
+              "东南",
+              "东南东",
+              "东",
+              "东北东",
+              "北东",
+              "北北东",
+            ];
             res.data.data.forEach((ele) => {
               // mgtData.indicator.push(ele.name);
               mgtData.data[0].value.push(ele.data1);
             });
           }
-			mgtData.data[0].value.reverse();
+          mgtData.data[0].value.reverse();
           that[dataKey] = mgtData;
         },
       });

+ 19 - 18
src/views/NewPages/multiple-y-line-chart-normal.vue

@@ -458,23 +458,24 @@ export default {
             data: this.xdata,
           },
         ],
-        yAxis: {
-          type: "value",
-          axisLabel: {
-            formatter: "{value}",
-            fontSize: 14,
-          },
-          axisLine: {
-            show: false,
-          },
-          splitLine: {
-            show: true,
-            lineStyle: {
-              color: "#606769",
-              type: "dashed",
-            },
-          },
-        },
+        // yAxis: {
+        //   type: "value",
+        //   axisLabel: {
+        //     formatter: "{value}",
+        //     fontSize: 14,
+        //   },
+        //   axisLine: {
+        //     show: false,
+        //   },
+        //   splitLine: {
+        //     show: true,
+        //     lineStyle: {
+        //       color: "#606769",
+        //       type: "dashed",
+        //     },
+        //   },
+        // },
+        yAxis: this.yAxis,
         series: this.series,
       };
     },
@@ -495,7 +496,7 @@ export default {
       this.initChart();
     });
   },
-  updated() {
+  beforeUpdate() {
     this.$nextTick(() => {
       this.initChart();
     });

+ 0 - 341
src/views/Others/gz.vue

@@ -1,341 +0,0 @@
-<template>
-	<el-scrollbar :height="height" v-if="gzCgd == 1">
-		<div class="query mg-b-8">
-			<div class="query-items">
-				<div class="query-item">
-					<div class="lable">部件:</div>
-					<div class="search-input">
-						<el-select v-model="value1" clearable placeholder="请选择" popper-class="select" multiple>
-							<el-option v-for="item in BuJian" :key="item.value" :value="item.value" :label="item.label">
-							</el-option>
-						</el-select>
-					</div>
-				</div>
-				<div class="query-item">
-					<div class="lable">停机类型:</div>
-					<div class="search-input">
-						<el-select v-model="value2" multiple placeholder="请选择" popper-class="select">
-							<el-option v-for="item in TingJiLeiXing" :key="item.value" :value="item.value"
-								:label="item.label">
-							</el-option>
-						</el-select>
-					</div>
-				</div>
-				<div class="query-item">
-					<div class="lable">时间:</div>
-					<div class="search-input">
-						<el-date-picker v-model="value3" type="datetimerange" range-separator="至"
-							start-placeholder="开始日期" end-placeholder="结束日期">
-						</el-date-picker>
-					</div>
-				</div>
-				<div class="query-actions">
-					<button class="btn" @click="query()">查询</button>
-					<button class="btn" @click="addEdit()">新增</button>
-				</div>
-			</div>
-		</div>
-		<el-row :type="'flex'" class="content">
-			<el-col :span="24">
-				<ComTable :data="tableData" :pageSize="pageSize" @onPagging="onChangePage" height="84vh" v-loading="tableLoading"
-					element-loading-text="拼命加载中" element-loading-background="rgba(0, 0, 0, 0.8)"></ComTable>
-			</el-col>
-		</el-row>
-		<el-dialog :title="isvisiableType==1?'新增':'编辑'" v-model="isvisiable" width="45%" top="15vh" custom-class="modal"
-			:close-on-click-modal="false" :before-close="onClickDialogClose">
-			<!-- 这里是新增或编辑 -->
-			<el-row type="flex">
-				<el-col :span="12">
-					字段1:
-					<el-input placeholder="请选择日期" v-model="myInput1" :value="myInput1">
-					</el-input>
-				</el-col>
-				<el-col :span="12">
-					字段2:
-					<el-input placeholder="请选择日期" v-model="myInput2" :value="myInput2">
-					</el-input>
-				</el-col>
-			</el-row>
-			<el-row type="flex">
-				<el-col :span="12">
-					字段3:
-					<el-input placeholder="请选择日期" v-model="myInput3" :value="myInput3">
-					</el-input>
-				</el-col>
-				<el-col :span="12">
-					字段4:
-					<el-input placeholder="请选择日期" v-model="myInput4" :value="myInput4">
-					</el-input>
-				</el-col>
-			</el-row>
-			<el-row type="flex" justify="end">
-				<div class="query-actions" style="margin-top: 15px;">
-					<button class="btn" @click="onClickDialogClose">取消</button>
-					<button class="btn" @click="dialogSave()">保存</button>
-				</div>
-			</el-row>
-		</el-dialog>
-	</el-scrollbar>
-	<el-scrollbar :height="height" v-else>
-		<Cgd :data='gzCgdData' @gzCgdClick='gzCgdClick'/>
-	</el-scrollbar>
-</template>
-
-<script>
-	import ComTable from "@/components/coms/table/table.vue";
-	import Cgd from "./gzCgd.vue";
-	export default {
-		components: {
-			ComTable,
-			Cgd
-		},
-		data() {
-			const that = this;
-			return {
-				pageIndex: 1,
-				            pageSize: 20,
-				gzCgd:1,//传感点组件隐藏或显示
-				gzCgdData:'',//传感点参数
-				BuJian: [{
-					label: '部件1',
-					value: '1'
-				}, {
-					label: '部件2',
-					value: '2'
-				}],
-				TingJiLeiXing: [{
-					label: '类型1',
-					value: '1'
-				}, {
-					label: '类型2',
-					value: '2'
-				}],
-				value1: '',
-				value2: '',
-				value3: [],
-				myInput1: "",
-				myInput2: "",
-				myInput3: "",
-				myInput4: "",
-				isvisiable: false,
-				isvisiableType: 1, //新增为1,编辑为2
-				tableData: {
-					column: [{
-							name: "序号",
-							field: "index",
-							is_light: false,
-						},
-						{
-							name: "字段1",
-							field: "myInput1",
-							is_light: false,
-						},
-						{
-							name: "字段2",
-							field: "myInput2",
-							is_light: false,
-						},
-						{
-							name: "字段3",
-							field: "myInput3",
-							is_light: false,
-						},
-						{
-							name: "字段4",
-							field: "myInput4",
-							is_light: false,
-						},
-						{
-							name: "操作",
-							is_light: false,
-							width: 100,
-							template: () => {
-								return (
-									"<el-button type='text' style='cursor: pointer;' value='edit'>编辑</el-button>&nbsp" +
-									"<el-button type='text' style='cursor: pointer;' value='delete'>删除</el-button>&nbsp" +
-									"<el-button type='text' style='cursor: pointer;' value='config'>传感点</el-button>&nbsp"
-								);
-							},
-							click(e, row) {
-								that.onClickOption(e, row);
-							},
-						},
-					],
-					data: [{
-							index: 1,
-							myInput1: "MG01-01",
-							myInput2: "0.1000",
-							myInput3: "0.1000",
-							myInput4: "0.1000",
-							value: '这里放隐藏值1',
-							is_light: false,
-						},
-						{
-							index: 2,
-							myInput1: "MG01-02",
-							myInput2: "2",
-							myInput3: "23",
-							myInput4: "24",
-							value: '这里放隐藏值2',
-							is_light: false,
-						},
-					],
-				}
-			};
-		},
-		props: {
-			height: {
-				type: String
-			},
-		},
-		methods: {
-			getTable() {
-				let that = this;
-				this.tableLoading = true;
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://10.155.32.4:9001/",
-					subUrl: "benchmarking/wplist",
-					data: {
-						wpId: that.stationId,
-						startTs: that.startDate,
-						endTs: that.endDate,
-						pageNum: that.pageIndex,
-						pageSize: that.pageSize,
-					},
-					success(res) {
-						var dataTab = [];
-						if (res.data) {
-							res.data.list.forEach(item => {
-								dataTab.push({ //表格
-									recodedata: that.formatTime(item.recodedata),
-									region: item.region,
-									weather: item.weather,
-									maximumtem: item.maximumtem,
-									minimumtem: item.minimumtem,
-									sunrise: item.sunrise,
-									sunset: item.sunset,
-									weather1: item.weather1,
-									weather2: item.weather2,
-									temperature1: item.temperature1,
-									temperature2: item.temperature2,
-									realfeel1: item.realfeel1,
-									realfeel2: item.realfeel2,
-									precipitation1: item.precipitation1,
-									precipitation2: item.precipitation2,
-									winddirection1: item.winddirection1,
-									winddirection2: item.winddirection2,
-									speed1: item.speed1,
-									speed2: item.speed2
-								})
-							})
-							that.tableData.data = dataTab;
-							that.tableData.total = res.data.total;
-						} else {
-							that.tableData.data = [];
-							that.tableData.total = 0;
-						}
-						that.tableLoading = false;
-					},
-				});
-			},
-			onChangePage(params) {
-				this.pageIndex = params.pageIndex;
-				this.pageSize = params.pageSize;
-				this.getTable();
-			},
-			startAjax() {
-				// BuJian
-				// TingJiLeiXing
-				var that = this;
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://10.155.32.4:9001/",
-					subUrl: "benchmarking/wplist",
-					success(res) {
-						that.ChangZhan = res.data;
-					},
-				});
-			},
-			query() {
-				var that = this;
-				console.log(that.value1)
-				console.log(that.value2)
-				console.log(that.value3)
-				if(that.value3){
-					that.value3[0].valueOf()//开始时间
-					that.value3[1].valueOf()//结束时间
-				}
-				
-				// that.API.requestData({
-				// 	method: "GET",
-				// 	baseURL: "http://10.155.32.4:9001/",
-				// 	subUrl: "benchmarking/wplist",
-				// 	success(res) {
-				// 		that.ChangZhan = res.data;
-				// 	},
-				// });
-			},
-			addEdit() {
-				this.isvisiableType = 1;
-				this.myInput1 = '';
-				this.myInput2 = '';
-				this.myInput3 = '';
-				this.myInput4 = '';
-				this.isvisiable = true;
-			},
-			onClickOption(e, row) { // 操作按钮
-				let that = this;
-				console.log(row.value) //通过这个value去执行相关操作
-				if ("delete" == e.target.getAttribute("value")) {
-					that
-						.$confirm("确认删除此条样本数据?", "提示", {
-							confirmButtonText: "删除",
-							cancelButtonText: "取消"
-						})
-						.then((_) => {
-							console.log('ok')
-							// that.requestDelete(row);
-						})
-						.catch((_) => {});
-				}
-				if ("edit" == e.target.getAttribute("value")) {
-					that.isvisiableType = 2;
-					that.$nextTick(()=>{
-						that.myInput1 = row.myInput1;
-						that.myInput2 = row.myInput2;
-						that.myInput3 = row.myInput3;
-						that.myInput4 = row.myInput4;
-					});
-					that.isvisiable = true;
-				}
-				if ("config" == e.target.getAttribute("value")) {//传感点
-					that.gzCgdData = row.value;
-					that.gzCgd = 2;
-				}
-			},
-			onClickDialogClose() { // 弹窗右上角关闭按钮
-				this.isvisiable = false;
-				this.isvisiableType = 1;
-			},
-			dialogSave() {
-				console.log(this.myInput1)
-				// myInput1: "",
-				// myInput2: "",
-				// myInput3: "",
-				// myInput4: "",
-			},
-			gzCgdClick(data){
-				this.gzCgd = data;
-			}
-		},
-		created() {
-			// this.startAjax();
-		},
-		mounted() {},
-	};
-</script>
-
-<style lang="less" scoped>
-	
-</style>

+ 0 - 255
src/views/Others/gzCgd.vue

@@ -1,255 +0,0 @@
-<template>
-	<div>
-		<el-row type="flex">
-			<div class="query-actions">
-				<button class="btn" @click="addEdit">新增</button>
-				<button class="btn" @click="back">返回</button>
-			</div>
-		</el-row>
-		<el-row :type="'flex'" class="content">
-			<el-col :span="24">
-				<ComTable :data="tableData" :pageSize="pageSize" @onPagging="onChangePage" height="84vh"
-					v-loading="tableLoading" element-loading-text="拼命加载中"
-					element-loading-background="rgba(0, 0, 0, 0.8)"></ComTable>
-			</el-col>
-		</el-row>
-		<el-dialog :title="isvisiableType==1?'新增':'编辑'" v-model="isvisiable" width="45%" top="15vh" custom-class="modal"
-			:close-on-click-modal="false" :before-close="onClickDialogClose">
-			<!-- 这里是新增或编辑 -->
-			<el-row type="flex">
-				<el-col :span="12">
-					字段1:
-					<el-input placeholder="请选择日期" v-model="myInput1" :value="myInput1"></el-input>
-				</el-col>
-				<el-col :span="12">
-					字段2:
-					<el-input placeholder="请选择日期" v-model="myInput2" :value="myInput2">
-					</el-input>
-				</el-col>
-			</el-row>
-			<el-row type="flex">
-				<el-col :span="12">
-					字段3:
-					<el-input placeholder="请选择日期" v-model="myInput3" :value="myInput3">
-					</el-input>
-				</el-col>
-				<el-col :span="12">
-					字段4:
-					<el-input placeholder="请选择日期" v-model="myInput4" :value="myInput4">
-					</el-input>
-				</el-col>
-			</el-row>
-			<el-row type="flex" justify="end">
-				<div class="query-actions" style="margin-top: 15px;">
-					<button class="btn" @click="onClickDialogClose">取消</button>
-					<button class="btn" @click="dialogSave()">保存</button>
-				</div>
-			</el-row>
-		</el-dialog>
-	</div>
-</template>
-
-<script>
-	import ComTable from "@/components/coms/table/table.vue";
-	export default {
-		components: {
-			ComTable
-		},
-		data() {
-			const that = this;
-			return {
-				pageIndex: 1,
-				pageSize: 20,
-				myInput1: "",
-				myInput2: "",
-				myInput3: "",
-				myInput4: "",
-				isvisiable: false,
-				isvisiableType: 1, //新增为1,编辑为2
-				tableData: {
-					column: [{
-							name: "序号",
-							field: "index",
-							is_light: false,
-						},
-						{
-							name: "字段1",
-							field: "myInput1",
-							is_light: false,
-						},
-						{
-							name: "字段2",
-							field: "myInput2",
-							is_light: false,
-						},
-						{
-							name: "字段3",
-							field: "myInput3",
-							is_light: false,
-						},
-						{
-							name: "字段4",
-							field: "myInput4",
-							is_light: false,
-						},
-						{
-							name: "操作",
-							is_light: false,
-							width: 100,
-							template: () => {
-								return (
-									"<el-button type='text' style='cursor: pointer;' value='edit'>编辑</el-button>&nbsp" +
-									"<el-button type='text' style='cursor: pointer;' value='delete'>删除</el-button>&nbsp" +
-									"<el-button type='text' style='cursor: pointer;' value='config'>原始数据</el-button>&nbsp"
-								);
-							},
-							click(e, row) {
-								that.onClickOption(e, row);
-							},
-						},
-					],
-					data: [{
-							index: 1,
-							myInput1: "MG01-01",
-							myInput2: "0.1000",
-							myInput3: "0.1000",
-							myInput4: "0.1000",
-							value: '这里放隐藏值1',
-							is_light: false,
-						},
-						{
-							index: 2,
-							myInput1: "MG01-02",
-							myInput2: "2",
-							myInput3: "23",
-							myInput4: "24",
-							value: '这里放隐藏值2',
-							is_light: false,
-						},
-					],
-				}
-			};
-		},
-		props: {
-			data: {
-				type: String
-			},
-		},
-		methods: {
-			getTable() {
-				let that = this;
-				this.tableLoading = true;
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://10.155.32.4:9001/",
-					subUrl: "benchmarking/wplist",
-					data: {
-						wpId: that.stationId,
-						startTs: that.startDate,
-						endTs: that.endDate,
-						pageNum: that.pageIndex,
-						pageSize: that.pageSize,
-					},
-					success(res) {
-						var dataTab = [];
-						if (res.data) {
-							res.data.list.forEach(item => {
-								dataTab.push({ //表格
-									recodedata: that.formatTime(item.recodedata),
-									region: item.region,
-									weather: item.weather,
-									maximumtem: item.maximumtem,
-									minimumtem: item.minimumtem,
-									sunrise: item.sunrise,
-									sunset: item.sunset,
-									weather1: item.weather1,
-									weather2: item.weather2,
-									temperature1: item.temperature1,
-									temperature2: item.temperature2,
-									realfeel1: item.realfeel1,
-									realfeel2: item.realfeel2,
-									precipitation1: item.precipitation1,
-									precipitation2: item.precipitation2,
-									winddirection1: item.winddirection1,
-									winddirection2: item.winddirection2,
-									speed1: item.speed1,
-									speed2: item.speed2
-								})
-							})
-							that.tableData.data = dataTab;
-							that.tableData.total = res.data.total;
-						} else {
-							that.tableData.data = [];
-							that.tableData.total = 0;
-						}
-						that.tableLoading = false;
-					},
-				});
-			},
-			onChangePage(params) {
-				this.pageIndex = params.pageIndex;
-				this.pageSize = params.pageSize;
-				this.getTable();
-			},
-			addEdit() {
-				this.isvisiableType = 1;
-				this.myInput1 = '';
-				this.myInput2 = '';
-				this.myInput3 = '';
-				this.myInput4 = '';
-				this.isvisiable = true;
-			},
-			onClickOption(e, row) { // 操作按钮
-				let that = this;
-				console.log(row.value) //通过这个value去执行相关操作
-				if ("delete" == e.target.getAttribute("value")) {
-					that
-						.$confirm("确认删除此条样本数据?", "提示", {
-							confirmButtonText: "删除",
-							cancelButtonText: "取消"
-						})
-						.then((_) => {
-							console.log('ok')
-							// that.requestDelete(row);
-						})
-						.catch((_) => {});
-				}
-				if ("edit" == e.target.getAttribute("value")) {
-					that.isvisiableType = 2;
-					that.$nextTick(() => {
-						that.myInput1 = row.myInput1;
-						that.myInput2 = row.myInput2;
-						that.myInput3 = row.myInput3;
-						that.myInput4 = row.myInput4;
-					});
-					that.isvisiable = true;
-				}
-				if ("config" == e.target.getAttribute("value")) { //传感点
-					that.gzCgd = 2;
-				}
-			},
-			onClickDialogClose() { // 弹窗右上角关闭按钮
-				this.isvisiable = false;
-				this.isvisiableType = 1;
-			},
-			dialogSave() {
-				console.log(this.myInput1)
-				// myInput1: "",
-				// myInput2: "",
-				// myInput3: "",
-				// myInput4: "",
-			},
-			back() {
-				this.$emit('gzCgdClick', 1);
-			}
-		},
-		created() {
-			// console.log(this.data)//上个页面的参数
-		},
-		mounted() {},
-	};
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 1 - 0
src/views/Others/index.vue

@@ -183,6 +183,7 @@ export default {
           url: "/others/alarmCenter/alarmcenter",
         },
         { name: "操作记录", key: "cz", url: "/others/alarmCenter/czjl" },
+		{ name: "光伏告警", key: "gfgj", url: "/others/alarmCenter/gfgj" },
       ],
       tableData1: {
         column: [

+ 0 - 37
src/views/Others/xn.vue

@@ -1,37 +0,0 @@
-<template>
-	<el-scrollbar :height="height">
-	 风机2
-	</el-scrollbar>
-</template>
-
-<script>
-	export default {
-		components: {
-			
-		},
-		data() {
-			return {
-				
-			};
-		},
-		props:{
-			currTab:{
-			  type: Number
-			},
-			height: {
-			  type: String
-			},
-		},
-		methods:{
-			
-		},
-		created() {
-
-		},
-		mounted() {},
-	};
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 0 - 37
src/views/Others/yj.vue

@@ -1,37 +0,0 @@
-<template>
-	<el-scrollbar :height="height">
-	 风机3
-	</el-scrollbar>
-</template>
-
-<script>
-	export default {
-		components: {
-			
-		},
-		data() {
-			return {
-				
-			};
-		},
-		props:{
-			currTab:{
-			  type: Number
-			},
-			height: {
-			  type: String
-			},
-		},
-		methods:{
-			
-		},
-		created() {
-
-		},
-		mounted() {},
-	};
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 0 - 37
src/views/Others/zn.vue

@@ -1,37 +0,0 @@
-<template>
-	<el-scrollbar :height="height">
-	 风机4
-	</el-scrollbar>
-</template>
-
-<script>
-	export default {
-		components: {
-			
-		},
-		data() {
-			return {
-				
-			};
-		},
-		props:{
-			currTab:{
-			  type: Number
-			},
-			height: {
-			  type: String
-			},
-		},
-		methods:{
-			
-		},
-		created() {
-
-		},
-		mounted() {},
-	};
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 187 - 7
src/views/SandTable/SandTable.vue

@@ -48,7 +48,7 @@
     </div>
     <div class="sand-table-right" v-if="showPanel">
       <PanelSand class="right-panel" title="视频监控">
-        <el-row v-for="(pItem, pIndex) in videoArray" :key="pIndex">
+        <!-- <el-row v-for="(pItem, pIndex) in videoArray" :key="pIndex">
           <el-col
             :span="12"
             class="pre-img-box"
@@ -65,6 +65,32 @@
               :src="cItem.url + cItem.token"
               v-if="cItem.switch"
             />
+          </el-col> -->
+        <el-row v-for="(pItem, pIndex) in videoArray1" :key="pIndex">
+          <el-col
+            :span="12"
+            class="pre-img-box"
+            v-for="(cItem, cIndex) in pItem"
+            :key="cIndex"
+            @click="openVideoDialog1(cItem)"
+          >
+            <div class="mask"></div>
+            <hlsVideo
+              class="pre-img videoBoxiframe"
+              width="95%"
+              height="8.657vh"
+              :code="cItem.code"
+              :class="cItem.class"
+              v-if="cItem.switch"
+            />
+            <!-- <iframe
+              class="pre-img videoBoxiframe"
+              :class="cItem.class"
+              width="95%"
+              height="8.657vh"
+              src="http://192.168.1.18:1935/hls/NSS_FDC_ZK/index.m3u8"
+              v-if="cItem.switch"
+            /> -->
           </el-col>
         </el-row>
       </PanelSand>
@@ -421,13 +447,75 @@
         videoDialogClass = 'modal animated a1 bounceIn';
       "
     >
-      <iframe
+      <!-- <iframe
         class="videoBoxiframe"
         width="95%"
         height="800px"
         :src="dialogVideoUrl"
+      /> -->
+      <hlsVideo
+        class="videoBoxiframe"
+        width="95%"
+        height="800px"
+        :code="dialogVideoUrl"
       />
     </el-dialog>
+    <el-dialog
+      title="场站综合评分"
+      :custom-class="mainInfoDialogClass"
+      v-model="showMainInfoDialog"
+      width="80%"
+      :destroy-on-close="true"
+      :before-close="
+        (done) => {
+          mainInfoDialogClass = 'modal animated a1 fadeOutUpBig';
+          delaylyFn(450, done);
+        }
+      "
+      @closed="mainInfoDialogClass = 'modal animated a0 fadeInDown'"
+    >
+      <div v-for="(item, index) in mainInfo" :key="index">
+        <el-divider content-position="center">{{ item.name }}</el-divider>
+        <el-form style="margin: 30px 0" label-width="120px" inline>
+          <el-form-item
+            label="风能利用率"
+            style="width: 45%; margin-bottom: 25px"
+          >
+            <el-input v-model="item.actualpower" readonly></el-input>
+          </el-form-item>
+          <el-form-item
+            label="综合厂用电率(%)"
+            style="width: 45%; margin-bottom: 25px"
+          >
+            <el-input v-model="item.comprehensiverate" readonly></el-input>
+          </el-form-item>
+          <el-form-item
+            label="利用小时(小时)"
+            style="width: 45%; margin-bottom: 25px"
+          >
+            <el-input v-model="item.utilizationhours" readonly></el-input>
+          </el-form-item>
+          <el-form-item
+            label="设备可利用率(%)"
+            style="width: 45%; margin-bottom: 25px"
+          >
+            <el-input v-model="item.availability" readonly></el-input>
+          </el-form-item>
+          <el-form-item
+            label="MTBF(小时)"
+            style="width: 45%; margin-bottom: 25px"
+          >
+            <el-input v-model="item.mtbf" readonly></el-input>
+          </el-form-item>
+          <el-form-item
+            label="MTTR(小时)"
+            style="width: 45%; margin-bottom: 25px"
+          >
+            <el-input v-model="item.mttr" readonly></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -445,6 +533,7 @@ import DoubleLineChart from "@com/chart/line/double-line-chart.vue";
 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";
+import hlsVideo from "./component/hls.vue";
 
 export default {
   // 名称
@@ -464,6 +553,7 @@ export default {
     Col,
     Row,
     SvgIcon,
+    hlsVideo,
   },
   // 数据
   data() {
@@ -477,6 +567,7 @@ export default {
       showWeatherDialog: false,
       showTableDialog: false,
       showHealthDialog: false,
+      showMainInfoDialog: false,
       weathercollapse: "",
       weatherChart: [
         {
@@ -492,6 +583,8 @@ export default {
       ],
       videoDialogClass: "modal animated a1 bounceIn",
       tableDialogClass: "modal animated a1 fadeInLeftBig",
+      mainInfoDialogClass: "modal animated a0 fadeInDownBig",
+      mainInfo: [],
       peopleClass: "",
       timeStr: "",
       wpId: "0",
@@ -500,6 +593,32 @@ export default {
       gxkmap: {},
       tableItem: {},
       mapSource: {},
+      videoArray1: [
+        // [
+        //   { code: "NSS_FDC_ZK", class: "", switch: true },
+        //   { code: "NSS_FDC_ZK", class: "", switch: true },
+        // ],
+        // [
+        //   { code: "NSS_FDC_ZK", class: "", switch: true },
+        //   { code: "QS_FDC_ZK", class: "", switch: true },
+        // ],
+        // [
+        //   { code: "QS_FDC_ZK", class: "", switch: true },
+        //   { code: "QS_FDC_ZK", class: "", switch: true },
+        // ],
+        [
+          { code: "SBQ_FDC_SC", class: "", switch: true },
+          { code: "NSS_FDC_SC", class: "", switch: true },
+        ],
+        [
+          { code: "QS_FDC_SC", class: "", switch: true },
+          { code: "MHS_FDC_SC", class: "", switch: true },
+        ],
+        [
+          { code: "XS_FDC_SC", class: "", switch: true },
+          { code: "PL_GDC_SC", class: "", switch: true },
+        ],
+      ],
       videoArray: [
         [
           {
@@ -655,6 +774,13 @@ export default {
       }
     },
 
+    openVideoDialog1(item) {
+      if (item.code) {
+        this.dialogVideoUrl = item.code;
+        this.showVideoDialog = true;
+      }
+    },
+
     getWtInfo() {
       let that = this;
       that.API.requestData({
@@ -743,7 +869,6 @@ export default {
           stationid: that.wpId,
         },
         success(res) {
-			console.log(res)
           let warnChartData = [];
           for (let key in res.data) {
             const ele = res.data[key];
@@ -849,6 +974,24 @@ export default {
       });
     },
 
+    // 获取主要指标
+    getWpMainInfo() {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        baseURL: "http://10.155.32.4:8034/",
+        subUrl: "benchmark/zyzb",
+        data: {
+          windPowerStation: that.wpId,
+        },
+        success(res) {
+          console.log(123123, res);
+          that.mainInfo = res.data;
+          that.showMainInfoDialog = true;
+        },
+      });
+    },
+
     clickStopRow(row) {
       this.tableItem = row;
       this.showTableDialog = true;
@@ -888,16 +1031,33 @@ export default {
     },
 
     // 点击风场或者光伏
-    clickMapItem(videoArray) {
-      this.videoArray.forEach((pEle, pIndex) => {
+    clickMapItem(videoArray, wpId) {
+      this.wpId = wpId;
+      // this.videoArray.forEach((pEle, pIndex) => {
+      //   pEle.forEach((cEle, cIndex) => {
+      //     setTimeout(() => {
+      //       // 设置隐藏动画
+      //       cEle.class = "animated a1 flipOutX";
+      //       setTimeout(() => {
+      //         // 修改 token
+      //         cEle.token =
+      //           "?token=" + videoArray[pIndex + cIndex] + "&autoplay=true";
+      //         setTimeout(() => {
+      //           // 设置显示动画
+      //           cEle.class = "animated a1 flipInX";
+      //         }, 150);
+      //       }, 350);
+      //     }, (pIndex + cIndex + pIndex) * 150);
+      //   });
+      // });
+      this.videoArray1.forEach((pEle, pIndex) => {
         pEle.forEach((cEle, cIndex) => {
           setTimeout(() => {
             // 设置隐藏动画
             cEle.class = "animated a1 flipOutX";
             setTimeout(() => {
               // 修改 token
-              cEle.token =
-                "?token=" + videoArray[pIndex + cIndex] + "&autoplay=true";
+              cEle.code = videoArray[pIndex + cIndex];
               setTimeout(() => {
                 // 设置显示动画
                 cEle.class = "animated a1 flipInX";
@@ -906,6 +1066,12 @@ export default {
           }, (pIndex + cIndex + pIndex) * 150);
         });
       });
+      this.getWtInfo();
+      this.getWpHealthInfo();
+      this.getTop4Info();
+      this.getWarnMGT();
+      this.getRepertoryMGT();
+      this.getWpMainInfo();
     },
 
     // 页面跳转
@@ -1206,6 +1372,20 @@ export default {
     font-size: 20px;
   }
 
+  .el-divider__text {
+    background: rgb(17, 28, 27);
+    color: #b3bdc0;
+  }
+
+  .el-divider {
+    background: #b3bdc0;
+  }
+
+  .el-dialog__body {
+    max-height: 600px;
+    overflow-y: scroll;
+  }
+
   animation-duration: 0;
   @keyframes dialog-fade-in {
     0% {

+ 134 - 98
src/views/SandTable/component/ThreeModel1.vue

@@ -154,14 +154,17 @@ export default {
           position: null,
           name: "麻黄山",
           clickName: function () {
-            that.clickMapItem([
-              "MHS_FDC_SC",
-              "MG01_01_TD",
-              "MG01_02_TD",
-              "MG01_03_TD",
-              "MG01_04_TD",
-              "MG01_05_TD",
-            ]);
+            that.clickMapItem(
+              [
+                "MHS_FDC_SC",
+                "MG01_01_TD",
+                "MG01_02_TD",
+                "MG01_03_TD",
+                "MG01_04_TD",
+                "MG01_05_TD",
+              ],
+              "MHS_FDC"
+            );
           },
           clickFan: () => {
             this.showFanInfo(this.htmlLayer[0].position);
@@ -170,14 +173,17 @@ export default {
             this.lsl = this.htmlLayer[0].lsl;
             this.csl = this.htmlLayer[0].csl;
             this.gzsl = this.htmlLayer[0].gzsl;
-            that.clickMapItem([
-              "MHS_FDC_SC",
-              "MG01_01_TD",
-              "MG01_02_TD",
-              "MG01_03_TD",
-              "MG01_04_TD",
-              "MG01_05_TD",
-            ]);
+            that.clickMapItem(
+              [
+                "MHS_FDC_SC",
+                "MG01_01_TD",
+                "MG01_02_TD",
+                "MG01_03_TD",
+                "MG01_04_TD",
+                "MG01_05_TD",
+              ],
+              "MHS_FDC"
+            );
           },
         },
         // 牛首山
@@ -195,14 +201,17 @@ export default {
           position: null,
           name: "牛首山",
           clickName: function () {
-            that.clickMapItem([
-              "NSS_FDC_SC",
-              "NG01_27_TD",
-              "NG01_28_TD",
-              "NG01_30_TD",
-              "NG01_31_TD",
-              "NG01_32_TD",
-            ]);
+            that.clickMapItem(
+              [
+                "NSS_FDC_SC",
+                "NG01_27_TD",
+                "NG01_28_TD",
+                "NG01_30_TD",
+                "NG01_31_TD",
+                "NG01_32_TD",
+              ],
+              "NSS_FDC"
+            );
           },
           clickFan: () => {
             this.showFanInfo(this.htmlLayer[1].position);
@@ -211,14 +220,17 @@ export default {
             this.lsl = this.htmlLayer[1].lsl;
             this.csl = this.htmlLayer[1].csl;
             this.gzsl = this.htmlLayer[1].gzsl;
-            that.clickMapItem([
-              "NSS_FDC_SC",
-              "NG01_27_TD",
-              "NG01_28_TD",
-              "NG01_30_TD",
-              "NG01_31_TD",
-              "NG01_32_TD",
-            ]);
+            that.clickMapItem(
+              [
+                "NSS_FDC_SC",
+                "NG01_27_TD",
+                "NG01_28_TD",
+                "NG01_30_TD",
+                "NG01_31_TD",
+                "NG01_32_TD",
+              ],
+              "NSS_FDC"
+            );
           },
         },
         // 青山
@@ -236,14 +248,17 @@ export default {
           position: null,
           name: "青山",
           clickName: function () {
-            that.clickMapItem([
-              "QS_FDC_SC",
-              "QG01_67_TD",
-              "QG01_69_TD",
-              "QG01_71_TD",
-              "QG01_72_TD",
-              "QG01_73_TD",
-            ]);
+            that.clickMapItem(
+              [
+                "QS_FDC_SC",
+                "QG01_67_TD",
+                "QG01_69_TD",
+                "QG01_71_TD",
+                "QG01_72_TD",
+                "QG01_73_TD",
+              ],
+              "QS_FDC"
+            );
           },
           clickFan: () => {
             this.showFanInfo(this.htmlLayer[2].position);
@@ -252,14 +267,17 @@ export default {
             this.lsl = this.htmlLayer[2].lsl;
             this.csl = this.htmlLayer[2].csl;
             this.gzsl = this.htmlLayer[2].gzsl;
-            that.clickMapItem([
-              "QS_FDC_SC",
-              "QG01_67_TD",
-              "QG01_69_TD",
-              "QG01_71_TD",
-              "QG01_72_TD",
-              "QG01_73_TD",
-            ]);
+            that.clickMapItem(
+              [
+                "QS_FDC_SC",
+                "QG01_67_TD",
+                "QG01_69_TD",
+                "QG01_71_TD",
+                "QG01_72_TD",
+                "QG01_73_TD",
+              ],
+              "QS_FDC"
+            );
           },
         },
         // 石板泉
@@ -277,14 +295,17 @@ export default {
           position: null,
           name: "石板泉",
           clickName: function () {
-            that.clickMapItem([
-              "SBQ_FDC_SC",
-              "SG01_01_TD",
-              "SG01_02_TD",
-              "SG01_03_TD",
-              "SG01_04_TD",
-              "SG01_05_TD",
-            ]);
+            that.clickMapItem(
+              [
+                "SBQ_FDC_SC",
+                "SG01_01_TD",
+                "SG01_02_TD",
+                "SG01_03_TD",
+                "SG01_04_TD",
+                "SG01_05_TD",
+              ],
+              "SBQ_FDC"
+            );
           },
           clickFan: () => {
             this.showFanInfo(this.htmlLayer[3].position);
@@ -293,14 +314,17 @@ export default {
             this.lsl = this.htmlLayer[3].lsl;
             this.csl = this.htmlLayer[3].csl;
             this.gzsl = this.htmlLayer[3].gzsl;
-            that.clickMapItem([
-              "SBQ_FDC_SC",
-              "SG01_01_TD",
-              "SG01_02_TD",
-              "SG01_03_TD",
-              "SG01_04_TD",
-              "SG01_05_TD",
-            ]);
+            that.clickMapItem(
+              [
+                "SBQ_FDC_SC",
+                "SG01_01_TD",
+                "SG01_02_TD",
+                "SG01_03_TD",
+                "SG01_04_TD",
+                "SG01_05_TD",
+              ],
+              "SBQ_FDC"
+            );
           },
         },
         // 香山
@@ -318,14 +342,17 @@ export default {
           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",
-            ]);
+            that.clickMapItem(
+              [
+                "XS_FDC_SC",
+                "XG01_26_TD",
+                "XG01_27_TD",
+                "XG01_29_TD",
+                "XG01_30_TD",
+                "XG01_31_TD",
+              ],
+              "XS_FDC"
+            );
           },
           clickFan: () => {
             this.showFanInfo(this.htmlLayer[4].position);
@@ -334,14 +361,17 @@ export default {
             this.lsl = this.htmlLayer[4].lsl;
             this.csl = this.htmlLayer[4].csl;
             this.gzsl = this.htmlLayer[4].gzsl;
-            that.clickMapItem([
-              "XS_FDC_SC",
-              "XG01_26_TD",
-              "XG01_27_TD",
-              "XG01_29_TD",
-              "XG01_30_TD",
-              "XG01_31_TD",
-            ]);
+            that.clickMapItem(
+              [
+                "XS_FDC_SC",
+                "XG01_26_TD",
+                "XG01_27_TD",
+                "XG01_29_TD",
+                "XG01_30_TD",
+                "XG01_31_TD",
+              ],
+              "XS_FDC"
+            );
           },
         },
         // 大武口
@@ -464,14 +494,17 @@ export default {
           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",
-            ]);
+            that.clickMapItem(
+              [
+                "SBQ_FDC_SC",
+                "NSS_FDC_SC",
+                "QS_FDC_SC",
+                "MHS_FDC_SC",
+                "XS_FDC_SC",
+                "PL_GDC_SC",
+              ],
+              "0"
+            );
           },
           clickFan: () => {
             this.showFanInfo(this.htmlLayer[10].position);
@@ -480,14 +513,17 @@ export default {
             this.lsl = this.htmlLayer[10].lsl;
             this.csl = this.htmlLayer[10].csl;
             this.gzsl = this.htmlLayer[10].gzsl;
-            that.clickMapItem([
-              "SBQ_FDC_SC",
-              "NSS_FDC_SC",
-              "QS_FDC_SC",
-              "MHS_FDC_SC",
-              "XS_FDC_SC",
-              "PL_GDC_SC",
-            ]);
+            that.clickMapItem(
+              [
+                "SBQ_FDC_SC",
+                "NSS_FDC_SC",
+                "QS_FDC_SC",
+                "MHS_FDC_SC",
+                "XS_FDC_SC",
+                "PL_GDC_SC",
+              ],
+              "0"
+            );
           },
         },
       ],
@@ -565,8 +601,8 @@ export default {
       }
     },
     // 点击风场或者光伏传回点击的值
-    clickMapItem(videoArray = []) {
-      this.$emit("clickMapItem", videoArray);
+    clickMapItem(videoArray = [], wpId = "") {
+      this.$emit("clickMapItem", videoArray, wpId);
     },
     // Vector3 to screen
     vector3ToScreen: function (position) {

+ 138 - 0
src/views/SandTable/component/hls.vue

@@ -0,0 +1,138 @@
+<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.18: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() {
+    // 渲染后
+  },
+  beforeUpdate() {},
+  updated() {},
+  watch: {
+    code() {
+      this._play();
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.hlsVideo {
+  object-fit: fill;
+}
+</style>

+ 13 - 2
src/views/WindSite/components/boosterstation/BoosterStation.js

@@ -10,22 +10,29 @@ export class BoosterStation {
 			"qs3uakv110l": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0001" },
 			"qs3ubkv110": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0002" },
 			"qs3uckv110": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0003" },
-			"qs3uabkv110": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0009" },
+			"qs3uabkv110": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0024" },
+			"qs3Fhz110": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0012" },
 			"qs3uakv110r": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0001" },
 			"qs3laa110": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0004" },
 			"qs3pmw110": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0013" },
 			"qs3qmvar110": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0014" },
+			"qs3cos110": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0016" },
+			"qs3uabkvr110": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0009" },
 			"qs3uakv35r": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0053" },
 			"qs3laa35": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0056" },
 			"qs3pmw35": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0116" },
 			"qs3qmvar35": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0117" },
+			"qs3uakv35rb": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0059" },
+			"qs3laa35b": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0062" },
+			"qs3pmw35b": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0123" },
+			"qs3qmvar35b": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0124" },
 			"qs3uakv35l": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0537" },
 			"qs3ubkv35": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0538" },
 			"qs3uckv35": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0539" },
 			"qs3uabkv35": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0573" },
+			"qs3fhz35": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0639" },
 			"qs3ymwd": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0162" },
 			"qs3rzwd": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0161" },
-			"qs3dw": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0155" },
 			"qs3uabkvc": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0573" },
 			"qs3ubckv": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0574" },
 			"qs3ucakv": { tag: "SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0575" },
@@ -628,6 +635,10 @@ export class BoosterStation {
 			"mhsymwdzb1": { tag: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0258" },
 			"mhsrzwdzb1": { tag: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0050" },
 			//补
+			"mhsuakvzb1": { tag: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0033" },
+			"mhsubkvzb1": { tag: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0034" },
+			"mhsuckvzb1": { tag: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0035" },
+			"mhs3u0kvzb1": { tag: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0040" },
 			"mhsuabkvzb1": { tag: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0037" },
 			"mhsubckvzb1": { tag: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0038" },
 			"mhsucakvzb1": { tag: "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0039" },

+ 12 - 29
src/views/WindSite/components/boosterstation/dwk.vue

@@ -130,7 +130,7 @@
                   </text>
                 </g>
                 <g>
-                  <text transform="matrix(1 0 0 1 70.9336 126.3535)">
+                  <text transform="matrix(1 0 0 1 65.9336 126.3535)">
                     <tspan
                       x="0"
                       y="0"
@@ -147,21 +147,12 @@
                       font-family="'MicrosoftYaHei'"
                       font-size="9.6234"
                     >
-                      (MW)
-                    </tspan>
-                    <tspan
-                      x="32.592"
-                      y="0"
-                      fill="#97A1A2"
-                      font-family="'MicrosoftYaHei'"
-                      font-size="11.3899"
-                    >
-                      :
+                      (MVar):
                     </tspan>
                   </text>
                 </g>
                 <g>
-                  <text transform="matrix(1 0 0 1 67.0742 145.5039)">
+                  <text transform="matrix(1 0 0 1 65.0742 145.5039)">
                     <tspan
                       x="0"
                       y="0"
@@ -178,16 +169,7 @@
                       font-family="'MicrosoftYaHei'"
                       font-size="9.6234"
                     >
-                      (MVar)
-                    </tspan>
-                    <tspan
-                      x="36.451"
-                      y="0"
-                      fill="#97A1A2"
-                      font-family="'MicrosoftYaHei'"
-                      font-size="11.3899"
-                    >
-                      :
+                      (MVar):
                     </tspan>
                   </text>
                 </g>
@@ -5445,7 +5427,7 @@
                       font-family="'MicrosoftYaHei'"
                       font-size="9.6234"
                     >
-                      (MVar)
+                      (kVar)
                     </tspan>
                     <tspan
                       x="36.451"
@@ -5545,7 +5527,7 @@
                       font-family="'MicrosoftYaHei'"
                       font-size="9.6234"
                     >
-                      (MVar)
+                      (kVar)
                     </tspan>
                     <tspan
                       x="36.451"
@@ -5645,7 +5627,7 @@
                       font-family="'MicrosoftYaHei'"
                       font-size="9.6234"
                     >
-                      (MVar)
+                      (kVar)
                     </tspan>
                     <tspan
                       x="36.451"
@@ -5745,7 +5727,7 @@
                       font-family="'MicrosoftYaHei'"
                       font-size="9.6234"
                     >
-                      (MVar)
+                      (kVar)
                     </tspan>
                     <tspan
                       x="36.451"
@@ -5845,7 +5827,7 @@
                       font-family="'MicrosoftYaHei'"
                       font-size="9.6234"
                     >
-                      (MVar)
+                      (kVar)
                     </tspan>
                     <tspan
                       x="36.451"
@@ -5941,7 +5923,8 @@ export default {
 }
 
 .svg {
-  width: 100%;
-  height: 100%;
+  margin-left:5%;
+  width: 90%;
+  height: 90%;
 }
 </style>

+ 12 - 14
src/views/WindSite/components/boosterstation/hzj.vue

@@ -5,7 +5,7 @@
 				<previewPicture>
 					<template v-slot:svg>
 
-						<svg class="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="图层_1" x="0px" y="0px" width="90%" height="100%" viewBox="-103.472 181.25 700.334 342.25" enable-background="new -50.472 115.25 634.334 342.25" xml:space="preserve">
+						<svg class="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="图层_1" x="0px" y="0px" width="90%" height="100%" viewBox="-103.472 131.25 700.334 342.25" enable-background="new -50.472 115.25 634.334 342.25" xml:space="preserve">
 							<g id="other">
 								<text transform="matrix(0.9268 0 0 1 519.0732 163.3872)" fill="#FFFFFF" font-family="'MicrosoftYaHei'" font-size="4.8442">牛首山第五风场电场</text>
 								<text transform="matrix(0.9268 0 0 1 519.0732 169.1304)" fill="#FFFFFF" font-family="'MicrosoftYaHei'" font-size="4.8442">110kV V母</text>
@@ -34,9 +34,7 @@
 									<text transform="matrix(1 0 0 1 551.1602 185.2998)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">:</text>
 								</g>
 								<g>
-									<text transform="matrix(1 0 0 1 534.9355 194.6533)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">P</text>
-									<text transform="matrix(1 0 0 1 538.4844 194.6533)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">(MW)</text>
-									<text transform="matrix(1 0 0 1 551.1602 194.6533)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">:</text>
+									<text transform="matrix(1 0 0 1 532.9355 194.6533)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">P(MVar):</text>
 								</g>
 								<g>
 									<text transform="matrix(1 0 0 1 532.1523 206.0078)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">Q</text>
@@ -164,12 +162,12 @@
 								</g>
 								<g>
 									<text transform="matrix(1 0 0 1 535.4473 343.3301)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">P</text>
-									<text transform="matrix(1 0 0 1 538.998 343.3301)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">(MW)</text>
+									<text transform="matrix(1 0 0 1 538.998 343.3301)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">(kVar)</text>
 									<text transform="matrix(1 0 0 1 551.6738 343.3301)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">:</text>
 								</g>
 								<g>
 									<text transform="matrix(1 0 0 1 532.6641 354.6846)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">Q</text>
-									<text transform="matrix(1 0 0 1 536.0879 354.6846)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">(MVar)</text>
+									<text transform="matrix(1 0 0 1 537.0879 354.6846)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">(kVar)</text>
 									<text transform="matrix(1 0 0 1 551.2383 354.6846)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="4.6193">:</text>
 								</g>
 								<rect x="499.345" y="118.659" opacity="0.9" fill="#1B2522" enable-background="new    " width="55.565" height="9.406"></rect>
@@ -416,10 +414,10 @@
 										<text transform="matrix(1.0534 0 0 1 21.1885 321.1758)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">A</text>
 										<text transform="matrix(1.0534 0 0 1 23.4697 321.1758)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 										<text transform="matrix(1.0534 0 0 1 13.085 332.333)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">P(</text>
-										<text transform="matrix(1.0534 0 0 1 17.0977 332.333)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">MW</text>
+										<text transform="matrix(1.0534 0 0 1 17.0977 332.333)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">kVar</text>
 										<text transform="matrix(1.0534 0 0 1 23.4697 332.333)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 										<text transform="matrix(1.0534 0 0 1 10.041 343.7852)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">Q(</text>
-										<text transform="matrix(1.0534 0 0 1 14.6982 343.7852)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">MVar</text>
+										<text transform="matrix(1.0534 0 0 1 15.6982 343.7852)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">kVar</text>
 										<text transform="matrix(1.0534 0 0 1 23.4697 343.7852)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 									</g>
 								</g>
@@ -432,10 +430,10 @@
 										<text transform="matrix(1.0534 0 0 1 151.0308 322.1309)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">A</text>
 										<text transform="matrix(1.0534 0 0 1 153.312 322.1309)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 										<text transform="matrix(1.0534 0 0 1 142.9272 333.2881)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">P(</text>
-										<text transform="matrix(1.0534 0 0 1 146.9399 333.2881)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">MW</text>
+										<text transform="matrix(1.0534 0 0 1 146.9399 333.2881)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">kVar</text>
 										<text transform="matrix(1.0534 0 0 1 153.312 333.2881)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 										<text transform="matrix(1.0534 0 0 1 139.8833 344.7402)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">Q(</text>
-										<text transform="matrix(1.0534 0 0 1 144.5405 344.7402)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">MVar</text>
+										<text transform="matrix(1.0534 0 0 1 145.5405 344.7402)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">kVar</text>
 										<text transform="matrix(1.0534 0 0 1 153.312 344.7402)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 									</g>
 								</g>
@@ -445,10 +443,10 @@
 										<text transform="matrix(1.0534 0 0 1 336.918 323.6875)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">A</text>
 										<text transform="matrix(1.0534 0 0 1 339.1992 323.6875)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 										<text transform="matrix(1.0534 0 0 1 328.8145 335.8438)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">P(</text>
-										<text transform="matrix(1.0534 0 0 1 332.8262 335.8438)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">MW</text>
+										<text transform="matrix(1.0534 0 0 1 332.8262 335.8438)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">kVar</text>
 										<text transform="matrix(1.0534 0 0 1 339.1992 335.8438)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 										<text transform="matrix(1.0534 0 0 1 325.7695 347.2969)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">Q(</text>
-										<text transform="matrix(1.0534 0 0 1 330.4277 347.2969)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">MVar</text>
+										<text transform="matrix(1.0534 0 0 1 331.4277 347.2969)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">kVar</text>
 										<text transform="matrix(1.0534 0 0 1 339.1992 347.2969)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 									</g>
 								</g>
@@ -458,10 +456,10 @@
 										<text transform="matrix(1.0534 0 0 1 250.6333 323.292)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">A</text>
 										<text transform="matrix(1.0534 0 0 1 252.9146 323.292)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 										<text transform="matrix(1.0534 0 0 1 242.5298 335.4482)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">P(</text>
-										<text transform="matrix(1.0534 0 0 1 246.5425 335.4482)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">MW</text>
+										<text transform="matrix(1.0534 0 0 1 246.5425 335.4482)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">kVar</text>
 										<text transform="matrix(1.0534 0 0 1 252.9146 335.4482)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 										<text transform="matrix(1.0534 0 0 1 239.4858 346.9004)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">Q(</text>
-										<text transform="matrix(1.0534 0 0 1 244.1431 346.9004)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">MVar</text>
+										<text transform="matrix(1.0534 0 0 1 245.1431 346.9004)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.0786">kVar</text>
 										<text transform="matrix(1.0534 0 0 1 252.9146 346.9004)" fill="#919CA0" font-family="'MicrosoftYaHei'" font-size="3.8482">):</text>
 									</g>
 								</g>

+ 11 - 42
src/views/WindSite/components/boosterstation/mch.vue

@@ -253,13 +253,9 @@
 									</text>
 								</g>
 								<g>
-									<text transform="matrix(1 0 0 1 657.7087 96.584)" fill="#97A1A2"
+									<text transform="matrix(1 0 0 1 645.7087 96.584)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										P
-									</text>
-									<text transform="matrix(1 0 0 1 664.6775 96.584)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="9.6234">
-										(MM)
+										P(kVar)
 									</text>
 									<text transform="matrix(1 0 0 1 686.1379 96.584)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
@@ -273,7 +269,7 @@
 									</text>
 									<text transform="matrix(1 0 0 1 654.8049 118.8701)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="9.6234">
-										(MVar)
+										(kVar)
 									</text>
 									<text transform="matrix(1 0 0 1 686.1379 118.8701)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
@@ -301,13 +297,9 @@
 									</text>
 								</g>
 								<g>
-									<text transform="matrix(1 0 0 1 657.7087 241.7939)" fill="#97A1A2"
+									<text transform="matrix(1 0 0 1 654.7087 241.7939)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										P
-									</text>
-									<text transform="matrix(1 0 0 1 664.6775 241.7939)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="9.6234">
-										(MM)
+										P(kVar)
 									</text>
 									<text transform="matrix(1 0 0 1 686.1379 241.7939)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
@@ -321,7 +313,7 @@
 									</text>
 									<text transform="matrix(1 0 0 1 654.8049 264.0801)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="9.6234">
-										(MVar)
+										(kVar)
 									</text>
 									<text transform="matrix(1 0 0 1 686.1379 264.0801)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
@@ -822,7 +814,7 @@
 								</text>
 								<text transform="matrix(0.9268 0 0 1 399.4001 419.3252)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.1235">
-									-5
+									-1
 								</text>
 								<text transform="matrix(0.9268 0 0 1 454.9011 419.0723)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.1235">
@@ -974,22 +966,6 @@
 
 								<line fill="none" stroke="#AAAAAA" stroke-width="1.6" stroke-miterlimit="10"
 									x1="443.452" y1="445.257" x2="446.306" y2="445.257"></line>
-								<text transform="matrix(0.9268 0 0 1 456.1941 482.8877)" fill="#FFFFFF"
-									font-family="'MicrosoftYaHei'" font-size="11.1235">
-									-05
-								</text>
-								<rect x="444.206" y="451.9" fill="#CAA51A" width="2.25" height="17.702"></rect>
-								<rect x="422.035" y="451.9" fill="#CAA51A" width="24.139" height="2.25"></rect>
-								<rect x="444.743" y="492.637" fill="#AAAAAA" width="2.855" height="7.871"></rect>
-
-								<line fill="none" stroke="#AAAAAA" stroke-width="1.6" stroke-miterlimit="10"
-									x1="440.407" y1="501.594" x2="451.935" y2="501.594"></line>
-
-								<line fill="none" stroke="#AAAAAA" stroke-width="1.6" stroke-miterlimit="10"
-									x1="442.786" y1="505.234" x2="449.557" y2="505.234"></line>
-
-								<line fill="none" stroke="#AAAAAA" stroke-width="1.6" stroke-miterlimit="10"
-									x1="444.746" y1="509.072" x2="447.6" y2="509.072"></line>
 								<rect x="418.851" y="488.23" fill="#CAA51A" width="2.25" height="19.676"></rect>
 								<path fill="none" stroke="#CAA51A" stroke-width="2.2" stroke-miterlimit="10"
 									d="M409.642,479.065   c0,5.708,4.627,10.334,10.334,10.334s10.334-4.626,10.334-10.334c0-5.707-4.627-10.334-10.334-10.334">
@@ -2796,15 +2772,7 @@
 										<line fill="none" stroke="#AAAAAA" stroke-width="1.5" stroke-miterlimit="10"
 											x1="451.688" y1="410.451" x2="444.875" y2="421.033"></line>
 									</g>
-									<g id="_x31_21-0on_2_">
-										<line fill="none" stroke="#AAAAAA" stroke-width="1.5" stroke-miterlimit="10"
-											x1="437.728" y1="472.156" x2="454.614" y2="472.156"></line>
-										<path fill="#AAAAAA"
-											d="M446.669,485.781c1.434,0,2.602,1.166,2.602,2.604c0,1.434-1.167,2.6-2.602,2.6     c-1.437,0-2.603-1.166-2.603-2.6C444.065,486.948,445.234,485.781,446.669,485.781 M446.669,483.879     c-2.488,0-4.507,2.016-4.507,4.506c0,2.484,2.019,4.504,4.507,4.504c2.485,0,4.506-2.02,4.506-4.504     C451.174,485.895,449.154,483.879,446.669,483.879L446.669,483.879z">
-										</path>
-										<line fill="none" stroke="#AAAAAA" stroke-width="1.5" stroke-miterlimit="10"
-											x1="452.981" y1="474.27" x2="446.171" y2="484.852"></line>
-									</g>
+									
 								</g>
 							</g>
 						</svg>
@@ -2869,7 +2837,8 @@
 	}
 
 	.svg {
-		width: 100%;
-		height: 100%;
+		margin-left:5%;
+		width: 90%;
+		height: 90%;
 	}
 </style>

File diff suppressed because it is too large
+ 64 - 249
src/views/WindSite/components/boosterstation/mhs.vue


+ 195 - 224
src/views/WindSite/components/boosterstation/nss.vue

@@ -10,6 +10,112 @@
 							viewBox="-30 0 1920.596 914.189" enable-background="new 0 0 1922.596 894.189"
 							xml:space="preserve">
 							<g id="other">
+								<g xmlns="http://www.w3.org/2000/svg" id="add">
+										<g id="_x31_11">
+											<g id="newMWsvg">
+												<circle fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" cx="744.836" cy="35.147" r="8.612"/>
+												<circle fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" cx="730.26" cy="21.228" r="8.611"/>
+												<polyline fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" points="733.683,25.549 730.685,22.389       727.703,25.359     "/>
+												
+													<line fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" x1="730.623" y1="22.305" x2="730.794" y2="16.907"/>
+												<polygon fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" points="743.067,39.21 748.728,36.279       743.327,33.154     "/>
+												<circle fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" cx="744.836" cy="21.228" r="8.611"/>
+												<polyline fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" points="748.259,25.549 745.26,22.389       742.279,25.359     "/>
+												
+													<line fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" x1="745.199" y1="22.305" x2="745.37" y2="16.907"/>
+												<circle fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" cx="730.26" cy="35.147" r="8.611"/>
+												<polyline fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" points="733.683,39.468 730.685,36.308       727.703,39.278     "/>
+												
+													<line fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" x1="730.623" y1="36.224" x2="730.794" y2="30.826"/>
+												<circle fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" cx="738.09" cy="48.393" r="8.611"/>
+												<polyline fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" points="741.513,52.714 738.515,49.554       735.533,52.524     "/>
+												
+													<line fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" x1="738.453" y1="49.47" x2="738.624" y2="44.072"/>
+											</g>
+											<g>
+												
+													<rect x="673.431" y="70.988" transform="matrix(1 0.0082 -0.0082 1 0.6161 -5.6702)" fill="#9F1A59" width="39.991" height="2.981"/>
+												<g>
+													<g>
+														
+															<line fill="none" stroke="#40B9B0" stroke-width="2.5" stroke-miterlimit="10" x1="783.15" y1="78.717" x2="783.249" y2="66.687"/>
+														
+															<line fill="none" stroke="#40B9B0" stroke-width="2.5" stroke-miterlimit="10" x1="786.483" y1="76.26" x2="786.54" y2="69.197"/>
+														
+															<line fill="none" stroke="#40B9B0" stroke-width="2.5" stroke-miterlimit="10" x1="789.805" y1="74.908" x2="789.84" y2="70.604"/>
+													</g>
+												</g>
+												
+													<rect x="712.146" y="63.072" transform="matrix(1 0.0084 -0.0084 1 0.6393 -6.0142)" fill="#CAA51A" width="2.547" height="19.448"/>
+												
+													<rect x="752.134" y="63.399" transform="matrix(1 0.0082 -0.0082 1 0.6283 -6.2071)" fill="#CAA51A" width="2.547" height="19.449"/>
+												
+													<rect x="721.916" y="71.343" transform="matrix(1 0.0082 -0.0082 1 0.6215 -6.0342)" fill="#9F1A59" width="29.617" height="2.981"/>
+												
+													<rect x="737.579" y="57.119" transform="matrix(1 0.0086 -0.0086 1 0.5744 -6.3162)" fill="#9F1A59" width="1.941" height="13.726"/>
+												
+													<rect x="761.681" y="71.087" transform="matrix(1 0.0082 -0.0082 1 0.62 -6.2882)" fill="#9F1A59" width="13.239" height="2.98"/>
+												
+													<rect x="774.921" y="71.175" transform="matrix(1 0.0082 -0.0082 1 0.6219 -6.385)" fill="#40B9B0" width="8.278" height="2.98"/>
+												
+													<rect x="759.958" y="63.463" transform="matrix(1 0.008 -0.008 1 0.6135 -6.1223)" fill="#CAA51A" width="2.549" height="19.449"/>
+												
+													<rect x="719.971" y="63.135" transform="matrix(1 0.0082 -0.0082 1 0.6248 -5.9398)" fill="#CAA51A" width="2.548" height="19.449"/>
+											</g>
+										</g>
+										<g id="_x31_11_1_">
+											<g id="newMWsvg_1_">
+												<circle fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" cx="1331.365" cy="35.035" r="8.612"/>
+												<circle fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" cx="1316.789" cy="21.116" r="8.611"/>
+												<polyline fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" points="1320.213,25.437 1317.214,22.277       1314.232,25.247     "/>
+												
+													<line fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" x1="1317.152" y1="22.193" x2="1317.323" y2="16.795"/>
+												<polygon fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" points="1329.597,39.098 1335.258,36.167       1329.855,33.042     "/>
+												<circle fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" cx="1331.365" cy="21.116" r="8.611"/>
+												<polyline fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" points="1334.788,25.437 1331.789,22.277       1328.809,25.247     "/>
+												
+													<line fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" x1="1331.729" y1="22.193" x2="1331.898" y2="16.795"/>
+												<circle fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" cx="1316.789" cy="35.035" r="8.611"/>
+												<polyline fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" points="1320.213,39.356 1317.214,36.196       1314.232,39.166     "/>
+												
+													<line fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" x1="1317.152" y1="36.112" x2="1317.323" y2="30.714"/>
+												<circle fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" cx="1324.619" cy="48.281" r="8.611"/>
+												<polyline fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" points="1328.043,52.602 1325.044,49.442       1322.063,52.412     "/>
+												
+													<line fill="none" stroke="#A9165D" stroke-width="1.2" stroke-miterlimit="10" x1="1324.982" y1="49.358" x2="1325.153" y2="43.96"/>
+											</g>
+											<g>
+												
+													<rect x="1259.96" y="70.876" transform="matrix(1 0.0082 -0.0082 1 0.6348 -10.4684)" fill="#9F1A59" width="39.991" height="2.981"/>
+												<g>
+													<g>
+														
+															<line fill="none" stroke="#40B9B0" stroke-width="2.5" stroke-miterlimit="10" x1="1369.68" y1="78.605" x2="1369.777" y2="66.575"/>
+														
+															<line fill="none" stroke="#40B9B0" stroke-width="2.5" stroke-miterlimit="10" x1="1373.012" y1="76.148" x2="1373.069" y2="69.085"/>
+														
+															<line fill="none" stroke="#40B9B0" stroke-width="2.5" stroke-miterlimit="10" x1="1376.334" y1="74.796" x2="1376.369" y2="70.493"/>
+													</g>
+												</g>
+												
+													<rect x="1298.675" y="62.96" transform="matrix(1 0.0084 -0.0084 1 0.6594 -10.9629)" fill="#CAA51A" width="2.547" height="19.448"/>
+												
+													<rect x="1338.664" y="63.287" transform="matrix(1 0.0082 -0.0082 1 0.6475 -11.0434)" fill="#CAA51A" width="2.547" height="19.449"/>
+												
+													<rect x="1308.445" y="71.231" transform="matrix(1 0.0082 -0.0082 1 0.6403 -10.8403)" fill="#9F1A59" width="29.616" height="2.981"/>
+												
+													<rect x="1324.108" y="57.007" transform="matrix(1 0.0086 -0.0086 1 0.595 -11.3341)" fill="#9F1A59" width="1.941" height="13.726"/>
+												
+													<rect x="1348.21" y="70.976" transform="matrix(1 0.0082 -0.0082 1 0.6387 -11.0901)" fill="#9F1A59" width="13.24" height="2.98"/>
+												
+													<rect x="1361.45" y="71.064" transform="matrix(1 0.0082 -0.0082 1 0.6407 -11.1932)" fill="#40B9B0" width="8.279" height="2.98"/>
+												
+													<rect x="1346.488" y="63.351" transform="matrix(1 0.008 -0.008 1 0.6316 -10.8414)" fill="#CAA51A" width="2.549" height="19.449"/>
+												
+													<rect x="1306.5" y="63.023" transform="matrix(1 0.0082 -0.0082 1 0.6436 -10.77)" fill="#CAA51A" width="2.549" height="19.449"/>
+											</g>
+										</g>
+									</g>
 								<path fill="none" stroke="#40B9B0" stroke-width="2.5" stroke-miterlimit="10"
 									d="M1420.582,668.486"></path>
 								<g>
@@ -168,31 +274,15 @@
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 446.7263 92.4893)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 436.7263 92.4893)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											P
-										</text>
-										<text transform="matrix(1 0 0 1 453.6951 92.4893)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MW)
-										</text>
-										<text transform="matrix(1 0 0 1 475.155 92.4893)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											P(MVar):
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 438.7039 114.7744)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 436.7039 114.7744)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											Q
-										</text>
-										<text transform="matrix(1 0 0 1 447.9861 114.7744)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MVar)
-										</text>
-										<text transform="matrix(1 0 0 1 475.155 114.7744)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											Q(MVar):
 										</text>
 									</g>
 									<rect x="433.904" y="121.662" opacity="0.9" fill="#162320"
@@ -266,31 +356,15 @@
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 511.6243 300.1123)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 501.6243 300.1123)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											P
-										</text>
-										<text transform="matrix(1 0 0 1 518.5935 300.1123)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MW)
-										</text>
-										<text transform="matrix(1 0 0 1 540.0535 300.1123)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											P(MVar):
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 503.6018 322.3975)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											Q
-										</text>
-										<text transform="matrix(1 0 0 1 512.8835 322.3975)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MVar)
-										</text>
-										<text transform="matrix(1 0 0 1 540.053 322.3975)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 501.6018 322.3975)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											Q(MVar):
 										</text>
 									</g>
 									<rect x="482.332" y="328.749" opacity="0.9" fill="#162320"
@@ -322,31 +396,15 @@
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 511.6243 441.124)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											P
-										</text>
-										<text transform="matrix(1 0 0 1 518.5935 441.124)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MW)
-										</text>
-										<text transform="matrix(1 0 0 1 540.0535 441.124)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 501.6243 441.124)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											P(MVar):
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 503.6018 463.4092)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 501.6018 463.4092)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											Q
-										</text>
-										<text transform="matrix(1 0 0 1 512.8835 463.4092)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MVar)
-										</text>
-										<text transform="matrix(1 0 0 1 540.053 463.4092)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											Q(MVar):
 										</text>
 									</g>
 									<rect x="482.332" y="469.761" opacity="0.9" fill="#162320"
@@ -578,31 +636,15 @@
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 1019.0598 92.4893)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 1009.0598 92.4893)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											P
-										</text>
-										<text transform="matrix(1 0 0 1 1026.0286 92.4893)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MW)
-										</text>
-										<text transform="matrix(1 0 0 1 1047.4875 92.4893)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											P(MVar):
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 1011.0364 114.7744)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 1009.0364 114.7744)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											Q
-										</text>
-										<text transform="matrix(1 0 0 1 1020.3196 114.7744)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MVar)
-										</text>
-										<text transform="matrix(1 0 0 1 1047.4875 114.7744)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											Q(MVar):
 										</text>
 									</g>
 									<rect x="1006.239" y="121.662" opacity="0.9" fill="#162320"
@@ -1051,31 +1093,15 @@
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 1065.0793 300.1123)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											P
-										</text>
-										<text transform="matrix(1 0 0 1 1072.0481 300.1123)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MW)
-										</text>
-										<text transform="matrix(1 0 0 1 1093.5071 300.1123)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 1055.0793 300.1123)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											P(MVar):
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 1057.0559 322.3975)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 1055.0559 322.3975)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											Q
-										</text>
-										<text transform="matrix(1 0 0 1 1066.3391 322.3975)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MVar)
-										</text>
-										<text transform="matrix(1 0 0 1 1093.5071 322.3975)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											Q(MVar):
 										</text>
 									</g>
 									<rect x="1035.789" y="328.749" opacity="0.9" fill="#162320"
@@ -1107,31 +1133,15 @@
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 1065.0793 441.124)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 1055.0793 441.124)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											P
-										</text>
-										<text transform="matrix(1 0 0 1 1072.0481 441.124)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MW)
-										</text>
-										<text transform="matrix(1 0 0 1 1093.5071 441.124)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											P(MVar):
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 1057.0559 463.4092)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 1055.0559 463.4092)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											Q
-										</text>
-										<text transform="matrix(1 0 0 1 1066.3391 463.4092)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MVar)
-										</text>
-										<text transform="matrix(1 0 0 1 1093.5071 463.4092)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											Q(MVar):
 										</text>
 									</g>
 									<rect x="1035.789" y="469.761" opacity="0.9" fill="#162320"
@@ -1189,31 +1199,15 @@
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 1607.9778 441.124)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 1597.9778 441.124)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											P
-										</text>
-										<text transform="matrix(1 0 0 1 1614.9465 441.124)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MW)
-										</text>
-										<text transform="matrix(1 0 0 1 1636.4055 441.124)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											P(MVar):
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 1599.9543 463.4092)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											Q
-										</text>
-										<text transform="matrix(1 0 0 1 1609.2375 463.4092)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MVar)
-										</text>
-										<text transform="matrix(1 0 0 1 1636.4055 463.4092)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 1597.9543 463.4092)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											Q(MVar):
 										</text>
 									</g>
 									<rect x="1578.688" y="469.761" opacity="0.9" fill="#162320"
@@ -1733,11 +1727,11 @@
 								</text>
 								<text transform="matrix(1 0 0 1 54.8938 641.6475)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									31-0
 								</text>
 								<text transform="matrix(1 0 0 1 135.5364 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-1
+									312-1
 								</text>
 								<g>
 									<line fill="none" stroke="#40B9B0" stroke-width="2.5" stroke-miterlimit="10"
@@ -1754,7 +1748,7 @@
 								</g>
 								<text transform="matrix(1 0 0 1 135.5364 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									312-3
 								</text>
 								<g>
 									<rect x="8.706" y="801.938" fill="#44426C" width="72.313" height="20.817" />
@@ -1898,11 +1892,11 @@
 								</text>
 								<text transform="matrix(1 0 0 1 218.0364 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-1
+									313-1
 								</text>
 								<text transform="matrix(1 0 0 1 218.0364 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									313-3
 								</text>
 								<g>
 									<rect x="172.682" y="801.938" fill="#44426C" width="72.314" height="20.817" />
@@ -1941,11 +1935,11 @@
 								</text>
 								<text transform="matrix(1 0 0 1 299.0305 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-1
+									314-1
 								</text>
 								<text transform="matrix(1 0 0 1 299.0305 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									314-3
 								</text>
 								<g>
 									<rect x="253.676" y="801.938" fill="#44426C" width="72.313" height="20.817" />
@@ -1984,17 +1978,17 @@
 								</text>
 								<text transform="matrix(1 0 0 1 382.345 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-1
+									315-1
 								</text>
 								<text transform="matrix(1 0 0 1 382.345 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									315-3
 								</text>
 								<g>
 									<rect x="335.99" y="801.938" fill="#44426C" width="72.313" height="20.817" />
 									<text transform="matrix(1 0 0 1 345.6023 816.4912)" fill="#FFFFFF"
 										font-family="'MicrosoftYaHei'" font-size="12.5667">
-										#1电容器
+										315备用
 									</text>
 								</g>
 								<rect x="370.141" y="521.988" fill="#CAA51A" width="2.25" height="11.584" />
@@ -2029,17 +2023,17 @@
 								</text>
 								<text transform="matrix(1 0 0 1 464.7073 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-1
+									316-1
 								</text>
 								<text transform="matrix(1 0 0 1 464.7073 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									316-3
 								</text>
 								<g>
 									<rect x="418.353" y="801.938" fill="#44426C" width="72.313" height="20.817" />
 									<text transform="matrix(1 0 0 1 427.9646 816.4912)" fill="#FFFFFF"
 										font-family="'MicrosoftYaHei'" font-size="12.5667">
-										#1电抗
+										316补偿
 									</text>
 								</g>
 								<g>
@@ -2067,7 +2061,7 @@
 								</text>
 								<text transform="matrix(1 0 0 1 545.7805 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-1
+									317-1
 								</text>
 								<rect x="533.575" y="521.988" fill="#CAA51A" width="2.25" height="11.584" />
 								<rect x="533.582" y="556.988" fill="#CAA51A" width="2.25" height="131.657" />
@@ -2095,11 +2089,11 @@
 								</text>
 								<text transform="matrix(1 0 0 1 702.4919 641.6475)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									32-0
 								</text>
 								<text transform="matrix(1 0 0 1 783.1345 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-2
+									321-2
 								</text>
 								<g>
 									<line fill="none" stroke="#40B9B0" stroke-width="2.5" stroke-miterlimit="10"
@@ -2116,7 +2110,7 @@
 								</g>
 								<text transform="matrix(1 0 0 1 783.1345 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									321-3
 								</text>
 								<g>
 									<rect x="656.304" y="801.938" fill="#44426C" width="72.313" height="20.817" />
@@ -2139,7 +2133,7 @@
 								<rect x="690.544" y="564.406" fill="#CAA51A" width="20.5" height="2.25" />
 								<text transform="matrix(1 0 0 1 786.0857 761.8877)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									321-0
 								</text>
 								<rect x="771.93" y="668.229" fill="#CAA51A" width="2.25" height="123.418" />
 								<rect x="793.037" y="688.646" fill="#CAA51A" width="2.25" height="20.5" />
@@ -2261,11 +2255,11 @@
 								</text>
 								<text transform="matrix(1 0 0 1 865.6345 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-2
+									322-2
 								</text>
 								<text transform="matrix(1 0 0 1 865.6345 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									322-3
 								</text>
 								<g>
 									<rect x="820.28" y="801.938" fill="#44426C" width="72.313" height="20.817" />
@@ -2278,7 +2272,7 @@
 								<rect x="853.438" y="556.988" fill="#CAA51A" width="2.25" height="88.418" />
 								<text transform="matrix(1 0 0 1 868.5857 761.8877)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									322-0
 								</text>
 								<rect x="854.43" y="668.229" fill="#CAA51A" width="2.25" height="123.418" />
 								<rect x="875.537" y="688.646" fill="#CAA51A" width="2.25" height="20.5" />
@@ -2304,11 +2298,11 @@
 								</text>
 								<text transform="matrix(1 0 0 1 946.6292 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-2
+									323-2
 								</text>
 								<text transform="matrix(1 0 0 1 946.6292 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									323-3
 								</text>
 								<g>
 									<rect x="901.273" y="801.938" fill="#44426C" width="72.314" height="20.817" />
@@ -2321,7 +2315,7 @@
 								<rect x="934.431" y="556.988" fill="#CAA51A" width="2.25" height="88.418" />
 								<text transform="matrix(1 0 0 1 949.5803 761.8877)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									323-0
 								</text>
 								<rect x="935.425" y="668.229" fill="#CAA51A" width="2.25" height="123.418" />
 								<rect x="956.531" y="688.646" fill="#CAA51A" width="2.25" height="20.5" />
@@ -2347,24 +2341,24 @@
 								</text>
 								<text transform="matrix(1 0 0 1 1029.9426 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-2
+									325-2
 								</text>
 								<text transform="matrix(1 0 0 1 1029.9426 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									325-3
 								</text>
 								<g>
 									<rect x="983.588" y="801.938" fill="#44426C" width="72.313" height="20.817" />
 									<text transform="matrix(1 0 0 1 993.1985 816.4912)" fill="#FFFFFF"
 										font-family="'MicrosoftYaHei'" font-size="12.5667">
-										#2电容器
+										325备用
 									</text>
 								</g>
 								<rect x="1017.739" y="521.988" fill="#CAA51A" width="2.25" height="11.584" />
 								<rect x="1017.744" y="556.988" fill="#CAA51A" width="2.25" height="88.418" />
 								<text transform="matrix(1 0 0 1 1032.8938 761.8877)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									325-0
 								</text>
 								<rect x="1018.739" y="668.229" fill="#CAA51A" width="2.25" height="104.678" />
 								<rect x="1039.846" y="688.646" fill="#CAA51A" width="2.25" height="20.5" />
@@ -2392,17 +2386,17 @@
 								</text>
 								<text transform="matrix(1 0 0 1 1112.304 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-2
+									326-2
 								</text>
 								<text transform="matrix(1 0 0 1 1112.304 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									326-3
 								</text>
 								<g>
 									<rect x="1065.949" y="801.938" fill="#44426C" width="72.313" height="20.817" />
 									<text transform="matrix(1 0 0 1 1075.5618 816.4912)" fill="#FFFFFF"
 										font-family="'MicrosoftYaHei'" font-size="12.5667">
-										#2电抗
+										326补偿
 									</text>
 								</g>
 								<g>
@@ -2416,7 +2410,7 @@
 								<rect x="1100.108" y="556.988" fill="#CAA51A" width="2.25" height="88.418" />
 								<text transform="matrix(1 0 0 1 1115.2551 761.8877)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									326-0
 								</text>
 								<rect x="1101.1" y="668.229" fill="#CAA51A" width="2.25" height="104.678" />
 								<rect x="1122.207" y="688.646" fill="#CAA51A" width="2.25" height="20.5" />
@@ -2430,7 +2424,7 @@
 								</text>
 								<text transform="matrix(1 0 0 1 1193.3782 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-2
+									327-2
 								</text>
 								<rect x="1181.174" y="521.988" fill="#CAA51A" width="2.25" height="11.584" />
 								<rect x="1181.182" y="556.988" fill="#CAA51A" width="2.25" height="131.657" />
@@ -2458,11 +2452,11 @@
 								</text>
 								<text transform="matrix(1 0 0 1 1349.8743 641.6475)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									35-0
 								</text>
 								<text transform="matrix(1 0 0 1 1430.5168 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-5
+									351-5
 								</text>
 								<g>
 									<line fill="none" stroke="#40B9B0" stroke-width="2.5" stroke-miterlimit="10"
@@ -2479,7 +2473,7 @@
 								</g>
 								<text transform="matrix(1 0 0 1 1430.5168 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									351-3
 								</text>
 								<g>
 									<rect x="1303.688" y="801.938" fill="#44426C" width="72.313" height="20.817" />
@@ -2502,7 +2496,7 @@
 								<rect x="1337.928" y="564.406" fill="#CAA51A" width="20.5" height="2.25" />
 								<text transform="matrix(1 0 0 1 1433.468 761.8877)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									351-0
 								</text>
 								<rect x="1419.313" y="668.229" fill="#CAA51A" width="2.25" height="123.418" />
 								<rect x="1440.42" y="688.646" fill="#CAA51A" width="2.25" height="20.5" />
@@ -2624,11 +2618,11 @@
 								</text>
 								<text transform="matrix(1 0 0 1 1513.0168 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-5
+									353-5
 								</text>
 								<text transform="matrix(1 0 0 1 1513.0168 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									353-3
 								</text>
 								<g>
 									<rect x="1467.662" y="801.938" fill="#44426C" width="72.313" height="20.817" />
@@ -2641,7 +2635,7 @@
 								<rect x="1500.821" y="556.988" fill="#CAA51A" width="2.25" height="88.418" />
 								<text transform="matrix(1 0 0 1 1515.968 761.8877)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									353-0
 								</text>
 								<rect x="1501.813" y="668.229" fill="#CAA51A" width="2.25" height="123.418" />
 								<rect x="1522.92" y="688.646" fill="#CAA51A" width="2.25" height="20.5" />
@@ -2667,11 +2661,11 @@
 								</text>
 								<text transform="matrix(1 0 0 1 1594.011 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-5
+									354-5
 								</text>
 								<text transform="matrix(1 0 0 1 1594.011 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									354-3
 								</text>
 								<g>
 									<rect x="1548.656" y="801.938" fill="#44426C" width="72.313" height="20.817" />
@@ -2684,7 +2678,7 @@
 								<rect x="1581.814" y="556.988" fill="#CAA51A" width="2.25" height="88.418" />
 								<text transform="matrix(1 0 0 1 1596.9622 761.8877)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									354-0
 								</text>
 								<rect x="1582.809" y="668.229" fill="#CAA51A" width="2.25" height="123.418" />
 								<rect x="1603.916" y="688.646" fill="#CAA51A" width="2.25" height="20.5" />
@@ -2710,24 +2704,24 @@
 								</text>
 								<text transform="matrix(1 0 0 1 1677.3254 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-5
+									355-5
 								</text>
 								<text transform="matrix(1 0 0 1 1677.3254 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									355-3
 								</text>
 								<g>
 									<rect x="1630.973" y="801.938" fill="#44426C" width="72.313" height="20.817" />
 									<text transform="matrix(1 0 0 1 1640.5833 816.4912)" fill="#FFFFFF"
 										font-family="'MicrosoftYaHei'" font-size="12.5667">
-										#3电容器
+										355备用
 									</text>
 								</g>
 								<rect x="1665.123" y="521.988" fill="#CAA51A" width="2.25" height="11.584" />
 								<rect x="1665.129" y="556.988" fill="#CAA51A" width="2.25" height="88.418" />
 								<text transform="matrix(1 0 0 1 1680.2766 761.8877)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									355-0
 								</text>
 								<rect x="1666.123" y="668.229" fill="#CAA51A" width="2.25" height="104.678" />
 								<rect x="1687.23" y="688.646" fill="#CAA51A" width="2.25" height="20.5" />
@@ -2755,17 +2749,17 @@
 								</text>
 								<text transform="matrix(1 0 0 1 1759.6887 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-1
+									356-1
 								</text>
 								<text transform="matrix(1 0 0 1 1759.6887 663.8584)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-3
+									356-3
 								</text>
 								<g>
 									<rect x="1713.334" y="801.938" fill="#44426C" width="72.313" height="20.817" />
 									<text transform="matrix(1 0 0 1 1722.9446 816.4912)" fill="#FFFFFF"
 										font-family="'MicrosoftYaHei'" font-size="12.5667">
-										#3电抗
+										356补偿
 									</text>
 								</g>
 								<g>
@@ -2779,7 +2773,7 @@
 								<rect x="1747.492" y="556.988" fill="#CAA51A" width="2.25" height="88.418" />
 								<text transform="matrix(1 0 0 1 1762.6399 761.8877)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-0
+									356-0
 								</text>
 								<rect x="1748.484" y="668.229" fill="#CAA51A" width="2.25" height="104.678" />
 								<rect x="1769.592" y="688.646" fill="#CAA51A" width="2.25" height="20.5" />
@@ -2793,7 +2787,7 @@
 								</text>
 								<text transform="matrix(1 0 0 1 1840.761 550.1611)" fill="#FFFFFF"
 									font-family="'MicrosoftYaHei'" font-size="11.9907">
-									-5
+									357-5
 								</text>
 								<rect x="1828.559" y="521.988" fill="#CAA51A" width="2.25" height="11.584" />
 								<rect x="1828.564" y="556.988" fill="#CAA51A" width="2.25" height="131.657" />
@@ -2825,17 +2819,9 @@
 											font-family="'MicrosoftYaHei'" font-size="10.7648">
 											):
 										</text>
-										<text transform="matrix(1 0 0 1 -20.76 867.3301)" fill="#FFFFFF"
-											font-family="'MicrosoftYaHei'" font-size="10.7648">
-											P(
-										</text>
-										<text transform="matrix(1 0 0 1 -10.5789 867.3301)" fill="#FFFFFF"
-											font-family="'MicrosoftYaHei'" font-size="8.6118">
-											kW
-										</text>
-										<text transform="matrix(1 0 0 1 2.8728 867.3301)" fill="#FFFFFF"
+										<text transform="matrix(1 0 0 1 -28.76 867.3301)" fill="#FFFFFF"
 											font-family="'MicrosoftYaHei'" font-size="10.7648">
-											):
+											P(kVar):
 										</text>
 										<text transform="matrix(1 0 0 1 -28.0549 893.1807)" fill="#FFFFFF"
 											font-family="'MicrosoftYaHei'" font-size="10.7648">
@@ -2873,31 +2859,15 @@
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 1599.0598 113.8252)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											P
-										</text>
-										<text transform="matrix(1 0 0 1 1606.0286 113.8252)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MW)
-										</text>
-										<text transform="matrix(1 0 0 1 1627.4875 113.8252)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 1589.0598 113.8252)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											P(MVar):
 										</text>
 									</g>
 									<g>
-										<text transform="matrix(1 0 0 1 1591.0364 136.1104)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											Q
-										</text>
-										<text transform="matrix(1 0 0 1 1600.3196 136.1104)" fill="#97A1A2"
-											font-family="'MicrosoftYaHei'" font-size="9.6234">
-											(MVar)
-										</text>
-										<text transform="matrix(1 0 0 1 1627.4875 136.1104)" fill="#97A1A2"
+										<text transform="matrix(1 0 0 1 1589.0364 136.1104)" fill="#97A1A2"
 											font-family="'MicrosoftYaHei'" font-size="11.3899">
-											:
+											Q(MVar):
 										</text>
 									</g>
 									<rect x="1586.239" y="142.159" opacity="0.9" fill="#162320"
@@ -5455,7 +5425,8 @@
 	}
 
 	.svg {
-		width: 100%;
-		height: 100%;
+		margin-left:5%;
+		width: 90%;
+		height: 90%;
 	}
 </style>

+ 35 - 290
src/views/WindSite/components/boosterstation/pl1.vue

@@ -499,54 +499,22 @@
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 210.6501 296.7874)"
+                    transform="matrix(1 0 0 1 200.6501 296.7874)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    P
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 217.6189 296.7874)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MM)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 239.0789 296.7874)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    P(kVar):
                   </text>
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 202.6277 319.0725)"
+                    transform="matrix(1 0 0 1 200.6277 319.0725)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    Q
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 211.9099 319.0725)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MVar)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 239.0789 319.0725)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    Q(kVar):
                   </text>
                 </g>
                 <g>
@@ -1322,54 +1290,22 @@
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 478.2029 297.5061)"
+                    transform="matrix(1 0 0 1 468.2029 297.5061)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    P
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 485.1716 297.5061)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MM)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 506.6316 297.5061)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    P(kVar):
                   </text>
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 470.1804 319.7913)"
+                    transform="matrix(1 0 0 1 465.1804 319.7913)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    Q
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 479.4626 319.7913)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MVar)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 506.6316 319.7913)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    Q(kVar):
                   </text>
                 </g>
                 <g>
@@ -2000,54 +1936,22 @@
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 736.8811 297.5061)"
+                    transform="matrix(1 0 0 1 726.8811 297.5061)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    P
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 743.8503 297.5061)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MM)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 765.3103 297.5061)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    P(kVar):
                   </text>
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 728.8586 319.7913)"
+                    transform="matrix(1 0 0 1 726.8586 319.7913)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    Q
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 738.1404 319.7913)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MVar)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 765.3098 319.7913)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    Q(kVar):
                   </text>
                 </g>
                 <g>
@@ -2152,54 +2056,22 @@
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 1012.592 298.51)"
+                    transform="matrix(1 0 0 1 1002.592 298.51)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    P
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1019.5608 298.51)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MM)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1041.0198 298.51)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    P(kVar):
                   </text>
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 1004.5686 320.7952)"
+                    transform="matrix(1 0 0 1 1002.5686 320.7952)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    Q
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1013.8499 320.7952)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MVar)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1041.0198 320.7952)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    Q(kVar):
                   </text>
                 </g>
                 <g>
@@ -2834,28 +2706,12 @@
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 1659.2854 298.51)"
+                    transform="matrix(1 0 0 1 1649.2854 298.51)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    P
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1666.2542 298.51)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MM)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1687.7151 298.51)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    P(kVar):
                   </text>
                 </g>
                 <g>
@@ -2865,23 +2721,7 @@
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    Q
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1660.5452 320.7952)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MVar)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1687.7151 320.7952)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    Q(kVar):
                   </text>
                 </g>
                 <g>
@@ -3429,54 +3269,22 @@
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 1319.7991 298.51)"
+                    transform="matrix(1 0 0 1 1309.7991 298.51)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    P
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1326.7678 298.51)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MM)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1348.2288 298.51)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    P(kVar):
                   </text>
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 1311.7776 320.7952)"
+                    transform="matrix(1 0 0 1 1309.7776 320.7952)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    Q
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1321.0588 320.7952)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MVar)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1348.2268 320.7952)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    Q(kVar):
                   </text>
                 </g>
                 <g>
@@ -4167,54 +3975,22 @@
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 711.0769 139.5452)"
+                    transform="matrix(1 0 0 1 701.0769 139.5452)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    P
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 718.0457 139.5452)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MM)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 739.5056 139.5452)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    P(MVar):
                   </text>
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 703.0544 161.8303)"
+                    transform="matrix(1 0 0 1 701.0544 161.8303)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    Q
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 712.3367 161.8303)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MVar)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 739.5056 161.8303)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    Q(MVar):
                   </text>
                 </g>
                 <g>
@@ -4291,54 +4067,22 @@
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 1327.4456 129.2971)"
+                    transform="matrix(1 0 0 1 1317.4456 129.2971)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    P
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1334.4143 129.2971)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MM)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1355.8752 129.2971)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    P(MVar):
                   </text>
                 </g>
                 <g>
                   <text
-                    transform="matrix(1 0 0 1 1319.4241 151.5823)"
+                    transform="matrix(1 0 0 1 1316.4241 151.5823)"
                     fill="#97A1A2"
                     font-family="'MicrosoftYaHei'"
                     font-size="11.3899"
                   >
-                    Q
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1328.7053 151.5823)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="9.6234"
-                  >
-                    (MVar)
-                  </text>
-                  <text
-                    transform="matrix(1 0 0 1 1355.8733 151.5823)"
-                    fill="#97A1A2"
-                    font-family="'MicrosoftYaHei'"
-                    font-size="11.3899"
-                  >
-                    :
+                    Q(MVar):
                   </text>
                 </g>
                 <g>
@@ -4468,7 +4212,7 @@
                   font-family="'MicrosoftYaHei'"
                   font-size="15"
                 >
-                  输出功率(MM):
+                  输出功率(kw):
                 </text>
               </g>
               <g id="arrow">
@@ -5553,7 +5297,8 @@ export default {
 }
 
 .svg {
-  width: 100%;
-  height: 100%;
+  margin-left:5%;
+  width: 90%;
+  height: 90%;
 }
 </style>

+ 14 - 53
src/views/WindSite/components/boosterstation/pl2.vue

@@ -124,17 +124,9 @@
 									</text>
 								</g>
 								<g>
-									<text transform="matrix(1 0 0 1 159.8337 82.063)" fill="#97A1A2"
+									<text transform="matrix(1 0 0 1 149.8337 82.063)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										P
-									</text>
-									<text transform="matrix(1 0 0 1 166.8015 82.063)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="9.6234">
-										(MM)
-									</text>
-									<text transform="matrix(1 0 0 1 188.2629 82.063)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										:
+										P(kVar):
 									</text>
 								</g>
 								<rect x="870.11" y="54.162" opacity="0.9" fill="#162320" enable-background="new    "
@@ -156,17 +148,9 @@
 									</text>
 								</g>
 								<g>
-									<text transform="matrix(1 0 0 1 920.3459 86.4722)" fill="#97A1A2"
+									<text transform="matrix(1 0 0 1 910.3459 86.4722)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										P
-									</text>
-									<text transform="matrix(1 0 0 1 927.3142 86.4722)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="9.6234">
-										(MM)
-									</text>
-									<text transform="matrix(1 0 0 1 948.7742 86.4722)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										:
+										P(kVar):
 									</text>
 								</g>
 								<rect x="870.11" y="95.087" opacity="0.9" fill="#162320" enable-background="new    "
@@ -204,17 +188,9 @@
 									</text>
 								</g>
 								<g>
-									<text transform="matrix(1 0 0 1 1502.6492 193.9634)" fill="#97A1A2"
+									<text transform="matrix(1 0 0 1 1492.6492 193.9634)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										P
-									</text>
-									<text transform="matrix(1 0 0 1 1509.6179 193.9634)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="9.6234">
-										(MW)
-									</text>
-									<text transform="matrix(1 0 0 1 1531.0779 193.9634)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										:
+										P(kVar):
 									</text>
 								</g>
 								<rect x="1452.414" y="202.58" opacity="0.9" fill="#162320" enable-background="new    "
@@ -252,17 +228,9 @@
 									</text>
 								</g>
 								<g>
-									<text transform="matrix(1 0 0 1 1713.8718 191.0923)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										P
-									</text>
-									<text transform="matrix(1 0 0 1 1720.8406 191.0923)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="9.6234">
-										(MM)
-									</text>
-									<text transform="matrix(1 0 0 1 1742.3005 191.0923)" fill="#97A1A2"
+									<text transform="matrix(1 0 0 1 1703.8718 191.0923)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										:
+										P(kVar):
 									</text>
 								</g>
 								<rect x="1562.98" y="42.351" opacity="0.9" fill="#162320" enable-background="new    "
@@ -284,17 +252,9 @@
 									</text>
 								</g>
 								<g>
-									<text transform="matrix(1 0 0 1 1584.4617 74.6606)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										P
-									</text>
-									<text transform="matrix(1 0 0 1 1591.4314 74.6606)" fill="#97A1A2"
-										font-family="'MicrosoftYaHei'" font-size="9.6234">
-										(MM)
-									</text>
-									<text transform="matrix(1 0 0 1 1612.8914 74.6606)" fill="#97A1A2"
+									<text transform="matrix(1 0 0 1 1574.4617 74.6606)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
-										:
+										P(kVar):
 									</text>
 								</g>
 								<rect x="1562.98" y="83.277" opacity="0.9" fill="#162320" enable-background="new    "
@@ -306,7 +266,7 @@
 									</text>
 									<text transform="matrix(1 0 0 1 1585.7214 95.0884)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="9.6234">
-										(MVar)
+										(kVar)
 									</text>
 									<text transform="matrix(1 0 0 1 1612.8914 95.0884)" fill="#97A1A2"
 										font-family="'MicrosoftYaHei'" font-size="11.3899">
@@ -3650,7 +3610,8 @@
 	}
 
 	.svg {
-		width: 100%;
-		height: 100%;
+		margin-left:5%;
+		width: 90%;
+		height: 90%;
 	}
 </style>

File diff suppressed because it is too large
+ 1039 - 5430
src/views/WindSite/components/boosterstation/qs.vue


File diff suppressed because it is too large
+ 821 - 3478
src/views/WindSite/components/boosterstation/sbdl.vue


File diff suppressed because it is too large
+ 1720 - 3279
src/views/WindSite/components/boosterstation/sbq.vue


+ 27 - 123
src/views/WindSite/components/boosterstation/xh.vue

@@ -84,10 +84,10 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MW)
+              (MVar)
             </text>
             <text
-              transform="matrix(1 0 0 1 1048.9119 65.8411)"
+              transform="matrix(1 0 0 1 1052.9119 65.8411)"
               fill="#96A0A1"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
@@ -113,7 +113,7 @@
               (MVar)
             </text>
             <text
-              transform="matrix(1 0 0 1 1048.5251 88.1272)"
+              transform="matrix(1 0 0 1 1052.5251 88.1272)"
               fill="#96A0A1"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
@@ -663,28 +663,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 63.3206 234.0979)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 70.2893 234.0979)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MM)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 91.7498 234.0979)"
+              transform="matrix(1 0 0 1 55.3206 234.0979)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              :
+              P(kVar):
             </text>
           </g>
           <g>
@@ -702,7 +686,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MVar)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 91.7493 256.3821)"
@@ -803,28 +787,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 520.6536 388.0686)"
+              transform="matrix(1 0 0 1 512.6536 388.0686)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 527.6223 388.0686)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MM)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 549.0823 388.0686)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(kVar):
             </text>
           </g>
           <g>
@@ -842,7 +810,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MVar)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 549.0823 410.3547)"
@@ -943,28 +911,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 63.3206 493.3762)"
+              transform="matrix(1 0 0 1 55.3206 493.3762)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 70.2893 493.3762)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MM)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 91.7498 493.3762)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(kVar):
             </text>
           </g>
           <g>
@@ -982,7 +934,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MVar)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 91.7493 515.6604)"
@@ -1096,7 +1048,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MVar)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 352.1238 523.7493)"
@@ -1181,28 +1133,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 740.0774 352.0559)"
+              transform="matrix(1 0 0 1 732.0774 352.0559)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 747.0461 352.0559)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MM)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 768.5061 352.0559)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(kVar):
             </text>
           </g>
           <g>
@@ -1220,7 +1156,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MVar)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 768.5061 374.343)"
@@ -1305,28 +1241,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 966.0916 352.0559)"
+              transform="matrix(1 0 0 1 958.0916 352.0559)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 973.0603 352.0559)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MM)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 994.5212 352.0559)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(kVar):
             </text>
           </g>
           <g>
@@ -1344,7 +1264,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MVar)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 994.5212 374.343)"
@@ -2672,28 +2592,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 1211.0056 352.0559)"
+              transform="matrix(1 0 0 1 1207.0056 352.0559)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1217.9744 352.0559)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MW)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1243.8181 352.0559)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(kVar):
             </text>
           </g>
           <g>
@@ -2711,7 +2615,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MVar)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 1243.8181 374.343)"
@@ -2809,7 +2713,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MW)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 1458.8103 466.9661)"
@@ -2835,7 +2739,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MVar)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 1458.8123 489.2522)"
@@ -2933,7 +2837,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MW)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 1669.8103 466.9661)"
@@ -2959,7 +2863,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MVar)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 1669.8123 489.2522)"
@@ -8218,7 +8122,7 @@
                 font-family="'MicrosoftYaHei'"
                 font-size="12.1437"
               >
-                (MM)
+                (kVar)
               </text>
               <text
                 transform="matrix(1 0 0 1 45.3665 864.7239)"

+ 34 - 273
src/views/WindSite/components/boosterstation/xs.vue

@@ -1220,28 +1220,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 1054.0144 341.554)"
+              transform="matrix(1 0 0 1 1044.0144 341.554)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1060.9832 341.554)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MW)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1082.4431 341.554)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(MVar):
             </text>
           </g>
           <rect
@@ -1255,28 +1239,12 @@
           />
           <g>
             <text
-              transform="matrix(1 0 0 1 1045.9919 361.9807)"
+              transform="matrix(1 0 0 1 1043.9919 361.9807)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              Q
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1055.2742 361.9807)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MVar)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1082.4431 361.9807)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              Q(MVar):
             </text>
           </g>
           <rect
@@ -1334,54 +1302,22 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 563.5295 135.509)"
+              transform="matrix(1 0 0 1 553.5295 135.509)"
               fill="#96A0A1"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 570.4988 135.509)"
-              fill="#96A0A1"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MW)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 596.342 135.509)"
-              fill="#96A0A1"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(MVar):
             </text>
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 559.5066 157.7942)"
+              transform="matrix(1 0 0 1 557.5066 157.7942)"
               fill="#96A0A1"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              Q
-            </text>
-            <text
-              transform="matrix(1 0 0 1 568.7898 157.7942)"
-              fill="#96A0A1"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MVar)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 595.9578 157.7942)"
-              fill="#96A0A1"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              Q(MVar):
             </text>
           </g>
           <rect
@@ -1850,28 +1786,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 63.0144 445.3)"
+              transform="matrix(1 0 0 1 53.0144 445.3)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 69.9836 445.3)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MW)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 91.4441 445.3)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(MVar):
             </text>
           </g>
           <rect
@@ -1885,28 +1805,12 @@
           />
           <g>
             <text
-              transform="matrix(1 0 0 1 54.9919 465.7268)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              Q
-            </text>
-            <text
-              transform="matrix(1 0 0 1 64.2747 465.7268)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MVar)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 91.4431 465.7268)"
+              transform="matrix(1 0 0 1 52.9919 465.7268)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              :
+              Q(MVar):
             </text>
           </g>
           <rect
@@ -2025,28 +1929,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 1684.0154 445.3)"
+              transform="matrix(1 0 0 1 1674.0154 445.3)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1690.9841 445.3)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MW)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1712.4441 445.3)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(MVar):
             </text>
           </g>
           <rect
@@ -2060,28 +1948,12 @@
           />
           <g>
             <text
-              transform="matrix(1 0 0 1 1675.9929 465.7278)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              Q
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1685.2751 465.7278)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MVar)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1712.4441 465.7278)"
+              transform="matrix(1 0 0 1 1673.9929 465.7278)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              :
+              Q(MVar):
             </text>
           </g>
           <rect
@@ -2200,28 +2072,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 1684.5125 189.844)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1691.4812 189.844)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MM)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1712.9412 189.844)"
+              transform="matrix(1 0 0 1 1674.5125 189.844)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              :
+              P(MVar):
             </text>
           </g>
           <rect
@@ -2235,28 +2091,12 @@
           />
           <g>
             <text
-              transform="matrix(1 0 0 1 1676.49 210.2727)"
+              transform="matrix(1 0 0 1 1674.49 210.2727)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              Q
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1685.7722 210.2727)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MVar)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1712.9412 210.2727)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              Q(MVar):
             </text>
           </g>
           <rect
@@ -3123,28 +2963,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 21.4822 819.7336)"
+              transform="matrix(1 0 0 1 11.4822 819.7336)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 28.4504 819.7336)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MW)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 49.9114 819.7336)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(kVar):
             </text>
           </g>
           <rect
@@ -3171,7 +2995,7 @@
               font-family="'MicrosoftYaHei'"
               font-size="9.6234"
             >
-              (MVar)
+              (kVar)
             </text>
             <text
               transform="matrix(1 0 0 1 49.9109 840.1604)"
@@ -10142,28 +9966,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 63.0144 295.3)"
+              transform="matrix(1 0 0 1 53.0144 295.3)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 69.9836 295.3)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MW)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 91.4441 295.3)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              P(MVar):
             </text>
           </g>
           <rect
@@ -10177,28 +9985,12 @@
           />
           <g>
             <text
-              transform="matrix(1 0 0 1 54.9919 315.7268)"
+              transform="matrix(1 0 0 1 52.9919 315.7268)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              Q
-            </text>
-            <text
-              transform="matrix(1 0 0 1 64.2747 315.7268)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MVar)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 91.4431 315.7268)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              Q(MVar):
             </text>
           </g><g>
             <g>
@@ -10372,28 +10164,12 @@
           </g>
           <g>
             <text
-              transform="matrix(1 0 0 1 1063.0144 455.3)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              P
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1069.9836 455.3)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MW)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1091.4441 455.3)"
+              transform="matrix(1 0 0 1 1053.0144 455.3)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              :
+              P(MVar):
             </text>
           </g>
           <rect
@@ -10407,28 +10183,12 @@
           />
           <g>
             <text
-              transform="matrix(1 0 0 1 1054.9919 475.7268)"
+              transform="matrix(1 0 0 1 1052.9919 475.7268)"
               fill="#97A1A2"
               font-family="'MicrosoftYaHei'"
               font-size="11.3899"
             >
-              Q
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1064.2747 475.7268)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="9.6234"
-            >
-              (MVar)
-            </text>
-            <text
-              transform="matrix(1 0 0 1 1091.4431 475.7268)"
-              fill="#97A1A2"
-              font-family="'MicrosoftYaHei'"
-              font-size="11.3899"
-            >
-              :
+              Q(MVar):
             </text>
           </g><g>
             <g>
@@ -10646,7 +10406,8 @@ export default {
 
 <style scoped>
 .svg {
-  width: 100%;
-  height: 100%;
+	margin-left: 5%;
+  width: 90%;
+  height: 90%;
 }
 </style>

+ 3 - 2
src/views/WindSite/components/generalappearance/dwk.vue

@@ -1768,7 +1768,8 @@
 	}
 
 	.svg {
-		width: 100%;
-		height: 100%;
+		margin-left: 5%;
+		width: 90%;
+		height: 90%;
 	}
 </style>

File diff suppressed because it is too large
+ 5253 - 0
src/views/WindSite/components/generalappearance/hzj.vue


+ 3 - 4
src/views/WindSite/components/generalappearance/mch.vue

@@ -1475,7 +1475,6 @@
 		methods: {
 			// 渲染每个机箱的表格参数
 			renderData(data = {}) {
-				
 				let fmtNumber=function(num){
 					return parseInt(num)
 				};
@@ -1499,7 +1498,6 @@
 						// 渲染电柜参数数据
 						const spKey = fmtNumber(key.replace(/[^0-9]/gi, ""));
 						const dgDom = $("#_x23_" + spKey).find("text");
-						
 						if (dgDom && key.indexOf("dl") !== -1) {
 							dgDom.eq(0).html(item);
 						} else if (dgDom && key.indexOf("dy") !== -1) {
@@ -1571,7 +1569,8 @@
 	}
 
 	.svg {
-		width: 100%;
-		height: 100%;
+		margin-left: 5%;
+		width: 90%;
+		height: 90%;
 	}
 </style>

+ 3 - 2
src/views/WindSite/components/generalappearance/mhs.vue

@@ -1723,7 +1723,8 @@ export default {
 }
 
 .svg {
-  width: 100%;
-  height: 100%;
+  margin-left: 5%;
+  width: 90%;
+  height: 90%;
 }
 </style>

+ 4 - 3
src/views/WindSite/components/generalappearance/nss.vue

@@ -4,7 +4,7 @@
       <el-col :span="24">
         <previewPicture v-if="datas">
           <template v-slot:svg>
-            <svg class="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="图层_1" x="0px" y="0px" width="1497.576px" height="815.74px" viewBox="-60 110 1580.576 815.74" enable-background="new 0 0 1497.576 815.74" xml:space="preserve">
+            <svg class="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="图层_1" x="0px" y="0px" width="1497.576px" height="815.74px" viewBox="-60 0 1580.576 815.74" enable-background="new 0 0 1497.576 815.74" xml:space="preserve">
             <g id="other">
             	<g>
             		<text transform="matrix(1 0 0 1 36.5847 21.1748)" fill="#FFFFFF" font-family="'MicrosoftYaHeiLight'" font-size="12.3679">运</text>
@@ -3748,7 +3748,8 @@ export default {
 }
 
 .svg {
-  width: 85%;
-  height: 100%;
+  margin-left: 5%;
+  width: 90%;
+  height: 90%;
 }
 </style>

+ 3 - 2
src/views/WindSite/components/generalappearance/pl1.vue

@@ -1156,7 +1156,8 @@
 	}
 
 	.svg {
-		width: 100%;
-		height: 100%;
+		margin-left: 5%;
+		width: 90%;
+		height: 90%;
 	}
 </style>

+ 3 - 2
src/views/WindSite/components/generalappearance/pl2.vue

@@ -1966,7 +1966,8 @@
 	}
 
 	.svg {
-		width: 100%;
-		height: 100%;
+		margin-left: 5%;
+		width: 90%;
+		height: 90%;
 	}
 </style>

+ 3 - 2
src/views/WindSite/components/generalappearance/qs.vue

@@ -3502,7 +3502,8 @@ export default {
 }
 
 .svg {
-  width: 100%;
-  height: 100%;
+  margin-left: 5%;
+  width: 90%;
+  height: 90%;
 }
 </style>

+ 3 - 2
src/views/WindSite/components/generalappearance/sbq.vue

@@ -4440,7 +4440,8 @@ export default {
 }
 
 .svg {
-  width: 100%;
-  height: 100%;
+  margin-left: 5%;
+  width: 90%;
+  height: 90%;
 }
 </style>

+ 3 - 2
src/views/WindSite/components/generalappearance/xh.vue

@@ -15181,7 +15181,8 @@ YII=" transform="matrix(0.24 0 0 0.24 1183.2881 191.6758)"></image>
 	}
 
 	.svg {
-		width: 100%;
-		height: 100%;
+		margin-left: 5%;
+		width: 90%;
+		height: 90%;
 	}
 </style>

+ 3 - 2
src/views/WindSite/components/generalappearance/xs.vue

@@ -7233,7 +7233,8 @@ export default {
 }
 
 .svg {
-  width: 100%;
-  height: 100%;
+  margin-left: 5%;
+  width: 90%;
+  height: 90%;
 }
 </style>

BIN
src/views/WindSite/components/generalappearance/zm_mw.png


+ 1 - 1
src/views/WindSite/components/previewPicture.vue

@@ -693,7 +693,7 @@ export default {
       color: white;
     }
 
-    &/deep/.el-button {
+    .el-button {
       z-index: 2;
       position: absolute;
       bottom: 60px;

+ 12 - 9
src/views/WindSite/pages/BoosterStation.vue

@@ -57,7 +57,7 @@ import XS from "../components/boosterstation/xs.vue";
 import DWK from "../components/boosterstation/dwk.vue";
 import PL1 from "../components/boosterstation/pl1.vue";
 import PL2 from "../components/boosterstation/pl2.vue";
-import XH from "../components/boosterstation/pl2.vue";
+import XH from "../components/boosterstation/xh.vue";
 import MCH from "../components/boosterstation/mch.vue";
 import HZJ from "../components/boosterstation/hzj.vue";
 export default {
@@ -135,16 +135,19 @@ export default {
                 code: ele.id,
               });
             } else {
-              btnGroup[1].btns.push({
-                text: ele.name,
-                code: ele.id,
-              });
+				btnGroup[1].btns.push({
+				  text: ele.name,
+				  code: ele.id,
+				});
+				if(ele.id == 'PL_GDC'){
+					btnGroup[1].btns.push({
+					  text: '平罗二期光伏电站',
+					  code: 'PL2_GDC',
+					});
+				}
             }
           });
-			btnGroup[1].btns.push({
-			  text: '平罗二期光伏电站',
-			  code: 'PL2_GDC',
-			});
+			
 			
 			// 当点击为宋六时
 			btnGroup[0].btns.push({

+ 4 - 1
src/views/WindSite/pages/GeneralAppearance.vue

@@ -57,6 +57,7 @@
 			<PL1 class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'PL01_GC'" />
 			<PL2 class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'PL02_GC'" />
 			<MCH class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'MCH_GDC'" />
+			<HZJ class="general-appearance-body" :data="fjmap" :zmmap="zmmap" v-if="wpId === 'HZJ_GDC'" />
 		</div>
 	</div>
 </template>
@@ -73,6 +74,7 @@
 	import PL1 from "../components/generalappearance/pl1.vue";
 	import PL2 from "../components/generalappearance/pl2.vue";
 	import MCH from "../components/generalappearance/mch.vue";
+	import HZJ from "../components/generalappearance/hzj.vue";
 	export default {
 		// 名称
 		name: "GeneralAppearance",
@@ -88,7 +90,8 @@
 			DWK,
 			PL1,
 			PL2,
-			MCH
+			MCH,
+			HZJ
 		},
 		// 数据
 		data() {

+ 230 - 107
src/views/WindSite/pages/Home/Home.vue

@@ -1,11 +1,21 @@
 <template>
   <div>
     <div class="btn-group-tabs">
-      <BtnGroup2 :btnGroups="btnGroupsss" :rowIndex="rowIndex" :index="selectIndex" @select="select"></BtnGroup2>
+      <BtnGroup2
+        :btnGroups="btnGroupsss"
+        :rowIndex="rowIndex"
+        :index="selectIndex"
+        @select="select"
+      ></BtnGroup2>
     </div>
     <div class="wind-site-home">
       <div class="mg-b-16">
-        <btn-group-double :btnGroups="btnGroups" :rowIndex="0" :index="1" @select="select" />
+        <btn-group-double
+          :btnGroups="btnGroups"
+          :rowIndex="0"
+          :index="1"
+          @select="select"
+        />
       </div>
       <!-- <row v-if="paramsId.includes('FDC')">
         <wind-site-weather :time="nowTime" :data="tqmap" :paramsId="resCode" />
@@ -156,7 +166,7 @@
           </row>
         </panel-3>
       </row> -->
-       <row >
+      <row>
         <wind-site-weather :time="nowTime" :data="tqmap" :paramsId="resCode" />
         <panel-3 class="wind-site-info">
           <row align="middle">
@@ -187,7 +197,9 @@
             <div class="info-item">
               <div class="value">{{ jczbmap.ssfs }}</div>
               <!-- <div class="text">实时风速</div> -->
-              <div class="text">{{resCode.includes('FDC')?'实时风速':'平均功率'}} </div>
+              <div class="text">
+                {{ resCode.includes("FDC") ? "实时风速" : "平均功率" }}
+              </div>
             </div>
             <div class="info-item">
               <div class="value">{{ jczbmap.sjgl }}</div>
@@ -197,24 +209,24 @@
         </panel-3>
         <panel-3 class="wind-running-info">
           <row align="middle">
-            <div class="fengji" v-if=" resCode.indexOf('GDC') == -1  ">
+            <div class="fengji" v-if="resCode.indexOf('GDC') == -1">
               <div class="fengji-icon svg-icon svg-icon-white">
                 <svg-icon class="" svgid="svg-风机" />
               </div>
               <div class="info">
-                <div class="text green" >接入风机  </div>
-                 <!-- <div class="text green" v-if="resCode.includes('FDC') && resCode != ''">接入风机 </div>
+                <div class="text green">接入风机</div>
+                <!-- <div class="text green" v-if="resCode.includes('FDC') && resCode != ''">接入风机 </div>
                   <div class="text green" v-else-if="resCode.includes('GDC') && resCode != ''">接入光伏 </div> -->
                 <div class="value">{{ jczbmap.jrts }}</div>
               </div>
             </div>
-            <div class="fengji"  v-else-if=" resCode.indexOf('FDC') == -1 ">
+            <div class="fengji" v-else-if="resCode.indexOf('FDC') == -1">
               <div class="fengji-icon svg-icon svg-icon-white">
                 <svg-icon class="" svgid="svg-gf-matrix" />
               </div>
               <div class="info">
                 <div class="text green">接入光伏</div>
-                 <!-- <div class="text green" v-if="resCode.includes('FDC') && resCode != ''">接入风机 </div>
+                <!-- <div class="text green" v-if="resCode.includes('FDC') && resCode != ''">接入风机 </div>
                   <div class="text green" v-else-if="resCode.includes('GDC') && resCode != ''">接入光伏 </div> -->
                 <div class="value">{{ jczbmap.jrts }}</div>
               </div>
@@ -225,57 +237,46 @@
                   <span class="svg-icon svg-icon-green">
                     <svg-icon svgid="svg-standby" />
                   </span>
-                  <span class="text green"> 
-                    待机
-                  </span>
+                  <span class="text green"> 待机 </span>
                 </div>
                 <div class="status">
                   <span class="svg-icon svg-icon-purple">
                     <svg-icon svgid="svg-normal-power" />
                   </span>
-                  <span class="text purple">
-                    运行
-                  </span>
+                  <span class="text purple"> 运行 </span>
                 </div>
-                <div class="status ">
+                <div class="status">
                   <span class="svg-icon svg-icon-pink">
-                    <svg-icon svgid="svg-limit-power" style="margin:3px 0.3704vh -3px 0;" />
-                  </span>
-                  <span class="text pink">
-                    限电
+                    <svg-icon
+                      svgid="svg-limit-power"
+                      style="margin: 3px 0.3704vh -3px 0"
+                    />
                   </span>
+                  <span class="text pink"> 限电 </span>
                 </div>
                 <div class="status">
                   <span class="svg-icon svg-icon-red">
                     <svg-icon svgid="svg-gz-downtime" />
                   </span>
-                  <span class="text red">
-                    故障
-                  </span>
+                  <span class="text red"> 故障 </span>
                 </div>
                 <div class="status">
                   <span class="svg-icon svg-icon-orange">
                     <svg-icon svgid="svg-jx-downtime" />
                   </span>
-                  <span class="text orange">
-                    检修
-                  </span>
+                  <span class="text orange"> 检修 </span>
                 </div>
                 <div class="status">
                   <span class="svg-icon svg-icon-gray">
                     <svg-icon svgid="svg-offline" />
                   </span>
-                  <span class="text gray">
-                    离线
-                  </span>
+                  <span class="text gray"> 离线 </span>
                 </div>
                 <div class="status">
                   <span class="svg-icon svg-icon-white">
                     <svg-icon svgid="svg-intranet-involvement" />
                   </span>
-                  <span class="text white">
-                    受累
-                  </span>
+                  <span class="text white"> 受累 </span>
                 </div>
               </row>
               <row>
@@ -320,22 +321,32 @@
         </panel-3>
       </row>
       <div class="first-info mg-t-16 mg-b-16">
-        <div style="flex:0 1 450px;">
+        <div style="flex: 0 1 450px">
           <panel title="场站">
-            <station height="18.519vh" />
+            <station height="18.519vh" :chartData="stationChartData" />
           </panel>
         </div>
-        <div class="mg-l-16" style="flex:1 1 auto;" ref="lineChart">
+        <div class="mg-l-16" style="flex: 1 1 auto" ref="lineChart">
           <panel title="4小时功率曲线图" v-if="resCode.includes('FDC')">
-            <multiple-line-chart height="18.519vh" v-if="Powertrend" :list="Powertrend.value" :units="Powertrend.units"
-              :showLegend="true" />
+            <multiple-line-chart
+              height="18.519vh"
+              v-if="Powertrend"
+              :list="Powertrend.value"
+              :units="Powertrend.units"
+              :showLegend="true"
+            />
           </panel>
-           <panel title="4小时功率曲线图" v-if="resCode.includes('GDC')">
-            <multiple-line-chart height="18.519vh" v-if="Powertrend1" :list="Powertrend1.value" :units="Powertrend1.units"
-              :showLegend="true" />
+          <panel title="4小时功率曲线图" v-if="resCode.includes('GDC')">
+            <multiple-line-chart
+              height="18.519vh"
+              v-if="Powertrend1"
+              :list="Powertrend1.value"
+              :units="Powertrend1.units"
+              :showLegend="true"
+            />
           </panel>
         </div>
-        <div class="mg-l-16" style="flex:0 0 400px;">
+        <div class="mg-l-16" style="flex: 0 0 400px">
           <panel class="light-matrix-panel">
             <light-matrix :list="fjmap" />
           </panel>
@@ -343,37 +354,77 @@
       </div>
       <row>
         <Col :span="8">
-        <panel title="日度损失电量分析">
-          <dual-pie-chart :innerData="pieChartData.dayData" :outerData="pieChartData.dayData" height="21.296vh" />
-        </panel>
+          <panel title="日度损失电量分析">
+            <dual-pie-chart
+              :innerData="pieChartData.dayData"
+              :outerData="pieChartData.dayData"
+              height="21.296vh"
+            />
+          </panel>
         </Col>
         <Col :span="8">
-        <panel title="月度损失电量分析">
-          <dual-pie-chart :innerData="pieChartData.monthData" :outerData="pieChartData.monthData" height="21.296vh" />
-        </panel>
+          <panel title="月度损失电量分析">
+            <dual-pie-chart
+              :innerData="pieChartData.monthData"
+              :outerData="pieChartData.monthData"
+              height="21.296vh"
+            />
+          </panel>
         </Col>
         <Col :span="8">
-        <panel title="年度损失电量分析">
-          <dual-pie-chart :innerData="pieChartData.yearData" :outerData="pieChartData.yearData" height="21.296vh" />
-        </panel>
+          <panel title="年度损失电量分析">
+            <dual-pie-chart
+              :innerData="pieChartData.yearData"
+              :outerData="pieChartData.yearData"
+              height="21.296vh"
+            />
+          </panel>
         </Col>
       </row>
       <row>
         <Col :span="8">
-        <panel title="日度损失电量分析">
-          <hover-bar-chart :list="dayLost" height="21.296vh" />
-        </panel>
+          <panel title="日度损失电量分析">
+            <hover-bar-chart :list="dayLost" height="21.296vh" />
+          </panel>
         </Col>
         <Col :span="8">
-        <panel title="日发电量对比">
-          <multiple-bar-chart height="21.296vh" :list="CompleteElectricity.data" :units="CompleteElectricity.units"
-            :showLegend="true" />
-        </panel>
+          <panel title="日发电量对比" subTitle="详情" @click="rfdl">
+            <multiple-bar-chart
+              height="21.296vh"
+              :list="CompleteElectricity.data"
+              :units="CompleteElectricity.units"
+              :showLegend="true"
+            />
+          </panel>
+          <el-dialog
+            title="日发电量对比"
+            v-model="rfdlDialog"
+            width="70%"
+            top="15vh"
+            custom-class="modal"
+            :close-on-click-modal="false"
+          >
+            <el-row type="flex">
+              <ComTable :data="tableData" height="15vh"></ComTable>
+            </el-row>
+            <el-row type="flex">
+              <multiple-bar-chart
+                height="45vh"
+                :list="CompleteElectricity.data"
+                :units="CompleteElectricity.units"
+                :showLegend="true"
+              />
+            </el-row>
+          </el-dialog>
         </Col>
         <Col :span="8">
-        <panel title="月发电量对比">
-          <normal-line-chart height="21.296vh" :list="MonthCompare.value" :units="MonthCompare.units" />
-        </panel>
+          <panel title="月发电量对比">
+            <normal-line-chart
+              height="21.296vh"
+              :list="MonthCompare.value"
+              :units="MonthCompare.units"
+            />
+          </panel>
         </Col>
       </row>
     </div>
@@ -396,19 +447,37 @@ import LightMatrix from "./light-matrix.vue";
 import Station from "./Station.vue";
 import WindSiteWeather from "./wind-site-weather.vue";
 import BtnGroup2 from "@com/coms/btn/btn-group-double.vue";
+import ComTable from "@com/coms/table/table.vue";
 
 export default {
   // 名称
   name: "WindSiteHome",
   // 使用组件
-  components: { BtnGroup2, WindSiteWeather, Row, Col, Panel, DualPieChart, MultipleLineChart, Panel3, SvgIcon, HoverBarChart, MultipleBarChart, NormalLineChart, LightMatrix, BtnGroupDouble, Station },
+  components: {
+    BtnGroup2,
+    WindSiteWeather,
+    Row,
+    Col,
+    Panel,
+    DualPieChart,
+    MultipleLineChart,
+    Panel3,
+    SvgIcon,
+    HoverBarChart,
+    MultipleBarChart,
+    NormalLineChart,
+    LightMatrix,
+    BtnGroupDouble,
+    Station,
+    ComTable,
+  },
   // 数据
-  data () {
+  data() {
     return {
       timmer: null, // 计时器
       timmer2: null,
-      paramsId:"",
-      resCode:"",
+      paramsId: "",
+      resCode: "",
       nowTime: "", // 时间
       fjmap: [], // 分机矩阵
       tqmap: {}, // 天气数据
@@ -417,6 +486,7 @@ export default {
       jczbmap: {}, // 顶部基础数据
       dayLost: [], // 日度损失电量分析柱状图
       donePower: [], // 完成电量柱状图
+      stationChartData: [],
       // 饼图数据
       pieChartData: {
         // 日度
@@ -505,16 +575,21 @@ export default {
           btns: [],
         },
       ],
+      rfdlDialog: false,
+      tableData: {
+        column: [],
+        data: [],
+      },
     };
   },
   // 函数
   methods: {
-    getWp () {
+    getWp() {
       let that = this;
       that.API.requestData({
         method: "GET",
         subUrl: "powercompare/windfarmAllAjax",
-        success (res) {
+        success(res) {
           let btnGroups = [
             {
               icon: "svg-wind-site",
@@ -546,7 +621,7 @@ export default {
       });
     },
 
-    renderBtnActiveIndex () {
+    renderBtnActiveIndex() {
       this.btnGroupsss.forEach((pEle, pIndex) => {
         pEle.btns.forEach((cEle, cIndex) => {
           if (cEle.code === this.wpId) {
@@ -557,21 +632,15 @@ export default {
       });
     },
 
-    select (res) {
+    select(res) {
       let that = this;
       this.$router.replace({
         path: `/monitor/windsite/home/${res.code}`,
       });
       that.resCode = res.code;
-      // console.log('resCode:',that.resCode)
-      // console.log('ParamsId:',that.paramsId)
-       console.log('paramsId:',that.paramsId.indexOf('FDC'))
-    console.log('resCode:',that.resCode.indexOf('FDC'))
-    console.log('paramsId:',that.paramsId.indexOf('GDC'))
-    console.log('resCode:',that.resCode.indexOf('GDC'))
     },
     // 根据风机状态码返回对应 class
-    getColor (fjzt) {
+    getColor(fjzt) {
       switch (fjzt) {
         case 0:
           return "green";
@@ -590,13 +659,12 @@ export default {
       }
     },
     // 请求服务
-    requestData (showLoading) {
+    requestData(showLoading) {
       this.requestWpInfo(showLoading);
-
     },
 
     // 获取场站监视数据
-    requestWpInfo (showLoading) {
+    requestWpInfo(showLoading) {
       let that = this;
       that.API.requestData({
         showLoading,
@@ -605,14 +673,22 @@ export default {
         data: {
           wpId: that.wpId,
         },
-        success (res) {
+        success(res) {
           if (res.data) {
-            // console.log('resWpinfo:',res.data)
             that.tqmap = res.data.tqmap;
-            that.tqmap.name = res.data.jczbmap.name
-            that.tqmap.resCode = that.resCode
+            that.tqmap.name = res.data.jczbmap.name;
+            that.tqmap.resCode = that.resCode;
             let fjmap = [];
-            let keys = ["value1", "value2", "value3", "value4", "value5", "value6", "value7", "value9"];
+            let keys = [
+              "value1",
+              "value2",
+              "value3",
+              "value4",
+              "value5",
+              "value6",
+              "value7",
+              "value9",
+            ];
             let Powertrend = {
               // 图表所用单位
               units: ["(万KWh)", "(风速)"],
@@ -659,7 +735,7 @@ export default {
                 },
               ],
             };
-             let Powertrend1 = {
+            let Powertrend1 = {
               // 图表所用单位
               units: ["(万KWh)", "(风速)"],
               value: [
@@ -753,7 +829,7 @@ export default {
                   text: new Date(ele.time).formatDate("hh:mm"),
                   value: ele[key],
                 });
-                    Powertrend1.value[keyIndex].value.push({
+                Powertrend1.value[keyIndex].value.push({
                   text: new Date(ele.time).formatDate("hh:mm"),
                   value: ele[key],
                 });
@@ -805,7 +881,7 @@ export default {
     },
 
     // 获取日度损失电量分析
-    requestLoss (showLoading) {
+    requestLoss(showLoading) {
       let that = this;
       that.API.requestData({
         showLoading,
@@ -814,7 +890,7 @@ export default {
         data: {
           wpId: that.wpId,
         },
-        success (res) {
+        success(res) {
           let dayLost = [];
           res.data.forEach((ele) => {
             dayLost.push({
@@ -828,7 +904,7 @@ export default {
     },
 
     // 获取完成电量
-    requestPower (showLoading) {
+    requestPower(showLoading) {
       let that = this;
       that.API.requestData({
         showLoading,
@@ -837,10 +913,19 @@ export default {
         data: {
           wpId: that.wpId,
         },
-        success (res) {
+        success(res) {
+          let column = [
+              {
+                name: "",
+                field: "tit",
+                is_num: false,
+                is_light: false,
+              },
+            ],
+            tableData = [];
           let data = [
             {
-              title: "发电量",
+              title: "发电量",
               yAxisIndex: 0,
               value: [],
             },
@@ -849,9 +934,19 @@ export default {
               yAxisIndex: 0,
               value: [],
             },
+            {
+              title: "风速",
+              yAxisIndex: 0,
+              value: [],
+            },
+            {
+              title: "上网电量",
+              yAxisIndex: 0,
+              value: [],
+            },
           ];
 
-          res.data.forEach((ele) => {
+          res.data.forEach((ele, idx) => {
             data[0].value.push({
               text: ele.timestr,
               value: ele.value1 || 0,
@@ -860,15 +955,41 @@ export default {
               text: ele.timestr,
               value: ele.value2 || 0,
             });
-          });
+            data[2].value.push({
+              text: ele.timestr,
+              value: ele.value3 || 0,
+            });
+            data[3].value.push({
+              text: ele.timestr,
+              value: ele.value4 || 0,
+            });
 
+            column.push({
+              name: ele.timestr,
+              field: idx,
+              is_num: false,
+              is_light: false,
+            });
+          });
           that.CompleteElectricity.data = data;
+          data.forEach((ele, idx) => {
+            let obj = [];
+            ele.value.forEach((ele2, idx2) => {
+              obj[idx2] = ele2.value;
+            });
+            obj["tit"] = ele.title;
+            tableData.push(obj);
+          });
+          that.tableData = {
+            column: column,
+            data: tableData,
+          };
         },
       });
     },
 
     // 获取月发电量对比
-    requestMonthPower (showLoading) {
+    requestMonthPower(showLoading) {
       let that = this;
       that.API.requestData({
         showLoading,
@@ -877,7 +998,7 @@ export default {
         data: {
           wpId: that.wpId,
         },
-        success (res) {
+        success(res) {
           let data = [
             {
               title: "月发电量",
@@ -906,21 +1027,21 @@ export default {
         },
       });
     },
+    rfdl() {
+      this.rfdlDialog = true;
+    },
   },
 
-  created () {
+  created() {
     let that = this;
     that.wpId = that.$route.params.wpId;
     that.paramsId = that.$route.params.wpId;
     that.resCode = that.$route.params.wpId;
-    console.log('paramsId:',that.paramsId.indexOf('FDC'))
-    console.log('resCode:',that.resCode.indexOf('FDC'))
-    console.log('paramsId:',that.paramsId.indexOf('GDC'))
-    console.log('resCode:',that.resCode.indexOf('GDC'))
+    that.stationChartData = require(`./stationJson/${that.$route.params.wpId}.js`).default;
     that.$nextTick(() => {
       that.getWp();
       that.requestData(false);
-       that.requestLoss(false);
+      that.requestLoss(false);
       that.requestPower(false);
       that.requestMonthPower(false);
       that.timmer = setInterval(() => {
@@ -932,16 +1053,16 @@ export default {
     });
   },
 
-  mounted () { },
+  mounted() {},
 
-  unmounted () {
+  unmounted() {
     clearInterval(this.timmer);
     clearInterval(this.timmer2);
     this.timmer = null;
     this.timmer2 = null;
   },
   watch: {
-    $route (res) {
+    $route(res) {
       this.wpId = res.params.wpId;
       if (res.params.wpId) {
         this.requestData(false);
@@ -954,7 +1075,9 @@ export default {
 
 <style lang="less">
 .wind-site-home {
-	.wind-site-weather{width: 29%;}
+  .wind-site-weather {
+    width: 29%;
+  }
   .first-info {
     display: flex;
   }
@@ -962,7 +1085,7 @@ export default {
   .wind-site-info {
     margin-left: 0.7407vh;
     // flex: 1 0 auto;
-	width: 33%;
+    width: 33%;
     padding: 8px;
 
     & > .row {
@@ -1072,8 +1195,8 @@ export default {
   }
 
   .light-matrix-panel {
-        width: 673px;
-    overflow-y:scroll;
+    width: 673px;
+    overflow-y: scroll;
     height: 240px;
 
     .panel-body {

+ 63 - 28
src/views/WindSite/pages/Home/Station.vue

@@ -1,7 +1,13 @@
 <template>
   <div class="station" @mouseleave="mouseout">
     <div :id="id" class="station-x6"></div>
-    <div class="station-tip" v-if="tipShow" :style="'top: '+tipTop+'px; left: '+tipLeft+'px'">{{tip}}</div>
+    <div
+      class="station-tip"
+      v-if="tipShow"
+      :style="'top: ' + tipTop + 'px; left: ' + tipLeft + 'px'"
+    >
+      {{ tip }}
+    </div>
   </div>
 </template>
 
@@ -27,6 +33,10 @@ export default {
       type: String,
       default: "175px",
     },
+    chartData: {
+      type: Array,
+      default: () => [],
+    },
   },
   data() {
     return {
@@ -395,12 +405,12 @@ export default {
         grid: false,
         autoResize: true, // boolean | Element | Document 是否监听容器大小改变,并自动更新画布大小 默认监听画布容器,也可以指定监听的元素
         mousewheel: {
-            enabled: false,
-            modifiers: [],
+          enabled: false,
+          modifiers: [],
         },
         scroller: {
-            enabled: false,
-            pannable: false,
+          enabled: false,
+          pannable: false,
         },
         interacting: false,
       });
@@ -412,34 +422,33 @@ export default {
       const els = this.$el.querySelectorAll(".node-hover");
       const that = this;
       Array.prototype.forEach.call(els, (element, index) => {
-          element.addEventListener("mouseenter", function(event) {
-              if (!that.tipShow) {
-                that.tipShow = true;
-              }
-              let uriStr = this.getAttribute("data-item");
-              let data = JSON.parse(decodeURIComponent(uriStr));
-              that.mouseover(data);
-              let tipEl = that.$el.querySelector(".station-tip");
+        element.addEventListener("mouseenter", function (event) {
+          if (!that.tipShow) {
+            that.tipShow = true;
+          }
+          let uriStr = this.getAttribute("data-item");
+          let data = JSON.parse(decodeURIComponent(uriStr));
+          that.mouseover(data);
+          let tipEl = that.$el.querySelector(".station-tip");
+          if (tipEl) {
+            let top = event.clientY - tipEl.scrollHeight;
+            let left = event.clientX - tipEl.scrollWidth / 2;
+            that.tipTop = top;
+            that.tipLeft = left;
+          } else {
+            const foundTipEl = setInterval(() => {
               if (tipEl) {
+                clearInterval(foundTipEl);
                 let top = event.clientY - tipEl.scrollHeight;
                 let left = event.clientX - tipEl.scrollWidth / 2;
                 that.tipTop = top;
                 that.tipLeft = left;
               } else {
-                const foundTipEl = setInterval(() => {
-                  if (tipEl) {
-                    clearInterval(foundTipEl);
-                    let top = event.clientY - tipEl.scrollHeight;
-                    let left = event.clientX - tipEl.scrollWidth / 2;
-                    that.tipTop = top;
-                    that.tipLeft = left;
-                  } else {
-                    tipEl = that.$el.querySelector(".station-tip");
-                  }
-                }, 100);
+                tipEl = that.$el.querySelector(".station-tip");
               }
-              
-          })
+            }, 100);
+          }
+        });
       });
     },
     createNode(graph, data) {
@@ -471,7 +480,7 @@ export default {
             width: 120,
             height: 45,
             shape: "html",
-            label: "升压站",
+            label: this.list[0].name,
             html() {
               const wrap = document.createElement("div");
               wrap.innerHTML = `<img src="${data.image}" />`;
@@ -534,6 +543,16 @@ export default {
     this.$nextTick(() => {
       this.$el.style.width = this.width;
       this.$el.style.height = this.height;
+      this.list = this.chartData;
+      this.list.forEach((ele) => {
+        if (
+          ele.id === "root" &&
+          ele.type === "img" &&
+          ele.image === "stationimg"
+        ) {
+          ele.image = stationimg;
+        }
+      });
       this.initStation();
     });
   },
@@ -541,6 +560,21 @@ export default {
     // 数据更新前
   },
   updated() {},
+  watch: {
+    chartData(res) {
+      this.list = res;
+      this.list.forEach((ele) => {
+        if (
+          ele.id === "root" &&
+          ele.type === "img" &&
+          ele.image === "stationimg"
+        ) {
+          ele.image = stationimg;
+        }
+      });
+      this.initStation();
+    },
+  },
 };
 </script>
 
@@ -566,7 +600,8 @@ export default {
     word-wrap: break-word;
     background-color: #000000bf;
     border-radius: 2px;
-    box-shadow: 0 3px 6px -4px #0000001f, 0 6px 16px #00000014, 0 9px 28px 8px #0000000d;
+    box-shadow: 0 3px 6px -4px #0000001f, 0 6px 16px #00000014,
+      0 9px 28px 8px #0000000d;
   }
 }
 </style>

+ 316 - 0
src/views/WindSite/pages/Home/stationJson/MHS_FDC.js

@@ -0,0 +1,316 @@
+export default [
+  {
+    id: "root",
+    name: "麻黄山风电场",
+    type: "img",
+    image: "stationimg",
+    x: 10,
+    y: 30,
+  },
+  //麻黄山1号线路
+  {
+    id: "MG01_01",
+    type: "circle",
+    x: 120,
+    y: 40,
+    connects: ["root"],
+  },
+  {
+    id: "MG01_02",
+    type: "circle",
+    x: 180,
+    y: 30,
+    connects: ["MG01_01"],
+  },
+  {
+    id: "MG01_03",
+    type: "circle",
+    x: 200,
+    y: 15,
+    connects: ["MG01_02"],
+  },
+  {
+    id: "MG01_04",
+    type: "circle",
+    x: 200,
+    y: 35,
+    connects: ["MG01_03"],
+  },
+  {
+    id: "MG01_05",
+    type: "circle",
+    x: 240,
+    y: 35,
+    connects: ["MG01_04"],
+  },
+  {
+    id: "MG01_06",
+    type: "circle",
+    x: 260,
+    y: 45,
+    connects: ["MG01_05"],
+  },
+  {
+    id: "MG01_07",
+    type: "circle",
+    x: 260,
+    y: 15,
+    connects: ["MG01_06"],
+  },
+  {
+    id: "MG01_08",
+    type: "circle",
+    x: 280,
+    y: 5,
+    connects: ["MG01_07"],
+  },
+  {
+    id: "MG01_09",
+    type: "circle",
+    x: 310,
+    y: 5,
+    connects: ["MG01_08"],
+  },
+  {
+    id: "MG01_10",
+    type: "circle",
+    x: 330,
+    y: 20,
+    connects: ["MG01_09"],
+  },
+  {
+    id: "MG01_11",
+    type: "circle",
+    x: 350,
+    y: 15,
+    connects: ["MG01_10"],
+  },
+  {
+    id: "A9",
+    type: "circle",
+    x: 350,
+    y: 15,
+    connects: ["MG01_11"],
+  },
+  //麻黄山2号线路
+  {
+    id: "MG01_12",
+    type: "circle",
+    x: 150,
+    y: 60,
+    connects: ["root"],
+  },
+  {
+    id: "MG01_13",
+    type: "circle",
+    x: 180,
+    y: 70,
+    connects: ["MG01_12"],
+  },
+  {
+    id: "MG01_14",
+    type: "circle",
+    x: 220,
+    y: 55,
+    connects: ["MG01_13"],
+  },
+  {
+    id: "MG01_15",
+    type: "circle",
+    x: 240,
+    y: 75,
+    connects: ["MG01_14"],
+  },
+  {
+    id: "MG01_16",
+    type: "circle",
+    x: 280,
+    y: 45,
+    connects: ["MG01_15"],
+  },
+  {
+    id: "MG01_17",
+    type: "circle",
+    x: 310,
+    y: 60,
+    connects: ["MG01_16"],
+  },
+  {
+    id: "MG01_18",
+    type: "circle",
+    x: 310,
+    y: 50,
+    connects: ["MG01_17"],
+  },
+  {
+    id: "MG01_19",
+    type: "circle",
+    x: 370,
+    y: 40,
+    connects: ["MG01_18"],
+  },
+  {
+    id: "MG01_20",
+    type: "circle",
+    x: 330,
+    y: 60,
+    connects: ["MG01_19"],
+  },
+  {
+    id: "MG01_21",
+    type: "circle",
+    x: 370,
+    y: 50,
+    connects: ["MG01_20"],
+  },
+  {
+    id: "MG01_22",
+    type: "circle",
+    x: 390,
+    y: 70,
+    connects: ["MG01_21"],
+  },
+
+  //麻黄山3号线路
+  {
+    id: "MG01_23",
+    type: "circle",
+    x: 150,
+    y: 75,
+    connects: ["root"],
+  },
+  {
+    id: "MG01_24",
+    type: "circle",
+    x: 170,
+    y: 75,
+    connects: ["MG01_23"],
+  },
+  {
+    id: "MG01_25",
+    type: "circle",
+    x: 190,
+    y: 85,
+    connects: ["MG01_24"],
+  },
+  {
+    id: "MG01_26",
+    type: "circle",
+    x: 240,
+    y: 90,
+    connects: ["MG01_25"],
+  },
+  {
+    id: "MG01_27",
+    type: "circle",
+    x: 270,
+    y: 90,
+    connects: ["MG01_26"],
+  }, {
+    id: "MG01_28",
+    type: "circle",
+    x: 290,
+    y: 95,
+    connects: ["MG01_27"],
+  }, {
+    id: "MG01_29",
+    type: "circle",
+    x: 310,
+    y: 100,
+    connects: ["MG01_28"],
+  }, {
+    id: "MG01_30",
+    type: "circle",
+    x: 330,
+    y: 100,
+    connects: ["MG01_29"],
+  }, {
+    id: "MG01_31",
+    type: "circle",
+    x: 350,
+    y: 110,
+    connects: ["MG01_30"],
+  }, {
+    id: "MG01_32",
+    type: "circle",
+    x: 370,
+    y: 115,
+    connects: ["MG01_31"],
+  }, {
+    id: "MG01_33",
+    type: "circle",
+    x: 390,
+    y: 118,
+    connects: ["MG01_32"],
+  },
+  //麻黄山4号线路
+  {
+    id: "MG01_34",
+    type: "circle",
+    x: 150,
+    y: 130,
+    connects: ["root"],
+  },
+  {
+    id: "MG01_35",
+    type: "circle",
+    x: 190,
+    y: 125,
+    connects: ["MG01_34"],
+  },
+  {
+    id: "MG01_36",
+    type: "circle",
+    x: 230,
+    y: 120,
+    connects: ["MG01_35"],
+  },
+  {
+    id: "MG01_37",
+    type: "circle",
+    x: 270,
+    y: 115,
+    connects: ["MG01_36"],
+  },
+  {
+    id: "MG01_38",
+    type: "circle",
+    x: 310,
+    y: 115,
+    connects: ["MG01_37"],
+  },
+  {
+    id: "MG01_39",
+    type: "circle",
+    x: 330,
+    y: 135,
+    connects: ["MG01_38"],
+  },
+  {
+    id: "MG01_40",
+    type: "circle",
+    x: 350,
+    y: 135,
+    connects: ["MG01_39"],
+  }, {
+    id: "MG01_41",
+    type: "circle",
+    x: 370,
+    y: 145,
+    connects: ["MG01_40"],
+  },
+  {
+    id: "MG01_42",
+    type: "circle",
+    x: 390,
+    y: 150,
+    connects: ["MG01_41"],
+  },
+  {
+    id: "MG01_43",
+    type: "circle",
+    x: 410,
+    y: 155,
+    connects: ["MG01_42"],
+  },
+]

+ 1 - 0
src/views/WindSite/pages/Map.vue

@@ -445,6 +445,7 @@ export default {
       display: flex;
       align-items: center;
       margin-left: 16px;
+      width: 140px;
 
       .sub-title {
         font-size: 13px;

+ 228 - 149
src/views/layout/Menu.vue

@@ -1,10 +1,28 @@
 <template>
   <div class="menu">
     <ul class="menu-list">
-      <li class="menu-item" v-for="(menu, index) of currentMenu" :key="menu" @click="click(index)" :class="{ active: activeIndex == index }" @mouseenter="subMenuShow(menu.children, index)">
+      <li
+        class="menu-item"
+        v-for="(menu, index) of currentMenu"
+        :key="menu"
+        @click="click(index)"
+        :class="{ active: activeIndex == index }"
+        @mouseenter="subMenuShow(menu.children, index)"
+      >
         <router-link :to="menu.path">
-          <el-tooltip class="item" effect="dark" :content="menu.text" placement="bottom" :show-after="500" :enterable="false" hide-after="10">
-            <div class="menu-icon svg-icon" :class="activeIndex == index ? 'svg-icon-green' : 'svg-icon-gray'">
+          <el-tooltip
+            class="item"
+            effect="dark"
+            :content="menu.text"
+            placement="bottom"
+            :show-after="500"
+            :enterable="false"
+            hide-after="10"
+          >
+            <div
+              class="menu-icon svg-icon"
+              :class="activeIndex == index ? 'svg-icon-green' : 'svg-icon-gray'"
+            >
               <SvgIcon :svgid="menu.icon"></SvgIcon>
             </div>
           </el-tooltip>
@@ -19,12 +37,23 @@
   </div>
   <div class="sub-menu" v-show="isShowSubMenu" @mouseleave="subMenuHide">
     <ul class="menu-list">
-      <li class="menu-item" v-for="(menu, index) of subMenu" @click="subclick(index)" :key="menu" :class="{ active: subIndex == index }">
+      <li
+        class="menu-item"
+        v-for="(menu, index) of subMenu"
+        @click="subclick(index)"
+        :key="menu"
+        :class="{ active: subIndex == index }"
+      >
         <router-link :to="menu.path">
           <div class="menu-icon svg-icon">
             <!-- <SvgIcon :svgid="menu.icon"></SvgIcon> -->
           </div>
-          <div class="sub-menu-text" :class="subIndex == index ? 'green' : 'gray'">{{ menu.text }}</div>
+          <div
+            class="sub-menu-text"
+            :class="subIndex == index ? 'green' : 'gray'"
+          >
+            {{ menu.text }}
+          </div>
         </router-link>
       </li>
     </ul>
@@ -273,6 +302,11 @@ export default {
                   icon: "svg-wind-site",
                   path: "/decision/zzhcydl",
                 },
+                {
+                  text: "节能减排API",
+                  icon: "svg-wind-site",
+                  path: "/decision/zzhcydl",
+                },
               ],
             },
             {
@@ -352,6 +386,18 @@ export default {
               text: "等级评估",
               icon: "svg-等级评估",
               path: "/health/assess/index",
+              children: [
+                {
+                  text: "等级评估",
+                  icon: "svg-等级评估",
+                  path: "/health/assess/index",
+                },
+                {
+                  text: "自组合评级",
+                  icon: "svg-wind-site",
+                  path: "/health/assess/selfEvaluate",
+                }
+              ],
             },
             {
               text: "故障诊断",
@@ -405,6 +451,11 @@ export default {
                   icon: "svg-wind-site",
                   path: "/health/health8",
                 },
+                {
+                  text: "劣化状态分析",
+                  icon: "svg-q曲线",
+                  path: "/health/healthLineChart/MHS_FDC/MG01_01",
+                },
               ],
             },
             {
@@ -540,137 +591,137 @@ export default {
         //   id: "znbb",
         //   text: "智能报表",
         //   data: [
-            // {
-            //   text: '报表首页',
-            //   icon: 'svg-wind-site',
-            //   path: '/znbb/reportPandect'
-            // },// 统计分析
-            // {
-            //   text: "统计分析",
-            //   icon: "svg-matrix",
-            //   path: "/tjfx",
-            //   children: [
-            //     {
-            //       text: "统计分析",
-            //       icon: "svg-matrix",
-            //       path: "/tjfx",
-            //     },
-            //     {
-            //       text: "表底值查询",
-            //       icon: "svg-matrix",
-            //       path: "/bdzcx",
-            //     },
-            //   ],
-            // },
-            // {
-            //   text: "报表管理",
-            //   icon: "svg-matrix",
-            //   path: "/bdzcx",
-            //   children: [
-            //     {
-            //       text: "OA日报",
-            //       icon: "svg-matrix",
-            //       path: "/oafd",
-            //     },
-            //     {
-            //       text: "OA日报(光伏)",
-            //       icon: "svg-matrix",
-            //       path: "/oagf",
-            //     },
-            //     {
-            //       text: "新能源日报",
-            //       icon: "svg-matrix",
-            //       path: "/xnyrb",
-            //     },
-            //     {
-            //       text: "国电电力MISS日报(风电)",
-            //       icon: "svg-matrix",
-            //       path: "/missfdrb",
-            //     },
-            //     {
-            //       text: "国电电力MISS日报(光伏)",
-            //       icon: "svg-matrix",
-            //       path: "/missgfrb",
-            //     },
-            //     {
-            //       text: "新能源风电生产月报",
-            //       icon: "svg-matrix",
-            //       path: "/xnyfdscyb",
-            //     },
-            //     {
-            //       text: "麻黄山生产月报",
-            //       icon: "svg-matrix",
-            //       path: "/mhsscyb",
-            //     },
-            //     {
-            //       text: "牛首山生产月报",
-            //       icon: "svg-matrix",
-            //       path: "/nssscyb",
-            //     },
-            //     {
-            //       text: "青山生产月报",
-            //       icon: "svg-matrix",
-            //       path: "/qsscyb",
-            //     },
-            //     {
-            //       text: "石板泉生产月报",
-            //       icon: "svg-matrix",
-            //       path: "/sbqscyb",
-            //     },
-            //     {
-            //       text: "香山生产月报",
-            //       icon: "svg-matrix",
-            //       path: "/xsscyb",
-            //     },
-            //     {
-            //       text: "新能源光伏生产月报",
-            //       icon: "svg-matrix",
-            //       path: "/xnygfscyb",
-            //     },
-            //     {
-            //       text: "大武口生产月报",
-            //       icon: "svg-matrix",
-            //       path: "/dwkscyb",
-            //     },
-            //     {
-            //       text: "平罗生产月报",
-            //       icon: "svg-matrix",
-            //       path: "/plscyb",
-            //     },
-            //     {
-            //       text: "宣和生产月报",
-            //       icon: "svg-matrix",
-            //       path: "/xhscyb",
-            //     },
-            //   ],
-            // },
-            // {
-            //   text: "自定制报表管理",
-            //   icon: "svg-matrix",
-            //   path: "/fdczzdy",
-            //   children: [
-            //     {
-            //       text: "风电场站自定义",
-            //       icon: "svg-matrix",
-            //       path: "/fdczzdy",
-            //     },
-            //     {
-            //       text: "风电项目自定义",
-            //       icon: "svg-matrix",
-            //       path: "/fdxmzdy",
-            //     },
-            //     {
-            //       text: "光伏场站自定义",
-            //       icon: "svg-matrix",
-            //       path: "/gfczzdy",
-            //     },
-            //     {
-            //       text: "光伏项目自定义",
-            //       icon: "svg-matrix",
-            //       path: "/gfxmzdy",
-            //     },
-            //   ],
-            // },
+        // {
+        //   text: '报表首页',
+        //   icon: 'svg-wind-site',
+        //   path: '/znbb/reportPandect'
+        // },// 统计分析
+        // {
+        //   text: "统计分析",
+        //   icon: "svg-matrix",
+        //   path: "/tjfx",
+        //   children: [
+        //     {
+        //       text: "统计分析",
+        //       icon: "svg-matrix",
+        //       path: "/tjfx",
+        //     },
+        //     {
+        //       text: "表底值查询",
+        //       icon: "svg-matrix",
+        //       path: "/bdzcx",
+        //     },
+        //   ],
+        // },
+        // {
+        //   text: "报表管理",
+        //   icon: "svg-matrix",
+        //   path: "/bdzcx",
+        //   children: [
+        //     {
+        //       text: "OA日报",
+        //       icon: "svg-matrix",
+        //       path: "/oafd",
+        //     },
+        //     {
+        //       text: "OA日报(光伏)",
+        //       icon: "svg-matrix",
+        //       path: "/oagf",
+        //     },
+        //     {
+        //       text: "新能源日报",
+        //       icon: "svg-matrix",
+        //       path: "/xnyrb",
+        //     },
+        //     {
+        //       text: "国电电力MISS日报(风电)",
+        //       icon: "svg-matrix",
+        //       path: "/missfdrb",
+        //     },
+        //     {
+        //       text: "国电电力MISS日报(光伏)",
+        //       icon: "svg-matrix",
+        //       path: "/missgfrb",
+        //     },
+        //     {
+        //       text: "新能源风电生产月报",
+        //       icon: "svg-matrix",
+        //       path: "/xnyfdscyb",
+        //     },
+        //     {
+        //       text: "麻黄山生产月报",
+        //       icon: "svg-matrix",
+        //       path: "/mhsscyb",
+        //     },
+        //     {
+        //       text: "牛首山生产月报",
+        //       icon: "svg-matrix",
+        //       path: "/nssscyb",
+        //     },
+        //     {
+        //       text: "青山生产月报",
+        //       icon: "svg-matrix",
+        //       path: "/qsscyb",
+        //     },
+        //     {
+        //       text: "石板泉生产月报",
+        //       icon: "svg-matrix",
+        //       path: "/sbqscyb",
+        //     },
+        //     {
+        //       text: "香山生产月报",
+        //       icon: "svg-matrix",
+        //       path: "/xsscyb",
+        //     },
+        //     {
+        //       text: "新能源光伏生产月报",
+        //       icon: "svg-matrix",
+        //       path: "/xnygfscyb",
+        //     },
+        //     {
+        //       text: "大武口生产月报",
+        //       icon: "svg-matrix",
+        //       path: "/dwkscyb",
+        //     },
+        //     {
+        //       text: "平罗生产月报",
+        //       icon: "svg-matrix",
+        //       path: "/plscyb",
+        //     },
+        //     {
+        //       text: "宣和生产月报",
+        //       icon: "svg-matrix",
+        //       path: "/xhscyb",
+        //     },
+        //   ],
+        // },
+        // {
+        //   text: "自定制报表管理",
+        //   icon: "svg-matrix",
+        //   path: "/fdczzdy",
+        //   children: [
+        //     {
+        //       text: "风电场站自定义",
+        //       icon: "svg-matrix",
+        //       path: "/fdczzdy",
+        //     },
+        //     {
+        //       text: "风电项目自定义",
+        //       icon: "svg-matrix",
+        //       path: "/fdxmzdy",
+        //     },
+        //     {
+        //       text: "光伏场站自定义",
+        //       icon: "svg-matrix",
+        //       path: "/gfczzdy",
+        //     },
+        //     {
+        //       text: "光伏项目自定义",
+        //       icon: "svg-matrix",
+        //       path: "/gfxmzdy",
+        //     },
+        //   ],
+        // },
         //   ],
         // },
         {
@@ -802,7 +853,8 @@ export default {
                   path: "/others/gfxmzdy",
                 },
               ],
-            },{
+            },
+            {
               text: "原始数据查询",
               icon: "svg-报表首页",
               path: "/others/realSearch",
@@ -817,16 +869,16 @@ export default {
                   icon: "svg-wind-site",
                   path: "/others/historySearch",
                 },
-				{
-				  text: "气象历史数据",
-				  icon: "svg-wind-site",
-				  path: "/others/weather",
-				},
-				{
-				  text: "数据导出",
-				  icon: "svg-wind-site",
-				  path: "/others/ExportExcel",
-				},
+                {
+                  text: "气象历史数据",
+                  icon: "svg-wind-site",
+                  path: "/others/weather",
+                },
+                {
+                  text: "数据导出",
+                  icon: "svg-wind-site",
+                  path: "/others/ExportExcel",
+                },
               ],
             },
             {
@@ -914,8 +966,35 @@ export default {
                 },
               ],
             },
+            {
+              text: "样本库",
+              icon: "svg-报表管理",
+              path: "/others/fault",
+              children: [
+                {
+                  text: "故障训练样本库",
+                  icon: "svg-matrix",
+                  path: "/others/fault",
+                },
+                {
+                  text: "性能下降样本库",
+                  icon: "svg-matrix",
+                  path: "/others/performance",
+                },
+                {
+                  text: "预警分析样本库",
+                  icon: "svg-matrix",
+                  path: "/others/warning",
+                },
+                // {
+                //   text: "风电营销样本库",
+                //   icon: "svg-matrix",
+                //   path: "/others/market",
+                // }
+              ],
+            },
           ],
-        }
+        },
       ],
       activeIndex: 0,
       isShowSubMenu: false,
@@ -923,7 +1002,7 @@ export default {
       subMenu: [],
       subIndex: null,
     };
-  }, 
+  },
   methods: {
     click(index) {
       this.activeIndex = index;

+ 142 - 0
src/views/malfunctionDiagnose/gzfl.vue

@@ -0,0 +1,142 @@
+<template>
+	<div>
+		<el-row>
+			<el-col :span="14">
+				<panel :title="'日最大风速'" class="radar-panel" :icon="'svg-wind-site'">
+					<div class="wind-info">
+						<div class="legend mg-r-16">
+							<span class="dot"></span>
+							<span>{{ rzdfsStr }}</span>
+						</div>
+						<radar-chart :width="'100%'" :height="'729px'" :value="rzdfsData" />
+					</div>
+				</panel>
+			</el-col>
+			<el-col :span="10">
+				<el-row>
+					<el-col :span="24">
+						<panel :title="'月最大风速'" class="radar-panel" :icon="'svg-wind-site'">
+							<div class="wind-info">
+								<div class="legend mg-r-16">
+									<span class="dot"></span>
+									<span>{{ yzdfsStr }}</span>
+								</div>
+								<radar-chart :width="'100%'" :height="'350px'" :value="yzdfsData" />
+							</div>
+						</panel>
+					</el-col>
+				</el-row>
+				<el-row>
+				 <el-col :span="24">
+						<panel :title="'年最大风速'" class="radar-panel" :icon="'svg-wind-site'">
+							<div class="wind-info">
+								<div class="legend mg-r-16">
+									<span class="dot"></span>
+									<span>{{ nzdfsStr }}</span>
+								</div>
+								<radar-chart :width="'100%'" :height="'350px'" :value="nzdfsData" />
+							</div>
+						</panel>
+					</el-col>
+				</el-row>
+			</el-col>
+		</el-row>
+	</div>
+</template>
+
+<script>
+	import panel from "@/components/coms/panel/panel.vue";
+	import RadarChart from "@/components/chart/radar/radar-chart.vue";
+	export default {
+		components: {
+			panel,
+			RadarChart
+		},
+		data() {
+			return {
+				rzdfsStr: "",
+				yzdfsData: {
+					indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
+				 data: [{
+						value: [44200, 14200, 20000, 35000, 50000, 38000],
+						name: "",
+					}, ],
+				},
+				yzdfsStr: "",
+				yzdfsData: {
+					indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
+					data: [{
+						value: [44200, 14200, 20000, 35000, 50000, 38000],
+						name: "",
+					}, ],
+				},
+
+				nzdfsStr: "",
+				nzdfsData: {
+					indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
+					data: [{
+						value: [44200, 14200, 20000, 35000, 50000, 38000],
+						name: "",
+					}, ],
+				},
+			}
+		},
+		created() {
+
+		},
+		methods: {
+			// getMgt(subUrl, data, dataKey, logFlg) {
+			//   let that = this;
+			//   that.API.requestData({
+			//     method: "POST",
+			//     subUrl,
+			//     data,
+			//     success(res) {
+			//       that[dataKey.split("Data")[0] + "Str"] = res.data.jfpl || "";
+
+			//       let mgtData = {
+			//         indicator: [],
+			//         data: [
+			//           {
+			//             name: "",
+			//             value: [],
+			//           },
+			//         ],
+			//       };
+
+			//       if (res.data.data) {
+			//         mgtData.indicator = [
+			//           "北",
+			//           "北北西",
+			//           "北西",
+			//           "西北西",
+			//           "西",
+			//           "西南西",
+			//           "南西",
+			//           "南南西",
+			//           "南",
+			//           "南南东",
+			//           "东南",
+			//           "东南东",
+			//           "东",
+			//           "东北东",
+			//           "北东",
+			//           "北北东",
+			//         ];
+			//         res.data.data.forEach((ele) => {
+			//           // mgtData.indicator.push(ele.name);
+			//           mgtData.data[0].value.push(ele.data1);
+			//         });
+			//       }
+			//       mgtData.data[0].value.reverse();
+			//       that[dataKey] = mgtData;
+			//     },
+			//   });
+			// },
+		},
+
+	};
+</script>
+
+<style>
+</style>

+ 21 - 6
src/views/malfunctionDiagnose/index.vue

@@ -82,6 +82,8 @@
       </div>
       <div class="query-actions">
         <button class="btn green" @click="search()">查询</button>
+		<button class="btn green" @click="">导入</button>
+		<button class="btn green" @click="export">导出</button>
       </div>
     </div>
     <div class="df-table">
@@ -191,7 +193,7 @@ export default {
           },
           {
             name: "操作",
-            field: "",
+            field: "cz",
             is_num: false,
             is_light: false,
             template() {
@@ -266,7 +268,6 @@ export default {
         });
       }
     },
-
     // 获取故障诊断树
     getTree(item) {
       let that = this;
@@ -289,15 +290,29 @@ export default {
     search() {
       this.getTableData();
     },
+	formatJson(filterVal, jsonData) {
+		return jsonData.map(v => filterVal.map(j => v[j]));
+	},
+	export() {
+		let that = this;
+		const {export_json_to_excel} = require('@tools/excel/Export2Excel.js'); // 注意这个Export2Excel路径      
+		let tHeader = []; // 上面设置Excel的表格第一行的标题       
+		let filterVal = []; // 上面的index、nickName、name是tableData里对象的属性key值
+	
+		that.tableData.column.forEach(ele => {
+			if(ele.field != 'cz'){
+				tHeader.push(ele.name);
+				filterVal.push(ele.field);
+			}
+		});
+		const data = that.formatJson(filterVal, that.tableData.data);
+		export_json_to_excel(tHeader, data, '故障诊断'); // 最后一个是表名字
+	},
   },
 
   created() {
     this.requestData();
   },
-
-  mounted() {},
-
-  unmounted() {},
 };
 </script>
 

+ 5 - 303
src/views/malfunctionRecall/components/fault-diagnosis.vue

@@ -597,156 +597,6 @@ export default {
                         ["2021/07/01 10:00:00", 296],
                         ["2021/07/01 15:00:00", 87],
                         ["2021/07/01 20:00:00", 273],
-                        ["2021/07/02 00:00:00", 129],
-                        ["2021/07/02 05:00:00", 121],
-                        ["2021/07/02 10:00:00", 65],
-                        ["2021/07/02 15:00:00", 215],
-                        ["2021/07/02 20:00:00", 245],
-                        ["2021/07/03 00:00:00", 288],
-                        ["2021/07/03 05:00:00", 256],
-                        ["2021/07/03 10:00:00", 47],
-                        ["2021/07/03 15:00:00", 207],
-                        ["2021/07/03 20:00:00", 237],
-                        ["2021/07/04 00:00:00", 68],
-                        ["2021/07/04 05:00:00", 186],
-                        ["2021/07/04 10:00:00", 126],
-                        ["2021/07/04 15:00:00", 207],
-                        ["2021/07/04 20:00:00", 59],
-                        ["2021/07/05 00:00:00", 328],
-                        ["2021/07/05 05:00:00", 72],
-                        ["2021/07/05 10:00:00", 54],
-                        ["2021/07/05 15:00:00", 114],
-                        ["2021/07/05 20:00:00", 167],
-                        ["2021/07/06 00:00:00", 164],
-                        ["2021/07/06 05:00:00", 176],
-                        ["2021/07/06 10:00:00", 59],
-                        ["2021/07/06 15:00:00", 196],
-                        ["2021/07/06 20:00:00", 208],
-                        ["2021/07/07 00:00:00", 80],
-                        ["2021/07/07 05:00:00", 119],
-                        ["2021/07/07 10:00:00", 228],
-                        ["2021/07/07 15:00:00", 80],
-                        ["2021/07/07 20:00:00", 182],
-                        ["2021/07/08 00:00:00", 152],
-                        ["2021/07/08 05:00:00", 119],
-                        ["2021/07/08 10:00:00", 236],
-                        ["2021/07/08 15:00:00", 45],
-                        ["2021/07/08 20:00:00", 36],
-                        ["2021/07/09 00:00:00", 34],
-                        ["2021/07/09 05:00:00", 280],
-                        ["2021/07/09 10:00:00", 63],
-                        ["2021/07/09 15:00:00", 53],
-                        ["2021/07/09 20:00:00", 226],
-                        ["2021/07/10 00:00:00", 56],
-                        ["2021/07/10 05:00:00", 234],
-                        ["2021/07/10 10:00:00", 301],
-                        ["2021/07/10 15:00:00", 106],
-                        ["2021/07/10 20:00:00", 80],
-                        ["2021/07/11 00:00:00", 280],
-                        ["2021/07/11 05:00:00", 277],
-                        ["2021/07/11 10:00:00", 104],
-                        ["2021/07/11 15:00:00", 76],
-                        ["2021/07/11 20:00:00", 321],
-                        ["2021/07/12 00:00:00", 93],
-                        ["2021/07/12 05:00:00", 109],
-                        ["2021/07/12 10:00:00", 100],
-                        ["2021/07/12 15:00:00", 128],
-                        ["2021/07/12 20:00:00", 87],
-                        ["2021/07/13 00:00:00", 179],
-                        ["2021/07/13 05:00:00", 189],
-                        ["2021/07/13 10:00:00", 140],
-                        ["2021/07/13 15:00:00", 109],
-                        ["2021/07/13 20:00:00", 156],
-                        ["2021/07/14 00:00:00", 173],
-                        ["2021/07/14 05:00:00", 213],
-                        ["2021/07/14 10:00:00", 331],
-                        ["2021/07/14 15:00:00", 84],
-                        ["2021/07/14 20:00:00", 339],
-                        ["2021/07/15 00:00:00", 157],
-                        ["2021/07/15 05:00:00", 225],
-                        ["2021/07/15 10:00:00", 198],
-                        ["2021/07/15 15:00:00", 46],
-                        ["2021/07/15 20:00:00", 62],
-                        ["2021/07/16 00:00:00", 189],
-                        ["2021/07/16 05:00:00", 159],
-                        ["2021/07/16 10:00:00", 295],
-                        ["2021/07/16 15:00:00", 52],
-                        ["2021/07/16 20:00:00", 238],
-                        ["2021/07/17 00:00:00", 341],
-                        ["2021/07/17 05:00:00", 269],
-                        ["2021/07/17 10:00:00", 126],
-                        ["2021/07/17 15:00:00", 275],
-                        ["2021/07/17 20:00:00", 101],
-                        ["2021/07/18 00:00:00", 348],
-                        ["2021/07/18 05:00:00", 83],
-                        ["2021/07/18 10:00:00", 225],
-                        ["2021/07/18 15:00:00", 42],
-                        ["2021/07/18 20:00:00", 234],
-                        ["2021/07/19 00:00:00", 239],
-                        ["2021/07/19 05:00:00", 265],
-                        ["2021/07/19 10:00:00", 213],
-                        ["2021/07/19 15:00:00", 219],
-                        ["2021/07/19 20:00:00", 52],
-                        ["2021/07/20 00:00:00", 79],
-                        ["2021/07/20 05:00:00", 287],
-                        ["2021/07/20 10:00:00", 340],
-                        ["2021/07/20 15:00:00", 267],
-                        ["2021/07/20 20:00:00", 321],
-                        ["2021/07/21 00:00:00", 176],
-                        ["2021/07/21 05:00:00", 222],
-                        ["2021/07/21 10:00:00", 311],
-                        ["2021/07/21 15:00:00", 82],
-                        ["2021/07/21 20:00:00", 58],
-                        ["2021/07/22 00:00:00", 186],
-                        ["2021/07/22 05:00:00", 186],
-                        ["2021/07/22 10:00:00", 312],
-                        ["2021/07/22 15:00:00", 62],
-                        ["2021/07/22 20:00:00", 40],
-                        ["2021/07/23 00:00:00", 119],
-                        ["2021/07/23 05:00:00", 314],
-                        ["2021/07/23 10:00:00", 45],
-                        ["2021/07/23 15:00:00", 308],
-                        ["2021/07/23 20:00:00", 227],
-                        ["2021/07/24 00:00:00", 54],
-                        ["2021/07/24 05:00:00", 165],
-                        ["2021/07/24 10:00:00", 337],
-                        ["2021/07/24 15:00:00", 278],
-                        ["2021/07/24 20:00:00", 35],
-                        ["2021/07/25 00:00:00", 169],
-                        ["2021/07/25 05:00:00", 344],
-                        ["2021/07/25 10:00:00", 223],
-                        ["2021/07/25 15:00:00", 309],
-                        ["2021/07/25 20:00:00", 227],
-                        ["2021/07/26 00:00:00", 303],
-                        ["2021/07/26 05:00:00", 102],
-                        ["2021/07/26 10:00:00", 238],
-                        ["2021/07/26 15:00:00", 210],
-                        ["2021/07/26 20:00:00", 198],
-                        ["2021/07/27 00:00:00", 180],
-                        ["2021/07/27 05:00:00", 168],
-                        ["2021/07/27 10:00:00", 310],
-                        ["2021/07/27 15:00:00", 210],
-                        ["2021/07/27 20:00:00", 257],
-                        ["2021/07/28 00:00:00", 316],
-                        ["2021/07/28 05:00:00", 52],
-                        ["2021/07/28 10:00:00", 202],
-                        ["2021/07/28 15:00:00", 201],
-                        ["2021/07/28 20:00:00", 150],
-                        ["2021/07/29 00:00:00", 84],
-                        ["2021/07/29 05:00:00", 267],
-                        ["2021/07/29 10:00:00", 199],
-                        ["2021/07/29 15:00:00", 249],
-                        ["2021/07/29 20:00:00", 140],
-                        ["2021/07/30 00:00:00", 56],
-                        ["2021/07/30 05:00:00", 50],
-                        ["2021/07/30 10:00:00", 147],
-                        ["2021/07/30 15:00:00", 158],
-                        ["2021/07/30 20:00:00", 318],
-                        ["2021/07/31 00:00:00", 290],
-                        ["2021/07/31 05:00:00", 338],
-                        ["2021/07/31 10:00:00", 176],
-                        ["2021/07/31 15:00:00", 90],
-                        ["2021/07/31 20:00:00", 136]
                     ],
                 },
                 {
@@ -758,156 +608,6 @@ export default {
                         ["2021/07/01 10:00:00", 313],
                         ["2021/07/01 15:00:00", 230],
                         ["2021/07/01 20:00:00", 264],
-                        ["2021/07/02 00:00:00", 272],
-                        ["2021/07/02 05:00:00", 310],
-                        ["2021/07/02 10:00:00", 176],
-                        ["2021/07/02 15:00:00", 182],
-                        ["2021/07/02 20:00:00", 248],
-                        ["2021/07/03 00:00:00", 241],
-                        ["2021/07/03 05:00:00", 225],
-                        ["2021/07/03 10:00:00", 360],
-                        ["2021/07/03 15:00:00", 222],
-                        ["2021/07/03 20:00:00", 237],
-                        ["2021/07/04 00:00:00", 252],
-                        ["2021/07/04 05:00:00", 164],
-                        ["2021/07/04 10:00:00", 320],
-                        ["2021/07/04 15:00:00", 194],
-                        ["2021/07/04 20:00:00", 319],
-                        ["2021/07/05 00:00:00", 155],
-                        ["2021/07/05 05:00:00", 328],
-                        ["2021/07/05 10:00:00", 104],
-                        ["2021/07/05 15:00:00", 157],
-                        ["2021/07/05 20:00:00", 223],
-                        ["2021/07/06 00:00:00", 156],
-                        ["2021/07/06 05:00:00", 345],
-                        ["2021/07/06 10:00:00", 352],
-                        ["2021/07/06 15:00:00", 108],
-                        ["2021/07/06 20:00:00", 167],
-                        ["2021/07/07 00:00:00", 354],
-                        ["2021/07/07 05:00:00", 338],
-                        ["2021/07/07 10:00:00", 232],
-                        ["2021/07/07 15:00:00", 359],
-                        ["2021/07/07 20:00:00", 304],
-                        ["2021/07/08 00:00:00", 271],
-                        ["2021/07/08 05:00:00", 307],
-                        ["2021/07/08 10:00:00", 315],
-                        ["2021/07/08 15:00:00", 280],
-                        ["2021/07/08 20:00:00", 302],
-                        ["2021/07/09 00:00:00", 356],
-                        ["2021/07/09 05:00:00", 196],
-                        ["2021/07/09 10:00:00", 222],
-                        ["2021/07/09 15:00:00", 317],
-                        ["2021/07/09 20:00:00", 292],
-                        ["2021/07/10 00:00:00", 314],
-                        ["2021/07/10 05:00:00", 311],
-                        ["2021/07/10 10:00:00", 292],
-                        ["2021/07/10 15:00:00", 104],
-                        ["2021/07/10 20:00:00", 297],
-                        ["2021/07/11 00:00:00", 235],
-                        ["2021/07/11 05:00:00", 293],
-                        ["2021/07/11 10:00:00", 224],
-                        ["2021/07/11 15:00:00", 137],
-                        ["2021/07/11 20:00:00", 136],
-                        ["2021/07/12 00:00:00", 144],
-                        ["2021/07/12 05:00:00", 150],
-                        ["2021/07/12 10:00:00", 267],
-                        ["2021/07/12 15:00:00", 156],
-                        ["2021/07/12 20:00:00", 201],
-                        ["2021/07/13 00:00:00", 214],
-                        ["2021/07/13 05:00:00", 324],
-                        ["2021/07/13 10:00:00", 352],
-                        ["2021/07/13 15:00:00", 117],
-                        ["2021/07/13 20:00:00", 157],
-                        ["2021/07/14 00:00:00", 166],
-                        ["2021/07/14 05:00:00", 228],
-                        ["2021/07/14 10:00:00", 344],
-                        ["2021/07/14 15:00:00", 281],
-                        ["2021/07/14 20:00:00", 224],
-                        ["2021/07/15 00:00:00", 358],
-                        ["2021/07/15 05:00:00", 200],
-                        ["2021/07/15 10:00:00", 148],
-                        ["2021/07/15 15:00:00", 352],
-                        ["2021/07/15 20:00:00", 246],
-                        ["2021/07/16 00:00:00", 340],
-                        ["2021/07/16 05:00:00", 126],
-                        ["2021/07/16 10:00:00", 205],
-                        ["2021/07/16 15:00:00", 221],
-                        ["2021/07/16 20:00:00", 280],
-                        ["2021/07/17 00:00:00", 127],
-                        ["2021/07/17 05:00:00", 149],
-                        ["2021/07/17 10:00:00", 162],
-                        ["2021/07/17 15:00:00", 297],
-                        ["2021/07/17 20:00:00", 168],
-                        ["2021/07/18 00:00:00", 292],
-                        ["2021/07/18 05:00:00", 100],
-                        ["2021/07/18 10:00:00", 110],
-                        ["2021/07/18 15:00:00", 265],
-                        ["2021/07/18 20:00:00", 185],
-                        ["2021/07/19 00:00:00", 265],
-                        ["2021/07/19 05:00:00", 354],
-                        ["2021/07/19 10:00:00", 106],
-                        ["2021/07/19 15:00:00", 206],
-                        ["2021/07/19 20:00:00", 113],
-                        ["2021/07/20 00:00:00", 193],
-                        ["2021/07/20 05:00:00", 144],
-                        ["2021/07/20 10:00:00", 359],
-                        ["2021/07/20 15:00:00", 335],
-                        ["2021/07/20 20:00:00", 239],
-                        ["2021/07/21 00:00:00", 230],
-                        ["2021/07/21 05:00:00", 357],
-                        ["2021/07/21 10:00:00", 317],
-                        ["2021/07/21 15:00:00", 264],
-                        ["2021/07/21 20:00:00", 355],
-                        ["2021/07/22 00:00:00", 284],
-                        ["2021/07/22 05:00:00", 326],
-                        ["2021/07/22 10:00:00", 184],
-                        ["2021/07/22 15:00:00", 315],
-                        ["2021/07/22 20:00:00", 102],
-                        ["2021/07/23 00:00:00", 206],
-                        ["2021/07/23 05:00:00", 292],
-                        ["2021/07/23 10:00:00", 273],
-                        ["2021/07/23 15:00:00", 156],
-                        ["2021/07/23 20:00:00", 282],
-                        ["2021/07/24 00:00:00", 146],
-                        ["2021/07/24 05:00:00", 129],
-                        ["2021/07/24 10:00:00", 270],
-                        ["2021/07/24 15:00:00", 330],
-                        ["2021/07/24 20:00:00", 302],
-                        ["2021/07/25 00:00:00", 205],
-                        ["2021/07/25 05:00:00", 132],
-                        ["2021/07/25 10:00:00", 124],
-                        ["2021/07/25 15:00:00", 182],
-                        ["2021/07/25 20:00:00", 147],
-                        ["2021/07/26 00:00:00", 319],
-                        ["2021/07/26 05:00:00", 221],
-                        ["2021/07/26 10:00:00", 126],
-                        ["2021/07/26 15:00:00", 299],
-                        ["2021/07/26 20:00:00", 164],
-                        ["2021/07/27 00:00:00", 293],
-                        ["2021/07/27 05:00:00", 337],
-                        ["2021/07/27 10:00:00", 159],
-                        ["2021/07/27 15:00:00", 256],
-                        ["2021/07/27 20:00:00", 118],
-                        ["2021/07/28 00:00:00", 193],
-                        ["2021/07/28 05:00:00", 138],
-                        ["2021/07/28 10:00:00", 273],
-                        ["2021/07/28 15:00:00", 217],
-                        ["2021/07/28 20:00:00", 274],
-                        ["2021/07/29 00:00:00", 138],
-                        ["2021/07/29 05:00:00", 223],
-                        ["2021/07/29 10:00:00", 338],
-                        ["2021/07/29 15:00:00", 340],
-                        ["2021/07/29 20:00:00", 205],
-                        ["2021/07/30 00:00:00", 293],
-                        ["2021/07/30 05:00:00", 170],
-                        ["2021/07/30 10:00:00", 103],
-                        ["2021/07/30 15:00:00", 147],
-                        ["2021/07/30 20:00:00", 231],
-                        ["2021/07/31 00:00:00", 305],
-                        ["2021/07/31 05:00:00", 359],
-                        ["2021/07/31 10:00:00", 115],
-                        ["2021/07/31 15:00:00", 215],
-                        ["2021/07/31 20:00:00", 224]
                     ],
                 }
             ],
@@ -1018,9 +718,10 @@ export default {
         requestValue(points){
             let that = this;
             that.API.requestData({
+				showLoading: true,
                 method: "POST",
                 subUrl: "/fault/getFaultPlayback",
-                timeout: 8000,
+                timeout: 20000,
                 data: {
                     wtId: that.value1,
                     pointids: points,
@@ -1116,6 +817,7 @@ export default {
         initEchart(){
             this.yAxis = [];
             this.lineData = [];
+			let lineData=[];
             this.checkValue.forEach((item, index) => {
                 let uniformcode = item.substring(0, item.indexOf("$"));
                 let name = item.substring(item.indexOf("$") + 1);
@@ -1142,9 +844,9 @@ export default {
                     value.push(obj)
                 })
                 data.value = value
-
-                this.lineData.push(data);
+				lineData.push(data);
             })
+			this.lineData=lineData;
         },
     },
     watch: {

+ 4 - 2
src/views/malfunctionRecall/index.vue

@@ -112,7 +112,7 @@
         :close-on-click-modal="false"
         :before-close="onClickDialogClose"
       >
-        <fault-diagnosis :data="rowitem"/>
+        <fault-diagnosis :data="rowitem" ref="rowitemS" :key="componentKey"/>
       </el-dialog>
     </div>
   </div>
@@ -127,6 +127,7 @@ export default {
   data() {
     const that = this;
     return {
+	componentKey:0,
       value1: "",
       value2: "",
       wpId: "",
@@ -321,8 +322,9 @@ export default {
     },
     // 回放按钮
     onClickOption(row) {
-      this.rowitem = row
+      this.rowitem = row;
       this.dialogVisible = true;
+	  this.componentKey += 1;
     },
     // 关闭弹窗
     onClickDialogClose() {

+ 568 - 399
src/views/report/ExportExcel.vue

@@ -1,411 +1,580 @@
 <template>
-	<div class="ExportExcel">
-		<el-row style="margin-bottom: 15px;padding-bottom: 15px;border-bottom: 2px solid #EEE8D5;">
-			<el-col :span="12">
-				<button class="btn" :class="templateId == 1?'green':''" @click="typeClick(1)">单机数据模板</button>
-				<button class="btn" :class="templateId == 2?'green':''" @click="typeClick(2)">上网电量及功率、测风塔数据模板</button>
-			</el-col>
-			<el-col :span="12">
-				<el-row justify="end">
-					<button class="btn green" @click="allExport()">一键导出</button>
-				</el-row>
-			</el-col>
-		</el-row>
-		<table class="com-table">
-			<thead>
-				<tr>
-					<th>
-						场站
-					</th>
-					<th>
-						<input class='t2' type='checkbox' @click="rqCheck" checked='checked'/>
-						日期
-					</th>
-					<th>
-						<input class='t2' type='checkbox' @click="sjCheck" checked='checked'/>
-						时间间隔(s)
-					</th>
-					<th width="120px">
-						操作
-					</th>
-				</tr>
-			</thead>
-			<el-scrollbar>
-				<tbody>
-					<tr v-for="(row, index) of tableData" :key="index">
-						<td>
-							{{row.fdc}}
-						</td>
-						<td class="excelPickerTd">
-							<el-date-picker v-model="value1[index]" type="daterange" @change='value1Change(index)' range-separator="至"
-								start-placeholder="开始日期" end-placeholder="结束日期" class="mr15">
-							</el-date-picker>
-						</td>
-						<td>
-							<el-input placeholder="请输入时间间隔" type='number' v-model="inputVal[index]" @change='inputValChange(index)'></el-input>
-						</td>
-						<td width="120px">
-							<el-button type='text' style='cursor: pointer;' @click="thisExport(index)">导出
-							</el-button>
-						</td>
-					</tr>
-				</tbody>
-			</el-scrollbar>
-		</table>
-	</div>
+  <div class="ExportExcel">
+    <el-row
+      style="
+        margin-bottom: 15px;
+        padding-bottom: 15px;
+        border-bottom: 2px solid #eee8d5;
+      "
+    >
+      <el-col :span="12">
+        <button
+          class="btn"
+          :class="templateId == 1 ? 'green' : ''"
+          @click="typeClick(1)"
+        >
+          单机数据模板
+        </button>
+        <button
+          class="btn"
+          :class="templateId == 2 ? 'green' : ''"
+          @click="typeClick(2)"
+        >
+          上网电量及功率、测风塔数据模板
+        </button>
+      </el-col>
+      <el-col :span="12">
+        <el-row justify="end">
+          <button class="btn green" @click="allExport()">一键导出</button>
+        </el-row>
+      </el-col>
+    </el-row>
+    <table class="com-table">
+      <thead>
+        <tr>
+          <th>场站</th>
+          <th>
+            <input
+              class="t2"
+              type="checkbox"
+              @click="rqCheck"
+              checked="checked"
+            />
+            日期
+          </th>
+          <th>
+            <input
+              class="t2"
+              type="checkbox"
+              @click="sjCheck"
+              checked="checked"
+            />
+            时间间隔(s)
+          </th>
+          <th width="120px">操作</th>
+        </tr>
+      </thead>
+      <el-scrollbar>
+        <tbody>
+          <tr v-for="(row, index) of tableData" :key="index">
+            <td>
+              {{ row.fdc }}
+            </td>
+            <td class="excelPickerTd">
+              <el-date-picker
+                class="mr15"
+                format="YYYY-MM"
+                v-model="dateArray[index]"
+                type="month"
+                placeholder="请选择"
+                @change="changeDate"
+              >
+              </el-date-picker>
+            </td>
+            <td>
+              <el-select
+                v-model="timeData[index]"
+                clearable
+                placeholder="Select"
+                @change="changeTableTime"
+              >
+                <el-option
+                  v-for="item in timeArray"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select>
+            </td>
+            <td width="120px">
+              <el-button
+                type="text"
+                style="cursor: pointer"
+                @click="singleExport(index)"
+                >导出
+              </el-button>
+            </td>
+          </tr>
+        </tbody>
+      </el-scrollbar>
+    </table>
+  </div>
 </template>
 
 <script>
-	import JsZip from 'jszip';
-	import {
-		export_blob,
-		export_more_blob
-	} from "@tools/excel/Export2Excel.js";
-	import BASE from "@tools/basicTool.js";
-	export default {
-		components: {
-			JsZip
-		},
-		data() {
-			const that = this;
-			return {
-				single:false,//单击导出状态【点击后,用于判断其状态,为true时,loading显示】
-				rqChecked:true,//日期单击checkbox状态【为true时,下方任意日期选择与当前选择同步】
-				sjChecked:true,//时间间隔checkbox状态【为true时,下方任意时间选择与当前选择同步】
-				tableData: [],//表格数据
-				value1: [],//日期数组,默认一个月的,当用户改变某一个时,找到对应下标去改数据
-				inputVal: [],//时间同上
-				startTs: [],//起始时间,通过下标去找对应的时间
-				endTs: [],//结束时间
-				muBan: {
-					type1: ['数据时间', 'scada风速(m/s)', 'scada功率(kW)', '是否故障(故障=1,不故障=0)', '是否限电(限电=1,不限电=0)'],
-					type2: [
-						['数据时间', '日报上网电量(mWh)'],
-						['数据时间', '上网功率(kW)'],
-						['数据时间', '轮毂高度平均风速(m/s)', '轮毂高度平均风向(°)', '温度(℃)', '压强(hPa)', '湿度(%)']
-					],
-				},
-				templateId: 1,//模板默认为1
-				stations: [],//场站名
-				paths: [],//excel的所有数据,最终给zip传
-				pathName: [],//excel的名字
-				zipNames: [],
-				tempArrayS: [],//模板2时,遍历里面的数据
-			}
-		},
-		created() {
-			this.tableVal();
-		},
-		methods: {
-			value1Change(index){//日期数组,默认一个月的,当用户改变某一个时,找到对应下标去改数据
-				if(this.rqChecked){
-					var date = this.value1[index];
-					this.value1 = [];
-					this.tableData.forEach((ele, index) => {
-						this.value1.push(date);
-						this.time(index, date);
-					})
-				}
-			},
-			inputValChange(index){
-				if(this.sjChecked){
-					var sj = this.inputVal[index];
-					this.inputVal = [];
-					this.tableData.forEach((ele, index) => {
-						this.inputVal.push(sj);
-					})
-				}
-			},
-			rqCheck(){
-				this.rqChecked=event.target.checked
-			},
-			sjCheck(){
-				this.sjChecked=event.target.checked
-			},
-			typeClick(a){//模板切换,改变按钮颜色
-				this.templateId = a;
-			},
-			thisExport(index) {//当前导出,index为下标
-				let that = this;
-				that.single = true;
-				// 下面的是通过下标找到对应的数据,请求ajax
-				that.time(index, that.value1[index]);
-				that.stations[index] = that.tableData[index].value;
-				that.allExportF(0, index);
-			},
-			tableVal() {
-				let that = this;
-				that.API.requestData({
-					method: "GET",
-					subUrl: "export/databases",
-					success(res) {
-						if (res.code === 200) {
-							const arr3 = [];
-							const arr4 = [];
-							var data = []; //项目列表
-							res.data.forEach((item,index) => {
-								const value = Object.keys(item)[0];
-								arr3.push(value);
-								arr4.push(item[value]);
-								data.push({
-									fdc: item[value],
-									value: value,
-								});
-								that.inputVal.push(1800);
-							})
-							that.stations = arr3;
-							that.zipNames = arr4;
-							that.tableData = data;
-							that.defaultValue1();
-						}
-					},
-				});
-			},
-			defaultValue1() { //默认时间区间
-				const end = new Date();
-				const start = new Date();
-				start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-				/////////////
-				var nowDate = new Date();
-				var year = nowDate.getFullYear();
-				var month = nowDate.getMonth();
-				var day = nowDate.getDate();
+import JsZip from "jszip";
+import { export_blob, export_more_blob } from "@tools/excel/Export2Excel.js";
+import BASE from "@tools/basicTool.js";
+export default {
+  components: {
+    JsZip,
+  },
+  data() {
+    const that = this;
+    return {
+      single: false, //单击导出状态【点击后,用于判断其状态,为true时,loading显示】
+      rqChecked: true, //日期单击checkbox状态【为true时,下方任意日期选择与当前选择同步】
+      sjChecked: true, //时间间隔checkbox状态【为true时,下方任意时间选择与当前选择同步】
+      tableData: [], //表格数据
+      dateArray: [], //日期数组,默认一个月的,当用户改变某一个时,找到对应下标去改数据
+      //时间同上
+      timeArray: [
+        {
+          label: "5分钟",
+          value: "300",
+        },
+        {
+          label: "10分钟",
+          value: "600",
+        },
+        {
+          label: "15分钟",
+          value: "900",
+        },
+      ],
+      timeData: [],
+      startTs: [], //起始时间,通过下标去找对应的时间
+      endTs: [], //结束时间
+      muBan: {
+        type1: [
+          "数据时间",
+          "scada风速(m/s)",
+          "scada功率(kW)",
+          "是否故障(故障=1,不故障=0)",
+          "是否限电(限电=1,不限电=0)",
+        ],
+        type2: [
+          ["数据时间", "日报上网电量(mWh)"],
+          ["数据时间", "上网功率(kW)"],
+          [
+            "数据时间",
+            "轮毂高度平均风速(m/s)",
+            "轮毂高度平均风向(°)",
+            "温度(℃)",
+            "压强(hPa)",
+            "湿度(%)",
+          ],
+        ],
+      },
+      templateId: 1, //模板默认为1
+      stations: [], //场站名
+      paths: [], //excel的所有数据,最终给zip传
+      pathName: [], //excel的名字
+      zipNames: [],
+      tempArrayS: [], //模板2时,遍历里面的数据
+    };
+  },
+  created() {
+    this.tableVal();
+  },
+  methods: {
+    rqCheck(event) {
+      this.rqChecked = event.target.checked;
+    },
+    sjCheck(event) {
+      this.sjChecked = event.target.checked;
+    },
+    typeClick(a) {
+      //模板切换,改变按钮颜色
+      this.templateId = a;
+    },
+    singleExport(index) {
+      //当前导出,index为下标
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "export/downloadFile",
+        showLoading: true,
+        data: {
+          station: that.tableData[index].value,
+          templateId: that.templateId,
+          month: that.dateArray[index].formatDate("yyyy-MM"),
+          interval: that.timeData[index],
+        },
+        success(res) {
+          var filename = res.data.name;
+          var eleLink = document.createElement("a");
 
-				this.tableData.forEach((ele, index) => {
-					this.value1.push([start, end]);
-					this.time(index, [start, end]);
-				})
-			},
-			formatJson(filterVal, jsonData) {//模板1时,转数据格式
-				return jsonData.map(v => filterVal.map(j => v[j]));
-			},
-			allExport() {//一键导出
-				this.allExportF(0);
-			},
-			allExportF(_index, thisIndex) {//_index递归递增,thisIndex单击导出【下标】
-				const that = this;
-				var loadingName = thisIndex!=undefined?'正在导出'+that.zipNames[thisIndex]:(that.zipNames[_index]!=undefined?'正在导出'+that.zipNames[_index]:'正在合成压缩包');
-				BASE.showLoading({text: loadingName +',请耐心等待...'});
-				if (that.stations[_index]) {
-					that.API.requestData({
-						method: "GET",
-						subUrl: "export/history/all",
-						data: {
-							templateId: that.templateId,
-							startTs: thisIndex!=undefined ? that.startTs[thisIndex] : that.startTs[_index],
-							endTs: thisIndex!=undefined ? that.endTs[thisIndex] + 86400000 : that.endTs[_index] + 86400000,
-							interval: thisIndex!=undefined ? that.inputVal[thisIndex] : that.inputVal[_index],
-							station: thisIndex!=undefined ? that.stations[thisIndex] : that.stations[_index]
-						},
-						success(res) {
-							if (res.code == 200) {
-								if (thisIndex!=undefined) {//单击导出
-									if (that.templateId == 1) {//模板1
-										that.export(res.data, 0, that.zipNames[thisIndex]);
-									} else if (that.templateId == 2) {//模板2
-										that.exportMuban2(res.data, 0, that.zipNames[thisIndex]);
-									}
-								} else {//一键导出
-									if (that.templateId == 1) {
-										that.export(res.data, 0, that.zipNames[_index], ++_index);
-									} else if (that.templateId == 2) {
-										that.exportMuban2(res.data, 0, that.zipNames[_index], ++_index);
-									}
-								}
-							}
-						}
-					});
-				}
-			},
-			export (data, _index, zipName, deepIndex) {
-				// deepIndex判断单击或一键
-				const that = this;
-				let tHeader = that.muBan['type' + that.templateId];
-				var dataKey = Object.keys(data);
-				var key = dataKey[_index];
-				if (key) {
-					let tempObject = {};
-					let tempArray = [];
-					const dataLength = data[key].length;
+          const downloadLink = (res.data.path + "\\" + filename)
+            .replace(/\\/g, "/")
+            .replace(/http:\//g, "http://")
+            .replace(/https:\//g, "https://");
 
-					let filterVal = [];
-					data[key][0].forEach((pEle, pIndex) => {
-						for (let i = 0; i < dataLength; i++) {
-							tempObject[String(i)] = data[key][i][pIndex];
-						}
-						tempArray.push(tempObject)
-						tempObject = {};
-					})
+          eleLink.download = filename;
+          eleLink.style.display = "none";
+          eleLink.href = downloadLink;
+          document.body.appendChild(eleLink);
+          eleLink.click();
+          document.body.removeChild(eleLink);
+        },
+      });
+    },
+    tableVal() {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "export/databases",
+        success(res) {
+          const arr3 = [];
+          const arr4 = [];
+          var data = []; //项目列表
+          res.data.forEach((item, index) => {
+            const value = Object.keys(item)[0];
+            arr3.push(value);
+            arr4.push(item[value]);
+            data.push({
+              fdc: item[value],
+              value: value,
+            });
+            that.timeData.push("300");
+          });
+          that.stations = arr3;
+          that.zipNames = arr4;
+          that.tableData = data;
+          that.defaultValue1();
+        },
+      });
+    },
+    defaultValue1() {
+      const start = new Date();
+      start.setTime(start.getTime());
+      this.tableData.forEach((ele, index) => {
+        this.dateArray.push(start);
+      });
+    },
+    formatJson(filterVal, jsonData) {
+      //模板1时,转数据格式
+      return jsonData.map((v) => filterVal.map((j) => v[j]));
+    },
+    allExport() {
+      //一键导出
+      let that = this;
 
-					data[key][0].forEach((ele, index) => {
-						filterVal.push(index);
-					});
-					that.paths.push(export_blob(tHeader, that.formatJson(filterVal, tempArray))); //传blob
-					var str = key.split('_');
-					that.pathName.push(str[0].substring(0,2)+str[1]); //excel的名字
-					_index++;
-					
-					if (deepIndex!=undefined) {
-						setTimeout(() => {
-							that.export(data, _index, zipName, deepIndex);
-						}, 1000);
-						if (dataKey.length == _index) { //当长度一致时,向zip塞值
-							var thisPath = that.paths,
-								thisPathName = that.pathName;
-							that.paths = [];
-							that.pathName = [];
-							that.zipOut(thisPath, thisPathName, zipName, deepIndex)
-						}
-					} else {
-						setTimeout(() => {
-							that.export(data, _index, zipName);
-						}, 1000);
-						if (dataKey.length == _index) { //当长度一致时,向zip塞值
-							var thisPath = that.paths,
-								thisPathName = that.pathName;
-							that.paths = [];
-							that.pathName = [];
-							that.zipOut(thisPath, thisPathName, zipName)
-						}
-					}
-				}
-			},
-			exportMuban2(data, _index, excelName, deepIndex) {
-				const that = this;
-				var dataKey = Object.keys(data);
-				let tHeader = that.muBan['type' + that.templateId];
-				var key = dataKey[_index];
-				if (key) {
-					let tempObject = {};
-					let tempArray = [];
-					const dataLength = data[key].length;
-					data[key][0].forEach((pEle, pIndex) => {
-						for (let i = 0; i < dataLength; i++) {
-							tempObject[String(i)] = data[key][i][pIndex];
-						}
-						tempArray.push(tempObject)
-						tempObject = {};
-					})
+      let station = [];
+      that.tableData.forEach((ele) => {
+        station.push(ele.value);
+      });
 
-					that.tempArrayS.push(tempArray);
-					_index++;
-					if (dataKey.length == that.tempArrayS.length) {
-						let obj = [];
-						that.tempArrayS.forEach((ele, index) => {
-							obj[index] = [];
-							ele.forEach((ele2, index2) => {
-								var key = Object.keys(ele2)
-								var arr = [];
-								key.forEach((ele3, index3) => {
-									arr.push(ele2[ele3])
-								})
-								obj[index][index2] = arr;
-								arr = [];
-							})
-						})
-						if (deepIndex!=undefined) {
-							that.paths.push(export_more_blob(tHeader, obj)); //传blob
-							that.pathName.push(excelName); //excel的名字
-							that.tempArrayS = [];
-							that.allExportF(deepIndex);
-						} else {
-							that.paths.push(export_more_blob(tHeader, obj, excelName)); //只渲染一个excel
-							BASE.closeLoading();
-						}
-					}
-					if (deepIndex!=undefined) {
-						that.exportMuban2(data, _index, excelName, deepIndex);
-						if (that.stations.length == deepIndex && _index == 1) { //当长度一致时,向zip塞值,_index只让执行第一次
-							var thisPath = that.paths,
-								thisPathName = that.pathName;
-							that.tempArrayS = [];
-							that.paths = [];
-							that.pathName = [];
-							that.zipOut(thisPath, thisPathName, '风电场_上网电量&功率&测风塔数据')
-							BASE.closeLoading();
-						}
-					}else{
-						that.exportMuban2(data, _index, excelName);
-						if (that.stations.length && _index == 1) { //当长度一致时,向zip塞值,_index只让执行第一次
-							var thisPath = that.paths,
-								thisPathName = that.pathName;
-							that.tempArrayS = [];
-							that.paths = [];
-							that.pathName = [];
-							BASE.closeLoading();
-						}
-					}
-				}
-			},
-			zipOut(paths, pathName, zipName, deepIndex) {
-				// paths 所有blob
-				// pathName 所有excel文件名
-				// zipName zip的包名
-				// deepIndex 执行ajax下标,当zipOut方法执行完后,再执行allExportF
-				const that = this;
-				var zip = new JsZip();
-				paths.forEach((item, index) => {
-					const arr_name = item // 下载文件, 并存成ArrayBuffer对象
-					const file_name = pathName[index] + '.xlsx' // 获取文件名
-					zip.file(file_name, arr_name, {
-						binary: true
-					}) // 逐个添加文件
-				})
-				zip.generateAsync({
-						type: 'blob',
-					})
-					.then(function(content) {
-						// 下载的文件名
-						var filename = zipName + '.zip'
-						// 创建隐藏的可下载链接
-						var eleLink = document.createElement('a')
-						eleLink.download = filename
-						eleLink.style.display = 'none'
-						// 下载内容转变成blob地址
-						eleLink.href = URL.createObjectURL(content)
-						// 触发点击
-						document.body.appendChild(eleLink)
-						eleLink.click()
-						// 然后移除
-						document.body.removeChild(eleLink)
-						if (deepIndex) {
-							that.allExportF(deepIndex); //递归,去执行ajax
-							if(that.stations.length == deepIndex){
-								BASE.closeLoading();
-							}
-						}else if(that.single){
-							BASE.closeLoading();
-							that.single = false;
-						}
-					})
-			},
-			time(index, val) {//时间转时间戳
-				this.startTs[index] = Date.parse(new Date(val[0]));
-				this.endTs[index] = Date.parse(new Date(val[1]) + 86400000);
-			},
-		},
-	}
+      let month = [];
+      that.dateArray.forEach((ele) => {
+        month.push(ele.formatDate("yyyy-MM"));
+      });
+
+      let interval = [];
+      that.timeData.forEach((ele) => {
+        interval.push(ele);
+      });
+      that.API.requestData({
+        method: "GET",
+        subUrl: "export/downloadFile",
+        showLoading: true,
+        data: {
+          station: station.toString(),
+          templateId: that.templateId,
+          month: month.toString(),
+          interval: interval.toString(),
+        },
+        success(res) {
+          var filename = res.data.name;
+          var eleLink = document.createElement("a");
+
+          const downloadLink = (res.data.path + "\\" + filename)
+            .replace(/\\/g, "/")
+            .replace(/http:\//g, "http://")
+            .replace(/https:\//g, "https://");
+
+          eleLink.download = filename;
+          eleLink.style.display = "none";
+          eleLink.href = downloadLink;
+          document.body.appendChild(eleLink);
+          eleLink.click();
+          document.body.removeChild(eleLink);
+        },
+      });
+    },
+    allExportF(_index, thisIndex) {
+      //_index递归递增,thisIndex单击导出【下标】
+      const that = this;
+      var loadingName =
+        thisIndex != undefined
+          ? "正在导出" + that.zipNames[thisIndex]
+          : that.zipNames[_index] != undefined
+          ? "正在导出" + that.zipNames[_index]
+          : "正在合成压缩包";
+      BASE.showLoading({ text: loadingName + ",请耐心等待..." });
+      if (that.stations[_index]) {
+        that.API.requestData({
+          method: "GET",
+          subUrl: "export/history/all",
+          data: {
+            templateId: that.templateId,
+            startTs:
+              thisIndex != undefined
+                ? that.startTs[thisIndex]
+                : that.startTs[_index],
+            endTs:
+              thisIndex != undefined
+                ? that.endTs[thisIndex] + 86400000
+                : that.endTs[_index] + 86400000,
+            interval:
+              thisIndex != undefined
+                ? that.inputVal[thisIndex]
+                : that.inputVal[_index],
+            station:
+              thisIndex != undefined
+                ? that.stations[thisIndex]
+                : that.stations[_index],
+          },
+          success(res) {
+            if (res.code == 200) {
+              if (thisIndex != undefined) {
+                //单击导出
+                if (that.templateId == 1) {
+                  //模板1
+                  that.export(res.data, 0, that.zipNames[thisIndex]);
+                } else if (that.templateId == 2) {
+                  //模板2
+                  that.exportMuban2(res.data, 0, that.zipNames[thisIndex]);
+                }
+              } else {
+                //一键导出
+                if (that.templateId == 1) {
+                  that.export(res.data, 0, that.zipNames[_index], ++_index);
+                } else if (that.templateId == 2) {
+                  that.exportMuban2(
+                    res.data,
+                    0,
+                    that.zipNames[_index],
+                    ++_index
+                  );
+                }
+              }
+            }
+          },
+        });
+      }
+    },
+    export(data, _index, zipName, deepIndex) {
+      // deepIndex判断单击或一键
+      const that = this;
+      let tHeader = that.muBan["type" + that.templateId];
+      var dataKey = Object.keys(data);
+      var key = dataKey[_index];
+      if (key) {
+        let tempObject = {};
+        let tempArray = [];
+        const dataLength = data[key].length;
+
+        let filterVal = [];
+        data[key][0].forEach((pEle, pIndex) => {
+          for (let i = 0; i < dataLength; i++) {
+            tempObject[String(i)] = data[key][i][pIndex];
+          }
+          tempArray.push(tempObject);
+          tempObject = {};
+        });
+
+        data[key][0].forEach((ele, index) => {
+          filterVal.push(index);
+        });
+        that.paths.push(
+          export_blob(tHeader, that.formatJson(filterVal, tempArray))
+        ); //传blob
+        var str = key.split("_");
+        that.pathName.push(str[0].substring(0, 2) + str[1]); //excel的名字
+        _index++;
+
+        if (deepIndex != undefined) {
+          setTimeout(() => {
+            that.export(data, _index, zipName, deepIndex);
+          }, 1000);
+          if (dataKey.length == _index) {
+            //当长度一致时,向zip塞值
+            var thisPath = that.paths,
+              thisPathName = that.pathName;
+            that.paths = [];
+            that.pathName = [];
+            that.zipOut(thisPath, thisPathName, zipName, deepIndex);
+          }
+        } else {
+          setTimeout(() => {
+            that.export(data, _index, zipName);
+          }, 1000);
+          if (dataKey.length == _index) {
+            //当长度一致时,向zip塞值
+            var thisPath = that.paths,
+              thisPathName = that.pathName;
+            that.paths = [];
+            that.pathName = [];
+            that.zipOut(thisPath, thisPathName, zipName);
+          }
+        }
+      }
+    },
+    exportMuban2(data, _index, excelName, deepIndex) {
+      const that = this;
+      var dataKey = Object.keys(data);
+      let tHeader = that.muBan["type" + that.templateId];
+      var key = dataKey[_index];
+      if (key) {
+        let tempObject = {};
+        let tempArray = [];
+        const dataLength = data[key].length;
+        data[key][0].forEach((pEle, pIndex) => {
+          for (let i = 0; i < dataLength; i++) {
+            tempObject[String(i)] = data[key][i][pIndex];
+          }
+          tempArray.push(tempObject);
+          tempObject = {};
+        });
+
+        that.tempArrayS.push(tempArray);
+        _index++;
+        if (dataKey.length == that.tempArrayS.length) {
+          let obj = [];
+          that.tempArrayS.forEach((ele, index) => {
+            obj[index] = [];
+            ele.forEach((ele2, index2) => {
+              var key = Object.keys(ele2);
+              var arr = [];
+              key.forEach((ele3, index3) => {
+                arr.push(ele2[ele3]);
+              });
+              obj[index][index2] = arr;
+              arr = [];
+            });
+          });
+          if (deepIndex != undefined) {
+            that.paths.push(export_more_blob(tHeader, obj)); //传blob
+            that.pathName.push(excelName); //excel的名字
+            that.tempArrayS = [];
+            that.allExportF(deepIndex);
+          } else {
+            that.paths.push(export_more_blob(tHeader, obj, excelName)); //只渲染一个excel
+            BASE.closeLoading();
+          }
+        }
+        if (deepIndex != undefined) {
+          that.exportMuban2(data, _index, excelName, deepIndex);
+          if (that.stations.length == deepIndex && _index == 1) {
+            //当长度一致时,向zip塞值,_index只让执行第一次
+            var thisPath = that.paths,
+              thisPathName = that.pathName;
+            that.tempArrayS = [];
+            that.paths = [];
+            that.pathName = [];
+            that.zipOut(
+              thisPath,
+              thisPathName,
+              "风电场_上网电量&功率&测风塔数据"
+            );
+            BASE.closeLoading();
+          }
+        } else {
+          that.exportMuban2(data, _index, excelName);
+          if (that.stations.length && _index == 1) {
+            //当长度一致时,向zip塞值,_index只让执行第一次
+            var thisPath = that.paths,
+              thisPathName = that.pathName;
+            that.tempArrayS = [];
+            that.paths = [];
+            that.pathName = [];
+            BASE.closeLoading();
+          }
+        }
+      }
+    },
+
+    changeDate(value) {
+      if (this.rqCheck) {
+        let dateArray = [];
+        this.dateArray.forEach((ele) => {
+          dateArray.push(value);
+        });
+        this.dateArray = dateArray;
+      }
+    },
+
+    changeTableTime(value) {
+      if (this.sjChecked) {
+        let timeData = [];
+        this.timeData.forEach((ele) => {
+          timeData.push(value);
+        });
+        this.timeData = timeData;
+      }
+    },
+
+    zipOut(paths, pathName, zipName, deepIndex) {
+      // paths 所有blob
+      // pathName 所有excel文件名
+      // zipName zip的包名
+      // deepIndex 执行ajax下标,当zipOut方法执行完后,再执行allExportF
+      const that = this;
+      var zip = new JsZip();
+      paths.forEach((item, index) => {
+        const arr_name = item; // 下载文件, 并存成ArrayBuffer对象
+        const file_name = pathName[index] + ".xlsx"; // 获取文件名
+        zip.file(file_name, arr_name, {
+          binary: true,
+        }); // 逐个添加文件
+      });
+      zip
+        .generateAsync({
+          type: "blob",
+        })
+        .then(function (content) {
+          // 下载的文件名
+          var filename = zipName + ".zip";
+          // 创建隐藏的可下载链接
+          var eleLink = document.createElement("a");
+          eleLink.download = filename;
+          eleLink.style.display = "none";
+          // 下载内容转变成blob地址
+          eleLink.href = URL.createObjectURL(content);
+          // 触发点击
+          document.body.appendChild(eleLink);
+          eleLink.click();
+          // 然后移除
+          document.body.removeChild(eleLink);
+          if (deepIndex) {
+            that.allExportF(deepIndex); //递归,去执行ajax
+            if (that.stations.length == deepIndex) {
+              BASE.closeLoading();
+            }
+          } else if (that.single) {
+            BASE.closeLoading();
+            that.single = false;
+          }
+        });
+    },
+  },
+};
 </script>
 
 <style lang="less">
-	.excelPickerTd input {
-		flex: 1;
-	}
-	.el-date-editor--daterange.mr15{
-		    border: 1px solid rgba(96, 103, 105, 0.2);
-		    height: 33px;
-		    padding: 0 8px;
-		    width: 369px;
-			input{
-				background-color: transparent;
-				color: white;
-			}
-			.el-range-separator{
-				color: white;
-			}
-	}
-	.com-table td{
-		color: white !important;
-	}
-	.t2{top: 2px;position: relative !important;}
+.excelPickerTd input {
+  flex: 1;
+}
+.el-date-editor--daterange.mr15 {
+  border: 1px solid rgba(96, 103, 105, 0.2);
+  height: 33px;
+  padding: 0 8px;
+  width: 369px;
+  input {
+    background-color: transparent;
+    color: white;
+  }
+  .el-range-separator {
+    color: white;
+  }
+}
+.com-table td {
+  color: white !important;
+}
+.t2 {
+  top: 2px;
+  position: relative !important;
+}
 </style>

+ 623 - 0
src/views/sampleDatabase/fault/index - 副本.vue

@@ -0,0 +1,623 @@
+<template>
+	<el-scrollbar height="92vh" v-if="gzCgd == 1">
+		<div class="query mg-b-8">
+			<div class="query-items">
+				<div class="query-item">
+					<div class="lable">场站:</div>
+					<div class="search-input">
+						<el-select v-model="station" placeholder="请选择" popper-class="select">
+							<el-option v-for="item in ChangZhan" :key="item.id" :value="item.id" :label="item.name">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">样本类型:</div>
+					<div class="search-input">
+						<el-select v-model="tableTag" placeholder="请选择样本" popper-class="select">
+							<el-option v-for="item in tableTagArr" :key="item.value" :value="item.value" :label="item.label">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">故障分类:</div>
+					<div class="search-input">
+						<el-select v-model="widget" multiple collapse-tags clearable placeholder="请选择"
+							popper-class="select">
+							<el-option v-for="item in BuJian" :key="item.value" :value="item.value" :label="item.label">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">风机型号:</div>
+					<div class="search-input">
+						<el-select v-model="model" multiple collapse-tags clearable placeholder="请选择"
+							popper-class="select">
+							<el-option v-for="item in fjxh" :key="item.value" :value="item.value" :label="item.label">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">时间:</div>
+					<div class="search-input">
+						<el-date-picker v-model="time" type="datetimerange" range-separator="至" start-placeholder="开始日期"
+							end-placeholder="结束日期">
+						</el-date-picker>
+					</div>
+				</div>
+				<div class="query-actions">
+					<button class="btn" @click="query()">查询</button>
+					<button class="btn" @click="addEdit()">新增</button>
+				</div>
+			</div>
+		</div>
+		<el-row :type="'flex'" class="content">
+			<el-col :span="24">
+				<ComTable :data="tableData" :pageSize="pageSize" @onPagging="onChangePage" height="84vh"
+					v-loading="tableLoading" element-loading-text="拼命加载中"
+					element-loading-background="rgba(0, 0, 0, 0.8)"></ComTable>
+			</el-col>
+		</el-row>
+		<el-dialog :title="isvisiableType == 1 ? '新增' : '编辑'" v-model="isvisiable" width="45%" top="15vh"
+			custom-class="modal" :close-on-click-modal="false" :before-close="onClickDialogClose" class="isvisiable">
+			<!-- 这里是新增或编辑 -->
+			<el-row type="flex" class="mb10">
+				<el-col :span="12">
+					<div>样本类型:</div>
+					<el-select v-model="tableTag" placeholder="请选择样本" popper-class="select" class="w">
+						<el-option v-for="item in tableTagArr" :key="item.value" :value="item.value"
+							:label="item.label">
+						</el-option>
+					</el-select>
+				</el-col>
+				<el-col :span="12">
+					<div>风机型号:</div>
+					<el-select v-model="tableModel" placeholder="请选择风机型号" popper-class="select" class="w">
+						<el-option v-for="item in fjxh" :key="item.value" :value="item.value" :label="item.label">
+						</el-option>
+					</el-select>
+				</el-col>
+			</el-row>
+			<el-row type="flex" class="mb10">
+				<el-col :span="12">
+					<div>故障分类:</div>
+					<el-select v-model="tableFaulttype" placeholder="请选择故障" popper-class="select" class="w">
+						<el-option v-for="item in BuJian" :key="item.value" :value="item.value" :label="item.label">
+						</el-option>
+					</el-select>
+				</el-col>
+				<el-col :span="12">
+					<div>时间:</div>
+					<el-date-picker v-model="tableTime" type="datetimerange" range-separator="至"
+						start-placeholder="开始日期" end-placeholder="结束日期" class="w">
+					</el-date-picker>
+				</el-col>
+			</el-row>
+			<el-row type="flex" class="mb10">
+				<el-col :span="12">
+					<div>故障原因:</div>
+					<el-input placeholder="请输入故障原因" v-model="tableSymptom" :value="tableSymptom">
+					</el-input>
+				</el-col>
+				<el-col :span="12">
+					<div>风机厂商:</div>
+					<el-input placeholder="请输入风机厂商" v-model="tableManufacturer" :value="tableManufacturer">
+					</el-input>
+				</el-col>
+			</el-row>
+			<el-row type="flex" class="mb10">
+				<el-col :span="12">
+					<div>风机编号:</div>
+					<el-input placeholder="请输入风机编号" v-model="tableWindturbineid" :value="tableWindturbineid">
+					</el-input>
+				</el-col>
+			</el-row>
+			<el-row type="flex" justify="end">
+				<div class="query-actions" style="margin-top: 15px">
+					<button class="btn" @click="onClickDialogClose">取消</button>
+					<button class="btn" @click="dialogSave">保存</button>
+				</div>
+			</el-row>
+		</el-dialog>
+	</el-scrollbar>
+	<el-scrollbar height="92vh" v-if="gzCgd == 2">
+		<Point :data="gzCgdData" :st='st' @gzCgdClick="gzCgdClick" />
+	</el-scrollbar>
+</template>
+
+<script>
+	import ComTable from "@/components/coms/table/table.vue";
+	import Point from "./point.vue";
+	export default {
+		components: {
+			ComTable,
+			Point,
+		},
+		data() {
+			const that = this;
+			return {
+				tableTagArr: [{
+						label: '正样本',
+						value: 0
+					},
+					{
+						label: '负样本',
+						value: 1
+					}
+				],
+				queryType: false, //没有改变select时,点击查询无效
+				pageIndex: 1,
+				pageSize: 20,
+				gzCgd: 1, //传感点组件隐藏或显示
+				gzCgdData: [], //传感点参数
+				st:'',
+				BuJian: [],
+				ChangZhan: [],
+				fjxh: [],
+				fjxhArr: [],
+				widget: [],
+				model: [],
+				time: [],
+				station: '',
+				tableFaulttype: "",
+				tableTag: "",
+				tableModel: "",
+				tableTime: "",
+				tableSymptom: "",
+				tableManufacturer: "",
+				tableWindturbineid: "",
+				tableCategory: "", //隐藏保存部分
+				tableRemark: "",
+				tableFaultcode: "",
+				tableId: "",
+				tableSymptomcode: "",
+				tableStationen: "",
+				isvisiable: false,
+				isvisiableType: 1, //新增为1,编辑为2
+				tableData: {
+					column: [{
+							name: "序号",
+							field: "index",
+							is_light: false,
+							width: '50px',
+						},
+						{
+							name: "样本类型",
+							field: "tableTag",
+							is_light: false,
+							width: '100px',
+						},
+						{
+							name: "风机编号",
+							field: "tableWindturbineid",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "故障分类",
+							field: "tableFaulttype",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "故障原因",
+							field: "tableSymptom",
+							is_light: false,
+							width: '350px',
+						},
+						{
+							name: "时间",
+							field: "tableTime",
+							is_light: false,
+							width: '350px',
+						},
+						{
+							name: "风机厂商",
+							field: "tableManufacturer",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "风机型号",
+							field: "tableModel",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "操作",
+							is_light: false,
+							width: '200px',
+							template: () => {
+								return (
+									"<el-button type='text' style='cursor: pointer;' value='edit'>编辑</el-button>&nbsp" +
+									"<el-button type='text' style='cursor: pointer;' value='delete'>删除</el-button>&nbsp" +
+									"<el-button type='text' style='cursor: pointer;' value='config'>传感点</el-button>&nbsp"
+								);
+							},
+							click(e, row) {
+								that.onClickOption(e, row);
+							},
+						},
+					],
+					data: [],
+				}
+			};
+		},
+		methods: {
+			getTable() {
+				let that = this;
+				this.tableLoading = true;
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://192.168.10.4:9002/",
+					subUrl: "benchmarking/wplist",
+					data: {
+						wpId: that.stationId,
+						startTs: that.startDate,
+						endTs: that.endDate,
+						pageNum: that.pageIndex,
+						pageSize: that.pageSize,
+					},
+					success(res) {
+						var dataTab = [];
+						if (res.data) {
+							res.data.list.forEach(item => {
+								dataTab.push({ //表格
+									recodedata: that.formatTime(item.recodedata),
+									region: item.region,
+								})
+							})
+							that.tableData.data = dataTab;
+							that.tableData.total = res.data.total;
+						} else {
+							that.tableData.data = [];
+							that.tableData.total = 0;
+						}
+						that.tableLoading = false;
+					},
+				});
+			},
+			onChangePage(params) {
+				this.pageIndex = params.pageIndex;
+				this.pageSize = params.pageSize;
+				this.getTable();
+			},
+			startAjax() {
+				var that = this;
+				// that.time = [new Date((new Date() - 3600 * 1000 * 24 * 30)).formatDate("yyyy-MM-dd"), new Date().formatDate("yyyy-MM-dd")];
+				that.time = [new Date((new Date() - 3600 * 1000 * 24 * 360)).formatDate("yyyy-MM-dd"), new Date()
+					.formatDate("yyyy-MM-dd")
+				];
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://10.155.32.4:9001/",
+					subUrl: "benchmarking/wplist",
+					success(res) {
+						that.ChangZhan = res.data;
+						// that.station = res.data[0].name
+						that.station = res.data[1].name
+					},
+				});
+
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://192.168.1.18:9002/",
+					subUrl: "basic/widget/condition",
+					success(res) {
+						let keys = Object.keys(res.data[0]);
+						let bujian = [],
+							widget = [];
+						keys.forEach((ele, index) => {
+							bujian.push({
+								label: res.data[0].ele,
+								value: ele
+							})
+							widget.push(ele)
+						})
+
+						that.widget = widget;
+						that.BuJian = bujian;
+					},
+				});
+
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://192.168.1.18:9002/",
+					subUrl: "basic/station/all",
+					success(res) {
+						let fjxhArr = [];
+						let model = [],
+							fjxh = [];
+						res.data.forEach(ele => {
+							fjxhArr.push({
+								id: ele.id,
+								value: ele.model.split("/")
+							})
+							if (ele.id == "MHS_FDC") {
+								model = ele.model.split("/");
+								model.forEach(ele => {
+									fjxh.push({
+										label: ele,
+										value: ele
+									})
+								})
+							}
+						})
+						that.fjxhArr = fjxhArr;
+						that.model = model;
+						that.fjxh = fjxh;
+					},
+				});
+			},
+			query() {
+				if (this.queryType) {
+					this.list();
+				}
+			},
+			addEdit() {
+				this.isvisiableType = 1;
+				this.tableFaulttype = '';
+				this.tableModel = '';
+				this.tableTime = '';
+				this.tableSymptom = '';
+				this.tableManufacturer = '';
+				this.tableWindturbineid = '';
+
+				// this.tableCategory: data[i].category,
+				// this.tableRemark: data[i].remark,
+				// this.tableFaultcode: data[i].faultcode,
+				// this.tableId: data[i].id,
+				// this.tableSymptomcode:data[i].Symptomcode,
+				// this.tableStationen:data[i].stationen
+
+				this.isvisiable = true;
+			},
+			onClickOption(e, row) { // 操作按钮
+				let that = this;
+				if ("delete" == e.target.getAttribute("value")) {
+					that
+						.$confirm("确认删除此条样本数据?", "提示", {
+							confirmButtonText: "删除",
+							cancelButtonText: "取消"
+						})
+						.then((_) => {
+							console.log('ok')
+							// that.requestDelete(row);
+						})
+						.catch((_) => {});
+				}
+				if ("edit" == e.target.getAttribute("value")) {
+					that.isvisiableType = 2;
+					that.$nextTick(() => {
+						let tableTime = row.tableTime.split(" - ");
+						that.tableTag = row.tableTag;
+						that.BuJian.forEach(ele => {
+							if (ele.value == row.tableFaultcode) {
+								that.tableFaulttype = ele.label
+							}
+						})
+						that.tableModel = row.tableModel;
+						that.tableTime = [Date.parse(new Date(tableTime[0])), Date.parse(new Date(tableTime[1]))];
+						that.tableSymptom = row.tableSymptom;
+						that.tableManufacturer = row.tableManufacturer;
+						that.tableWindturbineid = row.tableWindturbineid;
+
+						that.tableCategory = row.tableCategory;
+						that.tableRemark = row.tableRemark;
+						that.tableFaultcode = row.tableFaultcode;
+						that.tableId = row.tableId;
+						that.tableSymptomcode = row.tableSymptomcode;
+						that.tableStationen = row.tableStationen;
+					});
+					that.isvisiable = true;
+				}
+				if ("config" == e.target.getAttribute("value")) { //传感点
+					that.API.requestData({
+						method: "GET",
+						baseURL: "http://192.168.1.18:9002/",
+						subUrl: "point/all",
+						data: {
+							wtId: row.tableWindturbineid,
+							widget: row.tableFaultcode
+						},
+						success(res) {
+							console.log(res)
+							if (res.code == 200) {
+								that.gzCgdData = res.data;
+								that.st = Date.parse(new Date(row.tableTime.split(" - ")[0]));
+								that.gzCgd = 2;
+							}
+						},
+					});
+				}
+			},
+			onClickDialogClose() { // 弹窗右上角关闭按钮
+				this.isvisiable = false;
+				this.isvisiableType = 1;
+			},
+			dialogSave() {
+				let that = this;
+				that.tableTime[0] = that.formatDate(that.tableTime[0].valueOf());
+				that.tableTime[1] = that.formatDate(that.tableTime[1].valueOf());
+				console.log(that.tableTime)
+				that.API.requestData({
+					method: "POST",
+					baseURL: "http://192.168.1.18:9002/",
+					headers: {
+						'Content-Type': 'application/json;charset=utf-8',
+					},
+					subUrl: "case/item/edit",
+					body: {
+						category: that.tableCategory,
+						endtime: that.tableTime[1],
+						faultcode: that.tableFaultcode,
+						faulttype: that.tableFaulttype,
+						id: that.tableId,
+						manufacturer: that.tableManufacturer,
+						model: that.tableModel,
+						remark: that.tableRemark,
+						starttime: that.tableTime[0],
+						stationen: that.tableStationen,
+						symptom: that.tableSymptom,
+						symptomcode: that.tableSymptomcode,
+						tag: that.tableTag == "正样本" ? 0 : 1,
+						windturbineid: that.tableWindturbineid
+					},
+					success(res) {
+						if (res.code == 200) {
+							that.BASE.showMsg({
+								type: "success",
+								msg: "保存成功",
+							});
+							that.onClickDialogClose();
+							that.list();
+						}
+					},
+				});
+			},
+			gzCgdClick(data) {
+				this.gzCgd = data;
+			},
+			formatDate(dates) {
+				var date = new Date(dates);
+				var YY = date.getFullYear() + '-';
+				var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+				var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
+				var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
+				var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
+				var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
+				return YY + MM + DD + " " + hh + mm + ss;
+			},
+			list() {
+				var that = this;
+				let station = '',
+					widget = ''
+				if (typeof that.time[0].valueOf() != 'string') {
+					that.time[0] = that.formatDate(that.time[0].valueOf())
+				}
+				if (typeof that.time[1].valueOf() != 'string') {
+					that.time[1] = that.formatDate(that.time[1].valueOf())
+				}
+				if (typeof that.station.valueOf() == 'string') {
+					that.ChangZhan.forEach(ele => {
+						if (ele.name == that.station) {
+							station = ele.id
+						}
+					})
+				}
+				if (typeof that.widget.valueOf() == 'string') {
+					that.BuJian.forEach(ele => {
+						if (ele.label == that.widget) {
+							widget = ele.value
+						}
+					})
+				}
+				if (that.model.length == 0) {
+					that.BASE.showMsg({
+						type: "warning",
+						msg: "请选择风机型号",
+					});
+					return
+				}
+				if (that.widget.length == 0) {
+					that.BASE.showMsg({
+						type: "warning",
+						msg: "请选择部件",
+					});
+					return
+				}
+				that.API.requestData({
+					showLoading: true,
+					method: "GET",
+					baseURL: "http://192.168.1.18:9002/",
+					subUrl: "case/fault/all",
+					data: {
+						widget: widget ? widget : that.widget,
+						station: station ? station : that.station,
+						model: that.model,
+						st: that.time[0].valueOf(),
+						et: that.time[1].valueOf()
+					},
+					success(res) {
+						if (res.code == 200) {
+							console.log(res)
+							that.tableData.data = [];
+							if (res.data.length) {
+								let data = res.data;
+								for (var i = 0; i < data.length; i++) {
+									let obj = {
+										index: i + 1,
+										tableTag: data[i].tag == 0 ? '正样本' : '负样本',
+										tableFaulttype: data[i].faulttype,
+										tableModel: data[i].model,
+										tableTime: data[i].starttime + ' - ' + data[i].endtime,
+										tableSymptom: data[i].symptom,
+										tableManufacturer: data[i].manufacturer,
+										tableWindturbineid: data[i].windturbineid,
+
+										tableCategory: data[i].category,
+										tableRemark: data[i].remark,
+										tableFaultcode: data[i].faultcode,
+										tableId: data[i].id,
+										tableSymptomcode: data[i].symptomcode,
+										tableStationen: data[i].stationen
+									};
+									that.tableData.data.push(obj);
+								}
+							}
+						}
+					},
+				});
+			},
+		},
+		created() {
+			let that = this;
+			that.startAjax();
+			setTimeout(function() {
+				that.list()
+			}, 500)
+		},
+		watch: {
+			station(res) {
+				let fjxh = [];
+				this.fjxhArr.forEach(ele => {
+					if (ele.id == res) {
+						ele.value.forEach(ele2 => {
+							fjxh.push({
+								label: ele2,
+								value: ele2
+							})
+						})
+						this.model = ele.value;
+					}
+				})
+				this.fjxh = fjxh;
+				this.queryType = true;
+			},
+			widget() {
+				this.queryType = true;
+			},
+			model() {
+				this.queryType = true;
+			},
+			time() {
+				this.queryType = true;
+			},
+		},
+	};
+</script>
+
+<style lang="less" scoped>
+	.mb10 {
+		margin-bottom: 10px;
+	}
+
+	.el-select.w {
+		width: 100%;
+	}
+
+	// .el-range-editor.w{width: 100%;}
+</style>

+ 489 - 0
src/views/sampleDatabase/fault/index.vue

@@ -0,0 +1,489 @@
+<template>
+	<el-scrollbar height="92vh">
+		<div class="query mg-b-8">
+			<div class="query-items">
+				<div class="query-item" style="width: 200px;">
+					<div class="lable">场站:</div>
+					<div class="search-input">
+						<el-select v-model="station" placeholder="请选择" popper-class="select">
+							<el-option v-for="item in ChangZhan" :key="item.id" :value="item.id" :label="item.name"> </el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item" style="width: 230px;">
+					<div class="lable">故障类型:</div>
+					<div class="search-input">
+						<el-select v-model="widget" multiple collapse-tags clearable placeholder="请选择" popper-class="select">
+							<el-option @click="checkAll" :class="active?'green':''">
+								全选
+							</el-option>
+							<el-option v-for="item in widgetArr" :key="item.value" :value="item.value" :label="item.label">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item" style="width: 230px;">
+					<div class="lable">风机型号:</div>
+					<div class="search-input">
+						<el-select v-model="model" multiple collapse-tags clearable placeholder="请选择" popper-class="select">
+							<el-option v-for="item in fjxh" :key="item.value" :value="item.value" :label="item.label">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item" style="width: 180px;">
+					<div class="lable">模型:</div>
+					<div class="search-input">
+						<el-select v-model="mx" collapse-tags clearable placeholder="请选择" popper-class="select">
+							<el-option key="1" value="list" label="原数据"></el-option>
+							<el-option key="2" value="alg" label="DB-SCAN"></el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">时间:</div>
+					<div class="search-input">
+						<el-date-picker v-model="time" type="datetimerange" range-separator="至" start-placeholder="开始日期"
+							end-placeholder="结束日期">
+						</el-date-picker>
+					</div>
+				</div>
+				<div class="query-actions">
+					<button class="btn" @click="list">查询</button>
+					<button class="btn" @click="query()">导入</button>
+					<button class="btn" @click="export">导出</button>
+				</div>
+			</div>
+		</div>
+		<el-row :type="'flex'" class="content">
+			<ComTable :data="tableData" :pageSize="pageSize" @onPagging="onChangePage" height="84vh"
+				v-loading="tableLoading" element-loading-text="拼命加载中"
+				element-loading-background="rgba(0, 0, 0, 0.8)" v-if="mx=='list'"></ComTable>
+			<ComTable :data="tableData2" :pageSize="pageSize" @onPagging="onChangePage" height="84vh"
+				v-loading="tableLoading" element-loading-text="拼命加载中"
+				element-loading-background="rgba(0, 0, 0, 0.8)" v-else></ComTable>	
+		</el-row>
+		<el-dialog title="原始数据对比" v-model="gzCgd" width="80%" top="5vh" custom-class="modal" :close-on-click-modal="false" :before-close="onClickDialogClose" class="isvisiable">
+			<Point :data="gzCgdData" :st='st' v-if='gzCgd'/>
+		</el-dialog>
+	</el-scrollbar>
+</template>
+
+<script>
+	import ComTable from "@/components/coms/table/table.vue";
+	import Point from "./point.vue";
+	export default {
+		components: {
+			ComTable,
+			Point,
+		},
+		data() {
+			const that = this;
+			return {
+				active: true,
+				selectAll: true,
+				
+				pageIndex: 1,
+				pageSize: 20,
+				gzCgd: false, //传感点组件隐藏或显示
+				gzCgdData: [], //传感点参数
+				st:'',
+				widgetArr: [],
+				ChangZhan: [],
+				fjxh: [],
+				fjxhArr: [],
+				widget: [],
+				model: [],
+				mx:'list',
+				time: [],
+				station: '',
+				tableData: {
+					column: [{
+							name: "序号",
+							field: "index",
+							is_light: false,
+							width: '50px',
+						},
+						{
+							name: "风机编号",
+							field: "wtId",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "故障类型",
+							field: "tableTag",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "故障现象",
+							field: "symptom",
+							is_light: false,
+							width: '300px',
+						},
+						{
+							name: "时间",
+							field: "tableTime",
+							is_light: false,
+							width: '350px',
+						},
+						{
+							name: "风机型号",
+							field: "tableModel",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "厂商",
+							field: "tableManufacturer",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "操作",
+							field: "cz",
+							is_light: false,
+							width: '200px',
+							template: () => {
+								return (
+									"<el-button type='text' style='cursor: pointer;' value='config'>传感点</el-button>&nbsp"
+								);
+							},
+							click(e, row) {
+								that.onClickOption(e, row);
+							},
+						},
+					],
+					data: [],
+				},
+				tableData2: {
+					column: [{
+							name: "序号",
+							field: "index",
+							is_light: false,
+							width: '50px',
+						},
+						{
+							name: "风机编号",
+							field: "wtId",
+							is_light: false,
+							width: '200px',
+						},
+						{
+							name: "故障类型",
+							field: "faulttype",
+							is_light: false,
+							width: '200px',
+						},
+						{
+							name: "故障时间",
+							field: "faultTime",
+							is_light: false,
+							width: '200px',
+						},
+						{
+							name: "风机型号",
+							field: "modelId",
+							is_light: false,
+							width: '200px',
+						},
+						{
+							name: "操作",
+							field: "cz",
+							is_light: false,
+							width: '200px',
+							template: () => {
+								return (
+									"<el-button type='text' style='cursor: pointer;' value='config'>传感点</el-button>&nbsp"
+								);
+							},
+							click(e, row) {
+								that.onClickOption(e, row);
+							},
+						},
+					],
+					data: [],
+				},
+			};
+		},
+		methods: {
+			checkAll() {
+				this.selectAll = !this.selectAll
+				if (this.selectAll) {
+					let widget = [];
+					this.widgetArr.forEach(ele=>{
+						widget.push(ele.value)
+					})
+					this.widget = widget;
+					this.active = true;
+				} else {
+					this.active = false;
+					this.widget = [];
+				}
+			},
+			onChangePage(params) {
+				this.pageIndex = params.pageIndex;
+				this.pageSize = params.pageSize;
+				this.list();
+			},
+			async startAjax() {
+				var that = this;
+				that.time = [new Date((new Date() - 3600 * 1000 * 24 * 360)).formatDate("yyyy-MM-dd hh:mm:ss"), new Date()
+					.formatDate("yyyy-MM-dd hh:mm:ss")
+				];
+				await that.API.requestData({
+					method: "GET",
+					baseURL: "http://10.155.32.4:9001/",
+					subUrl: "benchmarking/wplist",
+					success(res) {
+						that.ChangZhan = res.data;
+						that.station = res.data[1].name
+					},
+				});
+
+				await that.API.requestData({
+					method: "GET",
+					baseURL: "http://192.168.1.18:9002/",
+					subUrl: "basic/widget/condition",
+					success(res) {
+						let widgetArr = [],
+							widget = [];
+						res.data.forEach((ele, index) => {
+							widgetArr.push({
+								label: ele.faulttype,
+								value: ele.faultcode
+							})
+							widget.push(ele.faultcode)
+						})
+						that.widget = widget;
+						that.widgetArr = widgetArr;
+					},
+				});
+
+				await that.API.requestData({
+					method: "GET",
+					baseURL: "http://192.168.1.18:9002/",
+					subUrl: "basic/station/all",
+					success(res) {
+						let fjxhArr = [];
+						let model = [],
+							fjxh = [];
+						res.data.forEach(ele => {
+							fjxhArr.push({
+								id: ele.id,
+								value: ele.model.split("/")
+							})
+							if (ele.id == "MHS_FDC") {
+								model = ele.model.split("/");
+								model.forEach(ele => {
+									fjxh.push({
+										label: ele,
+										value: ele
+									})
+								})
+							}
+						})
+						that.fjxhArr = fjxhArr;
+						that.model = model;
+						that.fjxh = fjxh;
+					},
+				});
+				that.list()
+			},
+			onClickOption(e, row) { // 操作按钮
+				let that = this;
+				if ("config" == e.target.getAttribute("value")) { //传感点
+					that.API.requestData({
+						method: "GET",
+						baseURL: "http://192.168.1.18:9002/",
+						subUrl: "point/list",
+						data: {
+							wtId: row.wtId,
+							widget: row.widget
+						},
+						success(res) {
+							if (res.code == 200) {
+								if(res.data.length){
+									that.gzCgdData = res.data;
+									if(that.mx == 'list'){
+										that.st = Date.parse(new Date(row.tableTime.split(" - ")[0]));
+									}else{
+										that.st = Date.parse(new Date(row.faultTime));
+									}
+									that.gzCgd = true;
+								}else{
+									that.BASE.showMsg({
+										msg: "暂无数据"
+									});
+								}
+							}
+						},
+					});
+				}
+			},
+			onClickDialogClose() { // 弹窗右上角关闭按钮
+				this.gzCgd = false;
+			},
+			formatDate(dates) {
+				var date = new Date(dates);
+				var YY = date.getFullYear() + '-';
+				var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+				var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
+				var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
+				var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
+				var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
+				return YY + MM + DD + " " + hh + mm + ss;
+			},
+			list() {
+				var that = this;
+				let station = '',
+					widget = ''
+				if (typeof that.time[0].valueOf() != 'string') {
+					that.time[0] = that.formatDate(that.time[0].valueOf())
+				}
+				if (typeof that.time[1].valueOf() != 'string') {
+					that.time[1] = that.formatDate(that.time[1].valueOf())
+				}
+				if (typeof that.station.valueOf() == 'string') {
+					that.ChangZhan.forEach(ele => {
+						if (ele.name == that.station) {
+							station = ele.id
+						}
+					})
+				}
+				if (typeof that.widget.valueOf() == 'string') {
+					that.widgetArr.forEach(ele => {
+						if (ele.label == that.widget) {
+							widget = ele.value
+						}
+					})
+				}
+				if (that.model.length== 0) {
+					that.BASE.showMsg({
+						type: "warning",
+						msg: "请选择风机型号",
+					});
+					return
+				}
+				if (that.widget.length == 0) {
+					that.BASE.showMsg({
+						type: "warning",
+						msg: "请选择部件",
+					});
+					return
+				}
+				that.API.requestData({
+					showLoading: true,
+					method: "GET",
+					baseURL: "http://192.168.1.18:9002/",
+					subUrl: "case/fault/list",
+					data: {
+						widget: widget ? widget : that.widget,
+						station: station ? station : that.station,
+						model: that.model,
+						st: that.time[0].valueOf(),
+						et: that.time[1].valueOf()
+					},
+					success(res) {
+						if (res.code == 200) {
+							if (res.data.length) {
+								let data = res.data;
+								if(that.mx == 'list'){
+									that.tableData.data = [];
+									let k = 0;
+									for (var i = 0; i < data.length; i++) {
+											if(data[i].endtime != undefined){
+												k ++;
+												let obj = {
+													index: k,
+													tableTag: data[i].faulttype,
+													symptom: data[i].symptom,
+													tableModel: data[i].model,
+													tableTime: data[i].starttime + ' - ' + data[i].endtime,
+													tableManufacturer: data[i].manufacturer,
+													wtId: data[i].windturbineid,
+													widget:data[i].faultcode
+												};
+												that.tableData.data.push(obj);
+											}
+										}
+								}else{
+									that.tableData2.data = [];
+									let k = 0;
+									for (var i = 0; i < data.length; i++) {
+										if(data[i].endtime == undefined){
+											k ++;
+											let obj = {
+												index: k,
+												wtId: data[i].windturbineid,
+												faulttype: data[i].faulttype,
+												modelId: data[i].model,
+												faultTime: data[i].starttime,
+												widget:data[i].faultcode
+											};
+											that.tableData2.data.push(obj);
+										}
+									}
+								}
+							}
+						}
+					},
+				});
+			},
+			formatJson(filterVal, jsonData) {
+				return jsonData.map(v => filterVal.map(j => v[j]));
+			},
+			export() {
+				let that = this;
+				const {export_json_to_excel} = require('@tools/excel/Export2Excel.js'); // 注意这个Export2Excel路径      
+				let tHeader = []; // 上面设置Excel的表格第一行的标题       
+				let filterVal = []; // 上面的index、nickName、name是tableData里对象的属性key值
+			
+				that.tableData.column.forEach(ele => {
+					if(ele.field != 'cz'){
+						tHeader.push(ele.name);
+						filterVal.push(ele.field);
+					}
+				});
+				const data = that.formatJson(filterVal, that.tableData.data);
+				export_json_to_excel(tHeader, data, '故障样本库'); // 最后一个是表名字
+			},
+		},
+		created() {
+			this.startAjax();
+		},
+		watch: {
+			station(res) {
+				let fjxh = [];
+				this.fjxhArr.forEach(ele => {
+					if (ele.id == res) {
+						ele.value.forEach(ele2 => {
+							fjxh.push({
+								label: ele2,
+								value: ele2
+							})
+						})
+						this.model = ele.value;
+					}
+				})
+				this.fjxh = fjxh;
+			},
+			mx(){
+				this.list();
+			}
+		},
+	};
+</script>
+
+<style lang="less" scoped>
+	.mb10 {
+		margin-bottom: 10px;
+	}
+
+	.el-select.w {
+		width: 100%;
+	}
+
+	// .el-range-editor.w{width: 100%;}
+</style>

+ 799 - 0
src/views/sampleDatabase/fault/point - 副本.vue

@@ -0,0 +1,799 @@
+<template>
+	<el-row type="flex">
+		<div class="query-actions">
+			<button class="btn" @click="addEdit">新增</button>
+			<button class="btn" @click="dbfx">原始数据对标</button>
+			<button class="btn" @click="back">返回</button>
+		</div>
+	</el-row>
+	<el-row :type="'flex'" class="content">
+		<el-col :span="24">
+			<ComTable :data="tableData" :pageSize="pageSize" @onPagging="onChangePage" height="84vh"
+				v-loading="tableLoading" ref="curRef" element-loading-text="拼命加载中"
+				element-loading-background="rgba(0, 0, 0, 0.8)"></ComTable>
+		</el-col>
+	</el-row>
+		
+		
+	<el-dialog :title="isvisiableType == 1 ? '新增' : '编辑'" v-model="isvisiable" width="45%" top="15vh"
+		custom-class="modal" :close-on-click-modal="false" :before-close="onClickDialogClose" class="isvisiable">
+		<!-- 这里是新增或编辑 -->
+		<el-row type="flex" class="mb10">
+			<el-col :span="12">
+				<div>样本类型:</div>
+				<el-select v-model="widget" placeholder="请选择样本" popper-class="select" class="w">
+					<el-option v-for="item in widgetArr" :key="item.value" :value="item.value"
+						:label="item.label">
+					</el-option>
+				</el-select>
+			</el-col>
+			<el-col :span="12">
+				<div>风机型号:</div>
+				<el-select v-model="tableModel" placeholder="请选择风机型号" popper-class="select" class="w">
+					<el-option v-for="item in fjxh" :key="item.value" :value="item.value" :label="item.label">
+					</el-option>
+				</el-select>
+			</el-col>
+		</el-row>
+		<el-row type="flex" class="mb10">
+			<el-col :span="12">
+				<div>故障分类:</div>
+				<el-select v-model="windturbinename" placeholder="请选择故障" popper-class="select" class="w">
+					<el-option v-for="item in BuJian" :key="item.value" :value="item.value" :label="item.label">
+					</el-option>
+				</el-select>
+			</el-col>
+			<el-col :span="12">
+				<div>时间:</div>
+				<el-date-picker v-model="tableTime" type="datetimerange" range-separator="至"
+					start-placeholder="开始日期" end-placeholder="结束日期" class="w">
+				</el-date-picker>
+			</el-col>
+		</el-row>
+		<el-row type="flex" class="mb10">
+			<el-col :span="12">
+				<div>故障原因:</div>
+				<el-input placeholder="请输入故障原因" v-model="tableSymptom" :value="tableSymptom">
+				</el-input>
+			</el-col>
+			<el-col :span="12">
+				<div>风机厂商:</div>
+				<el-input placeholder="请输入风机厂商" v-model="tableManufacturer" :value="tableManufacturer">
+				</el-input>
+			</el-col>
+		</el-row>
+		<el-row type="flex" class="mb10">
+			<el-col :span="12">
+				<div>风机编号:</div>
+				<el-input placeholder="请输入风机编号" v-model="stationcn" :value="stationcn">
+				</el-input>
+			</el-col>
+		</el-row>
+		<el-row type="flex" justify="end">
+			<div class="query-actions" style="margin-top: 15px">
+				<button class="btn" @click="onClickDialogClose">取消</button>
+				<button class="btn" @click="dialogSave">保存</button>
+			</div>
+		</el-row>
+	</el-dialog>
+	<!-- 原始数据start -->
+	<el-dialog title="原始数据" v-model="yssjDialog" width="70%" top="15vh" custom-class="modal"
+		:close-on-click-modal="false" :before-close="yssjDialogClose">
+		<div class="query mg-b-8">
+			<div class="query-items">
+				<div class="query-item">
+					<div class="lable">时间:</div>
+					<div class="search-input">
+						<el-date-picker v-model="time" type="datetimerange" range-separator="至" start-placeholder="开始日期"
+							end-placeholder="结束日期">
+						</el-date-picker>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">等间隔:</div>
+					<div class="search-input">
+						<el-select
+						  v-if="!chooseStatus"
+						  @change="switchChange(selectValue)"
+						  class="inputs"
+						  v-model="selectValue"
+						  placeholder="请选择"
+						>
+						  <el-option
+							v-for="item in timeoptions"
+							:key="item.value"
+							:label="item.label"
+							:value="item.value"
+						  >
+						  </el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-actions">
+					<button class="btn" @click="queryYssj">查询</button>
+				</div>
+			</div>
+		</div>
+		
+		<el-row type="flex">
+			<multiple-y-line-chart-normal
+			  height="500px"
+			  :list="Powertrend"
+			  :yAxises="PowertrendYAxises"
+			  :showLegend="true"
+			/>
+		</el-row>
+	</el-dialog>
+			<!-- 原始数据end -->
+</template>
+
+<script>
+	import ComTable from "@/components/coms/table/table.vue";
+		import MultipleYLineChartNormal from "../../NewPages/multiple-y-line-chart-normal.vue";
+		import Tab from "@/components/coms/tabs/tab.vue";
+	export default {
+		components: {
+			ComTable,MultipleYLineChartNormal,Tab
+		},
+		data() {
+			const that = this;
+			return {
+				Powertrend: [
+				  {
+				    title: "",
+				    yAxisIndex: 0, // 使用单位
+				    value: [],
+				  },
+				],
+				PowertrendYAxises: [
+				  {
+				    name: "功率",
+				    min: 0,
+				    max: null,
+				    unit: "(万kWh)",
+				    position: "left",
+				  },
+				  {
+				    name: "风速",
+				    min: 0,
+				    max: 25,
+				    unit: "(m/s)",
+				    position: "right",
+				  },
+				],
+				selectValue: "60",
+				timeoptions: [
+				  {
+				    value: "60",
+				    label: "一分钟",
+				  },
+				  {
+				    value: "300",
+				    label: "五分钟",
+				  },
+				  {
+				    value: "600",
+				    label: "十分钟",
+				  },
+				  {
+				    value: "1800",
+				    label: "三十分钟",
+				  },
+				  {
+				    value: "3600",
+				    label: "一小时",
+				  },
+				  {
+				    value: "86400",
+				    label: "一天",
+				  },
+				],
+				time: [],
+				yssjDialog:false,
+				point:[],
+				pointdes:[],
+				
+				widgetArr: [{label: '正样本',value: 0},{label: '负样本',value: 1}],
+				queryType: false, //没有改变select时,点击查询无效
+				pageIndex: 1,
+				pageSize: 20,
+				BuJian: [{
+					label: '部件1',
+					value: '1'
+				}, {
+					label: '部件2',
+					value: '2'
+				}],
+				ChangZhan: [{
+					label: '麻黄山风电场',
+					value: 'MHS_FDC'
+				}],
+				fjxh: [{
+					label: '类型1',
+					value: '1'
+				}],
+				fjxhArr: [{
+					id: "MHS_FDC",
+					value: ['UP77', 'UP82', 'UP105']
+				}],
+				widget: [],
+				model: [],
+				station: '',
+				windturbinename: "",
+				widget: "",
+				tableModel: "",
+				tableTime: "",
+				tableSymptom: "",
+				tableManufacturer: "",
+				stationcn: "",
+				tableCategory: "", //隐藏保存部分
+				tableRemark: "",
+				tableFaultcode: "",
+				tableId: "",
+				tableSymptomcode: "",
+				tableStationen: "",
+				isvisiable: false,
+				isvisiableType: 1, //新增为1,编辑为2
+				checkLength: 0, //对标分析只能选择5个
+				tableData: {
+					column: [{
+							name: "序号",
+							field: "index",
+							is_light: false,
+							width: '50px',
+						},
+						{
+						  name: "",
+						  field: "check",
+						  is_light: false,
+						  width: '50px',
+						  template: function () {
+						    return "<input class='check curCheckBox' type='CheckBox'/>";
+						  },
+						  click: function (event, data) {
+						    let point = data.point,
+								pointdes = data.pointdes;
+						    if (event.target.checked == false && that.checkLength <= 5) {
+						      that.point.forEach((item, i) => {
+						        if (item == point) {
+						          that.point.splice(i, 1);
+						          that.pointdes.splice(i, 1);
+						        }
+						      });
+						      that.checkLength--;
+						    } else if (event.target.checked && that.checkLength < 5) {
+						      that.point.push(point);
+						      that.pointdes.push(pointdes);
+						      that.checkLength++;
+						    } else if (that.checkLength == 5) {
+						      event.target.checked = false;
+						    }
+						  },
+						},
+						{
+							name: "风机",
+							field: "windturbineid",
+							is_light: false,
+							width: '100px',
+						},
+						{
+							name: "部件",
+							field: "widget",
+							is_light: false,
+							width: '100px',
+						},
+						{
+							name: "测点",
+							field: "point",
+							is_light: false,
+							width: '250px',
+						},
+						{
+							name: "测点描述",
+							field: "pointdes",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "风机型号",
+							field: "model",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "场站",
+							field: "stationcn",
+							is_light: false,
+							width: '150px',
+						},
+						{
+							name: "操作",
+							is_light: false,
+							width: '200px',
+							template: () => {
+								return (
+									"<el-button type='text' style='cursor: pointer;' value='edit'>编辑</el-button>&nbsp" +
+									"<el-button type='text' style='cursor: pointer;' value='delete'>删除</el-button>&nbsp" +
+									"<el-button type='text' style='cursor: pointer;' value='config'>原始数据</el-button>&nbsp"
+								);
+							},
+							click(e, row) {
+								that.onClickOption(e, row);
+							},
+						},
+					],
+					data: [{
+						index: 1,
+						windturbineid: 0,
+						widget: "MG01-01",
+						point: "0.1000",
+						pointdes: "0.1000",
+						model: "0.1000",
+						stationcn: "0.1000",
+						is_light: false,
+					}],
+				}
+			};
+		},
+		props: {
+			data: {
+				type: Array
+			},
+			st:{
+				type: String
+			}
+		},
+		methods: {
+			getTable() {
+				let that = this;
+				this.tableLoading = true;
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://192.168.10.4:9002/",
+					subUrl: "benchmarking/wplist",
+					data: {
+						wpId: that.stationId,
+						startTs: that.startDate,
+						endTs: that.endDate,
+						pageNum: that.pageIndex,
+						pageSize: that.pageSize,
+					},
+					success(res) {
+						var dataTab = [];
+						if (res.data) {
+							res.data.list.forEach(item => {
+								dataTab.push({ //表格
+									recodedata: that.formatTime(item.recodedata),
+									region: item.region,
+								})
+							})
+							that.tableData.data = dataTab;
+							that.tableData.total = res.data.total;
+						} else {
+							that.tableData.data = [];
+							that.tableData.total = 0;
+						}
+						that.tableLoading = false;
+					},
+				});
+			},
+			onChangePage(params) {
+				this.pageIndex = params.pageIndex;
+				this.pageSize = params.pageSize;
+				this.getTable();
+			},
+			startAjax() {
+				var that = this;
+				// that.time = [new Date((new Date() - 3600 * 1000 * 24 * 30)).formatDate("yyyy-MM-dd"), new Date().formatDate("yyyy-MM-dd")];
+				that.time = [new Date((new Date() - 3600 * 1000 * 24 * 360)).formatDate("yyyy-MM-dd"), new Date()
+					.formatDate("yyyy-MM-dd")
+				];
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://10.155.32.4:9001/",
+					subUrl: "benchmarking/wplist",
+					success(res) {
+						that.ChangZhan = res.data;
+						// that.station = res.data[0].name
+						that.station = res.data[1].name
+					},
+				});
+
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://192.168.1.18:9002/",
+					subUrl: "basic/widget/condition",
+					success(res) {
+						let keys = Object.keys(res.data[0]);
+						let bujian = [],
+							widget = [];
+						keys.forEach((ele, index) => {
+							bujian.push({
+								label: res.data[0].ele,
+								value: ele
+							})
+							widget.push(ele)
+						})
+
+						that.widget = widget;
+						that.BuJian = bujian;
+					},
+				});
+
+				that.API.requestData({
+					method: "GET",
+					baseURL: "http://192.168.1.18:9002/",
+					subUrl: "basic/station/all",
+					success(res) {
+						let fjxhArr = [];
+						let model = [],
+							fjxh = [];
+						res.data.forEach(ele => {
+							fjxhArr.push({
+								id: ele.id,
+								value: ele.model.split("/")
+							})
+							if (ele.id == "MHS_FDC") {
+								model = ele.model.split("/");
+								model.forEach(ele => {
+									fjxh.push({
+										label: ele,
+										value: ele
+									})
+								})
+							}
+						})
+						that.fjxhArr = fjxhArr;
+						that.model = model;
+						that.fjxh = fjxh;
+					},
+				});
+			},
+			query() {
+				if (this.queryType) {
+					this.list();
+				}
+			},
+			addEdit() {
+				this.isvisiableType = 1;
+				this.windturbinename = '';
+				this.tableModel = '';
+				this.tableTime = '';
+				this.tableSymptom = '';
+				this.tableManufacturer = '';
+				this.stationcn = '';
+
+				// this.tableCategory: data[i].category,
+				// this.tableRemark: data[i].remark,
+				// this.tableFaultcode: data[i].faultcode,
+				// this.tableId: data[i].id,
+				// this.tableSymptomcode:data[i].Symptomcode,
+				// this.tableStationen:data[i].stationen
+
+				this.isvisiable = true;
+			},
+			onClickOption(e, row) { // 操作按钮
+				let that = this;
+				if ("delete" == e.target.getAttribute("value")) {
+					that
+						.$confirm("确认删除此条样本数据?", "提示", {
+							confirmButtonText: "删除",
+							cancelButtonText: "取消"
+						})
+						.then((_) => {
+							console.log('ok')
+							// that.requestDelete(row);
+						})
+						.catch((_) => {});
+				}
+				if ("edit" == e.target.getAttribute("value")) {
+					that.isvisiableType = 2;
+					that.$nextTick(() => {
+						let tableTime = row.tableTime.split(" - ");
+						that.widget = row.widget;
+						that.BuJian.forEach(ele => {
+							if (ele.value == row.tableFaultcode) {
+								that.windturbinename = ele.label
+							}
+						})
+						that.tableModel = row.tableModel;
+						that.tableTime = [Date.parse(new Date(tableTime[0])), Date.parse(new Date(tableTime[1]))];
+						that.tableSymptom = row.tableSymptom;
+						that.tableManufacturer = row.tableManufacturer;
+						that.stationcn = row.stationcn;
+
+						that.tableCategory = row.tableCategory;
+						that.tableRemark = row.tableRemark;
+						that.tableFaultcode = row.tableFaultcode;
+						that.tableId = row.tableId;
+						that.tableSymptomcode = row.tableSymptomcode;
+						that.tableStationen = row.tableStationen;
+					});
+					that.isvisiable = true;
+				}
+				if ("config" == e.target.getAttribute("value")) { //传感点
+					that.time = [that.st - (3600 * 1000), that.st];
+					that.point =[row.point];
+					that.pointdes = [row.pointdes];
+					that.requestDetailData(that.point,that.pointdes,that.time,that.selectValue);
+					that.yssjDialog=true;
+				}
+			},
+			onClickDialogClose() { // 弹窗右上角关闭按钮
+				this.isvisiable = false;
+				this.isvisiableType = 1;
+			},
+			dialogSave() {
+				let that = this;
+				that.tableTime[0] = that.formatDate(that.tableTime[0].valueOf());
+				that.tableTime[1] = that.formatDate(that.tableTime[1].valueOf());
+				console.log(that.tableTime)
+				that.API.requestData({
+					method: "POST",
+					baseURL: "http://192.168.1.18:9002/",
+					headers: {
+						'Content-Type': 'application/json;charset=utf-8',
+					},
+					subUrl: "case/item/edit",
+					body: {
+						category: that.tableCategory,
+						endtime: that.tableTime[1],
+						faultcode: that.tableFaultcode,
+						faulttype: that.windturbinename,
+						id: that.tableId,
+						manufacturer: that.tableManufacturer,
+						model: that.tableModel,
+						remark: that.tableRemark,
+						starttime: that.tableTime[0],
+						stationen: that.tableStationen,
+						symptom: that.tableSymptom,
+						symptomcode: that.tableSymptomcode,
+						tag: that.widget == "正样本" ? 0 : 1,
+						windturbineid: that.stationcn
+					},
+					success(res) {
+						if (res.code == 200) {
+							that.BASE.showMsg({
+								type: "success",
+								msg: "保存成功",
+							});
+							that.onClickDialogClose();
+							that.list();
+						}
+					},
+				});
+			},
+			gzCgdClick(data) {
+				this.gzCgd = data;
+			},
+			formatDate(dates) {
+				var date = new Date(dates);
+				var YY = date.getFullYear() + '-';
+				var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+				var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
+				var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
+				var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
+				var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
+				return YY + MM + DD + " " + hh + mm + ss;
+			},
+			list(data) {
+				console.log(data)
+				var that = this;
+				that.tableData.data = [];
+				if (data.length) {
+					for (var i = 0; i < data.length; i++) {
+						let obj = {
+							index: i + 1,
+							windturbineid: data[i].windturbineid,
+							widget: data[i].widget,
+							point: data[i].point,
+							pointdes: data[i].pointdes,
+							model: data[i].model,
+							stationcn: data[i].stationcn,
+							
+						};
+						that.tableData.data.push(obj);
+					}
+				}
+				
+				
+				// let station = '',
+				// 	widget = ''
+				// if (typeof that.time[0].valueOf() != 'string') {
+				// 	that.time[0] = that.formatDate(that.time[0].valueOf())
+				// }
+				// if (typeof that.time[1].valueOf() != 'string') {
+				// 	that.time[1] = that.formatDate(that.time[1].valueOf())
+				// }
+				// if (typeof that.station.valueOf() == 'string') {
+				// 	that.ChangZhan.forEach(ele => {
+				// 		if (ele.name == that.station) {
+				// 			station = ele.id
+				// 		}
+				// 	})
+				// }
+				// if (typeof that.widget.valueOf() == 'string') {
+				// 	that.BuJian.forEach(ele => {
+				// 		if (ele.label == that.widget) {
+				// 			widget = ele.value
+				// 		}
+				// 	})
+				// }
+				// if (that.model.length == 0) {
+				// 	that.BASE.showMsg({
+				// 		type: "warning",
+				// 		msg: "请选择风机型号",
+				// 	});
+				// 	return
+				// }
+				// if (that.widget.length == 0) {
+				// 	that.BASE.showMsg({
+				// 		type: "warning",
+				// 		msg: "请选择部件",
+				// 	});
+				// 	return
+				// }
+				// that.API.requestData({
+				// 	showLoading: true,
+				// 	method: "GET",
+				// 	baseURL: "http://192.168.1.18:9002/",
+				// 	subUrl: "case/fault/all",
+				// 	data: {
+				// 		widget: widget ? widget : that.widget,
+				// 		station: station ? station : that.station,
+				// 		model: that.model,
+				// 		st: that.time[0].valueOf(),
+				// 		et: that.time[1].valueOf()
+				// 	},
+				// 	success(res) {
+				// 		if (res.code == 200) {
+				// 			console.log(res)
+				// 			that.tableData.data = [];
+				// 			if (res.data.length) {
+				// 				let data = res.data;
+				// 				for (var i = 0; i < data.length; i++) {
+				// 					let obj = {
+				// 						index: i + 1,
+				// 						widget: data[i].tag == 0 ? '正样本' : '负样本',
+				// 						windturbinename: data[i].faulttype,
+				// 						tableModel: data[i].model,
+				// 						tableTime: data[i].starttime + ' - ' + data[i].endtime,
+				// 						tableSymptom: data[i].symptom,
+				// 						tableManufacturer: data[i].manufacturer,
+				// 						stationcn: data[i].windturbineid,
+
+				// 						tableCategory: data[i].category,
+				// 						tableRemark: data[i].remark,
+				// 						tableFaultcode: data[i].faultcode,
+				// 						tableId: data[i].id,
+				// 						tableSymptomcode: data[i].symptomcode,
+				// 						tableStationen: data[i].stationen
+				// 					};
+				// 					that.tableData.data.push(obj);
+				// 				}
+				// 			}
+				// 		}
+				// 	},
+				// });
+			},
+			back() {
+				this.clearDb();
+				this.$emit('gzCgdClick', 1);
+			},
+			switchChange(interval,status) {
+			  if(status === 'interval') {
+			    this.chooseStatus = false
+			    this.selectValue = '60'
+			  }else if(status === 'original'){
+			    this.chooseStatus = true
+			  }
+			  // this.requestDetailData(
+			  //     this.wpvalue,
+			  //     this.startdate,
+			  //     this.enddate,
+			  //     interval,
+			  //     this.wtId,
+			  //     this.descName
+			  //   );
+			},
+			requestDetailData(point, pointdes, time,interval) {
+			    let that = this;
+				let Powertrend = [];
+				pointdes.forEach((ele,index)=>{
+					Powertrend.push({
+						title:ele,
+						smooth: true,
+						value: [],
+					})
+				})
+				point.forEach((ele,index)=>{
+					that.API.requestData({
+						method: "GET",
+						baseURL: "http://192.168.1.18:9002/",
+						subUrl: "point/item",
+						data:{
+							point:ele,
+							startTs:time[0],
+							endTs:time[1],
+							interval:interval
+						},
+						success(res) {
+							if(res.data){
+							  res.data.forEach((cEle) => {
+								Powertrend[index].value.push({
+								  text: new Date(cEle.ts).formatDate("hh:mm"),
+								  value: cEle.doubleValue,
+								});
+							  });
+							  if((point.length - 1) == index){
+								that.Powertrend = Powertrend;
+							  }
+							}
+						},
+					});
+				})
+				
+			},
+			queryYssj(){
+				this.requestDetailData(this.point,this.pointdes,[Date.parse(new Date(this.time[0])), Date.parse(new Date(this.time[1]))],this.selectValue);
+			},
+			dbfx() {
+			  var that = this;
+			  if (that.point.length <=5) {
+				  that.Powertrend = [];
+				  that.time = [that.st - (3600 * 1000), that.st];
+				  that.requestDetailData(that.point,that.pointdes,[Date.parse(new Date(that.time[0])), Date.parse(new Date(that.time[1]))],that.selectValue);
+			    that.yssjDialog = true;
+			    that.clearDb();
+			  }
+			},
+			clearDb() {
+			  //清空对标状态
+			  this.$refs.curRef.clearCheckBox();
+			  this.point = [];
+			  this.pointdes = [];
+			  this.checkLength = 0;
+			},
+		},
+		created() {
+			this.list(this.data)
+		},
+		watch: {
+			station(res) {
+				let fjxh = [];
+				this.fjxhArr.forEach(ele => {
+					if (ele.id == res) {
+						ele.value.forEach(ele2 => {
+							fjxh.push({
+								label: ele2,
+								value: ele2
+							})
+						})
+						this.model = ele.value;
+					}
+				})
+				this.fjxh = fjxh;
+				this.queryType = true;
+			},
+			widget() {
+				this.queryType = true;
+			},
+			model() {
+				this.queryType = true;
+			},
+			time() {
+				this.queryType = true;
+			},
+		},
+	};
+</script>
+
+<style lang="less" scoped>
+	.mb10 {
+		margin-bottom: 10px;
+	}
+
+	.el-select.w {
+		width: 100%;
+	}
+</style>

+ 317 - 0
src/views/sampleDatabase/fault/point.vue

@@ -0,0 +1,317 @@
+<template>
+	<el-row type="flex">
+		<div class="query mg-b-8">
+			<div class="query-items">
+				<div class="query-item">
+					<div class="lable">时间:</div>
+					<div class="search-input">
+						<el-date-picker v-model="time" type="datetimerange" range-separator="至" start-placeholder="开始日期"
+							end-placeholder="结束日期">
+						</el-date-picker>
+					</div>
+				</div>
+				<div class="query-item">
+					<div class="lable">等间隔:</div>
+					<div class="search-input">
+						<el-select v-if="!chooseStatus" @change="switchChange(selectValue)" class="inputs"
+							v-model="selectValue" placeholder="请选择">
+							<el-option v-for="item in timeoptions" :key="item.value" :label="item.label"
+								:value="item.value">
+							</el-option>
+						</el-select>
+					</div>
+				</div>
+				<div class="query-actions">
+					<!-- <button class="btn" @click="clearDb">重置对标选项</button> -->
+					<button class="btn" @click="dbfx">原数据对标</button>
+				</div>
+			</div>
+		</div>
+	</el-row>
+	<el-row :type="'flex'" class="content mg-b-8">
+		<ComTable :data="tableData" :height="'30vh'" v-loading="tableLoading" ref="curRef" element-loading-text="拼命加载中"
+			element-loading-background="rgba(0, 0, 0, 0.8)"></ComTable>
+	</el-row>
+	<el-row :type="'flex'" class="content" :style="{height:'44vh'}">
+		 <el-col :span="24">
+		 	<multiple-y-line-chart-normal height="45vh" :list="Powertrend" :yAxises="PowertrendYAxises"
+		 		:showLegend="true" />	 
+		 </el-col>
+	</el-row>
+</template>
+
+<script>
+	import ComTable from "@/components/coms/table/table.vue";
+	import MultipleYLineChartNormal from "../../NewPages/multiple-y-line-chart-normal.vue";
+	export default {
+		components: {
+			ComTable,
+			MultipleYLineChartNormal
+		},
+		data() {
+			const that = this;
+			return {
+				Powertrend: [{
+					title: "",
+					yAxisIndex: 0, // 使用单位
+					value: [],
+				}, ],
+				PowertrendYAxises: [{
+						name: "",
+						min: 0,
+						max: null,
+						unit: "",
+						position: "left",
+					},
+					{
+						name: "",
+						min: 0,
+						max: 25,
+						unit: "",
+						position: "right",
+					},
+				],
+				selectValue: "60",
+				timeoptions: [
+					{
+						value: "60",
+						label: "一分钟",
+					},
+					{
+						value: "300",
+						label: "五分钟",
+					},
+					{
+						value: "600",
+						label: "十分钟",
+					},
+					{
+						value: "1800",
+						label: "三十分钟",
+					},
+					{
+						value: "3600",
+						label: "一小时",
+					},
+					{
+						value: "86400",
+						label: "一天",
+					},
+				],
+				time: [that.st - (3600 * 1000*24), that.st + (1000*10*60)],
+				point: [],
+				pointdes: [],
+
+				pageSize: 20,
+				model: [],
+				station: '',
+				windturbinename: "",
+				isvisiable: false,
+				checkLength: 0, //对标分析只能选择5个
+				tableData: {
+					column: [
+						{
+							name: "",
+							field: "check",
+							is_light: false,
+							width: '50px',
+							template: function() {
+								return "<input class='check curCheckBox' type='CheckBox'/>";
+							},
+							click: function(event, data) {
+								let point = data.point,
+									pointdes = data.pointdes;
+								if (event.target.checked == false && that.checkLength <= 5) {
+									that.point.forEach((item, i) => {
+										if (item == point) {
+											that.point.splice(i, 1);
+											that.pointdes.splice(i, 1);
+										}
+									});
+									that.checkLength--;
+								} else if (event.target.checked && that.checkLength < 5) {
+									that.point.push(point);
+									that.pointdes.push(pointdes);
+									that.checkLength++;
+								} else if (that.checkLength == 5) {
+									event.target.checked = false;
+								}
+							},
+						},
+						{
+							name: "序号",
+							field: "index",
+							is_light: false,
+							width: '30px',
+						},
+						{
+							name: "测点名称",
+							field: "point",
+							is_light: false,
+							width: '400px',
+						},
+						{
+							name: "测点描述",
+							field: "pointdes",
+							is_light: false,
+							width: '350px',
+						},
+						{
+							name: "操作",
+							is_light: false,
+							width: '250px',
+							template: () => {
+								return (
+									"<el-button type='text' style='cursor: pointer;' value='config'>查看原数据</el-button>&nbsp"
+								);
+							},
+							click(e, row) {
+								that.onClickOption(e, row);
+							},
+						},
+					],
+					data: [],
+				}
+			};
+		},
+		props: {
+			data: {
+				type: Array
+			},
+			st: {
+				type: String
+			},
+		},
+		methods: {
+			onClickOption(e, row) { // 操作按钮
+				let that = this;
+				if ("config" == e.target.getAttribute("value")) { //原始数据
+					that.requestDetailData([row.point], [row.pointdes], [Date.parse(new Date(that.time[0])), Date.parse(
+						new Date(that.time[1]))], that.selectValue);
+					that.clearDb();
+				}
+			},
+			list(data) {
+				var that = this;
+				that.tableData.data = [];
+				if (data.length) {
+					for (var i = 0; i < data.length; i++) {
+						let obj = {
+							index: i + 1,
+							windturbineid: data[i].windturbineid,
+							widget: data[i].widget,
+							point: data[i].point,
+							pointdes: data[i].pointdes,
+							model: data[i].model,
+							stationcn: data[i].stationcn,
+						};
+						that.tableData.data.push(obj);
+					}
+					that.requestDetailData([data[0].point], [data[0].pointdes], [Date.parse(new Date(that.time[0])), Date.parse(
+						new Date(that.time[1]))], that.selectValue);
+				}
+			},
+			switchChange(interval, status) {
+				if (status === 'interval') {
+					this.chooseStatus = false
+					this.selectValue = '60'
+				} else if (status === 'original') {
+					this.chooseStatus = true
+				}
+			},
+			requestDetailData(point, pointdes, time, interval) {
+				let that = this;
+				let Powertrend = [];
+				let dataPoint = '';
+				pointdes.forEach((ele, index) => {
+					Powertrend.push({
+						title: ele,
+						smooth: true,
+						value: [],
+					})
+				})
+				point.forEach((ele, index) => {
+					dataPoint += ele + ','
+				})
+				dataPoint = dataPoint.slice(0, dataPoint.length - 1)
+				that.API.requestData({
+					showLoading: true,
+					method: "GET",
+					baseURL: "http://192.168.1.18:9002/",
+					subUrl: "point/item",
+					data: {
+						point: dataPoint,
+						startTs: time[0],
+						endTs: time[1],
+						interval: interval
+					},
+					success(res) {
+						if (res.data) {
+							res.data.forEach((ele, index) => {
+								ele.list.forEach(cEle => {
+									Powertrend[index].value.push({
+										text: new Date(cEle.ts).formatDate("hh:mm"),
+										value: cEle.doubleValue,
+									});
+								})
+							});
+							that.Powertrend = Powertrend;
+						}
+					},
+				});
+			},
+			dbfx() {
+				var that = this;
+				if (that.point.length <= 5 && that.point.length != 0) {
+					that.Powertrend = [];
+					that.requestDetailData(that.point, that.pointdes, [Date.parse(new Date(that.time[0])), Date.parse(
+						new Date(that.time[1]))], that.selectValue);
+				}else{
+					this.BASE.showMsg({
+						type: "warning",
+						msg: "请选择测点后再对标",
+					});
+					return
+				}
+			},
+			clearDb() { //清空对标状态
+				this.$refs.curRef.clearCheckBox();
+				this.point = [];
+				this.pointdes = [];
+				this.checkLength = 0;
+			},
+		},
+		created() {
+			this.list(this.data);
+		},
+		watch: {
+			selectValue() {
+				this.requestDetailData(this.point, this.pointdes, [Date.parse(new Date(this.time[0])), Date.parse(new Date(
+					this.time[1]))], this.selectValue);
+			},
+			time(e) {
+				let st = Date.parse(new Date(e[0])),
+					et = Date.parse(new Date(e[1]));
+				if((et - st) > (86400000 * 7)){//判断选择日期区间大于一周则重新选择
+					this.BASE.showMsg({
+						type: "warning",
+						msg: "请选择小于7天的日期区间",
+					});
+					return
+				}
+				this.requestDetailData(this.point, this.pointdes, [Date.parse(new Date(this.time[0])), Date.parse(new Date(
+					this.time[1]))], this.selectValue);
+			},
+		},
+	};
+</script>
+
+<style lang="less" scoped>
+	.mb10 {
+		margin-bottom: 10px;
+	}
+
+	.el-select.w {
+		width: 100%;
+	}
+</style>

+ 26 - 0
src/views/sampleDatabase/market/index.vue

@@ -0,0 +1,26 @@
+<template>
+  <el-scrollbar :height="height"> </el-scrollbar>
+</template>
+
+<script>
+export default {
+  components: {},
+  data() {
+    return {};
+  },
+  props: {
+    currTab: {
+      type: Number,
+    },
+    height: {
+      type: String,
+    },
+  },
+  methods: {},
+  created() {},
+  mounted() {},
+};
+</script>
+
+<style lang="less" scoped>
+</style>

+ 12 - 1
src/views/Others/otherComponent.vue

@@ -84,11 +84,22 @@
 					this.currTab = a.id;
 				}
 			},
+			treeItem(){
+				this.API.requestData({
+					method: "GET",
+					baseURL: "http://192.168.1.18:9002",
+					subUrl: "/basic/station/all",
+					success(res) {
+						console.log(res)
+					}
+				});
+			}
 		},
 		created() {
-
+			
 		},
 		mounted() {
+			this.treeItem();
 			// jq实现的tree默认第一个节点选中
 			$('.el-tree .el-tree-node__children').eq(0).find('.el-tree-node').eq(0).addClass('is-current');
 			$('.el-tree .el-tree-node__children .el-tree-node').click(function(){

+ 0 - 0
src/views/sampleDatabase/performance/index.vue


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