Browse Source

删除无用文件,地图增加南沙诸岛

baiyanting 1 year ago
parent
commit
6b2e069bb7
100 changed files with 8 additions and 43323 deletions
  1. BIN
      src/assets/mapz/nh.png
  2. 0 522
      src/views/About.vue
  3. 0 2928
      src/views/Demo.vue
  4. 8 0
      src/views/Home/components/map/svg-map-nx.vue
  5. 0 202
      src/views/Knowledge/Knowledge1.vue
  6. 0 129
      src/views/Knowledge/Knowledge2.vue
  7. 0 131
      src/views/Knowledge/Knowledge3.vue
  8. 0 158
      src/views/Knowledge/Knowledge4.vue
  9. 0 180
      src/views/Knowledge/Knowledge5.vue
  10. 0 155
      src/views/Knowledge/Knowledge6.vue
  11. 0 194
      src/views/Knowledge/Knowledge7.vue
  12. 0 82
      src/views/Knowledge/knowinfo.vue
  13. 0 122
      src/views/Knowledge/risk .vue
  14. 0 129
      src/views/Knowledge/safety.vue
  15. 0 1117
      src/views/MalfunctionWarning/MalfunctionWarning.vue
  16. 0 3390
      src/views/MalfunctionWarning/components/UniformCodes.json
  17. 0 146
      src/views/MalfunctionWarning/components/barChart.vue
  18. 0 133
      src/views/MalfunctionWarning/components/batchData.vue
  19. 0 41
      src/views/MalfunctionWarning/components/chartDetails.vue
  20. 0 535
      src/views/MalfunctionWarning/components/dataClassify.vue
  21. 0 126
      src/views/MalfunctionWarning/components/detectionRecord.vue
  22. 0 58
      src/views/MalfunctionWarning/components/exportZip.vue
  23. 0 107
      src/views/MalfunctionWarning/components/lineChart.vue
  24. 0 479
      src/views/MalfunctionWarning/components/records.vue
  25. 0 431
      src/views/MalfunctionWarning/components/superviseDataClassify.vue
  26. 0 305
      src/views/MalfunctionWarning/components/testReport.vue
  27. 0 355
      src/views/MalfunctionWarning/components/trainingResults.vue
  28. 0 441
      src/views/MalfunctionWarning/diagnose.vue
  29. BIN
      src/views/MalfunctionWarning/img/generator.png
  30. 0 577
      src/views/MalfunctionWarning/supervised.vue
  31. 0 661
      src/views/NewPages/Matrix-Detail.vue
  32. 0 690
      src/views/NewPages/alarm-center-1.vue
  33. 0 271
      src/views/NewPages/alarm-center-2.vue
  34. 0 162
      src/views/NewPages/alarm-center-gzfx.vue
  35. 0 181
      src/views/NewPages/alarm-center-yjfx.vue
  36. 0 268
      src/views/NewPages/alarm-center.vue
  37. 0 499
      src/views/NewPages/area-line-chart.vue
  38. 0 304
      src/views/NewPages/arrow-line-chart.vue
  39. 0 199
      src/views/NewPages/daily.vue
  40. 0 315
      src/views/NewPages/dialogs.vue
  41. 0 113
      src/views/NewPages/dj.vue
  42. 0 1763
      src/views/NewPages/dj1.vue
  43. 0 158
      src/views/NewPages/dj2.vue
  44. 0 695
      src/views/NewPages/expert-knowledge-base.vue
  45. 0 548
      src/views/NewPages/fdlyl.vue
  46. 0 438
      src/views/NewPages/forecast-system.vue
  47. 0 156
      src/views/NewPages/form.vue
  48. 0 685
      src/views/NewPages/history-search.vue
  49. 0 230
      src/views/NewPages/iframe4.vue
  50. 0 242
      src/views/NewPages/intelligent-alarm-center.vue
  51. 0 489
      src/views/NewPages/knowledge-base.vue
  52. 0 434
      src/views/NewPages/multiple-bar-line-chart.vue
  53. 0 436
      src/views/NewPages/multiple-bar-line-chart1.vue
  54. 0 519
      src/views/NewPages/multiple-y-line-chart-normal.vue
  55. 0 575
      src/views/NewPages/personnel.vue
  56. 0 1495
      src/views/NewPages/power-benchmarking.vue
  57. 0 353
      src/views/NewPages/power-forecast-1.vue
  58. 0 175
      src/views/NewPages/power-forecast-2.vue
  59. 0 196
      src/views/NewPages/station.vue
  60. 0 245
      src/views/NewPages/statisticAnalysis.vue
  61. 0 556
      src/views/NewPages/znzhfx.vue
  62. 0 1950
      src/views/NewPages/ztfx.vue
  63. 0 995
      src/views/Others/index.vue
  64. 0 225
      src/views/Others/table.vue
  65. 0 1478
      src/views/SandTable/SandTable.vue
  66. 0 311
      src/views/SandTable/SandTable_old.vue
  67. 0 613
      src/views/SandTable/SandTable_old1.vue
  68. 0 878
      src/views/SandTable/component/ThreeModel.vue
  69. 0 1344
      src/views/SandTable/component/ThreeModel1.vue
  70. 0 138
      src/views/SandTable/component/hls.vue
  71. 0 238
      src/views/SandTable/component/p-panel.vue
  72. 0 62
      src/views/SandTable/component/power-plan.vue
  73. 0 60
      src/views/SandTable/component/power-review.vue
  74. 0 309
      src/views/SandTable/component/rank-table.vue
  75. 0 151
      src/views/SandTable/component/st-back.vue
  76. 0 139
      src/views/SandTable/component/weather.vue
  77. 0 820
      src/views/device/device.vue
  78. 0 284
      src/views/device/faultmode.vue
  79. 0 225
      src/views/faultManual/index.vue
  80. 0 95
      src/views/faultManual/knowinfo.vue
  81. 0 38
      src/views/globalMonitor/index.vue
  82. 0 645
      src/views/historySearch/index.vue
  83. 0 134
      src/views/malfunctionDiagnose/gzfl.vue
  84. 0 345
      src/views/malfunctionDiagnose/index.vue
  85. 0 134
      src/views/malfunctionDiagnose/yjfl.vue
  86. 0 467
      src/views/malfunctionRecall/components/fault-diagnosis.vue
  87. 0 355
      src/views/malfunctionRecall/index.vue
  88. 0 230
      src/views/malfunctionStatistics/index.vue
  89. 0 133
      src/views/overhaulRule/index.vue
  90. 0 544
      src/views/planPower/index.vue
  91. 0 726
      src/views/realSearch/index.vue
  92. 0 335
      src/views/reportPandect/index.vue
  93. 0 285
      src/views/sampleDatabase/abilityAnalysis/index.vue
  94. 0 339
      src/views/sampleDatabase/analysis/index.vue
  95. 0 127
      src/views/sampleDatabase/analysis/pieCharts.vue
  96. 0 478
      src/views/sampleDatabase/fault/index.vue
  97. 0 317
      src/views/sampleDatabase/fault/point.vue
  98. 0 126
      src/views/sampleDatabase/knowledgeBase/index.vue
  99. 0 26
      src/views/sampleDatabase/market/index.vue
  100. 0 0
      src/views/sampleDatabase/otherComponent.vue

BIN
src/assets/mapz/nh.png


+ 0 - 522
src/views/About.vue

@@ -1,522 +0,0 @@
-<template>
-  <div class="about">
-    <template v-if="false">
-      <h1 @click="showDialog">This is an about page</h1>
-      <HealthReport
-        :show="show"
-        :params="{ wtId: 'QG01_11', recorddate: '2021-06-19' }"
-        @closed="
-          (res) => {
-            this.show = false;
-          }
-        "
-      />
-      <div class="fjBox1">
-        <!-- 风机 SVG 使用方法 -->
-        <FJ id="fj-1" speed="5s" color="red" width="43px" height="46px" />
-        <FJ :speed="0.1" color="#1890ff" width="200px" height="210px" />
-        <FJ id="fj-3" speed="2s" width="80px" height="82px" />
-        <FJ />
-        <FJ :speed="1" />
-        <clock style="display: inline-block" />
-      </div>
-      <el-table
-        :data="tableData"
-        :span-method="arraySpanMethod"
-        border
-        style="width: 100%"
-      >
-        <el-table-column prop="name" label="部件" />
-        <el-table-column
-          prop="amount1"
-          sortable
-          label="隐患类新"
-        ></el-table-column>
-        <el-table-column
-          prop="amount2"
-          sortable
-          label="频次1"
-        ></el-table-column>
-        <el-table-column
-          prop="amount2"
-          sortable
-          label="频次2"
-        ></el-table-column>
-        <el-table-column
-          prop="amount2"
-          sortable
-          label="频次3"
-        ></el-table-column>
-        <el-table-column
-          prop="amount2"
-          sortable
-          label="频次4"
-        ></el-table-column>
-      </el-table>
-      <!-- <list-bar-chart /> -->
-    </template>
-    <!-- <cesium /> -->
-    <div id="box" style="width: 1000px; height: 600px"></div>
-  </div>
-</template>
-
-<script>
-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";
-import cesium from "@com/other/cesium/index.vue";
-import * as echarts from "echarts";
-import util from "@/helper/util.js";
-import partten from "@/helper/partten.js";
-
-// 导入header.vue文件
-export default {
-  data() {
-    return {
-      show: true,
-      tableData: [],
-    };
-  },
-
-  components: {
-    // ListBarChart,
-    HealthReport,
-    FJ,
-    clock,
-    cesium,
-  },
-
-  created() {
-    let tableData = [];
-    let item = {
-      id: "12987122",
-      name: "王小虎",
-      amount1: "234",
-      amount2: "3.2",
-      amount3: 10,
-    };
-    for (let i = 0; i < 100; i++) {
-      tableData.push(item);
-    }
-    this.tableData = tableData;
-  },
-
-  mounted() {
-    const that = this;
-    that.API.requestData({
-      method: "POST",
-      baseURL: "http://192.168.1.18:9002/",
-      subUrl: "scatter/list",
-      data: {
-        station: "NSS_FDC",
-        wtId: "NG01_01",
-        time: "2022-02",
-      },
-      success(res) {
-        that.initChart(res);
-      },
-    });
-    return;
-    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: {
-    initChart(res) {
-      let myChart = echarts.init(document.getElementById("box"));
-
-      let sjgl = [];
-      let zygl = [];
-      let xAxisData = [];
-
-      res.data.lineactual.forEach((ele, index) => {
-        sjgl.push(ele[1]);
-        xAxisData.push(index);
-      });
-
-      res.data.lineoptimal.forEach((ele) => {
-        zygl.push(ele[1]);
-      });
-
-      const series = [
-        {
-          name: "风速功率",
-          type: "effectScatter",
-          showEffectOn: "emphasis",
-          symbolSize: 5,
-          data: res.data.scatter || [
-            [174.0, 65.6],
-            [175.3, 71.8],
-            [193.5, 80.7],
-            [186.5, 72.6],
-            [187.2, 78.8],
-            [181.5, 74.8],
-            [184.0, 86.4],
-            [184.5, 78.4],
-            [175.0, 62.0],
-            [184.0, 81.6],
-            [180.0, 76.6],
-            [177.8, 83.6],
-            [192.0, 90.0],
-            [176.0, 74.6],
-            [174.0, 71.0],
-            [184.0, 79.6],
-            [192.7, 93.8],
-            [171.5, 70.0],
-            [173.0, 72.4],
-            [176.0, 85.9],
-            [176.0, 78.8],
-            [180.5, 77.8],
-          ],
-          xAxisIndex: 1,
-        },
-        {
-          name: "实际功率",
-          type: "line",
-          smooth: true, //这个是把线变成曲线
-          data: sjgl || [
-            10, 20, 30, 40, 30, 20, 50, 80, 50, 80, 50, 80, 60, 40, 20, 40, 60,
-            80, 60, 40, 20,
-          ],
-          itemStyle: {
-            normal: {
-              color: "#05bb4c",
-              lineStyle: {
-                color: "#05bb4c",
-              },
-            },
-          },
-          xAxisIndex: 0,
-        },
-        {
-          name: "最优功率",
-          type: "line",
-          smooth: true, //这个是把线变成曲线
-          data: zygl || [
-            0, 10, 20, 30, 40, 50, 60, 70, 80, 80, 80, 80, 90, 90, 90, 95, 95,
-            100, 100, 100, 100,
-          ],
-          itemStyle: {
-            normal: {
-              color: "#f8de5b",
-              lineStyle: {
-                color: "#f8de5b",
-              },
-            },
-          },
-          xAxisIndex: 0,
-        },
-      ];
-      //指定图表的配置项和数据
-      var option = {
-        //标题
-        title: {
-          text: "折线散点图",
-          textStyle: {
-            fontSize: util.vh(16),
-            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
-          },
-        },
-        backgroundColor:
-          this.$store.state.themeName === "dark"
-            ? "rgba(0,0,0,0.4)"
-            : "rgba(255,255,255,0.5)",
-        //工具箱
-        toolbox: {
-          show: true,
-          x: "right",
-          position: [10, 10],
-          backgroundColor:
-            this.$store.state.themeName === "dark"
-              ? "rgba(0,0,0,0.4)"
-              : "rgba(255,255,255,0.5)",
-          borderColor:
-            this.$store.state.themeName === "dark"
-              ? partten.getColor("gray")
-              : "#000",
-          textStyle: {
-            fontSize: util.vh(16),
-            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
-          },
-          iconStyle: {
-            borderColor:
-              this.$store.state.themeName === "dark" ? "#fff" : "#000",
-          },
-          emphasis: {
-            iconStyle: {
-              borderColor:
-                this.$store.state.themeName === "dark" ? "#fff" : "#000",
-            },
-          },
-          // feature: {
-          //   dataZoom: {
-          //     yAxisIndex: "none",
-          //   },
-          //   dataView: { readOnly: false },
-          //   magicType: { type: ["line", "bar"] },
-          //   restore: {},
-          //   saveAsImage: {},
-          // },
-        },
-        tooltip: {
-          trigger: "item",
-          axisPointer: {
-            type: "cross",
-          },
-          backgroundColor:
-            this.$store.state.themeName === "dark"
-              ? "rgba(0,0,0,0.4)"
-              : "rgba(255,255,255,0.5)",
-          borderColor:
-            this.$store.state.themeName === "dark"
-              ? partten.getColor("gray")
-              : "#000",
-          textStyle: {
-            fontSize: util.vh(16),
-            color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
-          },
-          formatter(params) {
-            return params.name
-              ? `${params.seriesName}<br />风速:${params.name}米/s<br />功率:${params.value}KW`
-              : `${params.seriesName}<br />风速:${params.data[0]}米/s<br />功率:${params.data[1]}KW`;
-          },
-        },
-        brush: {
-          xAxisIndex: "all",
-          yAxisIndex: "all",
-          transformable: true,
-          throttleType: "debounce",
-          throttleDelay: 600,
-          removeOnClick: false,
-          brushType: "polygon",
-          brushMode: "multiple",
-          brushStyle: {
-            borderWidth: 1,
-            color: "rgba(255,36,36,0.2)",
-            borderColor: "#ff2424",
-          },
-          // outOfBrush: {
-          //   colorAlpha: 0.5,
-          // },
-        },
-        dataZoom: [
-          {
-            type: "inside", //图表下方的伸缩条
-            show: true, //是否显示
-            realtime: true, //拖动时,是否实时更新系列的视图
-            start: 0, //伸缩条开始位置(1-100),可以随时更改
-            end: 100, //伸缩条结束位置(1-100),可以随时更改
-          },
-          {
-            type: "slider", //图表下方的伸缩条
-            show: true, //是否显示
-            realtime: true, //拖动时,是否实时更新系列的视图
-            start: 0, //伸缩条开始位置(1-100),可以随时更改
-            end: 100, //伸缩条结束位置(1-100),可以随时更改
-          },
-        ],
-        textStyle: {
-          fontSize: util.vh(16),
-          color: this.$store.state.themeName === "dark" ? "#fff" : "#000",
-        },
-        //图例-每一条数据的名字叫销量
-        legend: {
-          show: true,
-          data: ["风速功率", "实际功率", "最优功率"],
-          right: "120",
-          top:"5",
-          icon: "circle",
-          itemWidth: 6,
-          inactiveColor: this.$store.state.themeName === "dark" ? partten.getColor("gray") : "#000",
-          textStyle: {
-            color: this.$store.state.themeName === "dark" ? partten.getColor("grayl") : "#000",
-            fontSize: 12,
-          },
-        },
-        grid: {
-          top: 32,
-          left: 40,
-          right: 40,
-          bottom: 24,
-        },
-        //x轴
-        xAxis: [
-          {
-            type: "category",
-            boundaryGap: false,
-            data: xAxisData || [
-              "0",
-              "1",
-              "2",
-              "3",
-              "4",
-              "5",
-              "6",
-              "7",
-              "8",
-              "9",
-              "10",
-              "11",
-              "12",
-              "13",
-              "14",
-              "15",
-              "16",
-              "17",
-              "18",
-              "19",
-              "20",
-              "21",
-              "22",
-              "23",
-              "24",
-              "25",
-            ],
-            min: 0,
-            axisLabel: {
-              formatter: "{value}",
-              fontSize: util.vh(14),
-            },
-            textStyle: {
-              color:
-                this.$store.state.themeName === "dark"
-                  ? partten.getColor("gray")
-                  : "#000",
-            },
-          },
-          {
-            // name: this.xTitle,
-            show: false,
-            type: "value",
-            boundaryGap: false,
-            min: xAxisData[0],
-            max: xAxisData[xAxisData.length - 1],
-            scale: true,
-            axisLabel: {
-              formatter: "{value}",
-            },
-            splitLine: {
-              show: false,
-            },
-          },
-        ],
-        //y轴没有显式设置,根据值自动生成y轴
-        yAxis: {
-          splitLine: { show: false },
-        },
-        //数据-data是最终要显示的数据
-        series,
-      };
-
-      myChart.on("brushSelected", (params) => {
-        const selected = params.batch[0]?.selected;
-        let selectRes = [];
-        selected?.forEach((pEle) => {
-          if (pEle.dataIndex.length) {
-            let item = {
-              name: pEle.seriesName,
-              data: [],
-            };
-            pEle.dataIndex.forEach((cEle) => {
-              item.data.push(
-                Array.isArray(series[pEle.seriesIndex].data[cEle])
-                  ? series[pEle.seriesIndex].data[cEle][
-                      series[pEle.seriesIndex].data[cEle].length - 1
-                    ]
-                  : series[pEle.seriesIndex].data[cEle]
-              );
-            });
-            selectRes.push(item);
-          }
-        });
-        let altMsg = "选中了";
-        if (selectRes.length) {
-          selectRes.forEach((ele) => {
-            altMsg +=
-              ele.data.length +
-              "条" +
-              ele.name +
-              ":[" +
-              ele.data.toString() +
-              "].";
-          });
-          this.BASE.showMsg({
-            type: "success",
-            msg: altMsg,
-          });
-        }
-      });
-
-      //使用刚刚指定的配置项和数据项显示图表
-      myChart.setOption(option);
-
-      myChart.dispatchAction({
-        type: "takeGlobalCursor",
-        // 如果想变为“可刷选状态”,必须设置。不设置则会关闭“可刷选状态”。
-        key: "brush",
-        brushOption: {
-          // 参见 brush 组件的 brushType。如果设置为 false 则关闭“可刷选状态”。
-          brushType: "polygon",
-          // 参见 brush 组件的 brushMode。如果不设置,则取 brush 组件的 brushMode 设置。
-          brushMode: "multiple",
-        },
-      });
-    },
-    showDialog() {
-      this.show = true;
-    },
-
-    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
-      if (!rowIndex && !columnIndex) {
-        return [1, 3];
-      } else if (rowIndex === 5 && !columnIndex) {
-        return [10, 1];
-      }
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.fjBox {
-  display: flex;
-  justify-content: flex-start;
-  align-items: center;
-  flex-wrap: wrap;
-}
-</style>

File diff suppressed because it is too large
+ 0 - 2928
src/views/Demo.vue


+ 8 - 0
src/views/Home/components/map/svg-map-nx.vue

@@ -172,6 +172,14 @@
           xlink:href="@/assets/mapz/dt_b.png"
           transform="matrix(1 0 0 1 -70 50.6679)"
         />
+        <image
+          style="overflow: visible"
+          width="150"
+          id="map-main"
+           x="620" y="275"
+          xlink:href="@/assets/mapz/nh.png"
+          transform="matrix(1 0 0 1 -70 50.6679)"
+        />
 
         <g>
           <!-- 河北 -->

+ 0 - 202
src/views/Knowledge/Knowledge1.vue

@@ -1,202 +0,0 @@
-<template>
-  <div class="knowledge-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="level"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in faultLevels"
-                :key="item"
-                :label="item"
-                :value="item"
-              >
-              </el-option>
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">停机类型:</div>
-          <div class="search-input">
-            <el-select
-              v-model="type"
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in downTypes"
-                :key="item"
-                :label="item"
-                :value="item"
-              >
-              </el-option>
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">查询内容:</div>
-          <div class="search-input">
-            <el-input v-model="content" placeholder="请输入查询内容"></el-input>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="onClickSearch">搜索</button>
-      </div>
-    </div>
-    <div class="table-box">
-      <ComTable :data="tableData" height="85vh"></ComTable>
-    </div>
-    <div class="dialog-box">
-      <el-dialog
-        title="详细信息"
-        v-model="dialogVisible"
-        custom-class="modal"
-        :close-on-click-modal="false"
-      >
-        <know-info :data="infoData"></know-info>
-      </el-dialog>
-    </div>
-  </div>
-</template>
-
-<script>
-import ComTable from "@com/coms/table/table.vue";
-import KnowInfo from "./knowinfo.vue";
-import api from "@api/maintenance/expertKnowledge/index.js";
-export default {
-  components: { ComTable, KnowInfo },
-  data() {
-    const that = this;
-    return {
-      faultLevels: ["1级", "2级", "3级", "4级", "5级"], // 故障等级
-      downTypes: ["正常停机", "快速停机", "紧急停机"], // 停机类型
-      level: "",
-      type: "",
-      content: "",
-      tableData: {
-        column: [
-          {
-            name: "故障编码",
-            field: "code",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障名称",
-            field: "name",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障类别",
-            field: "category",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障级别",
-            field: "faultlevel",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "停机类型",
-            field: "halttype",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "设备类型",
-            field: "devicemodel",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障标识",
-            field: "faultid",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "操作",
-            field: "",
-            is_num: false,
-            is_light: false,
-            template() {
-              return "<el-button type='text' style='cursor: pointer;'>详细信息</el-button>";
-            },
-            click(e, row) {
-              that.getInformation5(row);
-            },
-          },
-        ],
-        data: [],
-      },
-      infoData: "",
-      dialogVisible: false,
-    };
-  },
-  created() {
-    this.level = this.faultLevels[0];
-    this.type = this.downTypes[0];
-    this.requestInfoList();
-  },
-  methods: {
-    // 搜索按钮
-    onClickSearch() {
-      this.requestInfoList();
-    },
-    // 查看详细信息
-    getInformation5(item) {
-      console.log(item);
-      this.dialogVisible = true;
-      this.infoData = item;
-    },
-    // 获取故障知识列表
-    requestInfoList() {
-      api.faultKnowledge({
-        gzjb: this.level.substring(0, 1),
-          tjlx: this.type,
-          cxnr: this.content,
-          pageNum: 1,
-          pageSize: 1000,
-      }).then(res =>{
-        if (res.code == 200) {
-            this.tableData.data = res.data;
-          }
-      })
-    },
-  },
-};
-</script>
-
-<style lang="less" scope>
-@titleGray: #9ca5a8;
-@rowGray: #606769;
-@darkBack: #536268;
-.knowledge-1 {
-  .el-select {
-    width: 200px;
-  }
-  .el-input {
-    width: 200px;
-  }
-  .dialog-box {
-    height: 100%;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-  }
-  .el-dialog {
-    min-width: 500px;
-    min-height: 500px;
-  }
-}
-</style>

+ 0 - 129
src/views/Knowledge/Knowledge2.vue

@@ -1,129 +0,0 @@
-<template>
-  <div class="knowledge-2">
-    <div class="query mg-b-8">
-      <div class="query-items">
-        <div class="query-item">
-          <div class="lable">查询内容:</div>
-          <div class="search-input">
-            <el-input v-model="content" placeholder="请输入查询内容"></el-input>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="onClickSearch">搜索</button>
-      </div>
-    </div>
-    <div>
-      <ComTable :data="tableData" height="85vh"></ComTable>
-    </div>
-  </div>
-</template>
-
-<script>
-import ComTable from "@com/coms/table/table.vue";
-import api from "@api/maintenance/expertKnowledge/index.js";
-
-export default {
-  components: { ComTable },
-  data() {
-    return {
-      content: "",
-      tableData: {
-        column: [
-          {
-            name: "序号",
-            field: "id",
-            is_num: true,
-            is_light: false,
-          },
-          {
-            name: "按错内容",
-            field: "safecontent",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障按错内容描述",
-            field: "describe",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "负责人",
-            field: "principal",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "添加时间",
-            field: "addtime",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "类型",
-            field: "type",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "其他",
-            field: "other",
-            is_num: false,
-            is_light: false,
-          },
-        ],
-        data: [],
-      },
-    };
-  },
-  created() {
-    this.requestSafeList();
-  },
-  methods: {
-    // 搜索按钮
-    onClickSearch() {
-      this.requestSafeList();
-    },
-    // 获取按错内容
-    requestSafeList() {
-      api.safeMeasureKnowledge({
-        name: this.content,
-        pageNum: 1,
-        pageSize: 1000,
-      }).then(res =>{
-        if (res.code == 200) {
-            this.tableData.data = [];
-            let data = res.data;
-            for (var i = 0; i < data.length; i++) {
-              let obj = {
-                id: i + 1,
-                safecontent: data[i].safecontent,
-                describe: data[i].describe,
-                principal: data[i].principal,
-                addtime: new Date(data[i].addtime).formatDate("yyyy-MM-dd"),
-                type: data[i].type,
-                other: data[i].other,
-              };
-              this.tableData.data.push(obj);
-            }
-          }
-      })
-    },
-  },
-};
-</script>
-
-<style lang="less" scope>
-@titleGray: #9ca5a8;
-@rowGray: #606769;
-@darkBack: #536268;
-.knowledge-2 {
-  .el-select {
-    width: 200px;
-  }
-  .el-input {
-    width: 200px;
-  }
-}
-</style>

+ 0 - 131
src/views/Knowledge/Knowledge3.vue

@@ -1,131 +0,0 @@
-<template>
-  <div class="knowledge-3">
-    <div class="query mg-b-8">
-      <div class="query-items">
-        <div class="query-item">
-          <div class="lable">查询内容:</div>
-          <div class="search-input">
-            <el-input v-model="content" placeholder="请输入查询内容"></el-input>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="onClickSearch">搜索</button>
-      </div>
-    </div>
-    <div>
-      <ComTable :data="tableData" height="85vh"></ComTable>
-    </div>
-  </div>
-</template>
-
-<script>
-import ComTable from "@com/coms/table/table.vue";
-import api from "@api/maintenance/expertKnowledge/index.js";
-
-export default {
-  components: { ComTable },
-  data() {
-    return {
-      content: "",
-      tableData: {
-        column: [
-          {
-            name: "序号",
-            field: "id",
-            is_num: true,
-            is_light: false,
-          },
-          {
-            name: "按错内容",
-            field: "safecontent",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障按错内容描述",
-            field: "describe",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "负责人",
-            field: "principal",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "添加时间",
-            field: "addtime",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "类型",
-            field: "type",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "其他",
-            field: "other",
-            is_num: false,
-            is_light: false,
-          },
-        ],
-        data: [],
-      },
-    };
-  },
-  created() {
-    this.requestSafeList();
-  },
-  methods: {
-    // 搜索按钮
-    onClickSearch() {
-      this.requestSafeList();
-    },
-    // 获取按错内容
-    requestSafeList() {
-      api
-        .safeMeasureKnowledge({
-          name: this.content,
-          pageNum: 1,
-          pageSize: 1000,
-        })
-        .then((res) => {
-          if (res.code == 200) {
-            this.tableData.data = [];
-            let data = res.data;
-            for (var i = 0; i < data.length; i++) {
-              let obj = {
-                id: i + 1,
-                safecontent: data[i].safecontent,
-                describe: data[i].describe,
-                principal: data[i].principal,
-                addtime: new Date(data[i].addtime).formatDate("yyyy-MM-dd"),
-                type: data[i].type,
-                other: data[i].other,
-              };
-              this.tableData.data.push(obj);
-            }
-          }
-        });
-    },
-  },
-};
-</script>
-
-<style lang="less" scope>
-@titleGray: #9ca5a8;
-@rowGray: #606769;
-@darkBack: #536268;
-.knowledge-3 {
-  .el-select {
-    width: 200px;
-  }
-  .el-input {
-    width: 200px;
-  }
-}
-</style>

+ 0 - 158
src/views/Knowledge/Knowledge4.vue

@@ -1,158 +0,0 @@
-<template>
-  <div class="knowledge-4">
-    <div class="query mg-b-8">
-      <div class="query-items">
-        <div class="query-item">
-          <div class="lable">查询内容:</div>
-          <div class="search-input">
-            <el-input v-model="content" placeholder="请输入查询内容"></el-input>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="onClickSearch">搜索</button>
-      </div>
-    </div>
-    <div class="K-table">
-      <!-- 表格 -->
-      <el-table
-        stripe
-        :header-cell-style="{
-          height: '40px',
-          background: 'rgba(83, 98, 104, 0.2)',
-          color: '#b2bdc0',
-          'border-bottom': '0px solid red',
-        }"
-        :cell-style="{
-          height: '40px',
-          'border-bottom': 'solid 0px #242424',
-        }"
-        :data="tableData"
-        max-height="90vh"
-        style="width: 100%; margin-bottom: 10px; overflow-y: auto"
-      >
-        <el-table-column
-          align="center"
-          prop="station"
-          label="所属类型"
-          width="180"
-        >
-        </el-table-column>
-        <el-table-column
-          align="center"
-          prop="location"
-          label="位置"
-          width="200"
-        >
-        </el-table-column>
-        <el-table-column
-          align="center"
-          prop="content"
-          label="工作内容"
-          width="330"
-        >
-        </el-table-column>
-        <el-table-column align="center" prop="describe" label="描述">
-        </el-table-column>
-        <el-table-column
-          align="center"
-          prop="addtime"
-          label="添加时间"
-          width="180"
-        >
-        </el-table-column>
-        <el-table-column align="center" prop="state" label="状态" width="180">
-        </el-table-column>
-        <el-table-column
-          align="center"
-          prop="operation"
-          label="操作"
-          width="280"
-        >
-          <template #default="scope">
-            <button @click="handleClickAC(scope.row)" class="btn">
-              安措内容分类
-            </button>
-            <button class="btn" @click="handleClickWX(scope.row)">
-              危险地点内容
-            </button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-  </div>
-</template>
-
-<script>
-import api from "@api/maintenance/expertKnowledge/index.js";
-
-export default {
-  data() {
-    return {
-      content: "",
-      tableData: [],
-    };
-  },
-  created() {
-    this.requestSafeList();
-  },
-  methods: {
-    handleClickAC(row) {
-      this.$router.push({
-        path: "/others/knowledge/knowledge4/AC",
-        query: {
-          rsnum: row.rsnum,
-        },
-      });
-    },
-    handleClickWX(row) {
-      this.$router.push({
-        path: "/others/knowledge/knowledge4/WX",
-        query: {
-          rsnum: row.rsnum,
-        },
-      });
-    },
-    // 搜索按钮
-    onClickSearch() {
-      this.requestSafeList();
-    },
-    requestSafeList() {
-      api
-        .workGuideKnowledge({
-          name: this.content,
-          pageNum: 1,
-          pageSize: 1000,
-        })
-        .then((res) => {
-          if (res.code == 200) {
-            this.tableData = [];
-            res.data.forEach((item) => {
-              item.addtime = new Date(item.addtime).formatDate(
-                "yyyy-MM-dd hh:mm:ss"
-              );
-              this.tableData.push(item);
-            });
-          }
-        });
-    },
-  },
-};
-</script>
-
-<style lang="less" scope>
-@titleGray: #9ca5a8;
-@rowGray: #606769;
-@darkBack: #536268;
-.knowledge-4 {
-  .el-select {
-    width: 200px;
-  }
-  .el-input {
-    width: 200px;
-  }
-  .K-table {
-    margin: 20px 20px 0 20px;
-  }
-}
-</style>

+ 0 - 180
src/views/Knowledge/Knowledge5.vue

@@ -1,180 +0,0 @@
-<template>
-  <div class="knowledge-5">
-    <div class="query mg-b-8">
-      <div class="query-items">
-        <div class="query-item">
-          <div class="lable">查询内容:</div>
-          <div class="search-input">
-            <el-input v-model="content" placeholder="请输入查询内容"></el-input>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="onClickSearch">搜索</button>
-      </div>
-    </div>
-    <div>
-      <ComTable :data="tableData" height="85vh"></ComTable>
-    </div>
-  </div>
-</template>
-
-<script>
-import ComTable from "@com/coms/table/table.vue";
-import api from "@api/maintenance/expertKnowledge/index.js";
-
-export default {
-  components: { ComTable },
-  data() {
-    return {
-      content: "",
-      tableData: {
-        column: [
-          {
-            name: "设备类型",
-            field: "modelid",
-            is_num: true,
-            is_light: false,
-          },
-          {
-            name: "特征名称",
-            field: "name",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "特征描述",
-            field: "description",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "设备结构",
-            field: "structureid",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "设备结构组成",
-            field: "componentid",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "测点统一编码",
-            field: "uniformcode",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "最小值",
-            field: "minvalue",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "最大值",
-            field: "maxvalue",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "正常范围下限",
-            field: "normalmin",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "正常范围上限",
-            field: "normalmax",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "预警值",
-            field: "prealertvalue",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "报警值",
-            field: "alertvalue",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "是否启用",
-            field: "enable",
-            is_num: false,
-            is_light: false,
-          },
-        ],
-        data: [],
-      },
-    };
-  },
-  created() {
-    this.requestSafeList();
-  },
-  methods: {
-    // 搜索按钮
-    onClickSearch() {
-      this.requestSafeList();
-    },
-    requestSafeList() {
-      api
-        .featureParameter({
-          name: this.content,
-          pageNum: 1,
-          pageSize: 1000,
-        })
-        .then((res) => {
-          if (res.code == 200) {
-            this.tableData.data = [];
-            res.data.forEach((item) => {
-              item.addtime = new Date(item.addtime).formatDate(
-                "yyyy-MM-dd hh:mm:ss"
-              );
-              this.tableData.data.push(item);
-            });
-          }
-        });
-
-      // let that = this;
-      // this.API.requestData({
-      //   method: "GET",
-      //   baseURL: "http://10.155.32.4:8034/",
-      //   subUrl: "/experienceBase/tzcs",
-      //   data: {
-      //     name: that.content,
-      //     pageNum: 1,
-      //     pageSize: 1000,
-      //   }, // 请求所携带参数,默认为空,可缺省
-      //   success(res) {
-      //     if (res.code == 200) {
-      //       that.tableData.data = [];
-      //       res.data.forEach((item) => {
-      //         item.enable = "启用";
-      //         that.tableData.data.push(item);
-      //       });
-      //     }
-      //   },
-      // });
-    },
-  },
-};
-</script>
-
-<style lang="less" scope>
-@titleGray: #9ca5a8;
-@rowGray: #606769;
-@darkBack: #536268;
-.knowledge-5 {
-  .el-select {
-    width: 200px;
-  }
-  .el-input {
-    width: 200px;
-  }
-}
-</style>

+ 0 - 155
src/views/Knowledge/Knowledge6.vue

@@ -1,155 +0,0 @@
-<template>
-  <div class="knowledge-6">
-    <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="model"
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in models"
-                :key="item"
-                :label="item"
-                :value="item"
-              >
-              </el-option>
-            </el-select>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="onClickSearch">搜索</button>
-      </div>
-    </div>
-    <div>
-      <ComTable :data="tableData" height="85vh"></ComTable>
-    </div>
-  </div>
-</template>
-
-<script>
-import ComTable from "@com/coms/table/table.vue";
-import api from "@api/maintenance/expertKnowledge/index.js";
-
-export default {
-  components: { ComTable },
-  data() {
-    return {
-      model: "",
-      models: [],
-      tableData: {
-        column: [
-          {
-            name: "预警编号",
-            field: "tid",
-            is_num: true,
-            is_light: false,
-          },
-          {
-            name: "名称",
-            field: "name",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "风机型号",
-            field: "model",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障排查方法",
-            field: "gzpc",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障处理",
-            field: "gzyy",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "工器具",
-            field: "gqj",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障处理时长",
-            field: "xqsc",
-            is_num: false,
-            is_light: false,
-          }
-        ],
-        data: [],
-      },
-    };
-  },
-  created() {
-    this.modelList()
-    
-  },
-  methods: {
-    modelList(){
-      api.modelList().then(res =>{
-        this.models = res.data
-        this.model = this.models[0];   
-        this.requestSafeList();
-      })
-    },
-    // 搜索按钮
-    onClickSearch() {
-      this.requestSafeList();
-    },
-    requestSafeList() {
-      api
-        .checkRepairProgramme({
-          model: this.model,
-          pageNum: 1,
-          pageSize: 1000,
-        })
-        .then((res) => {
-          if (res.code == 200) {
-            this.tableData.data = res.data
-          }
-        });
-
-      // let that = this;
-      // this.API.requestData({
-      //   method: "GET",
-      //   baseURL: "http://10.155.32.4:8034/",
-      //   subUrl: "/experienceBase/pcjxfa",
-      //   data: {
-      //     model: that.model,
-      //     pageNum: 1,
-      //     pageSize: 1000,
-      //   }, // 请求所携带参数,默认为空,可缺省
-      //   success(res) {
-      //     if (res.code == 200) {
-      //       that.tableData.data = res.data
-      //     }
-      //   },
-      // });
-    },
-  },
-};
-</script>
-
-<style lang="less" scope>
-@titleGray: #9ca5a8;
-@rowGray: #606769;
-@darkBack: #536268;
-.knowledge-6 {
-  .el-select {
-    width: 200px;
-  }
-  .el-input {
-    width: 200px;
-  }
-}
-</style>

+ 0 - 194
src/views/Knowledge/Knowledge7.vue

@@ -1,194 +0,0 @@
-<template>
-  <div class="knowledge-7">
-    <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="level"
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in levels"
-                :key="item"
-                :label="item"
-                :value="item"
-              >
-              </el-option>
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">报警类型:</div>
-          <div class="search-input">
-            <el-select
-              v-model="warning"
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in warnings"
-                :key="item"
-                :label="item"
-                :value="item"
-              >
-              </el-option>
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">查询内容:</div>
-          <div class="search-input">
-            <el-input v-model="content" placeholder="请输入查询内容"></el-input>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="onClickSearch">搜索</button>
-      </div>
-    </div>
-    <div>
-      <ComTable :data="tableData" height="85vh"></ComTable>
-    </div>
-  </div>
-</template>
-
-<script>
-import ComTable from "@com/coms/table/table.vue";
-import api from "@api/maintenance/expertKnowledge/index.js";
-
-export default {
-  components: { ComTable },
-  data() {
-    const that = this
-    return {
-      level: "",
-      levels: ["5级","4级","3级","2级","1级"],
-      warning: "",
-      warnings: ["1类","2类","3类","4类","5类"],
-      content: '',
-      tableData: {
-        column: [
-          {
-            name: "编码",
-            field: "id",
-            is_num: true,
-            is_light: false,
-          },
-          {
-            name: "名称",
-            field: "name",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "表达式",
-            field: "expression",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "级别",
-            field: "rank",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "报警类型",
-            field: "category",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "描述",
-            field: "description",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "范围",
-            field: "modelid",
-            is_num: false,
-            is_light: false,
-          },
-          // {
-          //   name: "操作",
-          //   field: "",
-          //   is_num: false,
-          //   is_light: false,
-          //   template() {
-          //     return "<el-button type='text' style='cursor: pointer;'>查看</el-button>";
-          //   },
-          //   click(e, row) {
-          //     that.getInformation(row);
-          //   },
-          // },
-        ],
-        data: [],
-      },
-    };
-  },
-  created() {
-    this.level = this.levels[0];
-    this.warning = this.warnings[0];
-    this.requestWarnList();
-  },
-  methods: {
-    // 搜索按钮
-    onClickSearch() {
-      this.requestWarnList();
-    },
-    // 查看详情
-    getInformation(item){
-
-    },
-    requestWarnList() {
-      api
-        .earlyKnowledge({
-          gzjb: this.level.substring(0,1),
-          bjlx: this.warning.substring(0,1),
-          cxnr: this.content,
-          pageNum: 1,
-          pageSize: 1000,
-        })
-        .then((res) => {
-          if (res.code == 200) {
-            this.tableData.data = res.data;
-          }
-        });
-
-      // let that = this;
-      // this.API.requestData({
-      //   method: "GET",
-      //   baseURL: "http://10.155.32.4:8034/",
-      //   subUrl: "/experienceBase/yjzs",
-      //   data: {
-      //     gzjb: that.level.substring(0,1),
-      //     bjlx: that.warning.substring(0,1),
-      //     cxnr: that.content,
-      //     pageNum: 1,
-      //     pageSize: 1000,
-      //   }, // 请求所携带参数,默认为空,可缺省
-      //   success(res) {
-      //     if (res.code == 200) {
-      //       that.tableData.data = res.data;
-      //     }
-      //   },
-      // });
-    },
-  },
-};
-</script>
-
-<style lang="less" scope>
-@titleGray: #9ca5a8;
-@rowGray: #606769;
-@darkBack: #536268;
-.knowledge-7 {
-  .query-item {
-    width: 250px;
-  }
-}
-</style>

+ 0 - 82
src/views/Knowledge/knowinfo.vue

@@ -1,82 +0,0 @@
-<template>
-  <div class="know-info">
-    <table class="table-card">
-      <tr>
-        <th>故障代码</th>
-        <td>{{ infoObj.code }}</td>
-        <th>故障标识</th>
-        <td>{{ infoObj.faultid }}</td>
-      </tr>
-      <tr>
-        <th>停机类型</th>
-        <td>{{ infoObj.halttype }}</td>
-        <th>故障名称</th>
-        <td>{{ infoObj.name }}</td>
-      </tr>
-      <tr>
-        <th>故障原因</th>
-        <td colspan="3">{{ infoObj.cause }}</td>
-      </tr>
-      <tr>
-        <th>处理方法</th>
-        <td colspan="3">{{ infoObj.treatmentmeasure }}</td>
-      </tr>
-    </table>
-  </div>
-</template>
-
-<script>
-export default {
-  name: "know-info",
-  props: {
-    data: Object,
-  },
-  data() {
-    return {
-      infoObj: "",
-    };
-  },
-
-  mounted() {
-    this.infoObj = this.data;
-    console.log('this.infoObj',this.infoObj);
-  },
-  created(){
-    
-  },
-
-  watch: {
-    data(value) {
-      this.infoObj = value;
-    },
-  },
-};
-</script>
-
-
-<style lang="less" scoped>
-.know-info {
-  .table-card {
-    border-collapse: collapse;
-    width: 100%;
-    color: @white;
-
-    tr {
-      font-size: 12px;
-      th {
-        width: 120px;
-        height: 60px;
-        border: 0.093vh solid @darkgray;
-        line-height: 27px;
-        padding: 0 4px;
-      }
-      td {
-        height: 60px;
-        border: 0.093vh solid @darkgray;
-        line-height: 27px;
-        padding: 0 4px;
-      }
-    }
-  }
-}
-</style>

+ 0 - 122
src/views/Knowledge/risk .vue

@@ -1,122 +0,0 @@
-<template>
-  <div class="risk">
-    <div class="top">
-      <span class="spa">内容:</span>
-      <el-input v-model="input" class="ipt"></el-input>
-      <button class="btn btn1" @click="search">查询</button>
-      <button class="btn btn2" @click="back">返回</button>
-    </div>
-    <div class="safety-table">
-      <span class="spa1">按错内容分类:</span>
-      <el-table
-        :data="tableData"
-        :header-cell-style="{
-          height: '40px',
-          background: 'rgba(83, 98, 104, 0.2)',
-          color: '#b2bdc0',
-          'border-bottom': '0px solid red',
-        }"
-        :cell-style="{
-          height: '40px',
-          'border-bottom': 'solid 0px #242424',
-        }"
-        style="overflow-y: auto"
-      >
-        <el-table-column type="index" width="100" label="序号" align="center">
-        </el-table-column>
-        <el-table-column prop="title" label="标题" align="center" width="300">
-        </el-table-column>
-        <el-table-column
-          prop="describe"
-          label="描述"
-          align="center"
-          width="500"
-        >
-        </el-table-column>
-        <el-table-column prop="addTime" label="添加时间" align="center">
-        </el-table-column>
-        <el-table-column prop="name" label="负责人" align="center" width="240">
-        </el-table-column>
-        <el-table-column prop="execute " label="内容" align="content">
-        </el-table-column>
-      </el-table>
-    </div>
-  </div>
-</template>
-
-<script>
-import api from "@api/economic/index.js";
-export default {
-  data() {
-    return {
-      tableData: [],
-      input: "",
-    };
-  },
-  created() {
-    this.getList("");
-  },
-  methods: {
-    getList: function (msg) {
-      api
-        .dangerContent({
-          pageNum: 1,
-          pageSize: 200,
-          content: msg,
-          rsnum: this.$route.query.rsnum,
-        })
-        .then((res) => {
-          this.tableData = res.data;
-        });
-    },
-    //查询目标
-    search() {
-      // console.log();
-      this.getList(this.input);
-    },
-    // 返回
-    back() {
-      this.$router.push({
-        path: "/others/knowledge/knowledge4",
-      });
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.risk {
-  .top {
-    position: relative;
-    margin-top: 30px;
-    .spa {
-      float: left;
-      display: inline-block;
-      margin-top: 10px;
-    }
-    .ipt {
-      float: left;
-      width: 400px;
-      margin-left: 30px;
-    }
-    .btn1,
-    .btn2 {
-      float: left;
-      margin-left: 10px;
-      margin-top: 3px;
-    }
-    .btn1 {
-      margin-left: 60px;
-    }
-  }
-  .safety-table {
-    width: 100%;
-    position: absolute;
-    top: 190px;
-    // margin:20px;
-  }
-  .spa1 {
-    font-size: 20px;
-  }
-}
-</style>

+ 0 - 129
src/views/Knowledge/safety.vue

@@ -1,129 +0,0 @@
-<template>
-  <div class="safety">
-    <div class="top">
-      <span class="spa">内容:</span>
-      <el-input v-model="input" class="ipt"></el-input>
-      <button class="btn btn1" @click="search">查询</button>
-      <button class="btn btn2" @click="back">返回</button>
-    </div>
-    <div class="safety-table">
-      <span class="spa1">危险点内容</span>
-      <el-table
-        :data="tableData"
-        :header-cell-style="{
-          height: '40px',
-          background: 'rgba(83, 98, 104, 0.2)',
-          color: '#b2bdc0',
-          'border-bottom': '0px solid red',
-        }"
-        :cell-style="{
-          height: '40px',
-          'border-bottom': 'solid 0px #242424',
-        }"
-        style="overflow-y: auto"
-      >
-        <el-table-column type="index" width="100" label="序号" align="center">
-        </el-table-column>
-        <el-table-column
-          prop="safecontent"
-          label="安措内容"
-          align="center"
-          width="340"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="describe"
-          label="描述"
-          align="center"
-          width="340"
-        >
-        </el-table-column>
-        <el-table-column prop="sign" label="标记" align="center">
-        </el-table-column>
-        <el-table-column prop="addTime" label="添加时间" align="center">
-        </el-table-column>
-        <el-table-column prop="condition" label="完成情况" align="center">
-        </el-table-column>
-        <el-table-column prop="execute " label="是否执行" align="center">
-        </el-table-column>
-      </el-table>
-    </div>
-  </div>
-</template>
-
-<script>
-import api from "@api/economic/index.js";
-export default {
-  data() {
-    return {
-      input: "",
-      tableData: [],
-    };
-  },
-  created() {
-    this.getList("");
-  },
-  methods: {
-    getList: function (msg) {
-      api
-        .safetyMeasure({
-          pageNum: 1,
-          pageSize: 200,
-          content: msg,
-          rsnum: this.$route.query.rsnum,
-        })
-        .then((res) => {
-          this.tableData = res.data;
-        });
-    },
-    //查询目标
-    search() {
-      // console.log();
-      this.getList(this.input);
-    },
-    // 返回
-    back() {
-      this.$router.push({
-        path: "/others/knowledge/knowledge4",
-      });
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.safety {
-  .top {
-    position: relative;
-    margin-top: 30px;
-    .spa {
-      float: left;
-      display: inline-block;
-      margin-top: 10px;
-    }
-    .ipt {
-      float: left;
-      width: 400px;
-      margin-left: 30px;
-    }
-    .btn1,
-    .btn2 {
-      float: left;
-      margin-left: 10px;
-      margin-top: 3px;
-    }
-    .btn1 {
-      margin-left: 60px;
-    }
-  }
-  .safety-table {
-    width: 100%;
-    position: absolute;
-    top: 190px;
-    // margin:20px;
-  }
-  .spa1 {
-    font-size: 20px;
-  }
-}
-</style>

File diff suppressed because it is too large
+ 0 - 1117
src/views/MalfunctionWarning/MalfunctionWarning.vue


File diff suppressed because it is too large
+ 0 - 3390
src/views/MalfunctionWarning/components/UniformCodes.json


+ 0 - 146
src/views/MalfunctionWarning/components/barChart.vue

@@ -1,146 +0,0 @@
-<template>
-  <div class="precisionEcharts" :style="style" :id="id"></div>
-</template>
-<script>
-import * as echarts from "echarts";
-export default {
-  props: {
-    barList: {
-      type: Array,
-    },
-    id: Object,
-    width: {
-      type: String,
-      default: "600px",
-    },
-    height: {
-      type: String,
-      default: "250px",
-    },
-    baseLine:  {
-      type: String,
-      default: "0.1",
-    },
-  },
-  data() {
-    return {};
-  },
-  computed: {
-    style() {
-      return `width: ${this.width}; height: ${this.height};`;
-    },
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-  updated() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-  methods: {
-    initChart() {
-      let ydata = [];
-      let values = [];
-      this.barList?.sort(this.Compare("value"));
-      this.barList?.forEach((item) => {
-        ydata.push(item.name);
-        values.push(item.value * 100);
-      });
-      let chartDom = document.getElementById(this.id);
-      let myChart = echarts.init(chartDom);
-      let option = {
-        // title: {
-        //     text: 'World Population'
-        // },
-        tooltip: {
-          trigger: "axis",
-          axisPointer: {
-            type: "shadow",
-          },
-        },
-        legend: {},
-        grid: {
-          left: "3%",
-          right: "5%",
-          bottom: "3%",
-          containLabel: true,
-        },
-        xAxis: {
-          name: "%",
-          type: "value",
-          boundaryGap: [0, 0.01],
-          splitLine: { show: false },
-        },
-        yAxis: {
-          name: "名称",
-          type: "category",
-          splitLine: { show: false },
-          data: ydata,
-        },
-        series: [
-          {
-            // name: '2011',
-            type: "bar",
-            data: values,
-            markLine: {
-              symbol: "none", //去掉警戒线最后面的箭头
-              label: {
-                position: "start", //将警示值放在哪个位置,三个值“start”,"middle","end"  开始  中点 结束
-              },
-              data: [
-                {
-                  silent: true, //鼠标悬停事件  true没有,false有
-                  lineStyle: {
-                    //警戒线的样式  ,虚实  颜色
-                    type: "solid",
-                    color: "#FA3934",
-                  },
-                  label: {
-                    normal: {
-                      show: true,
-                      position: "end",
-                      formatter: "基准线",
-                      textStyle: {
-                        color: "#ffffff", //标注线终点文字颜色
-                        fontSize: 14,
-                        fontWeight: 700,
-                        padding: [0, 0, 10, 0], //文字间距
-                      },
-                    },
-                  },
-                  xAxis: this.baseLine *100,
-                },
-              ],
-            },
-          },
-        ],
-      };
-      option && myChart.setOption(option);
-    },
-    Compare(property) {
-      return function (a, b) {
-        var value1 = a[property];
-        var value2 = b[property];
-        return value1 - value2;
-      };
-    },
-  },
-  watch: {
-    barList: {
-      handler(newValue, oldValue) {
-        this.initChart();
-      },
-      deep: true,
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-// .precisionEcharts {
-//   width: 600px;
-//   height: 250px;
-// }
-</style>

+ 0 - 133
src/views/MalfunctionWarning/components/batchData.vue

@@ -1,133 +0,0 @@
-<template>
-  <el-dialog
-    width="70%"
-    top="10vh"
-    custom-class="modal"
-    :close-on-click-modal="false"
-    title="批量处理"
-    v-model="dialogTableVisible"
-    @opened="opened()"
-    @closed="closed()"
-  >
-    <el-row :type="'flex'" class="contents">
-      <el-col :span="3" class="pd-l-8">
-        <div class="lables">
-          <div
-            v-for="(item, index) in moudleList"
-            :key="index"
-            :class="current ===Number(item.id) ? 'current_on' : 'current_of'"
-            @click="handleClick(Number(item.id))"
-          >
-           {{ item.faulttype }}
-          </div>
-        </div>
-      </el-col>
-      <el-col :span="21" class="pd-l-8">
-        <div class="right">
-          <el-transfer
-            class="transfers"
-            v-model="value"
-            :data="dataList"
-            :titles="['待标记', moudleList.filter(item => Number(item.id) ===  current)[0].faulttype]"
-            @change="handleChange"
-          ></el-transfer>
-        </div>
-      </el-col>
-    </el-row>
-  </el-dialog>
-</template>
-<script>
-export default {
-  props: {
-    allData: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-    moudleList: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-  },
-  data() {
-    return {
-      current: 1,
-      value: [1, 4],
-      dataList: [
-        {
-          key: 0,
-          label: "",
-        },
-      ],
-    };
-  },
-  methods: {
-    opened() {
-      this.dataList = [];
-      this.value = [];
-      this.handleData();
-    },
-    handleData() {
-      this.allData.forEach((item, index) => {
-        let val = {};
-        val.key = index;
-        val.label = item.objectId + "-" + item.faultTime + "-" + item.alertText;
-        this.dataList.push(val);
-        if (item.labels === this.moudleList.filter(item => Number(item.id) ===  this.current)[0].faultcode) {
-          this.value.push(index);
-        }
-      });
-    },
-    handleClick(id) {
-      this.dataList = [];
-      this.value = [];
-      this.current = id;
-      this.handleData();
-    },
-    handleChange(value, direction, movedKeys) {
-      this.value.forEach((item) => {
-        if (direction === "right") {
-          this.allData[item].labels = this.moudleList.filter(item => Number(item.id) ===  this.current)[0].faultcode;
-        }
-      });
-      if (direction === "left") {
-        movedKeys.forEach((item) => {
-          this.allData[item].labels = "";
-        });
-      }
-    },
-    closed(){
-      this.$emit('handleSave', this.allData);
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.contents {
-  height: 73vh;
-
-  .lables {
-    height: 73vh;
-    display: flex;
-    flex-direction: column;
-    font-size: 18px;
-    margin-left: 20px;
-    overflow-y: auto;
-    line-height: 50px;
-
-    .current_on {
-      color: #05bb4c;
-    }
-  }
-
-  .right {
-    width: 100%;
-    height: 100%;
-    border-left: 1px solid #999999;
-    padding-left: 27px;
-  }
-}
-</style>

+ 0 - 41
src/views/MalfunctionWarning/components/chartDetails.vue

@@ -1,41 +0,0 @@
-<template>
-  <el-dialog
-    class="bodys"
-    width="70%"
-    top="10vh"
-    title="影响因素权重图"
-    custom-class="modal"
-    :close-on-click-modal="false"
-  >
-    <div>
-      <BarChart id="barDetials" :baseLine="baseLine" width="90%" height="70vh" :barList="barList"></BarChart>
-    </div>
-  </el-dialog>
-</template>
-<script>
-import BarChart from "./barChart.vue";
-export default {
-  props: {
-    barList: {
-      type: Array,
-    },
-    baseLine:  {
-      type: String,
-      default: "0.1",
-    },
-  },
-  components: {
-    BarChart,
-  },
-  methods: {
-    
-  },
-};
-</script>
-<style lang="less" scoped>
-.bodys{
-    display: flex;
-    align-items: center;
-    justify-content: center;
-}
-</style>

+ 0 - 535
src/views/MalfunctionWarning/components/dataClassify.vue

@@ -1,535 +0,0 @@
-<template>
-  <el-dialog
-    width="70%"
-    top="10vh"
-    custom-class="modal"
-    :close-on-click-modal="false"
-  >
-    <template #title>
-      <div class="showTitles">
-        <div class="left">
-          <div class="titles">模型训练</div>
-          <button v-if="!trainingFlag" class="btn" @click="startTraining()">
-            开始训练
-          </button>
-          <button v-if="trainingFlag" disabled>训练中</button>
-        </div>
-
-        <div class="selects">
-          <div style="margin-right: 20px">
-            比例:
-            <el-select
-              v-model="percent"
-              @change="selectSearch()"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-              style="width: 120px; margin-left: 20px"
-            >
-              <el-option
-                v-for="item in percentList"
-                :key="item.value"
-                :value="item.value"
-                :label="item.label"
-              />
-            </el-select>
-          </div>
-          <div>
-            故障前时间范围:
-            <el-select
-              v-model="intervalValue"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-              style="width: 105px; margin-left: 20px"
-            >
-              <el-option
-                v-for="item in timeList"
-                :key="item.value"
-                :value="item.value"
-                :label="item.label"
-              />
-            </el-select>
-          </div>
-        </div>
-      </div>
-    </template>
-    <div>
-      <el-row :type="'flex'" class="content">
-        <el-col :span="12" class="pd-l-8">
-          <div class="titleBar">
-            <div class="titleName">训练级</div>
-            <div class="buttons">
-              <button class="btn" @click="exportALLTraining()">全部导出</button>
-              <button class="btn" @click="exportTraining(0)">导出</button>
-            </div>
-          </div>
-          <el-table
-            height="60vh"
-            ref="multipleTable"
-            empty-text="暂无数据"
-            :data="trainingList"
-            @selection-change="handleSelectionChange"
-            :header-cell-style="{
-              height: '40px',
-              background: 'rgba(83, 98, 104, 0.2)',
-              color: '#b2bdc0',
-              'border-bottom': '0px solid red',
-            }"
-            :cell-style="{
-              height: '40px',
-              'border-bottom': 'solid 0px #242424',
-            }"
-            stripe
-            style="width: 100%; margin-bottom: 10px"
-          >
-            <el-table-column type="selection" width="35"> </el-table-column>
-            <el-table-column
-              prop="faultTime"
-              label="FaultTime"
-              width="150"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="stationId"
-              label="StationId"
-              width="80"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="stationName"
-              label="StationName"
-              width="120"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="objectId"
-              label="ObjectId"
-              width="120"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="modelId"
-              label="ModelId"
-              width="120"
-              align="center"
-            ></el-table-column>
-          </el-table>
-        </el-col>
-        <el-col :span="12" class="pd-l-8">
-          <div class="titleBar">
-            <div class="titleName">测试级</div>
-            <div class="buttons">
-              <button class="btn" @click="exportALLTest()">全部导出</button>
-              <button class="btn" @click="exportTest()">导出</button>
-            </div>
-          </div>
-          <el-table
-            height="60vh"
-            ref="multipleTable"
-            empty-text="暂无数据"
-            @selection-change="handleTestChange"
-            :data="testList"
-            :header-cell-style="{
-              height: '40px',
-              background: 'rgba(83, 98, 104, 0.2)',
-              color: '#b2bdc0',
-              'border-bottom': '0px solid red',
-            }"
-            :cell-style="{
-              height: '40px',
-              'border-bottom': 'solid 0px #242424',
-            }"
-            stripe
-            style="width: 100%; margin-bottom: 10px"
-          >
-            <el-table-column type="selection" width="35"> </el-table-column>
-            <el-table-column
-              prop="faultTime"
-              label="FaultTime"
-              width="150"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="stationId"
-              label="StationId"
-              width="80"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="stationName"
-              label="StationName"
-              width="120"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="objectId"
-              label="ObjectId"
-              width="120"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="modelId"
-              label="ModelId"
-              width="120"
-              align="center"
-            ></el-table-column>
-          </el-table>
-        </el-col>
-      </el-row>
-    </div>
-    <ExportZip ref="export"></ExportZip>
-  </el-dialog>
-</template>
-<script>
-import ExportZip from "./exportZip.vue";
-import UniformCodes from "./UniformCodes.json";
-import { export_blob } from "@tools/excel/Export2Excel.js";
-import axios from "axios";
-import BASE from "@tools/basicTool.js";
-export default {
-  components: {
-    ExportZip,
-  },
-  data() {
-    return {
-      trainingList: [],
-      testList: [],
-      randoms: [],
-      trainingFlag: false,
-      percent: 7,
-      intervalValue: 1,
-      percentList: [
-        {
-          label: "10%",
-          value: 1,
-        },
-        {
-          label: "20%",
-          value: 2,
-        },
-        {
-          label: "30%",
-          value: 4,
-        },
-        {
-          label: "40%",
-          value: 4,
-        },
-        {
-          label: "50%",
-          value: 5,
-        },
-        {
-          label: "60%",
-          value: 6,
-        },
-        {
-          label: "70%",
-          value: 7,
-        },
-        {
-          label: "80%",
-          value: 8,
-        },
-        {
-          label: "90%",
-          value: 9,
-        },
-        {
-          label: "100%",
-          value: 10,
-        },
-      ],
-      timeList: [
-        { label: "1小时", value: 1 },
-        { label: "1.5小时", value: 1.5 },
-        { label: "2小时", value: 2 },
-        { label: "2.5小时", value: 2.5 },
-        { label: "3小时", value: 3 },
-        { label: "3.5小时", value: 3.5 },
-        { label: "4小时", value: 4 },
-        { label: "4.5小时", value: 4.5 },
-        { label: "5小时", value: 5 },
-        { label: "5.5小时", value: 5.5 },
-        { label: "6小时", value: 6 },
-        { label: "6.5小时", value: 6.5 },
-        { label: "7小时", value: 7 },
-        { label: "7.5小时", value: 7.5 },
-        { label: "8小时", value: 8 },
-        { label: "8.5小时", value: 8.5 },
-        { label: "9小时", value: 9 },
-        { label: "9.5小时", value: 9.5 },
-        { label: "10小时", value: 10 },
-        { label: "10.5小时", value: 10.5 },
-        { label: "11小时", value: 11 },
-        { label: "11.5小时", value: 11.5 },
-        { label: "12小时", value: 12 },
-      ],
-      exportTrainingLists: [],
-      exportTestList: [],
-      exportList: [],
-      resultData: [],
-      tHeader: [],
-    };
-  },
-  props: {
-    allData: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-    chooseAlgorithm: {
-      type: String,
-    },
-  },
-  updated() {
-    this.selectSearch();
-    this.$emit('handleInterval', this.intervalValue);
-  },
-  methods: {
-    selectSearch() {
-      (this.trainingList = []),
-        (this.testList = []),
-        (this.randoms = []),
-        this.handleData();
-    },
-    handleData() {
-      let max = this.allData.length;
-      let number = ((max * this.percent) / 10).toFixed(0);
-      if (this.randoms.length >= number) {
-        this.randoms.forEach((item) => {
-          this.trainingList.push(this.allData[item]);
-        });
-        this.testList = this.allData.filter(
-          (val) => this.trainingList.indexOf(val) === -1
-        );
-        this.trainingList.sort(this.Compare("faultTime"));
-        this.testList.sort(this.Compare("faultTime"));
-      } else {
-        let num = this.getRandoms(0, max - 1);
-        if (this.randoms.filter((item) => item === num).length > 0) {
-          this.handleData();
-        } else {
-          this.randoms.push(num);
-          this.handleData();
-        }
-      }
-    },
-    getRandoms(Min, Max) {
-      let Range = Max - Min;
-      let Rand = Math.random();
-      let num = Min + Math.round(Range * Rand);
-      return num;
-    },
-    Compare(property) {
-      return function (a, b) {
-        var value1 = new Date(a[property]).getTime();
-        var value2 = new Date(b[property]).getTime();
-        return value2 - value1;
-      };
-    },
-    handleSelectionChange(val) {
-      this.exportTrainingLists = val;
-    },
-    handleTestChange(val) {
-      this.exportTestList = val;
-    },
-    exportALLTest() {
-      this.exportTrainingLists = this.testList;
-      this.exportTraining(0);
-    },
-    exportTest() {
-      this.exportTrainingLists = this.exportTestList;
-      this.exportTraining(0);
-    },
-    exportALLTraining() {
-      this.exportTrainingLists = this.trainingList;
-      this.exportTraining(0);
-    },
-    exportTraining(index) {
-      let requestList = [];
-      this.resultData = [];
-      let hearder = [];
-      let datas = this.exportTrainingLists[index];
-      UniformCodes.forEach((code) => {
-        if (datas.stationId === code.name) {
-          code.values.forEach((val) => {
-            if (datas.modelId === val.modelId) {
-              requestList = val.codes;
-              val.codes.forEach((items) => {
-                hearder[0] = "日期";
-                hearder.push(items.name);
-              });
-            }
-          });
-        }
-      });
-      this.tHeader.push(hearder);
-      this.queryData(requestList, 0, index, datas);
-    },
-    queryData(requestList, zindex, index, datas) {
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        baseURL: "http://192.168.10.18:8011/",
-        subUrl: "ts/history/snap",
-        data: {
-          uniformCode: requestList[zindex].code,
-          startTs:
-            new Date(datas.faultTime).getTime() - that.intervalValue * 3600000,
-          endTs: new Date(datas.faultTime).getTime(),
-          thingType: "windturbine",
-          thingId: datas.objectId,
-          interval: 1,
-        },
-        success(res) {
-          if (res) {
-            that.resultData.push(res);
-            if (zindex === requestList.length - 1) {
-              index++;
-              that.exportList.push(that.resultData);
-              if (index >= that.exportTrainingLists.length) {
-                that.exportExcel();
-              } else {
-                that.exportTraining(index);
-              }
-            } else {
-              zindex++;
-              that.queryData(requestList, zindex, index, datas);
-            }
-          }
-        },
-      });
-    },
-    exportExcel() {
-      let that = this;
-      let paths = [];
-      let filterVal = [];
-      let pathName = ["cs1", "cs2", "cs3"];
-      that.exportTrainingLists.forEach((item, index) => {
-        let dataList = [];
-        for (let flag = 0; flag < that.exportList[index][0].length; flag++) {
-          let tempArray = [];
-          if (index === 0) {
-            filterVal.push(flag);
-          }
-          that.exportList[index].forEach((val, indexs) => {
-            if (indexs === 0) {
-              tempArray[0] = new Date(val[flag].ts).formatDate(
-                "yyyy-MM-dd hh:mm:ss"
-              );
-            }
-            tempArray.push(val[flag] ? val[flag]?.doubleValue : "");
-          });
-          dataList.push(tempArray);
-        }
-        paths.push(
-          export_blob(that.tHeader[index], that.formatJson(filterVal, dataList))
-        );
-      });
-      this.$refs.export.exportZip(paths, pathName, "测试1");
-      this.exportList = [];
-    },
-    formatJson(filterVal, jsonData) {
-      //转数据格式
-      return jsonData.map((v) => filterVal.map((j) => v[j]));
-    },
-    startTraining() {
-      let params = {};
-      let dataInfos = []
-      let dataParams = []
-      this.trainingList.forEach((item) => {
-        let datas = {};
-        datas.startTs =
-          new Date(item.faultTime).getTime() - this.intervalValue * 3600000;
-        datas.endTs = new Date(item.faultTime).getTime();
-        datas.thingId = item.objectId;
-        datas.modelId = item.modelId;
-        datas.stationId = item.stationId;
-        datas.id = item.id;
-        datas.faultTime = new Date(item.faultTime).getTime();
-        dataInfos.push(datas);
-      });
-      this.chooseAlgorithm.parameters.forEach(item =>{
-          dataParams.push(item.value)
-      })
-      let algorithm = {
-        name: this.chooseAlgorithm.name,
-        parameter: JSON.stringify(dataParams)
-      }
-      params.algorithm = algorithm
-      params.dataInfos = dataInfos
-      axios({
-        method: "post",
-        url: "http://192.168.10.18:8080/api/coordinate/execute",
-        data: params,
-        header: {
-          "Content-Type": "application/json",
-        },
-      }).then((res) => {
-        if (res.data === "success") {
-          this.BASE.showMsg({
-            type: "success",
-            msg: "训练中...",
-          });
-          this.trainingFlag = true;
-          this.$emit("click-training");
-        }else{
-          this.BASE.showMsg({
-            type: "warning",
-            msg: res.data,
-          });
-        }
-      });
-    },
-    reset() {
-      this.trainingFlag = false;
-    },
-  },
-};
-</script>
-<style scope lang="less">
-.showTitles {
-  display: flex;
-  flex-direction: row;
-  justify-content: space-between;
-  align-items: center;
-
-  .left {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-
-    .titles {
-      margin-right: 20px;
-    }
-  }
-}
-.selects {
-  display: flex;
-  flex-direction: row;
-  margin-right: 43px;
-}
-.titleBar {
-  display: flex;
-  flex-direction: row;
-  justify-content: space-between;
-  align-items: center;
-
-  .titleName {
-    color: #ffffff;
-    font-size: 16px;
-  }
-}
-.buttons {
-  display: flex;
-  flex-direction: row-reverse;
-  margin-bottom: 10px;
-
-  .btn {
-    margin-right: 15px;
-  }
-}
-</style>

+ 0 - 126
src/views/MalfunctionWarning/components/detectionRecord.vue

@@ -1,126 +0,0 @@
-<template>
-	<el-dialog width="50%" top="10vh" custom-class="modal" title="检测记录" :close-on-click-modal="false"
-		@opened="opened()">
-		<div style="height: 70vh; overflow-y: auto">
-			<div class="titleBar">
-				<div class="titleName">测试级</div>
-			</div>
-			<el-table ref="multipleTable" empty-text="暂无数据" :data="allData" :header-cell-style="{ height: '40px', background: 'rgba(83, 98, 104, 0.2)', color: '#b2bdc0', 'border-bottom': '0px solid red', }" :cell-style="{ height: '40px', 'border-bottom': 'solid 0px #242424', }" stripe style="width: 100%; margin-bottom: 10px">
-				<el-table-column prop="starttime" label="故障时间" width="160" align="center"></el-table-column>
-				<el-table-column prop="stationen" label="风场" width="80" align="center"></el-table-column>
-				<el-table-column prop="stationcn" label="场站名称" width="120" align="center"></el-table-column>
-				<el-table-column prop="windturbineid" label="风机编号" width="100" align="center"></el-table-column>
-				<el-table-column prop="model" label="风机型号" width="80" align="center"></el-table-column>
-				<el-table-column width="200" label="故障标签">
-					<template #default="scope">
-						<span>
-							<el-select v-model="scope.row.faultcode" @change="selectChange(scope.row)" clearable
-								placeholder="请选择" popper-class="select" style="width: 130px; margin-left: 30px">
-								<el-option v-for="item in faultLists" :key="item.faultcode" :label="item.faulttype"
-									:value="item.faultcode">
-								</el-option>
-							</el-select>
-						</span>
-					</template>
-				</el-table-column>
-				<el-table-column width="120" label="操作">
-					<template #default="btn">
-						<button class="btn" @click="getReports(btn.row.faultid)">查看检测报告</button>
-					</template>
-				</el-table-column>
-			</el-table>
-		</div>
-		<TestReport v-model="reportDisplay" :faultid='faultid' 
-	  ></TestReport>
-	</el-dialog>
-</template>
-<script>
-	import TestReport from "./testReport.vue";
-	import axios from "axios";
-	export default {
-		components: {
-			TestReport,
-		},
-		props: {
-			myData: {},
-		},
-		data() {
-			return {
-				faultLists: [],
-				allData: [],
-				reportDisplay: false,
-				faultid:''
-			};
-		},
-		created() {
-			this.getfaultLables();
-		},
-		methods: {
-			opened() {
-				this.getData();
-			},
-			getData() {
-				let that = this;
-				that.API.requestData({
-					method: "GET",
-					subUrl: "http://192.168.1.18:9002/case/fault/list",
-					data: {
-						station: that.myData.station,
-						model: that.myData.model,
-						st: that.myData.st,
-						et: that.myData.et,
-						category: 3
-					},
-					success(res) {
-						if (res) {
-							that.allData = res.data;
-						}
-					},
-				});
-			},
-			getfaultLables() {
-				let that = this;
-				this.API.requestData({
-					method: "GET",
-					subUrl: "http://192.168.1.18:9002/know/fault/type/all",
-					success(res) {
-						if (res) {
-							that.faultLists = res.data;
-						}
-					},
-				});
-			},
-			selectChange(data) {
-				let params = [];
-				(data.faulttype = this.faultLists.filter(
-					(item) => item.faultcode === data.faultcode
-				)[0]?.faulttype),
-				params.push(data);
-				axios({
-					method: "post",
-					url: "http://192.168.10.19:9002/case/fault/insert",
-					data: params,
-					header: {
-						"Content-Type": "application/json",
-					},
-				}).then((res) => {
-					if (res.data.code !== 200) {
-						this.BASE.showMsg({
-							type: "error",
-							msg: "标签修改失败",
-						});
-					}
-				});
-			},
-			getReports(id) {
-				this.faultid = id;
-				this.reportDisplay = true;
-			},
-		},
-	};
-</script>
-<style lang="less" scoped>
-	.btn {
-		width: 106px !important;
-	}
-</style>

+ 0 - 58
src/views/MalfunctionWarning/components/exportZip.vue

@@ -1,58 +0,0 @@
-<template>
-  <div></div>
-</template>
-<script>
-import JsZip from "jszip";
-import { export_blob } from "@tools/excel/Export2Excel.js";
-import BASE from "@tools/basicTool.js";
-export default {
-  data() {
-    return {
-      paths: [],
-    };
-  },
-  methods: {
-    exportZip(paths, pathName, zipName) {
-      
-      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) {
-          //   this.allExportF(deepIndex); //递归,去执行ajax
-          //   if (this.stations.length == deepIndex) {
-          //     BASE.closeLoading();
-          //   }
-          // } else if (this.single) {
-          //   BASE.closeLoading();
-          //   this.single = false;
-          // }
-        });
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-</style>

+ 0 - 107
src/views/MalfunctionWarning/components/lineChart.vue

@@ -1,107 +0,0 @@
-<template>
-  <div class="precisionEcharts" :id="id" :style="{width:width,height:height}"></div>
-</template>
-<script>
-import * as echarts from "echarts";
-export default {
-  props: {
-	  width: {
-	    type: String,
-	    default: "600px",
-	  },
-	  height: {
-	    type: String,
-	    default: "250px",
-	  },
-    dataList: {
-      type: String,
-      required: true,
-    },
-    id: Object,
-    reportFlag: {
-      type: Boolean,
-      default: false,
-    },
-  },
-  data() {
-    return {};
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-  updated() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-  methods: {
-    initChart() {
-      let chartDom = document.getElementById(this.id);
-      let myChart = echarts.init(chartDom);
-      let option = {
-        title: {
-          text: "",
-        },
-        legend: {
-          data: [Object.keys(this.dataList)[0],Object.keys(this.dataList)[1]],
-          textStyle: {
-            color: this.reportFlag? '#000000' : "#ffffff",
-          },
-        },
-        tooltip: {
-          trigger: "axis",
-        },
-        grid: {
-          left: "3%",
-          right: "4%",
-          bottom: "3%",
-          containLabel: true,
-        },
-        xAxis: {
-          type: "category",
-          boundaryGap: false,
-          splitLine: { show: false },
-          data: this.dataList[Object.keys(this.dataList)[0]]?.forEach((item, index) => {
-            return index;
-          }),
-        },
-        yAxis: {
-          type: "value",
-          splitLine: { show: false },
-        },
-        series: [
-          {
-            name: Object.keys(this.dataList)[0],
-            type: "line",
-            smooth: true,
-            data: this.dataList[Object.keys(this.dataList)[0]],
-          },
-          {
-            name: Object.keys(this.dataList)[1],
-            type: "line",
-            smooth: true,
-            data: this.dataList[Object.keys(this.dataList)[1]],
-          },
-        ],
-      };
-      option && myChart.setOption(option);
-    },
-  },
-  watch: {
-    dataList: {
-      handler(newValue, oldValue) {
-        this.initChart();
-      },
-      deep: true,
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-// .precisionEcharts {
-//   width: 600px;
-//   height: 250px;
-// }
-</style>

+ 0 - 479
src/views/MalfunctionWarning/components/records.vue

@@ -1,479 +0,0 @@
-<template>
-  <el-dialog
-    width="70%"
-    top="10vh"
-    custom-class="modal"
-    :close-on-click-modal="false"
-    title="训练记录"
-    v-model="dialogTableVisible"
-    @opened="opened()"
-    @closed="closed()"
-  >
-    <el-row :type="'flex'" class="content">
-      <el-col :span="12" class="pd-l-8">
-        <div style="font-size: 20px">历史记录</div>
-        <div style="height: 60vh; overflow-y: auto; margin-top: 30px">
-          <div v-if="supervisedFlag">
-            <div
-              class="body"
-              v-for="(item, index) in recordList"
-              :key="index"
-              @click="chooses(index)"
-            >
-              <div class="left">
-                <div :class="index === current ? 'round_on' : 'round'"></div>
-                <div class="line"></div>
-              </div>
-              <div class="right">
-                <div>{{ item.showTime }}</div>
-                <div class="content">
-                  <div class="names">
-                    {{ item.showName || item.ducumentName }}
-                  </div>
-                  <button class="btn" @click="deleteDate(item.name)">
-                    删除
-                  </button>
-                </div>
-              </div>
-            </div>
-          </div>
-          <div v-else>
-            <div
-              class="body"
-              v-for="(item, index) in showResultList"
-              :key="index"
-              @click="choose(index)"
-            >
-              <div class="left">
-                <div :class="index === current ? 'round_on' : 'round'"></div>
-                <div class="line"></div>
-              </div>
-              <div class="right">
-                <div>{{ item.showTime }}</div>
-                <div class="content">
-                  <div class="names">
-                    {{ item.showName || item.ducumentName }}
-                  </div>
-                  <button class="btn" @click="deleteDate(item.name)">
-                    删除
-                  </button>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </el-col>
-      <el-col :span="12" class="pd-l-8">
-        <div style="margin-left: 30px; font-size: 20px">训练结果</div>
-        <div v-if="supervisedFlag">
-          <LineChart id="accuracyCharts" :dataList="accuracyList"></LineChart>
-          <BarChart
-            id="barCharts"
-            @click="showDetials"
-            height="350px"
-            :barList="barList"
-            :baseLine="recordList[current]?.coordinate?.BaseLine"
-          ></BarChart>
-        </div>
-        <div v-else>
-          <div
-            class="scatterEchart"
-            id="scatterEcharts"
-            @click="showResults()"
-          ></div>
-        </div>
-      </el-col>
-    </el-row>
-    <ChartDetails
-      v-model="detialsDisplay"
-      :barList="recordList[current]?.coordinate?.bar"
-      :baseLine="recordList[current]?.coordinate?.BaseLine"
-    ></ChartDetails>
-  </el-dialog>
-</template>
-<script>
-import BarChart from "./barChart.vue";
-import LineChart from "./lineChart.vue";
-import ChartDetails from "./chartDetails.vue";
-import * as echarts from "echarts";
-export default {
-  components: {
-    BarChart,
-    LineChart,
-    ChartDetails,
-  },
-  props: {
-    supervisedFlag: {
-      type: Boolean,
-      default: false,
-    },
-  },
-  data() {
-    return {
-      current: 0,
-      accuracyList:{},
-      barList: [],
-      resultList: [],
-      showResultList: [
-        {
-          showTime: '2021-12-08 12:02:00',
-          showName: '牛首山UP82型风机DBSCAN模型',
-        },
-        {
-          showTime: '2021-12-08 11:22:23',
-          showName: '麻黄山UP77型风机DBSCAN模型',
-        },
-      ],
-      recordList: [],
-      detialsDisplay: false,
-      colors: [
-        "#FFFFFF",
-        "#FF0000",
-        "#820041",
-        "#FF00FF",
-        "#8600FF",
-        "#0000C6",
-        "#00FFFF",
-        "#00DB00",
-        "#F9F900",
-        "#FF5809",
-        "#984B4B",
-        "#AFAF61",
-        "#5151A2",
-        "#FFAF60",
-        "#B766AD",
-        "#006030",
-        "#2894FF",
-        "#796400",
-      ],
-      series: [
-        {
-          name: "",
-          symbolSize: 10,
-          encode: { tooltip: [0, 1] },
-          itemStyle: {
-            color: "#ffffff",
-          },
-          data: [
-            [11.0, 8.04],
-            [8.07, 6.95],
-            [13.0, 7.58],
-            [9.05, 8.81],
-            [11.0, 8.33],
-            [14.0, 7.66],
-            [13.4, 6.81],
-            [10.0, 6.33],
-            [14.0, 8.96],
-            [12.5, 6.82],
-            [9.15, 7.2],
-            [11.5, 7.2],
-            [3.03, 4.23],
-            [12.2, 7.83],
-            [2.02, 4.47],
-            [1.05, 3.33],
-            [4.05, 4.96],
-            [6.03, 7.24],
-            [12.0, 6.26],
-            [12.0, 8.84],
-            [7.08, 5.82],
-            [5.02, 5.68],
-          ],
-          type: "scatter",
-        },
-        {
-          name: "",
-          encode: { tooltip: [0, 1] },
-          symbolSize: 10,
-          itemStyle: {
-            color: "#FF0000",
-          },
-          data: [
-            [1.0, 8.04],
-            [18.07, 6.95],
-            [3.0, 7.58],
-            [19.05, 8.81],
-            [1.0, 8.33],
-            [4.0, 7.66],
-            [3.4, 6.81],
-            [20.0, 6.33],
-            [4.0, 8.96],
-            [2.5, 6.82],
-            [19.15, 7.2],
-            [11.5, 7.2],
-            [3.03, 4.23],
-            [12.2, 7.83],
-            [2.02, 4.47],
-            [1.05, 3.33],
-            [4.05, 4.96],
-            [6.03, 7.24],
-            [12.0, 6.26],
-            [12.0, 8.84],
-            [7.08, 5.82],
-            [5.02, 5.68],
-          ],
-          type: "scatter",
-        },
-      ],
-    };
-  },
-  methods: {
-    opened() {
-      if (!this.supervisedFlag) {
-        this.getRecords();
-        this.getScatter();
-      } else {
-        this.getSupervisedRecord();
-      }
-    },
-    showDetials() {
-      this.detialsDisplay = true;
-    },
-    choose(index) {
-      this.current = index;
-    },
-    chooses(index) {
-      this.current = index;
-      this.accuracyList.accuracy =
-        this.recordList[this.current]?.coordinate.accuracy;
-      this.accuracyList.val_accuracy =
-        this.recordList[this.current]?.coordinate.val_accuracy;
-      this.recordList[this.current]?.coordinate.bar?.sort(
-        this.Compare("value")
-      );
-      this.barList = this.recordList[this.current]?.coordinate.bar?.slice(0, 5);
-    },
-    getRecords() {
-      let that = this;
-      this.API.requestData({
-        method: "GET",
-        baseURL: "http://10.155.32.14:9090/",
-        subUrl: "api/coordinate/history",
-        success(res) {
-          if (res.length > 0) {
-            res.forEach((item) => {
-              let arr = item.name.split("-");
-              item.coordinate = JSON.parse(item.coordinate);
-              item.showName = arr[0]+' - '+arr[1]+' - '+arr[2];
-              item.showTime = new Date(Number(arr[1])).formatDate(
-                "yyyy-MM-dd hh:mm:ss"
-              );
-            });
-            that.showResultList = res;
-            that.dataDeal();
-          }
-        },
-      });
-    },
-    getSupervisedRecord() {
-      let that = this;
-      this.API.requestData({
-        method: "GET",
-        baseURL: "http://10.155.32.14:9090/",
-        subUrl: "api/supervised/history",
-        success(res) {
-          if (res) {
-            res.forEach((item) => {
-              let arr = item.name.split("-");
-              item.coordinate = JSON.parse(item.coordinate);
-              item.showName = arr[0]+' - '+arr[1]+' - '+arr[2];
-              item.showTime = new Date(Number(arr[3])).formatDate(
-                "yyyy-MM-dd hh:mm:ss"
-              );
-              item.coordinate.bar = JSON.parse(item.coordinate.bar);
-            });
-            that.accuracyList.accuracy = res[that.current]?.coordinate.accuracy;
-            that.accuracyList.val_accuracy = res[that.current]?.coordinate.val_accuracy;
-            res[that.current]?.coordinate.bar?.sort(that.Compare("value"));
-            that.barList = res[that.current]?.coordinate.bar?.slice(0, 5);
-            that.recordList = res;
-			console.log(res)
-          }
-        },
-      });
-    },
-    Compare(property) {
-      return function (a, b) {
-        var value1 = a[property];
-        var value2 = b[property];
-        return value2 - value1;
-      };
-    },
-    dataDeal() {
-      let that = this;
-      that.resultList = [];
-      let data = that.showResultList[that.current];
-      let dataList = [];
-      data?.coordinate.forEach((item, index) => {
-        let idList = [];
-        item.value.forEach((val) => {
-          let datas = {};
-          let arr = val[2].split("-");
-          let dataArr = [];
-          datas.name =
-            arr[0] +
-            "-" +
-            new Date(Number(arr[1])).formatDate("yyyy-MM-dd hh:mm:ss");
-          dataArr.push([Number(val[0]), Number(val[1])]);
-          idList.push(arr[2]);
-          datas.symbolSize = 10;
-          datas.encode = { tooltip: [0, 1] };
-          datas.data = dataArr;
-          datas.type = "scatter";
-          datas.itemStyle = { color: that.colors[index] };
-          dataList.push(datas);
-        });
-        that.resultList.push(idList);
-      });
-      that.series = dataList;
-      that.getScatter();
-    },
-    getScatter() {
-      let chartDom = document.getElementById("scatterEcharts");
-      let myChart = echarts.init(chartDom);
-      let option;
-      option = {
-        legend: {
-          show: true,
-          data: ["测试", "测试1"],
-          right: 56,
-          icon: "circle",
-          itemWidth: 6,
-          inactiveColor: "#606769",
-          textStyle: {
-            color: "#B3BDC0",
-            fontSize: 12,
-          },
-        },
-        xAxis: {
-          splitLine: { show: false },
-        },
-        yAxis: {
-          splitLine: { show: false },
-        },
-        tooltip: {
-          position: "top",
-        },
-        series: this.series,
-      };
-      option && myChart.setOption(option);
-    },
-    showResults() {
-      this.showList = [];
-      this.getFaultList(0);
-    },
-    deleteDate(val) {
-      let that = this;
-      this.API.requestData({
-        method: "GET",
-        baseURL: "http://10.155.32.14:9090/",
-        subUrl: "api/coordinate/history/remove/",
-        data: {
-          names: val,
-        },
-        success(res) {
-          if (res) {
-            that.showResultList = [];
-            that.barList = [];
-            that.recordList = [];
-            that.current = 0
-            if (!that.supervisedFlag) {
-              that.getRecords();
-              that.getScatter();
-            } else {
-              that.getSupervisedRecord();
-            }
-          }
-        },
-      });
-    },
-    getFaultList(index) {
-      let result = this.resultList[index];
-      let that = this;
-      this.API.requestData({
-        method: "GET",
-        baseURL: "http://192.168.11.18:8075/",
-        subUrl: "fault/history/",
-        data: {
-          ids: result.join(","),
-        },
-        success(res) {
-          if (res) {
-            res.forEach((item) => {
-              item.colors = that.colors[index];
-            });
-            that.showList =
-              that.showList.length > 0 ? [that.showList, ...res] : res;
-            index++;
-            if (index < that.resultList.length) {
-              that.getFaultList(index);
-            } else {
-              that.$emit("results", that.showList);
-            }
-          }
-        },
-      });
-    },
-    closed() {
-      this.$emit("records-closed");
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.body {
-  display: flex;
-  flex-direction: row;
-  height: 75px;
-  width: 100%;
-
-  .left {
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-    width: 30px;
-    margin-left: 30px;
-
-    .round_on {
-      width: 20px;
-      height: 27px;
-      border-radius: 50%;
-      background-color: rgb(30, 209, 45);
-    }
-    .round {
-      width: 20px;
-      height: 27px;
-      border-radius: 50%;
-      background-color: crimson;
-    }
-
-    .line {
-      width: 2px;
-      height: 100%;
-      background-color: #ffffff;
-    }
-  }
-
-  .right {
-    width: 100%;
-    margin-left: 20px;
-
-    .content {
-      display: flex;
-      flex-direction: row;
-      justify-content: space-between;
-      align-items: center;
-      margin-top: 10px;
-
-      .btn {
-        margin-right: 20px;
-      }
-    }
-  }
-}
-.scatterEchart {
-  width: 600px;
-  height: 500px;
-  margin-top: -20px;
-}
-</style>

+ 0 - 431
src/views/MalfunctionWarning/components/superviseDataClassify.vue

@@ -1,431 +0,0 @@
-<template>
-  <el-dialog
-    width="70%"
-    top="10vh"
-    custom-class="modal"
-    :close-on-click-modal="false"
-  >
-    <template #title>
-      <div class="showTitles">
-        <div class="left">
-          <div class="titles">模型训练</div>
-          <button v-if="!trainingFlag" class="btn" @click="startTraining()">
-            开始训练
-          </button>
-          <button v-if="trainingFlag" disabled>训练中</button>
-        </div>
-
-        <div class="selects">
-          <div style="margin-right: 20px">
-            比例:
-            <el-select
-              v-model="percent"
-              @change="selectSearch()"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-              style="width: 120px; margin-left: 20px"
-            >
-              <el-option
-                v-for="item in percentList"
-                :key="item.value"
-                :value="item.value"
-                :label="item.label"
-              />
-            </el-select>
-          </div>
-          <div>
-            故障前时间范围:
-            <el-select
-              v-model="intervalValue"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-              style="width: 105px; margin-left: 20px"
-            >
-              <el-option
-                v-for="item in timeList"
-                :key="item.value"
-                :value="item.value"
-                :label="item.label"
-              />
-            </el-select>
-          </div>
-        </div>
-      </div>
-    </template>
-    <div style="height: 70vh; overflow-y: auto">
-      <el-row :type="'flex'" class="content">
-        <el-col :span="12" class="pd-l-8">
-          <div class="titleBar">
-            <div class="titleName">训练级</div>
-          </div>
-          <el-table
-            ref="multipleTable"
-            empty-text="暂无数据"
-            :data="trainingList"
-            :header-cell-style="{
-              height: '40px',
-              background: 'rgba(83, 98, 104, 0.2)',
-              color: '#b2bdc0',
-              'border-bottom': '0px solid red',
-            }"
-            :cell-style="{
-              height: '40px',
-              'border-bottom': 'solid 0px #242424',
-            }"
-            stripe
-            style="width: 100%; margin-bottom: 10px"
-          >
-            <el-table-column
-              prop="starttime"
-              label="故障时间"
-              width="170"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="stationen"
-              label="风场"
-              width="80"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="stationcn"
-              label="场站名称"
-              width="130"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="windturbineid"
-              label="风机编号"
-              width="80"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="model"
-              label="风机型号"
-              width="90"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="faulttype"
-              label="故障"
-              width="80"
-              align="center"
-            ></el-table-column>
-          </el-table>
-        </el-col>
-        <el-col :span="12" class="pd-l-8">
-          <div class="titleBar">
-            <div class="titleName">测试级</div>
-          </div>
-          <el-table
-            ref="multipleTable"
-            empty-text="暂无数据"
-            :data="testList"
-            :header-cell-style="{
-              height: '40px',
-              background: 'rgba(83, 98, 104, 0.2)',
-              color: '#b2bdc0',
-              'border-bottom': '0px solid red',
-            }"
-            :cell-style="{
-              height: '40px',
-              'border-bottom': 'solid 0px #242424',
-            }"
-            stripe
-            style="width: 100%; margin-bottom: 10px"
-          >
-            <el-table-column
-              prop="starttime"
-              label="故障时间"
-              width="170"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="stationen"
-              label="风场"
-              width="80"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="stationcn"
-              label="场站名称"
-              width="130"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="windturbineid"
-              label="风机编号"
-              width="80"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="model"
-              label="风机型号"
-              width="90"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="faulttype"
-              label="故障"
-              width="80"
-              align="center"
-            ></el-table-column>
-          </el-table>
-        </el-col>
-      </el-row>
-    </div>
-  </el-dialog>
-</template>
-<script>
-import axios from "axios";
-import BASE from "@tools/basicTool.js";
-export default {
-  components: {
-  },
-  data() {
-    return {
-      trainingList: [],
-      testList: [],
-      randoms: [],
-      trainingFlag: false,
-      percent: 7,
-      intervalValue: 1,
-      faultList: {
-        JC: "机舱故障",
-        BJ: "变桨故障",
-        PH: "偏航故障",
-        FDJ: "发电机故障",
-        CLX: "齿轮箱故障",
-        YY: "液压故障",
-        ZZ: "主轴故障",
-        ZK: "主控故障",
-        BPQ: "变频器故障",
-      },
-      percentList: [
-        {
-          label: "10%",
-          value: 1,
-        },
-        {
-          label: "20%",
-          value: 2,
-        },
-        {
-          label: "30%",
-          value: 4,
-        },
-        {
-          label: "40%",
-          value: 4,
-        },
-        {
-          label: "50%",
-          value: 5,
-        },
-        {
-          label: "60%",
-          value: 6,
-        },
-        {
-          label: "70%",
-          value: 7,
-        },
-        {
-          label: "80%",
-          value: 8,
-        },
-        {
-          label: "90%",
-          value: 9,
-        },
-        {
-          label: "100%",
-          value: 10,
-        },
-      ],
-      timeList: [
-        { label: "1小时", value: 1 },
-        { label: "1.5小时", value: 1.5 },
-        { label: "2小时", value: 2 },
-        { label: "2.5小时", value: 2.5 },
-        { label: "3小时", value: 3 },
-        { label: "3.5小时", value: 3.5 },
-        { label: "4小时", value: 4 },
-        { label: "4.5小时", value: 4.5 },
-        { label: "5小时", value: 5 },
-        { label: "5.5小时", value: 5.5 },
-        { label: "6小时", value: 6 },
-        { label: "6.5小时", value: 6.5 },
-        { label: "7小时", value: 7 },
-        { label: "7.5小时", value: 7.5 },
-        { label: "8小时", value: 8 },
-        { label: "8.5小时", value: 8.5 },
-        { label: "9小时", value: 9 },
-        { label: "9.5小时", value: 9.5 },
-        { label: "10小时", value: 10 },
-        { label: "10.5小时", value: 10.5 },
-        { label: "11小时", value: 11 },
-        { label: "11.5小时", value: 11.5 },
-        { label: "12小时", value: 12 },
-      ],
-      exportTrainingLists: [],
-      exportTestList: [],
-      exportList: [],
-      resultData: [],
-      tHeader: [],
-    };
-  },
-  props: {
-    allData: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-    chooseAlgorithm: {
-      type: String,
-    },
-  },
-  updated() {
-    this.selectSearch();
-  },
-  methods: {
-    selectSearch() {
-      (this.trainingList = []),
-        (this.testList = []),
-        (this.randoms = []),
-        this.handleData();
-    },
-    handleData() {
-      let max = this.allData.length;
-      let number = ((max * this.percent) / 10).toFixed(0);
-      if (this.randoms.length >= number) {
-        this.randoms.forEach((item) => {
-          this.trainingList.push(this.allData[item]);
-        });
-        this.testList = this.allData.filter(
-          (val) => this.trainingList.indexOf(val) === -1
-        );
-        this.trainingList.sort(this.Compare("faultTime"));
-        this.testList.sort(this.Compare("faultTime"));
-      } else {
-        let num = this.getRandoms(0, max - 1);
-        if (this.randoms.filter((item) => item === num).length > 0) {
-          this.handleData();
-        } else {
-          this.randoms.push(num);
-          this.handleData();
-        }
-      }
-    },
-    getRandoms(Min, Max) {
-      let Range = Max - Min;
-      let Rand = Math.random();
-      let num = Min + Math.round(Range * Rand);
-      return num;
-    },
-    Compare(property) {
-      return function (a, b) {
-        var value1 = new Date(a[property]).getTime();
-        var value2 = new Date(b[property]).getTime();
-        return value2 - value1;
-      };
-    },
-    startTraining() {
-      let params = {};
-      let dataInfos = []
-      let dataParams = []
-      this.trainingList.forEach((item) => {
-        let datas = {};
-        datas.startTs =
-          new Date(item.starttime).getTime() - this.intervalValue * 3600000;
-        datas.endTs = new Date(item.starttime).getTime();
-        datas.thingId = item.windturbineid;
-        datas.modelId = item.model;
-        datas.stationId = item.stationen;
-        datas.id = item.faultid;
-        datas.faultTime = new Date(item.starttime).getTime();
-        datas.tag = item.faultcode
-        dataInfos.push(datas);
-      });
-      // this.chooseAlgorithm.parameters.forEach(item =>{
-      //     dataParams.push(item.value)
-      // })
-      let algorithm = {
-        name: this.chooseAlgorithm,
-        parameter: JSON.stringify(dataParams)
-      }
-      params.algorithm = algorithm
-      params.dataInfos = dataInfos
-      axios({
-        method: "post",
-        url: "http://10.155.32.14:9090/api/supervised/execute",
-		// url: "http://192.168.10.16:8080/api/supervised/execute",
-        data: params,
-        header: {
-          "Content-Type": "application/json",
-        },
-      }).then((res) => {
-        if (res.data === "success") {
-          this.BASE.showMsg({
-            type: "success",
-            msg: "训练中...",
-          });
-          // this.trainingFlag = true;
-          this.$emit("click-training");
-        }else{
-          this.BASE.showMsg({
-            type: "warning",
-            msg: res.data,
-          });
-        }
-      });
-    },
-  },
-};
-</script>
-<style scope lang="less">
-.showTitles {
-  display: flex;
-  flex-direction: row;
-  justify-content: space-between;
-  align-items: center;
-
-  .left {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-
-    .titles {
-      margin-right: 20px;
-    }
-  }
-}
-.selects {
-  display: flex;
-  flex-direction: row;
-  margin-right: 43px;
-}
-.titleBar {
-  display: flex;
-  flex-direction: row;
-  justify-content: space-between;
-  align-items: center;
-
-  .titleName {
-    color: #ffffff;
-    font-size: 16px;
-  }
-}
-.buttons {
-  display: flex;
-  flex-direction: row-reverse;
-  margin-bottom: 10px;
-
-  .btn {
-    margin-right: 15px;
-  }
-}
-</style>

+ 0 - 305
src/views/MalfunctionWarning/components/testReport.vue

@@ -1,305 +0,0 @@
-<template>
-	<el-dialog custom-class="cDialog" top="50px" v-model="dialogVisible" width="80%" @opened="report()">
-		<el-button style="position: absolute; right: 24px; top: 60px; z-index: 5000" type="primary" @click="exportPDF">
-			导出为PDF</el-button>
-		<div class="pdfDom">
-			<div class="title">故障检测报告</div>
-			<div class="info">
-				<div class="infoContent">
-					<div class="contents">
-						<div class="contentsTitle">风机编号:</div>
-						<div>{{reportData.windturbineId}}</div>
-					</div>
-					<div class="contents">
-						<div class="contentsTitle">风机型号:</div>
-						<div>{{reportData.model}}</div>
-					</div>
-					<div class="contents">
-						<div class="contentsTitle">故障发生时间:</div>
-						<div>{{reportData.faultTime}}</div>
-					</div>
-				</div>
-				<div class="infoContent">
-					<div class="contents">
-						<div class="contentsTitle">使用模型:</div>
-						<div>{{modelName}}</div>
-					</div>
-					<div class="contents">
-						<div class="contentsTitle">训练次数:</div>
-						<div>{{reportData.trainingTimes}}次</div>
-					</div>
-					<div class="contents"></div>
-				</div>
-				<div class="result">
-					<div class="moduleTitle">诊断结果:</div>
-					<div class="resultContent">
-						诊断故障最大可能为<text style="color: #dc143c">{{faultResult}}</text>下表为各故障可能发生的实际概率:
-					</div>
-					<div class="resultTable">
-						<el-table empty-text="暂无数据" :data="faultList"
-							:header-cell-style="{ background: 'rgb(153,204,255)', color: '#000', 'font-size': '20px', }"
-							:cell-style="{ 'font-size': '20px', color: '#696969', }" border stripe
-							style="width: 100%; margin: 10px 0">
-							<el-table-column prop="name" label="故障名称" align="center"></el-table-column>
-							<el-table-column prop="percent" label="发生概率" align="center"></el-table-column>
-						</el-table>
-					</div>
-				</div>
-				<div class="result">
-					<div class="moduleTitle">诊断依据:</div>
-					<div class="resultContent">
-						根据风场情况,训练故障权重图、训练和测试准确率、训练模型误差率如下:
-					</div>
-					<div class="charts">
-						<LineChart width="33.33%" v-if="lossList" id="reporLoss" :reportFlag="true" :dataList="lossList"></LineChart>
-						<LineChart width="33.33%" v-if="accuracyList" id="reporAccuracy" :reportFlag="true" :dataList="accuracyList"> </LineChart>
-						<BarChart width="33.33%" v-if="barList.length > 0" id="reportBar" :baseLine='BaseLine' :barList="barList"> </BarChart>
-					</div>
-					<div class="resultContent">
-						该模型训练和测试的准确率分别为<text style="color: #dc143c">{{result[0]}} 和 {{result[1]}}</text>;
-						误差率分别为<text style="color: #dc143c">{{result2[0]}} 和 {{result2[1]}}</text>;<br>
-						该模型训练所倚重的测点比重分别为:<text style="color: #dc143c" v-for="(item,index) in proportionList" :key="index">{{item.name+item.percent+(index != (proportionList.length-1)?'、':'')}}</text>。<br>
-						模型训练过程所有测点倚重占比如下表所示:
-					</div>
-					<div class="resultTable">
-						<el-table empty-text="暂无数据" :data="proportionList" :header-cell-style="{ background: 'rgb(153,204,255)', color: '#000', 'font-size': '20px', }" :cell-style="{ 'font-size': '20px', color: '#696969', }" border stripe style="width: 100%; margin: 10px 0">
-							<el-table-column prop="name" label="故障名称" align="center"></el-table-column>
-							<el-table-column prop="percent" label="发生概率" align="center"></el-table-column>
-						</el-table>
-					</div>
-				</div>
-			</div>
-		</div>
-	</el-dialog>
-</template>
-<script>
-	import Get_PDF from "@tools/htmlToPdf";
-	import LineChart from "./lineChart.vue";
-	import BarChart from "./barChart.vue";
-	export default {
-		components: {
-			LineChart,
-			BarChart,
-		},
-		props: {
-			faultid: '',
-		},
-		created() {
-			
-		},
-		data() {
-			return {
-				result:[],
-				result2:[],
-				modelName:'',
-				lossList: {},
-				accuracyList: {},
-				BaseLine: '',
-				barList: [],
-				faultResult:'',
-				reportData: {},
-				faultList: [{
-						name: "齿轮箱故障",
-						percent: "80%",
-					},
-					{
-						name: "变频器故障",
-						percent: "17%",
-					},
-				],
-				proportionList: [{
-						name: "偏航位置",
-						percent: "7.2%",
-					},
-					{
-						name: "发电机转速",
-						percent: "4.4%",
-					}
-				],
-			};
-		},
-		methods: {
-			jzxF(arr){
-				let jzx = [],
-					jzxData = [],
-					baselineAdd = 0;
-				arr.forEach(ele => {
-					if (parseFloat(ele.value) >= this.BaseLine) {
-						baselineAdd += parseFloat(ele.value);
-						jzx.push(ele)
-					}
-				})
-				
-				let jzxNum = [];
-				let jzxNum2 = []; //初始顺序
-				jzx.forEach(ele => {
-					jzxNum.push(parseFloat(ele.value));
-					jzxNum2.push(parseFloat(ele.value));
-				})
-				let jzxNumData = jzxNum.sort().reverse().slice(0, 5);
-				
-				jzxNumData.forEach(ele => {
-					let idx = jzxNum2.indexOf(ele);
-					jzxData.push({
-						name: jzx[idx].name,
-						percent: ((ele/baselineAdd)*100).toFixed(3) + "%",
-					})
-				})
-				this.proportionList = jzxData;
-			},
-			history(name) {
-			  let that = this;
-			  that.API.requestData({
-			    method: "GET",
-			    baseURL: "http://10.155.32.14:9090/",
-			    subUrl: "api/supervised/history",
-			    success(res) {
-			      if (res) {
-					let data = res.find(ele=>{
-						  return ele.name === name
-					  });
-					  
-					data.coordinate = JSON.parse(data?.coordinate);
-					data.coordinate.bar = JSON.parse(data?.coordinate.bar);
-					
-					that.lossList.loss = data?.coordinate.loss;
-					that.lossList.val_loss = data?.coordinate.val_loss;
-					
-					that.BaseLine = parseFloat(data?.coordinate.BaseLine);
-					that.accuracyList.accuracy = data?.coordinate.accuracy;
-					that.accuracyList.val_accuracy = data?.coordinate.val_accuracy;
-					
-					data?.coordinate.bar?.sort(that.Compare("value"));
-					that.barList = data?.coordinate.bar?.slice(0, 5);
-					
-					let accuracy = that.accuracyList.accuracy.sort()[that.accuracyList.accuracy.length-1];
-					let val_accuracy = that.accuracyList.val_accuracy.sort()[that.accuracyList.val_accuracy.length-1];
-					let loss = that.lossList.loss.sort()[that.lossList.loss.length-1];
-					let val_loss = that.lossList.val_loss.sort()[that.lossList.val_loss.length-1];
-					that.endResult(accuracy,val_accuracy,loss,val_loss);
-					
-					that.jzxF(data?.coordinate.bar);
-			      }
-			    },
-			  });
-			},
-			endResult(accuracy,val_accuracy,loss,val_loss){//取数组最后一位
-				let result = [accuracy,val_accuracy];
-				result.forEach((ele,index)=>{
-					result[index] = (ele*100).toFixed(3)+'%'
-				})
-				let result2 = [loss,val_loss];
-				result2.forEach((ele,index)=>{
-					result2[index] = ele.toFixed(2)
-				})
-				this.result = result;
-				this.result2 = result2;
-			},
-			Compare(property) {
-			  return function (a, b) {
-			    var value1 = a[property];
-			    var value2 = b[property];
-			    return value2 - value1;
-			  };
-			},
-			exportPDF(name) {// 导出PDF
-				this.BASE.showMsg({
-					type: "success",
-					msg: "正在导出...请稍后...",
-				});
-				Get_PDF.downloadPDF(document.querySelector(".pdfDom"), "故障检测报告");
-			},
-			report() {
-				let that = this;
-				that.API.requestData({
-					method: "GET",
-					subUrl: "http://10.155.32.14:9090/api/autofault/report",
-					success(res) {
-						if (res) {
-							res.forEach(ele => {
-								if (ele.id === that.faultid) {
-									that.history(ele.modelName)
-									that.reportData = ele;
-									that.modelName=ele.modelName.split('-')[2];
-									let faultList = [],
-										faultResult = '';
-									ele.result.split(' ').forEach(ele => {
-										let data = ele.split(':');
-										if(data.length > 1){
-											faultList.push({
-												name: data[0],
-												percent: data[1] * 100 + '%'
-											})
-											faultResult += data[0] + ':' + data[1] * 100 + '%,'
-										}
-									})
-									
-									that.faultResult = faultResult;
-									that.faultList = faultList;
-									
-								}
-							})
-						}
-					},
-				});
-			}
-		},
-	};
-</script>
-<style lang="less" scoped>
-	.cDialog {
-		position: relative;
-
-		.pdfDom {
-			padding: 30px 50px;
-		}
-
-		.title {
-			text-align: center;
-			font-size: 32px;
-			font-weight: 700;
-		}
-
-		.info {
-			display: flex;
-			flex-direction: column;
-			width: 100%;
-
-			.infoContent {
-				width: 100%;
-				display: flex;
-				flex-direction: row;
-				align-items: center;
-				justify-content: center;
-				margin-bottom: 20px;
-				font-size: 22px;
-
-				.contents {
-					display: flex;
-					flex-direction: row;
-					align-items: center;
-					width: 33%;
-
-					.contentsTitle {
-						font-weight: bold;
-					}
-				}
-			}
-
-			.result {
-				font-size: 22px;
-
-				.resultTable {
-					display: flex;
-					width: 40%;
-					margin-left: 30%;
-				}
-
-				.charts {
-					display: flex;
-					justify-content: left;
-				}
-			}
-		}
-	}
-</style>

+ 0 - 355
src/views/MalfunctionWarning/components/trainingResults.vue

@@ -1,355 +0,0 @@
-<template>
-  <el-dialog
-    width="70%"
-    top="10vh"
-    custom-class="modal"
-    :close-on-click-modal="false"
-    title="训练结果"
-    v-model="dialogTableVisible"
-    @opened="opened()"
-  >
-    <el-row :type="'flex'" class="content">
-      <el-col :span="12" class="pd-l-8">
-        <div style="display: flex; flex-direction: row-reverse">
-          <button class="btn" style="margin-top: 0px" @click="batch">
-            批量处理
-          </button>
-        </div>
-        <div style="height: 70vh; overflow-y: auto">
-          <div>
-            <el-table
-              highlight-current-row
-              @current-change="handleClick"
-              ref="multipleTable"
-              empty-text="暂无数据"
-              :data="allData"
-              :header-cell-style="{
-                height: '40px',
-                background: 'rgba(83, 98, 104, 0.2)',
-                color: '#b2bdc0',
-                'border-bottom': '0px solid red',
-              }"
-              :cell-style="{
-                height: '40px',
-                'border-bottom': 'solid 0px #242424',
-              }"
-              stripe
-              style="width: 100%; margin-bottom: 10px"
-            >
-              <el-table-column width="30">
-                <template #default="scope">
-                  <span
-                    class="mark"
-                    :style="{ 'background-color': scope.row.colors }"
-                  ></span>
-                </template>
-              </el-table-column>
-              <el-table-column
-                prop="faultTime"
-                label="FaultTime"
-                width="150"
-                align="center"
-              ></el-table-column>
-              <!-- <el-table-column
-                prop="stationId"
-                label="StationId"
-                width="80"
-                align="center"
-              ></el-table-column> -->
-              <el-table-column
-                prop="stationName"
-                label="StationName"
-                width="120"
-                align="center"
-              ></el-table-column>
-              <el-table-column
-                prop="objectId"
-                label="ObjectId"
-                width="80"
-                align="center"
-              ></el-table-column>
-              <el-table-column
-                prop="modelId"
-                label="ModelId"
-                width="100"
-                align="center"
-              ></el-table-column>
-              <el-table-column width="150">
-                <template #default="scope">
-                  <span>
-                    <el-select
-                      v-model="scope.row.labels"
-                      @change="selectSearch(scope.row)"
-                      clearable
-                      placeholder="请选择"
-                      popper-class="select"
-                      style="width: 120px; margin-left: 20px"
-                    >
-                      <el-option
-                        v-for="item in moudleList"
-                        :key="item.faultcode"
-                        :label="item.faulttype"
-                        :value="item.faultcode"
-                      >
-                      </el-option>
-                    </el-select>
-                  </span>
-                </template>
-              </el-table-column>
-            </el-table>
-          </div>
-        </div>
-      </el-col>
-      <el-col :span="12" class="pd-l-8">
-        <MultipleYLineChartNormal
-          height="35vh"
-          ref="multiple"
-          :list="Analysis"
-          :yAxises="AnalysisYAxises"
-          :showLegend="true"
-          :default="!batchDisplay"
-        ></MultipleYLineChartNormal>
-        <button class="btn" @click="handleSearch()" style="margin-top: 20px">
-          查询
-        </button>
-        <div class="lables">
-          <button
-            v-for="(item, index) in lableList"
-            :key="index"
-            :class="item.isShow ? 'btn green' : 'btn'"
-            @click="handleChange(item)"
-          >
-            {{ item.showName }}
-          </button>
-        </div>
-      </el-col>
-      <BatchData
-        v-model="batchDisplay"
-        :moudleList="moudleList"
-        :allData="allData"
-        @handleSave="saveData"
-      ></BatchData>
-    </el-row>
-  </el-dialog>
-</template>
-<script>
-import BatchData from "./batchData.vue";
-import UniformCodes from "./UniformCodes.json";
-import MultipleYLineChartNormal from "../../NewPages/multiple-y-line-chart-normal.vue";
-import BASE from "@tools/basicTool.js";
-export default {
-  components: { MultipleYLineChartNormal, BatchData },
-  props: {
-    allData: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-    intervalValue: {
-      type: Number,
-      default: 1,
-    },
-    moudleList: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-  },
-  data() {
-    return {
-      chooseData: {},
-      lableList: [],
-      lineList: [],
-      batchDisplay: false,
-      Analysis: [
-        {
-          title: "",
-          yAxisIndex: 0, // 使用单位
-          value: [],
-        },
-      ],
-      AnalysisYAxises: [
-        {
-          name: "",
-          min: "",
-          max: "",
-          unit: "",
-          position: "left",
-        },
-        {
-          name: "",
-          min: "",
-          max: "",
-          unit: "",
-          position: "right",
-        },
-      ],
-    };
-  },
-  mounted() {},
-  methods: {
-    opened() {
-      (this.lableList = []),
-        (this.lineList = []),
-        (this.chooseData = this.allData[0]);
-      // this.queryData();
-      this.$refs.multipleTable.setCurrentRow(this.allData[0]);
-      this.dataDeal(this.allData[0]);
-    },
-    queryData() {
-      let param = [];
-      this.allData.forEach((item) => {
-        param.push(item.id);
-      });
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        subUrl: "http://192.168.1.18:9002/case/fault/train/all",
-        data: {
-          ids: param.join(","),
-        },
-        success(res) {
-          if (res) {
-            res.data.forEach((item) => {
-              that.allData.filter((items) => items.id === item.id)[0].labels =
-                item.labels;
-            });
-          }
-        },
-      });
-    },
-    handleClick(val) {
-      let valus = val ? val : this.allData[0];
-      if (val) {
-        this.dataDeal(valus);
-        this.handleSearch();
-      }
-    },
-    dataDeal(val) {
-      this.chooseData = val;
-      this.lableList = [];
-      UniformCodes.forEach((code) => {
-        if (val?.stationId === code.name) {
-          code.values.forEach((item) => {
-            if (val.modelId === item.modelId) {
-              item.codes.forEach((values, index) => {
-                if (values.name.length > 5) {
-                  values.showName = values.name.substring(0, 5) + "...";
-                } else {
-                  values.showName = values.name;
-                }
-                if (index < 5) {
-                  values.isShow = true;
-                } else {
-                  values.isShow = false;
-                }
-              });
-              this.lableList = item.codes;
-            }
-          });
-        }
-      });
-    },
-    handleChange(val) {
-      let index = this.lableList.filter((item) => item.isShow === true).length;
-      if (index >= 5 && val.isShow === false) {
-        this.BASE.showMsg({
-          type: "warning",
-          msg: "每次查询不可大于5个",
-        });
-        val.isShow = false;
-      } else {
-        val.isShow = !val.isShow;
-      }
-    },
-    handleSearch() {
-      this.lineList = [];
-      let max = this.lableList.filter((item) => item.isShow === true).length;
-      if (max > 0) {
-        this.historyData(0, max);
-      }
-    },
-    historyData(index, max) {
-      let dataLsit = this.lableList.filter((item) => item.isShow === true);
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        baseURL: "http://192.168.10.18:8011/",
-        subUrl: "ts/history/snap",
-        data: {
-          uniformCode: dataLsit[index].code,
-          startTs:
-            new Date(that.chooseData.faultTime).getTime() -
-            that.intervalValue * 3600000,
-          endTs: new Date(that.chooseData.faultTime).getTime() + 600000,
-          thingType: "windturbine",
-          thingId: that.chooseData.objectId,
-          interval: 1,
-        },
-        success(res) {
-          if (res) {
-            let obj = {
-              title: dataLsit[index].name,
-              value: res,
-            };
-            that.lineList.push(obj);
-            index++;
-            if (index < max) {
-              that.historyData(index, max);
-            } else {
-              that.Analysis = that.lineList;
-            }
-          }
-        },
-      });
-    },
-    selectSearch(val) {
-      this.saveData(this.allData);
-    },
-    batch() {
-      this.batchDisplay = true;
-    },
-    saveData(data) {
-      this.$emit('save-date', data);
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.templates {
-  width: 100%;
-  height: 100%;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-.mark {
-  display: flex;
-  width: 15px;
-  height: 15px;
-  border-radius: 50%;
-}
-.lables {
-  display: flex;
-  flex-direction: row;
-  flex-wrap: wrap;
-  height: 28vh;
-  overflow-y: auto;
-  margin-top: 10px;
-}
-.btn green {
-  width: 117px;
-  margin-right: 7px;
-  margin-top: 10px;
-}
-.btn {
-  width: 117px;
-  margin-right: 7px;
-  margin-top: 10px;
-}
-.btn + button {
-  margin-left: 0px;
-}
-</style>

+ 0 - 441
src/views/MalfunctionWarning/diagnose.vue

@@ -1,441 +0,0 @@
-<template>
-	<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="station" placeholder="请选择" popper-class="select" @change="stationChange">
-							<el-option v-for="item in stations" :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-date-picker v-model="date" 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-model="fj" collapse-tags placeholder="请选择" popper-class="select">
-							<el-option v-for="item in fjArr" :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="lable">
-						{{modelid}}
-					</div>
-				</div>
-				<div class="query-actions">
-					<button class="btn green" @click="query(false)">查询</button>
-					<button class="btn green" @click="reset">实时更新</button>
-				</div>
-			</div>
-		</div>
-		<el-row type="flex">
-			<el-col :span="12">
-				<el-row type="flex">
-					<el-col :span="12">
-						<panel title="残差 【模型记录】" :showLine="false">
-							<div class="timeLine">
-								<div class="body" v-for="(item, index) in ccS" :key="index">
-									<div class="left">
-										<div class="round_on"></div>
-										<div class="line"></div>
-									</div>
-									<div class="right">
-										<div>{{ item.time }}</div>
-										<div class="content">
-											<div class="names">
-												{{ item.faultIds }}
-											</div>
-											<button class="btn" @click="deleteDate(item.name)">
-												删除
-											</button>
-										</div>
-									</div>
-								</div>
-							</div>
-						</panel>
-					</el-col>
-					<el-col :span="12">
-						<panel title="油温 【模型记录】" :showLine="false">
-							<div class="timeLine">
-								<div class="body" v-for="(item, index) in ywS" :key="index">
-									<div class="left">
-										<div class="round_on"></div>
-										<div class="line"></div>
-									</div>
-									<div class="right">
-										<div>{{ item.time }}</div>
-										<div class="content">
-											<div class="names">
-												{{ item.faultIds }}
-											</div>
-											<button class="btn" @click="deleteDate(item.name)">
-												删除
-											</button>
-										</div>
-									</div>
-								</div>
-							</div>
-						</panel>
-					</el-col>
-				</el-row>
-			</el-col>
-			<el-col :span="12">
-				<panel title="残差 【预测记录】" :showLine="false">
-					<double-line-chart height="25vh" :list='ccChart' />
-					<double-line-chart height="20vh" :list='ccLineChart' />
-					<div class="green text">
-						依据当前的模型,{{forekonw?'油温误差大于0.1,预计在'+forekonw+',齿轮箱会发生油温异常':'没有油温误差大于0.1的齿轮箱油温异常'}}。
-					</div>
-				</panel>
-				<panel title="油温 【预测记录】" :showLine="false">
-					<double-line-chart height="25vh" :list='ywChart' />
-					<div class="green text">
-						预计未来10分钟的油温走势,当前时间为{{new Date(endTs).formatDate("yyyy-MM-dd hh:mm")}},当前油温: {{ywChartHtml[0]}}
-						℃,未来10分钟油温:{{ywChartHtml[1]}} ℃ 。
-					</div>
-				</panel>
-			</el-col>
-		</el-row>
-	</div>
-</template>
-<script>
-	import Panel from "@/components/coms/panel/panel.vue";
-	import DoubleLineChart from "@/components/chart/line/double-line-chart.vue";
-	import axios from "axios";
-	export default {
-		components: {
-			Panel,
-			DoubleLineChart
-		},
-		data() {
-			return {
-				stations: [],
-				station: '',
-				model: [],
-				fjArr: [], //风机
-				fj: '',
-				ywChart: [{
-					title: "实时油温",
-					smooth: true,
-					value: []
-				}, {
-					title: "未来10分钟油温",
-					smooth: true,
-					value: []
-				}],
-				ywChartHtml: [],
-				ccChart: [{
-					title: "实时油温",
-					smooth: true,
-					value: []
-				}, {
-					title: "理论油温",
-					smooth: true,
-					value: []
-				}],
-				ccLineChart:[{
-					title: "油温残差",
-					smooth: true,
-					value: []
-				}],
-				startTs: '',
-				endTs: '',
-				date: [],
-				uniformCodes: ['CI0671', 'AI041','YWCH','LLYW'],
-				interval: null,
-				flag: 1,
-				ccS: [],
-				ywS: [],
-				modelid:'',
-				forekonw:0
-			};
-		},
-		created() {
-			this.resetDate();
-			this.startAjax();
-		},
-		methods: {
-			resetDate(){//重置时间
-				let end = new Date().valueOf();
-				this.startTs = new Date(new Date().getTime() - (3600 * 1000 * 2)).valueOf();
-				this.endTs = end;
-				this.date = [this.startTs, this.endTs];
-			},
-			async history(thingId, uniformCode) { //油温chart历史
-				let that = this;
-				let items = [];
-				const {
-					data
-				} = await axios.get(
-					`http://192.168.10.18:8011/ts/history/snap?thingType=windturbine&uniformCode=${uniformCode}&thingId=${thingId}&startTs=${that.startTs}&endTs=${that.endTs}&interval=60`
-					);
-				data.forEach(ele => {
-					items.push({
-						text: new Date(ele.ts).formatDate("yyyy-MM-dd hh:mm"),
-						value: ele.value.toFixed(2)
-					})
-				})
-				if (uniformCode === 'AI041') {
-					that.ywChart[0].value = items;
-					that.ccChart[0].value = items;
-				}
-				if (uniformCode === 'CI0671') {
-					that.ywChart[1].value = items;
-				}
-				if (uniformCode === 'YWCH') {
-					that.ccLineChart[0].value = items;
-					if(items.pop().value >= 0.1){
-						that.forekonw = item.value;
-					}
-				}
-				if (uniformCode === 'LLYW') {
-					that.ccChart[1].value = items;
-				}
-			},
-			async list(thingId) { //一分钟一次
-				let that = this;
-				const {
-					data
-				} = await axios.get(
-					`http://192.168.10.18:8011/ts/latest?thingType=windturbine&uniformCodes=YWCH,CI0671,LLYW,AI041&thingId=${thingId}`
-					);
-				let AI041 = {
-					text: new Date(data.AI041.ts).formatDate("yyyy-MM-dd hh:mm"),
-					value: data.AI041.value.toFixed(2)
-				}
-				that.ywChart[0].value.push(AI041)
-				that.ywChart[1].value.push({
-					text: new Date(data.CI0671.ts).formatDate("yyyy-MM-dd hh:mm"),
-					value: data.CI0671.value.toFixed(2)
-				})
-				that.ywChartHtml = [data.AI041.value.toFixed(2), data.CI0671.value.toFixed(2)];
-				that.ccChart[0].value.push(AI041);
-			},
-			async startAjax() { //场站
-				var that = this;
-				await that.API.requestData({
-					method: "GET",
-					baseURL: "http://192.168.1.18:9002/",
-					subUrl: "basic/station/all",
-					success(res) {
-						that.stations = res.data;
-						that.station = res.data[1].id;
-					},
-				});
-			},
-			query(a) {
-				this.ywYc(a);
-				this.mxjl();
-			},
-			reset(){
-				this.resetDate();
-				this.query(true);//传个true,重置,开启每秒执行,else停
-			},
-			ywYc(a) { //油温预测记录
-				this.ccChart[0].value = [];
-				this.ccChart[1].value = [];
-				this.ccLineChart[0].value = [];
-				
-				this.ywChart[0].value = [];
-				this.ywChart[1].value = [];
-				this.stopInterval();
-				this.uniformCodes.forEach(ele => {
-					this.history(this.fj, ele);
-				})
-				this.list(this.fj);
-				if(a){//实时更新
-					this.interval = setInterval(() => {
-						this.uniformCodes.forEach(ele => {
-							this.history(this.fj, ele);
-						})
-						this.list(this.fj)
-					}, 60000);
-				}
-			},
-			mxjl() { //模型记录
-				let that = this;
-				that.API.requestData({ //风机
-					method: "GET",
-					baseURL: "http://10.155.32.14:9090/",
-					subUrl: "api/gearbox-diagnosis/history",
-					success(res) {
-						let cc = [],
-							yw = [];
-						res.forEach(ele => {
-							let data = {
-								name: ele.name,
-								time: ele.name.split('_')[1],
-								faultIds: ele.faultIds ? ele.faultIds : '暂无数据'
-							};
-							ele.name.split('_')[0] === '残差' ? cc.push(data) : yw.push(data);
-						})
-						that.ccS = cc;
-						that.ywS = yw;
-					},
-				});
-			},
-			deleteDate(val) {
-				let that = this;
-				that.API.requestData({
-					method: "GET",
-					baseURL: "http://10.155.32.14:9090/",
-					subUrl: "api/gearbox-diagnosis/history/remove",
-					data: {
-						names: val,
-					},
-					success(res) {
-						if (res == 'success') {
-							that.mxjl();
-							that.BASE.showMsg({
-								type: "success",
-								msg: '已删除'
-							});
-						}
-					},
-				});
-			},
-			stopInterval(){
-				clearInterval(this.interval);
-				this.interval = null;
-			}
-		},
-		unmounted() {
-			this.stopInterval();
-		},
-		watch: {
-			// YWCH 油温残差
-			// LLYW 理论油温
-			// CI0671 未来10分钟油温
-			// AI041 实时油温
-			station(e) {
-				let that = this;
-				that.API.requestData({ //风机
-					method: "GET",
-					baseURL: "http://10.155.32.4:9001/",
-					subUrl: "benchmarking/wtList",
-					data: {
-						wpid: e,
-					},
-					success(res) {
-						that.fjArr = res.data;
-						that.fj = res.data[0].id;
-						if (that.flag === 1) {
-							that.query(true);
-						}
-						that.flag = 2;
-					},
-				});
-			},
-			date(e) {
-				this.startTs = e[0].valueOf();
-				this.endTs = e[1].valueOf();
-			},
-			fj(e){
-				let that = this;
-				that.API.requestData({ //风机型号
-					method: "GET",
-					subUrl: "windturbine/getWindturbine",
-					data: {
-						windturbineid: e,
-					},
-					success(res) {
-						that.modelid = res.data.modelid;
-					}
-				});
-			}
-		}
-	};
-</script>
-<style lang="less" scoped>
-	.body {
-		display: flex;
-		flex-direction: row;
-		height: 75px;
-		width: 100%;
-
-		.left {
-			display: flex;
-			flex-direction: column;
-			justify-content: center;
-			align-items: center;
-			width: 30px;
-			margin-left: 30px;
-
-			.round_on {
-				width: 20px;
-				height: 27px;
-				border-radius: 50%;
-				background-color: rgb(30, 209, 45);
-			}
-
-			.round {
-				width: 20px;
-				height: 27px;
-				border-radius: 50%;
-				background-color: crimson;
-			}
-
-			.line {
-				width: 2px;
-				height: 100%;
-				background-color: #ffffff;
-			}
-		}
-
-		.right {
-			width: 100%;
-			margin-left: 20px;
-
-			.content {
-				display: flex;
-				flex-direction: row;
-				justify-content: space-between;
-				align-items: center;
-				margin-top: 10px;
-
-				.btn {
-					margin-right: 20px;
-				}
-			}
-		}
-	}
-
-	.timeLine {
-		height: 80vh;
-		overflow-y: auto;
-		margin-top: 30px;
-	}
-
-	.text {
-		font-size: 2vh;
-		margin: 1vh 0;
-	}
-</style>
-<style lang="less">
-	.el-date-editor--daterange {
-		border: 1px solid rgba(96, 103, 105, 0.2);
-		height: 33px;
-		width: 100% !important;
-
-		input {
-			background-color: transparent;
-			color: white;
-		}
-
-		.el-range-separator {
-			color: white;
-		}
-	}
-</style>

BIN
src/views/MalfunctionWarning/img/generator.png


File diff suppressed because it is too large
+ 0 - 577
src/views/MalfunctionWarning/supervised.vue


+ 0 - 661
src/views/NewPages/Matrix-Detail.vue

@@ -1,661 +0,0 @@
-<template>
-  <div class="matrix-detail">
-    <Row class="panel-2" type="">
-      <Col :span="12" class="left-50-16">
-        <div class="panel">
-          <div class="dot left top"></div>
-          <div class="dot left bottom"></div>
-          <div class="dot right top"></div>
-          <div class="dot right bottom"></div>
-          <div class="item">
-            <div class="loop"></div>
-            <span class="svg-icon svg-icon-gray svg-icon-md">
-              <SvgIcon svgid="svg-wind-site"></SvgIcon>
-            </span>
-          </div>
-          <div
-            class="item"
-            :class="data.color"
-            v-for="(data, index) of panel1Data.datas"
-            :key="index"
-          >
-            <div>{{ data.test }}</div>
-            <div>{{ data.num }}</div>
-          </div>
-        </div>
-      </Col>
-      <Col :span="12" class="left-50-16">
-        <div class="panel">
-          <div class="dot left top"></div>
-          <div class="dot left bottom"></div>
-          <div class="dot right top"></div>
-          <div class="dot right bottom"></div>
-          <div class="item">
-            <div class="loop"></div>
-            <span class="svg-icon svg-icon-gray svg-icon-md">
-              <SvgIcon
-                :svgid="'svg-photovoltaic'"
-                style="margin: 3px 0px -3px 1px"
-              ></SvgIcon>
-            </span>
-          </div>
-          <div
-            class="item"
-            :class="data.color"
-            v-for="(data, index) of panel2Data.datas"
-            :key="index"
-          >
-            <div>{{ data.test }}</div>
-            <div>{{ data.num }}</div>
-          </div>
-        </div>
-      </Col>
-    </Row>
-    <div class="panel-box">
-      <div v-for="(table, k) of newTables" :key="k">
-        <div class="panel-title">
-          <div class="panel-title-name">
-            <i class="svg-icon svg-icon-sm svg-icon-green">
-              <SvgIcon :svgid="'svg-wind-site'"></SvgIcon>
-            </i>
-            <span>某某某风电场</span>
-            <div
-              class="sub-title-item"
-              v-for="(data, index) of table.subTitleDatas"
-              :key="index"
-            >
-              <span class="sub-title">{{ data.text }}</span>
-              <span class="sub-count" :class="data.color">{{ data.num }}</span>
-            </div>
-          </div>
-        </div>
-        <div class="panel-body">
-          <div class="card" v-for="j of table.count" :key="j" :class="'green'">
-            {{ "A" + j }}
-          </div>
-          <!-- 站位用 保证卡片布局最后一行不会有问题 -->
-          <i class="blank" v-for="i in table.count" :key="i"></i>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import Row from "@/components/coms/grid/row.vue";
-import Col from "@/components/coms/grid/col.vue";
-import SvgIcon from "@com/coms/icon/svg-icon.vue";
-import util from "@/helper/util.js";
-export default {
-  // 名称
-  name: "LightMatrix1",
-  // 使用组件
-  components: {
-    Row,
-    Col,
-    SvgIcon,
-  },
-  // 数据
-  data() {
-    return {
-      panel1Data: {
-        first: {
-          icon: "svg-wind-site",
-        },
-        datas: [
-          {
-            color: "write",
-            test: "接入风机",
-            num: 256,
-          },
-          {
-            color: "blue",
-            test: "· 运行",
-            num: 256,
-          },
-          {
-            color: "green",
-            test: "· 待机",
-            num: 256,
-          },
-          {
-            color: "pink",
-            test: "· 限电",
-            num: 256,
-          },
-          {
-            color: "red",
-            test: "· 故障",
-            num: 256,
-          },
-          {
-            color: "orange",
-            test: "· 检修",
-            num: 256,
-          },
-          {
-            color: "write",
-            test: "· 受累",
-            num: 256,
-          },
-          {
-            color: "gray",
-            test: "· 离线",
-            num: 256,
-          },
-        ],
-      },
-      panel2Data: {
-        first: {
-          icon: "svg-photovoltaic",
-        },
-        datas: [
-          {
-            color: "write",
-            test: "接入风机",
-            num: 256,
-          },
-          {
-            color: "blue",
-            test: "· 运行",
-            num: 256,
-          },
-          {
-            color: "green",
-            test: "· 待机",
-            num: 256,
-          },
-          {
-            color: "pink",
-            test: "· 限电",
-            num: 256,
-          },
-          {
-            color: "red",
-            test: "· 故障",
-            num: 256,
-          },
-          {
-            color: "orange",
-            test: "· 检修",
-            num: 256,
-          },
-          {
-            color: "write",
-            test: "· 受累",
-            num: 256,
-          },
-          {
-            color: "gray",
-            test: "· 离线",
-            num: 256,
-          },
-        ],
-      },
-      tables: [
-        {
-          col: 42,
-          subTitleDatas: [
-            {
-              text: "接入台数",
-              num: 256,
-              color: "write",
-            },
-            {
-              text: "待机台数",
-              num: 256,
-              color: "green",
-            },
-            {
-              text: "并网台数",
-              num: 256,
-              color: "blue",
-            },
-            {
-              text: "限电台数",
-              num: 256,
-              color: "pink",
-            },
-            {
-              text: "故障台数",
-              num: 256,
-              color: "red",
-            },
-            {
-              text: "检修台数",
-              num: 256,
-              color: "orange",
-            },
-            {
-              text: "受累台数",
-              num: 256,
-              color: "write",
-            },
-            {
-              text: "离线台数",
-              num: 256,
-              color: "gray",
-            },
-            {
-              text: "风速",
-              num: 256,
-              color: "gray",
-            },
-            {
-              text: "预测功率",
-              num: 256,
-              color: "gray",
-            },
-            {
-              text: "保证功率",
-              num: 256,
-              color: "gray",
-            },
-            {
-              text: "应发功率",
-              num: 256,
-              color: "gray",
-            },
-            {
-              text: "实际功率",
-              num: 256,
-              color: "gray",
-            },
-            {
-              text: "AGC指令",
-              num: 256,
-              color: "gray",
-            },
-            {
-              text: "出线功率",
-              num: 256,
-              color: "gray",
-            },
-          ],
-          datas: [
-            {
-              tag: "A01",
-              color: "blue",
-            },
-          ],
-        },
-      ],
-      newTables: [
-        {
-          count: 43,
-        },
-        {
-          count: 43 * 3,
-        },
-        {
-          count: 43 * 3,
-        },
-        {
-          count: 43 * 3,
-        },
-        {
-          count: 43 * 2,
-        },
-        {
-          count: 43,
-        },
-        {
-          count: 43 * 3,
-        },
-        {
-          count: 43,
-        },
-        {
-          count: 43,
-        },
-        {
-          count: 43 * 6,
-        },
-      ],
-    };
-  },
-  // 函数
-  methods: {},
-  // 生命周期钩子
-  beforeCreate() {
-    // 创建前
-  },
-  created() {
-    // 创建后
-    let tempData = [];
-    for (let i = 0; i < 200; i++) {
-      tempData.push(util.copy(this.tables[0].datas[0]));
-      if (i % 13 == 0) {
-        tempData[i].color = "green";
-      }
-      if (i % 17 == 0) {
-        tempData[i].color = "pink";
-      }
-      if (i % 23 == 0) {
-        tempData[i].color = "orange";
-      }
-      if (i % 29 == 0) {
-        tempData[i].color = "red";
-      }
-      if (i % 31 == 0) {
-        tempData[i].color = "write";
-      }
-      if (i % 37 == 0) {
-        tempData[i].color = "gray";
-      }
-    }
-    this.tables[0].datas = util.copy(tempData);
-    for (let i = 0; i < 5; i++) {
-      this.tables.push(util.copy(this.tables[0]));
-    }
-
-    this.newTables.forEach((value) => {
-      value.subTitleDatas = util.copy(this.tables[0].subTitleDatas);
-    });
-  },
-  beforeMount() {
-    // 渲染前
-  },
-  mounted() {
-    // 渲染后
-  },
-  beforeUpdate() {
-    // 数据更新前
-  },
-  updated() {
-    // 数据更新后
-  },
-};
-</script>
-
-<style lang="less" scoped>
-@panelHeight: 6.481vh;
-@titleHeight: 25px;
-
-.matrix-detail {
-  .panel-2 {
-    .left-50-16 {
-      width: calc(50% - 8px);
-    }
-  }
-
-  .panel {
-    width: 100%;
-    border: 1px solid @darkgray;
-    position: relative;
-    padding: 8px 16px;
-    background-color: fade(@darkgray, 20%);
-    display: flex;
-
-    .dot {
-      width: 3px;
-      height: 3px;
-      border-radius: 50%;
-      background-color: @write;
-      position: absolute;
-
-      &.left {
-        left: 4px;
-      }
-
-      &.right {
-        right: 4px;
-      }
-
-      &.top {
-        top: 4px;
-      }
-
-      &.bottom {
-        bottom: 4px;
-      }
-    }
-
-    .item {
-      flex: 1;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      flex-direction: column;
-      color: @write;
-      position: relative;
-
-      .loop {
-        position: absolute;
-        width: 42px;
-        height: 42px;
-        border-radius: 50%;
-        border: 1px solid @darkgray;
-        background-color: fade(@darkgray, 20);
-        left: calc(50% - 21px);
-        top: calc(50% - 21px);
-      }
-
-      &.write {
-        color: @write;
-      }
-
-      &.green {
-        color: @green;
-      }
-
-      &.blue {
-        color: @darkBlue;
-      }
-
-      &.pink {
-        color: @pink;
-      }
-
-      &.red {
-        color: @red;
-      }
-
-      &.orange {
-        color: @orange;
-      }
-
-      &.gray {
-        color: @gray;
-      }
-
-      div {
-        &:first-child {
-          font-size: 12px;
-        }
-        &:last-child {
-          font-size: 16px;
-          font-family: "Bicubik";
-        }
-      }
-    }
-
-    .item2 {
-      flex: 1;
-      display: flex;
-      width: 20%;
-      flex-wrap: wrap;
-
-      .name {
-        color: @gray;
-        width: 50%;
-        text-align: center;
-      }
-
-      .num2 {
-        width: 50%;
-        color: @yellow;
-        text-align: left;
-      }
-
-      .num1 {
-        width: 50%;
-        color: @yellow;
-        text-align: center;
-        position: relative;
-
-        &::after {
-          content: "";
-          position: absolute;
-          width: 1.481vh;
-          height: 0.556vh;
-          background-color: @yellow;
-          left: 1.204vh;
-          top: 10px;
-        }
-      }
-
-      .num3 {
-        width: 50%;
-        color: @yellow;
-        text-align: left;
-      }
-    }
-  }
-
-  .panel-box {
-    margin-top: 8px;
-    flex-grow: 1;
-
-    & > div {
-      margin: 4px 0;
-    }
-
-    .panel-title {
-      width: 100%;
-      height: @titleHeight;
-      line-height: @titleHeight;
-      background-color: fade(@darkgray, 40%);
-
-      .panel-title-name {
-        font-size: 12px;
-        color: @green;
-        display: flex;
-        align-items: center;
-        padding: 0 16px;
-
-        i {
-          margin-right: 8px;
-        }
-
-        .sub-title-item {
-          display: flex;
-          flex: 1;
-
-          .sub-title {
-            flex: 0 0 auto;
-            color: @gray;
-            font-size: 12px;
-            margin: 0 8px 0 12px;
-          }
-
-          .sub-count {
-            flex: 1 0 auto;
-            font-size: 14px;
-            font-family: "Bicubik";
-            font-weight: 500;
-
-            &.write {
-              color: @write;
-            }
-
-            &.green {
-              color: @green;
-            }
-
-            &.blue {
-              color: @darkBlue;
-            }
-
-            &.pink {
-              color: @pink;
-            }
-
-            &.red {
-              color: @red;
-            }
-
-            &.orange {
-              color: @orange;
-            }
-
-            &.gray {
-              color: @gray;
-            }
-          }
-        }
-      }
-    }
-
-    .panel-body {
-      height: calc(100% - 7.407vh);
-      padding: 0;
-      //   margin: 4px 0;
-      width: 100%;
-      display: flex;
-      flex-direction: row;
-      flex-wrap: wrap;
-      justify-content: space-between;
-      justify-content: flex-start;
-
-      .blank {
-        margin-right: 3px;
-        flex: 1 0 40px;
-      }
-
-      .card {
-        margin-right: 3px;
-        margin-top: 2px;
-        flex: 1 0 40px;
-      }
-
-      .card {
-        border-radius: 4px;
-        text-align: center;
-        border: 1px solid;
-        font-size: 12px;
-        height: 20px;
-        line-height: 20px;
-
-        &.write {
-          color: @black;
-          border-color: @write;
-          background-color: @write;
-        }
-
-        &.green {
-          color: @green;
-          border-color: @green;
-        }
-
-        &.blue {
-          color: @darkBlue;
-          border-color: @darkBlue;
-        }
-
-        &.pink {
-          color: @pink;
-          border-color: @pink;
-        }
-
-        &.red {
-          color: @write;
-          border-color: @red;
-          background-color: @red;
-        }
-
-        &.orange {
-          color: @orange;
-          border-color: @orange;
-        }
-
-        &.gray {
-          color: @write;
-          border-color: @darkgray;
-          background-color: @darkgray;
-        }
-      }
-    }
-  }
-}
-</style>

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

@@ -1,690 +0,0 @@
-<template>
-  <div class="alarm-center-1">
-    <div class="action-bar">
-      <div class="query mg-b-16">
-        <div class="query-items">
-          <div class="query-item">
-            <div class="lable">风场:</div>
-            <div class="search-input">
-              <el-select
-                v-model="wpvalue"
-                clearable
-                placeholder="请选择"
-                popper-class="select"
-              >
-                <el-option
-                  v-for="item in wpoptions"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-                >
-                </el-option>
-              </el-select>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">开始日期:</div>
-            <div class="search-input">
-              <el-date-picker
-                v-model="startdate"
-                type="date"
-                placeholder="选择日期"
-                popper-class="date-select"
-              >
-              </el-date-picker>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">结束日期:</div>
-            <div class="search-input">
-              <el-date-picker
-                v-model="enddate"
-                type="date"
-                placeholder="选择日期"
-                popper-class="date-select"
-              >
-              </el-date-picker>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">规则:</div>
-            <el-cascader
-              style="width: 240px"
-              size="mini"
-              popper-class="search-select"
-              :options="cascaderOptions"
-              :props="cascaderProps"
-              v-model="cascaderSel"
-              collapse-tags
-              :clearable="true"
-            ></el-cascader>
-          </div>
-        </div>
-        <div class="query-actions">
-          <button class="btn green" @click="searchData">搜索</button>
-          <button class="btn green" @click="searchTree">筛选</button>
-          <button class="btn green" @click="fx">分析</button>
-        </div>
-      </div>
-    </div>
-    <panel-3 class="table-panel">
-      <table-3 :data="tableData" :height="'85vh'">
-        <template v-for="(item, i) in column" :key="i" #[item]="scope">
-          <div class="bar" @click="showChart(scope)">
-            <div
-              class="bar-percent"
-              :style="{ width: scope?.data?.countStyle }"
-            ></div>
-            <span class="value">{{ scope?.data?.count }} 次数</span>
-          </div>
-
-          <div class="bar" @click="showChart(scope)">
-            <div
-              class="bar-percent"
-              :style="{ width: scope?.data?.timeStyle }"
-            ></div>
-            <span class="value">{{ scope?.data?.time }} 分钟</span>
-          </div>
-        </template>
-      </table-3>
-    </panel-3>
-  </div>
-</template>
-
-<script>
-import Panel3 from "../../components/coms/panel/panel3.vue";
-import Table3 from "../../components/coms/table/table3.vue";
-import MultipleYLineChartNormal from "./multiple-y-line-chart-normal.vue";
-import FX from "./alarm-center-yjfx.vue";
-import BASE from "@tools/basicTool.js";
-import apis from "@api/wisdomOverhaul/health/index.js";
-import api from "@api/wisdomOverhaul/reliability/index.js";
-export default {
-  components: {
-    Panel3,
-    Table3,
-    MultipleYLineChartNormal,
-    FX,
-  },
-  data() {
-    return {
-      dialogTitleFX: "",
-      dialogVisibleFX: false,
-      dialogTitle: "",
-      chooseStatus: false,
-      dialogVisible: false,
-      chooseTime: [],
-      wpvalue: "",
-      wpid: "",
-      wtId: "",
-      descName: "",
-      AnalysisName: "",
-      AnalysisUnit: "",
-      Analysis: [
-        {
-          title: "",
-          yAxisIndex: 0, // 使用单位
-          value: [],
-        },
-      ],
-      AnalysisYAxises: [
-        {
-          name: "",
-          min: "",
-          max: "",
-          unit: "",
-          position: "left",
-        },
-        {
-          name: "",
-          min: "",
-          max: "",
-          unit: "",
-          position: "right",
-        },
-      ],
-      selectValue: "60",
-      timeoptions: [
-        {
-          value: "60",
-          label: "一分钟",
-        },
-        {
-          value: "300",
-          label: "五分钟",
-        },
-        {
-          value: "600",
-          label: "十分钟",
-        },
-        {
-          value: "1800",
-          label: "三十分钟",
-        },
-        {
-          value: "3600",
-          label: "一小时",
-        },
-        {
-          value: "86400",
-          label: "一天",
-        },
-      ],
-      wpoptions: "",
-      options: [],
-      cascaderOptions: [],
-      cascaderSel: [],
-      cascaderProps: {
-        multiple: true,
-      },
-      column: [
-        "风机偏航过程震动",
-        "齿轮箱轴承温升超过40度",
-        "三相电流不平衡",
-        "断轴或联轴器打滑",
-        "风速突变",
-      ],
-      columnObj: [
-        {
-          name: "风机编号",
-          field: "name",
-          width: "100px",
-          minWidth: "100px",
-        },
-        {
-          name: "风机偏航过程震动",
-          field: "风机偏航过程震动",
-          align: "left",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        },
-        {
-          name: "齿轮箱轴承温升超过40度",
-          field: "齿轮箱轴承温升超过40度",
-          align: "left",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        },
-        {
-          name: "三相电流不平衡",
-          field: "三相电流不平衡",
-          align: "left",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        },
-        {
-          name: "断轴或联轴器打滑",
-          field: "断轴或联轴器打滑",
-          align: "left",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        },
-        {
-          name: "风速突变",
-          align: "left",
-          field: "风速突变",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        },
-      ],
-      startdate: new Date(
-        new Date(new Date().setDate(new Date().getDate() - 1))
-      ).formatDate("yyyy-MM-dd"),
-      enddate: new Date(new Date()).formatDate("yyyy-MM-dd"),
-      tableData: {
-        column: [
-          {
-            name: "风机编号",
-            field: "name",
-          },
-          {
-            name: "主轴温度温差大于8度",
-            field: "v1",
-            align: "left",
-            slot: true,
-          },
-          {
-            name: "浆叶角过小",
-            field: "v2",
-            align: "left",
-            slot: true,
-          },
-        ],
-        data: [
-          {
-            name: "",
-            v1: {
-              count: 12,
-              time: 0,
-            },
-          },
-        ],
-      },
-    };
-  },
-  created() {
-    this.$nextTick(() => {
-      this.search();
-    });
-  },
-  methods: {
-    //对比
-    showChart(column) {
-      let that = this;
-      that.dialogTitle = column.column.name;
-      that.wtId = column.row.name;
-      that.descName = column.column.name;
-
-      that.requestDetailData(
-        that.wpvalue,
-        that.startdate,
-        that.enddate,
-        60,
-        column.row.name,
-        column.column.name
-      );
-    },
-    requestDetailData(station, startTs, endTs, interval, wtId, name) {
-      // BASE.showLoading();
-      api
-        .analysisDetail({
-          station: station,
-          startTs: new Date(
-            new Date(startTs).formatDate("yyyy/MM/dd")
-          ).getTime(),
-          endTs: new Date(new Date(endTs).formatDate("yyyy/MM/dd")).getTime(),
-          interval: interval,
-          wtId: wtId,
-          name: name,
-        })
-        .then((res) => {
-          if(res.data)
-          if (res.data.length == 1) {
-            this.dialogVisible = true;
-            BASE.closeLoading();
-            let yaxises = [
-              {
-                name: "",
-                min: 0,
-                max: null,
-                unit: "",
-                position: "left",
-              },
-            ];
-            // yaxises.name = res.data[0].name;
-            yaxises.unit = res.data[0].unit;
-            this.AnalysisYAxises = yaxises;
-            let aKey1 = ["doubleValue"];
-            let aList1 = [
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-            ];
-            aKey1.forEach((keyEle, keyIndex) => {
-              aList1[keyIndex].title = res.data[keyIndex].name;
-              res.data[keyIndex].data.forEach((rEle) => {
-                aList1[keyIndex].value.push({
-                  text: new Date(rEle.ts).formatDate("hh:mm"),
-                  value: rEle.doubleValue,
-                });
-              });
-            });
-            this.Analysis = aList1;
-          } else if (res.data.length == 2) {
-            this.dialogVisible = true;
-            BASE.closeLoading();
-            let aKey2 = ["doubleValue", "doubleValue"];
-            let aList2 = [
-              {
-                title: "",
-                //  yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-            ];
-            let yaxises1 = [
-              {
-                name: "",
-                min: 0,
-                max: null,
-                unit: "",
-                position: "left",
-              },
-              {
-                name: "",
-                min: 0,
-                max: null,
-                unit: "",
-                position: "right",
-              },
-            ];
-            yaxises1.forEach((aEle, aIndex) => {
-              res.data.forEach((rEle) => {
-                // aEle.name = rEle.name;
-                aEle.unit = rEle.unit;
-              });
-            });
-            this.AnalysisYAxises = yaxises1;
-            aKey2.forEach((keyEle, keyIndex) => {
-              aList2[keyIndex].title = res.data[keyIndex].name;
-              res.data[keyIndex].data.forEach((rEle) => {
-                aList2[keyIndex].value.push({
-                  text: new Date(rEle.ts).formatDate("hh:mm"),
-                  value: rEle.doubleValue,
-                });
-              });
-            });
-            // res.data.forEach((rEle,rIndex)=>{
-            // })
-            // aKey2.forEach((keyEle, keyIndex) => {
-            //   res.data.forEach((rEle) => {
-            //     // alist2[keyIndex].yAxisIndex = keyIndex;
-            //     aList2[keyIndex].title = res.data[keyIndex].name;
-            //     rEle.data.forEach((tEle,tIndex) => {
-            //       aList2[keyIndex].value.push({
-            //         text: new Date(tEle.ts).formatDate("hh:mm"),
-            //         // value: tEle[keyEle],
-            //         // value:res.data[keyIndex].data[tIndex].doubleValue
-
-            //       });
-            //     });
-            //   });
-            // });
-
-            this.Analysis = aList2;
-          } else if (res.data.length == 4) {
-            this.dialogVisible = true;
-            BASE.closeLoading();
-            let aKey4 = [
-              "doubleValue",
-              "doubleValue",
-              "doubleValue",
-              "doubleValue",
-            ];
-            let aList4 = [
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-            ];
-            let yaxises2 = [
-              {
-                name: "",
-                min: 0,
-                max: null,
-                unit: "",
-                position: "left",
-              },
-              {
-                name: "",
-                min: 0,
-                max: null,
-                unit: "",
-                position: "right",
-              },
-            ];
-            yaxises2.forEach((aEle, aIndex) => {
-              res.data.forEach((rEle) => {
-                // aEle.name = rEle.name;
-                aEle.unit = rEle.unit;
-              });
-            });
-            this.AnalysisYAxises = yaxises2;
-            aKey4.forEach((keyEle, keyIndex) => {
-              aList4[keyIndex].title = res.data[keyIndex].name;
-              res.data[keyIndex].data.forEach((rEle) => {
-                aList4[keyIndex].value.push({
-                  text: new Date(rEle.ts).formatDate("hh:mm"),
-                  value: rEle.doubleValue,
-                });
-              });
-            });
-            this.Analysis = aList4;
-          } else if (res.data.length == 0) {
-            this.dialogVisible = false;
-            BASE.closeLoading();
-            this.BASE.showMsg({
-              type: "warning",
-              msg: "暂无数据",
-            });
-          }
-        });
-    },
-    //切换数据类型
-    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
-      );
-    },
-
-    async search() {
-      const { data } = await apis.powercompareWindfarmAjax();
-      this.wpoptions = data;
-      this.wpvalue = data[0].id;
-      this.searchData();
-    },
-
-    async searchTree() {
-      let arr = [];
-      let columnObj = [
-        {
-          name: "风机编号",
-          field: "name",
-          minWidth: "100px",
-        },
-      ];
-      this.cascaderSel.forEach((e) => {
-        let obj = {
-          name: e[1],
-          field: e[1],
-          align: "left",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        };
-        columnObj.push(obj);
-
-        arr.push(e[1]);
-      });
-      this.columnObj = columnObj;
-      this.column = arr;
-      this.searchData();
-    },
-
-    async searchData() {
-      let enddate = new Date(
-        Date.parse(new Date(this.enddate)) + 24 * 3600 * 1000
-      ).formatDate("yyyy-MM-dd");
-      const { data } = await api.countQuery(true, {
-        stationid: this.wpvalue,
-        startdate: new Date(this.startdate).formatDate("yyyy-MM-dd"),
-        enddate: enddate,
-      });
-      ////////
-      this.tableData = [];
-      const resData = data;
-      // console.log('resData',resData);
-      // const resData =this.resdata;
-      const column = this.columnObj;
-      let dataAll = []; // 总数据集合
-      resData.forEach((e) => {
-        let obj = {
-          name: Object.keys(e)[0],
-        };
-        let wpid = Object.keys(e)[0];
-        this.wpid = wpid;
-
-        e[wpid].forEach((k) => {
-          column.forEach((c) => {
-            if (k.alertText == c.name) {
-              let obj1 = {
-                count: k.count,
-                countStyle: (k.count / (k.count + k.time)) * 100 + "px",
-                time: k.time,
-                timeStyle: (k.time / (k.count + k.time)) * 100 + "px",
-              };
-              obj[k.alertText] = obj1;
-            }
-          });
-        });
-        dataAll.push(obj);
-      });
-
-      this.tableData.column = column;
-      this.tableData.data = dataAll;
-
-      ///////////////////// 获取规则list
-      const map = {};
-      var windNum = [];
-      for (let i in resData) {
-        for (let k in resData[i]) {
-          map[k] = resData[i][k];
-        }
-      }
-      // nmap为新的map 整理数据结构
-      const nmap = {};
-      for (let kv in map) {
-        var nchildMap = {};
-        var childrenMap = map[kv];
-        for (var ckv in childrenMap) {
-          var cckey = childrenMap[ckv].alertText;
-          var ccvalue = childrenMap[ckv];
-          nchildMap[cckey] = ccvalue;
-        }
-        nmap[kv] = nchildMap;
-      }
-      windNum = Object.keys(nmap);
-      var cascaderOptions = [];
-      var root = {}; // 原始根节点
-      var clumnsOnes = nmap[windNum[0]];
-      for (let k in clumnsOnes) {
-        let f = clumnsOnes[k].relatePartsText
-          ? clumnsOnes[k].relatePartsText
-          : "其他";
-        let fvalue = clumnsOnes[k].relateParts ? clumnsOnes[k].relateParts : "";
-
-        if (root[f]) {
-          // 已经存在此子节点
-          if (!root[f].children[k]) {
-            // 不存在子节点
-            root[f].children[k] = {};
-            root[f].children[k].value = root[f].children[k].label = k;
-            root[f].fobj.children.push(root[f].children[k]);
-          }
-        } // 不存在子节点
-        else {
-          root[f] = {};
-          // root[f].value = fvalue;
-          // root[f].label = f;
-          root[f].children = {};
-          root[f].children[k] = {};
-          root[f].children[k].value = root[f].children[k].label = k;
-
-          // 将对象放入 cascaderOptions
-          let childrenArray = [];
-          childrenArray.push(root[f].children[k]);
-          let fobj = {};
-          fobj.value = fvalue;
-          fobj.label = f;
-          fobj.children = childrenArray;
-          cascaderOptions.push(fobj);
-          root[f].fobj = fobj;
-        }
-      }
-      this.cascaderOptions = cascaderOptions;
-    },
-    fx() {
-      this.startdate = new Date(this.startdate).formatDate("yyyy-MM-dd");
-      this.dialogTitleFX = "预警分析";
-      this.dialogVisibleFX = true;
-    },
-  },
-};
-</script>
-
-<style lang="less">
-.alarm-center-1 {
-  .action-bar {
-    display: flex;
-
-    .query {
-      justify-content: flex-start;
-    }
-  }
-
-  .table-panel {
-    width: 100%;
-    background: transparent;
-    padding: 0;
-
-    .bar {
-      display: flex;
-      align-items: center;
-      height: 16px;
-      margin: 8px 0;
-
-      .bar-percent {
-        height: 100%;
-        background: @green;
-        margin-right: 8px;
-      }
-    }
-  }
-
-  .searchForm {
-    display: flex;
-    margin-left: 36px;
-    flex-direction: row-reverse;
-
-    .inputs {
-      width: 15%;
-      margin-right: 18px;
-    }
-  }
-}
-</style>

+ 0 - 271
src/views/NewPages/alarm-center-2.vue

@@ -1,271 +0,0 @@
-<template>
-  <div class="alarm-center-1">
-    <div class="action-bar">
-      <div class="query mg-b-16">
-        <div class="query-items">
-          <div class="query-item">
-            <div class="lable">风场:</div>
-            <div class="search-input">
-              <el-select v-model="wpvalue" clearable placeholder="请选择" popper-class="select">
-                <el-option v-for="item in wpoptions" :key="item.id" :label="item.name" :value="item.id">
-                </el-option>
-              </el-select>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">开始日期:</div>
-            <div class="search-input">
-              <el-date-picker v-model="startdate" type="date" placeholder="选择日期" popper-class="date-select">
-              </el-date-picker>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">结束日期:</div>
-            <div class="search-input">
-              <el-date-picker v-model="enddate" type="date" placeholder="选择日期" popper-class="date-select">
-              </el-date-picker>
-            </div>
-          </div>
-
-        </div>
-        <div class="query-actions">
-          <button class="btn green" @click="searchData">搜索</button>
-          <!-- <button class="btn green">导出</button> -->
-		  <button class="btn green" @click="fx">分析</button>
-        </div>
-      </div>
-    </div>
-    <panel-3 class="table-panel">
-      <table-2 :data="tableData" :height="'88vh'">
-        <template v-for="(item, i) in column" :key="i" #[item]="scope">
-          <div class="bar">
-          	<div class="bar-percent" :style="{ width: scope?.data?.countStyle }"> </div>
-          	<span class="value">{{ scope?.data?.count }} 次数</span>
-          </div>
-          <div class="bar">
-          	<div class="bar-percent" :style="{ width: scope?.data?.timeStyle}"></div>
-          	<span class="value">{{scope?.data?.time }} 分钟</span>
-          </div>
-        </template>
-      </table-2>
-    </panel-3>
-	<el-dialog :title="dialogTitleFX" v-model="dialogVisibleFX" width="70%" top="10vh" custom-class="modal" :close-on-click-modal="false" :destroy-on-close='true'>
-	  <FX :date='startdate' :wpid='wpvalue'/>
-	</el-dialog>
-  </div>
-</template>
-
-<script>
-import Panel3 from "../../components/coms/panel/panel3.vue";
-import Table2 from "../../components/coms/table/table2.vue";
-import FX from "./alarm-center-gzfx.vue";
-import apis from "@api/wisdomOverhaul/health/index.js";
-import api from "@api/wisdomOverhaul/reliability/index.js";
-export default {
-  components: { Panel3, Table2,FX },
-  data () {
-    return {
-		dialogTitleFX: "",
-		dialogVisibleFX: false,
-      wpvalue: "",
-      wpoptions: "",
-      options: [],
-      cascaderOptions: [],
-      cascaderSel: [],
-      column: [
-        "风机偏航过程震动",
-        "齿轮箱轴承温升超过40度",
-        "三相电流不平衡",
-        "断轴或联轴器打滑",
-        "风速突变",
-      ],
-      columnObj: [
-        {
-          name: "风机编号",
-          field: "name",
-        },
-        {
-          name: "风机偏航过程震动",
-          field: "风机偏航过程震动",
-          align: "left",
-          slot: true,
-        },
-        {
-          name: "齿轮箱轴承温升超过40度",
-          field: "齿轮箱轴承温升超过40度",
-          align: "left",
-          slot: true,
-        },
-        {
-          name: "三相电流不平衡",
-          field: "三相电流不平衡",
-          align: "left",
-          slot: true,
-        },
-        {
-          name: "断轴或联轴器打滑",
-          field: "断轴或联轴器打滑",
-          align: "left",
-          slot: true,
-        },
-        {
-          name: "风速突变",
-          align: "left",
-          field: "风速突变",
-          slot: true,
-        },
-      ],
-      startdate: new Date(
-        new Date(new Date().setDate(new Date().getDate() - 1))
-      ).formatDate("yyyy-MM-dd"),
-      enddate: new Date(new Date()).formatDate("yyyy-MM-dd"),
-      tableData: {
-        column: [
-          {
-            name: "风机编号",
-            field: "name",
-          },
-          {
-            name: "主轴温度温差大于8度",
-            field: "v1",
-            align: "left",
-            slot: true,
-          },
-          {
-            name: "浆叶角过小",
-            field: "v2",
-            align: "left",
-            slot: true,
-          },
-        ],
-        data: [
-          {
-            name: "",
-            v1: {
-              count: 12,
-              time: 0,
-            },
-          },
-        ],
-      },
-    };
-  },
-  created () {
-    const myDate = new Date()
-    const year = myDate.getFullYear()
-    const mouth = `0${myDate.getMonth() + 1}`.slice(-2)
-    this.startdate = `${year}-${mouth}-01`
-    this.search();
-    this.searchTree();
-  },
-  methods: {
-    tabSelect (tab) { },
-    async search () {
-
-      apis.powercompareWindfarmAjax({
-      }).then((res) => {
-       
-         this.wpoptions = res.data;
-      this.wpvalue = res.data?.[0]?.id;
-      this.searchData();
-      });
-
-    
-    },
-    async searchTree () {
-      const { data } = await api.treeType()
-      this.cascaderOptions = data;
-      let arr = [];
-      let columnObj = [
-        {
-          name: "风机编号",
-          field: "name",
-        },
-      ];
-      data?.data?.forEach((e) => {
-        let obj = {
-          name: e.name,
-          field: e.name,
-          align: "left",
-          slot: true,
-        };
-        columnObj.push(obj);
-        arr.push(e.name);
-      });
-      this.column = arr;
-      this.columnObj = columnObj;
-    },
-    async searchData () {
-		let enddate = new Date(Date.parse(new Date(this.enddate)) + (24*3600*1000)).formatDate("yyyy-MM-dd");
-      const { data } = await api.shutdownList({
-        stId: this.wpvalue,
-          endDate: new Date(this.startdate).formatDate("yyyy-MM-dd"),
-          startDate: enddate,
-      })
-      ////////
-      const resData = data;
-      // const resData =this.resdata;
-      const column = this.columnObj;
-      let dataAll = []; // 总数据集合
-      resData.forEach((e) => {
-        let obj = {
-          name: Object.keys(e)[0],
-        };
-        let wpid = Object.keys(e)[0];
-        e[wpid].forEach((k) => {
-          column.forEach((c) => {
-            if (k.type == c.name) {
-              let obj1 = {
-                count: k.count,
-                countStyle:((k.count / (k.count + k.time)) * 100) + 'px',
-                time: k.time,
-                timeStyle:((k.time / (k.count + k.time)) * 100) + 'px'
-              };
-              obj[k.type] = obj1;
-            }
-          });
-        });
-        dataAll.push(obj);
-      });
-      this.tableData.column = column;
-      this.tableData.data = dataAll;
-    },
-	fx(){
-		this.startdate=new Date(this.startdate).formatDate("yyyy-MM-dd");
-		this.dialogTitleFX= "预警分析";
-		this.dialogVisibleFX= true;
-	}
-  },
-};
-</script>
-
-<style lang="less">
-.alarm-center-1 {
-  .action-bar {
-    display: flex;
-
-    .query {
-      justify-content: flex-start;
-    }
-  }
-
-  .table-panel {
-    width: 100%;
-    background: transparent;
-    padding: 0;
-
-    .bar {
-      display: flex;
-      align-items: center;
-      height: 16px;
-      margin: 8px 0;
-
-      .bar-percent {
-        height: 100%;
-        background: @green;
-        margin-right: 8px;
-      }
-    }
-  }
-}
-</style>

+ 0 - 162
src/views/NewPages/alarm-center-gzfx.vue

@@ -1,162 +0,0 @@
-<template>
-  <div>
-    <el-row>
-      <el-col :span="24">
-        <panel :title="'日雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-          <div class="wind-info">
-            <dual-pie-chart
-              height="40vh"
-              width="55vh"
-              :innerData="rzdfsData"
-              :outerData="rzdfsData"
-            />
-          </div>
-        </panel>
-      </el-col>
-    </el-row>
-    <el-row>
-      <el-col :span="12">
-        <panel :title="'月雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-          <div class="wind-info">
-            <dual-pie-chart
-              height="32vh"
-              width="55vh"
-              :innerData="yzdfsData"
-              :outerData="yzdfsData"
-            />
-          </div>
-        </panel>
-      </el-col>
-      <el-col :span="12">
-        <panel :title="'年雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-          <div class="wind-info">
-            <dual-pie-chart
-              height="32vh"
-              width="55vh"
-              :innerData="nzdfsData"
-              :outerData="nzdfsData"
-            />
-          </div>
-        </panel>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import panel from "@/components/coms/panel/panel.vue";
-import DualPieChart from "@/components/chart/pie/dual-pie-chart.vue";
-import api from "@api/wisdomOverhaul/reliability/index.js";
-export default {
-  components: {
-    panel,
-    DualPieChart,
-  },
-  props: {
-    date: {
-      type: String,
-      default: "2021-06-06",
-    },
-    wpid: {
-      type: String,
-      default: "GJY_FDC",
-    },
-  },
-  data() {
-    return {
-      rzdfsData: [],
-      yzdfsData: [],
-      nzdfsData: [],
-    };
-  },
-  created() {
-    this.searchData();
-  },
-  methods: {
-    searchData() {
-      api
-        .radarYjfx({
-          stationid: this.wpid,
-          date: this.date,
-        })
-        .then((res) => {
-          let key = [
-            "测风系统",
-            "传动链",
-            "发电机",
-            "变桨系统",
-            "齿轮箱",
-            "液压系统",
-            "偏航系统",
-            "机舱",
-            "其它",
-            "塔底柜",
-          ];
-          let year = Object.values(res.data[0][0]),
-            month = Object.values(res.data[1][0]),
-            day = Object.values(res.data[2][0]);
-          let yearData = [],
-            monthData = [],
-            dayData = [];
-          key.forEach((ele, index) => {
-            yearData.push({
-              name: ele,
-              value: parseFloat(year[index]),
-            });
-            monthData.push({
-              name: ele,
-              value: parseFloat(month[index]),
-            });
-            dayData.push({
-              name: ele,
-              value: parseFloat(day[index]),
-            });
-          });
-          this.nzdfsData = yearData;
-          this.yzdfsData = monthData;
-          this.rzdfsData = dayData;
-        });
-
-      // var that = this;
-      // that.API.requestData({
-      // 	method: "GET",
-      // 	subUrl: "radar/yjfx",
-      // 	showLoading:true,
-      // 	data:{
-      // 		stationid:that.wpid,
-      // 		date:that.date
-      // 	},
-      // 	success(res) {
-      // 		let key = ['测风系统','传动链','发电机','变桨系统','齿轮箱','液压系统','偏航系统','机舱','其它','塔底柜'];
-      // 		let year = Object.values(res.data[0][0]),
-      // 			month = Object.values(res.data[1][0]),
-      // 			day = Object.values(res.data[2][0]);
-      // 		let yearData = [],
-      // 			monthData = [],
-      // 			dayData = [];
-      // 		key.forEach((ele,index)=>{
-      // 			yearData.push({
-      // 			  name: ele,
-      // 			  value: parseFloat(year[index])
-      // 			})
-      // 			monthData.push({
-      // 			  name: ele,
-      // 			  value: parseFloat(month[index])
-      // 			})
-      // 			dayData.push({
-      // 			  name: ele,
-      // 			  value: parseFloat(day[index])
-      // 			})
-      // 		})
-      // 		that.nzdfsData = yearData;
-      // 		that.yzdfsData = monthData;
-      // 		that.rzdfsData = dayData;
-      // 	},
-      // });
-    },
-  },
-};
-</script>
-
-<style>
-</style>

+ 0 - 181
src/views/NewPages/alarm-center-yjfx.vue

@@ -1,181 +0,0 @@
-<template>
-  <div>
-    <el-row>
-      <el-col :span="24">
-        <panel :title="'日雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-          <div class="wind-info">
-            <dual-pie-chart
-              height="40vh"
-              width="55vh"
-              :innerData="rzdfsData"
-              :outerData="rzdfsData"
-            />
-          </div>
-        </panel>
-      </el-col>
-    </el-row>
-    <el-row>
-      <el-col :span="12">
-        <panel :title="'月雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-          <div class="wind-info">
-            <dual-pie-chart
-              height="30vh"
-              width="55vh"
-              :innerData="yzdfsData"
-              :outerData="yzdfsData"
-            />
-          </div>
-        </panel>
-      </el-col>
-      <el-col :span="12">
-        <panel :title="'年雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-          <div class="wind-info">
-            <dual-pie-chart
-              height="30vh"
-              width="55vh"
-              :innerData="nzdfsData"
-              :outerData="nzdfsData"
-            />
-          </div>
-        </panel>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import panel from "@/components/coms/panel/panel.vue";
-import DualPieChart from "@/components/chart/pie/dual-pie-chart.vue";
-import api from "@api/wisdomOverhaul/reliability/index.js";
-export default {
-  components: {
-    panel,
-    DualPieChart,
-  },
-  props: {
-    date: {
-      type: String,
-      default: "2021-06-06",
-    },
-    wpid: {
-      type: String,
-      default: "GJY_FDC",
-    },
-  },
-  data() {
-    return {
-      rzdfsData: [],
-      yzdfsData: [],
-      nzdfsData: [],
-    };
-  },
-  created() {
-    this.searchData();
-  },
-  methods: {
-    searchData() {
-
-
-      api
-        .radarGzfx({
-         stId: this.wpid,
-          Date: this.date,
-        })
-        .then((res) => {
-             let key = [
-            "变桨",
-            "变频器",
-            "齿轮箱",
-            "发电机",
-            "风机其它",
-            "滑环",
-            "机舱加热",
-            "控制",
-            "冷却",
-            "偏航",
-            "液压",
-            "主轴",
-          ];
-          let year = Object.values(res.data[0][0]),
-            month = Object.values(res.data[1][0]),
-            day = Object.values(res.data[2][0]);
-          let yearData = [],
-            monthData = [],
-            dayData = [];
-          key.forEach((ele, index) => {
-            yearData.push({
-              name: ele,
-              value: parseFloat(year[index]),
-            });
-            monthData.push({
-              name: ele,
-              value: parseFloat(month[index]),
-            });
-            dayData.push({
-              name: ele,
-              value: parseFloat(day[index]),
-            });
-          });
-          this.nzdfsData = yearData;
-          this.yzdfsData = monthData;
-          this.rzdfsData = dayData;
-        });
-
-
-
-    //   var that = this;
-    //   that.API.requestData({
-    //     method: "GET",
-    //     subUrl: "radar/gzfx",
-    //     showLoading: true,
-    //     data: {
-    //       stId: that.wpid,
-    //       Date: that.date,
-    //     },
-    //     success(res) {
-    //       let key = [
-    //         "变桨",
-    //         "变频器",
-    //         "齿轮箱",
-    //         "发电机",
-    //         "风机其它",
-    //         "滑环",
-    //         "机舱加热",
-    //         "控制",
-    //         "冷却",
-    //         "偏航",
-    //         "液压",
-    //         "主轴",
-    //       ];
-    //       let year = Object.values(res.data[0][0]),
-    //         month = Object.values(res.data[1][0]),
-    //         day = Object.values(res.data[2][0]);
-    //       let yearData = [],
-    //         monthData = [],
-    //         dayData = [];
-    //       key.forEach((ele, index) => {
-    //         yearData.push({
-    //           name: ele,
-    //           value: parseFloat(year[index]),
-    //         });
-    //         monthData.push({
-    //           name: ele,
-    //           value: parseFloat(month[index]),
-    //         });
-    //         dayData.push({
-    //           name: ele,
-    //           value: parseFloat(day[index]),
-    //         });
-    //       });
-    //       that.nzdfsData = yearData;
-    //       that.yzdfsData = monthData;
-    //       that.rzdfsData = dayData;
-    //     },
-    //   });
-    },
-  },
-};
-</script>
-
-<style>
-</style>

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

@@ -1,268 +0,0 @@
-<template>
-  <div class="alarm-center">
-    <div class="action-bar">
-      <div class="selections mg-b-16">
-        <div v-for="(tabItem, tabIndex) in tabLists" :key="tabItem.type" class="item" :class="{ active: tabIndex == cureent }" @click="tabSelect(tabItem.type, tabIndex)">
-          {{ tabItem.name }}
-        </div>
-        <!-- <div class="item" @click="tabSelect(0)" :class="{ active: tabIndex == 0 }">发电机</div>
-        <div class="item" @click="tabSelect(1)" :class="{ active: tabIndex == 1 }">齿轮箱</div>
-        <div class="item" @click="tabSelect(2)" :class="{ active: tabIndex == 2 }">变桨系统</div>
-        <div class="item" @click="tabSelect(3)" :class="{ active: tabIndex == 3 }">液压站</div>
-        <div class="item" @click="tabSelect(3)" :class="{ active: tabIndex == 4 }">风机震动</div>
-        <div class="item" @click="tabSelect(3)" :class="{ active: tabIndex == 5 }">其他参数</div> -->
-      </div>
-      <div class="query mg-b-16">
-        <div class="query-items">
-          <div class="query-item">
-            <div class="lable">风场:</div>
-            <div class="search-input">
-              <el-select v-model="optSelectValue" clearable placeholder="请选择" popper-class="select" @change="handelSelectChange">
-                <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"> </el-option>
-              </el-select>
-            </div>
-          </div>
-        </div>
-        <div class="query-actions">
-          <button class="btn green" @click="handelSelectChange">搜索</button>
-        </div>
-      </div>
-    </div>
-    <el-scrollbar>
-      <div class="fj">
-        <div class="fj-item" v-for="(item, index) in tableLists" :key="index">
-          <div class="fj-title">风机编号:{{ item[0].wtId }}</div>
-          <div class="fj-info">
-            <Table :data="handleTable(item)"></Table>
-          </div>
-        </div>
-      </div>
-      <!-- <div class="fj">
-        <div class="fj-item" v-for="index in 25" :key="index">
-          <div class="fj-title">风机编号:000</div>
-          <div class="fj-info">
-            <Table :data="tableData"></Table>
-          </div>
-        </div>
-      </div> -->
-    </el-scrollbar>
-  </div>
-</template>
-
-<script>
-import Table from "../../components/coms/table/table.vue";
-export default {
-  components: { Table },
-  data() {
-    return {
-      cureent: 0,
-      optSelectValue: "",
-      tabLists: [
-        {
-          type: "fdj",
-          name: "发电机",
-        },
-        {
-          type: "clx",
-          name: "齿轮箱",
-        },
-        {
-          type: "bj",
-          name: "变桨系统",
-        },
-        {
-          type: "yyz",
-          name: "液压站",
-        },
-        {
-          type: "zd",
-          name: "风机震动",
-        },
-        {
-          type: "qt",
-          name: "其他参数",
-        },
-      ],
-      // tableData: {
-      //   column: [
-      //     {
-      //       name: "",
-      //       field: "name",
-      //       is_num: false,
-      //       is_light: false,
-      //     },
-      //     {
-      //       name: "",
-      //       field: "value",
-      //       is_num: false,
-      //       is_light: false,
-      //     },
-      //   ],
-      //   data: [
-      //     // {
-      //     //   name: "发电机绕组U1温度",
-      //     //   desc: "1234.56",
-      //     // },
-      //   ],
-      // },
-      tableLists: [],
-      options: [],
-      type: "",
-      timmer: null, // 遮罩开关
-    };
-  },
-  methods: {
-    tabSelect(type, index) {
-      this.cureent = index;
-      this.type = type;
-      this.getList(true);
-    },
-    handleTable(item) {
-      let tableData = {
-        column: [
-          {
-            name: "",
-            field: "name",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "",
-            field: "value",
-            is_num: false,
-            is_light: false,
-          },
-        ],
-        data: item,
-      };
-      return tableData;
-    },
-    handelSelectChange() {
-      this.getList(true);
-    },
-    getList(showLoading) {
-      let _this = this;
-      _this.API.requestData({
-        showLoading,
-        method: "POST",
-        subUrl: "/temperature/getTemperatureList",
-        data: {
-          type: this.type,
-          wpId: this.optSelectValue,
-        },
-        success(res) {
-          _this.tableLists = res.data;
-          // this.tableData.data = res.data
-          // debugger
-          console.log(res);
-        },
-      });
-    },
-
-    getSelectLists(showLoading) {
-      let _this = this;
-      _this.API.requestData({
-        showLoading,
-        method: "GET",
-        subUrl: "/powercompare/windfarmAjax",
-        success(res) {
-          _this.options = res.data;
-          _this.optSelectValue = res.data[0].id;
-          _this.$nextTick(() => {
-            _this.getList(false);
-            _this.timmer = setInterval(() => {
-              _this.getList(false);
-            }, _this.$store.state.websocketTimeSec);
-          });
-        },
-      });
-    },
-  },
-  created() {
-    // for (let i = 1; i < 7; i++) {
-    //   this.tableData.data.push(JSON.parse(JSON.stringify(this.tableData.data[0])));
-    // }
-    this.type = this.tabLists[0].type;
-    this.getSelectLists(false);
-
-    // this.getList()
-  },
-
-  unmounted() {
-    clearInterval(this.timmer);
-    this.timmer = null;
-  },
-};
-</script>
-
-<style lang="less">
-.alarm-center {
-  .action-bar {
-    display: flex;
-
-    .selections {
-      flex: 1 0 auto;
-      display: flex;
-
-      .item {
-        flex: 0 0 164px;
-        text-align: center;
-        height: 33px;
-        line-height: 33px;
-        margin-right: 8px;
-        color: @font-color;
-        font-size: @fontsize-s;
-        background: fade(@gray, 20);
-        border: 1px solid fade(@gray, 20);
-
-        &:hover,
-        &.active {
-          background: fade(@green, 20);
-          border: 1px solid @green;
-          color: @green;
-          cursor: pointer;
-        }
-      }
-    }
-
-    .query {
-      flex: 1 0 0;
-      justify-content: left;
-    }
-  }
-
-  .fj {
-    display: flex;
-    flex-wrap: wrap;
-    width: 100%;
-    height: calc(100vh - 126px);
-
-    .fj-item {
-      flex: 0 0 calc(100% / 5 - 8px);
-      outline: 1px solid fade(@gray, 50);
-      margin-top: 8px;
-
-      .fj-title {
-        text-align: center;
-        height: 30px;
-        line-height: 30px;
-        background: fade(@gray, 30);
-        font-size: 12px;
-        color: @gray-l;
-      }
-
-      thead {
-        display: none;
-      }
-
-      & + .fj-item {
-        margin-left: 8px;
-      }
-
-      &:nth-child(5n + 1) {
-        margin-left: 0px;
-      }
-    }
-  }
-}
-</style>

+ 0 - 499
src/views/NewPages/area-line-chart.vue

@@ -1,499 +0,0 @@
-<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: "日发电量",
-          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: "上网电量",
-          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: () => ["健康趋势", "风机健康状态数量"],
-      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;
-    },
-    areaChartData() {
-      let data = [];
-      for (var i = 0; i < this.areaData.length; i++) {
-        let item = this.areaData[i];
-        var color = item.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",
-            name: this.units[2],
-            axisLabel: {
-              color: partten.getColor("gray"),
-            },
-            // axisLine: {
-            //   show: false,
-            // },
-            axisLine: {
-              type: "dashed",
-              lineStyle: {
-                color: partten.getColor("gray"),
-              },
-              width: 5,
-            },
-            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: [
-          {
-            type: "value",
-          },
-          {
-            type: "value",
-            name: this.units[0],
-            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,
-              },
-            },
-          },
-          {
-            data: [this.areaData[0].name],
-            axisLabel: { show: false },
-          },
-          {
-            name: "风速",
-            type: "value",
-            min: 0,
-            max: 30,
-          },
-        ],
-        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: 1,
-          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>

+ 0 - 304
src/views/NewPages/arrow-line-chart.vue

@@ -1,304 +0,0 @@
-<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: "normal-line-chart",
-  componentName: "normal-line-chart",
-  props: {
-    width: {
-      type: String,
-      default: "100%",
-    },
-    height: {
-      type: String,
-      default: "13.889vh",
-    },
-    // 数据
-    list: {
-      type: Array,
-      default: () => [
-        {
-          title: "日发电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              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,
-            },
-          ],
-        },
-        {
-          title: "上网电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "2",
-              value: 2,
-            },
-            {
-              text: "3",
-              value: 1,
-            },
-            {
-              text: "4",
-              value: 3,
-            },
-            {
-              text: "5",
-              value: 2,
-            },
-            {
-              text: "6",
-              value: 2,
-            },
-            {
-              text: "7",
-              value: 2,
-            },
-          ],
-        },
-      ],
-    },
-    // 单位
-    units: {
-      type: Array,
-      default: () => ["(MW)"],
-    },
-    showLegend: {
-      type: Boolean,
-      default: true,
-    },
-  },
-  data() {
-    return {
-      id: "",
-      chart: null,
-      color: ["#05bb4c", "#4b55ae", "#fa8c16", "#f8de5b"],
-    };
-  },
-  computed: {
-    legend() {
-      return this.list.map((t) => {
-        return t.title;
-      });
-    },
-    xdata() {
-      return this.list[0].value.map((t) => {
-        return t.text;
-      });
-    },
-    yAxis() {
-      let result = [];
-      this.units.forEach((value, index) => {
-        result.push({
-          type: "value",
-          name: value,
-          axisLabel: {
-            formatter: "{value}",
-            fontSize: util.vh(14),
-          },
-          //分格线
-          splitLine: {
-            lineStyle: {
-              color: partten.getColor("gray") + 55,
-              type: "dashed",
-            },
-          },
-        });
-      });
-
-      return result;
-    },
-    series() {
-      let result = [];
-
-      this.list.forEach((value, index) => {
-        var data = value.value.map((t) => {
-          return t.value;
-        });
-        const lastvalue = data[data.length - 1];
-        data[data.length - 1] = {
-          symbol: "arrow",
-          symbolSize: 12,
-          symbolRotate: -90,
-          value: lastvalue,
-        };
-
-        result.push({
-          name: value.title,
-          type: "line",
-          smooth: true,
-          zlevel: index,
-          lineStyle: {
-            normal: {
-              color: this.color[index],
-              width: 1,
-            },
-          },
-          yAxisIndex: value.yAxisIndex,
-          data: data,
-        });
-      });
-
-      return result;
-    },
-  },
-  methods: {
-    initChart() {
-      const chart = echarts.init(this.$el);
-
-      let option = {
-        color: this.color,
-        tooltip: {
-          trigger: "axis",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
-          textStyle: {
-            color: "#fff",
-            fontSize: util.vh(16),
-          },
-        },
-        legend: {
-          show: this.showLegend,
-          data: this.legend,
-          right: 90,
-          icon: "circle",
-          itemWidth: 6,
-          inactiveColor: partten.getColor("gray"),
-          textStyle: {
-            color: partten.getColor("grayl"),
-            fontSize: 12,
-          },
-        },
-        grid: {
-          top: util.vh(30),
-          left: util.vh(42),
-          right: util.vh(40),
-          bottom: util.vh(24),
-        },
-        xAxis: [
-          {
-            type: "category",
-            boundaryGap: false,
-            axisLabel: {
-              formatter: "{value}",
-              fontSize: util.vh(14),
-              textStyle: {
-                color: partten.getColor("gray"),
-              },
-            },
-            data: this.xdata,
-          },
-        ],
-        yAxis: this.yAxis,
-        series: this.series,
-      };
-
-      chart.clear();
-      chart.setOption(option);
-
-      this.resize = function() {
-        chart.resize();
-      };
-
-      window.addEventListener("resize", this.resize);
-    },
-  },
-  created() {
-    this.id = "pie-chart-" + util.newGUID();
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.$el.style.width = this.width;
-      this.$el.style.height = this.height;
-      this.initChart();
-    });
-  },
-  updated() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-  unmounted() {
-    window.removeEventListener("resize", this.resize);
-  },
-};
-</script>
-
-<style lang="less">
-.chart {
-  width: 100%;
-  height: 100%;
-  display: inline-block;
-}
-</style>

+ 0 - 199
src/views/NewPages/daily.vue

@@ -1,199 +0,0 @@
-<template>
-  <div class="daily">
-    <h1 class="tit">山西晋能新能源日报</h1>
-    <div class="daily-table">
-      <el-table :data="tableData" :row-class-name="tableRowClassName">
-        <el-table-column
-          prop="foreignkeyname"
-          align="center"
-          label="风场名称"
-          width="100"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="speed"
-          align="center"
-          label="平均风速(m/s)"
-          width="91"
-        >
-        </el-table-column>
-        <el-table-column prop="rfdl" align="center" label="日发电量(万KWh)">
-        </el-table-column>
-        <el-table-column
-          prop="yljfdl"
-          align="center"
-          label="月累计发电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="nljfdl"
-          align="center"
-          label="年累计发电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column prop="rswdl" align="center" label="日上网电量(万KWh)">
-        </el-table-column>
-        <el-table-column
-          prop="yljswdl"
-          align="center"
-          label="月上累计网电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="nljswdl"
-          align="center"
-          label="年上累计网电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="zhcydl"
-          align="center"
-          label="综合厂用电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="yljzhcydl"
-          align="center"
-          label="月累计综合厂用电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="scadarfdl"
-          align="center"
-          label="SCADA日发电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="scadayljfdl"
-          align="center"
-          label="SCADA月累计发电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="scadanljfdl"
-          align="center"
-          label="SCADA年累计发电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="scadazhcydl"
-          align="center"
-          label="SCADA综合厂用电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="scadayljzhcydl"
-          align="center"
-          label="SCADA月累计综合厂用电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="scadazhcydl"
-          align="center"
-          label="SCADA综合厂用电率(%)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="rxdssdl"
-          align="center"
-          label="日限电损失电量(KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="yljxdssdl"
-          align="center"
-          label="月累计限电损失电量(万KWh)"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="nljxdssdl"
-          align="center"
-          label="年累计限电损失电量(万KWh)"
-        >
-        </el-table-column>
-      </el-table>
-    </div>
-  </div>
-</template>
-
-<script>
-import api from "@api/economic/index.js";
-import { number } from "echarts";
-export default {
-  data() {
-    return {
-      dateArea: [
-        this.fmtDate(
-          new Date(
-            new Date().setTime(new Date().getTime() - 60 * 60 * 24 * 1000)
-          )
-        ),
-      ],
-      tableData: [],
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    tableRowClassName({ row, rowIndex }) {
-      if (row.isWind == 1) {
-        return "warning-row";
-      }
-      return "";
-    },
-    getList: function () {
-      api
-        .energyDaily({
-          theday: this.dateArea[0],
-        })
-        .then((res) => {
-          let newArr = [];
-          for (let key in res.data) {
-            newArr.push(...res.data[key]);
-          }
-          for (let i = 0; i < newArr.length; i++) {
-            if (newArr[i].isWind != "0") {
-              newArr[i].foreignkeyname = newArr[i].foreignkeyname + "(合计)";
-            }
-            for (let key in newArr[i]) {
-              if (typeof newArr[i][key] == "number") {
-                newArr[i][key] = newArr[i][key].toFixed(2);
-              }
-            }
-          }
-          this.tableData = newArr;
-        });
-    },
-    // 格式化日期
-    fmtDate(date) {
-      let curDate = date || new Date();
-      let year = curDate.getFullYear();
-      let mouth = curDate.getUTCMonth() + 1;
-      let day = curDate.getDate();
-      return (
-        year +
-        "-" +
-        (mouth < 10 ? "0" + mouth : mouth) +
-        "-" +
-        (day < 10 ? "0" + day : day)
-      );
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.daily {
-  .tit {
-    text-align: center;
-    color: rgb(131, 121, 121);
-  }
-  .daily-table {
-    margin: 20px 20px 0 20px;
-  }
-  .active {
-    background-color: beige;
-  }
-}
-</style>

+ 0 - 315
src/views/NewPages/dialogs.vue

@@ -1,315 +0,0 @@
-<template>
-  <div class="dialog">
-    <div>
-      <button class="btn" @click="dialogVisible = true">日信息对比</button>
-      <button class="btn" @click="dialog2Visible = true">消缺跟踪弹窗</button>
-      <button class="btn" @click="dialog3Visible = true">指标排行弹窗</button>
-      <button class="btn" @click="dialog4Visible = true">故障诊断弹窗</button>
-      <button class="btn" @click="showDet">消缺跟踪</button>
-      <el-dialog title="日信息对比" v-model="dialogVisible" width="70%" top="10vh" custom-class="modal" :close-on-click-modal="false">
-        <dayinfo />
-      </el-dialog>
-      <el-dialog title="消缺跟踪" v-model="dialog2Visible" width="1400px" top="10vh" custom-class="modal" :close-on-click-modal="false">
-        <Track />
-      </el-dialog>
-      <el-dialog title="风功率曲线" v-model="dialog3Visible" width="1400px" top="10vh" custom-class="modal" :close-on-click-modal="false">
-        <ranking-pop />
-      </el-dialog>
-      <el-dialog title="故障诊断" v-model="dialog4Visible" width="1400px" top="10vh" custom-class="modal hide-header" :close-on-click-modal="false">
-        <fault-diagnosis />
-      </el-dialog>
-
-      <defect-elimination-tracking ref="det" :show="showDefectEliminationTracking"></defect-elimination-tracking>
-    </div>
-  </div>
-</template>
-
-<script>
-import Dayinfo from "../HealthControl/dayinfo.vue";
-import DefectEliminationTracking from "../HealthControl/defect-elimination-tracking.vue";
-import FaultDiagnosis from "../malfunctionRecall/components/fault-diagnosis.vue";
-import RankingPop from "../HealthControl/ranking-pop.vue";
-import Track from "../HealthControl/track.vue";
-export default {
-  setup() {},
-  components: {
-    Dayinfo,
-    RankingPop,
-    FaultDiagnosis,
-    Track,
-    DefectEliminationTracking,
-  },
-  data() {
-    return {
-      tabIndex: 0,
-      dialogVisible: false,
-      dialog2Visible: false,
-      dialog3Visible: false,
-      dialog4Visible: false,
-      showDefectEliminationTracking: false,
-    };
-  },
-  methods: {
-    showDet() {
-      this.$refs.det.show();
-    },
-    tabSelect(state) {
-      this.tabIndex = state;
-    },
-    showMessage() {
-      this.$alert("这是一段内容", "标题名称", {
-        confirmButtonText: "确定",
-        callback: (action) => {
-          this.$message({
-            type: "info",
-            message: `action: ${action}`,
-          });
-
-          // this.$message({
-          //   type: "warning",
-          //   message: `action: ${action}`,
-          // });
-
-          // this.$message({
-          //   type: "success",
-          //   message: `action: ${action}`,
-          // });
-
-          // this.$message({
-          //   type: "error",
-          //   message: `action: ${action}`,
-          // });
-        },
-      });
-    },
-    showComfirm() {
-      this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-        center: true,
-      })
-        .then(() => {
-          this.$message({
-            type: "success",
-            message: "删除成功!",
-          });
-        })
-        .catch(() => {
-          this.$message({
-            type: "info",
-            message: "已取消删除",
-          });
-        });
-    },
-  },
-};
-</script>
-
-<style lang="less">
-.health-1 {
-  .selections {
-    display: flex;
-
-    .item {
-      flex: 0 0 128px;
-      text-align: center;
-      height: 33px;
-      line-height: 33px;
-      margin-right: 8px;
-      color: @font-color;
-      font-size: @fontsize-s;
-      background: fade(@gray, 20);
-      border: 1px solid fade(@gray, 20);
-
-      &:hover,
-      &.active {
-        background: fade(@green, 20);
-        border: 1px solid @green;
-        color: @green;
-        cursor: pointer;
-      }
-    }
-  }
-
-  .power-info {
-    display: flex;
-
-    .info-tab {
-      flex: 0 0 156px;
-      display: flex;
-      flex-direction: column;
-      height: 350px;
-      margin-right: 1.4815vh;
-
-      .tab {
-        position: relative;
-        flex: 0 0 auto;
-        text-align: center;
-        height: 33px;
-        line-height: 33px;
-        margin-right: 8px;
-        color: @gray-l;
-        font-size: 12px;
-        background: fade(@gray, 20);
-        border: 1px solid fade(@gray, 20);
-
-        display: flex;
-        align-items: center;
-
-        i {
-          margin: 0 1.4815vh;
-
-          svg use {
-            fill: @gray-l;
-          }
-        }
-
-        &:hover,
-        &.active {
-          background: fade(@green, 20);
-          border: 1px solid @green;
-          color: @green;
-          cursor: pointer;
-
-          i svg use {
-            fill: @green;
-          }
-        }
-
-        &.active::after {
-          box-sizing: content-box;
-          width: 0px;
-          height: 0px;
-          position: absolute;
-          right: -19px;
-          padding: 0;
-          border-bottom: 9px solid @green;
-          border-top: 9px solid transparent;
-          border-left: 9px solid transparent;
-          border-right: 9px solid transparent;
-          display: block;
-          content: "";
-          z-index: 10;
-          transform: rotate(90deg);
-        }
-
-        &.active::before {
-          box-sizing: content-box;
-          width: 0px;
-          height: 0px;
-          position: absolute;
-          right: -17px;
-          padding: 0;
-          border-bottom: 9px solid #063319;
-          border-top: 9px solid transparent;
-          border-left: 9px solid transparent;
-          border-right: 9px solid transparent;
-          display: block;
-          content: "";
-          z-index: 12;
-          transform: rotate(90deg);
-        }
-
-        & + .tab {
-          margin-top: 0.7407vh;
-        }
-
-        &:last-child {
-          text-align: center;
-          justify-content: center;
-        }
-      }
-
-      .empty {
-        flex: 1 0 auto;
-      }
-    }
-
-    .info-chart {
-      flex: 1 0 auto;
-    }
-  }
-
-  .health-report {
-    // 健康报告 按钮样式
-    .actions {
-      display: flex;
-
-      .item {
-        flex: 0 0 102px;
-        text-align: center;
-        line-height: 33px;
-        margin-right: 8px;
-        color: fade(@white, 75);
-        font-size: @fontsize-s;
-
-        &.green {
-          background: @green;
-        }
-
-        &.purple {
-          background: @purple;
-        }
-
-        &.gray {
-          background: @gray;
-        }
-      }
-    }
-
-    .report-items {
-      display: flex;
-      flex-wrap: wrap;
-      height: calc(100vh - 592px);
-
-      .item {
-        flex: 0 0 calc(100% / 6 - 16px);
-        margin-bottom: 16px;
-
-        & + .item {
-          margin-left: 16px;
-        }
-
-        &:nth-child(6n + 1) {
-          margin-left: 0px;
-        }
-
-        .title {
-          background: fade(@gray, 40);
-          // color: fade(@white, 75);
-          color: @gray-l;
-          line-height: 37px;
-          padding-left: 16px;
-          font-size: @fontsize-s;
-        }
-
-        .info {
-          background: fade(@gray, 20);
-          padding: 16px;
-          font-size: @fontsize-s;
-          color: @font-color;
-          line-height: 1.5;
-
-          p {
-            margin: 0;
-            line-height: 2;
-          }
-
-          .actions {
-            display: flex;
-            align-items: center;
-            justify-content: center;
-
-            .success {
-              border-color: #05bb4c;
-              color: #05bb4c;
-              background: rgba(5, 187, 76, 0.2);
-            }
-          }
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 113
src/views/NewPages/dj.vue

@@ -1,113 +0,0 @@
-<template>
-  <div class="dj">
-    <el-row>
-      <el-col :span="12">
-        <el-row>
-          <el-col :span="24">
-            <div class="query mg-b-8">
-              <div class="query-items">
-                <div class="query-item selections">
-                  <button class="btn" type="button">风场功率风速排布图</button>
-                  <button class="btn" type="button">
-                    项目功率风速排布图
-                  </button>
-                  <button class="btn" type="button">
-                    线路功率风速排布图
-                  </button>
-                </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 options"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value"
-                      >
-                      </el-option>
-                    </el-select>
-                  </div>
-                </div>
-                <div class="query-item">
-                  <div class="lable">日期:</div>
-                  <div class="search-input">
-                    <el-date-picker
-                      v-model="value4"
-                      type="date"
-                      placeholder="选择日期"
-                      popper-class="date-select"
-                    >
-                    </el-date-picker>
-                  </div>
-                </div>
-                <div class="query-item selections">
-                  <button class="btn active" type="button">搜索</button>
-                </div>
-              </div>
-            </div>
-          </el-col>
-        </el-row>
-      </el-col>
-    </el-row>
-    <div class="mg-b-16 arrow-chart">
-      <panel :title="'场站风向24小时走向情况'" :showLine="true">
-        <multi-arrow-line-chart :height="'41.296vh'" />
-      </panel>
-    </div>
-  </div>
-</template>
-
-<script>
-import Panel from "../../components/coms/panel/panel.vue";
-import multiArrowLineChart from "../../components/chart/line/multi-arrow-line-chart.vue";
-
-export default {
-  setup() {},
-  components: {
-    Panel,
-    multiArrowLineChart,
-  },
-  data() {
-    return {
-      options: [
-        {
-          value: "选项1",
-          label: "黄金糕",
-        },
-        {
-          value: "选项2",
-          label: "双皮奶",
-        },
-        {
-          value: "选项3",
-          label: "蚵仔煎",
-        },
-        {
-          value: "选项4",
-          label: "龙须面",
-        },
-        {
-          value: "选项5",
-          label: "北京烤鸭",
-        },
-      ],
-    };
-  },
-  created() {},
-};
-</script>
-
-<style lang="less">
-.dj {
-  font-size: 12px;
-  .arrow-chart {
-    margin-top: 20px;
-  }
-}
-</style>

File diff suppressed because it is too large
+ 0 - 1763
src/views/NewPages/dj1.vue


+ 0 - 158
src/views/NewPages/dj2.vue

@@ -1,158 +0,0 @@
-<template>
-  <div class="dj">
-    <el-row>
-      <el-col :span="12">
-        <el-row>
-          <el-col :span="24">
-            <div class="query mg-b-8">
-              <div class="query-items">
-                <div class="query-item selections">
-                  <button class="btn" type="button">风向走势图</button>
-                 <!-- <button class="btn" type="button">
-                    风资源玫瑰图
-                  </button> -->
-                </div>
-                <div class="query-item">
-                  <div class="lable">场站:</div>
-                  <div class="search-input">
-                    <el-select v-model="wpId" clearable placeholder="请选择" popper-class="select">
-                      <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
-                    </el-select>
-                  </div>
-                </div>
-              <div class="query-item">
-                        <div class="lable">日期:</div>
-                        <div class="search-input">
-                          <el-date-picker v-model="recorddate" type="date" value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
-                          </el-date-picker>
-                        </div>
-                      </div>
-                <div class="query-item selections">
-                  <button class="btn active" type="button">搜索</button>
-                </div>
-              </div>
-            </div>
-          </el-col>
-        </el-row>
-      </el-col>
-    </el-row>
-    <div class="mg-b-16 arrow-chart">
-      <panel :title="'场站风向24小时走向情况'" :showLine="true" >
-        <arrow-dash-line-chart :height="'41.296vh'" />
-      </panel>
-    </div>
-  </div>
-</template>
-
-<script>
-import Panel from "../../components/coms/panel/panel.vue";
-import arrowDashLineChart from "../../components/chart/line/arrow-dash-line-chart.vue";
-
-export default {
-  setup() {},
-  components: {
-    Panel,
-    arrowDashLineChart,
-  },
-  data() {
-    return {
-      wpArray: [],
-      wtArray: [],
-      recorddate: new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
-      wpId: "",
-      wtId: "",
-      chartData: [{
-        title: "",
-        yAxisIndex: 0,
-        value: []
-      }],
-      chartUnit: ["(m/s)"]
-    };
-  },
-
-    // 函数
-  methods: {
-    // 请求服务
-    requestData () {
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        subUrl: "powercompare/windfarmAjax",
-        success (res) {
-          that.wpArray = res.data;
-          that.wpId = res.data[0].id;
-
-        }
-      });
-    }, // 获取图表数据
-    getChartData () {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "winddirection/getWinddirection",
-        data: {
-          wtId: that.wpId
-        },
-        success (res) {
-
-          const keyArray = [{
-            key: "value1",
-            title: "风速"
-          }, {
-            key: "value2",
-            title: "实际拟合功率"
-          }, {
-            key: "value3",
-            title: "最优拟合功率"
-          }, {
-            key: "value4",
-            title: "保证功率"
-          }];
-
-          let chartData = [{
-            title: "风速",
-            yAxisIndex: 1,
-            value: []
-          }, {
-            title: "实际拟合功率",
-            yAxisIndex: 0,
-            value: []
-          }, {
-            title: "最优拟合功率",
-            yAxisIndex: 0,
-            value: []
-          }, {
-            title: "保证功率",
-            yAxisIndex: 0,
-            value: []
-          }];
-
-          keyArray.forEach((keyEle, keyIndex) => {
-            res.data.forEach(ele => {
-              chartData[keyIndex].value.push({
-                text: "",
-                value: ele[keyEle.key]
-              });
-            });
-          });
-
-          that.chartData = chartData;
-        }
-      });
-    },
-
-  },
-  created() {
-    this.requestData();
-  },
-};
-</script>
-
-<style lang="less">
-.dj {
-  font-size: 12px;
-  .arrow-chart {
-    margin-top: 20px;
-  }
-}
-</style>

+ 0 - 695
src/views/NewPages/expert-knowledge-base.vue

@@ -1,695 +0,0 @@
-<template>
-    <div class="expert-knowledge-base">
-        <el-row :gutter="16" class="up-box">
-            <el-col :span="16">
-                <!-- 故障体系 -->
-                <el-row>
-                    <el-col :span="24">
-                        <div class="ekb-box">
-                            <el-row>
-                                <el-col :span="24" class="i-panel-title">
-                                    <span class="svg-icon svg-icon-sm svg-icon-gray-l">
-                                        <svg-icon svgid="svg-ekb-warn" />
-                                    </span>
-                                    <span class="gray-l font-md mg-l-16">故障体系</span>
-                                    <span class="font-num font-md float-right green">3347</span>
-                                </el-col>
-                            </el-row>
-                            <el-row>
-                                <el-col :span="24">
-                                    <el-scrollbar class="table">
-                                        <table style="width:100%;" border="0" cellspacing="0">
-                                            <tbody>
-                                                <tr v-for="index of 6" :key="index">
-                                                    <td style="width:150px;" class="gray-l">
-                                                        MG01_01
-                                                    </td>
-                                                    <td class="green num" style="width:350px;">
-                                                        1234.56
-                                                    </td>
-                                                    <td style="width:600px;">
-                                                        <div class="percent-item gray-l">
-                                                            完成度
-                                                            <div class="percent-bar" style="">
-                                                                <div class="percent-value" style="width:80%"></div>
-                                                            </div>
-                                                        </div>
-                                                    </td>
-                                                    <td>
-                                                        <span class="perent-num">80%</span>
-                                                    </td>
-                                                </tr>
-                                            </tbody>
-                                        </table>
-                                    </el-scrollbar>
-                                </el-col>
-                            </el-row>
-                        </div>
-                    </el-col>
-                </el-row>
-                <!-- 预警知识 -->
-                <el-row class="mg-t-16">
-                    <el-col :span="24">
-                        <div class="ekb-box">
-                            <el-row>
-                                <el-col :span="24" class="i-panel-title">
-                                    <span class="svg-icon svg-icon-sm svg-icon-gray-l">
-                                        <svg-icon svgid="svg-ekb-warning" />
-                                    </span>
-                                    <span class="gray-l font-md mg-l-16">预警知识</span>
-                                    <span class="font-num font-md float-right green">3347</span>
-                                </el-col>
-                            </el-row>
-                            <el-row class="mg-t-16" :gutter="10">
-                                <el-col :span="6">
-                                    <div class="warning-item">
-                                        <div class="warning-icon-box">
-                                            <div class="warning-icon">
-                                                <span class="svg-icon svg-icon-warning svg-icon-gray-l">
-                                                    <svg-icon svgid="svg-ekb-generator" />
-                                                </span>
-                                            </div>
-                                        </div>
-                                        <div class="warning-info">
-                                            <div class="warning-name gray-l">发电机</div>
-                                            <div class="warning-count green font-num">9527</div>
-                                        </div>
-                                    </div>
-                                </el-col>
-                                <el-col :span="6">
-                                    <div class="warning-item">
-                                        <div class="warning-icon-box">
-                                            <div class="warning-icon">
-                                                <span class="svg-icon svg-icon-warning svg-icon-gray-l">
-                                                    <svg-icon svgid="svg-ekb-gear-box" />
-                                                </span>
-                                            </div>
-                                        </div>
-                                        <div class="warning-info">
-                                            <div class="warning-name gray-l">齿轮箱</div>
-                                            <div class="warning-count green font-num">9527</div>
-                                        </div>
-                                    </div>
-                                </el-col>
-                                <el-col :span="6">
-                                    <div class="warning-item">
-                                        <div class="warning-icon-box">
-                                            <div class="warning-icon">
-                                                <span class="svg-icon svg-icon-warning svg-icon-gray-l">
-                                                    <svg-icon svgid="svg-ekb-spindle" />
-                                                </span>
-                                            </div>
-                                        </div>
-                                        <div class="warning-info">
-                                            <div class="warning-name gray-l">主轴</div>
-                                            <div class="warning-count green font-num">9527</div>
-                                        </div>
-                                    </div>
-                                </el-col>
-                                <el-col :span="6">
-                                    <div class="warning-item">
-                                        <div class="warning-icon-box">
-                                            <div class="warning-icon">
-                                                <span class="svg-icon svg-icon-warning svg-icon-gray-l">
-                                                    <svg-icon svgid="svg-ekb-variable-pitch" />
-                                                </span>
-                                            </div>
-                                        </div>
-                                        <div class="warning-info">
-                                            <div class="warning-name gray-l">变桨</div>
-                                            <div class="warning-count green font-num">9527</div>
-                                        </div>
-                                    </div>
-                                </el-col>
-                            </el-row>
-                            <el-row class="mg-t-16" :gutter="10">
-                                <el-col :span="6">
-                                    <div class="warning-item">
-                                        <div class="warning-icon-box">
-                                            <div class="warning-icon">
-                                                <span class="svg-icon svg-icon-warning svg-icon-gray-l">
-                                                    <svg-icon svgid="svg-ekb-yaw" />
-                                                </span>
-                                            </div>
-                                        </div>
-                                        <div class="warning-info">
-                                            <div class="warning-name gray-l">偏航</div>
-                                            <div class="warning-count green font-num">9527</div>
-                                        </div>
-                                    </div>
-                                </el-col>
-                                <el-col :span="6">
-                                    <div class="warning-item">
-                                        <div class="warning-icon-box">
-                                            <div class="warning-icon">
-                                                <span class="svg-icon svg-icon-warning svg-icon-gray-l">
-                                                    <svg-icon svgid="svg-ekb-cabin" />
-                                                </span>
-                                            </div>
-                                        </div>
-                                        <div class="warning-info">
-                                            <div class="warning-name gray-l">机舱</div>
-                                            <div class="warning-count green font-num">9527</div>
-                                        </div>
-                                    </div>
-                                </el-col>
-                                <el-col :span="6">
-                                    <div class="warning-item">
-                                        <div class="warning-icon-box">
-                                            <div class="warning-icon">
-                                                <span class="svg-icon svg-icon-warning svg-icon-gray-l">
-                                                    <svg-icon svgid="svg-ekb-variable-frequency" />
-                                                </span>
-                                            </div>
-                                        </div>
-                                        <div class="warning-info">
-                                            <div class="warning-name gray-l">变频</div>
-                                            <div class="warning-count green font-num">9527</div>
-                                        </div>
-                                    </div>
-                                </el-col>
-                                <el-col :span="6">
-                                    <div class="warning-item">
-                                        <div class="warning-icon-box">
-                                            <div class="warning-icon">
-                                                <span class="svg-icon svg-icon-warning svg-icon-gray-l">
-                                                    <svg-icon svgid="svg-ekb-master" />
-                                                </span>
-                                            </div>
-                                        </div>
-                                        <div class="warning-info">
-                                            <div class="warning-name gray-l">主控</div>
-                                            <div class="warning-count green font-num">9527</div>
-                                        </div>
-                                    </div>
-                                </el-col>
-                            </el-row>
-                        </div>
-                    </el-col>
-                </el-row>
-            </el-col>
-            <!-- 特征参数 -->
-            <el-col :span="8">
-                <div class="ekb-box">
-                    <el-row>
-                        <el-col :span="24" class="i-panel-title">
-                            <span class="svg-icon svg-icon-sm svg-icon-gray-l">
-                                <svg-icon svgid="svg-ekb-terminal" />
-                            </span>
-                            <span class="gray-l font-md mg-l-16">特征参数</span>
-                            <span class="font-num font-md float-right green">3347</span>
-                        </el-col>
-                    </el-row>
-                    <el-row class="mg-t-16" :gutter="16">
-                        <el-col :span="12">
-                            <div class="characteristic-parameters-item">
-                                <div class="characteristic-parameters-icon">
-                                    <span class="svg-icon svg-icon-size-icon svg-icon-color-icon">
-                                        <svg-icon svgid="svg-ekb-rank" />
-                                    </span>
-                                </div>
-                                <div class="characteristic-parameters-name">基于数据统计</div>
-                                <div class="characteristic-parameters-count font-num green">9</div>
-                                <div class="characteristic-parameters-back">
-                                    <span class="svg-icon svg-icon-size-back svg-icon-color-back">
-                                        <svg-icon svgid="svg-ekb-rank" />
-                                    </span>
-                                </div>
-                            </div>
-                        </el-col>
-                        <el-col :span="12">
-                            <div class="characteristic-parameters-item">
-                                <div class="characteristic-parameters-icon">
-                                    <span class="svg-icon svg-icon-size-icon svg-icon-color-icon">
-                                        <svg-icon svgid="svg-ekb-neural-network" />
-                                    </span>
-                                </div>
-                                <div class="characteristic-parameters-name">神经网络整理</div>
-                                <div class="characteristic-parameters-count font-num green">95</div>
-                                <div class="characteristic-parameters-back">
-                                    <span class="svg-icon svg-icon-size-back svg-icon-color-back">
-                                        <svg-icon svgid="svg-ekb-neural-network" />
-                                    </span>
-                                </div>
-                            </div>
-                        </el-col>
-                    </el-row>
-                    <el-row class="mg-t-16" :gutter="16">
-                        <el-col :span="12">
-                            <div class="characteristic-parameters-item">
-                                <div class="characteristic-parameters-icon">
-                                    <span class="svg-icon svg-icon-size-icon svg-icon-color-icon">
-                                        <svg-icon svgid="svg-ekb-document" />
-                                    </span>
-                                </div>
-                                <div class="characteristic-parameters-name">文档整理</div>
-                                <div class="characteristic-parameters-count font-num green">952</div>
-                                <div class="characteristic-parameters-back">
-                                    <span class="svg-icon svg-icon-size-back svg-icon-color-back">
-                                        <svg-icon svgid="svg-ekb-document" />
-                                    </span>
-                                </div>
-                            </div>
-                        </el-col>
-                        <el-col :span="12">
-                            <div class="characteristic-parameters-item">
-                                <div class="characteristic-parameters-icon">
-                                    <span class="svg-icon svg-icon-size-icon svg-icon-color-icon">
-                                        <svg-icon svgid="svg-ekb-experts" />
-                                    </span>
-                                </div>
-                                <div class="characteristic-parameters-name">专家知识分析</div>
-                                <div class="characteristic-parameters-count font-num green">9527</div>
-                                <div class="characteristic-parameters-back">
-                                    <span class="svg-icon svg-icon-size-back svg-icon-color-back">
-                                        <svg-icon svgid="svg-ekb-experts" />
-                                    </span>
-                                </div>
-                            </div>
-                        </el-col>
-                    </el-row>
-                </div>
-            </el-col>
-        </el-row>
-        <el-row class="mg-t-16 down-box" :gutter="8">
-            <el-col :span="8">
-                <div class="ekb-box q-box-p">
-                    <el-row>
-                        <el-col :span="24" class="i-panel-title">
-                            <span class="svg-icon svg-icon-sm svg-icon-gray-l">
-                                <svg-icon svgid="svg-ekb-terminal" />
-                            </span>
-                            <span class="gray-l font-md mg-l-16">排查、检修方案</span>
-                            <span class="font-num font-md float-right green">3347</span>
-                        </el-col>
-                    </el-row>
-                    <el-row class="q-box">
-                        <el-col :span="24">
-                            <div class="circle-items">
-                                <div class="circle-item">
-                                    <div class="inner">
-                                        <div class="text">健康评价</div>
-                                        <div class="value">29</div>
-                                    </div>
-                                </div>
-                                <div class="circle-item">
-                                    <div class="inner">
-                                        <div class="text">健康评价</div>
-                                        <div class="value">29</div>
-                                    </div>
-                                </div>
-                                <div class="circle-item">
-                                    <div class="inner">
-                                        <div class="text">健康评价</div>
-                                        <div class="value">29</div>
-                                    </div>
-                                </div>
-                            </div>
-                        </el-col>
-                    </el-row>
-                </div>
-            </el-col>
-            <el-col :span="8">
-                <div class="ekb-box q-box-p">
-                    <el-row>
-                        <el-col :span="24" class="i-panel-title">
-                            <span class="svg-icon svg-icon-sm svg-icon-gray-l">
-                                <svg-icon svgid="svg-ekb-terminal" />
-                            </span>
-                            <span class="gray-l font-md mg-l-16">排查、检修方案</span>
-                            <span class="font-num font-md float-right green">3347</span>
-                        </el-col>
-                    </el-row>
-                    <el-row class="q-box">
-                        <el-col :span="24">
-                            <div class="circle-items">
-                                <div class="circle-item">
-                                    <div class="inner">
-                                        <div class="text">健康评价</div>
-                                        <div class="value">29</div>
-                                    </div>
-                                </div>
-                                <div class="circle-item">
-                                    <div class="inner">
-                                        <div class="text">健康评价</div>
-                                        <div class="value">29</div>
-                                    </div>
-                                </div>
-                                <div class="circle-item">
-                                    <div class="inner">
-                                        <div class="text">健康评价</div>
-                                        <div class="value">29</div>
-                                    </div>
-                                </div>
-                            </div>
-                        </el-col>
-                    </el-row>
-                </div>
-            </el-col>
-            <el-col :span="8">
-                <div class="ekb-box q-box-p">
-                    <el-row>
-                        <el-col :span="24" class="i-panel-title">
-                            <span class="svg-icon svg-icon-sm svg-icon-gray-l">
-                                <svg-icon svgid="svg-ekb-terminal" />
-                            </span>
-                            <span class="gray-l font-md mg-l-16">排查、检修方案</span>
-                            <span class="font-num font-md float-right green">3347</span>
-                        </el-col>
-                    </el-row>
-                    <el-row class="q-box">
-                        <el-col :span="24">
-                            <div class="circle-items">
-                                <div class="circle-item">
-                                    <div class="inner">
-                                        <div class="text">健康评价</div>
-                                        <div class="value">29</div>
-                                    </div>
-                                </div>
-                                <div class="circle-item">
-                                    <div class="inner">
-                                        <div class="text">健康评价</div>
-                                        <div class="value">29</div>
-                                    </div>
-                                </div>
-                                <div class="circle-item">
-                                    <div class="inner">
-                                        <div class="text">健康评价</div>
-                                        <div class="value">29</div>
-                                    </div>
-                                </div>
-                            </div>
-                        </el-col>
-                    </el-row>
-                </div>
-            </el-col>
-        </el-row>
-    </div>
-</template>
-
-<script>
-import SvgIcon from "@com/coms/icon/svg-icon.vue";
-export default {
-    setup() {},
-    components: { SvgIcon },
-    data() {
-        return {};
-    },
-    created() {},
-};
-</script>
-
-<style lang="less">
-.expert-knowledge-base {
-    .svg-icon-sm {
-        width: 20px;
-        height: 16px;
-        line-height: 1;
-
-        svg {
-            width: 20px;
-            height: 16px;
-        }
-    }
-
-    .svg-icon-size-icon {
-        width: 26px;
-        height: 26px;
-        line-height: 1;
-
-        svg {
-            width: 26px;
-            height: 26px;
-        }
-    }
-
-    .svg-icon-color-icon {
-        svg {
-            use {
-                fill: #b9bfc17f;
-            }
-        }
-    }
-
-    .svg-icon-size-back {
-        width: 110px;
-        height: 110px;
-        line-height: 1;
-
-        svg {
-            width: 110px;
-            height: 110px;
-        }
-    }
-
-    .svg-icon-color-back {
-        svg {
-            use {
-                fill: #60676933;
-            }
-        }
-    }
-
-    .svg-icon-warning {
-        width: 24px;
-        height: 24px;
-        line-height: 1;
-
-        svg {
-            width: 24px;
-            height: 24px;
-        }
-    }
-
-    .font-md {
-        font-size: 14px;
-        line-height: 16px;
-        font-weight: 400;
-    }
-
-    .float-right {
-        float: right;
-        margin-left: auto;
-    }
-
-    .el-col {
-        padding: 0;
-    }
-
-    .up-box {
-        height: 650px;
-        overflow: hidden;
-    }
-
-    .down-box {
-        height: calc(100vh - 735px);
-        overflow: hidden;
-    }
-
-    .i-panel-title {
-        height: 33px;
-        background: #53626833;
-        padding: 8px 26px;
-        display: flex;
-        align-items: center;
-    }
-
-    .ekb-box {
-        border: 1px solid #53626866;
-    }
-
-    .warning-item {
-        background: #53626833;
-        padding: 11px 0;
-        display: flex;
-
-        .warning-icon-box {
-            width: 116px;
-            height: 148px;
-            border-right: 2px dotted #b9bfc133;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-
-            .warning-icon {
-                width: 56px;
-                height: 56px;
-                border-radius: 50%;
-                border: 1px solid #b9bfc17f;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-            }
-        }
-
-        .warning-info {
-            padding: 43px 0 0 30px;
-
-            .warning-name {
-                font-size: 20px;
-                font-weight: 400;
-                line-height: 1;
-            }
-
-            .warning-count {
-                font-size: 30px;
-                font-weight: 400;
-                line-height: 1;
-                margin-top: 22px;
-            }
-        }
-    }
-
-    .characteristic-parameters-item {
-        background: #53626833;
-        padding: 36px 0 0 36px;
-        position: relative;
-        height: 294px;
-
-        .characteristic-parameters-icon {
-            width: 70px;
-            height: 70px;
-            border-radius: 50%;
-            border: 1px solid #b9bfc17f;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-        }
-
-        .characteristic-parameters-name {
-            margin-top: 30px;
-            font-size: 20px;
-            font-weight: 400;
-            color: #b9bfc1;
-            line-height: 1;
-        }
-
-        .characteristic-parameters-count {
-            margin-top: 20px;
-            font-weight: 400;
-            line-height: 1;
-            font-size: 30px;
-        }
-
-        .characteristic-parameters-back {
-            width: 110px;
-            height: 110px;
-            position: absolute;
-            right: 0;
-            bottom: 0;
-        }
-    }
-
-    .table {
-        height: 198px;
-
-        tbody {
-            tr:nth-child(2n) td {
-                background-color: fade(@gray, 20%);
-
-                &.item {
-                    background-color: transparent;
-                }
-            }
-        }
-
-        td {
-            color: @gray;
-            text-align: center;
-            height: 26px;
-            line-height: 26px;
-            font-size: 12px;
-
-            &.gray-l {
-                color: @gray-l;
-            }
-
-            &.green {
-                color: @green;
-            }
-
-            &.num {
-                font-family: @font-family-num;
-            }
-        }
-
-        .percent-item {
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            height: 31px;
-
-            .percent-bar {
-                height: 12px;
-                width: 430px;
-                background: transparent;
-                border: 1px solid @gray;
-                margin-left: 16px;
-
-                .percent-value {
-                    height: calc(100% - 4px);
-                    background: @green;
-                    margin: 2px;
-                }
-            }
-        }
-
-        .perent-num {
-            color: @green;
-            margin-left: 16px;
-            font-family: @font-family-num;
-        }
-    }
-
-    .q-box-p {
-        height: 100%;
-
-        .q-box {
-            height: calc(100% - 33px);
-        }
-    }
-
-    .circle-items {
-        display: flex;
-        justify-content: space-around;
-        align-items: center;
-        height: 100%;
-
-        .circle-item {
-            display: flex;
-            flex: 0 0 146px;
-            width: 146px;
-            height: 146px;
-            background: fade(@green, 10);
-            border-radius: 50%;
-            justify-content: center;
-            align-items: center;
-
-            .inner {
-                width: 124px;
-                height: 124px;
-                border: 1px solid #05bb4c;
-                border-radius: 50%;
-
-                display: flex;
-                flex-direction: column;
-                justify-content: center;
-                align-items: center;
-
-                box-shadow: inset -15px 20px 30px -30px #05bb4c;
-
-                .text {
-                    color: @green;
-                    font-size: 12px;
-                    margin-bottom: 8px;
-                }
-
-                .value {
-                    color: @white;
-                    font-size: 34px;
-                }
-            }
-        }
-    }
-}
-</style>

+ 0 - 548
src/views/NewPages/fdlyl.vue

@@ -1,548 +0,0 @@
-<template>
-  <div class="ztfx" >
-    <div class="action-bar">
-      <div class="query mg-b-16">
-        <div class="query-items">
-          <div class="query-item">
-            <div class="lable">日期:</div>
-            <div class="search-input">
-              <el-date-picker
-                v-model="monthValue"
-                type="year"
-                placeholder="选择年份"
-                popper-class="date-select"
-                :clearable="false"
-              >
-              </el-date-picker>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="search-input select-btn">
-              <button class="btn green" @click="onClickSearch">搜索</button>
-            </div>
-            <div class="search-input select-btn">
-              <button class="btn green" @click="exportPDF">导出</button>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <el-row :gutter="20" class="table-panel pdfDom">
-      <el-col :span="24">
-        <!-- <panel :title="'月度'" :showLine="false"> -->
-          <div class="table">
-            <table style="width:100%;" border="0" cellspacing="0">
-              <thead>
-                <tr>
-                  <th rowspan="2" class="type1" style="width:4vh;"></th>
-                  <template v-for="m of monthData" :key="m">
-                    <th style="width:6vh;" class="type1" rowspan="2">{{m}}</th>
-                  </template>
-                </tr>
-                
-              </thead>
-            </table>
-              <div style=" ">
-                <table
-                  style="width:100%;text-align:center;"
-                  border="0"
-                  cellspacing="0"
-                >
-                  <tbody>
-                    <tr>
-                      <td style="width:4vh;"></td>
-                      <template v-for="(x ,i) of MhsLists" :key="i">
-                        <td style="width:3vh;">本期</td>
-                        <td style="width:3vh;">同期</td>
-                      </template>
-                    </tr>
-                    <tr>
-                      <td class="td-item" style="width:4vh;">麻黄山</td>
-                      <template v-for="(item, index) of MhsLists" :key="index">
-                        <td style="width:3vh;">
-                          {{ item.current }}
-                          <template v-if="item.compare === -1">
-                            <span class="svg-icon svg-icon-yellow">
-                              <svg-icon svgid="svg-arrow-dpwn-1" />
-                            </span>
-                          </template>
-                          <template v-if="item.compare === 1">
-                            <span class="svg-icon svg-icon-green">
-                              <svg-icon svgid="svg-arrow-up-1" />
-                            </span>
-                          </template>
-                        </td>
-                        <td style="width:3vh;">
-                          {{ item.sameperiod }}
-                        </td>
-                      </template>
-                    </tr>
-                    <tr>
-                      <td class="td-item" style="width:4vh;">牛首山</td>
-                      <template v-for="(item, index) of NshList" :key="index">
-                        <td style="width:3vh;">
-                          {{ item.current }}
-                          <template v-if="item.compare === -1">
-                            <span class="svg-icon svg-icon-yellow">
-                              <svg-icon svgid="svg-arrow-dpwn-1" />
-                            </span>
-                          </template>
-                          <template v-if="item.compare === 1">
-                            <span class="svg-icon svg-icon-green">
-                              <svg-icon svgid="svg-arrow-up-1" />
-                            </span>
-                          </template>
-                        </td>
-                        <td style="width:3vh;">
-                          {{ item.sameperiod }}
-                        </td>
-                      </template>
-                    </tr>
-                    <tr>
-                      <td class="td-item" style="width:4vh;">青山</td>
-                      <template v-for="(item, index) of QshList" :key="index">
-                        <td style="width:3vh;">
-                          {{ item.current }}
-                          <template v-if="item.compare === -1">
-                            <span class="svg-icon svg-icon-yellow">
-                              <svg-icon svgid="svg-arrow-dpwn-1" />
-                            </span>
-                          </template>
-                          <template v-if="item.compare === 1">
-                            <span class="svg-icon svg-icon-green">
-                              <svg-icon svgid="svg-arrow-up-1" />
-                            </span>
-                          </template>
-                        </td>
-                        <td style="width:3vh;">
-                          {{ item.sameperiod }}
-                        </td>
-                      </template>
-                    </tr>
-                    <tr>
-                      <td class="td-item" style="width:4vh;">石板泉</td>
-                      <template v-for="(item, index) of SbaqList" :key="index">
-                        <td style="width:3vh;">
-                          {{ item.current }}
-                          <template v-if="item.compare === -1">
-                            <span class="svg-icon svg-icon-yellow">
-                              <svg-icon svgid="svg-arrow-dpwn-1" />
-                            </span>
-                          </template>
-                          <template v-if="item.compare === 1">
-                            <span class="svg-icon svg-icon-green">
-                              <svg-icon svgid="svg-arrow-up-1" />
-                            </span>
-                          </template>
-                        </td>
-                        <td style="width:3vh;">
-                          {{ item.sameperiod }}
-                        </td>
-                      </template>
-                    </tr>
-                    <tr>
-                      <td class="td-item" style="width:4vh;">香山</td>
-                      <template v-for="(item, index) of XshList" :key="index">
-                        <td style="width:3vh;">
-                          {{ item.current }}
-                          <template v-if="item.compare === -1">
-                            <span class="svg-icon svg-icon-yellow">
-                              <svg-icon svgid="svg-arrow-dpwn-1" />
-                            </span>
-                          </template>
-                          <template v-if="item.compare === 1">
-                            <span class="svg-icon svg-icon-green">
-                              <svg-icon svgid="svg-arrow-up-1" />
-                            </span>
-                          </template>
-                        </td>
-                        <td style="width:3vh;">
-                          {{ item.sameperiod }}
-                        </td>
-                      </template>
-                    </tr>
-                    <tr>
-                      <td class="td-item" style="width:4vh;">公司</td>
-                      <template v-for="(item, index) of GsList" :key="index">
-                        <td style="width:3vh;">
-                          {{ item.current }}
-                          <template v-if="item.compare === -1">
-                            <span class="svg-icon svg-icon-yellow">
-                              <svg-icon svgid="svg-arrow-dpwn-1" />
-                            </span>
-                          </template>
-                          <template v-if="item.compare === 1">
-                            <span class="svg-icon svg-icon-green">
-                              <svg-icon svgid="svg-arrow-up-1" />
-                            </span>
-                          </template>
-                        </td>
-                        <td style="width:3vh;">
-                          {{ item.sameperiod }}
-                        </td>
-                      </template>
-                    </tr>
-                  </tbody>
-                </table>
-              </div>
-            <!-- </el-scrollbar> -->
-          </div>
-      </el-col>
-    </el-row>
-    <el-row :gutter="20" class="table-panel">
-      <el-col :span="24">
-        <panel title="公司可利用率分析" :showLine="false">
-          <!-- <vertival-bar-line-chart
-            :height="'360px'"
-            :units="units"
-            :bardata="bardata"
-            :lineData="lineData"
-          /> -->
-
-          <MultipleLineChart  
-            :list="DayPower.value" 
-            :units="DayPower.units" 
-            height="40vh" :showLegend="true" 
-          />
-           <!-- :units="units"
-            :bardata="bardata"
-            :lineData="lineData" -->
-        </panel>
-      </el-col>
-    </el-row>
-      
-  </div>
-</template>
-
-<script>
-// import VertivalBarLineChart from "../../components/chart/combination/vertival-bar-line-chart.vue";
-// import VertivalBarLineChart from "../../components/chart/bar/list-bar-chart.vue";
-import MultipleLineChart from "../../components/chart/bar/multiple-bar-chart.vue";
-import Panel from "../../components/coms/panel/panel.vue";
-import DualPieChart from "../../components/chart/pie/dual-pie-chart.vue";
-import SvgIcon from "../../components/coms/icon/svg-icon.vue";
-import Get_PDF from "@tools/htmlToPdf";
-export default {
-  setup() {},
-  components: {
-    Panel,
-    DualPieChart,
-    SvgIcon,
-    // VertivalBarLineChart,
-    MultipleLineChart
-  },
-  data() {
-    return {
-      monthData: [],
-      MhsLists: [],
-      NshList: [],
-      QshList: [],
-      SbaqList: [],
-      XshList: [],
-      GsList: [],
-      units: [],
-      nowCurrent: 1,
-      months: new Date().getMonth() + 1,
-      pickerOptions: {},
-      bardata: { area: [], legend: [], data: [] }, // 损失电量分析echart数值
-      lineData: [],
-      timmer: null,
-      monthValue: this.getmonthValue(),
-      list: [],
-      DayPower: {
-        // 图表所用单位
-        units: [""],
-        value: [
-          {
-            title: "",
-            yAxisIndex: 0, // 使用单位
-            value: [],
-          },
-        ],
-      },
-    };
-  },
-  created() {
-    let _this = this
-    // _this.$nextTick(() => {
-      _this.getLists(false);
-    //   _this.timmer = setInterval(() => {
-    //     _this.getLists(false)
-    //   }, _this.$store.state.websocketTimeSec);
-    // });
-  },
-  unmounted() {
-    clearInterval(this.timmer);
-    this.timmer = null;
-  },
-  mounted() {},
-  methods: {
-    exportPDF (name) {
-      this.BASE.showMsg({
-        type: "success",
-        msg: "正在导出...请稍后..."
-      });
-      Get_PDF.downloadPDF(document.querySelector('.pdfDom'), "风能利用率");
-    },
-    getmonthValue(){
-      let year = new Date().getFullYear().toString()
-      return year
-    },
-    onClickSearch() {
-      this.getLists(false)
-    },
-    monthChange(data){
-      let year = data.getFullYear().toString();
-      return year
-    },
-
-    isNumber(val) {
-      return typeof val === 'number' && !isNaN(val)
-    },
-    getLists(showLoading) {
-      let MhsLists = []
-      let NshList= []
-      let QshList= []
-      let SbaqList= []
-      let XshList= []
-      let GsList= []
-      let _this = this
-      let year = ''
-      if (typeof(this.monthValue) === 'string') {
-        year = this.monthValue
-      } else {
-        year = this.monthChange(this.monthValue)
-      }
-      const site = ['compare', 'year', 'month']
-      _this.API.requestData({
-          showLoading,
-          method: "GET",
-          baseURL: 'http://10.155.32.4:8034',
-          subUrl: "/specific/fnlylList",
-          data:{
-            year: year
-          },
-          success(res) {
-            _this.list = res.data.map(item => {
-              for (let key in item) {
-                if (!site.includes(key)) {
-                  if(_this.isNumber(item[key])) {
-                    item[key] = item[key].toFixed(2)
-                  } else if (!item[key]){
-                    item[key] = 0
-                    item[key] = item[key].toFixed(2)
-                  }
-                }
-                
-              }
-              if (item.wpid === 'MHS_FDC') {
-                MhsLists.push(item)
-              } else if (item.wpid === 'NSS_FDC') {
-                NshList.push(item)
-              } else if (item.wpid === 'QS_FDC') {
-                QshList.push(item)
-              } else if (item.wpid === 'NSS_FDC') {
-                NshList.push(item)
-              } else if (item.wpid === 'SBQ_FDC') {
-                SbaqList.push(item)
-              } else if (item.wpid === 'XS_FDC') {
-                XshList.push(item)
-              } else {
-                GsList.push(item)
-              }
-            })
-
-            _this.MhsLists = MhsLists.sort(_this.compare('month'))
-            _this.NshList= NshList.sort(_this.compare('month'))
-            _this.QshList= QshList.sort(_this.compare('month'))
-            _this.SbaqList= SbaqList.sort(_this.compare('month'))
-            _this.XshList= XshList.sort(_this.compare('month'))
-            _this.GsList= GsList.sort(_this.compare('month'))
-
-            let nowCureent = []
-            let sameCureent = []
-            let monthData = []
-            let monthsAll = []
-            _this.GsList.map(item => {
-              let objs = {}
-              let obj = {}
-              monthsAll.push(item.month)
-              if (item.month > 10) {
-                objs.text = item.month.toString()
-                obj.text = item.month.toString()
-              } else {
-                item.text = '0'+ item.month
-                objs.text = item.text
-                obj.text = item.text
-              }
-              for (let key in item) {
-                if (key === 'current') {
-                  objs.value = item.current
-                  nowCureent.push(objs)
-                } else if (key === 'sameperiod'){
-                  obj.value = item.sameperiod
-                  sameCureent.push(obj)
-                }
-                
-              }
-            })
-            _this.monthData = monthsAll
-            _this.DayPower = {
-              // 图表所用单位
-              units: [""],
-              value: [
-                {
-                  title: "本期",
-                  yAxisIndex: 0, // 使用单位
-                  value: nowCureent,
-                  // nowCureent
-                },
-                {
-                  title: "同期",
-                  yAxisIndex: 0, // 使用单位
-                  value: sameCureent,
-                  // sameCureent
-                },
-              ],
-            }
-
-            // _this.DayPower = {
-            //   // 图表所用单位
-            //   units: [""],
-            //   value: [
-            //     {
-            //       title: "本期",
-            //       yAxisIndex: 0, // 使用单位
-            //       value: [],
-            //     },
-            //     {
-            //       title: "同期",
-            //       yAxisIndex: 0, // 使用单位
-            //       value: [],
-            //     },
-            //   ],
-            // },
-            // _this.bardata.legend = ["本期", "同期"]
-            // _this.lineData = [];
-            // _this.bardata.area = monthData;
-            // _this.bardata.data[0] = sameCureent;
-            // _this.bardata.data[1] = nowCureent;
-          }
-      })
-    },
-    compare(property) {
-      return (a, b) => {
-        let val1 = a[property]
-        let val2 = b[property]
-        return val1 - val2
-      }
-    }
-  }
-};
-</script>
-
-<style lang="less">
-.ztfx {
-  font-size: 12px;
-  .select-btn {
-    width: 92px;
-  }
-  .com-panel {
-    border: 1px solid #6067697d;
-  }
-  .table-complex {
-    margin-top: 10px;
-    .table {
-      border: 1px solid #6067697d;
-      tbody {
-        tr:nth-child(2n) td {
-          background-color: fade(@gray, 20%);
-
-          &.item {
-            background-color: transparent;
-          }
-        }
-      }
-
-      th {
-        background: fade(@gray, 40);
-        font-size: 12px;
-        font-weight: 400;
-        line-height: 24px;
-        color: @gray-l;
-
-        &.type1 {
-          border-left: 0;
-          border-right: 0;
-        }
-      }
-      td {
-        color: @gray-l;
-        text-align: center;
-        height: 26px;
-        line-height: 26px;
-
-        // &.item {
-        //   width: 100px;
-        // }
-      }
-      svg {
-        height: 1.222vh;
-      }
-    }
-  }
-  .table-panel {
-    margin-top: 10px;
-    .panel-header {
-      text-align: center;
-    }
-    .table {
-      border: 1px solid #6067697d;
-      tbody {
-        tr:nth-child(2n) td {
-          background-color: fade(@gray, 20%);
-
-          &.item {
-            background-color: transparent;
-          }
-        }
-      }
-      .td-item {
-        width: 6vh;
-      }
-      th {
-        background: fade(@gray, 40);
-        font-size: 12px;
-        font-weight: 400;
-        line-height: 24px;
-        color: @gray-l;
-
-        &.type1 {
-          border-left: 0;
-          border-right: 0;
-          height: 4vh;
-        }
-      }
-      td {
-        color: @gray-l;
-        text-align: center;
-        height: 46px;
-        line-height: 46px;
-
-        &.item {
-          width: 100px;
-        }
-      }
-      svg {
-        height: 1.222vh;
-      }
-    }
-  }
-  .pie-chart-panel {
-    margin-top: 10px;
-    .line{
-      border:none;
-    }
-  }
-}
-</style>

+ 0 - 438
src/views/NewPages/forecast-system.vue

@@ -1,438 +0,0 @@
-<template>
-  <div class="forecast-system">
-    <div class="action-bar mg-b-16">
-      <div class="selections">
-        <!-- <div class="item" @click="tabSelect(0)" :class="{ active: tabIndex == 0 }">麻黄山</div>
-        <div class="item" @click="tabSelect(1)" :class="{ active: tabIndex == 1 }">牛首山</div>
-        <div class="item" @click="tabSelect(2)" :class="{ active: tabIndex == 2 }">青山</div>
-        <div class="item" @click="tabSelect(3)" :class="{ active: tabIndex == 3 }">石板泉</div>
-        <div class="item" @click="tabSelect(3)" :class="{ active: tabIndex == 4 }">香山</div> -->
-        <div
-          class="item"
-          v-for="item of wpList"
-          :key="item"
-          @click="tabSelect(item)"
-          :class="{ active: wpId == item.id }"
-        >
-          {{ item.name }}
-        </div>
-      </div>
-    </div>
-    <div class="page-body">
-      <el-row class="mg-b-16">
-        <el-col :span="5" class="fc-info">
-          <div class="fc-item">
-            <div class="title">{{ wpName }}</div>
-            <div class="tags">
-              <div class="tag">
-                <i class="svg-icon svg-icon-gray-l svg-icon-lg">
-                  <svg-icon :svgid="'svg-' + weatherInfo.tqtp" />
-                </i>
-              </div>
-              <div class="tag">
-                <div class="tag-title">风速</div>
-                <div class="tag-value">
-                  {{ weatherInfo.fs }}<span class="unit">m/s</span>
-                </div>
-              </div>
-              <div class="tag">
-                <div class="tag-title">风向</div>
-                <div class="tag-value">
-                  {{ weatherInfo.fx }}<span class="unit"></span>
-                </div>
-              </div>
-              <div class="tag">
-                <div class="tag-title">清晰度</div>
-                <div class="tag-value">
-                  {{ weatherInfo.qxd }}<span class="unit"></span>
-                </div>
-              </div>
-              <div class="tag">
-                <div class="tag-title">温度</div>
-                <div class="tag-value">
-                  {{ weatherInfo.wd }}<span class="unit">℃</span>
-                </div>
-              </div>
-              <div class="tag">
-                <div class="tag-title">大气压强</div>
-                <div class="tag-value">
-                  {{ weatherInfo.dqyl }}<span class="unit">hPa</span>
-                </div>
-              </div>
-              <div class="tag">
-                <div class="tag-title">湿度</div>
-                <div class="tag-value">
-                  {{ weatherInfo.sd }}<span class="unit">%</span>
-                </div>
-              </div>
-              <div class="tag">
-                <div class="tag-title">经度</div>
-                <div class="tag-value">
-                  {{ weatherInfo.jingdu }}<span class="unit"></span>
-                </div>
-              </div>
-              <div class="tag">
-                <div class="tag-title">纬度</div>
-                <div class="tag-value">
-                  {{ weatherInfo.weidu }}<span class="unit"></span>
-                </div>
-              </div>
-              <div class="tag">
-                <div class="tag-title">云量</div>
-                <div class="tag-value">
-                  {{ weatherInfo.yunliang }}<span class="unit"></span>
-                </div>
-              </div>
-              <div class="tag">
-                <div class="tag-title">日出时间</div>
-                <div class="tag-value">
-                  {{ weatherInfo.richushijian }}<span class="unit"></span>
-                </div>
-              </div>
-              <div class="tag">
-                <div class="tag-title">日落时间</div>
-                <div class="tag-value">
-                  {{ weatherInfo.riluoshijian }}<span class="unit"></span>
-                </div>
-              </div>
-            </div>
-          </div>
-        </el-col>
-        <el-col :span="19">
-          <panel :title="'损失电量分析'">
-            <multiple-bar-line-chart
-              :height="'100%'"
-              :lineData="chart1Line"
-              :barData="chart1Bar"
-              :units="['功率(万kW)', '电量(万kWh)']"
-            />
-          </panel>
-        </el-col>
-      </el-row>
-      <el-row class="bottom-charts">
-        <el-col :span="12">
-          <panel :title="'超短期风功率预测'">
-            <arrow-line-chart
-              :width="'100%'"
-              :height="'100%'"
-              :list="chart2List"
-              :units="['功率(万kW)', '风速(m/s)']"
-            />
-          </panel>
-        </el-col>
-        <el-col :span="12">
-          <panel :title="'短期风功率预测'">
-            <arrow-line-chart
-              :height="'100%'"
-              :list="chart3List"
-              :units="['功率(万kW)', '风速(m/s)']"
-            />
-          </panel>
-        </el-col>
-      </el-row>
-    </div>
-  </div>
-</template>
-
-<script>
-// import MultipleBarLineChart from "../../components/chart/combination/multiple-bar-line-chart.vue";
-import MultipleBarLineChart from "./multiple-bar-line-chart1.vue";
-// import ArrowLineChart from "../../components/chart/line/arrow-line-chart.vue";
-import ArrowLineChart from "./arrow-line-chart.vue";
-import svgIcon from "../../components/coms/icon/svg-icon.vue";
-import Panel from "../../components/coms/panel/panel.vue";
-import api from "@api/economic/index.js";
-export default {
-  components: { svgIcon, MultipleBarLineChart, Panel, ArrowLineChart },
-  setup() {},
-  data() {
-    return {
-      wpList: [],
-      wpId: "GJY_FDC",
-      wpName: "高家堰风电场",
-      weatherInfo: {},
-      chart1Bar: [],
-      chart1Line: [],
-      chart2List: [],
-      chart3List: [],
-      timer: null,
-    };
-  },
-  methods: {
-    tabSelect(item) {
-      this.wpId = item["id"];
-      this.wpName = item["name"];
-      {
-        this.getData();
-        this.getChart1();
-        this.getChart3();
-      }
-    },
-    async getWp() {
-      const res = await api.powercompareWindfarmAllAjax2({});
-
-      // this.API.requestData({
-      //   method: "GET",
-      //   subUrl: "powercompare/windfarmAllAjax"
-      // });
-      if (res) {
-        this.wpList = res.data.data.filter((ele) => {
-          return ele.id.indexOf("_FDC") > -1;
-        });
-      }
-    },
-    async getData() {
-      const res = await api.weatherWeatherInfo({
-        wpId: this.wpId,
-      });
-
-      // this.API.requestData({
-      //   method: "POST",
-      //   subUrl: "weather/weatherInfo",
-      //   data: {
-      //      wpId: this.wpId
-      //      },
-      // });
-      if (res) {
-        console.log("resWeather:", res);
-        this.weatherInfo = res.data.data;
-      }
-    },
-    async getChart1() {
-
-      // -----------------------------------------------------------------
-      const res = await  
-       api.weatherPowerChart({
-        wpId: this.wpId,
-      });
-      // this.API.requestData({
-      //   method: "POST",
-      //   subUrl: "weather/powerChart",
-      //   data: { wpId: this.wpId },
-      // });
-      if (res) {
-        const fdlValue = { title: "电量", yAxisIndex: 0, value: [] };
-        const glValue = { title: "功率", yAxisIndex: 1, value: [] };
-        const fsValue = { name: "风速", unit: "m/s", data: [] };
-        res.data.data.forEach((e) => {
-          if (fdlValue.value.length == 0) {
-            fdlValue.value.push({
-              text: new Date(e.time).formatDate("hh:mm"),
-              value: 0,
-            });
-          } else {
-            fdlValue.value.push({
-              text: new Date(e.time).formatDate("hh:mm"),
-              value: e.value1,
-            });
-          }
-          glValue.value.push({
-            text: new Date(e.time).formatDate("hh:mm"),
-            value: e.value2,
-          });
-          fsValue.data.push(e.value3);
-        });
-        this.chart1Bar = [fdlValue, glValue];
-        this.chart1Line = fsValue;
-      }
-    },
-    async getChart3() {
-      const res = await api.benchmarkingLineList({
-        wpId: this.wpId,
-      });
-
-      // this.API.requestData({
-      //   method: "POST",
-      //   subUrl: "weather/weatherChart",
-      //   data: {
-
-      //      wpId: this.wpId
-
-      //      },
-      // });
-      if (res) {
-        // 短期预测功率
-        {
-          const ycglValue = { title: "预测功率", yAxisIndex: 0, value: [] };
-          const sjglValue = { title: "实际功率", yAxisIndex: 0, value: [] };
-          const fsValue = { title: "风速", yAxisIndex: 1, value: [] };
-          let hour = new Date().getHours();
-          res.data.data.forEach((e) => {
-            if (ycglValue.value.length <= 24 + hour) {
-              ycglValue.value.push({
-                text: new Date(e.time).formatDate("hh:mm"),
-                value: e.value7,
-              });
-              sjglValue.value.push({
-                text: new Date(e.time).formatDate("hh:mm"),
-                value: e.value2,
-              });
-              fsValue.value.push({
-                text: new Date(e.time).formatDate("hh:mm"),
-                value: e.value6,
-              });
-            }
-          });
-          this.chart3List = [ycglValue, sjglValue, fsValue];
-        }
-        // 超短期预测功率
-        const cdqGlValue = { title: "预测功率", yAxisIndex: 0, value: [] };
-        const sjglValue = { title: "实际功率", yAxisIndex: 0, value: [] };
-        const fsValue = { title: "风速", yAxisIndex: 1, value: [] };
-        let hour = new Date().getHours();
-        res.data.data.forEach((e) => {
-          if (cdqGlValue.value.length <= 4 + hour) {
-            cdqGlValue.value.push({
-              text: new Date(e.time).formatDate("hh:mm"),
-              value: e.value4,
-            });
-            sjglValue.value.push({
-              text: new Date(e.time).formatDate("hh:mm"),
-              value: e.value2,
-            });
-            fsValue.value.push({
-              text: new Date(e.time).formatDate("hh:mm"),
-              value: e.value6,
-            });
-          }
-        });
-        this.chart2List = [cdqGlValue, sjglValue, fsValue];
-      }
-    },
-  },
-  created() {
-    this.getWp();
-    let that = this;
-    that.$nextTick(() => {
-      that.getData();
-      that.getChart1();
-      that.getChart3();
-      that.timer = setInterval(() => {
-        that.getData();
-        that.getChart1();
-        that.getChart3();
-      }, 60000);
-    });
-  },
-  unmounted() {
-    clearInterval(this.timer);
-    this.timer = null;
-  },
-};
-</script>
-
-<style lang="less">
-.forecast-system {
-  .com-panel {
-    .panel-body {
-      height: 43vh;
-    }
-  }
-  .bottom-charts {
-    .panel-body {
-      height: 35vh;
-    }
-  }
-  .action-bar {
-    .selections {
-      flex: 1 0 auto;
-      display: flex;
-
-      .item {
-        flex: 0 0 94px;
-        text-align: center;
-        height: 33px;
-        line-height: 33px;
-        margin-right: 8px;
-        color: @font-color;
-        font-size: @fontsize-s;
-        background: fade(@gray, 20);
-        border: 1px solid fade(@gray, 20);
-
-        &:hover,
-        &.active {
-          background: fade(@green, 20);
-          border: 1px solid @green;
-          color: @green;
-          cursor: pointer;
-        }
-      }
-    }
-  }
-
-  // 风场信息
-  .fc-info {
-    .fc-item {
-      & > .title {
-        background: fade(@gray, 20);
-        padding: 0 1.4815vh;
-        line-height: 27px;
-        color: fade(@white, 75);
-        font-size: @fontsize-s;
-        margin-bottom: 0.7407vh;
-      }
-
-      & + .fc-item {
-        margin-left: 8px;
-      }
-
-      .tags {
-        display: flex;
-        flex-wrap: wrap;
-
-        .tag {
-          flex: 1 0 calc(100% / 3 - 8px);
-          background: fade(@gray, 20);
-          margin-bottom: 8px;
-          height: 10vh;
-          .tag-title {
-            font-size: 12px;
-            color: @gray-l;
-            line-height: 24px;
-            background: fade(@gray, 40);
-            text-align: center;
-          }
-
-          .tag-value {
-            position: relative;
-            font-size: 20px;
-            color: @green;
-            text-align: center;
-            padding: 3vh 0;
-            .unit {
-              position: absolute;
-              color: @gray;
-              font-size: 12px;
-              bottom: 8px;
-              right: 8px;
-              top: 40%;
-            }
-          }
-
-          & + .tag {
-            margin-left: 8px;
-          }
-
-          &:nth-child(1) {
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            i {
-              width: 56px;
-              height: 56px;
-              svg {
-                width: 56px;
-                height: 56px;
-              }
-            }
-          }
-
-          &:nth-child(3n + 1) {
-            margin-left: 0px;
-          }
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 156
src/views/NewPages/form.vue

@@ -1,156 +0,0 @@
-<template>
-  <div class="from">
-    <div class="btns">
-      <!-- <button class="btn green">保存</button> -->
-      <button class="btn green" @click="back">返回</button>
-      <button class="btn green" @click="blackCZ">场站</button>
-    </div>
-    <div class="tableForm">
-      <el-table
-        :data="tableData"
-        :header-cell-style="{
-          height: '40px',
-          background: 'rgba(22, 31, 30,1)',
-          color: '#b2bdc0',
-          'border-bottom': '0px solid red',
-        }"
-        :cell-style="{
-          height: '40px',
-          background: 'rgba(0, 0, 0,1)',
-          'border-bottom': 'solid 0px #242424',
-        }"
-        stripe
-        style="
-          width: 100%;
-          margin-bottom: 10px;
-          background: 'rgba(83, 98, 104,1)';
-        "
-      >
-        <el-table-column
-          v-for="(i, index) in tableData[0]
-            ? Object.keys(tableData[0]).sort(function (n, m) {
-                return parseInt(n.split('_')[0]) - parseInt(m.split('_')[0]);
-              })
-            : ''"
-          :key="index"
-          :prop="i"
-          :label="i === 'name' ? '名字' : i === 'date' ? '日期' : i.slice(2)"
-          :fixed="i === 'name' || i === 'date' ? 'left' : null"
-          width="160"
-          align="center"
-        >
-          <template #default="scope">
-            <!-- <el-input @input="send(scope.row)"
-              v-if="scope.row.name =='止码' && i != 'name' && i != 'date'" 
-              v-model="scope.row[i]" 
-              :disabled='timeNow.isConfirm == 1'>
-              </el-input> -->
-            <el-input
-              @input="send(scope.row)"
-              v-if="scope.row.name == '止码' && i != 'name' && i != 'date'"
-              v-model="scope.row[i]"
-              :disabled="true"
-              style="width: 75%"
-            ></el-input>
-            <label v-else>{{ scope.row[i] }}</label>
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-  </div>
-</template>
-
-<script>
-import api from "@api/economic/index.js";
-export default {
-  data() {
-    return {
-      tableData: [],
-      timeNow: {},
-    };
-  },
-  created() {
-    (this.timeNow = this.$route.query), this.getFormList();
-  },
-  methods: {
-    getFormList() {
-      api
-        .analysisplusBdzlist({
-          wpid: this.timeNow.wpid,
-          theday: this.timeNow.theday,
-        })
-        .then((res) => {
-          for (let i = 0; i < res.data.length ? res.data.length : ""; i++) {
-            for (let key in res.data[i]) {
-              if (key === "date") {
-                res.data[i][key] = new Date(res.data[i][key]).formatDate(
-                  "yyyy-MM-dd"
-                );
-              }
-            }
-          }
-
-          // for (let x of res.data) {
-          //   for (let y in x) {
-          //    y = y.substring(y.indexOf("_", y.indexOf("_")) + 1);
-          //   }
-          // }
-          this.tableData = res.data;
-          // console.log(" res.data", res.data);
-        });
-    },
-    // 表格
-    handleClick(row) {},
-    back() {
-      this.$router.push({
-        path: "/others/statisticAnalysis",
-        query: {
-          theday: this.timeNow.theday,
-          wpid: this.timeNow.wpid,
-          beginDate: this.timeNow.beginDate,
-          endDate: this.timeNow.endDate,
-        },
-      });
-    },
-    blackCZ() {
-      this.$router.push({
-        path: "/others/statisticAnalysis/station",
-        query: {
-          theday: this.timeNow.theday,
-          wpid: this.timeNow.wpid,
-          beginDate: this.timeNow.beginDate,
-          endDate: this.timeNow.endDate,
-        },
-      });
-    },
-  },
-};
-</script>
-
-
-<style lang="less" scoped>
-.btn:hover {
-  color: #fff;
-}
-.btn {
-  margin: 20px;
-}
-.tableForm {
-  margin: 20px 20px 0 20px;
-}
-
-/deep/ .fixed {
-  background-color: black !important;
-}
-/deep/.el-table__fixed::before {
-  height: 0;
-}
-/deep/.main-body
-  .el-table.el-table--striped
-  .el-table__body
-  tr.el-table__row--striped
-  td {
-  opacity: 1 !important;
-  background-color: yellowgreen;
-}
-</style>

+ 0 - 685
src/views/NewPages/history-search.vue

@@ -1,685 +0,0 @@
-<template>
-  <div class="">
-    <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
-              size="medium"
-              v-model="form.dateArea"
-              type="datetimerange"
-              :picker-options="pickerOptions"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              align="right"
-            >
-            </el-date-picker>
-          </div>
-        </div>
-        <!-- <div class="query-item">
-          <div class="lable">间隔:</div>
-          <div class="search-input">
-            <el-input v-model="form.interval" type="number"></el-input>
-          </div>
-        </div> -->
-        <!-- <div class="query-item">
-          <div class="lable">间隔:</div>
-          <div class="search-input">
-            <el-checkbox
-              v-model="form.autoReq"
-              label="刷新"
-              :border="true"
-            ></el-checkbox>
-          </div>
-        </div> -->
-        <div class="query-item">
-          <div class="lable"></div>
-          <div class="search-input">
-            <transition name="el-zoom-in-center">
-              <el-radio-group
-                v-model="form.type"
-                size="small"
-                v-show="form.interval"
-              >
-                <el-radio label="0" @click.prevent="getRadio('0')"
-                  >最大</el-radio
-                >
-                <el-radio label="1" @click.prevent="getRadio('1')"
-                  >最小</el-radio
-                >
-                <el-radio label="2" @click.prevent="getRadio('2')"
-                  >平均</el-radio
-                >
-              </el-radio-group>
-            </transition>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions"></div>
-    </div>
-    <div class="left-box">
-      <div class="steps">
-        <el-steps :active="active" finish-status="success">
-          <el-step title="类型"></el-step>
-          <el-step title="设备结构"></el-step>
-          <el-step title="关键参数"></el-step>
-        </el-steps>
-      </div>
-      <div class="btns">
-        <button class="next-btn btn" @click="last">上一步</button>
-        <button v-if="this.active <= 2" class="next-btn btn" @click="next">
-          下一步
-        </button>
-        <button
-          v-if="this.active === 3"
-          class="btn green"
-          @click="renderCharts"
-        >
-          生成曲线
-        </button>
-
-        <button class="next-btn btn" @click="reset">重置</button>
-      </div>
-      <div class="cardBox">
-        <el-card class="box-card leixing" v-show="this.active === 1">
-          <template v-slot:header class="clearfix">
-            <span>类型</span>
-            <!-- --------------- -->
-            <!-- <el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button> -->
-            <!-- ------------- -->
-          </template>
-          <div>
-            <el-radio-group
-              v-model="form.fjType"
-              size="big"
-              @change="
-                (fjType) => {
-                  resetForm();
-                }
-              "
-            >
-              <el-form ref="form" :model="form">
-                <el-form-item style="margin-bottom: 5px; float: left">
-                  <el-radio border size="medium" label="1"
-                    >单风机多参数对比</el-radio
-                  >
-                </el-form-item>
-                <el-form-item
-                  style="margin-bottom: 5px; float: left; margin-left: 20px"
-                >
-                  <el-radio border size="medium" label="2"
-                    >多风机单参数对比</el-radio
-                  >
-                </el-form-item>
-              </el-form>
-            </el-radio-group>
-          </div>
-        </el-card>
-        <el-card class="box-card" v-show="this.active === 2">
-          <template v-slot:header class="clearfix">
-            <span>设备结构</span>
-          </template>
-          <div>
-            <div class="treeBox">
-              <el-input
-                size="small"
-                placeholder="输入以检索"
-                :disabled="!treeData.length"
-                v-model="filterText"
-              ></el-input>
-              <el-tree
-                ref="treeRef"
-                node-key="id"
-                :data="treeData"
-                :props="treeProps"
-                :show-checkbox="true"
-                :highlight-current="true"
-                :filter-node-method="filterNode"
-                @check-change="getTreeChecked"
-              ></el-tree>
-            </div>
-          </div>
-        </el-card>
-        <el-card class="box-card" v-show="this.active === 3">
-          <template v-slot:header class="clearfix">
-            <span>关键参数</span>
-          </template>
-          <div class="selectBox treeBox">
-            <el-input
-              size="small"
-              placeholder="输入以检索"
-              :disabled="!gjcsOptions.length"
-              v-model="filterText1"
-            ></el-input>
-            <el-tree
-              ref="treeRef1"
-              node-key="code"
-              :data="gjcsOptions"
-              :props="{ children: null, label: 'description' }"
-              :show-checkbox="true"
-              :highlight-current="true"
-              :filter-node-method="filterNode1"
-              @check-change="getTreeChecked1"
-            ></el-tree>
-            <!-- ----------------------- -->
-            <!-- <el-select style="width:100%;" v-model="form.gjcs" filterable clearable :multiple="!treeIsMultiple"
-            placeholder="输入以检索" @change="(res) => { this.$forceUpdate(); }">
-            <el-option v-for="item in gjcsOptions" :key="item.id" :label="item.description" :value="item.code">
-            </el-option>
-          </el-select> -->
-            <!-- ----------------------------- -->
-          </div>
-        </el-card>
-      </div>
-    </div>
-    <div class="right-box">
-      <div class="chartsBox">
-        <div id="lineChart" style="width: 100%; height: 100%"></div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import * as echarts from "echarts";
-import api from "@api/economic/index.js";
-
-export default {
-  data() {
-    return {
-      active: 1,
-      form: {
-        pointId: "",
-        pointName: "",
-        autoReq: false,
-        dateArea: [
-          this.fmtDate(
-            new Date(
-              new Date().setTime(new Date().getTime() - 3600 * 1000 * 24)
-            )
-          ),
-          this.fmtDate(new Date()),
-        ],
-        interval: "",
-        type: "",
-        fjType: "1",
-        gjcs: "",
-      },
-
-      treeIsMultiple: false,
-      filterText: "",
-      filterText1: "",
-
-      treeData: [
-        {
-          id: 1,
-          label: "一级 2",
-          children: [
-            {
-              id: 3,
-              label: "二级 2-1",
-              children: [
-                {
-                  id: 4,
-                  label: "三级 3-1-1",
-                },
-                {
-                  id: 5,
-                  label: "三级 3-1-2",
-                  disabled: true,
-                },
-              ],
-            },
-            {
-              id: 2,
-              label: "二级 2-2",
-              disabled: true,
-              children: [
-                {
-                  id: 6,
-                  label: "三级 3-2-1",
-                },
-                {
-                  id: 7,
-                  label: "三级 3-2-2",
-                  disabled: true,
-                },
-              ],
-            },
-          ],
-        },
-      ],
-      gjcsOptions: [],
-
-      treeProps: {
-        children: "children",
-        label: "label",
-      },
-
-      pickerOptions: {
-        shortcuts: [
-          {
-            text: "最近一天",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近一周",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近一个月",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近三个月",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-        ],
-      },
-    };
-  },
-
-  mounted() {
-    let that = this;
-    that.$nextTick(() => {
-      that.getEquipmentStructure();
-      that.getEquipmentParams();
-    });
-  },
-
-  methods: {
-    next() {
-      if (this.active++ > 2) {
-        this.active = 0;
-      }
-    },
-    last() {
-      if (this.active-- <= 1) {
-        this.active = 1;
-      }
-    },
-    reset() {
-      this.active = 1;
-    },
-
-    // 获取设备结构
-    getEquipmentStructure() {
-      api.paramComparisonEquipmentStructure({}).then((res) => {
-        // 请求成功的回调
-        let treeData = [];
-
-        res.data.forEach((ele) => {
-          let findRes = treeData.find((findEle) => {
-            return ele.windpowerstationid === findEle.label;
-          });
-          if (!findRes) {
-            let treeTemp = {
-              label: ele.windpowerstationid,
-              children: [],
-            };
-            treeTemp.children.push({
-              label: ele.name,
-              id: ele.id,
-            });
-            treeData.push(treeTemp);
-          } else {
-            findRes.children.push({
-              label: ele.name,
-              id: ele.id,
-            });
-          }
-        });
-        this.treeData = treeData;
-      });
-    },
-    // 获取关键节点
-    getEquipmentParams() {
-      api.paramComparisonEquipmentParams({}).then((res) => {
-        this.gjcsOptions = res.data;
-      });
-    },
-    // 获取单选结果
-    getRadio(type) {
-      if (type === this.form.type && this.form.type !== "") {
-        this.form.type = "";
-      } else {
-        this.form.type = type;
-      }
-    },
-    // 渲染图表
-    renderCharts() {
-      let that = this;
-      this.$nextTick(() => {
-        let begin = this.form.dateArea.length
-          ? new Date(this.form.dateArea[0]).formatDate("yyyy-MM-dd hh:mm:ss")
-          : "";
-        let end = this.form.dateArea.length
-          ? new Date(this.form.dateArea[1]).formatDate("yyyy-MM-dd hh:mm:ss")
-          : "";
-        let interval = this.form.interval;
-        let type = this.form.type;
-        let paramtype = this.form.fjType;
-        let wts = [];
-        let wtsArray = this.$refs.treeRef.getCheckedNodes();
-        let params = [];
-        let paramsArray = this.$refs.treeRef1.getCheckedNodes();
-        // let params = that.form.gjcs;
-        // console.log("wtsArray", wtsArray);
-        wtsArray.forEach((pEle) => {
-          if (pEle.id) {
-            wts.push(pEle.id);
-          } else {
-            pEle.children.forEach((cEle) => {
-              wts.push(cEle.id);
-            });
-          }
-        });
-
-        paramsArray.forEach((pEle) => {
-          params.push(pEle.code);
-        });
-        let data = {};
-        data.begin = begin;
-        data.end = end;
-        interval && (data.interval = interval);
-        type && (data.type = type);
-        data.paramtype = paramtype;
-        data.wts = wts.toString();
-        data.params = params.toString();
-        console.log("data", data);
-        if (begin && end && paramtype && wts.length && params.length) {
-          api.paramComparisonGeneratingCurve(data).then((res) => {
-            if (res.data.length) {
-              let xAxisData = []; // x轴标题
-              let seriesData = []; // 折线图数据
-              let keyArray = [];
-              if (this.form.fjType === "1") {
-                params.forEach((ele) => {
-                  let findRes = this.gjcsOptions.find((findEle) => {
-                    return ele === findEle.code;
-                  });
-                  keyArray.push(findRes.description);
-                });
-              } else {
-                wtsArray.forEach((pEle) => {
-                  if (pEle.id) {
-                    keyArray.push(pEle.label);
-                  } else {
-                    pEle.children.forEach((cEle) => {
-                      keyArray.push(cEle.label);
-                    });
-                  }
-                });
-              }
-              keyArray.forEach((ele) => {
-                seriesData.push({
-                  data: [],
-                  type: "line",
-                  smooth: true,
-                  name: ele,
-                });
-              });
-              res.data.forEach((pEle) => {
-                xAxisData.push(this.fmtDate(new Date(pEle.time)));
-                keyArray.forEach((cEle, cIndex) => {
-                  seriesData[cIndex].data.push(pEle[cEle] || null);
-                });
-              });
-              document
-                .getElementById("lineChart")
-                .removeAttribute("_echarts_instance_");
-              let chartDom = document.getElementById("lineChart");
-              let myChart = echarts.init(chartDom);
-              let option = {
-                xAxis: {
-                  type: "category",
-                  data: xAxisData,
-                },
-                yAxis: {
-                  type: "value",
-                },
-                series: seriesData,
-                tooltip: {
-                  trigger: "axis",
-                  axisPointer: {
-                    type: "cross",
-                    label: {
-                      backgroundColor: "#6a7985",
-                    },
-                  },
-                },
-              };
-              option && myChart.setOption(option);
-            } else {
-              this.BASE.showMsg({
-                type: "warning",
-                msg: "所选参数暂无数据,请切换参数后再次尝试",
-              });
-            }
-          });
-        } else {
-          this.BASE.showMsg({
-            msg: "无法生成,请检查 日期、设备结构与关键参数是否已选择",
-          });
-        }
-      });
-    },
-    // 过滤树形节点
-    filterNode(value, data) {
-      if (!value) return true;
-      return data.label.indexOf(value) !== -1;
-    },
-    // 过滤树形节点
-    filterNode1(value, data) {
-      if (!value) return true;
-      return data.description.indexOf(value) !== -1;
-    },
-    // 获取树形选中
-    getTreeChecked(data, checked, node) {
-      if (!this.treeIsMultiple) {
-        if (checked === true) {
-          this.checkedId = data.id;
-          this.$refs.treeRef.setCheckedKeys([data.id]);
-        } else {
-          if (this.checkedId == data.id) {
-            this.$refs.treeRef.setCheckedKeys([]);
-          }
-        }
-      }
-    },
-    // 获取树形选中
-    getTreeChecked1(data, checked, node) {
-      if (this.treeIsMultiple) {
-        if (checked === true) {
-          this.checkedId = data.code;
-          this.$refs.treeRef1.setCheckedKeys([data.code]);
-        } else {
-          if (this.checkedId == data.code) {
-            this.$refs.treeRef1.setCheckedKeys([]);
-          }
-        }
-      }
-    },
-    // 重置表单
-    resetForm() {
-      this.form.fjType === "1"
-        ? (this.treeIsMultiple = false)
-        : (this.treeIsMultiple = true);
-      this.$refs.treeRef.setCheckedKeys([]);
-      this.$refs.treeRef1.setCheckedKeys([]);
-      this.form.gjcs = "";
-      this.$forceUpdate();
-      document
-        .getElementById("lineChart")
-        .removeAttribute("_echarts_instance_");
-      echarts.init(document.getElementById("lineChart"));
-    },
-
-    // 格式化日期
-    fmtDate(date) {
-      let curDate = date || new Date();
-      let year = curDate.getFullYear();
-      let mouth = curDate.getUTCMonth() + 1;
-      let day = curDate.getDate();
-      let hour = curDate.getHours();
-      let minutes = curDate.getMinutes();
-      let seconds = curDate.getSeconds();
-      return (
-        year +
-        "-" +
-        (mouth < 10 ? "0" + mouth : mouth) +
-        "-" +
-        (day < 10 ? "0" + day : day) +
-        " " +
-        (hour < 10 ? "0" + hour : hour) +
-        ":" +
-        (minutes < 10 ? "0" + minutes : minutes) +
-        ":" +
-        (seconds < 10 ? "0" + seconds : seconds)
-      );
-    },
-  },
-
-  watch: {
-    filterText(val) {
-      this.$refs.treeRef.filter(val);
-    },
-
-    filterText1(val) {
-      this.$refs.treeRef1.filter(val);
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.left-box {
-  width: 27%;
-}
-.right-box {
-  width: 500px;
-  height: 500px;
-  // background-color: aqua;
-  position: absolute;
-  top: 300px;
-  right: 900px;
-}
-.searchPage1 {
-  display: flex;
-  flex-direction: row;
-  width: 37%;
-}
-.searchBox1 {
-  width: 80%;
-  display: flex;
-  justify-content: flex-start;
-  align-items: center;
-  position: relative;
-
-  .btnBox {
-    position: absolute;
-    left: calc(100% + 60px);
-    top: 0;
-    display: flex;
-    justify-content: flex-start;
-    align-items: center;
-  }
-
-  .el-input {
-    width: 150px;
-  }
-}
-
-.cardBox {
-  width: 100%;
-  // display: flex;
-  // // justify-content: space-between;
-  // align-items: center;
-  // font-size: 16px;
-  // margin-top: 20px;
-
-  .el-card {
-    width: 100%;
-    height: 650px;
-    margin-left: 20px;
-
-    .treeBox {
-      width: 100%;
-
-      .el-tree {
-        width: 100%;
-        height: 700px;
-        margin-top: 10px;
-        overflow-y: scroll;
-      }
-    }
-  }
-  // .leixing {
-  //   width: 10%;
-  //   height: 260px;
-  // }
-}
-
-.selectBox {
-  .el-select {
-    max-height: 150px;
-    overflow-y: scroll;
-  }
-}
-
-.chartsBox {
-  width: 1400px;
-  height: 600px;
-}
-</style>
-<style lang="less">
-.cardBox {
-  .el-card__header {
-    padding: 5px 20px;
-  }
-
-  .el-card__body {
-    padding: 10px 20px;
-  }
-}
-.el-checkbox__input {
- display: block;
-}
-.el-checkbox__label{
-  padding-left: 0;
-}
-.steps {
-  margin: 30px;
-  width: 100%;
-  margin-top: 35px;
-}
-.next-btn {
-  // float: left;
-  // margin-bottom: 40px;
-  // margin-left: 27px;
-}
-.btns {
-  margin: 20px;
-}
-</style>

+ 0 - 230
src/views/NewPages/iframe4.vue

@@ -1,230 +0,0 @@
-<template>
-  <div class="iframe4">
-    <!-- <iframe src="http://10.75.17.10/doc/page/preview.asp" frameborder="0" class="iframe-2"></iframe> -->
-    <div class="iframe-1">
-      <div class="iframe4-title" @click="jumpUrl('/save/personnel')">
-        人员健康
-      </div>
-      <personnel></personnel>
-    </div>
-    <div class="iframe-2">
-      <div class="iframe4-title">视频监视</div>
-      <div
-        class="videoDiv"
-        v-for="(pItem, pIndex) in videoArray"
-        :key="pIndex"
-        width="95%"
-        height="48vh"
-        @click="openVideoDialog(pItem)"
-      >
-        <div class="mask"></div>
-        <!-- <iframe :src="pItem.url + pItem.token" /> -->
-        <hlsVideo :code="pItem.code" :class="pItem.class" />
-      </div>
-    </div>
-    <div class="iframe-3">
-      <div
-        class="iframe4-title"
-        @click="openUrl('http://192.168.1.52/webiui/#/online')"
-      >
-        智能安全帽
-      </div>
-      <iframe
-        src="http://192.168.1.52/webiui/#/online"
-        frameborder="0"
-      ></iframe>
-    </div>
-    <div class="iframe-4">
-      <div class="iframe4-title">数字孪生</div>
-      <div class="iframe-4-body"></div>
-    </div>
-    <el-dialog
-      top="50px"
-      v-model="showVideoDialog"
-      width="80vw"
-      :destroy-on-close="true"
-      :custom-class="videoDialogClass"
-    >
-      <!-- <iframe
-        class="videoBoxiframe"
-        width="100%"
-        height="600px"
-        :src="dialogVideoUrl"
-      /> -->
-      <hlsVideo
-        class="videoBoxiframe"
-        width="95%"
-        height="800px"
-        :code="dialogVideoUrl"
-      />
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import personnel from "./personnel.vue";
-import PanelSand from "@com/coms/panel/panel-sand.vue";
-import hlsVideo from "../SandTable/component/hls.vue";
-export default {
-  setup() {},
-  components: { personnel, PanelSand, hlsVideo },
-  data() {
-    return {
-      showVideoDialog: false,
-      dialogVideoUrl: "",
-      // videoArray: [
-      //   {
-      //     url: "http://10.155.32.4:9984/ws.html",
-      //     token: "?token=SBQ_FDC_SC&autoplay=true",
-      //     switch: true,
-      //   },
-      //   {
-      //     url: "http://10.155.32.4:9984/ws.html",
-      //     token: "?token=NSS_FDC_SC&autoplay=true",
-      //     switch: true,
-      //   },
-      //   {
-      //     url: "http://10.155.32.4:9984/ws.html",
-      //     token: "?token=QS_FDC_SC&autoplay=true",
-      //     switch: true,
-      //   },
-      //   {
-      //     url: "http://10.155.32.4:9984/ws.html",
-      //     token: "?token=MHS_FDC_SC&autoplay=true",
-      //     switch: true,
-      //   },
-      //   {
-      //     url: "http://10.155.32.4:9984/ws.html",
-      //     token: "?token=XS_FDC_SC&autoplay=true",
-      //     switch: true,
-      //   },
-      //   {
-      //     url: "http://10.155.32.4:9984/ws.html",
-      //     token: "?token=PL_GDC_SC&autoplay=true",
-      //     switch: true,
-      //   },
-      // ],
-      videoArray: [
-        { 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 },
-      ],
-    };
-  },
-  methods: {
-    openVideoDialog(item) {
-      // if (item.url && item.token) {
-      //   this.dialogVideoUrl = item.url + item.token;
-      //   this.showVideoDialog = true;
-      // }
-      if (item.code) {
-        this.dialogVideoUrl = item.code;
-        this.showVideoDialog = true;
-      }
-    },
-    jumpUrl(url) {
-      this.$router.push(url);
-    },
-    openUrl(url) {
-      window.open(url);
-    },
-  },
-  created() {},
-};
-</script>
-
-<style lang="less">
-.iframe4 {
-  background: url(../../assets/background-iframe4.png) no-repeat;
-  background-size: 100% 100%;
-  background-position-y: -5.1vh;
-  display: flex;
-  flex-wrap: wrap;
-  height: 98vh;
-  .iframe-1,
-  .iframe-2,
-  .iframe-3,
-  .iframe-4 {
-    width: 36.8vw;
-    height: 37.31vh;
-  }
-  .iframe4-title {
-    position: absolute;
-    text-align: center;
-    width: 36.8vw;
-    margin-top: -3.3vh;
-    text-align: center;
-    font-size: 14pt;
-    color: #b3bdc0;
-    cursor: pointer;
-  }
-  .iframe-1 {
-    margin-left: 6.5vw;
-    margin-top: 5.3vh;
-    .personnel {
-      height: calc(36.6vh);
-      .personnel-box-item {
-        width: 11.5vw;
-      }
-    }
-  }
-  .iframe-2 {
-    flex: 0 0 36.69vw;
-    margin-left: 11.9vw;
-    margin-top: 5.5vh;
-    position: relative;
-    .videoDiv {
-      display: flex;
-      height: 18.2vh;
-      width: 12.2vw;
-      float: left;
-      position: relative;
-      iframe {
-        height: 18.2vh;
-        width: 12.2vw;
-        // float: left;
-      }
-      .mask {
-        cursor: pointer;
-        flex: 0 0 100%;
-        position: absolute;
-        left: 0;
-        top: 0;
-        width: 100%;
-        height: 100%;
-        z-index: 5;
-      }
-    }
-  }
-  .iframe-3,
-  .iframe-4 {
-    margin-top: -2.2vh;
-    height: calc(36.5vh);
-    width: 36.77vw;
-  }
-  .iframe-3 {
-    margin-left: 6.5vw;
-    // background-color: seashell;
-    iframe {
-      height: 100%;
-      width: 100%;
-    }
-  }
-  .el-dialog {
-    background: rgba(18, 29, 28, 0.95);
-  }
-  .iframe-4 {
-    margin-left: 11.9vw;
-    .iframe-4-body {
-      background-image: url("../../assets/3Dszls.png");
-      // background-color: aqua;
-      background-size: cover;
-      height: 100%;
-      width: 100%;
-    }
-  }
-}
-</style>

+ 0 - 242
src/views/NewPages/intelligent-alarm-center.vue

@@ -1,242 +0,0 @@
-<template>
-    <div class="intelligent-alarm-center">
-        <div class="intelligent-alarm-center-btn">
-            <div @click="clickBtn(index)" class="i-btn" v-for="(btn, index) of btns" :key="index" :class="{ active: index == btnIndex }">{{ btn }}</div>
-        </div>
-        <div class="intelligent-alarm-center-box">
-            <div
-                class="intelligent-alarm-center-item"
-                v-for="(panel, index) of panels"
-                :key="index"
-                :class="{ active: index == panelIndex }"
-                @click="clickItem(index)"
-            >
-                <div class="intelligent-alarm-center-icon">
-                    <span class="i-svg-icon">
-                        <SvgIcon :svgid="panel.icon"></SvgIcon>
-                    </span>
-                </div>
-                <div class="intelligent-alarm-center-num">{{ panel.num }}</div>
-                <div class="intelligent-alarm-center-name">{{ panel.name }}</div>
-            </div>
-        </div>
-    </div>
-</template>
-
-<script>
-import SvgIcon from "@com/coms/icon/svg-icon.vue";
-export default {
-    // 名称
-    name: "intelligent-alarm-center",
-    // 使用组件
-    components: {
-        SvgIcon,
-    },
-    // 数据
-    data() {
-        return {
-            btns: ["光字牌", "实时报警", "历史报警"],
-            btnIndex: 0,
-            panels: [
-                {
-                    icon: "svg-jkp",
-                    num: "5,916",
-                    name: "智能经营管控系统",
-                },
-                {
-                    icon: "svg-iac-yx",
-                    num: "5,916",
-                    name: "智能营销管控系统",
-                },
-                {
-                    icon: "svg-iac-jc",
-                    num: "5,916",
-                    name: "智能工程管控系统",
-                },
-                {
-                    icon: "svg-iac-dj",
-                    num: "5,916",
-                    name: "智能党建系统",
-                },
-                {
-                    icon: "svg-iac-p",
-                    num: "5,916",
-                    name: "两票系统",
-                },
-                {
-                    icon: "svg-iac-jj",
-                    num: "5,916",
-                    name: "智能经济运行系统",
-                },
-                {
-                    icon: "svg-iac-oa",
-                    num: "5,916",
-                    name: "OA及生产管理系统",
-                },
-                {
-                    icon: "svg-iac-wz",
-                    num: "5,916",
-                    name: "智能物资系统",
-                },
-                {
-                    icon: "svg-iac-aq",
-                    num: "5,916",
-                    name: "智能安全系统",
-                },
-            ],
-            panelIndex: 1,
-        };
-    },
-    // 函数
-    methods: {
-        clickBtn: function(index) {
-            this.btnIndex = index;
-        },
-        clickItem: function(index) {
-            this.panelIndex = index;
-        },
-    },
-    // 生命周期钩子
-    beforeCreate() {
-        // 创建前
-    },
-    created() {
-        // 创建后
-    },
-    beforeMount() {
-        // 渲染前
-    },
-    mounted() {
-        // 渲染后
-    },
-    beforeUpdate() {
-        // 数据更新前
-    },
-    updated() {
-        // 数据更新后
-    },
-};
-</script>
-
-<style lang="less">
-.intelligent-alarm-center {
-    widows: 100%;
-    height: calc(100vh - 90px);
-    overflow-y: auto;
-
-    .intelligent-alarm-center-btn {
-        display: flex;
-
-        .i-btn {
-            width: 11.296vh;
-            height: 3.056vh;
-            line-height: 3.056vh;
-            background: #53626833;
-            border: 1px solid #53626833;
-            text-align: center;
-            cursor: pointer;
-            font-size: 1.296vh;
-            color: #b3bdc0;
-            transition: all 0.3s;
-
-            + .i-btn {
-                margin-left: 0.926vh;
-            }
-
-            &:hover,
-            &.active {
-                border: 1px solid #05bb4c;
-                background: #05bb4c33;
-                color: #05bb4c;
-            }
-        }
-    }
-
-    .intelligent-alarm-center-box {
-        display: flex;
-        flex-wrap: wrap;
-
-        .intelligent-alarm-center-item {
-            width: 360px;
-            height: 14.259vh;
-            background: #53626833;
-            border: 1px solid #53626833;
-            position: relative;
-            overflow: hidden;
-            margin: 1.481vh 1.481vh 0 0;
-            cursor: pointer;
-            transition: all 0.3s;
-
-            .intelligent-alarm-center-icon {
-                position: absolute;
-                width: 13.889vh;
-                height: 13.889vh;
-                background: #7a909933;
-                border-radius: 50%;
-                right: -2.778vh;
-                bottom: -2.778vh;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-
-                .i-svg-icon {
-                    font-size: 0;
-                    line-height: 0;
-                    svg {
-                        width: 5.093vh;
-                        height: 5.093vh;
-                        use {
-                            fill: #536268;
-                            width: 5.093vh;
-                            height: 5.093vh;
-                        }
-                    }
-                }
-            }
-
-            .intelligent-alarm-center-num {
-                font-size: 3.148vh;
-                font-weight: 400;
-                color: #ffffff;
-                line-height: 3.241vh;
-                margin: 3.704vh 0 0 2.407vh;
-            }
-
-            .intelligent-alarm-center-name {
-                font-size: 1.481vh;
-                font-weight: 400;
-                color: #b3bdc0;
-                line-height: 30px;
-                margin: 1.481vh 0 0 2.407vh;
-            }
-
-            &:hover,
-            &.active {
-                background: #05bb4c33;
-                border: 1px solid #05bb4c;
-                margin-top: 0.556vh;
-
-                .intelligent-alarm-center-icon {
-                    background: #07ED5F33;
-
-                    .i-svg-icon {
-                        svg {
-                            use {
-                                fill: #05BB4C;
-                            }
-                        }
-                    }
-                }
-
-                .intelligent-alarm-center-num {
-                    color: #05BB4C;
-                }
-
-                .intelligent-alarm-center-name {
-                    color: #FFFFFF;
-                }
-            }
-        }
-    }
-}
-</style>

+ 0 - 489
src/views/NewPages/knowledge-base.vue

@@ -1,489 +0,0 @@
-<template>
-  <div class="knowledge-base">
-    <el-row class="mg-b-16">
-      <el-col :span="8">
-        <panel class="outline" :title="'故障体系'" :icon="'fa fa-warning'" :subTitle="3347" :showLine="false">
-          <div class="table">
-            <div>
-              <table style="width:100%;" border="0" cellspacing="0">
-                <tbody>
-                  <tr>
-                    <td style="width:150px;">
-                      UP77
-                    </td>
-                    <td class="green num" style="width:105px;">
-                      409
-                    </td>
-                    <td style="width:350px;">
-                      <div class="percent-item">
-                        完成度
-                        <div class="percent-bar" style="">
-                          <div class="percent-value" style="width: 12%"></div>
-                        </div>
-                        <span class="perent-num">12%</span>
-                      </div>
-                    </td>
-                  </tr>
-                  <tr>
-                    <td style="width:150px;">
-                      UP82
-                    </td>
-                    <td class="green num" style="width:105px;">
-                      409
-                    </td>
-                    <td style="width:350px;">
-                      <div class="percent-item">
-                        完成度
-                        <div class="percent-bar" style="">
-                          <div class="percent-value" style="width: 12%"></div>
-                        </div>
-                        <span class="perent-num">12%</span>
-                      </div>
-                    </td>
-                  </tr>
-                  <tr>
-                    <td style="width:150px;">
-                      UP86
-                    </td>
-                    <td class="green num" style="width:105px;">
-                      0
-                    </td>
-                    <td style="width:350px;">
-                      <div class="percent-item">
-                        完成度
-                        <div class="percent-bar" style="">
-                          <div class="percent-value" style="width: 0%"></div>
-                        </div>
-                        <span class="perent-num">0%</span>
-                      </div>
-                    </td>
-                  </tr>
-                  <tr>
-                    <td style="width:150px;">
-                      UP97
-                    </td>
-                    <td class="green num" style="width:105px;">
-                      0
-                    </td>
-                    <td style="width:350px;">
-                      <div class="percent-item">
-                        完成度
-                        <div class="percent-bar" style="">
-                          <div class="percent-value" style="width: 0%"></div>
-                        </div>
-                        <span class="perent-num">0%</span>
-                      </div>
-                    </td>
-                  </tr>
-                  <tr>
-                    <td style="width:150px;">
-                      UP105
-                    </td>
-                    <td class="green num" style="width:105px;">
-                      0
-                    </td>
-                    <td style="width:350px;">
-                      <div class="percent-item">
-                        完成度
-                        <div class="percent-bar" style="">
-                          <div class="percent-value" style="width: 0%"></div>
-                        </div>
-                        <span class="perent-num">0%</span>
-                      </div>
-                    </td>
-                  </tr>
-                  <tr>
-                    <td style="width:150px;">
-                      华创
-                    </td>
-                    <td class="green num" style="width:105px;">
-                      2529
-                    </td>
-                    <td style="width:350px;">
-                      <div class="percent-item">
-                        完成度
-                        <div class="percent-bar" style="">
-                          <div class="percent-value" style="width: 76%"></div>
-                        </div>
-                        <span class="perent-num">76%</span>
-                      </div>
-                    </td>
-                  </tr>
-                </tbody>
-              </table>
-            </div>
-          </div>
-        </panel>
-      </el-col>
-      <el-col :span="8">
-        <panel class="outline" :title="'预警知识'" :icon="'fa fa-warning'" :subTitle="173" :showLine="false">
-          <div class="warning-item">
-            <div class="sub-item">
-              <div class="text">发电机:</div>
-              <div class="value">91</div>
-            </div>
-            <div class="sub-item">
-              <div class="text">偏航:</div>
-              <div class="value">0</div>
-            </div>
-          </div>
-          <div class="warning-item">
-            <div class="sub-item">
-              <div class="text">齿轮箱:</div>
-              <div class="value">45</div>
-            </div>
-            <div class="sub-item">
-              <div class="text">机舱:</div>
-              <div class="value">12</div>
-            </div>
-          </div>
-          <div class="warning-item">
-            <div class="sub-item">
-              <div class="text">主轴:</div>
-              <div class="value">5</div>
-            </div>
-            <div class="sub-item">
-              <div class="text">变频:</div>
-              <div class="value">0</div>
-            </div>
-          </div>
-          <div class="warning-item">
-            <div class="sub-item">
-              <div class="text">变桨:</div>
-              <div class="value">9</div>
-            </div>
-            <div class="sub-item">
-              <div class="text">主控:</div>
-              <div class="value">9</div>
-            </div>
-          </div>
-        </panel>
-      </el-col>
-      <el-col :span="8">
-        <panel class="outline" :title="'特征参数'" :icon="'fa fa-id-card-o'" :subTitle="248" :showLine="false">
-          <div class="feature-item">
-            <div class="title">
-              <i class="svg-icon svg-icon-sm svg-icon-gray">
-                <svg-icon :svgid="'svg-knowledge-bar'" />
-              </i>
-              基于数据统计
-            </div>
-            <div class="value">28</div>
-          </div>
-          <div class="feature-item">
-            <div class="title">
-              <i class="svg-icon svg-icon-sm svg-icon-gray">
-                <svg-icon :svgid="'svg-knowledge-nerve-net'" />
-              </i>
-              神经网络整理
-            </div>
-            <div class="value">77</div>
-          </div>
-          <div class="feature-item">
-            <div class="title">
-              <i class="svg-icon svg-icon-sm svg-icon-gray">
-                <svg-icon :svgid="'svg-knowledge-file'" />
-              </i>
-              文档整理
-            </div>
-            <div class="value">124</div>
-          </div>
-          <div class="feature-item">
-            <div class="title">
-              <i class="svg-icon svg-icon-sm svg-icon-gray">
-                <svg-icon :svgid="'svg-knowledge-professor'" />
-              </i>
-              专家知识分析
-            </div>
-            <div class="value">19</div>
-          </div>
-        </panel>
-      </el-col>
-    </el-row>
-    <el-row>
-      <el-col :span="8">
-        <panel class="outline" :title="'排查、检修方案'" :icon="'fa fa-warning'" :subTitle="4344" :showLine="false">
-          <div class="circle-items">
-            <div class="circle-item">
-              <div class="inner">
-                <div class="text">排查方法</div>
-                <div class="value">431</div>
-              </div>
-            </div>
-            <div class="circle-item">
-              <div class="inner">
-                <div class="text">检修方案</div>
-                <div class="value">3913</div>
-              </div>
-            </div>
-          </div>
-        </panel>
-      </el-col>
-      <el-col :span="8">
-        <panel class="outline" :title="'评价体系'" :icon="'fa fa-warning'" :subTitle="7" :showLine="false">
-          <div class="circle-items">
-            <div class="circle-item">
-              <div class="inner">
-                <div class="text">性能评价体系</div>
-                <div class="value">3</div>
-              </div>
-            </div>
-            <div class="circle-item">
-              <div class="inner">
-                <div class="text">健康评价体系</div>
-                <div class="value">2</div>
-              </div>
-            </div>
-            <div class="circle-item">
-              <div class="inner">
-                <div class="text">故障诊断体系</div>
-                <div class="value">2</div>
-              </div>
-            </div>
-          </div>
-        </panel>
-      </el-col>
-      <el-col :span="8">
-        <panel class="outline" :title="'人工智能'" :icon="'fa fa-id-card-o'" :subTitle="9" :showLine="false">
-          <div class="circle-items">
-            <div class="circle-item">
-              <div class="inner">
-                <div class="text">决策树</div>
-                <div class="value">2</div>
-              </div>
-            </div>
-            <div class="circle-item">
-              <div class="inner">
-                <div class="text">神经网络</div>
-                <div class="value">7</div>
-              </div>
-            </div>
-          </div>
-        </panel>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import SvgIcon from "../../components/coms/icon/svg-icon.vue";
-import panel from "../../components/coms/panel/panel.vue";
-export default {
-  components: { panel, SvgIcon },
-  setup() {},
-  data() {
-    return {
-      gztx: [
-        {
-          id: "UP77",
-          name: "409",
-          wsd: "12%",
-        },
-        {
-          id: "UP82",
-          name: "409",
-          wsd: "12%",
-        },
-        {
-          id: "UP86",
-          name: "0",
-          wsd: "0%",
-        },
-        {
-          id: "UP97",
-          name: "0",
-          wsd: "0%",
-        },
-        {
-          id: "UP105",
-          name: "0",
-          wsd: "0%",
-        },
-        {
-          id: "华创",
-          name: "2529",
-          wsd: "76%",
-        },
-      ],
-    };
-  },
-};
-</script>
-
-<style lang="less">
-.knowledge-base {
-  .com-panel .panel-header {
-    margin-bottom: 0px;
-
-    .panel-tools {
-      color: @green;
-      font-family: @font-family-num;
-    }
-  }
-
-  .outline {
-    outline: 1px solid fade(@gray, 50);
-  }
-
-  .warning-item {
-    display: flex;
-    justify-content: space-around;
-
-    height: 54px;
-    line-height: 54px;
-    font-size: 12px;
-
-    &:nth-child(2n) {
-      background-color: fade(@gray, 20%);
-    }
-
-    .title {
-      display: flex;
-      align-items: center;
-      color: @gray;
-
-      i {
-        margin-right: 16px;
-      }
-    }
-
-    .sub-item {
-      display: flex;
-      .text {
-        color: gray;
-        margin-right: 16px;
-      }
-
-      .value {
-        color: @green;
-        font-family: @font-family-num;
-      }
-    }
-  }
-
-  .feature-item {
-    display: flex;
-    justify-content: space-between;
-    height: 54px;
-    line-height: 54px;
-    font-size: 12px;
-    padding: 0 24px;
-
-    &:nth-child(2n) {
-      background-color: fade(@gray, 20%);
-    }
-
-    .title {
-      display: flex;
-      align-items: center;
-      color: @gray;
-
-      i {
-        margin-right: 16px;
-      }
-    }
-
-    .value {
-      color: @green;
-      font-family: @font-family-num;
-    }
-  }
-
-  .circle-items {
-    display: flex;
-    justify-content: space-around;
-    padding: 48px 0;
-
-    .circle-item {
-      display: flex;
-      flex: 0 0 146px;
-      width: 146px;
-      height: 146px;
-      background: fade(@green, 10);
-      border-radius: 50%;
-      justify-content: center;
-      align-items: center;
-
-      .inner {
-        width: 124px;
-        height: 124px;
-        border: 1px solid #05bb4c;
-        border-radius: 50%;
-
-        display: flex;
-        flex-direction: column;
-        justify-content: center;
-        align-items: center;
-
-        box-shadow: inset -15px 20px 30px -30px #05bb4c;
-
-        .text {
-          color: @green;
-          font-size: 12px;
-          margin-bottom: 8px;
-        }
-
-        .value {
-          color: @white;
-          font-size: 34px;
-        }
-      }
-    }
-  }
-
-  .table {
-    tbody {
-      tr:nth-child(2n) td {
-        background-color: fade(@gray, 20%);
-
-        &.item {
-          background-color: transparent;
-        }
-      }
-    }
-
-    td {
-      color: @gray;
-      text-align: center;
-      height: 26px;
-      line-height: 26px;
-      font-size: 12px;
-
-      &.green {
-        color: @green;
-      }
-
-      &.num {
-        font-family: @font-family-num;
-      }
-    }
-
-    .percent-item {
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      height: 34px;
-
-      .percent-bar {
-        height: 12px;
-        width: 170px;
-        background: transparent;
-        border: 1px solid @gray;
-        margin-left: 16px;
-
-        .percent-value {
-          height: calc(100% - 4px);
-          background: @green;
-          margin: 2px;
-        }
-      }
-
-      .perent-num {
-        color: @green;
-        margin-left: 16px;
-        font-family: @font-family-num;
-      }
-    }
-  }
-}
-</style>

+ 0 - 434
src/views/NewPages/multiple-bar-line-chart.vue

@@ -1,434 +0,0 @@
-<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: "13.889vh",
-    },
-    // 传入数据
-    barData: {
-      type: Array,
-      default: () => [
-        {
-          title: "日发电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 3,
-            },
-            {
-              text: "5日",
-              value: 3,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "上网电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 3,
-            },
-            {
-              text: "5日",
-              value: 3,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "购网电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 3,
-            },
-            {
-              text: "5日",
-              value: 3,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "风速",
-          yAxisIndex: 1,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 3,
-            },
-            {
-              text: "5日",
-              value: 3,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-      ],
-    },
-    lineData: {
-      type: Object,
-      default: () => {
-        return {
-          name: "风速",
-          unit: "km",
-          data: [200, 800, 400, 500, 800, 700, 800, 900, 200],
-        };
-      },
-    },
-    // 单位
-    units: {
-      type: Array,
-      default: () => ["(万KWh)", "(风速)"],
-    },
-    // 显示 legend
-    showLegend: {
-      type: Boolean,
-      default: true,
-    },
-    // 颜色
-    color: {
-      type: Array,
-      default: () => [
-        "#05bb4c",
-        "#4b55ae",
-        "#fa8c16",
-        "#f8de5b",
-        "#1a93cf",
-        "#c531c7",
-        "#bd3338",
-      ],
-    },
-    showAnimation: {
-      type: Boolean,
-      default: true,
-    },
-  },
-  data() {
-    return {
-      id: "",
-      chart: null,
-      firstAnimation: true,
-      newbarData: null,
-    };
-  },
-  watch: {
-    barData: {
-      handler(newValue, oldValue) {
-        this.newbarData = newValue;
-        this.initChart();
-      },
-      deep: true,
-    },
-    lineData : {
-      handler(newValue, oldValue) {
-        this.newlineData = newValue;
-        this.initChart();
-      },
-      deep: true,
-    },
-  },
-  computed: {
-    legend() {
-      return this.newbarData.map((t) => {
-        return t.title;
-      });
-    },
-    xdata() {
-      let result = [];
-      if (
-        this.newbarData &&
-        this.newbarData.length > 0 &&
-        this.newbarData[0].value.length > 0
-      ) {
-        result = this.newbarData[0].value.map((t) => {
-          return t.text;
-        });
-      }
-      return result;
-    },
-    ydata() {
-      let result = [];
-      this.units.forEach((value, index) => {
-        let data = null;
-        if (index == 0) {
-          data = {
-            type: "value",
-            name: value,
-            axisLabel: {
-              formatter: "{value} ",
-              fontSize: 12,
-            },
-            //分格线
-            splitLine: {
-              lineStyle: {
-                color: "#5a6162",
-                type: "dashed",
-              },
-            },
-          };
-        } else {
-          data = {
-            type: "value",
-            name: value,
-            axisLabel: {
-              formatter: "{value}",
-              fontSize: 12,
-            },
-            //分格线
-            splitLine: {
-              show: false,
-            },
-          };
-        }
-
-        result.push(data);
-      });
-
-      return result;
-    },
-    series() {
-      let result = [];
-      if (this.newbarData && this.newbarData.length > 0) {
-        this.newbarData.forEach((value, index) => {
-          result.push({
-            name: value.title,
-            type: "bar",
-            barWidth: "10%",
-            animation: this.firstAnimation && this.showAnimation,
-            yAxisIndex: value.yAxisIndex,
-            data: value.value.map((t) => {
-              return t.value;
-            }),
-          });
-        });
-      }
-      return result;
-    },
-  },
-  methods: {
-    resize() {},
-    initChart() {
-      let chart = echarts.init(this.$el);
-
-      let option = {
-        color: this.color,
-        tooltip: {
-          trigger: "axis",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
-          textStyle: {
-            color: "#fff",
-            fontSize: 12,
-          },
-        },
-        legend: {
-          show: this.showLegend,
-          data: this.legend,
-          right: 56,
-          icon: "ract",
-          itemWidth: 8,
-          itemHeight: 8,
-          inactiveColor: partten.getColor("gray"),
-          textStyle: {
-            color: partten.getColor("grayl"),
-            fontSize: 12,
-          },
-        },
-        grid: {
-          top: 32,
-          left: 40,
-          right: this.ydata.length > 1 ? 40 : 14,
-          bottom: 24,
-        },
-        xAxis: [
-          {
-            type: "category",
-            data: this.xdata,
-            axisPointer: {
-              type: "shadow",
-            },
-            axisLabel: {
-              fontSize: 12,
-            },
-          },
-        ],
-        yAxis: this.ydata,
-        series: this.series,
-      };
-
-      // line data
-      if (this.newlineData && this.newlineData.data.length > 0) {
-        option.yAxis.push({
-          type: "value",
-          name: this.newlineData.name,
-          axisLabel: {
-            formatter: "{value} ",
-            color: partten.getColor("gray"),
-          },
-          axisLine: {
-            show: false,
-          },
-          axisTick: {
-            show: false,
-          },
-          splitLine: {
-            show: false,
-            lineStyle: {
-              type: "dashed",
-              dashOffset: 10,
-              color: partten.getColor("gray") + 80,
-            },
-          },
-        });
-
-        option.series.push({
-          name: this.newlineData.name,
-          type: "line",
-          data: this.newlineData.data,
-          smooth: true, //平滑展示
-          yAxisIndex: option.yAxis.length - 1,
-          lineStyle: {
-            color: partten.getColor("yellow"),
-          },
-          itemStyle: {
-            color: partten.getColor("yellow"),
-          },
-        });
-      }
-
-      chart.clear();
-      chart.setOption(option);
-
-      this.resize = function () {
-        chart.resize();
-      };
-
-      window.addEventListener("resize", this.resize);
-    },
-  },
-  created() {
-    this.id = "pie-chart-" + util.newGUID();
-    this.newbarData = this.barData;
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.$el.style.width = this.width;
-      this.$el.style.height = this.height;
-      this.initChart();
-      this.firstAnimation = false;
-    });
-  },
-  updated() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-  unmounted() {
-    window.removeEventListener("resize", this.resize);
-  },
-};
-</script>
-
-<style lang="less">
-.chart {
-  width: 100%;
-  height: 100%;
-  display: inline-block;
-}
-</style>

+ 0 - 436
src/views/NewPages/multiple-bar-line-chart1.vue

@@ -1,436 +0,0 @@
-<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: "13.889vh",
-    },
-    // 传入数据
-    barData: {
-      type: Array,
-      default: () => [
-        {
-          title: "日发电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 3,
-            },
-            {
-              text: "5日",
-              value: 3,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "上网电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 3,
-            },
-            {
-              text: "5日",
-              value: 3,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "购网电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 3,
-            },
-            {
-              text: "5日",
-              value: 3,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "风速",
-          yAxisIndex: 1,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 3,
-            },
-            {
-              text: "5日",
-              value: 3,
-            },
-            {
-              text: "6日",
-              value: 3,
-            },
-            {
-              text: "7日",
-              value: 3,
-            },
-          ],
-        },
-      ],
-    },
-    lineData: {
-      type: Object,
-      default: () => {
-        return {
-          name: "风速",
-          unit: "km",
-          data: [200, 800, 400, 500, 800, 700, 800, 900, 200],
-        };
-      },
-    },
-    // 单位
-    units: {
-      type: Array,
-      default: () => ["(万KWh)"],
-    },
-    // 显示 legend
-    showLegend: {
-      type: Boolean,
-      default: true,
-    },
-    // 颜色
-    color: {
-      type: Array,
-      default: () => [
-        "#05bb4c",
-        "#4b55ae",
-        "#fa8c16",
-        "#f8de5b",
-        "#1a93cf",
-        "#c531c7",
-        "#bd3338",
-      ],
-    },
-    showAnimation: {
-      type: Boolean,
-      default: true,
-    },
-  },
-  data() {
-    return {
-      id: "",
-      chart: null,
-      firstAnimation: true,
-      newbarData: null,
-    };
-  },
-  watch: {
-    barData: {
-      handler(newValue, oldValue) {
-        this.newbarData = newValue;
-        this.initChart();
-      },
-      deep: true,
-    },
-    lineData : {
-      handler(newValue, oldValue) {
-        this.newlineData = newValue;
-        this.initChart();
-      },
-      deep: true,
-    },
-  },
-  computed: {
-    legend() {
-      return this.newbarData.map((t) => {
-        return t.title;
-      });
-    },
-    xdata() {
-      let result = [];
-      if (
-        this.newbarData &&
-        this.newbarData.length > 0 &&
-        this.newbarData[0].value.length > 0
-      ) {
-        result = this.newbarData[0].value.map((t) => {
-          return t.text;
-        });
-      }
-      return result;
-    },
-    ydata() {
-      let result = [];
-      this.units.forEach((value, index) => {
-        console.log('yValue:',value)
-        let data = null;
-        if (index == 0) {
-          data = {
-            type: "value",
-            name: value,
-            axisLabel: {
-              formatter: "{value} ",
-              fontSize: 12,
-            },
-            //分格线
-            splitLine: {
-              lineStyle: {
-                color: "#5a6162",
-                type: "dashed",
-              },
-            },
-          };
-        } 
-        else {
-          data = {
-            type: "value",
-            name: value,
-            axisLabel: {
-              formatter: "{value}",
-              fontSize: 12,
-            },
-            //分格线
-            splitLine: {
-              show: false,
-            },
-          };
-        }
-
-        result.push(data);
-      });
-
-      return result;
-    },
-    series() {
-      let result = [];
-      if (this.newbarData && this.newbarData.length > 0) {
-        this.newbarData.forEach((value, index) => {
-          result.push({
-            name: value.title,
-            type: "bar",
-            barWidth: "10%",
-            animation: this.firstAnimation && this.showAnimation,
-            yAxisIndex: value.yAxisIndex,
-            data: value.value.map((t) => {
-              return t.value;
-            }),
-          });
-        });
-      }
-      return result;
-    },
-  },
-  methods: {
-    resize() {},
-    initChart() {
-      let chart = echarts.init(this.$el);
-
-      let option = {
-        color: this.color,
-        tooltip: {
-          trigger: "axis",
-          backgroundColor: "rgba(0,0,0,0.4)",
-          borderColor: partten.getColor("gray"),
-          textStyle: {
-            color: "#fff",
-            fontSize: 12,
-          },
-        },
-        legend: {
-          show: this.showLegend,
-          data: this.legend,
-          right: 90,
-          icon: "ract",
-          itemWidth: 8,
-          itemHeight: 8,
-          inactiveColor: partten.getColor("gray"),
-          textStyle: {
-            color: partten.getColor("grayl"),
-            fontSize: 12,
-          },
-        },
-        grid: {
-          top: 32,
-          left: 40,
-          right: this.ydata.length > 1 ? 40 : 14,
-          bottom: 24,
-        },
-        xAxis: [
-          {
-            type: "category",
-            data: this.xdata,
-            axisPointer: {
-              type: "shadow",
-            },
-            axisLabel: {
-              fontSize: 12,
-            },
-          },
-        ],
-        yAxis: this.ydata,
-        series: this.series,
-      };
-
-      // line data
-      // if (this.newlineData && this.newlineData.data.length > 0) {
-      //   option.yAxis.push({
-      //     type: "value",
-      //     name: this.newlineData.name,
-      //     axisLabel: {
-      //       formatter: "{value} ",
-      //       color: partten.getColor("gray"),
-      //     },
-      //     axisLine: {
-      //       show: false,
-      //     },
-      //     axisTick: {
-      //       show: false,
-      //     },
-      //     splitLine: {
-      //       show: false,
-      //       lineStyle: {
-      //         type: "dashed",
-      //         dashOffset: 10,
-      //         color: partten.getColor("gray") + 80,
-      //       },
-      //     },
-      //   });
-
-      //   option.series.push({
-      //     name: this.newlineData.name,
-      //     type: "line",
-      //     data: this.newlineData.data,
-      //     smooth: true, //平滑展示
-      //     yAxisIndex: option.yAxis.length - 1,
-      //     lineStyle: {
-      //       color: partten.getColor("yellow"),
-      //     },
-      //     itemStyle: {
-      //       color: partten.getColor("yellow"),
-      //     },
-      //   });
-      // }
-
-      chart.clear();
-      chart.setOption(option);
-
-      this.resize = function () {
-        chart.resize();
-      };
-
-      window.addEventListener("resize", this.resize);
-    },
-  },
-  created() {
-    this.id = "pie-chart-" + util.newGUID();
-    this.newbarData = this.barData;
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.$el.style.width = this.width;
-      this.$el.style.height = this.height;
-      this.initChart();
-      this.firstAnimation = false;
-    });
-  },
-  updated() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-  unmounted() {
-    window.removeEventListener("resize", this.resize);
-  },
-};
-</script>
-
-<style lang="less">
-.chart {
-  width: 100%;
-  height: 100%;
-  display: inline-block;
-}
-</style>

+ 0 - 519
src/views/NewPages/multiple-y-line-chart-normal.vue

@@ -1,519 +0,0 @@
-<template>
-  <div class="chart" :id="id"></div>
-</template>
-
-<script>
-import util from "@/helper/util.js";
-import partten from "@/helper/partten.js";
-import * as echarts from "echarts";
-
-export default {
-  name: "multiple-y-line-chart-normal",
-  componentName: "multiple-y-line-chart-normal",
-  props: {
-    width: {
-      type: String,
-      default: "100%",
-    },
-    height: {
-      type: String,
-      default: "13.889vh",
-    },
-    // 数据
-    list: {
-      type: Array,
-      default: () => [
-        {
-          title: "机舱震动x方向",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "-0.003",
-              value: -0.003,
-            },
-            {
-              text: "-0.002",
-              value: -0.002,
-            },
-            {
-              text: "-0.003",
-              value: -0.006,
-            },
-            {
-              text: "-0.003",
-              value: -0.003,
-            },
-            {
-              text: "-0.002",
-              value: -0.002,
-            },
-            {
-              text: "-0.003",
-              value: -0.006,
-            },
-            {
-              text: "-0.003",
-              value: -0.003,
-            },
-            {
-              text: "-0.002",
-              value: -0.002,
-            },
-            {
-              text: "-0.003",
-              value: -0.006,
-            },
-          ],
-        },
-        {
-          title: "机舱震动y方向",
-          yAxisIndex: 1,
-          value: [
-            {
-              text: "-0.01",
-              value: -0.01,
-            },
-            {
-              text: "-0.005",
-              value: -0.005,
-            },
-            {
-              text: "-0.008",
-              value: -0.008,
-            },
-            {
-              text: "-0.01",
-              value: -0.01,
-            },
-            {
-              text: "-0.005",
-              value: -0.005,
-            },
-            {
-              text: "-0.008",
-              value: -0.008,
-            },
-            {
-              text: "-0.01",
-              value: -0.01,
-            },
-            {
-              text: "-0.005",
-              value: -0.005,
-            },
-            {
-              text: "-0.008",
-              value: -0.008,
-            },
-          ],
-        },
-        {
-          title: "机舱震动最大偏移值",
-          yAxisIndex: 2,
-          value: [
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "0.05",
-              value: 0.05,
-            },
-            {
-              text: "0.5",
-              value: 0.5,
-            },
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "0.05",
-              value: 0.05,
-            },
-            {
-              text: "0.5",
-              value: 0.5,
-            },
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "0.05",
-              value: 0.05,
-            },
-            {
-              text: "0.5",
-              value: 0.5,
-            },
-          ],
-        },
-        {
-          title: "风速1",
-          yAxisIndex: 3,
-          value: [
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "5",
-              value: 5,
-            },
-            {
-              text: "3",
-              value: 1,
-            },
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "5",
-              value: 5,
-            },
-            {
-              text: "3",
-              value: 1,
-            },
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "5",
-              value: 5,
-            },
-            {
-              text: "3",
-              value: 1,
-            },
-          ],
-        },
-        {
-          title: "风速2",
-          yAxisIndex: 4,
-          value: [
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "2",
-              value: 2,
-            },
-            {
-              text: "3",
-              value: 1,
-            },
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "2",
-              value: 2,
-            },
-            {
-              text: "3",
-              value: 1,
-            },
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "2",
-              value: 2,
-            },
-            {
-              text: "3",
-              value: 1,
-            },
-          ],
-        },
-      ],
-    },
-    showLegend: {
-      type: Boolean,
-      default: false,
-    },
-    default: {
-      type: Boolean,
-      default: false,
-    },
-    // 轴
-    yAxises: {
-      type: Array,
-      default: () => [
-        {
-          name: "机舱震动x方向",
-          min: -0.01,
-          max: 0,
-          unit: "",
-          position: "left",
-        },
-        {
-          name: "机舱震动y方向",
-          min: -0.01,
-          max: 0,
-          unit: "",
-          position: "right",
-        },
-        {
-          name: "机舱震动最大偏移值",
-          min: 0,
-          max: 1,
-          unit: "",
-          position: "left",
-        },
-        {
-          name: "风速1",
-          min: 0,
-          max: 10,
-          unit: "",
-          position: "right",
-        },
-        {
-          name: "风速2",
-          min: 0,
-          max: 10,
-          unit: "",
-          position: "left",
-        },
-      ],
-    },
-  },
-  data() {
-    return {
-      id: "",
-      chart: null,
-      color: ["#1DA0D7","#05BB4C","#323E6F", "#EDB32F", "#DB5520"],
-    };
-  },
-  computed: {
-    legend() {
-      return this.list.map((t) => {
-        return t.title;
-      });
-    },
-    xdata() {
-      if (this.list.length > 1) {
-        // this.list[1].value.forEach((lEle, lIndex) => {
-        //   console.log(
-        //     this.list[1].value.indexOf(
-        //       this.list[1].value[lIndex].text == "00:00"
-        //     )
-        //   );
-        // });
-        return this.list[1]?.value.map((t) => {
-          return t.text || new Date(t.ts).formatDate("hh:mm:ss");
-        });
-      } else if (this.list.length == 1) {
-        return this.list[0]?.value.map((t) => {
-          return t.text || new Date(t.ts).formatDate("hh:mm:ss");
-        });
-      }
-    },
-    yAxis() {
-      let result = [];
-      let p = { left: 0, right: 0 };
-      this.yAxises.forEach((item, index) => {
-        result.push({
-          type: "value",
-          name: `${item.name}${item.unit}`,
-          nameLocation: p[item.position] % 2 == 0 ? "end" : "start",
-          nameGap: 10,
-          min: item.min,
-          max: item.max,
-          position: item.position,
-          offset: p[item.position] * 50,
-          axisLabel: {
-            formatter: "{value}",
-            fontSize: 12,
-          },
-          //分格线
-          splitLine: {
-            lineStyle: {
-              color: this.$store.state.themeName === "dark" ? partten.getColor("gray") : partten.getColor("black"),
-              type: "dashed",
-            },
-          },
-          axisLine: {
-            show: true,
-          },
-          axisTick: {
-            show: true,
-          },
-        });
-        p[item.position]++;
-      });
-      return result;
-    },
-    series() {
-      let result = [];
-      this.list.forEach((value, index) => {
-        result.push({
-          name: value.title,
-          type: "line",
-          smooth: true,
-          zlevel: index,
-          lineStyle: {
-            normal: {
-              color: this.color[index],
-              width: 1,
-            },
-          },
-          showSymbol: false,
-          yAxisIndex: value.yAxisIndex,
-          data: value.value.map((t) => {
-            if (t.value || t.value === 0) {
-              return t.value;
-            } else if (t.doubleValue || t.doubleValue === 0) {
-              return t.doubleValue;
-            } else {
-              return t.longValue;
-            }
-          }),
-        });
-      });
-
-      return result;
-    },
-  },
-  methods: {
-    resize() {},
-    initChart() {
-		
-      const chart = echarts.init(this.$el);
-	
-      let option = this.option();
-      chart.clear();
-
-      chart.setOption(option);
-      if (this.default) {
-        chart.dispatchAction({
-          type: "showTip",
-          seriesIndex: 0, // 显示第几个series
-          dataIndex: this.list[0].value.length - 600, // 显示第几个数据
-        });
-      }
-
-      this.resize = function () {
-        chart.resize();
-      };
-
-      window.addEventListener("resize", this.resize);
-    },
-    option: function () {
-		let themeName = '';
-		this.$store.state.themeName === "dark" ? themeName = true : themeName = false;
-      return {
-        color: this.color,
-        tooltip: {
-          trigger: "axis",
-          triggerOn:this.default?"click":"mousemove",
-          alwaysShowContent:true,
-          backgroundColor: themeName ? "rgba(0,0,0,0.4)" : "rgba(255,255,255,0.5)",
-          borderColor: themeName ? partten.getColor("gray"): "#000",
-          textStyle: {
-            color: themeName ? "#fff" : "#000",
-            fontSize: 12,
-          },
-        },
-        legend: {
-          show: this.showLegend,
-          data: this.legend,
-          top: "top",
-          icon: "circle",
-          itemWidth: 6,
-          inactiveColor: themeName ? partten.getColor("gray"): "#000",
-          textStyle: {
-            color: themeName ? partten.getColor("grayl"): "#000",
-            fontSize: 12,
-          },
-        },
-        grid: {
-          top: 27,
-          left: 16,
-          right: 16,
-          bottom: 0,
-          containLabel: true,
-        },
-        xAxis: [
-          {
-            type: "category",
-            boundaryGap: false,
-            axisLabel: {
-              interval:
-                Number((this.xdata.length / 8).toFixed(0)) > 2
-                  ? Number((this.xdata.length / 8).toFixed(0))
-                  : 0,
-              showMinLabel: true,
-              showMaxLabel: true,
-              formatter: "{value}",
-              fontSize: 12,
-              textStyle: {
-                color: themeName ? partten.getColor("gray"): "#000",
-              },
-            },
-            data: this.xdata,
-          },
-        ],
-        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,
-      };
-    },
-    reload: function () {
-      const chart = echarts.getInstanceByDom(this.$el);
-      chart.clear();
-      let option = this.option();
-      chart.setOption(option);
-    },
-  },
-  created() {
-    this.id = "pie-chart-" + util.newGUID();
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.$el.style.width = this.width;
-      this.$el.style.height = this.height;
-      this.initChart();
-    });
-  },
-  beforeUpdate() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-  unmounted() {
-    window.removeEventListener("resize", this.resize);
-  },
-};
-</script>
-
-<style lang="less">
-.chart {
-  width: 100%;
-  height: 100%;
-  display: inline-block;
-}
-</style>

+ 0 - 575
src/views/NewPages/personnel.vue

@@ -1,575 +0,0 @@
-<template>
-  <div class="personnel">
-    <div class="personnel-btn">
-      <div
-        @click="clickBtn(btn, index)"
-        class="i-btn"
-        v-for="(btn, index) of btns"
-        :key="index"
-        :class="{ active: index == btnIndex }"
-      >
-        {{ btn.name }}
-      </div>
-    </div>
-    <div class="personnel-box">
-      <div
-        class="personnel-box-item"
-        v-for="(item, index) in resData"
-        :key="index"
-        @click="todesc(item)"
-        :style="[item.objects && frontOneHour < item.objects['LAT'].ts ? 'order:-1' :'']"
-      >
-        <div class="personnel-box-item-h">
-          <div class="personnel-box-item-header">
-            <img :src="imgurl(item.username)" />
-          </div>
-          <div class="personnel-box-item-form">
-            <div class="personnel-box-item-group">
-              <div class="personnel-box-item-label">收缩血压:</div>
-              <div class="personnel-box-item-value">
-                {{ item.objects && item.objects.SSXY.doubleValue.toFixed(2) }}
-              </div>
-            </div>
-            <div class="personnel-box-item-group">
-              <div class="personnel-box-item-label">舒张血压:</div>
-              <div class="personnel-box-item-value">
-                {{ item.objects && item.objects.SZXY.doubleValue.toFixed(2) }}
-              </div>
-            </div>
-            <div class="personnel-box-item-group">
-              <div class="personnel-box-item-label">心跳频率:</div>
-              <div class="personnel-box-item-value">
-                {{ item.objects && item.objects.XTPL.doubleValue.toFixed(2) }}
-              </div>
-            </div>
-            <div class="personnel-box-item-group">
-              <div class="personnel-box-item-label">血氧浓度:</div>
-              <div class="personnel-box-item-value">
-                {{ item.objects && item.objects.XYND.doubleValue.toFixed(2) }}
-              </div>
-            </div>
-          </div>
-        </div>
-        <div class="personnel-box-item-f">
-          <div class="personnel-box-item-name">
-            {{ item.objects && item.username }}
-          </div>
-          <div class="personnel-box-item-icon">
-            <i
-              :class="[
-                'el-icon-user-solid',
-                item.objects && frontOneHour < item.objects['LAT'].ts
-                  ? 'icolor'
-                  : '',
-              ]"
-            ></i>
-          </div>
-        </div>
-      </div>
-    </div>
-    <el-dialog
-      title="人员信息"
-      v-model="dialogVisible"
-      width="1400px"
-      top="10vh"
-      custom-class="modal hide-header"
-      :close-on-click-modal="false"
-    >
-      <div class="info-popup">
-        <div class="query left mg-b-8">
-          <div class="query-items">
-            <div class="query-item">
-              <div class="lable">开始日期:</div>
-              <div class="search-input">
-                <el-date-picker
-                  v-model="startdate"
-                  type="datetime"
-                  placeholder="选择日期"
-                  popper-class="date-select"
-                  class="placeholder-left"
-                >
-                </el-date-picker>
-              </div>
-            </div>
-            <div class="query-item">
-              <div class="lable">结束日期:</div>
-              <div class="search-input">
-                <el-date-picker
-                  v-model="enddate"
-                  type="datetime"
-                  placeholder="选择日期"
-                  popper-class="date-select"
-                  class="placeholder-left"
-                >
-                </el-date-picker>
-              </div>
-            </div>
-          </div>
-          <div class="query-actions">
-            <button class="btn green" @click="searchper">查询</button>
-          </div>
-        </div>
-        <div class="prople-info mg-t-16 mg-b-16">
-          <div class="prople-info-item">
-            <div class="font-md gray-l">检修人员</div>
-            <div class="font-md white">
-              {{ perData.objects && perData.username }}
-            </div>
-          </div>
-          <div class="prople-info-item">
-            <div class="font-md gray-l">疲劳度</div>
-            <div class="font-md white">
-              {{
-                perData.objects && perData.objects.PLD.doubleValue.toFixed(2)
-              }}
-            </div>
-          </div>
-          <div class="prople-info-item">
-            <div class="font-md gray-l">步数</div>
-            <div class="font-md white">
-              {{ perData.objects && perData.objects.BS.doubleValue.toFixed(2) }}
-            </div>
-          </div>
-          <div class="prople-info-item">
-            <div class="font-md gray-l">收缩血压</div>
-            <div class="font-md white">
-              {{
-                perData.objects && perData.objects.SSXY.doubleValue.toFixed(2)
-              }}
-            </div>
-          </div>
-          <div class="prople-info-item">
-            <div class="font-md gray-l">舒张血压</div>
-            <div class="font-md white">
-              {{
-                perData.objects && perData.objects.SZXY.doubleValue.toFixed(2)
-              }}
-            </div>
-          </div>
-          <div class="prople-info-item">
-            <div class="font-md gray-l">心跳频率</div>
-            <div class="font-md white">
-              {{
-                perData.objects && perData.objects.XTPL.doubleValue.toFixed(2)
-              }}
-            </div>
-          </div>
-          <div class="prople-info-item">
-            <div class="font-md gray-l">血氧浓度</div>
-            <div class="font-md white">
-              {{
-                perData.objects && perData.objects.XYND.doubleValue.toFixed(2)
-              }}
-            </div>
-          </div>
-        </div>
-        <div class="white font-md mg-t-16 mg-b-16">检测人员健康情况</div>
-        <normal-line-chart
-          class="people-chart"
-          height="45vh"
-          :showLegend="true"
-          :units="['半小时检测值']"
-          :list="chartList"
-        />
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import NormalLineChart from "@com/chart/line/normal-line-chart.vue";
-import axios from "axios";
-export default {
-  // 名称
-  name: "personnel",
-  // 使用组件
-  components: {
-    NormalLineChart,
-  },
-  // 数据
-  data() {
-    return {
-      btns: [
-        {
-          name: "全部",
-          val: "",
-        },
-        {
-          name: "麻黄山",
-          val: "MHS_FDC",
-        },
-        {
-          name: "牛首山",
-          val: "NSS_FDC",
-        },
-        {
-          name: "青山",
-          val: "QS_FDC",
-        },
-        {
-          name: "石板泉",
-          val: "SBQ_FDC",
-        },
-        {
-          name: "香山",
-          val: "XS_FDC",
-        },
-      ],
-      btnIndex: 0,
-      dialogVisible: false,
-      resData: null,
-      perData: null,
-      frontOneHour: new Date().getTime() - 10 * 60 * 1000,  //前十分钟
-      startdate: new Date(new Date().getTime() - 60 * 60 * 1000
-      ).formatDate("yyyy-MM-dd hh:mm:ss"),
-      enddate: new Date(new Date()).formatDate("yyyy-MM-dd hh:mm:ss"),
-      chartList: [
-        {
-          title: "疲劳度",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "2",
-              value: 2,
-            },
-            {
-              text: "3",
-              value: 1,
-            },
-            {
-              text: "4",
-              value: 3,
-            },
-            {
-              text: "5",
-              value: 3,
-            },
-            {
-              text: "6",
-              value: 3,
-            },
-            {
-              text: "7",
-              value: 3,
-            },
-            {
-              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,
-            },
-          ],
-        },
-        {
-          title: "上网电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1",
-              value: 1,
-            },
-            {
-              text: "2",
-              value: 2,
-            },
-            {
-              text: "3",
-              value: 1,
-            },
-            {
-              text: "4",
-              value: 3,
-            },
-          ],
-        },
-      ],
-    };
-  },
-  // 函数
-  methods: {
-    imgurl(v) {
-      try {
-        // const url = require(`@assets/person/${v}.jpg`);
-        return url;
-      } catch (error) {
-        // return require("@assets/userhead.jpg");
-      }
-    },
-    clickBtn(btn, index) {
-      this.search(btn.val);
-      this.btnIndex = index;
-    },
-    clickItem(index) {
-      this.panelIndex = index;
-    },
-    async todesc(item) {
-      this.dialogVisible = true;
-      this.perData = item;
-      this.searchper();
-    },
-    async searchper() {
-      const { data } = await axios.get(
-        //http://192.168.10.12:8082/   //http://10.155.32.4:8010
-        // `http://10.155.32.4:8034/bracelet/getInfo?userid=1864&beginDate=2021-07-15+12%3A01%3A22&endDate=2021-07-15+15%3A01%3A22`);
-      
-      `http://10.155.32.4:8034/bracelet/getInfo?userid=${this.perData.mobile}&beginDate=${new Date(this.startdate).formatDate("yyyy-MM-dd hh:mm:ss")}&endDate=${new Date(this.enddate).formatDate("yyyy-MM-dd hh:mm:ss")}`);
-      console.warn(data);
-      let arr = [];
-      let resarr = ["pld", "ssxy", "szxy", "xtpl", "xy"];
-      const objb = {
-        pld: "疲劳度",
-        ssxy: "收缩血压",
-        szxy: "舒张血压",
-        xtpl: "心跳频率",
-        xy: "血氧",
-      };
-      resarr.forEach((e) => {
-        let obj = {
-          title: objb[e],
-          yAxisIndex: 0,
-          value: [],
-        };
-        let vlarr = [];
-        data.forEach((k) => {
-          let obj1 = {
-            text: new Date(k.date).formatDate("hh:mm"),
-            value: k[e]
-          };
-          vlarr.push(obj1);
-        });
-        obj.value = vlarr;
-        arr.push(obj);
-      });
-      console.warn(arr);
-      this.chartList = arr;
-    },
-    async search(id) {
-      const { data } = await axios.get(
-        `http://192.168.1.18:8087/shbraceletuser/selectRaceletUserinfo?stationid=${id}&pageNum=${1}&pageSize=${300}`
-      );
-      const res = data.data.records;
-      this.resData = res;
-    },
-  },
-  // 生命周期钩子
-  beforeCreate() {
-    // 创建前
-  },
-  created() {
-    // 创建后
-    this.search("");
-  },
-  beforeMount() {
-    // 渲染前
-  },
-  mounted() {
-    // 渲染后
-  },
-  beforeUpdate() {
-    // 数据更新前
-  },
-  updated() {
-    // 数据更新后
-  },
-};
-</script>
-
-<style lang="less">
-.icolor {
-  color: #05bb4c;
-}
-.personnel {
-  widows: 100%;
-  height: calc(100vh - 90px);
-  overflow-y: auto;
-
-  .personnel-btn {
-    display: flex;
-
-    .i-btn {
-      width: 11.296vh;
-      height: 3.056vh;
-      line-height: 3.056vh;
-      background: #53626833;
-      border: 1px solid #53626833;
-      text-align: center;
-      cursor: pointer;
-      font-size: 1.296vh;
-      color: #b3bdc0;
-      transition: all 0.3s;
-
-      + .i-btn {
-        margin-left: 0.926vh;
-      }
-
-      &:hover,
-      &.active {
-        border: 1px solid #05bb4c;
-        background: #05bb4c33;
-        color: #05bb4c;
-      }
-    }
-  }
-
-  .personnel-box {
-    display: flex;
-    flex-wrap: wrap;
-    margin-top: 6px;
-
-    .personnel-box-item {
-      width: 198px;
-      height: 105px;
-      background: #53626833;
-      border: 1px solid #53626833;
-      margin: 10px 10px 0 0;
-      cursor: pointer;
-      transition: all 0.3s;
-      padding: 6px;
-      display: flex;
-      flex-direction: column;
-
-      .personnel-box-item-h {
-        height: 74px;
-        display: flex;
-
-        .personnel-box-item-header {
-          height: 100%;
-          width: 52px;
-          margin-right: 12px;
-          background: #848b8a;
-          display: flex;
-          align-items: center;
-          justify-content: center;
-
-          img {
-            width: 100%;
-            // height: 100%;
-          }
-        }
-        .personnel-box-item-form {
-          flex-grow: 1;
-
-          .personnel-box-item-group {
-            font-size: 12px;
-            display: flex;
-            line-height: 1.5;
-
-            .personnel-box-item-label {
-              width: 60px;
-              text-align: right;
-              color: #b3bdc0;
-            }
-
-            .personnel-box-item-value {
-              color: #b3bdc0;
-            }
-          }
-        }
-      }
-
-      .personnel-box-item-f {
-        flex-grow: 1;
-        display: flex;
-        line-height: 1;
-        margin-top: 7px;
-        font-size: 12px;
-
-        .personnel-box-item-name {
-          width: 52px;
-          margin-right: 12px;
-          text-align: center;
-          color: #ffffff;
-        }
-
-        .personnel-box-item-icon {
-          flex-grow: 1;
-          color: #b3bdc0;
-        }
-      }
-
-      &:hover {
-        border: 1px solid #05bb4c;
-        background: #05bb4c33;
-
-        .personnel-box-item-h {
-          .personnel-box-item-form {
-            .personnel-box-item-group {
-              .personnel-box-item-label {
-                color: #ffffff;
-              }
-
-              .personnel-box-item-value {
-                color: #05bb4c;
-              }
-            }
-          }
-        }
-
-        .personnel-box-item-f {
-          .personnel-box-item-name {
-            color: #05bb4c;
-          }
-
-          .personnel-box-item-icon {
-            color: #ffffff;
-          }
-        }
-      }
-    }
-  }
-
-  .prople-info {
-    width: 100%;
-    height: 76px;
-    background: #53626833;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-
-    .prople-info-item {
-      flex: 1;
-      text-align: center;
-      line-height: 2;
-    }
-  }
-
-  .people-chart {
-    width: 100%;
-    height: 45vh;
-  }
-}
-</style>

File diff suppressed because it is too large
+ 0 - 1495
src/views/NewPages/power-benchmarking.vue


+ 0 - 353
src/views/NewPages/power-forecast-1.vue

@@ -1,353 +0,0 @@
-<template>
-  <div class="power-forecast-1">
-    <div class="left">
-      <el-row class="mg-b-16">
-        <el-col :span="4">
-          <panel :title="'预测电量'">
-            <list-bar-chart :list="listBarData1" :colors="listBarData1Color" :height="'15vh'" />
-            <div class="dashboard">
-              <dashboard-2 :height="'8vh'" :width="'115px'" :value="25" />
-              <div class="lengends">
-                <div class="item">
-                  <span class="label">本日预测电量</span>
-                  <span class="lengend gary"></span>
-                  <span class="value">123</span>
-                </div>
-                <div class="item">
-                  <span class="label">本日已发电量</span>
-                  <span class="lengend green"></span>
-                  <span class="value">123</span>
-                </div>
-              </div>
-            </div>
-            <div class="dashboard">
-              <dashboard-2 :height="'8vh'" :width="'115px'" :value="34" />
-              <div class="lengends">
-                <div class="item">
-                  <span class="label">本日预测电量</span>
-                  <span class="lengend gary"></span>
-                  <span class="value">123</span>
-                </div>
-                <div class="item">
-                  <span class="label">本日已发电量</span>
-                  <span class="lengend green"></span>
-                  <span class="value">123</span>
-                </div>
-              </div>
-            </div>
-          </panel>
-        </el-col>
-        <el-col :span="20">
-          <toolbar-panel :title="'预测电量'">
-            <template v-slot:tools>
-              <div class="tools">
-                <div class="action" :class="{ active: ForecastPowerTab == 0 }" @click="ForecastPowerTabClick(0)">未来4小时</div>
-                <div class="action" :class="{ active: ForecastPowerTab == 1 }" @click="ForecastPowerTabClick(1)">未来24小时</div>
-                <div class="action" :class="{ active: ForecastPowerTab == 2 }" @click="ForecastPowerTabClick(2)">未来3天</div>
-                <div class="action" :class="{ active: ForecastPowerTab == 3 }" @click="ForecastPowerTabClick(3)">未来1周</div>
-              </div>
-            </template>
-            <normal-line-chart :height="'37.037vh'" :showLegend="true" />
-          </toolbar-panel>
-        </el-col>
-      </el-row>
-      <div>
-        <panel :title="'月发电量指标对比'">
-          <multiple-bar-line-chart :height="'44.4444vh'" :barData="barData" />
-          <div class="pie-chart">
-            <dual-pie-chart height="100%" :width="'100%'" :showLegend="false" />
-          </div>
-        </panel>
-      </div>
-    </div>
-    <div class="right">
-      <panel-3 class="right-panel">
-        <div class="title">
-          预测准确率
-        </div>
-        <div class="items">
-          <div class="item" v-for="index in 6" :key="index">
-            <percent-bar-2 width="100px" height="90px" :value="percent" :name="'牛首山'" :color="'purple'" />
-          </div>
-        </div>
-      </panel-3>
-    </div>
-  </div>
-</template>
-
-<script>
-import ListBarChart from "../../components/chart/bar/list-bar-chart.vue";
-import PercentBar2 from "../../components/chart/bar/percent-bar-2.vue";
-import MultipleBarLineChart from "../../components/chart/combination/multiple-bar-line-chart.vue";
-import NormalLineChart from "../../components/chart/line/normal-line-chart.vue";
-import Dashboard2 from "../../components/chart/other/Dashboard2.vue";
-import DualPieChart from "../../components/chart/pie/dual-pie-chart.vue";
-import Panel from "../../components/coms/panel/panel.vue";
-import panel3 from "../../components/coms/panel/panel3.vue";
-import ToolbarPanel from "../../components/coms/panel/toolbar-panel.vue";
-export default {
-  components: { panel3, Panel, NormalLineChart, ListBarChart, Dashboard2, MultipleBarLineChart, ToolbarPanel, PercentBar2, DualPieChart },
-  setup() {},
-  data() {
-    return {
-      listBarData1: [
-        { name: "未来 {c1|15分钟} 预测电量", value: 123.62 },
-        { name: "未来 {c1|4小时} 预测电量", value: 123.62 },
-      ],
-      listBarData1Color: ["purple", "purple"],
-      ForecastPowerTab: 0,
-      barData: [
-        {
-          title: "日发电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 0,
-            },
-            {
-              text: "5日",
-              value: 0,
-            },
-            {
-              text: "6日",
-              value: 0,
-            },
-            {
-              text: "7日",
-              value: 0,
-            },
-          ],
-        },
-        {
-          title: "上网电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 0,
-            },
-            {
-              text: "5日",
-              value: 0,
-            },
-            {
-              text: "6日",
-              value: 0,
-            },
-            {
-              text: "7日",
-              value: 0,
-            },
-          ],
-        },
-        {
-          title: "购网电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 0,
-            },
-            {
-              text: "5日",
-              value: 0,
-            },
-            {
-              text: "6日",
-              value: 0,
-            },
-            {
-              text: "7日",
-              value: 0,
-            },
-          ],
-        },
-        {
-          title: "风速",
-          yAxisIndex: 1,
-          value: [
-            {
-              text: "1日",
-              value: 1,
-            },
-            {
-              text: "2日",
-              value: 2,
-            },
-            {
-              text: "3日",
-              value: 1,
-            },
-            {
-              text: "4日",
-              value: 0,
-            },
-            {
-              text: "5日",
-              value: 0,
-            },
-            {
-              text: "6日",
-              value: 0,
-            },
-            {
-              text: "7日",
-              value: 0,
-            },
-          ],
-        },
-      ],
-    };
-  },
-  methods: {
-    ForecastPowerTabClick(tab) {
-      this.ForecastPowerTab = tab;
-    },
-  },
-};
-</script>
-
-<style lang="less">
-.power-forecast-1 {
-  display: flex;
-
-  .left {
-    flex: 1 0 auto;
-    margin-right: 16px;
-
-    .tools {
-      display: flex;
-      .action {
-        font-size: 12px;
-        line-height: 20px;
-        border-bottom: 1px solid transparent;
-        margin-left: 8px;
-        cursor: pointer;
-        padding-top: 2px;
-
-        &.active,
-        &:hover {
-          color: @green;
-          border-bottom: 1px solid @green;
-        }
-      }
-    }
-
-    .dashboard {
-      position: relative;
-      display: flex;
-      align-items: center;
-
-      .lengends {
-        font-size: 12px;
-        line-height: 20px;
-        padding-left: 12px;
-        .item {
-          display: flex;
-          align-items: center;
-
-          .label {
-            margin-right: 8px;
-            color: @gray;
-          }
-
-          .lengend {
-            display: inline-block;
-            width: 6px;
-            height: 6px;
-            background: @gray;
-            border-radius: 50%;
-            margin-right: 8px;
-
-            &.green {
-              background: @green;
-            }
-          }
-          .value {
-            color: fade(@white, 75);
-          }
-        }
-      }
-    }
-
-    .pie-chart {
-      position: absolute;
-      width: 350px;
-      height: 150px;
-      top: 40px;
-      right: 16px;
-    }
-  }
-
-  .right {
-    flex: 0 0 145px;
-
-    .right-panel {
-      width: 100%;
-      height: 100%;
-
-      .title {
-        font-size: 12px;
-        text-align: center;
-      }
-
-      .items {
-        position: relative;
-        &::before {
-          content: " ";
-
-          position: absolute;
-          left: 50%;
-          height: 94%;
-          border-left: 1px dashed fade(@gray, 40);
-        }
-        display: flex;
-        flex-direction: column;
-        height: 100%;
-        justify-content: space-evenly;
-
-        .item {
-          flex: 0 0 auto;
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 175
src/views/NewPages/power-forecast-2.vue

@@ -1,175 +0,0 @@
-<template>
-  <div class="power-forecast-2">
-    <div class="action-bar">
-      <div class="query mg-b-16">
-        <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">
-                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
-              </el-select>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">开始日期:</div>
-            <div class="search-input">
-              <el-date-picker v-model="value2" type="date" placeholder="选择日期" popper-class="date-select"> </el-date-picker>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">结束日期:</div>
-            <div class="search-input">
-              <el-date-picker v-model="value3" type="date" placeholder="选择日期" popper-class="date-select"> </el-date-picker>
-            </div>
-          </div>
-        </div>
-        <div class="query-actions">
-          <button class="btn green">搜索</button>
-        </div>
-      </div>
-      <div class="query" style="margin-left:32px">
-        <div class="query-items">
-          <div class="query-item">
-            <div class="lable">预测准确率:</div>
-            <div class="fj-lable">麻黄山 <span class="num">55%</span></div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <panel :title="'功率预测对比'" class="mg-b-16" :showLine="false">
-      <normal-line-chart :smooth="false" :showLegend="true" :height="'200px'" />
-    </panel>
-    <panel :title="'功率预测对比'" class="mg-b-16" :showLine="false">
-      <table-2 :data="tableData" :height="'58vh'" />
-    </panel>
-  </div>
-</template>
-
-<script>
-import NormalLineChart from "../../components/chart/line/normal-line-chart.vue";
-import Panel from "../../components/coms/panel/panel.vue";
-import Table2 from "../../components/coms/table/table2.vue";
-export default {
-  components: { Panel, NormalLineChart, Table2 },
-  setup() {},
-  data() {
-    return {
-      options: [
-        {
-          value: "选项1",
-          label: "黄金糕",
-        },
-        {
-          value: "选项2",
-          label: "双皮奶",
-        },
-        {
-          value: "选项3",
-          label: "蚵仔煎",
-        },
-        {
-          value: "选项4",
-          label: "龙须面",
-        },
-        {
-          value: "选项5",
-          label: "北京烤鸭",
-        },
-      ],
-      value1: "",
-      value2: "",
-      value3: "",
-      tableData: {
-        column: [
-          {
-            name: "时间",
-            field: "name",
-            click: function(event, data) {
-              console.log(event);
-              console.log(data);
-            },
-          },
-          {
-            name: "预测风速",
-            field: "lqf",
-          },
-          {
-            name: "预测功率",
-            field: "yggl",
-          },
-          {
-            name: "实际风速",
-            field: "yyy",
-          },
-          {
-            name: "实际功率",
-            field: "pcspp",
-          },
-        ],
-        data: [
-          {
-            index: 1,
-            name: "MG01-01",
-            lqf: "0.1000",
-            yggl: "0.1000",
-            yyy: "0.10",
-            pcspp: "0.1000",
-            u1: "0.1000",
-            u2: "0.1000",
-            v1: "0.1000",
-            v2: "0.1000",
-            w1: "0.1000",
-            w2: "0.1000",
-            zca: "0.1000",
-            zcb: "0.1000",
-            clx: "0.1000",
-            clx1: "0.1000",
-            clx2: "0.1000",
-            jc: "0.1000",
-            hh: "0.1000",
-            hj: "0.1000",
-            is_light: false,
-          },
-        ],
-        total: 100,
-      },
-    };
-  },
-  created() {
-    for (let i = 1; i < 40; i++) {
-      this.tableData.data.push(JSON.parse(JSON.stringify(this.tableData.data[0])));
-      this.tableData.data[i].index = i + 1;
-      this.tableData.data[i].yyy = i * 0.01 * Math.random();
-    }
-  },
-};
-</script>
-
-<style lang="less">
-.power-forecast-2 {
-  .action-bar {
-    display: flex;
-
-    .query {
-      justify-content: flex-start;
-    }
-
-    .fj-lable {
-      height: 33px;
-      line-height: 33px;
-      padding: 0px 24px;
-      background: fade(@gray, 20);
-      font-size: 14px;
-      color: @gray-l;
-
-      .num {
-        margin-left: 12px;
-        font-family: @font-family-num;
-        font-size: 16px;
-        color: @green;
-      }
-    }
-  }
-}
-</style>

+ 0 - 196
src/views/NewPages/station.vue

@@ -1,196 +0,0 @@
-<template>
-  <div class="station">
-    <div class="btns">
-      <!-- <button class="btn green">保存</button> -->
-      <button class="btn green" @click="back">返回</button>
-      <button class="btn green" @click="backForm">表底</button>
-    </div>
-    <div class="table-D">
-      <!-- 表格 -->
-      <el-table
-        :data="tableData"
-        style="width: 100%; overflow-y: auto;min-width='80vh';"
-        :cell-style="addClass"
-        max-height="80vh"
-      >
-        <el-table-column
-          v-for="(i, index) in tableClu.slice(0, 2)"
-          :key="index"
-          :prop="i"
-          :label="i === 'name' ? '名称' : i"
-          width="140"
-        >
-          <template #default="scope">
-            {{ scope.row[i] }}
-          </template>
-        </el-table-column>
-
-        <el-table-column
-          v-for="(k, index) in tableCluObj"
-          :key="index"
-          :label="k.split('_')[0]"
-          align="center"
-        >
-          <el-table-column
-            v-for="i in tableClu.slice(2 + index * 2, 4 + index * 2)"
-            :key="i"
-            :prop="i"
-            label="当日值"
-            align="center"
-            width="100"
-          >
-            <template #default="scope">
-              <!-- <el-input
-              v-if="tableString.indexOf(i) != -1"
-              :disabled="scope.row['是否可编辑'] == 1 || timeNow.isConfirm == 1"
-              size="mini"
-              @change="changeNum(scope.row)"
-              v-model="scope.row[i]"
-            ></el-input> -->
-
-              <el-input
-                v-if="tableString.indexOf(i) != -1"
-                :disabled="true"
-                size="mini"
-                @change="changeNum(scope.row)"
-                v-model="scope.row[i]"
-              ></el-input>
-              <label v-else>{{ scope.row[i] }}</label>
-            </template>
-          </el-table-column>
-        </el-table-column>
-      </el-table>
-    </div>
-  </div>
-</template>
-
-<script>
-import api from "@api/economic/index.js";
-export default {
-  data() {
-    return {
-      tableData: [],
-      tableClu: [],
-      tableCluObj: [],
-      tableString: [],
-      timeNow: {},
-    };
-  },
-  created() {
-    (this.timeNow = this.$route.query), this.getCZList();
-  },
-  methods: {
-    //   场站
-    getCZList() {
-      api
-        .analysisplusTjfxlist({
-          wpid: this.timeNow.wpid,
-          theday: this.timeNow.theday,
-        })
-        .then((res) => {
-          for (let k of res.data[0] ? Object.keys(res.data[0]) : "") {
-            for (let i of res.data) {
-              if (typeof i[k] == "object") {
-                if (i[k] != null) {
-                  for (let p of res.data[0] ? Object.keys(i[k]) : "") {
-                    i[k + p] = i[k][p];
-                  }
-                }
-              }
-            }
-          }
-          this.tableData = res.data;
-          for (let i of res.data[0] ? Object.keys(res.data[0]) : "") {
-            if (typeof res.data[0][i] != "object") {
-              if (i != "是否可编辑" && i != "id") {
-                this.tableClu.push(i);
-              }
-            } else {
-              this.tableCluObj.push(i);
-            }
-            this.tableClu.sort(function (n, m) {
-              return parseInt(n.split("_")[1]) - parseInt(m.split("_")[1]);
-            });
-            this.tableCluObj.sort(function (n, m) {
-              return parseInt(n.split("_")[1]) - parseInt(m.split("_")[1]);
-            });
-          }
-          for (let i of this.tableCluObj) {
-            this.tableString.push(i + "当日值(编辑)");
-          }
-        });
-    },
-    back() {
-      this.$router.push({
-        path: "/others/statisticAnalysis",
-        query: {
-          theday: this.timeNow.theday,
-          wpid: this.timeNow.wpid,
-          beginDate: this.timeNow.beginDate,
-          endDate: this.timeNow.endDate,
-        },
-      });
-    },
-    backForm() {
-      this.$router.push({
-        path: "/others/statisticAnalysis/form",
-        query: {
-          theday: this.timeNow.theday,
-          wpid: this.timeNow.wpid,
-          beginDate: this.timeNow.beginDate,
-          endDate: this.timeNow.endDate,
-        },
-      });
-    },
-    addClass({ row, column, rowIndex, columnIndex }) {
-      // if(columnIndex === 4){
-      // if (parseFloat(row.麻黄山风电场) < 0) {
-      //   return "background:yellow";
-      // }
-      // if (parseFloat(row.牛首山风电场) < 0) {
-      //   return "background:yellow";
-      // }
-      // if (parseFloat(row.青山风电场) < 0) {
-      //   return "background:yellow";
-      // }
-      // if (parseFloat(row.石板泉风电场) < 0) {
-      //   return "background:yellow";
-      // }
-      // if (parseFloat(row.香山风电场) < 0) {
-      //   return "background:yellow";
-      // }
-      // if (parseFloat(row.大武口电站) < 0) {
-      //   return "background:yellow";
-      // }
-      // if (parseFloat(row.平罗光伏电站) < 0) {
-      //   return "background:yellow";
-      // }
-      // if (parseFloat(row.宣和光伏发电站) < 0) {
-      //   return "background:yellow";
-      // }
-    },
-    changeNum(v) {
-      const date = this.routerData.data.theday;
-      const wpid = this.routerData.data.wpid;
-      v.date = date;
-      v.wpid = wpid;
-      this.sendData.push(v);
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.btn:hover {
-  color: #fff;
-}
-.btn {
-  margin: 20px;
-}
-.table-D {
-  margin: 20px 20px 0 20px;
-}
-/deep/.el-table thead.is-group th.el-table__cell {
-  background-color: rgb(37, 36, 36);
-}
-</style>

+ 0 - 245
src/views/NewPages/statisticAnalysis.vue

@@ -1,245 +0,0 @@
-<template>
-  <div>
-    <div class="block">
-      <span class="demonstration">选择日期:</span>
-      <el-date-picker
-        size="medium"
-        v-model="dateArea"
-        type="daterange"
-        :picker-options="pickerOptions"
-        range-separator="至"
-        start-placeholder="开始日期                 "
-        end-placeholder="结束日期                  "
-        align="right"
-      >
-      </el-date-picker>
-      <button class="btn green" @click="search">搜索</button>
-    </div>
-
-    <div class="table1">
-      <el-table
-        max-height="86vh"
-         height="1100"
-        v-loading="loading"
-        element-loading-background="rgba(0, 0, 0, 0.8)"
-        :data="tableData"
-        :header-cell-style="{
-          height: '40px',
-          background: 'rgba(83, 98, 104, 0.2)',
-          color: '#b2bdc0',
-          'border-bottom': '0px solid red',
-        }"
-        :cell-style="{
-          height: '40px',
-          'border-bottom': 'solid 0px #242424',
-        }"
-        stripe
-        style="width: 100%; margin-bottom: 10px; overflow-y: auto"
-      >
-        <el-table-column prop="wpname" label="场站" align="center" width="360">
-        </el-table-column>
-        <el-table-column prop="theday" label="日期" align="center" width="360">
-        </el-table-column>
-
-        <el-table-column align="center" label="操作">
-          <template #default="scope">
-            <button @click="handleClickForm(scope.row)" class="btn">
-              表底
-            </button>
-            <button class="btn" @click="handleClickCZ(scope.row)">场站</button>
-          </template>
-        </el-table-column>
-        <el-table-column align="center" label="操作">
-          <template #default="scope">
-            <el-button
-              @click="handleClick3(scope.row)"
-              :class="scope.row.isConfirm == 1 ? 'displayBtn' : 'btn'"
-              :disabled="scope.row.isConfirm == 1"
-            >
-              确认</el-button
-            >
-          </template>
-        </el-table-column>
-      </el-table>
-      <!-- :class="scope.row.isConfirm == 1 ? 'active' : 'active:hover'" -->
-    </div>
-  </div>
-</template>
-
-
-<script>
-import api from "@api/economic/index.js";
-export default {
-  created() {
-    // 将查询的日期存入到routerData
-    this.routerData.beginDate = this.$route.query.beginDate;
-    this.routerData.endDate = this.$route.query.endDate;
-    this.getList();
-  },
-  components: {},
-  data() {
-    return {
-      dateArea: [
-        this.fmtDate(
-          new Date(
-            new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 30)
-          )
-        ),
-        this.fmtDate(new Date()),
-      ],
-      tableData: [],
-      loading: false,
-      routerData: {},
-    };
-  },
-  methods: {
-    handleClickCZ(row) {
-      this.$router.push({
-        path: "/others/statisticAnalysis/station",
-        query: {
-          wpid: row.wpid,
-          theday: row.theday,
-           isConfirm: row.isConfirm,
-          beginDate: this.routerData.beginDate,
-          endDate: this.routerData.endDate,
-        },
-      });
-    },
-    handleClickForm(row) {
-      this.$router.push({
-        path: "/others/statisticAnalysis/form",
-        query: {
-          wpid: row.wpid, 
-          theday: row.theday,
-          isConfirm: row.isConfirm,
-          beginDate: this.routerData.beginDate,
-          endDate: this.routerData.endDate,
-        },
-      });
-    },
-    handleClick3(row) {
-      api.analysisplusCommit(row).then((res) => {
-        this.getList();
-      });
-    },
-    getList: function () {
-      if (this.$route.query.beginDate != null) {
-        this.dateArea[0] = this.$route.query.beginDate;
-        this.dateArea[1] = this.$route.query.endDate;
-      }
-      api
-        .statisticAnalysis({
-          beginDate: new Date(this.dateArea[0]).formatDate("yyyy-MM-dd"),
-          endDate: new Date(this.dateArea[1]).formatDate("yyyy-MM-dd"),
-        })
-        .then((res) => {
-          this.tableData = res.data;
-          this.loading = false;
-        });
-    },
-    getTime(val) {
-      //时间戳处理,val=1是默认开始时间(当前月第一天),val=2是默认结束时间(今天)
-      var date = new Date();
-      var year = date.getFullYear(),
-        month = date.getMonth() + 1,
-        day = date.getDate();
-      month >= 1 && month <= 9 ? (month = "0" + month) : "";
-      day >= 0 && day <= 9 ? (day = "0" + day) : "";
-      var begin = year + "-" + month + "-01";
-      var end = year + "-" + month + "-" + day;
-      if (val == 1) {
-        return begin;
-      } else if (val == 2) {
-        return end;
-      }
-    },
-    // 格式化日期
-    fmtDate(date) {
-      let curDate = date || new Date();
-      let year = curDate.getFullYear();
-      let mouth = curDate.getUTCMonth() + 1;
-      let day = curDate.getDate();
-      let hour = curDate.getHours();
-      let minutes = curDate.getMinutes();
-      let seconds = curDate.getSeconds();
-      return (
-        year +
-        "-" +
-        (mouth < 10 ? "0" + mouth : mouth) +
-        "-" +
-        (day < 10 ? "0" + day : day) +
-        " " +
-        (hour < 10 ? "0" + hour : hour) +
-        ":" +
-        (minutes < 10 ? "0" + minutes : minutes) +
-        ":" +
-        (seconds < 10 ? "0" + seconds : seconds)
-      );
-    },
-    search() {
-      // 将查询的日期存入到routerData
-      this.routerData.beginDate = new Date(this.dateArea[0]).formatDate(
-        "yyyy-MM-dd"
-      );
-      this.routerData.endDate = new Date(this.dateArea[1]).formatDate(
-        "yyyy-MM-dd"
-      );
-      this.loading = true;
-      this.getList();
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.btn {
-  margin-left: 160px;
-  border-radius: 5px;
-}
-.table1 {
-  margin-top: 30px;
-}
-/deep/.el-date-editor {
-  width: 490px;
-  border-color: black;
-}
-
-.block {
-  margin-left: 20px;
-}
-/deep/.el-date-editor .el-range-input {
-  color: #fff;
-}
-.btn,
-.el-button {
-  margin-left: 10px;
-  height: 33px !important;
-  line-height: 33px;
-  flex: 0 0 auto;
-  background: transparent;
-  border: 1px solid #606769;
-  padding: 0 1.481vh;
-  color: #606769;
-  font-size: 1.296vh;
-  cursor: pointer;
-  min-height: 0;
-}
-.el-button:hover {
-  background-color: black;
-  color: #05bb4c;
-  border-color: #05bb4c;
-}
-.btn:hover {
-  color: #05bb4c;
-  border-color: #05bb4c;
-}
-
-.displayBtn {
-  background-color: #4d4949;
-  color: rgb(87 110 108);
-}
-.displayBtn:hover {
-  border: #4d4949;
-  background-color: #4d4949;
-  color: rgb(87 110 108);
-}
-</style>

+ 0 - 556
src/views/NewPages/znzhfx.vue

@@ -1,556 +0,0 @@
-<template>
-  <div class="znzhfx">
-    <el-scrollbar height="910px">
-      <el-row :gutter="20" class="table-panel">
-        <el-col :span="24">
-          <div class="back">
-            <button class="btn" type="button" @click="back">
-              <span>返回</span>
-            </button>
-          </div>
-          <div class="table-title">
-            {{ wtId }}号风机{{ year }}年{{ month }}月运行指标性能分析
-          </div>
-          <Table :data="tableData2" :canScroll="false" />
-        </el-col>
-      </el-row>
-      <div class="mg-b-16 anliz-des">
-        <div>
-          本月{{ wtId }}号风机风机设备利用小时数{{
-            tableVal.byzb && tableVal.byzb.lyxs
-          }}小时、 同比{{ tableVal.tqzb && tableVal.tqzb.lyxs }}小时,
-          设备可利用率{{ tableVal.byzb && tableVal.byzb.sbklyl }}%、 同比{{
-            tableVal.tqzb && tableVal.tqzb.sbklyl
-          }}%; 等效可用系数{{ tableVal.byzb && tableVal.byzb.dxklyxs }}%、
-          同比{{ tableVal.tqzb && tableVal.tqzb.dxklyxs }}%; 静风频率达到{{
-            tableVal.byzb && tableVal.byzb.jfpl
-          }}%、 同比{{ tableVal.tqzb && tableVal.tqzb.jfpl }}%;
-          机组功率特性一致性系数达到{{
-            tableVal.byzb && tableVal.byzb.glyzxxs
-          }}%、 同比{{ tableVal.tqzb && tableVal.tqzb.glyzxxs }}%。 <br />
-          {{ wtId }}风机{{ year }}年{{ month }} 月平均风速{{
-            tableVal.byzb && tableVal.byzb.fs
-          }}m/s、 同比{{ tableVal.tqzb && tableVal.tqzb.fs }}m/s;
-          小风平均切入风速{{ tableVal.byzb && tableVal.byzb.xfqr }}m/s、 同比{{
-            tableVal.tqzb && tableVal.tqzb.xfqr
-          }}m/s; 有效风时数{{ tableVal.byzb && tableVal.byzb.yxfss }}小时、
-          同比{{ tableVal.tqzb && tableVal.tqzb.yxfss }}小时; 实际发电电量{{
-            tableVal.byzb && tableVal.byzb.fdl
-          }}万kwh、 同比{{ tableVal.tqzb && tableVal.tqzb.fdl }}万kwh,
-          同比增长率{{ tableVal.tbzb && tableVal.tbzb.fdl.toFixed(2) }}%;
-          各项损失电量累计{{
-            tableVal.byzb &&
-            (tableVal.byzb.llfdl - tableVal.byzb.fdl).toFixed(2)
-          }}万kwh、 同比{{
-            tableVal.tqzb && tableVal.tqzb.llfdl - tableVal.tqzb.fdl
-          }}万kwh, 同比增长率{{
-            tableVal.tbzb &&
-            (tableVal.byzb.llfdl - tableVal.tbzb.fdl).toFixed(2)
-          }}%; 理论发电量{{ tableVal.byzb && tableVal.byzb.llfdl }}万kwh,
-          实际发电量与理论发电量相差{{
-            tableVal.tbzb && tableVal.tbzb.llfdl
-          }}万kwh。 <br />
-          本月静风频率{{ tableVal.byzb && tableVal.byzb.jfpl }}%,
-          <!-- 月累计静风时长0.00小时, -->
-          月累计待机小时{{
-            tableVal.byzb && tableVal.byzb.tjxs
-          }}小时,待机占比{{ tableVal.byzb && tableVal.tqzb.tjxs }}%。
-        </div>
-      </div>
-      <div class="mg-b-16">
-        <panel :title="'损失电量分析'" :showLine="true">
-          <multiple-bar-line-chart
-            :height="'21.296vh'"
-            :barData="bar1Data"
-            :lineData="lineData"
-          />
-        </panel>
-      </div>
-      <div class="mg-b-16">
-        <panel :title="'损失电量分析'" :showLine="true">
-          <vertival-bar-line-chart :height="'21.296vh'" :bardata="bar2data" />
-        </panel>
-      </div>
-      <div class="mg-b-16">
-        <panel :title="'损失电量分析'" :showLine="true">
-          <double-line-chart :height="'21.296vh'" :list="list" />
-        </panel>
-      </div>
-    </el-scrollbar>
-  </div>
-</template>
-
-<script>
-import Panel from "../../components/coms/panel/panel.vue";
-import Table from "../../components/coms/table/table.vue";
-import VertivalBarLineChart from "../../components/chart/combination/vertival-bar-line-chart.vue";
-import MultipleBarLineChart from "../../components/chart/combination/multiple-bar-line-chart.vue";
-import DoubleLineChart from "../../components/chart/line/double-line-chart.vue";
-import api from "@api/economic/index.js";
-
-export default {
-  setup() {},
-  components: {
-    Panel,
-    Table,
-    VertivalBarLineChart,
-    MultipleBarLineChart,
-    DoubleLineChart,
-  },
-  data() {
-    return {
-      wtId: "",
-      year: "",
-      month: "",
-      tableVal: "",
-      tabrow: {
-        fdl: "实际发电量(万千瓦时)",
-        fs: "平均风速(m/s)",
-        gzss: "故障损失电量(万千瓦时)",
-        jxss: "计划检修损失电量(万千瓦时)",
-        xdss: "调度限电损失电量(万千瓦时)",
-        xnss: "性能未达标损失电量(万千瓦时)",
-        slss: "受累损失电量(万千瓦时)",
-        llfdl: "理论发电量(万千瓦时)",
-        gzxs: "故障停运时间(小时)",
-        jxxs: "检修停运时间(小时)",
-        tjxs: "待机时间(小时)",
-        zdxs: "通讯中断时间(小时)",
-        yxxs: "并网时间(小时)",
-        lyxs: "设备利用小时(小时)",
-        sbklyl: "设备利用率(%)",
-        dxklyxs: "等效可用系数(%)",
-        xfqr: "小风切入风速(m/s)",
-        glyzxxs: "功率特性一致性系数(%)",
-        yxfss: "有效风时数(小时)",
-        xfqrhgl: "小风切入合格率(%)",
-        jfpl: "静风频率(%)",
-      },
-      tableData2: {
-        column: [
-          {
-            name: "指标名称",
-            field: "name",
-          },
-          {
-            name: "本月值",
-            field: "byzb",
-          },
-          {
-            name: "去年同期",
-            field: "hqzb",
-          },
-          {
-            name: "同比增长率(%)",
-            field: "hbzb",
-          },
-          {
-            name: "环比",
-            field: "tqzb",
-          },
-          {
-            name: "环比端值(%)",
-            field: "tbzb",
-          },
-        ],
-        data: [
-          {
-            name: "实际发电量(万kWh)",
-            v1: "174785",
-            v2: "317885",
-            v3: "-45",
-            v4: "22322",
-            v5: "-36",
-          },
-        ],
-      },
-      bar1Data: [
-        {
-          title: "日发电量",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "05-01",
-              value: 1,
-            },
-            {
-              text: "05-01",
-              value: 2,
-            },
-            {
-              text: "05-01",
-              value: 1,
-            },
-            {
-              text: "05-01",
-              value: 3,
-            },
-            {
-              text: "05-01",
-              value: 3,
-            },
-            {
-              text: "05-01",
-              value: 3,
-            },
-            {
-              text: "05-01",
-              value: 3,
-            },
-          ],
-        },
-        {
-          title: "风速",
-          yAxisIndex: 0,
-          value: [
-            {
-              text: "05-01",
-              value: 1,
-            },
-            {
-              text: "05-01",
-              value: 2,
-            },
-            {
-              text: "05-01",
-              value: 1,
-            },
-            {
-              text: "05-01",
-              value: 3,
-            },
-            {
-              text: "05-01",
-              value: 3,
-            },
-            {
-              text: "05-01",
-              value: 3,
-            },
-            {
-              text: "05-01",
-              value: 3,
-            },
-          ],
-        },
-      ],
-      lineData: {
-        name: "风速",
-        unit: "km",
-        data: [200, 800, 400, 500, 800, 700, 800, 900, 200],
-      },
-      bar2data: {
-        area: [
-          "05-01",
-          "05-01",
-          "05-01",
-          "05-01",
-          "05-01",
-          "05-01",
-          "05-01",
-          "05-01",
-          "05-01",
-        ],
-        legend: [
-          "限电损失电量",
-          "性能未达标损失电量",
-          "检修损失电量",
-          "故障损失电量",
-          "受累损失电量",
-          "性能损失",
-        ],
-        data: [
-          [1320, 1302, 901, 634, 1390, 1330, 1320, 1000, 500],
-          [320, 302, 301, 334, 390, 330, 320, 100, 50],
-          [320, 302, 301, 334, 390, 330, 320, 100, 50],
-          [1320, 1302, 901, 634, 1390, 1330, 1320, 1000, 500],
-          [320, 302, 301, 334, 390, 330, 320, 100, 50],
-          [320, 302, 301, 334, 390, 330, 320, 100, 50],
-          [1320, 1302, 901, 634, 1390, 1330, 1320, 1000, 500],
-          [320, 302, 301, 334, 390, 330, 320, 100, 50],
-        ],
-      },
-      list: [
-        {
-          title: "绿123线",
-          smooth: false,
-          value: [
-            {
-              text: "",
-              value: 0,
-            },
-            {
-              text: "0:00",
-              value: 20,
-            },
-            {
-              text: "10:00",
-              value: 1,
-            },
-            {
-              text: "11:00",
-              value: 40,
-            },
-            {
-              text: "12:00",
-              value: 10,
-            },
-            {
-              text: "13:00",
-              value: 15,
-            },
-            {
-              text: "14:00",
-              value: 30,
-            },
-            {
-              text: "15:00",
-              value: 40,
-            },
-            {
-              text: "",
-              value: 10,
-            },
-          ],
-        },
-        {
-          title: "黄线",
-          smooth: false,
-          value: [
-            {
-              text: "",
-              value: 0,
-            },
-            {
-              text: "0:00",
-              value: 40,
-            },
-            {
-              text: "10:00",
-              value: 20,
-            },
-            {
-              text: "11:00",
-              value: 20,
-            },
-            {
-              text: "12:00",
-              value: 10,
-            },
-            {
-              text: "13:00",
-              value: 40,
-            },
-            {
-              text: "14:00",
-              value: 50,
-            },
-            {
-              text: "15:00",
-              value: 40,
-            },
-            {
-              text: "",
-              value: 10,
-            },
-          ],
-        },
-      ],
-    };
-  },
-  created() {
-    this.wtId = this.$route.params.wtId;
-    this.year = this.$route.params.year;
-    this.month = this.$route.params.month;
-    this.search();
-    this.searchChart();
-  },
-  filters: {
-    tabrowfil(val) {
-      return this.tabrow[val];
-    },
-  },
-  methods: {
-    async search() {
-      const { data } = await api.singleanalysisSingleanalysisSub({
-        wtId: this.wtId,
-        year: this.year,
-        month: this.month,
-      });
-
-      //  this.API.requestData({
-      //   subUrl: "/singleanalysis/singleanalysisSub",
-      //   method: "POST",
-      //   data: {
-      //     wtId: this.wtId,
-      //     year: this.year,
-      //     month: this.month,
-      //   },
-      // });
-      console.log(data.data);
-      const res = data.data;
-      this.tableVal = data.data;
-      console.warn(this.tableVal);
-      let arr = [];
-      let keyarr = Object.keys(res.byzb);
-      console.warn(keyarr);
-      let jarr = Object.keys(res);
-      for (let k of keyarr) {
-        let obj = {
-          name: k,
-          byzb: null,
-          hbzb: null,
-          hqzb: null,
-          tbzb: null,
-          tqzb: null,
-        };
-        for (let i in res) {
-          for (let j of jarr) {
-            if (i == j) {
-              obj[j] = res[i][k];
-            }
-          }
-        }
-        arr.push(obj);
-      }
-      arr = arr.filter((e) => {
-        return (
-          e.name != "id" &&
-          e.name != "windturbineid" &&
-          e.name != "windturbineName" &&
-          e.name != "windPowerStationId" &&
-          e.name != "windPowerStationName" &&
-          e.name != "recorddate" &&
-          e.name != "swdl" &&
-          e.name != "gwdl" &&
-          e.name != "rlxs" &&
-          e.name != "fjrl"
-        );
-      });
-      arr.forEach((e) => {
-        e.name = this.tabrow[e.name];
-      });
-      this.tableData2.data = arr;
-      console.warn(arr);
-    },
-    async searchChart() {
-      const { data } = await api
-        .singleanalysisSingleanalysisChart({
-          wtId: this.wtId,
-          year: this.year,
-          month: this.month,
-        })
-       
-
-      // this.API.requestData({
-      //   subUrl: "/singleanalysis/singleanalysisChart",
-      //   method: "POST",
-      //   data: {
-      //     wtId: this.wtId,
-      //     year: this.year,
-      //     month: this.month,
-      //   },
-      // });
-      console.warn(data.data);
-      const res = data.data;
-      let arrfffdl = [];
-      let arrfffs = [];
-      res.ff.forEach((e) => {
-        let obj = {
-          text: new Date(e.recorddate).formatDate("MM-dd"),
-          value: e.fdl,
-        };
-        let obj1 = {
-          text: new Date(e.recorddate).formatDate("MM-dd"),
-          value: e.fs,
-        };
-        arrfffdl.push(obj);
-        arrfffs.push(obj1);
-      });
-      this.bar1Data[0].value = arrfffdl;
-      this.lineData.data = arrfffs;
-      ////
-      let arrjdjf = [];
-      let arrjddj = [];
-      res.jd.forEach((e) => {
-        let obj = {
-          text: new Date(e.recorddate).formatDate("MM-dd"),
-          value: e.jfpl,
-        };
-        let obj1 = {
-          text: new Date(e.recorddate).formatDate("MM-dd"),
-          value: e.tjxs,
-        };
-        arrjdjf.push(obj);
-        arrjddj.push(obj1);
-      });
-      let obj = {
-        title: "静风时长(小时)",
-        smooth: false,
-        value: arrjdjf,
-      };
-      let obj1 = {
-        title: "待机时长(小时)",
-        smooth: false,
-        value: arrjddj,
-      };
-      this.list = [];
-      this.list.push(obj);
-      this.list.push(obj1);
-      console.warn(this.list);
-      /////
-      let arrwsarea = [];
-      let arrwslegend = [
-        "限电损失电量",
-        "性能未达标损失电量",
-        "检修损失电量",
-        "故障损失电量",
-        "受累损失电量",
-      ];
-      let arrwsdata = [];
-      res.ws.forEach((e) => {
-        let arr = [];
-        for (let k of ["xdss", "xnss", "jxss", "gzss", "slss"]) {
-          arr.push(e[k]);
-        }
-        arrwsdata.push(arr);
-        arrwsarea.push(new Date(e.recorddate).formatDate("MM-dd"));
-      });
-      this.bar2data.area = arrwsarea;
-      this.bar2data.legend = arrwslegend;
-      this.bar2data.data = arrwsdata;
-      console.warn(this.bar2data);
-    },
-    back() {
-      this.$router.go(-1);
-    },
-  },
-};
-</script>
-
-<style lang="less">
-.znzhfx {
-  font-size: 12px;
-  .anliz-des {
-    font-size: 16px;
-    color: #b3bdc0;
-    margin-top: 1.4993vh;
-    margin-bottom: 44px;
-  }
-  .table-panel {
-    .table-title {
-      font-size: 16px;
-      text-align: center;
-      color: #fefefe;
-      height: 4.6972vh;
-      line-height: 4.6972vh;
-    }
-    .back {
-      margin: 2.3988vh 0px 0px 0px;
-    }
-  }
-  .com-table {
-    border: 1px solid #6067697d;
-  }
-}
-</style>

File diff suppressed because it is too large
+ 0 - 1950
src/views/NewPages/ztfx.vue


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

@@ -1,995 +0,0 @@
-<template>
-  <div class="swiperBox">
-    <el-carousel
-      style="width: 100%; margin: 5vh 0"
-      trigger="click"
-      type="card"
-      height="80vh"
-      :autoplay="false"
-      indicator-position="none"
-      :initial-index="1"
-      arrow="none"
-      @change="changeSwiper"
-    >
-      <!-- card-1 -->
-      <!-- <el-carousel-item :style="$store.state.themeName === 'dark' ? 'padding: 20px; background: rgb(4, 12, 11)' : 'padding: 20px; background: #fff'">
-        <div class="itemBox">
-          <p class="itemTitle">记录查询</p>
-          <div class="df-table">
-            <div
-              class="sjcx-item"
-              v-for="item in earlyAlarmColumn"
-              :key="item"
-              @click="jumpUrl(item.url)"
-            >
-              <div class="sjcx-name">{{ item.name }}</div>
-              <div class="sjcx-value">
-                {{ earlyAlarmData[item.key] || "0" }}
-              </div>
-            </div>
-          </div>
-        </div>
-      </el-carousel-item> -->
-
-      <!-- card-2 -->
-      <!-- card-3 -->
-      <el-carousel-item
-        :style="
-          $store.state.themeName === 'dark'
-            ? 'padding: 20px; background: rgb(4, 12, 11)'
-            : 'padding: 20px; background: #fff'
-        "
-      >
-        <div class="itemBox">
-          <p class="itemTitle">数据查询</p>
-          <div class="df-table" @click="jumpUrl('/others/realSearch')">
-            <div
-              class="sjcx-item"
-              v-for="(value, key) in wppointColumn"
-              :key="key"
-            >
-              <div class="sjcx-name">{{ value }}</div>
-              <div class="sjcx-value">{{ wppointnum[key] }}</div>
-            </div>
-          </div>
-        </div>
-      </el-carousel-item>
-
-      <el-carousel-item
-        :style="
-          $store.state.themeName === 'dark'
-            ? 'padding: 20px; background: rgb(4, 12, 11)'
-            : 'padding: 20px; background: #fff'
-        "
-      >
-        <div class="itemBox">
-          <p class="itemTitle">
-            报表管理
-            <!-- <i class="itemMoreBtn el-icon-more" @click="jumpUrl('/realSearch')"></i> -->
-          </p>
-          <div class="imageBox1">
-            <!-- <div class="imgItem1" @click="jumpUrl('/others/tjfx')">
-              <img
-                class="img1"
-                src="@assets/images/o统计分析.png"
-                fit="fill"
-              />
-              <p class="imgTitle">统计分析</p>
-            </div> -->
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/statisticAnalysis')"
-              v-if="$store.state.themeName === 'dark'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/bdzcx.png"
-                fit="fill"
-              />
-              <p class="imgTitle">报表管理</p>
-            </div>
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/statisticAnalysis')"
-              v-if="$store.state.themeName === 'light'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/bdzcx.png"
-                fit="fill"
-              />
-              <p class="imgTitle">报表管理</p>
-            </div>
-
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/statisticAnalysis/daily')"
-              v-if="$store.state.themeName === 'dark'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/xnyyb.png"
-                fit="fill"
-              />
-              <p class="imgTitle">新能源日报</p>
-            </div>
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/statisticAnalysis/daily')"
-              v-if="$store.state.themeName === 'light'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/xnyyb.png"
-                fit="fill"
-              />
-              <p class="imgTitle">新能源日报</p>
-            </div>
-            <!-- <div class="imgItem1" @click="jumpUrl('/others/xnyfdscyb')">
-              <img
-                class="img1"
-                src="@assets/images/o新能源月报.png"
-                fit="fill"
-              />
-              <p class="imgTitle">新能源风电生产月报</p>
-            </div>
-            <div class="imgItem1" @click="jumpUrl('/others/fdczzdy')">
-              <img
-                class="img1"
-                src="@assets/images/o风场自定义.png"
-                fit="fill"
-              />
-              <p class="imgTitle">风电场站自定义</p>
-            </div> -->
-            <!-- <div class="imgItem1" @click="jumpUrl('/others/fdxmzdy')">
-              <img
-                class="img1"
-                src="@assets/images/o风电自定义.png"
-                fit="fill"
-              />
-              <p class="imgTitle">风电项目自定义</p>
-            </div> -->
-          </div>
-        </div>
-      </el-carousel-item>
-
-      <!-- card-4 -->
-      <!-- <el-carousel-item style="padding: 20px; background: rgb(4, 12, 11)">
-        <div class="itemBox">
-          <p class="itemTitle">
-            统计分析
-            <i class="itemMoreBtn el-icon-more" @click="jumpUrl('/realSearch')"></i>
-          </p>
-           <ComTable height="30vh" :data="tableData7" :pageSize="20">
-            </ComTable>
-            <ComTable height="30vh" :data="tableData8" :pageSize="20">
-            </ComTable>
-        </div>
-      </el-carousel-item> -->
-      <!-- card-5 -->
-      <!-- <el-carousel-item style="padding: 20px; background: rgb(4, 12, 11)">
-        <div class="itemBox">
-          <p class="itemTitle">
-            专家知识
-          </p>
-          <div class="df-table">
-            <ComTable height="30vh" :data="tableData3">
-            </ComTable>
-          </div>
-        </div>
-      </el-carousel-item> -->
-      <el-carousel-item
-        :style="
-          $store.state.themeName === 'dark'
-            ? 'padding: 20px; background: rgb(4, 12, 11)'
-            : 'padding: 20px; background: #fff'
-        "
-      >
-        <div class="itemBox">
-          <p class="itemTitle">
-            专家知识
-            <!-- <i class="itemMoreBtn el-icon-more" @click="jumpUrl('/realSearch')"></i> -->
-          </p>
-          <div class="imageBox1">
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/knowledge/knowledge')"
-              v-if="$store.state.themeName === 'light'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/gztx.png"
-                fit="fill"
-              />
-              <p class="imgTitle">故障体系</p>
-            </div>
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/knowledge/knowledge')"
-              v-if="$store.state.themeName === 'dark'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/gztx.png"
-                fit="fill"
-              />
-              <p class="imgTitle">故障体系</p>
-            </div>
-
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/knowledge/knowledge7')"
-              v-if="$store.state.themeName === 'light'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/yjzs.png"
-                fit="fill"
-              />
-              <p class="imgTitle">预警知识</p>
-            </div>
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/knowledge/knowledge7')"
-              v-if="$store.state.themeName === 'dark'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/yjzs.png"
-                fit="fill"
-              />
-              <p class="imgTitle">预警知识</p>
-            </div>
-
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/knowledge/knowledge5')"
-              v-if="$store.state.themeName === 'light'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/tzcs.png"
-                fit="fill"
-              />
-              <p class="imgTitle">特征参数</p>
-            </div>
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/knowledge/knowledge5')"
-              v-if="$store.state.themeName === 'dark'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/tzcs.png"
-                fit="fill"
-              />
-              <p class="imgTitle">特征参数</p>
-            </div>
-
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/knowledge/knowledge6')"
-              v-if="$store.state.themeName === 'light'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/jxfa.png"
-                fit="fill"
-              />
-              <p class="imgTitle">排查、检修方案</p>
-            </div>
-            <div
-              class="imgItem1"
-              @click="jumpUrl('/others/knowledge/knowledge6')"
-               v-if="$store.state.themeName === 'dark'"
-            >
-              <img
-                class="img1"
-                src="@assets/images/jxfa.png"
-                fit="fill"
-              />
-              <p class="imgTitle">排查、检修方案</p>
-            </div>
-
-            <!-- <div
-              class="imgItem1"
-              @click="jumpUrl('/health/gzzd/malfunctionDiagnose')"
-            >
-              <img
-                class="img1"
-                src="@assets/images/o评价体系.png"
-                fit="fill"
-              />
-              <p class="imgTitle">评价体系</p>
-            </div> -->
-            <!-- <div class="imgItem1" @click="jumpUrl('/health/frist')">
-              <img
-                class="img1"
-                src="@assets/images/o人工智能.png"
-                fit="fill"
-              />
-              <p class="imgTitle">人工智能</p>
-            </div> -->
-          </div>
-        </div>
-      </el-carousel-item>
-    </el-carousel>
-  </div>
-</template>
-
-<script>
-import $ from "jquery";
-import ComTable from "./table.vue";
-export default {
-  // 名称
-  name: "cutAnalyse",
-  // 使用组件
-  components: {
-    ComTable,
-  },
-  // 数据
-  data() {
-    return {
-      wppointnum: {},
-      wppointColumn: {
-        GJY_FDC: "高家堰风电场",
-      },
-      earlyAlarmData: {},
-      earlyAlarmColumn: [
-        {
-          name: "升压站告警",
-          key: "syzgj",
-          url: "/others/alarmCenter/boosterAlarm",
-        },
-        {
-          name: "升压站动作",
-          key: "",
-          url: "/others/alarmCenter/boosterAlarm",
-        },
-        { name: "限电事件", key: "xd", url: "/others/alarmCenter/xdgl" },
-        { name: "停机事件", key: "tj", url: "/others/alarmCenter/tjsj" },
-        { name: "状态转换记录", key: "zt", url: "/others/alarmCenter/ztzhjl" },
-        {
-          name: "风机告警",
-          key: "fjgj",
-          url: "/others/alarmCenter/scadaAlarm",
-        },
-        {
-          name: "风机预警",
-          key: "fjyj",
-          url: "/others/alarmCenter/alarmcenter",
-        },
-        { name: "操作记录", key: "cz", url: "/others/alarmCenter/czjl" },
-        { name: "光伏告警", key: "gfgj", url: "/others/alarmCenter/gfgj" },
-      ],
-      tableData1: {
-        column: [
-          {
-            name: "名称",
-            field: "pointId",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "发电量",
-            field: "pointName",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "设备结构",
-            field: "timeDate",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "关键参数",
-            field: "value",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-        ],
-        data: [],
-      },
-      tableData2: {
-        column: [
-          {
-            name: "状态",
-            field: "pointId",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "当日数量",
-            field: "pointName",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "类型",
-            field: "timeDate",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "等级",
-            field: "value",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-        ],
-        data: [],
-      },
-      tableData3: {
-        column: [
-          {
-            name: "名称",
-            field: "pointId",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "数量",
-            field: "pointName",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-        ],
-        data: [],
-      },
-      tableData4: {
-        column: [
-          {
-            name: "名称",
-            field: "pointId",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "数量",
-            field: "pointName",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-        ],
-        data: [],
-      },
-      swiperIndex: 1,
-    };
-  },
-
-  // 函数
-  methods: {
-    // 切换走马灯,并重新渲染样式
-    changeSwiper(index) {
-      this.$nextTick(() => {
-        const themeName = this.$store.state.themeName;
-        const swiperDom = $(".swiperBox .el-carousel__item");
-        swiperDom.eq(index).css({
-          background: themeName === "dark" ? "rgb(4, 12, 11)" : "#fff",
-          border:
-            themeName === "dark" ? "1px solid #05bb4c" : "1px solid #36348e",
-        });
-        for (let i = 0; i < swiperDom.length; i++) {
-          if (i !== index) {
-            swiperDom
-              .eq(i)
-              .find(".el-carousel__mask")
-              .css({
-                background: themeName === "dark" ? "rgb(4, 12, 11)" : "#fff",
-              });
-            swiperDom.eq(i).css({
-              background: themeName === "dark" ? "rgb(4, 12, 11)" : "#fff",
-              border:
-                themeName === "dark"
-                  ? "1px solid rgba(5, 187, 76, 0.5)"
-                  : "1px solid rgba(57, 54, 143, 0.5)",
-            });
-          }
-        }
-      });
-      this.swiperIndex = index;
-    },
-
-    // 页面跳转
-    jumpUrl(url) {
-      this.$router.push(url);
-    },
-    //获取表格数据
-    getTableData() {
-      let that = this;
-      let tableArr1 = [
-        {
-          index: 1,
-          pointId: "青山风电场",
-          pointName: 3763,
-          timeDate: "1号机",
-          value: "16.93",
-        },
-        {
-          index: 2,
-          pointId: "石板泉风电场",
-          pointName: 4500,
-          timeDate: "2号机",
-          value: "20.56",
-        },
-        {
-          index: 3,
-          pointId: "牛首山风电场",
-          pointName: 3863,
-          timeDate: "3号机",
-          value: "38",
-        },
-        {
-          index: 4,
-          pointId: "香山风电场",
-          pointName: 3654,
-          timeDate: "4号机",
-          value: "54",
-        },
-        {
-          index: 5,
-          pointId: "麻黄山风电场",
-          pointName: 1863,
-          timeDate: "5号机",
-          value: "18",
-        },
-      ];
-      that.tableData1.data = tableArr1;
-
-      let tableArr2 = [
-        {
-          index: 1,
-          pointId: "停机事件管理",
-          pointName: 11.93,
-          timeDate: "升压站动作",
-          value: "2",
-        },
-        {
-          index: 2,
-          pointId: "限电管理",
-          pointName: 21.56,
-          timeDate: "升压站告警",
-          value: "5",
-        },
-        {
-          index: 3,
-          pointId: "状态转换记录",
-          pointName: 82,
-          timeDate: "风机告警",
-          value: "3",
-        },
-        {
-          index: 4,
-          pointId: "操作记录",
-          pointName: 54,
-          timeDate: "风机预警",
-          value: "1",
-        },
-      ];
-      that.tableData2.data = tableArr2;
-
-      let tableArr3 = [
-        {
-          index: 1,
-          pointId: "故障知识列表",
-          pointName: 16.93,
-        },
-        {
-          index: 2,
-          pointId: "安全措施知识",
-          pointName: 20.56,
-        },
-        {
-          index: 3,
-          pointId: "排查检修方案",
-          pointName: 38,
-        },
-        {
-          index: 4,
-          pointId: "预警知识",
-          pointName: 54,
-        },
-        {
-          index: 5,
-          pointId: "特征参数",
-          pointName: 44,
-        },
-        {
-          index: 6,
-          pointId: "风险辨识知识",
-          pointName: 24,
-        },
-        {
-          index: 7,
-          pointId: "作业指导知识",
-          pointName: 14,
-        },
-      ];
-      that.tableData3.data = tableArr3;
-
-      let tableArr4 = [
-        {
-          index: 1,
-          pointId: "风电场站自定义",
-          pointName: 16.93,
-        },
-        {
-          index: 2,
-          pointId: "风电项目自定义",
-          pointName: 20.56,
-        },
-        {
-          index: 3,
-          pointId: "光伏场站自定义",
-          pointName: 38,
-        },
-        {
-          index: 4,
-          pointId: "光伏项目自定义",
-          pointName: 54,
-        },
-      ];
-      that.tableData4.data = tableArr4;
-    },
-    getWppointnum() {
-      const that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "yaw/getWppointnum",
-        success(res) {
-          that.wppointnum = res.data;
-        },
-      });
-    },
-    async getEarlyAlarmData() {
-      const that = this;
-      const { data } = await that.API.requestData({
-        method: "GET",
-        baseURL: "http://192.168.1.18:8075/",
-        subUrl: "alarm/count/todaycount",
-        success(res) {},
-      });
-      this.earlyAlarmData = data.data;
-    },
-  },
-
-  created() {},
-
-  mounted() {
-    let that = this;
-    this.$nextTick(() => {
-      setTimeout(() => {
-        this.changeSwiper(1);
-      }, 200);
-    });
-    that.getTableData();
-    // that.getWppointnum();
-    // that.getEarlyAlarmData();
-  },
-
-  unmounted() {},
-
-  watch: {
-    "$store.state.themeName"() {
-      this.$nextTick(() => {
-        setTimeout(() => {
-          this.changeSwiper(this.swiperIndex, 222);
-        }, 200);
-      });
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.swiperBox,
-.itemBox {
-  width: 100%;
-  height: 100%;
-  font-size: 20px;
-  .df-table {
-    .com-table thead tr th {
-      background-color: rgba(83, 98, 104, 0.2);
-      height: 30px;
-      line-height: 30px;
-      color: #9ca5a8;
-      font-weight: 400;
-      font-size: 20px !important;
-      position: sticky;
-      top: 0;
-      cursor: pointer;
-    }
-    .com-table tbody tr td {
-      padding: 4px;
-      color: #393a3a;
-      text-align: center;
-      font-size: 20px !important;
-      white-space: nowrap;
-      overflow: hidden;
-      text-overflow: ellipsis;
-    }
-    .sjcx-item:nth-child(2n) {
-      background-color: rgba(96, 103, 105, 0.2);
-    }
-    .sjcx-item:hover {
-      color: #05bb4c;
-    }
-    .sjcx-item {
-      cursor: pointer;
-      // background-color: #edbf03;
-      display: flex;
-      height: 6.68vh;
-      line-height: 6.68vh;
-      font-size: 18pt;
-      text-align: center;
-      color: #9ca5a8;
-      .sjcx-name {
-        // background-color:aqua;
-        flex: 0 0 50%;
-      }
-      .sjcx-value {
-        // text-align: left;
-        // background-color:rosybrown;
-        flex: 0 0 50%;
-      }
-    }
-  }
-  .itemTitle {
-    width: 100%;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    position: relative;
-
-    .itemMoreBtn {
-      cursor: pointer;
-      font-size: 22px;
-      position: absolute;
-      right: 0;
-      top: 0;
-    }
-  }
-
-  .inline {
-    display: flex;
-    justify-content: space-around;
-    align-items: center;
-    font-size: 24px;
-    margin-bottom: 30px;
-    width: 100%;
-    margin: 0 0 30px 0;
-    transition: 0.2s;
-
-    .l {
-      color: #b3bdc0;
-      width: 46%;
-      display: flex;
-      justify-content: flex-end;
-      align-items: center;
-      margin-right: 4%;
-      transition: 0.2s;
-    }
-
-    .r {
-      color: #05bb4c;
-      position: relative;
-      width: 46%;
-      display: flex;
-      justify-content: flex-start;
-      align-items: center;
-      margin-left: 4%;
-
-      &::after {
-        content: "";
-        position: absolute;
-        height: 10px;
-        left: 30px;
-        top: calc(50% - 5px);
-        background-color: #edbf03;
-        border-radius: 2px;
-      }
-    }
-
-    .r1::after {
-      width: 30px;
-    }
-
-    .r2::after {
-      width: 60px;
-    }
-
-    .r3::after {
-      width: 90px;
-    }
-
-    .r4::after {
-      width: 120px;
-    }
-
-    &:hover {
-      width: 80%;
-      margin: 0 10% 30px 10%;
-      color: #05bb4c;
-      transition: 0.2s;
-    }
-
-    &:hover .l {
-      color: #05bb4c;
-      transition: 0.2s;
-    }
-  }
-
-  .imageBox {
-    width: 100%;
-    display: flex;
-    // justify-content: start;
-    justify-content: space-around;
-    align-items: center;
-    flex-wrap: wrap;
-    margin-top: 100px;
-
-    .imgItem {
-      cursor: pointer;
-      border: none;
-      margin-right: 1%;
-      margin-bottom: 20px;
-      display: flex;
-      justify-content: flex-start;
-      align-items: center;
-      flex-direction: column;
-      // width: 32%;
-      width: 45%;
-
-      .img {
-        width: 100%;
-        // height: 150px;
-        height: 300px;
-        border: 1px solid #b3bdc0;
-        transition: 0.2s;
-
-        &:hover {
-          border: 1px solid #05bb4c;
-          transition: 0.2s;
-        }
-      }
-
-      p {
-        width: 100%;
-        font-size: 16px;
-        color: #b3bdc0;
-        text-align: center;
-        transition: 0.2s;
-      }
-
-      &:hover p {
-        transition: 0.2s;
-        color: #05bb4c;
-      }
-    }
-  }
-  .imageBox1 {
-    width: 100%;
-    display: flex;
-    // justify-content: start;
-    justify-content: space-around;
-    align-items: center;
-    flex-wrap: wrap;
-    margin-top: 100px;
-
-    .imgItem1 {
-      cursor: pointer;
-      border: none;
-      margin-right: 1%;
-      margin-bottom: 20px;
-      display: flex;
-      // justify-content: start;
-      justify-content: space-around;
-      align-items: center;
-      flex-direction: column;
-      width: 32%;
-
-      .img1 {
-        width: 100%;
-        height: 150px;
-        border: 1px solid #b3bdc0;
-        transition: 0.2s;
-
-        &:hover {
-          border: 1px solid #05bb4c;
-          transition: 0.2s;
-        }
-      }
-
-      p {
-        width: 100%;
-        font-size: 16px;
-        color: #b3bdc0;
-        text-align: center;
-        transition: 0.2s;
-      }
-
-      &:hover p {
-        transition: 0.2s;
-        color: #05bb4c;
-      }
-    }
-  }
-  .imageBox2 {
-    width: 100%;
-    display: flex;
-    justify-content: space-around;
-    align-items: center;
-    flex-wrap: wrap;
-    margin-top: 100px;
-
-    .imgItem2 {
-      cursor: pointer;
-      border: none;
-      margin-right: 1%;
-      margin-bottom: 20px;
-      display: flex;
-      justify-content: space-around;
-      align-items: center;
-      flex-direction: column;
-      width: 45%;
-
-      .img2 {
-        width: 100%;
-        height: 180px;
-        border: 1px solid #b3bdc0;
-        transition: 0.2s;
-
-        &:hover {
-          border: 1px solid #05bb4c;
-          transition: 0.2s;
-        }
-      }
-
-      p {
-        width: 100%;
-        font-size: 16px;
-        color: #b3bdc0;
-        text-align: center;
-        transition: 0.2s;
-      }
-
-      &:hover p {
-        transition: 0.2s;
-        color: #05bb4c;
-      }
-    }
-  }
-
-  .iframe {
-    border: 0;
-    overflow: scroll;
-    background: #fff;
-  }
-}
-</style>
-
-<style lang="less">
-.itemBox {
-  .el-form-item,
-  .el-form-item__label {
-    font-size: 16px;
-  }
-
-  .el-form-item__label {
-    text-align: left;
-  }
-}
-</style>

+ 0 - 225
src/views/Others/table.vue

@@ -1,225 +0,0 @@
-<template>
-  <table class="com-table">
-    <thead>
-      <tr>
-        <th v-for="(col, index) of data.column" :key="index" :class="{ light: col.is_light }" :style="{ width: col.width }" @click="onSort(col)">
-          {{ col.name }}
-        </th>
-      </tr>
-    </thead>
-    <el-scrollbar>
-      <tbody :style="{ height: height }">
-        <tr v-for="(row, index) of tableData" :key="index">
-          <td
-            v-for="(col, i) of data.column"
-            :key="i"
-            :style="{ width: col.width }"
-            :class="{ light: hoverRow == row || hoverCol == col, num: col.is_num, 'always-light': col.is_light || row.is_light }"
-            @mouseenter="hover(row, col)"
-            @mouseleave="leave()"
-          >
-            <component :is="col.type ? col.type : 'span'" v-bind="col.props" v-html="template(col, row[col.field])" @click="onClick(col, row)"> </component>
-          </td>
-        </tr>
-      </tbody>
-    </el-scrollbar>
-    <el-pagination class="mg-t-8" v-if="pageable" @current-change="handleCurrentChange" :current-page="currentPage" :page-size="pageSize" :total="data.total" v-bind="elPaggingProps"> </el-pagination>
-  </table>
-</template>
-
-<script>
-export default {
-  // 名称
-  name: "ComTable",
-  // 使用组件
-  components: {},
-  // 传入参数
-  props: {
-    /**
-             * {
-                    column: [{
-                        name: "风机名称",
-                        field: "name",
-                        type:'div',
-                        width:'', // 宽度
-                        is_num: false, // 是否为数字
-                        is_light: false, // 是否高亮
-                        template:function(){ }
-                        click:function(){} //点击事件
-                        sortable:fasle // 排序
-                        // 新增用于在表格中使用动态三方组件
-                        type:'el-tag', // * 新增 用于传入三方组件名称 实现三方组件引入  component :is 方式实现
-                        props:{}, // * 新增 用户传入三方组件的 props 与type同时使用
-                    },{
-                        name: "冷却风温度",
-                        field: "lqf",
-                        is_num: true,
-                        is_light: false
-                    }],
-                    data: [{
-                        name: "1E01",
-                        lqf: 15.78,
-                        is_light: false
-                    }],
-                    total:200
-                }
-             */
-    data: Object,
-    // hover 样式
-    showHover: {
-      type: Boolean,
-      default: true,
-    },
-    // 列高亮
-    showColHover: {
-      type: Boolean,
-      default: false,
-    },
-    canScroll: {
-      type: Boolean,
-      default: true,
-    },
-    pageSize: {
-      type: Number,
-      default: 0,
-    },
-    height: {
-      type: String,
-      default: "",
-    },
-    // 新增 支持 pagging 组件
-    // elPaggingProps: {
-    //   type: Object,
-    //   default: () => {
-    //     return {
-    //       layout: "total, sizes, prev, pager, next, jumper",
-    //       // "page-sizes": [100, 200, 300, 400],
-    //     };
-    //   },
-    // },
-  },
-  // 自定义事件
-  emits: {
-    // 分页事件
-    // onPagging: null,
-  },
-  // 数据
-  data() {
-    return {
-      hoverRow: -1,
-      hoverCol: -1,
-      sortCol: "",
-      sortType: "",
-      currentPage: 1,
-    };
-  },
-  computed: {
-    tableData() {
-      let that = this;
-      if (this.sortCol == "") {
-        return this.data.data;
-      } else {
-        let data = this.data.data;
-
-        data.sort((a, b) => {
-          let rev = 1;
-          if (that.sortType == "ASC") rev = 1;
-          else if (that.sortType == "DESC") rev = -1;
-
-          if (a[that.sortCol] > b[that.sortCol]) return rev * 1;
-          if (a[that.sortCol] < b[that.sortCol]) return rev * -1;
-          return 0;
-        });
-        return data;
-      }
-    },
-    pageable() {
-      return this.pageSize != 0;
-    },
-    pages() {
-      if (this.pageable) return parseInt(this.data.total / this.pageSize) + 1;
-      else return 0;
-    },
-    startRow() {
-      if (this.pageable) return (this.currentPage - 1) * this.pageSize;
-      else return 0;
-    },
-    endRow() {
-      if (this.pageable) return this.currentPage * this.pageSize;
-      else return this.data.data.length;
-    },
-  },
-  // 函数
-  methods: {
-    clearCheckBox(time){
-      this.$nextTick(()=>{
-        setTimeout(()=>{
-          const domArray = document.querySelectorAll(".curCheckBox");
-          for(let i=0;i<domArray.length;i++){
-            domArray[i].checked=false;
-          }
-        },(time || 300));
-      });
-    },
-    onClick(col, data) {
-      if (col.click) col.click(event, data);
-    },
-    onSort(col) {
-      if (col.sortable == true) {
-        this.sortCol = col.field;
-        switch (this.sortType) {
-          case "":
-            this.sortType = "DESC";
-            break;
-          case "DESC":
-            this.sortType = "ASC";
-            break;
-          case "ASC":
-            this.sortType = "";
-            break;
-        }
-      }
-    },
-    template(col, data) {
-      if (!col.template) return data;
-      else return col.template(data);
-    },
-    hover(row, col) {
-      if (this.showHover) {
-        this.hoverRow = row;
-        if (this.showColHover) this.hoverCol = col;
-      }
-    },
-    leave() {
-      this.hoverRow = -1;
-      this.hoverCol = -1;
-    },
-    handleCurrentChange(val) {
-      this.currentPage = val;
-      this.$emit("onPagging", {
-        pageIndex: this.currentPage,
-        pageSize: this.pageSize,
-        start: this.startRow,
-        end: this.endRow,
-      });
-    },
-  },
-  // 生命周期钩子
-  beforeCreate() {
-    // 创建前
-  },
-  created() {
-    // 创建后
-  },
-  beforeMount() {
-    // 渲染前
-  },
-  mounted() {
-    // 渲染后
-  },
-  beforeUpdate() {},
-  updated() {},
-};
-</script>
-
-<style lang="less"></style>

File diff suppressed because it is too large
+ 0 - 1478
src/views/SandTable/SandTable.vue


+ 0 - 311
src/views/SandTable/SandTable_old.vue

@@ -1,311 +0,0 @@
-<template>
-    <div class="sand-table">
-        <img :src="require('@assets/png/3dback.png')" class="i3dback">
-        <StBack></StBack>
-        <ThreeModel class="three-model-layer" @when="when"></ThreeModel>
-        <div class="sand-table-left" v-if="showPanel">
-            <PanelSand class="left-panel" title="板块标题" subTitle="AM10:52  实况">
-                <weather class="pd-t-16" />
-            </PanelSand>
-            <PanelSand class="left-panel mg-t-16" title="板块标题">
-                <div class="pd-t-16">
-                    <list-bar-chart-2 :list="ForecastPower" height="8vh" />
-                </div>
-            </PanelSand>
-            <PanelSand class="left-panel mg-t-16" title="板块标题">
-                <div class="pd-t-16">
-                    <div class="fdl-title">
-                        <i class="fa fa-bolt green font-md mg-r-8"></i>
-                        <span class="green font-md mg-r-16">发电量</span>
-                        <span class="white font-num font-lg mg-r-8">2834.9</span>
-                        <span class="white font-sm">亿元</span>
-                    </div>
-                    <power-plan />
-                </div>
-            </PanelSand>
-            <PanelSand class="left-panel mg-t-16" title="板块标题">
-                <power-review />
-            </PanelSand>
-        </div>
-        <div class="sand-table-right" v-if="showPanel">
-            <PanelSand class="right-panel" title="板块标题">
-                <el-row>
-                    <el-col :span="12" class="pre-img-box">
-                        <img v-if="!videoShow" class="pre-img" :src="require('@assets/png/p1.jpg')" />
-                        <video v-if="videoShow" class="pre-img" width="179" height="100" controls>
-                            <source :src="require('@assets/png/p.mp4')" type="video/mp4">
-                            您的浏览器不支持 video 标签。
-                        </video>
-                    </el-col>
-                    <el-col :span="12" class="pre-img-box">
-                        <img class="pre-img" :src="require('@assets/png/p2.jpg')" />
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :span="12" class="pre-img-box">
-                        <img class="pre-img" :src="require('@assets/png/p3.jpg')" />
-                    </el-col>
-                    <el-col :span="12" class="pre-img-box">
-                        <img class="pre-img" :src="require('@assets/png/p4.jpg')" />
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :span="12" class="pre-img-box">
-                        <img class="pre-img" :src="require('@assets/png/p5.jpg')" />
-                    </el-col>
-                    <el-col :span="12" class="pre-img-box">
-                        <img class="pre-img" :src="require('@assets/png/p6.jpg')" />
-                    </el-col>
-                </el-row>
-            </PanelSand>
-            <PanelSand class="right-panel mg-t-16" title="板块标题">
-                <div class="person-info-box mg-t-16">
-                    <img class="header mg-r-8 bg-green" :src="require('@assets/logo.png')" />
-                    <div class="person-info">
-                        <div class="green font-lg" style="font-weight: bold;">张三</div>
-                        <div class="white font-sm">
-                            <span>职务:高级检修工</span>
-                            <span class="mg-l-16">当前任务编号 000000</span>
-                        </div>
-                        <div class="white font-sm">平均检修时间 <span class="green">5</span> 小时</div>
-                    </div>
-                </div>
-                <div class="table mg-t-8">
-                    <Table :data="tableData" />
-                </div>
-            </PanelSand>
-            <PanelSandToolbar class="right-panel mg-t-16" title="风险隐患详情">
-                <template v-slot:tools>
-                    <div class="exchange" @click="exchange">
-                        <span :class="exchangeBtn ? 'gray' : 'green'">预警</span>
-                        <i class="green fa fa-exchange mg-l-8 mg-r-8"></i>
-                        <span :class="exchangeBtn ? 'green' : 'gray'">时长</span>
-                    </div>
-                </template>
-                <template v-slot:default>
-                    <RadarPieChart height="21vh" />
-                </template>
-            </PanelSandToolbar>
-        </div>
-    </div>
-</template>
-
-<script>
-import ThreeModel from "./component/ThreeModel.vue";
-import PanelSand from "@com/coms/panel/panel-sand.vue";
-import PanelSandToolbar from "@com/coms/panel/panel-sand-toolbar.vue";
-import Weather from "./component/weather.vue";
-import ListBarChart2 from "@com/chart/bar/list-bar-chart2.vue";
-import PowerPlan from "./component/power-plan.vue";
-import PowerReview from "./component/power-review.vue";
-import StBack from "./component/st-back.vue";
-import Table from "@com/coms/table/table.vue";
-import RadarPieChart from "@com/chart/pie/radar-pie-chart.vue";
-
-export default {
-    // 名称
-    name: "SandTable",
-    // 使用组件
-    components: {
-        ThreeModel,
-        PanelSand,
-        PanelSandToolbar,
-        Weather,
-        ListBarChart2,
-        PowerPlan,
-        PowerReview,
-        Table,
-        RadarPieChart,
-        StBack,
-    },
-    // 数据
-    data() {
-        return {
-            videoShow: true,
-            showPanel: false,
-            exchangeBtn: false,
-            ForecastPower: [
-                {
-                    name: "今日预测电量",
-                    value: 103.62,
-                    total: 150,
-                },
-                {
-                    name: "月预测发电量",
-                    value: 98.62,
-                    total: 100,
-                },
-            ],
-            tableData: {
-                column: [
-                    {
-                        name: "标题",
-                        field: "v1",
-                        is_num: false,
-                        is_light: false,
-                    },
-                    {
-                        name: "标题",
-                        field: "v2",
-                        is_num: false,
-                        is_light: false,
-                    },
-                    {
-                        name: "标题",
-                        field: "v3",
-                        width: "150px",
-                        is_num: false,
-                        is_light: false,
-                    },
-                    {
-                        name: "标题",
-                        field: "v4",
-                        is_num: false,
-                        is_light: false,
-                    },
-                ],
-                data: [
-                    {
-                        v1: "内容内容",
-                        v2: "内容内容",
-                        v3: "内容内容内容内容内容",
-                        v4: "内容内容",
-                        is_light: false,
-                    },
-                    {
-                        v1: "内容内容",
-                        v2: "内容内容",
-                        v3: "内容内容内容内容内容",
-                        v4: "内容内容",
-                        is_light: false,
-                    },
-                    {
-                        v1: "内容内容",
-                        v2: "内容内容",
-                        v3: "内容内容内容内容内容",
-                        v4: "内容内容",
-                        is_light: false,
-                    },
-
-                    {
-                        v1: "内容内容",
-                        v2: "内容内容",
-                        v3: "内容内容内容内容内容",
-                        v4: "内容内容",
-                        is_light: false,
-                    },
-                ],
-            },
-        };
-    },
-    // 函数
-    methods: {
-        when: function() {
-            this.showPanel = true;
-        },
-        exchange: function () {
-            this.exchangeBtn = !this.exchangeBtn;
-        },
-    },
-    // 生命周期钩子
-    beforeCreate() {
-        // 创建前
-    },
-    created() {
-        // 创建后
-    },
-    beforeMount() {
-        // 渲染前
-    },
-    mounted() {
-        // 渲染后
-    },
-    beforeUpdate() {
-        // 数据更新前
-    },
-    updated() {
-        // 数据更新后
-    },
-};
-</script>
-
-<style lang="less">
-.sand-table {
-    width: 100%;
-    height: 91.667vh;
-    position: relative;
-
-    .i3dback {
-        position: fixed;
-        z-index: -1;
-        width: 100vw;
-        height: 100vh;
-        top: 0;
-        left: 0;
-    }
-
-    .left-panel {
-        width: 36.852vh;
-    }
-
-    .right-panel {
-        width: 36.852vh;
-    }
-
-    .three-model-layer {
-        position: absolute;
-        width: 100%;
-        height: 100%;
-        z-index: 1;
-    }
-
-    .sand-table-left {
-        position: absolute;
-        left: 0;
-        top: 0;
-        z-index: 2;
-    }
-
-    .sand-table-right {
-        position: absolute;
-        right: 0;
-        top: 0;
-        z-index: 2;
-    }
-
-    .pre-img-box {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        margin-top: 0.556vh;
-        padding: 0;
-        
-        .pre-img {
-            width: 98%;
-        }
-    }
-
-    .person-info-box {
-        display: flex;
-
-        .header {
-            width: 75px;
-        }
-    }
-
-    .table {
-        width: calc(100% + 2.963vh);
-        margin-left: -1.481vh;
-        margin-bottom: -1.481vh;
-
-        .com-table thead tr th,
-        .com-table tr td {
-            padding: 0.556vh 0;
-        }
-    }
-
-    .exchange {
-        cursor: pointer;
-    }
-}
-</style>

+ 0 - 613
src/views/SandTable/SandTable_old1.vue

@@ -1,613 +0,0 @@
-<template>
-    <div class="sand-table">
-        <img :src="require('@assets/png/3dback.png')" class="i3dback">
-        <img :src="require('@assets/png/3dcloud.png')" class="i3dcloud">
-        <StBack></StBack>
-        <ThreeModel1 class="three-model-layer" @when="when"></ThreeModel1>
-        <div class="sand-table-left" v-if="showPanel">
-            <div class="com-panel-sand">
-                <div class="com-panel-sand-header font-sm white">
-                    <div class="sand-time">{{sandTime}}</div>
-                    <div class="sand-date mg-b-8">{{sandDate}}</div>
-                </div>
-                <div class="com-panel-body">
-                    <div class="weather-box">
-                        <div class="weather-item">
-                            <div class="weather-icon">
-                                <div class="svg-icon svg-icon-lg svg-icon-white other-icon">
-                                    <svg-icon svgid="svg-天气1" />
-                                </div>
-                            </div>
-                            <div class="weather-info">
-                                <div class="font-sm white">天气</div>
-                                <div class="font-lg green">多云转晴</div>
-                            </div>
-                        </div>
-                        <div class="weather-item">
-                            <div class="weather-icon">
-                                <div class="svg-icon svg-icon-lg svg-icon-white other-icon">
-                                    <svg-icon svgid="svg-温度1" />
-                                </div>
-                            </div>
-                            <div class="weather-info">
-                                <div class="font-sm white">温度</div>
-                                <div>
-                                    <span class="font-lg green">26</span>
-                                    <span class="font-sm white mg-l-8">℃</span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="weather-item">
-                            <div class="weather-icon">
-                                <div class="svg-icon svg-icon-lg svg-icon-white other-icon">
-                                    <svg-icon svgid="svg-风速" />
-                                </div>
-                            </div>
-                            <div class="weather-info">
-                                <div class="font-sm white">风向</div>
-                                <div>
-                                    <span class="font-lg green">4-5</span>
-                                    <span class="font-sm white mg-l-8">级 西北风</span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="weather-item">
-                            <div class="weather-icon">
-                                <div class="svg-icon svg-icon-lg svg-icon-white other-icon">
-                                    <svg-icon svgid="svg-能见度" />
-                                </div>
-                            </div>
-                            <div class="weather-info">
-                                <div class="font-sm white">能见度</div>
-                                <div>
-                                    <span class="font-lg green">20</span>
-                                    <span class="font-sm white mg-l-8">KM</span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="weather-item">
-                            <div class="weather-icon">
-                                <div class="svg-icon svg-icon-lg svg-icon-white other-icon">
-                                    <svg-icon svgid="svg-湿度1" />
-                                </div>
-                            </div>
-                            <div class="weather-info">
-                                <div class="font-sm white">湿度</div>
-                                <div>
-                                    <span class="font-lg green">75.0</span>
-                                    <span class="font-sm white mg-l-8">%</span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="weather-item">
-                            <div class="weather-icon">
-                                <div class="svg-icon svg-icon-lg svg-icon-white other-icon">
-                                    <svg-icon svgid="svg-气压1" />
-                                </div>
-                            </div>
-                            <div class="weather-info">
-                                <div class="font-sm white">气压</div>
-                                <div>
-                                    <span class="font-lg green">994</span>
-                                    <span class="font-sm white mg-l-8">kPa</span>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="weather-item">
-                            <div class="weather-icon">
-                                <div class="svg-icon svg-icon-lg svg-icon-white other-icon">
-                                    <svg-icon svgid="svg-日出1" />
-                                </div>
-                            </div>
-                            <div class="weather-info">
-                                <div class="font-sm white">日出时间</div>
-                                <div class="font-lg green">04:36</div>
-                            </div>
-                        </div>
-                        <div class="weather-item">
-                            <div class="weather-icon">
-                                <div class="svg-icon svg-icon-lg svg-icon-white other-icon">
-                                    <svg-icon svgid="svg-日落1" />
-                                </div>
-                            </div>
-                            <div class="weather-info">
-                                <div class="font-sm white">日落时间</div>
-                                <div class="font-lg green">18:50</div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="sand-table-right" v-if="showPanel">
-            <PanelSand class="right-panel" title="板块标题">
-                <el-row>
-                    <el-col :span="12" class="pre-img-box">
-                        <img v-if="!videoShow" class="pre-img" :src="require('@assets/png/p1.jpg')" />
-                        <video v-if="videoShow" class="pre-img" width="179" height="100" controls>
-                            <source :src="require('@assets/png/p.mp4')" type="video/mp4">
-                            您的浏览器不支持 video 标签。
-                        </video>
-                    </el-col>
-                    <el-col :span="12" class="pre-img-box">
-                        <img class="pre-img" :src="require('@assets/png/p2.jpg')" />
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :span="12" class="pre-img-box">
-                        <img class="pre-img" :src="require('@assets/png/p3.jpg')" />
-                    </el-col>
-                    <el-col :span="12" class="pre-img-box">
-                        <img class="pre-img" :src="require('@assets/png/p4.jpg')" />
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :span="12" class="pre-img-box">
-                        <img class="pre-img" :src="require('@assets/png/p5.jpg')" />
-                    </el-col>
-                    <el-col :span="12" class="pre-img-box">
-                        <img class="pre-img" :src="require('@assets/png/p6.jpg')" />
-                    </el-col>
-                </el-row>
-            </PanelSand>
-            <PanelSand class="right-panel mg-t-16" title="板块标题">
-                <div class="person-info-box mg-t-16">
-                    <img class="header mg-r-8 bg-green" :src="require('@assets/logo.png')" />
-                    <div class="person-info">
-                        <div class="green font-lg" style="font-weight: bold;">张三</div>
-                        <div class="white font-sm">
-                            <span>职务:高级检修工</span>
-                            <span class="mg-l-16">当前任务编号 000000</span>
-                        </div>
-                        <div class="white font-sm">平均检修时间 <span class="green">5</span> 小时</div>
-                    </div>
-                </div>
-                <div class="table mg-t-8">
-                    <Table :data="tableData" />
-                </div>
-            </PanelSand>
-            <PanelSandToolbar class="right-panel mg-t-16" title="风险隐患详情">
-                <template v-slot:tools>
-                    <div class="exchange" @click="exchange">
-                        <span :class="exchangeBtn ? 'gray' : 'green'">预警</span>
-                        <i class="green fa fa-exchange mg-l-8 mg-r-8"></i>
-                        <span :class="exchangeBtn ? 'green' : 'gray'">时长</span>
-                    </div>
-                </template>
-                <template v-slot:default>
-                    <RadarPieChart height="21vh" />
-                </template>
-            </PanelSandToolbar>
-        </div>
-        <div class="sand-table-bottom">
-            <div class="stb-chart-panel">
-                <PercentCard2></PercentCard2>
-            </div>
-            <div class="stb-chart-panel">
-                <PercentCard2 title="年计划完成率"></PercentCard2>
-            </div>
-            <div class="stb-count-panel">
-                <div class="stb-count-panel-icon">日</div>
-                <div class="stb-count-panel-info mg-l-16">
-                    <div class="white font-sm">今日预测发电量</div>
-                    <div class="mg-t-8">
-                        <span class="green font-num font-lg">994.76</span>
-                        <span class="white font-sm mg-l-8">kWh</span>
-                    </div>
-                </div>
-            </div>
-            <div class="stb-count-panel">
-                <div class="stb-count-panel-icon">月</div>
-                <div class="stb-count-panel-info mg-l-16">
-                    <div class="white font-sm">月预测发电量</div>
-                    <div class="mg-t-8">
-                        <span class="green font-num font-lg">994.76</span>
-                        <span class="white font-sm mg-l-8">kWh</span>
-                    </div>
-                </div>
-            </div>
-            <div class="stb-count-panel">
-                <div class="stb-count-panel-icon">
-                    <div class="svg-icon svg-icon-sm svg-icon-gray-l">
-                        <svg-icon svgid="svg-风速" />
-                    </div>
-                </div>
-                <div class="stb-count-panel-info mg-l-16">
-                    <div class="white font-sm">风速</div>
-                    <div class="mg-t-8">
-                        <span class="green font-num font-lg">994.76</span>
-                        <span class="white font-sm mg-l-8">kWh</span>
-                    </div>
-                </div>
-            </div>
-            <div class="stb-count-panel">
-                <div class="stb-count-panel-icon">
-                    <div class="svg-icon svg-icon-sm svg-icon-gray-l">
-                        <svg-icon svgid="svg-功率" />
-                    </div>
-                </div>
-                <div class="stb-count-panel-info mg-l-16">
-                    <div class="white font-sm">功率</div>
-                    <div class="mg-t-8">
-                        <span class="green font-num font-lg">994.76</span>
-                        <span class="white font-sm mg-l-8">kWh</span>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</template>
-
-<script>
-import ThreeModel1 from "./component/ThreeModel1.vue";
-import PanelSand from "@com/coms/panel/panel-sand.vue";
-import PanelSandToolbar from "@com/coms/panel/panel-sand-toolbar.vue";
-import StBack from "./component/st-back.vue";
-import Table from "@com/coms/table/table.vue";
-import RadarPieChart from "@com/chart/pie/radar-pie-chart.vue";
-import SvgIcon from "@com/coms/icon/svg-icon.vue";
-import PercentCard2 from "@com/coms/cards/percent-card-2.0.1.vue";
-
-export default {
-    // 名称
-    name: "SandTable",
-    // 使用组件
-    components: {
-        ThreeModel1,
-        PanelSand,
-        PanelSandToolbar,
-        Table,
-        RadarPieChart,
-        StBack,
-        SvgIcon,
-        PercentCard2,
-    },
-    // 数据
-    data() {
-        return {
-            videoShow: true,
-            showPanel: false,
-            exchangeBtn: false,
-            ForecastPower: [
-                {
-                    name: "今日预测电量",
-                    value: 103.62,
-                    total: 150,
-                },
-                {
-                    name: "月预测发电量",
-                    value: 98.62,
-                    total: 100,
-                },
-            ],
-            tableData: {
-                column: [
-                    {
-                        name: "标题",
-                        field: "v1",
-                        is_num: false,
-                        is_light: false,
-                    },
-                    {
-                        name: "标题",
-                        field: "v2",
-                        is_num: false,
-                        is_light: false,
-                    },
-                    {
-                        name: "标题",
-                        field: "v3",
-                        width: "150px",
-                        is_num: false,
-                        is_light: false,
-                    },
-                    {
-                        name: "标题",
-                        field: "v4",
-                        is_num: false,
-                        is_light: false,
-                    },
-                ],
-                data: [
-                    {
-                        v1: "内容内容",
-                        v2: "内容内容",
-                        v3: "内容内容内容内容内容",
-                        v4: "内容内容",
-                        is_light: false,
-                    },
-                    {
-                        v1: "内容内容",
-                        v2: "内容内容",
-                        v3: "内容内容内容内容内容",
-                        v4: "内容内容",
-                        is_light: false,
-                    },
-                    {
-                        v1: "内容内容",
-                        v2: "内容内容",
-                        v3: "内容内容内容内容内容",
-                        v4: "内容内容",
-                        is_light: false,
-                    },
-
-                    {
-                        v1: "内容内容",
-                        v2: "内容内容",
-                        v3: "内容内容内容内容内容",
-                        v4: "内容内容",
-                        is_light: false,
-                    },
-                ],
-            },
-            sandTime: "00:00:00",
-            sandDate: "0000年00月00日 星期日",
-        };
-    },
-    // 函数
-    methods: {
-        when: function() {
-            this.showPanel = true;
-        },
-        exchange: function () {
-            this.exchangeBtn = !this.exchangeBtn;
-        },
-        initDateTime: function () {
-            const days = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
-            const setDateTime = () => {
-                let myDate = new Date();
-                let year = myDate.getFullYear();
-                let month = myDate.getMonth() + 1;
-                month = month < 10 ? `0${month}` : month;
-                let day = myDate.getDate();
-                day = day < 10 ? `0${day}` : day;
-                let xq = days[myDate.getDay()];
-                let hour = myDate.getHours();
-                let minute = myDate.getMinutes();
-                minute = minute < 10 ? `0${minute}` : minute;
-                let second = myDate.getSeconds();
-                second = second < 10 ? `0${second}` : second;
-                this.sandTime = `${hour}:${minute}:${second}`;
-                this.sandDate = `${year}年${month}月${day}日 ${xq}`;
-                window.requestAnimationFrame(setDateTime);
-            };
-            setDateTime();
-        },
-    },
-    // 生命周期钩子
-    beforeCreate() {
-        // 创建前
-    },
-    created() {
-        // 创建后
-    },
-    beforeMount() {
-        // 渲染前
-    },
-    mounted() {
-        // 渲染后
-        this.initDateTime();
-    },
-    beforeUpdate() {
-        // 数据更新前
-    },
-    updated() {
-        // 数据更新后
-    },
-};
-</script>
-
-<style lang="less">
-.sand-table {
-    width: 100%;
-    height: 91.667vh;
-    position: relative;
-
-    .com-panel-sand {
-        background: #53626826;
-        padding: 0 1.481vh 1.481vh 1.481vh;
-        border-top: 1px solid #15a952;
-        position: relative;
-        // width: 18.519vh;
-
-        &::after {
-            content: "";
-            position: absolute;
-            width: 5px;
-            height: 5px;
-            background: #15a952;
-            right: -2.5px;
-            top: -2.5px;
-        }
-
-        .com-panel-sand-header {
-            text-align: left;
-            position: relative;
-            padding: 0.833vh 0;
-            border-bottom: 1px solid #15a95266;
-
-            .sand-time {
-                color: #15A952;
-                font-weight: 400;
-                font-size: 24px;
-            }
-
-            .sand-date {
-                font-size: 12px;
-                font-weight: 400;
-                color: #FFFFFF;
-            }
-
-            &::after,
-            &::before {
-                content: "";
-                position: absolute;
-                bottom: -1px;
-                width: 15px;
-                height: 1px;
-                background: #15a952;
-            }
-
-            &::after {
-                left: 0;
-            }
-
-            &::before {
-                right: 0;
-            }
-
-            .com-panel-sand-sub-title {
-                position: absolute;
-                right: 0;
-                top: 0.833vh;
-            }
-        }
-
-        .weather-box {
-            .weather-item {
-                display: flex;
-                align-items: center;
-                margin-top: 16px;
-
-                .weather-icon {
-                    margin-right: 12px;
-                }
-            }
-        }
-    }
-
-    .i3dback {
-        position: fixed;
-        z-index: -1;
-        width: 100vw;
-        height: 100vh;
-        top: 0;
-        left: 0;
-    }
-
-    .i3dcloud {
-        position: absolute;
-        z-index: 2;
-        width: 100vw;
-        height: 100vh;
-        top: 0;
-        left: 0;
-    }
-
-    .left-panel {
-        width: 36.852vh;
-    }
-
-    .right-panel {
-        width: 36.852vh;
-    }
-
-    .three-model-layer {
-        position: absolute;
-        width: 100%;
-        height: 100%;
-        z-index: 1;
-    }
-
-    .sand-table-left {
-        position: absolute;
-        left: 0;
-        top: 0;
-        z-index: 2;
-    }
-
-    .sand-table-right {
-        position: absolute;
-        right: 0;
-        top: 0;
-        z-index: 2;
-    }
-
-    .sand-table-bottom {
-        position: absolute;
-        left: 18vh;
-        bottom: 0;
-        z-index: 2;
-        display: flex;
-
-        .stb-chart-panel {
-            background: #53626826;
-            margin-right: 4px;
-            padding: 0 16px;
-            height: 64px;
-        }
-
-        .stb-count-panel {
-            margin: 0 16px;
-            display: flex;
-            height: 64px;
-            align-items: center;
-
-            .stb-count-panel-icon {
-                width: 37px;
-                height: 37px;
-                background: #5362684D;
-                position: relative;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                font-size: 20px;
-                color: #94A4AB;
-
-                &::after,
-                &::before {
-                    content: '';
-                    position: absolute;
-                    width: 3px;
-                    height: 3px;
-                    background: #15A952;
-                    top: 17px;
-                }
-
-                &::after {
-                    left: -3px;
-                }
-
-                &::before {
-                    right: -3px;
-                }
-            }
-        }
-    }
-
-    .pre-img-box {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        margin-top: 0.556vh;
-        padding: 0;
-        
-        .pre-img {
-            width: 98%;
-        }
-    }
-
-    .person-info-box {
-        display: flex;
-
-        .header {
-            width: 75px;
-        }
-    }
-
-    .table {
-        width: calc(100% + 2.963vh);
-        margin-left: -1.481vh;
-        margin-bottom: -1.481vh;
-
-        .com-table thead tr th,
-        .com-table tr td {
-            padding: 0.556vh 0;
-        }
-    }
-
-    .exchange {
-        cursor: pointer;
-    }
-}
-</style>

+ 0 - 878
src/views/SandTable/component/ThreeModel.vue

@@ -1,878 +0,0 @@
-<template>
-    <div class="three-model" :style="'cursor: ' + (pointer ? 'pointer' : 'auto') + ';'" @click="clickEvent">
-        <loading ref="pageLoading"></loading>
-        <div class="three-html-layer">
-            <div
-                class="three-html-dom fan-info"
-                :id="htmlLayer[0].id"
-                v-show="htmlLayer[0].show"
-                :style="'left: ' + htmlLayer[0].x + 'px; top: ' + htmlLayer[0].y + 'px;'"
-            >
-                <div class="fan-info-close" @click.stop="closeFanInfo">
-                    <i class="el-icon-close"></i>
-                </div>
-                <div class="fan-info-name gray-l">{{fanName}}</div>
-                <div class="fan-info-item">
-                    <span class="svg-icon svg-icon-gray-l svg-icon-sm">
-                        <svg-icon svgid="svg-风机" />
-                    </span>
-                    <span class="gray-l mg-l-8">接入</span>
-                    <span class="green num">176</span>
-                    <span class="green mg-l-8">台</span>
-                </div>
-                <div class="fan-info-item">
-                    <span class="svg-icon svg-icon-gray-l svg-icon-sm">
-                        <svg-icon svgid="svg-normal-power" />
-                    </span>
-                    <span class="gray-l mg-l-8">运行</span>
-                    <span class="green num">1</span>
-                    <span class="green mg-l-8">台</span>
-                </div>
-                <div class="fan-info-item">
-                    <span class="svg-icon svg-icon-gray-l svg-icon-sm">
-                        <svg-icon svgid="svg-standby" />
-                    </span>
-                    <span class="gray-l mg-l-8">待机</span>
-                    <span class="green num">1</span>
-                    <span class="green mg-l-8">台</span>
-                </div>
-                <div class="fan-info-item">
-                    <span class="svg-icon svg-icon-gray-l svg-icon-sm">
-                        <svg-icon svgid="svg-limit-power" />
-                    </span>
-                    <span class="gray-l mg-l-8">限电</span>
-                    <span class="green num">1</span>
-                    <span class="green mg-l-8">台</span>
-                </div>
-                <div class="fan-info-item">
-                    <span class="svg-icon svg-icon-gray-l svg-icon-sm">
-                        <svg-icon svgid="svg-gz-downtime" />
-                    </span>
-                    <span class="gray-l mg-l-8">故障</span>
-                    <span class="green num">1</span>
-                    <span class="green mg-l-8">台</span>
-                </div>
-                <div class="fan-info-item">
-                    <span class="svg-icon svg-icon-gray-l svg-icon-sm">
-                        <svg-icon svgid="svg-jx-downtime" />
-                    </span>
-                    <span class="gray-l mg-l-8">检修</span>
-                    <span class="green num">1</span>
-                    <span class="green mg-l-8">台</span>
-                </div>
-                <div class="fan-info-item">
-                    <span class="svg-icon svg-icon-gray-l svg-icon-sm">
-                        <svg-icon svgid="svg-offline" />
-                    </span>
-                    <span class="gray-l mg-l-8">离线</span>
-                    <span class="green num">1</span>
-                    <span class="green mg-l-8">台</span>
-                </div>
-                <div class="fan-info-item">
-                    <span class="svg-icon svg-icon-gray-l svg-icon-sm">
-                        <svg-icon svgid="svg-intranet-involvement" />
-                    </span>
-                    <span class="gray-l mg-l-8">受累</span>
-                    <span class="green num">1</span>
-                    <span class="green mg-l-8">台</span>
-                </div>
-            </div>
-            <div
-                class="three-html-dom build-info"
-                :id="htmlLayer[1].id"
-                v-show="htmlLayer[1].show"
-                :style="'left: ' + htmlLayer[1].x + 'px; top: ' + htmlLayer[1].y + 'px;'"
-            >
-                <div class="build-info-close" @click.stop="closeBuildInfo">
-                    <i class="el-icon-close"></i>
-                </div>
-                <div class="build-info-item blue" :style="'right: '+circleXY[0].x+'px; top: '+circleXY[0].y+'px'">
-                    <div class="build-info-item-num">97</div>
-                    <div class="build-info-item-text">综合厂</div>
-                </div>
-                <div class="build-info-item blue" :style="'right: '+circleXY[1].x+'px; top: '+circleXY[1].y+'px'">
-                    <div class="build-info-item-num">97</div>
-                    <div class="build-info-item-text">风能</div>
-                </div>
-                <div class="build-info-item green" :style="'right: '+circleXY[2].x+'px; top: '+circleXY[2].y+'px'">
-                    <div class="build-info-item-num">97</div>
-                    <div class="build-info-item-text">利用小时</div>
-                </div>
-                <div class="build-info-item purple" :style="'right: '+circleXY[3].x+'px; top: '+circleXY[3].y+'px'">
-                    <div class="build-info-item-num">97</div>
-                    <div class="build-info-item-text">评分</div>
-                </div>
-                <div class="build-info-item orange" :style="'right: '+circleXY[4].x+'px; top: '+circleXY[4].y+'px'">
-                    <div class="build-info-item-num">97</div>
-                    <div class="build-info-item-text">MTBF</div>
-                </div>
-                <div class="build-info-item yellow" :style="'right: '+circleXY[5].x+'px; top: '+circleXY[5].y+'px'">
-                    <div class="build-info-item-num">97</div>
-                    <div class="build-info-item-text">设备科</div>
-                </div>
-                <div class="build-info-item blue" :style="'right: '+circleXY[6].x+'px; top: '+circleXY[6].y+'px'">
-                    <div class="build-info-item-num">97</div>
-                    <div class="build-info-item-text">MTTR</div>
-                </div>
-            </div>
-        </div>
-    </div>
-</template>
-
-<script>
-import loading from "@com/coms/loading/loading.vue";
-import * as THREE from "three";
-import { GLTFLoader } from "@node/three/examples/jsm/loaders/GLTFLoader.js";
-import { OrbitControls } from "@node/three/examples/jsm/controls/OrbitControls.js";
-import { GeometryUtils } from "@node/three/examples/jsm/utils/GeometryUtils.js";
-import SvgIcon from "@com/coms/icon/svg-icon.vue";
-let camera, scene, renderer, controls;
-let mixers = [];
-let clock = new THREE.Clock();
-let fanAnimates = [];
-let fans = [];
-let cylinder = null;
-export default {
-    // 名称
-    name: "ThreeModel",
-    // 使用组件
-    components: {
-        loading,
-        SvgIcon,
-    },
-    // 传入参数
-    props: {},
-    // 自定义事件
-    emits: {
-        when: null,
-    },
-    // 数据
-    data() {
-        return {
-            pointer: false,
-            htmlLayer: [
-                {
-                    id: "fan-info",
-                    x: 0,
-                    y: 0,
-                    show: false,
-                    ox: 50,
-                    oy: -50,
-                    position: null,
-                },
-                {
-                    id: "build-info",
-                    x: 0,
-                    y: 0,
-                    show: false,
-                    ox: -300,
-                    oy: -50,
-                    position: null,
-                },
-            ],
-            circleXY: [
-                { x: -(200*Math.sin(0/180*Math.PI)), y: -(200*Math.cos(0/180*Math.PI)) },
-                { x: -(200*Math.sin(-30/180*Math.PI)), y: -(200*Math.cos(-30/180*Math.PI)) },
-                { x: -(200*Math.sin(-60/180*Math.PI)), y: -(200*Math.cos(-60/180*Math.PI)) },
-                { x: -(200*Math.sin(-90/180*Math.PI)), y: -(200*Math.cos(-90/180*Math.PI)) },
-                { x: -(200*Math.sin(-120/180*Math.PI)), y: -(200*Math.cos(-120/180*Math.PI)) },
-                { x: -(200*Math.sin(-150/180*Math.PI)), y: -(200*Math.cos(-150/180*Math.PI)) },
-                { x: -(200*Math.sin(-180/180*Math.PI)), y: -(200*Math.cos(-180/180*Math.PI)) },
-            ],
-            colors: [
-                { colorName: 'green', state: 'dj', stateName: '待机', color: 0x05bb4c, },
-                { colorName: 'blue', state: 'yx', stateName: '运行', color: 0x4b55ae, },
-                { colorName: 'pink', state: 'xd', stateName: '限电', color: 0xc531c7, },
-                { colorName: 'red', state: 'gz', stateName: '故障', color: 0xBA3237, },
-                { colorName: 'orange', state: 'jx', stateName: '检修', color: 0xe17e23, },
-                { colorName: 'gray', state: 'lx', stateName: '离线', color: 0x606769, },
-                { colorName: 'white', state: 'sl', stateName: '受累', color: 0xffffff, },
-            ],
-            fanName: "",
-            playAnimation: true,
-        };
-    },
-    // 函数
-    methods: {
-        // Vector3 to screen
-        vector3ToScreen: function(position) {
-            const centerX = this.$el.scrollWidth / 2;
-            const centerY = this.$el.scrollHeight / 2;
-            const v3 = new THREE.Vector3(position.x, position.y, position.z);
-            const standardVec = v3.project(camera);
-            const screenX = Math.round(centerX * standardVec.x + centerX);
-            const screenY = Math.round(-centerY * standardVec.y + centerY);
-            return { x: screenX, y: screenY };
-        },
-        // 场景
-        initScene: function() {
-            scene = new THREE.Scene();
-            // scene.background = new THREE.Color(0xa0a0a0);
-        },
-        // 相机
-        initCamera: function() {
-            camera = new THREE.PerspectiveCamera(45, this.$el.scrollWidth / this.$el.scrollHeight, 0.1, 10000);
-            camera.position.set(50, 60, 50);
-        },
-        // 坐标轴
-        initAxesHelper: function() {
-            const axesHelper = new THREE.AxesHelper(150);
-            scene.add(axesHelper);
-            axesHelper.position.set(0, 0, 0);
-        },
-        // 渲染器
-        initRender: function() {
-            renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
-            // renderer.setClearAlpha(0);
-            renderer.setSize(this.$el.scrollWidth, this.$el.scrollHeight);
-            this.$el.append(renderer.domElement);
-        },
-        // 灯光
-        initLight: function() {
-            // let light = new THREE.PointLight(0xffffff, 2);
-            let light = new THREE.AmbientLight(0xffffff, 4);
-            // light.position.set(50, 50, 50);
-            scene.add(light);
-        },
-        // 控制器
-        initControls: function() {
-            controls = new OrbitControls(camera, renderer.domElement);
-            controls.enablePan = false;
-            controls.maxPolarAngle = 45 / 180 * Math.PI;
-            controls.minPolarAngle = 45 / 180 * Math.PI;
-            controls.addEventListener("change", () => {
-                this.setEveryHTML();
-            });
-        },
-        // 初始化一个风机动画
-        initFanAnimate: function(obj) {
-            let fanAnimateObj = {
-                speed: 0.05,
-                fan1: obj.getObjectByName(`${obj.name}_leaf_1`),
-                fan2: obj.getObjectByName(`${obj.name}_leaf_2`),
-                fan3: obj.getObjectByName(`${obj.name}_leaf_3`),
-            };
-            let fanAnimateFunction = function() {
-                fanAnimateObj.fan1.rotateZ(fanAnimateObj.speed);
-                fanAnimateObj.fan2.rotateZ(fanAnimateObj.speed);
-                fanAnimateObj.fan3.rotateZ(fanAnimateObj.speed);
-                fanAnimateObj.animateId = window.requestAnimationFrame(fanAnimateFunction);
-            };
-            fanAnimateObj.stop = function() {
-                window.cancelAnimationFrame(fanAnimateObj.animateId);
-            };
-            fanAnimateObj.start = function() {
-                fanAnimateFunction();
-            };
-            fanAnimateFunction();
-            fanAnimates.push(fanAnimateObj);
-            return fanAnimateObj;
-        },
-        // 清空风机动画
-        clearFanAnimate: function() {
-            while (fanAnimates.length > 0) {
-                let fanAnimateObj = fanAnimates.shift();
-                fanAnimateObj.stop();
-            }
-            this.playAnimation = false;
-        },
-        // 开始风机动画
-        startFanAnimate: function () {
-            fans.forEach(fan => {
-                this.initFanAnimate(fan);
-            });
-            this.playAnimation = true;
-        },
-        // 内容
-        initContent: function() {
-            // 加载3D地面
-            let loaderGround = new GLTFLoader(); /*实例化加载器*/
-            loaderGround.load(
-                "static/3d/group/ng.gltf",
-                (gltf) => {
-                    gltf.scene.position.set(5, 10, 0);
-                    scene.add(gltf.scene);
-                    let mixer = new THREE.AnimationMixer(gltf.scene.children[0]);
-                    mixer
-                        .clipAction(gltf.animations[0])
-                        .setDuration(3)
-                        .play();
-                    mixers.push(mixer);
-                    // console.log(gltf);
-
-                    // 移除风车
-                    let rootNode = scene.getObjectByName("RootNode");
-                    let fan1 = scene.getObjectByName("组840");
-                    let fan2 = scene.getObjectByName("组857");
-                    let fan3 = scene.getObjectByName("组838");
-                    rootNode.remove(fan1);
-                    rootNode.remove(fan2);
-                    rootNode.remove(fan3);
-                    // console.log(fan2.position);
-                    this.setFanPosition(rootNode, fan1);
-
-                    // 设置楼的name
-                    let build = scene.getObjectByName("组833");
-                    build.name = "build_headquarters";
-                    build.userData.name = "build_headquarters";
-                    build.children[build.children.length - 1].name = 'build_headquarters_chassis';
-                    build.children[build.children.length - 1].userData.name = 'build_headquarters_chassis';
-                    this.changeObjectColor(build, 'gz');
-
-                    // 移除光伏
-                    let light = scene.getObjectByName("组862");
-                    rootNode.remove(light);
-                    this.setLightPosition(rootNode, light);
-
-                    scene.onAfterRender = () => {
-                        this.$emit("when");
-                        this.$refs.pageLoading.hide();
-                    }
-                },
-                (xhr) => {
-                    // console.log(xhr.loaded, '/', xhr.total)
-                    // if (xhr.loaded == xhr.total) {
-                    //     this.$emit("when");
-                    //     setTimeout(() => {
-                    //         this.$refs.pageLoading.hide();
-                    //     }, 3000);
-                    // }
-                },
-                function(error) {
-                    console.error("load error!" + error.getWebGLErrorMessage());
-                }
-            );
-        },
-        // 改变元素底盘的颜色(带底盘的)
-        changeObjectColor: function (obj, colorName) {
-            let chassis = obj.getObjectByName(`${obj.name}_chassis`);
-            let color = this.colors.find(t => t.colorName == colorName || t.state == colorName || t.stateName == colorName).color;
-            chassis.material = new THREE.MeshBasicMaterial({
-                color: color,
-                opacity: 0.8,
-                transparent: true,
-            });
-        },
-        // 改变元素的颜色(光伏)
-        changeElColor: function (obj, colorName) {
-            let color = this.colors.find(t => t.colorName == colorName || t.state == colorName || t.stateName == colorName).color;
-            for (let i = 1; i <= 6; i++) {
-                let el = obj.getObjectByName(`${obj.name}_item_${i}`);
-                el.material = new THREE.MeshBasicMaterial({
-                    color: color,
-                    opacity: 0.8,
-                    transparent: true,
-                });
-            }
-        },
-        // 设置风机name
-        setFanName: function (obj, name) {
-            obj.name = name;
-            obj.userData.name = name;
-            let fanBig1_1 = obj.getObjectByName("Box707");
-            let fanBig1_2 = obj.getObjectByName("Box708");
-            let fanBig1_3 = obj.getObjectByName("Box709");
-            fanBig1_1.name = `${name}_leaf_1`;
-            fanBig1_1.userData.name = `${name}_leaf_1`;
-            fanBig1_2.name = `${name}_leaf_2`;
-            fanBig1_2.userData.name = `${name}_leaf_2`;
-            fanBig1_3.name = `${name}_leaf_3`;
-            fanBig1_3.userData.name = `${name}_leaf_3`;
-            obj.children[obj.children.length - 1].name = `${name}_chassis`;
-            obj.children[obj.children.length - 1].userData.name = `${name}_chassis`;
-        },
-        // 设置风机位置 颜色
-        setFanPosition: function (rootNode, obj) {
-            // 麻黄山
-            let fan_mhs = obj.clone(true);
-            fan_mhs.position.set(8, 5, -6);
-            this.setFanName(fan_mhs, "fan_mhs");
-            rootNode.add(fan_mhs);
-            // 牛首山
-            let fan_nss = obj.clone(true);
-            fan_nss.position.set(-4, 4, -15);
-            this.setFanName(fan_nss, "fan_nss");
-            rootNode.add(fan_nss);
-            // 青山
-            let fan_qs = obj.clone(true);
-            fan_qs.position.set(12, 5, -11);
-            this.setFanName(fan_qs, "fan_qs");
-            rootNode.add(fan_qs);
-            // 石板泉
-            let fan_sbq = obj.clone(true);
-            fan_sbq.position.set(4, 5, -13);
-            this.setFanName(fan_sbq, "fan_sbq");
-            rootNode.add(fan_sbq);
-            // 香山
-            let fan_xs = obj.clone(true);
-            fan_xs.position.set(-9, 7, 21);
-            this.setFanName(fan_xs, "fan_xs");
-            rootNode.add(fan_xs);
-
-            // 改一下颜色
-            this.changeObjectColor(fan_mhs, 'green'); // 麻黄山
-            this.changeObjectColor(fan_nss, 'xd'); // 牛首山
-            this.changeObjectColor(fan_qs, '检修'); // 青山
-            this.changeObjectColor(fan_sbq, 'white'); // 石板泉
-            this.changeObjectColor(fan_xs, '运行'); // 香山
-
-            // 风机存入数组
-            fans.push(fan_mhs);
-            fans.push(fan_nss);
-            fans.push(fan_qs);
-            fans.push(fan_sbq);
-            fans.push(fan_xs);
-
-            // 开始风机动画
-            this.startFanAnimate();
-        },
-        // 设置光伏name
-        setLightName: function (obj, name) {
-            obj.name = name;
-            obj.userData.name = name;
-            let Box661 = obj.getObjectByName("Box661");
-            let Box668 = obj.getObjectByName("Box668");
-            let Box669 = obj.getObjectByName("Box669");
-            let Box664 = obj.getObjectByName("Box664");
-            let Box667 = obj.getObjectByName("Box667");
-            let Box670 = obj.getObjectByName("Box670");
-            Box661.name = `${name}_item_1`;
-            Box661.userData.name = `${name}_item_1`;
-            Box668.name = `${name}_item_2`;
-            Box668.userData.name = `${name}_item_2`;
-            Box669.name = `${name}_item_3`;
-            Box669.userData.name = `${name}_item_3`;
-            Box664.name = `${name}_item_4`;
-            Box664.userData.name = `${name}_item_4`;
-            Box667.name = `${name}_item_5`;
-            Box667.userData.name = `${name}_item_5`;
-            Box670.name = `${name}_item_6`;
-            Box670.userData.name = `${name}_item_6`;
-        },
-        // 设置光伏位置 颜色
-        setLightPosition: function (rootNode, obj) {
-            let Box660 = obj.getObjectByName("Box660");
-            let Box666 = obj.getObjectByName("Box666");
-            let Box662 = obj.getObjectByName("Box662");
-            let Box663 = obj.getObjectByName("Box663");
-            let Box659 = obj.getObjectByName("Box659");
-            let Box665 = obj.getObjectByName("Box665");
-            obj.remove(Box660);
-            obj.remove(Box666);
-            obj.remove(Box662);
-            obj.remove(Box663);
-            obj.remove(Box659);
-            obj.remove(Box665);
-            // 大武口
-            let light_dwk = obj.clone(true);
-            light_dwk.position.set(0.28, 0.13, -35);
-            this.setLightName(light_dwk, "light_dwk");
-            rootNode.add(light_dwk);
-            // 平罗
-            let light_pl = obj.clone(true);
-            light_pl.position.set(1.5, 0.13, -40);
-            this.setLightName(light_pl, "light_pl");
-            rootNode.add(light_pl);
-            // 马场湖
-            let light_mch = obj.clone(true);
-            light_mch.position.set(-25, 2, -8);
-            this.setLightName(light_mch, "light_mch");
-            rootNode.add(light_mch);
-            // 宣和
-            let light_xh = obj.clone(true);
-            light_xh.position.set(-18, 4, -3);
-            this.setLightName(light_xh, "light_xh");
-            rootNode.add(light_xh);
-            // 海子井
-            let light_hzj = obj.clone(true);
-            light_hzj.position.set(-2, 2, -10);
-            this.setLightName(light_hzj, "light_hzj");
-            rootNode.add(light_hzj);
-
-            // 改变颜色
-            this.changeElColor(light_dwk, 'green'); // 大武口
-            this.changeElColor(light_pl, '离线'); // 平罗
-            this.changeElColor(light_mch, 'yx'); // 马场湖
-            this.changeElColor(light_xh, 'red'); // 宣和
-            this.changeElColor(light_hzj, '受累'); // 海子井
-        },
-        // 创建一个圆柱
-        initCylinderGeometry: function(position, cr=2) {
-            let geometry = new THREE.CylinderGeometry(cr, cr, 7, 64);
-            //加载纹理
-            let texture = new THREE.TextureLoader().load("static/3d/beam-texture.png");
-            texture.wrapS = texture.wrapT = THREE.RepeatWrapping; //每个都重复
-            texture.repeat.set(1, 1);
-            texture.needsUpdate = true;
-            let materials = [
-                //圆柱侧面材质,使用纹理贴图
-                new THREE.MeshBasicMaterial({
-                    map: texture,
-                    side: THREE.DoubleSide,
-                    transparent: true,
-                }),
-                //圆柱顶材质
-                new THREE.MeshBasicMaterial({
-                    transparent: true,
-                    opacity: 0,
-                    side: THREE.DoubleSide,
-                }),
-                //圆柱底材质
-                new THREE.MeshBasicMaterial({
-                    transparent: true,
-                    opacity: 0,
-                    side: THREE.DoubleSide,
-                }),
-            ];
-            cylinder = new THREE.Mesh(geometry, materials);
-            cylinder.position.set(position.x + 5.75, position.y + 8, position.z);
-            scene.add(cylinder);
-        },
-        // 判断时候是可点击对象 返回null 或object
-        getClickObject: function(intersects) {
-            const names = ["fan", "build"];
-            let x = true;
-            let obj = null;
-            for (let intersect of intersects) {
-                let temObj = intersect.object;
-                while (x) {
-                    for (let name of names) {
-                        if (temObj.name.indexOf(`${name}_`) == 0) {
-                            obj = temObj;
-                            x = false;
-                            break;
-                        }
-                    }
-                    if (x && temObj.parent) {
-                        temObj = temObj.parent;
-                        continue;
-                    }
-                    break;
-                }
-            }
-            return obj;
-        },
-        // 鼠标浮动事件 // 这招不太行 鼠标每次移动都会发射射线 导致动画卡顿
-        mοusemοveEvent: function(event) {
-            event.preventDefault();
-            let vector = new THREE.Vector3((event.clientX / window.innerWidth) * 2 - 1, -(event.clientY / window.innerHeight) * 2 + 1, 0.5);
-            vector = vector.unproject(camera);
-            let raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
-            let intersects = raycaster.intersectObjects(scene.children, true);
-            let obj = this.getClickObject(intersects);
-            if (obj) {
-                this.pointer = true;
-            } else {
-                this.pointer = false;
-            }
-        },
-        // 设置每一个html的位置
-        setEveryHTML: function() {
-            this.htmlLayer.forEach(value => {
-                if (value.show && value.position) {
-                    const screen = this.vector3ToScreen(value.position);
-                    value.x = screen.x + value.ox;
-                    value.y = screen.y + value.oy;
-                }
-            });
-        },
-        // 显示风机弹出层
-        showFanInfo: function(position) {
-            this.htmlLayer[0].position = {
-                x: position.x,
-                y: position.y,
-                z: position.z,
-            };
-            this.htmlLayer[0].show = true;
-            this.setEveryHTML();
-        },
-        // 隐藏风机弹出层
-        hideFanInfo: function () {
-            this.htmlLayer[0].show = false;
-        },
-        // 显示楼信息弹出层
-        showBuildInfo: function(position) {
-            this.htmlLayer[1].position = {
-                x: position.x,
-                y: position.y,
-                z: position.z,
-            };
-            this.htmlLayer[1].show = true;
-            this.setEveryHTML();
-        },
-        // 隐藏楼信息弹出层
-        hideBuildInfo: function () {
-            this.htmlLayer[1].show = false;
-        },
-        // 关闭弹出
-        closeFanInfo: function () {
-            this.htmlLayer[0].show = false;
-            if (cylinder) {
-                scene.remove(cylinder);
-            }
-        },
-        // 关闭弹出
-        closeBuildInfo: function () {
-            this.htmlLayer[1].show = false;
-            if (cylinder) {
-                scene.remove(cylinder);
-            }
-        },
-        // 点击事件
-        clickEvent: function(event) {
-            event.preventDefault();
-            let vector = new THREE.Vector3((event.clientX / window.innerWidth) * 2 - 1, -(event.clientY / window.innerHeight) * 2 + 1, 0.5);
-            vector = vector.unproject(camera);
-            let raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
-            let intersects = raycaster.intersectObjects(scene.children, true);
-            // console.log(intersects); // 输出点击的对象信息
-            // 找是否是可点击对象
-            let obj = this.getClickObject(intersects);
-            if (obj) {
-                if (cylinder) {
-                    scene.remove(cylinder);
-                }
-                let isBuild = false;
-                if (obj.name.indexOf('build_') == 0) {
-                    isBuild = true;
-                }
-                this.initCylinderGeometry(obj.position, isBuild ? 4 : 2);
-                this.elClick(obj.name);
-                if (isBuild) {
-                    this.showBuildInfo(obj.position);
-                    this.hideFanInfo();
-                } else {
-                    this.showFanInfo(obj.position);
-                    this.hideBuildInfo();
-                }
-            }
-        },
-        // 元素点击事件 绑值
-        elClick: function (name) {
-            switch (name) {
-                case "fan_mhs": // 麻黄山
-                    this.fanName = "麻黄山风场";
-                    break;
-                case "fan_nss": // 牛首山
-                    this.fanName = "牛首山风场";
-                    break;
-                case "fan_qs": // 青山
-                    this.fanName = "青山风场";
-                    break;
-                case "fan_sbq": // 石板泉
-                    this.fanName = "石板泉风场";
-                    break;
-                case "fan_xs": // 香山
-                    this.fanName = "香山风场";
-                    break;
-
-                case "build_headquarters": // 大楼
-                    break;
-            
-                default:
-                    break;
-            }
-        },
-        // 初始化云
-        initCloud: function () {
-            
-        },
-        // 初始化
-        initThree: function() {
-            this.initScene();
-            // this.initAxesHelper();
-            this.initCamera();
-            this.initRender();
-            this.initLight();
-            this.initControls();
-            this.initContent();
-            this.initCloud();
-            renderer.setAnimationLoop(this.animate);
-        },
-        // 动画
-        animate: function() {
-            if (this.playAnimation) {
-                var delta = clock.getDelta();
-                for (var i = 0; i < mixers.length; i++) {
-                    // 重复播放动画
-                        mixers[i].update(delta);
-                }
-            }
-            renderer.render(scene, camera);
-        },
-    },
-    // 生命周期钩子
-    beforeCreate() {
-        // 创建前
-    },
-    created() {
-        // 创建后
-    },
-    beforeMount() {
-        // 渲染前
-    },
-    mounted() {
-        // 渲染后
-        this.initThree();
-    },
-    beforeUpdate() {
-        // 数据更新前
-    },
-    updated() {
-        // 数据更新后
-    },
-    beforeUnmount() {
-        // 销毁前
-        renderer.setAnimationLoop(null);
-        camera = null;
-        scene = null;
-        renderer = null;
-    },
-};
-</script>
-
-<style lang="less" scoped>
-.three-model {
-    position: relative;
-    overflow: hidden;
-
-    .three-html-layer {
-        position: absolute;
-        width: 0;
-        height: 0;
-        top: 0;
-        left: 0;
-
-        .three-html-dom {
-            position: absolute;
-        }
-
-        .fan-info {
-            padding: 14px;
-            width: 149px;
-            height: 48px;
-            background: #1a1f2fd8;
-            border: 1px solid #05bb4c;
-            box-shadow: 0px 8px 17px 1px #05bb4c66;
-
-            .fan-info-close {
-                position: absolute;
-                width: 20px;
-                height: 20px;
-                top: -10px;
-                right: -10px;
-                border-radius: 50%;
-                background: #1a1f2fd8;
-                border: 1px solid #05bb4c;
-                box-shadow: 0px 8px 17px 1px #05bb4c66;
-                cursor: pointer;
-                color: @gray-l;
-                transition: all 0.3s;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                font-size: 8px;
-
-                &:hover {
-                    color: #05bb4c;
-                }
-            }
-
-            .fan-info-name {
-                text-align: center;
-            }
-
-            .fan-info-item {
-                display: none;
-
-                +.fan-info-item {
-                    margin-top: 13px;
-                }
-
-                .svg-icon {
-                    text-align: center;
-                }
-
-                .num {
-                    display: inline-block;
-                    width: 45px;
-                    text-align: right;
-                }
-            }
-        }
-
-        .build-info {
-            width: 400px;
-            height: 200px;
-            position: relative;
-
-            .build-info-close {
-                position: absolute;
-                width: 40px;
-                height: 40px;
-                top: 20px;
-                right: 20px;
-                border-radius: 50%;
-                background: #1a1f2fd8;
-                border: 1px solid #05bb4c;
-                box-shadow: 0px 8px 17px 1px #05bb4c66;
-                cursor: pointer;
-                color: @gray-l;
-                transition: all 0.3s;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                font-size: 14px;
-
-                &:hover {
-                    color: #05bb4c;
-                }
-            }
-
-            .build-info-item {
-                width: 72px;
-                height: 72px;
-                border-radius: 50%;
-                background: #1A1F2FE5;
-                position: absolute;
-
-                .build-info-item-num {
-                    font-size: 24px;
-                    font-weight: 500;
-                    color: #FFFFFF;
-                    text-align: center;
-                    line-height: 1.2;
-                    margin-top: 9px;
-                }
-
-                .build-info-item-text {
-                    font-size: 12px;
-                    color: #FFFFFF;
-                    font-weight: 400;
-                    text-align: center;
-                }
-
-                &.blue {
-                    border: 2px solid #1DA0D7;
-                }
-
-                &.green {
-                    border: 2px solid #05BB4C;
-                }
-
-                &.purple {
-                    border: 2px solid #323E6F;
-                }
-
-                &.orange {
-                    border: 2px solid #DB5520;
-                }
-
-                &.yellow {
-                    border: 2px solid #EDB32F;
-                }
-            }
-        }
-    }
-}
-</style>

File diff suppressed because it is too large
+ 0 - 1344
src/views/SandTable/component/ThreeModel1.vue


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

@@ -1,138 +0,0 @@
-<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>

+ 0 - 238
src/views/SandTable/component/p-panel.vue

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

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

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

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

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

+ 0 - 309
src/views/SandTable/component/rank-table.vue

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

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

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

+ 0 - 139
src/views/SandTable/component/weather.vue

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

+ 0 - 820
src/views/device/device.vue

@@ -1,820 +0,0 @@
-<template>
-  <div class="main deviceClass">
-    <el-card class="box-card-tree">
-      <button
-        class="btn green"
-        style="margin-bottom: 10px"
-        @click="handleTreeAdd()"
-      >
-        新增
-      </button>
-      <button
-        class="btn green"
-        @click="handleTreeDel()"
-        :disabled="state.isDel == ''"
-      >
-        删除
-      </button>
-      <el-tree
-        :data="state.treedata"
-        :props="state.defaultProps"
-        node-key="id"
-        highlight-current
-        :default-expanded-keys="['23']"
-        @node-click="handleNodeClick"
-      />
-    </el-card>
-    <el-card class="box-card">
-      <el-tabs type="card" class="tab">
-        <el-tab-pane label="传感点">
-          <div class="devicemenu">
-            <button
-              class="btn"
-              style="margin-bottom: 10px"
-              @click="handleEdit(state.addFormData)"
-              :disabled="state.desc.code == ''"
-            >
-              新增
-            </button>
-            <el-input
-              style="width: 180px; margin: 0 10px"
-              v-model="state.SearchVal"
-              placeholder="筛选"
-              :prefix-icon="Search"
-              @input="fifterSearch()"
-              size="small"
-            />
-            <button
-              class="btn"
-              size="mini"
-              type="primary"
-              :disabled="state.desc.code == ''"
-            >
-              导入
-            </button>
-            <button
-              class="btn"
-              size="mini"
-              type="primary"
-              @click="export2Excel"
-              :disabled="state.desc.code == ''"
-            >
-              导出
-            </button>
-          </div>
-          <!-- <el-row :gutter="24" align="middle">
-            <el-col :span="2">
-              <button
-                 class="btn green"
-                style="margin-bottom: 10px"
-                @click="handleEdit(state.addFormData)"
-                :disabled='state.desc.code==""'
-                >新增</button
-              ></el-col
-            >
-            <el-col :span="5">
-              <el-input
-                v-model="state.SearchVal"
-                placeholder="筛选"
-                :prefix-icon="Search"
-                @input="fifterSearch()"
-                size="small"
-              />
-            </el-col>
-          </el-row> -->
-          <el-table
-            :data="state.fifterSearchTableData"
-            stripe
-            style="width: 100%"
-            height="700"
-          >
-            <el-table-column type="index" width="50" align="center" />
-            <el-table-column
-              prop="metriccode"
-              label="测点编码"
-              align="center"
-            ></el-table-column>
-            <el-table-column label="名称" align="center">
-              <template #default="scope">
-                <el-popover placement="right" :width="260" trigger="click">
-                  <template #reference>
-                    <el-button
-                      type="text"
-                      style="color: #b3bdc0"
-                      size="small"
-                      >{{ scope.row.name }}</el-button
-                    >
-                  </template>
-                  <el-table
-                    :data="scope.row.deviceModelMetrics"
-                    max-height="400px"
-                  >
-                    <el-table-column
-                      property="devicemodel"
-                      label="机型"
-                      align="center"
-                    ></el-table-column>
-                    <el-table-column
-                      property="uniformcode"
-                      label="统一编码"
-                      align="center"
-                    ></el-table-column>
-                    <el-table-column
-                      property="multiplier"
-                      label="倍率"
-                      align="center"
-                    ></el-table-column>
-                  </el-table>
-                </el-popover>
-              </template>
-            </el-table-column>
-
-            <el-table-column
-              prop="unitname"
-              label="单位"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="categorydata"
-              label="测点类型"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="categorysci"
-              label="物理类型"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="description"
-              label="描述"
-              align="center"
-            ></el-table-column>
-            <el-table-column label="操作" width="180" align="center">
-              <template #default="scope">
-                <el-button
-                  type="text"
-                  style="color: #b3bdc0"
-                  @click="handleEdit(scope.row)"
-                  >编辑</el-button
-                >
-                <el-button
-                  type="text"
-                  style="color: #b3bdc0"
-                  @click="handleDelete(scope.row)"
-                  >删除</el-button
-                >
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-tab-pane>
-        <div class="pagination">
-          <el-pagination
-            background
-            layout="total, prev, pager, next"
-            hide-on-single-page
-            :current-page="query.page"
-            :page-size="query.limit"
-            :total="pageTotal"
-            @current-change="handlePageChange"
-          ></el-pagination>
-        </div>
-        <el-tab-pane label="故障模式">
-          <faultmode />
-        </el-tab-pane>
-        <el-tab-pane label="基本信息" style="width: 50%">
-          <el-form :model="state.desc" label-width="100px">
-            <el-form-item label="结构编码">
-              <el-input v-model="state.desc.code"></el-input>
-            </el-form-item>
-            <el-form-item label="上级节点">
-              <el-cascader
-                v-model="state.desc.parentcode"
-                :options="state.cascaderdata"
-                :props="{ checkStrictly: true, emitPath: false }"
-                :show-all-levels="false"
-                clearable
-              />
-            </el-form-item>
-            <el-form-item label="设备ID">
-              <el-input v-model="state.desc.deviceid" disabled></el-input>
-            </el-form-item>
-            <el-form-item label="结构名称">
-              <el-input v-model="state.desc.name"></el-input>
-            </el-form-item>
-            <el-form-item label="结构英文名称">
-              <el-input v-model="state.desc.enname"></el-input>
-            </el-form-item>
-            <el-form-item label="描述">
-              <el-input
-                v-model="state.desc.description"
-                :rows="4"
-                clearable
-                type="textarea"
-              ></el-input>
-            </el-form-item>
-            <el-form-item label="序号">
-              <el-input v-model="state.desc.orderno"></el-input>
-            </el-form-item>
-            <el-form-item label="是否有效">
-              <el-switch
-                class="elswitch"
-                v-model="state.desc.enabled"
-                active-color="#13ce66"
-                inactive-color="#ff4949"
-              />
-            </el-form-item>
-          </el-form>
-          <button
-            style="float: right"
-            class="btn green"
-            @click="savedesc"
-            :disabled="state.desc.code == ''"
-          >
-            保存
-          </button>
-        </el-tab-pane>
-      </el-tabs>
-    </el-card>
-    <!-- 传感点编辑弹出框 -->
-    <el-dialog v-model="editVisible" width="40%" custom-class="modal">
-      <el-form :model="editFormData" label-width="80px">
-        <el-form-item label="指标">
-          <el-input v-model="editFormData.metriccode"></el-input>
-        </el-form-item>
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="名称">
-              <el-input v-model="editFormData.name"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="英文名称">
-              <el-input v-model="editFormData.enname"></el-input>
-            </el-form-item> </el-col
-        ></el-row>
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="标准单位">
-              <el-input
-                v-model="editFormData.unitname"
-              ></el-input> </el-form-item
-          ></el-col>
-
-          <el-col :span="12">
-            <el-form-item label="单位名称">
-              <el-input v-model="editFormData.unitnamecn"></el-input>
-            </el-form-item> </el-col
-        ></el-row>
-        <el-form-item label="描述">
-          <el-input
-            v-model="editFormData.description"
-            :rows="3"
-            type="textarea"
-            clearable
-          ></el-input>
-        </el-form-item>
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="数据类型">
-              <el-select
-                v-model="editFormData.categorydata"
-                placeholder="Select"
-              >
-                <el-option
-                  v-for="item in state.options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                ></el-option>
-              </el-select> </el-form-item
-          ></el-col>
-          <el-col :span="12">
-            <el-form-item label="结构">
-              <el-cascader
-                v-model="editFormData.structurecode"
-                :options="state.cascaderdata"
-                :props="{ checkStrictly: true, emitPath: false }"
-                clearable
-              /> </el-form-item
-          ></el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="科学类型">
-              <el-input
-                v-model="editFormData.categorysci"
-              ></el-input> </el-form-item
-          ></el-col>
-          <el-col :span="12"
-            ><el-form-item label="系统分类">
-              <el-input
-                v-model="editFormData.categorysys"
-              ></el-input> </el-form-item
-          ></el-col>
-        </el-row>
-
-        <el-form-item label="适配机型" class="deviceModelClass">
-          <el-select
-            v-model="state.deviceModelSel"
-            style="margin-right: 20px"
-            placeholder="新增机型"
-            size="mini"
-          >
-            <el-option
-              v-for="item in state.deviceModel"
-              :key="item.code"
-              :label="item.code"
-              :value="item.code"
-            >
-            </el-option>
-          </el-select>
-          <button
-            class="btn green"
-            v-show="state.deviceModelSel != ''"
-            size="mini"
-            type="primary"
-            @click="deviceModelAdd()"
-          >
-            新增机型
-          </button>
-          <el-table
-            :data="editFormData.deviceModelMetrics"
-            style="width: 100%"
-            max-height="200px"
-          >
-            <el-table-column prop="devicemodel" label="机型" />
-            <el-table-column label="倍率">
-              <template #default="scope">
-                <el-input v-model="scope.row.multiplier" size="mini" />
-              </template>
-            </el-table-column>
-            <el-table-column label="统一编码">
-              <template #default="scope">
-                <el-input v-model="scope.row.uniformcode" size="mini" />
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-form-item>
-      </el-form>
-      <template #footer>
-        <span class="dialog-footer">
-          <button class="btn green" @click="editVisible = false">取 消</button>
-          <button class="btn green" type="primary" @click="saveEdit">
-            确 定
-          </button>
-        </span>
-      </template>
-    </el-dialog>
-    <!-- tree add 弹出框 -->
-    <el-dialog v-model="treeVisible" width="40%" custom-class="modal">
-      <el-form :model="state.treeAddFormData" label-width="80px">
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="结构编码">
-              <el-input
-                v-model="state.treeAddFormData.code"
-              ></el-input> </el-form-item
-          ></el-col>
-          <el-col :span="12">
-            <el-form-item label="上级节点" label-width="100px">
-              <el-cascader
-                v-model="state.treeAddFormData.parentcode"
-                :options="state.cascaderdata"
-                :props="{ checkStrictly: true, emitPath: false }"
-                :show-all-levels="false"
-                clearable
-              /> </el-form-item
-          ></el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="结构名称">
-              <el-input
-                v-model="state.treeAddFormData.name"
-              ></el-input> </el-form-item
-          ></el-col>
-          <el-col :span="12">
-            <el-form-item label="结构英文名称" label-width="100px">
-              <el-input
-                v-model="state.treeAddFormData.enname"
-              ></el-input> </el-form-item
-          ></el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="12"
-            ><el-form-item label="序号">
-              <el-input
-                v-model="state.treeAddFormData.orderno"
-              ></el-input> </el-form-item
-          ></el-col>
-          <el-col :span="4">
-            <el-form-item label="是否有效">
-              <el-switch
-                v-model="state.treeAddFormData.enabled"
-                class="elswitch"
-                active-color="#13ce66"
-                inactive-color="#ff4949"
-              /> </el-form-item
-          ></el-col>
-          <el-col :span="8">
-            <el-form-item label="设备ID">
-              <el-input
-                v-model="state.treeAddFormData.deviceid"
-                disabled
-              ></el-input> </el-form-item
-          ></el-col>
-        </el-row>
-        <el-form-item label="描述">
-          <el-input
-            v-model="state.treeAddFormData.description"
-            :rows="4"
-            clearable
-            type="textarea"
-          ></el-input>
-        </el-form-item>
-      </el-form>
-      <template #footer>
-        <span class="dialog-footer">
-          <button class="btn green" @click="treeVisible = false">取 消</button>
-          <button class="btn green" type="primary" @click="saveTreeAdd">
-            确 定
-          </button>
-        </span>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-<script setup>
-import { ref, onMounted, reactive, provide, computed } from "vue";
-import { ElMessageBox, ElMessage, ElLoading } from "element-plus";
-import faultmode from "./faultmode.vue";
-import { outExportExcel } from "@tools/excel/exportExcel";
-import {
-  tree,
-  point,
-  metrics,
-  delmetrics,
-  treeAdd,
-  treeDel,
-  device_list,
-} from "@/api/api.js";
-let editVisible = ref(false); //传感点
-let treeVisible = ref(false); //传感点
-let editFormData = ref({});
-onMounted(() => {
-  getData();
-  getDeviceModel();
-});
-let state = reactive({
-  isDel: "", //是否能被删除
-  SearchVal: "",
-  treedata: [],
-  cascaderdata: [],
-  defaultProps: {
-    children: "children",
-    label: (a) => {
-      return a.node.name;
-    },
-  },
-  pointTableData: [],
-  fifterSearchTableData: [],
-  textarea: "",
-  textarea1: "",
-  treeCurClick: null,
-  addFormData: {
-    categorydata: "AI",
-    categoryres1: null,
-    categoryres2: null,
-    categoryres3: null,
-    categoryres4: null,
-    categoryres5: null,
-    categorysci: null,
-    categorysys: null,
-    description: null,
-    deviceid: "windturbine",
-    enname: null,
-    id: null,
-    metriccode: "",
-    name: "",
-    structurecode: "101010205",
-    unitname: null,
-    unitnamecn: null,
-    deviceModelMetrics: [],
-  },
-  treeAddFormData: {
-    code: "",
-    parentcode: "",
-    deviceid: "windturbine",
-    name: "",
-    enname: "",
-    description: "",
-    orderno: "",
-    enabled: true,
-  },
-  options: [
-    {
-      value: "AI",
-      label: "AI",
-    },
-    {
-      value: "DI",
-      label: "DI",
-    },
-    {
-      value: "CI",
-      label: "CI",
-    },
-  ],
-  desc: {
-    code: "",
-    parentcode: "",
-    deviceid: "",
-    name: "",
-    enname: "",
-    description: "",
-    orderno: "",
-    enabled: true,
-  },
-  treeDelVal: "",
-  deviceModel: [],
-  deviceModelSel: "",
-});
-
-// 父子传参
-provide(
-  "cascaderdata",
-  computed(() => state.cascaderdata)
-);
-//fifterSearch
-const fifterSearch = () => {
-  if (state.SearchVal == "") {
-    return state.fifterSearchTableData = state.pointTableData;
-  } else {
-    state.fifterSearchTableData = state.pointTableData.filter((e) => {
-      return (
-        e.name.includes(state.SearchVal) |
-        e.categorydata.includes(state.SearchVal) |
-        e.metriccode.includes(state.SearchVal)
-      );
-    });
-  }
-};
-// tree click
-const handleNodeClick = (data) => {
-  console.log(data);
-  state.isDel = data.children;
-  state.desc = data.node;
-  state.addFormData.structurecode = data.node.code;
-  getPoint(data.node);
-};
-// 测点 编辑
-const handleEdit = (row) => {
-  editFormData.value = row;
-  editVisible.value = true;
-};
-// tree add
-const handleTreeAdd = () => {
-  treeVisible.value = true;
-};
-// tree Del
-const handleTreeDel = () => {
-  console.warn(state.desc);
-  if (state.isDel != null) {
-    ElMessage.error(`不能删除该节点!!`);
-    return;
-  }
-  ElMessageBox.confirm(`确定要删除 ${state.desc.name} 吗?`, "提示", {
-    type: "warning",
-  })
-    .then(async () => {
-      const res = await treeDel(state.desc.id);
-      console.warn(res);
-      if (res == 1) {
-        ElMessage.success(`删除成功!`);
-        getData();
-      } else {
-        ElMessage.warning(`删除失败!`);
-      }
-    })
-    .catch(() => {});
-};
-// delTreeBtn
-const delTreeBtn = async () => {
-  console.warn(state.treeDelVal);
-  const res = await treeDel(state.treeDelVal);
-  console.warn(res);
-  if (res == 1) {
-    ElMessage.success(`删除成功!`);
-    getData();
-  } else {
-    ElMessage.warning(`删除失败!`);
-  }
-  state.treeDelVal = "";
-};
-//保存tree add
-const saveTreeAdd = async () => {
-  const res = await treeAdd(state.treeAddFormData);
-  console.warn(res);
-  if (res.status == 20000) {
-    ElMessage.success(`操作成功!`);
-    treeVisible.value = false;
-    getData();
-  } else {
-    ElMessage.warning(res.msg);
-  }
-};
-
-// 测点 删除
-const handleDelete = (row) => {
-  // 二次确认删除
-  ElMessageBox.confirm("确定要删除吗?", "提示", {
-    type: "warning",
-  })
-    .then(async () => {
-      console.warn(row);
-      const res = await delmetrics(row.id);
-      console.warn(res);
-      if (res == 1) {
-        ElMessage.success(`删除成功!`);
-      } else {
-        ElMessage.success("删除失败");
-      }
-      getPoint(state.desc);
-    })
-    .catch(() => {});
-};
-// 保存编辑
-const saveEdit = async () => {
-  postmetrics();
-};
-//测点 add
-const postmetrics = async () => {
-  console.warn(editFormData.value);
-  const res = await metrics(editFormData.value);
-  console.warn(res);
-  if (res.status == 20000) {
-    ElMessage.success(`操作成功!`);
-    editVisible.value = false;
-  } else {
-    ElMessage.success(res.msg);
-  }
-  getPoint(state.desc);
-};
-// getData
-const getData = async () => {
-  const loading = ElLoading.service({
-    lock: true,
-    text: "数据加载中...",
-    background: "rgba(0, 0, 0, 0.5)",
-  });
-  const res = await tree();
-  loading.close();
-  console.warn(res);
-  state.treedata = res.children;
-  state.cascaderdata = cascaderforEach(res);
-  console.warn(state.cascaderdata);
-};
-//deviceModelAdd 新增机型
-const deviceModelAdd = async () => {
-  if (state.deviceModelSel == "") return;
-  console.warn();
-  let obj = {
-    deviceid: editFormData.value.deviceid,
-    devicemodel: state.deviceModelSel,
-    id: null,
-    metriccode: editFormData.value.metriccode,
-    multiplier: 0,
-    uniformcode: "",
-  };
-  editFormData.value.deviceModelMetrics.push(obj);
-};
-//getDeviceModel
-const getDeviceModel = async () => {
-  const res = await device_list();
-  state.deviceModel = res;
-  console.warn(res);
-};
-///// 基本信息
-
-const savedesc = async () => {
-  const res = await treeAdd(state.desc);
-  console.warn(res);
-  if (res.status == 20000) {
-    ElMessage.success(`操作成功!`);
-  } else {
-    ElMessage.success(res.msg);
-  }
-};
-
-///// 基本信息
-// getPoint
-const getPoint = async (node) => {
-  const res = await point(node.code, query.page, query.limit);
-  console.warn(res);
-  pageTotal.value = res.total;
-  state.pointTableData = res.records?.sort((a, b) => {
-    return a.id - b.id;
-  });
-  fifterSearch();
-};
-// 递归解析基础数据
-const cascaderforEach = (val) => {
-  if (val.children != null) {
-    val.children.forEach((v) => {
-      v["value"] = v.node.code;
-      v["label"] = v.node.name;
-      v["id"] = v.node.id;
-      cascaderforEach(v);
-    });
-    return val.children;
-  }
-};
-// 批量导出
-const export2Excel = () => {
-  const tableData = state.pointTableData;
-  const tableHeader = [
-    "测点编码",
-    "名称",
-    "单位",
-    "测点类型",
-    "物理类型",
-    "描述",
-  ];
-  const tableKey = [
-    "metriccode",
-    "name",
-    "unitname",
-    "categorydata",
-    "categorysci",
-    "description",
-  ];
-  outExportExcel(tableHeader, tableKey, tableData, "测点导出excel");
-};
-const query = reactive({
-  page: 1,
-  limit: 15,
-});
-let pageTotal = ref(0);
-// 分页导航
-const handlePageChange = (val) => {
-  query.page = val;
-  getPoint(state.desc);
-};
-</script>
-<style lang="scss" scoped>
-.main {
-  display: flex;
-  width: 100%;
-  height: 100%;
-  box-sizing: border-box;
-  justify-content: space-between;
-  .box-card-tree {
-    width: 20%;
-    margin-right: 1%;
-    overflow: auto;
-  }
-  .box-card {
-    flex: 1;
-    .desc {
-      display: flex;
-      margin-bottom: 30px;
-      span {
-        width: 100px;
-      }
-    }
-  }
-}
-</style>
-<style lang="less" >
-.deviceModelClass {
-  .el-table__header tr,
-  .el-table__header th {
-    padding: 0;
-    height: 40px;
-  }
-  .el-table__body tr,
-  .el-table__body td {
-    padding: 0;
-    height: 40px;
-  }
-}
-.tab {
-  .el-tabs__item.is-active {
-    color: @green;
-  }
-  .el-tabs__item {
-    color: #b7b7b7;
-  }
-}
-.elswitch {
-  .el-switch__input {
-    position: absolute !important;
-  }
-}
-.deviceClass {
-  .el-row {
-    margin-bottom: 16px;
-  }
-}
-</style>

+ 0 - 284
src/views/device/faultmode.vue

@@ -1,284 +0,0 @@
-<template>
-  <div style="display: block">
-    <button
-       class="btn"
-      style="margin-bottom: 10px"
-      @click="handleEdit(state.addFormData)"
-      >新增</button
-    >
-    <button
-       class="btn"
-      size="mini"
-      type="primary"
-      >导入</button
-    >
-    <button
-       class="btn"
-      size="mini"
-      type="primary"
-      @click="export2Excel"
-      :disabled='state.faultmodeTableData.length==0'
-      >导出</button
-    >
-    <el-table
-      :data="state.faultmodeTableData"
-      stripe
-      style="width: 100%"
-      height="700"
-    >
-      <el-table-column type="index" width="50" />
-      <el-table-column prop="name" label="名称"></el-table-column>
-      <el-table-column prop="code" label="故障编码"></el-table-column>
-      <el-table-column label="频度" width="50">
-        <template #default="scope">
-          {{ rank(scope.row.occurence) }}
-        </template>
-      </el-table-column>
-      <el-table-column label="严酷度" width="70">
-        <template #default="scope">
-          {{ rank(scope.row.severity) }}
-        </template>
-      </el-table-column>
-      <el-table-column label="难检度" width="70">
-        <template #default="scope" >
-          {{ rank(scope.row.detection) }}
-        </template>
-      </el-table-column>
-      <el-table-column prop="cause" label="原因"></el-table-column>
-      <el-table-column prop="effects" label="导致结果"></el-table-column>
-      <el-table-column prop="measure" label="处理方法"></el-table-column>
-      <el-table-column label="操作" width="180" align="center">
-        <template #default="scope">
-          <el-button
-            type="text"
-                  style="color: #B3BDC0"
-            @click="handleEdit(scope.row)"
-            >编辑</el-button
-          >
-          <el-button
-            type="text"
-                  style="color: #B3BDC0"
-            @click="handleDelete(scope.row)"
-            >删除</el-button
-          >
-        </template>
-      </el-table-column>
-    </el-table>
-    <!-- 传感点编辑弹出框 -->
-    <el-dialog v-model="editVisible" width="40%"  custom-class="modal">
-      <el-form :model="editFormData" label-width="80px">
-        <el-form-item label="故障编码">
-          <el-input v-model="editFormData.code"></el-input>
-        </el-form-item>
-        <el-form-item label="名称">
-          <el-input v-model="editFormData.name"></el-input>
-        </el-form-item>
-        <el-form-item label="导致结果">
-          <el-input
-            v-model="editFormData.effects"
-            :rows="2"
-            clearable
-            type="textarea"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="原因">
-          <el-input
-            v-model="editFormData.cause"
-            :rows="2"
-            clearable
-            type="textarea"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="处理方法">
-          <el-input
-            v-model="editFormData.measure"
-            :rows="3"
-            clearable
-            type="textarea"
-          ></el-input>
-        </el-form-item>
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="严酷度">
-              <el-select v-model="editFormData.severity">
-                <el-option
-                  v-for="item in selectOptions"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="频度">
-              <el-select v-model="editFormData.occurence">
-                <el-option
-                  v-for="item in selectOptions"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option
-              ></el-select> </el-form-item
-          ></el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="12"
-            ><el-form-item label="难检度">
-              <el-select v-model="editFormData.detection">
-                <el-option
-                  v-for="item in selectOptions"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option
-              ></el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="结构">
-              <el-cascader
-                v-model="editFormData.structurecode"
-                :options="cascaderdata"
-                :props="{ checkStrictly: true }"
-                clearable
-              /> </el-form-item
-          ></el-col>
-        </el-row>
-      </el-form>
-      <template #footer>
-        <span class="dialog-footer">
-          <button   class="btn green" @click="editVisible = false">取 消</button>
-          <button   class="btn green" type="primary" @click="saveEdit">确 定</button>
-        </span>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-<script setup>
-import { ref, onMounted, reactive, inject, warn } from "vue";
-import { ElMessageBox, ElMessage, ElLoading } from "element-plus";
-import { outExportExcel }  from "@tools/excel/exportExcel";
-import {
-  faultmode_windturbine,
-  faultmode_structurecode,
-  faultmode_delete,
-  faultmode_add_edit,
-} from "@/api/api.js";
-let cascaderdata = inject("cascaderdata");
-console.warn(cascaderdata);
-let editVisible = ref(false);
-let editFormData = ref({});
-onMounted(() => {
-  getfaultmode();
-});
-const selectV = {
-  1: "I",
-  2: "II",
-  3: "III",
-  4: "IV",
-  5: "V",
-};
-const selectOptions = [
-  {
-    label: "I",
-    value: 1,
-  },
-  {
-    label: "II",
-    value: 2,
-  },
-  {
-    label: "III",
-    value: 3,
-  },
-  {
-    label: "IV",
-    value: 4,
-  },
-  {
-    label: "V",
-    value: 5,
-  },
-];
-const rank = (v) => {
-  return selectV[v] || "";
-};
-let state = reactive({
-  faultmodeTableData: [],
-  addFormData: {
-    code: "",
-    name: "",
-    effects: "",
-    cause: "",
-    measure: "",
-    severity: null,
-    occurence: null,
-    detection: null,
-    deviceid: "windturbine",
-    structurecode: "",
-    models: null,
-  },
-});
-// 新增 编辑
-const handleEdit = (row) => {
-  editFormData.value = row;
-  editVisible.value = true;
-};
-
-// 测点 删除
-const handleDelete = (row) => {
-  // 二次确认删除
-  ElMessageBox.confirm("确定要删除吗?", "提示", {
-    type: "warning",
-  })
-    .then(async () => {
-      console.warn(row);
-      const res = await faultmode_delete(row.id);
-      console.warn(res);
-      if (res == 1) {
-        ElMessage.success(`删除成功!`);
-      } else {
-        ElMessage.success("删除失败");
-      }
-      getfaultmode();
-    })
-    .catch(() => {});
-};
-// 保存编辑
-const saveEdit = async () => {
-  const res = await faultmode_add_edit(editFormData.value);
-  console.warn(res);
-  if (res.status == 20000) {
-    ElMessage.success(`操作成功!`);
-    editVisible.value = false;
-    getfaultmode();
-  } else {
-    ElMessage.success(res.msg);
-  }
-};
-// getData
-const getfaultmode = async () => {
-  const loading = ElLoading.service({
-    lock: true,
-    text: "数据加载中...",
-    background: "rgba(0, 0, 0, 0.5)",
-  });
-  const res = await faultmode_windturbine();
-  state.faultmodeTableData = res;
-  loading.close();
-  console.warn(res);
-};
-// 批量导出
-const export2Excel = () => {
-  const tableData = state.faultmodeTableData;
-  const tableHeader = ["名称", "故障编码", "频度", "严酷度", "难检度", "原因", "导致结果", "处理方法"];
-  const tableKey = ["name", "code", "occurence", "severity", "detection", "cause",'effects','measure'];
-  outExportExcel(tableHeader,tableKey,tableData,'故障模式导出excel');
-};
-</script>
-<style lang="scss" scoped>
-</style>

+ 0 - 225
src/views/faultManual/index.vue

@@ -1,225 +0,0 @@
-<template>
-  <div class="knowledge-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="processType"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-              @change="getWidgetArray"
-            >
-              <el-option
-                v-for="item in processTypeArray"
-                :key="item.category"
-                :label="item.name"
-                :value="item.category"
-              >
-              </el-option>
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">故障类型:</div>
-          <div class="search-input">
-            <el-select
-              v-model="WidgetType"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-              @change="getTableData"
-            >
-              <el-option
-                v-for="item in WidgetArray"
-                :key="item.code"
-                :label="item.widget"
-                :value="item.code"
-              >
-              </el-option>
-            </el-select>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="getTableData">搜索</button>
-      </div>
-    </div>
-    <div class="table-box">
-      <ComTable :data="tableData" height="85vh"></ComTable>
-    </div>
-    <div class="dialog-box">
-      <el-dialog
-        title="详细信息"
-        v-model="showDetails"
-        custom-class="modal"
-        :close-on-click-modal="false"
-      >
-        <know-info :data="infoData"></know-info>
-      </el-dialog>
-    </div>
-  </div>
-</template>
-
-<script>
-import ComTable from "@com/coms/table/table.vue";
-import KnowInfo from "./knowinfo.vue";
-
-export default {
-  components: { ComTable, KnowInfo },
-  data() {
-    const that = this;
-    return {
-      processTypeArray: [],
-      processType: "",
-      WidgetArray: [],
-      WidgetType: "",
-      nameArray: [],
-      nameType: "",
-      showDetails: false,
-      infoData: [],
-      tableData: {
-        column: [
-          {
-            name: "故障分类",
-            field: "widget",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障名称",
-            field: "name",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "故障原因",
-            field: "cause",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "处理方法",
-            field: "process",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "操作",
-            field: "",
-            is_num: false,
-            is_light: false,
-            template() {
-              return "<el-button type='text' style='cursor: pointer;'>查看详情</el-button>";
-            },
-            click(e, row) {
-              that.getDetails(row);
-            },
-          },
-        ],
-        data: [],
-      },
-    };
-  },
-  created() {
-    this.getProcessType();
-  },
-  methods: {
-    getProcessType() {
-      const that = this;
-      that.API.requestData({
-        method: "GET",
-        baseURL: "http://192.168.1.18:9002/",
-        subUrl: "know/process/type",
-        data: {},
-        success(res) {
-          that.processTypeArray = res.data;
-          that.processType = res?.data[0]?.category;
-          that.getWidgetArray();
-        },
-      });
-    },
-    getWidgetArray() {
-      const that = this;
-      that.WidgetType = [];
-      if (that.processType) {
-        that.API.requestData({
-          method: "GET",
-          baseURL: "http://192.168.1.18:9002/",
-          subUrl: "know/process/widget/list",
-          data: {
-            category: that.processType,
-          },
-          success(res) {
-            that.WidgetArray = res.data;
-            that.WidgetType = res?.data[0]?.widget;
-            that.getTableData();
-          },
-        });
-      }
-    },
-    getTableData() {
-      const that = this;
-      that.API.requestData({
-        method: "GET",
-        baseURL: "http://192.168.1.18:9002/",
-        subUrl: "know/process/name/list",
-        data: {
-          category: that.processType,
-          code: that.WidgetType,
-        },
-        success(res) {
-          that.tableData.data = res.data;
-        },
-      });
-    },
-    getDetails(row) {
-      const that = this;
-      that.API.requestData({
-        method: "GET",
-        baseURL: "http://192.168.1.18:9002/",
-        subUrl: "know/process/list",
-        data: {
-          id: row.id,
-        },
-        success(res) {
-          if (res.data?.length) {
-            that.infoData = res.data;
-            that.showDetails = true;
-          } else {
-            that.BASE.showMsg({
-              msg: "暂无数据",
-            });
-          }
-        },
-      });
-    },
-  },
-};
-</script>
-
-<style lang="less" scope>
-@titleGray: #9ca5a8;
-@rowGray: #606769;
-@darkBack: #536268;
-.knowledge-1 {
-  .el-select {
-    width: 200px;
-  }
-  .el-input {
-    width: 200px;
-  }
-  .dialog-box {
-    height: 100%;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-  }
-  .el-dialog {
-    min-width: 500px;
-    min-height: 500px;
-  }
-}
-</style>

+ 0 - 95
src/views/faultManual/knowinfo.vue

@@ -1,95 +0,0 @@
-<template>
-  <div class="know-info">
-    <table class="table-card" v-for="(item, index) in infoObj" :key="index">
-      <tr>
-        <th>故障分类</th>
-        <td>{{ item.widget || "" }}</td>
-        <th>故障类型</th>
-        <td>{{ item.type || "" }}</td>
-      </tr>
-      <tr>
-        <th>故障名称</th>
-        <td>{{ item.name || "" }}</td>
-        <th>故障标识</th>
-        <td>{{ item.identification || "" }}</td>
-      </tr>
-      <tr>
-        <th>故障原因</th>
-        <td colspan="3">{{ item.cause || "" }}</td>
-      </tr>
-      <tr>
-        <th>处理方法</th>
-        <td colspan="3">{{ item.process || "" }}</td>
-      </tr>
-      <tr>
-        <th>风机厂家</th>
-        <td>{{ item.manufacturer || "" }}</td>
-        <th>风机型号</th>
-        <td>{{ item.model || "" }}</td>
-      </tr>
-      <tr>
-        <th>创建时间</th>
-        <td colspan="3">{{ item.createtime || "" }}</td>
-      </tr>
-    </table>
-  </div>
-</template>
-
-<script>
-export default {
-  name: "know-info",
-  props: {
-    data: Object,
-  },
-  data() {
-    return {
-      infoObj: [],
-    };
-  },
-
-  mounted() {
-    this.infoObj = this.data;
-  },
-
-  watch: {
-    data(value) {
-      this.infoObj = value;
-    },
-  },
-};
-</script>
-
-
-<style lang="less" scoped>
-.know-info {
-  max-height: 600px;
-    overflow-y: scroll;
-  .table-card {
-    border-collapse: collapse;
-    width: 100%;
-    color: @white;
-    margin-bottom: 32px;
-
-    tr {
-      font-size: 12px;
-      th {
-        width: 120px;
-        height: 60px;
-        border: 0.093vh solid @darkgray;
-        line-height: 27px;
-        padding: 0 4px;
-      }
-      td {
-        height: 60px;
-        border: 0.093vh solid @darkgray;
-        line-height: 27px;
-        padding: 0 8px;
-      }
-    }
-  }
-
-  .el-dialog__body {
-    
-  }
-}
-</style>

+ 0 - 38
src/views/globalMonitor/index.vue

@@ -1,38 +0,0 @@
-<template>
-  <div style="width: 100%; height: 100%">
-    <iframe
-      class="videoBoxiframe"
-      width="100%"
-      height="100%"
-      src="http://10.155.32.4:8070/monitor/index.html"
-    ></iframe>
-  </div>
-</template>
-
-<script>
-export default {
-  // 名称
-  name: "globalMonitor",
-
-  // 数据
-  data() {
-    return {};
-  },
-
-  // 函数
-  methods: {},
-
-  created() {},
-
-  mounted() {},
-
-  unmounted() {},
-};
-</script>
-
-<style lang="less" scoped>
-.videoBoxiframe {
-  border: none;
-  overflow: hidden;
-}
-</style>

+ 0 - 645
src/views/historySearch/index.vue

@@ -1,645 +0,0 @@
-<template>
-  <div class="searchPage1">
-    <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
-              size="medium"
-              v-model="form.dateArea"
-              type="datetimerange"
-              :picker-options="pickerOptions"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              align="right"
-            >
-            </el-date-picker>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">间隔:</div>
-          <div class="search-input">
-            <el-input
-              placeholder="请输入间隔"
-              clearable
-              v-model="form.interval"
-              type="number"
-            ></el-input>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable"></div>
-          <div class="search-input">
-            <transition name="el-zoom-in-center">
-              <el-radio-group
-                v-model="form.type"
-                size="small"
-                v-show="form.interval"
-              >
-                <el-radio label="0" @click.native.prevent="getRadio('0')"
-                  >最大</el-radio
-                >
-                <el-radio label="1" @click.native.prevent="getRadio('1')"
-                  >最小</el-radio
-                >
-                <el-radio label="2" @click.native.prevent="getRadio('2')"
-                  >平均</el-radio
-                >
-              </el-radio-group>
-            </transition>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="renderCharts">生成曲线</button>
-      </div>
-    </div>
-    <div class="cardBox">
-      <el-card class="box-card">
-        <div slot="header" class="clearfix">
-          <span>类型</span>
-          <!-- <el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button> -->
-        </div>
-        <div>
-          <el-radio-group
-            v-model="form.fjType"
-            size="small"
-            @change="
-              (fjType) => {
-                resetForm();
-              }
-            "
-          >
-            <el-form ref="form" :model="form">
-              <el-form-item style="margin-bottom: 5px">
-                <el-radio border size="medium" label="1"
-                  >单风机多参数对比</el-radio
-                >
-              </el-form-item>
-              <el-form-item style="margin-bottom: 5px">
-                <el-radio border size="medium" label="2"
-                  >多风机单参数对比</el-radio
-                >
-              </el-form-item>
-            </el-form>
-          </el-radio-group>
-        </div>
-      </el-card>
-      <el-card class="box-card">
-        <div slot="header" class="clearfix">
-          <span>设备结构</span>
-        </div>
-        <div>
-          <div class="treeBox">
-            <el-input
-              size="small"
-              placeholder="输入以检索"
-              :disabled="!treeData.length"
-              v-model="filterText"
-            ></el-input>
-            <el-tree
-              ref="treeRef"
-              node-key="id"
-              :data="treeData"
-              :props="treeProps"
-              :show-checkbox="true"
-              :highlight-current="true"
-              :filter-node-method="filterNode"
-              @check-change="getTreeChecked"
-            ></el-tree>
-          </div>
-        </div>
-      </el-card>
-      <el-card class="box-card">
-        <div slot="header" class="clearfix">
-          <span>关键参数</span>
-        </div>
-        <div class="selectBox treeBox">
-          <el-input
-            size="small"
-            placeholder="输入以检索"
-            :disabled="!gjcsOptions.length"
-            v-model="filterText1"
-          ></el-input>
-          <el-tree
-            ref="treeRef1"
-            node-key="code"
-            :data="gjcsOptions"
-            :props="{ children: null, label: 'description' }"
-            :show-checkbox="true"
-            :highlight-current="true"
-            :filter-node-method="filterNode1"
-            @check-change="getTreeChecked1"
-          ></el-tree>
-          <!-- <el-select style="width:100%;" v-model="form.gjcs" filterable clearable :multiple="!treeIsMultiple"
-            placeholder="输入以检索" @change="(res) => { this.$forceUpdate(); }">
-            <el-option v-for="item in gjcsOptions" :key="item.id" :label="item.description" :value="item.code">
-            </el-option>
-          </el-select> -->
-        </div>
-      </el-card>
-    </div>
-    <div class="chartsBox">
-      <div id="lineChart" style="width: 100%; height: 100%"></div>
-    </div>
-  </div>
-</template>
-
-<script>
-import * as echarts from "echarts";
-import api from "@api/economic/index.js";
-export default {
-  data() {
-    return {
-      form: {
-        pointId: "",
-        pointName: "",
-        autoReq: false,
-        dateArea: [
-          this.fmtDate(
-            new Date(
-              new Date().setTime(new Date().getTime() - 3600 * 1000 * 24)
-            )
-          ),
-          this.fmtDate(new Date()),
-        ],
-        interval: "",
-        type: "",
-        fjType: "1",
-        gjcs: "",
-      },
-
-      treeIsMultiple: false,
-      filterText: "",
-      filterText1: "",
-
-      treeData: [],
-      gjcsOptions: [],
-
-      treeProps: {
-        children: "children",
-        label: "label",
-      },
-
-      pickerOptions: {
-        shortcuts: [
-          {
-            text: "最近一天",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近一周",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近一个月",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近三个月",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-        ],
-      },
-    };
-  },
-  created() {},
-  mounted() {
-    let that = this;
-    that.$nextTick(() => {
-      that.getEquipmentStructure();
-      that.getEquipmentParams();
-    });
-  },
-
-  methods: {
-    // 获取设备结构
-    getEquipmentStructure() {
-      api.paramComparisonEquipmentStructure({}).then((res) => {
-        // 请求成功的回调
-        let treeData = [];
-
-        res.data.forEach((ele) => {
-          let findRes = treeData.find((findEle) => {
-            return ele.windpowerstationid === findEle.label;
-          });
-          if (!findRes) {
-            let treeTemp = {
-              label: ele.windpowerstationid,
-              children: [],
-            };
-            treeTemp.children.push({
-              label: ele.name,
-              id: ele.id,
-            });
-            treeData.push(treeTemp);
-          } else {
-            findRes.children.push({
-              label: ele.name,
-              id: ele.id,
-            });
-          }
-        });
-        this.treeData = treeData;
-      });
-
-      let that = this;
-      // that.API.requestData({
-      //   baseURL:"http://10.155.32.4:8031/",
-      //   subUrl: "paramComparison/equipmentStructure",
-      //   timeout:30000,
-      //   success (res) {
-      //     // 请求成功的回调
-      //     let treeData = [];
-
-      //     res.data.forEach(ele => {
-      //       let findRes = treeData.find(findEle => {
-      //         return ele.windpowerstationid === findEle.label;
-      //       });
-      //       if (!findRes) {
-      //         let treeTemp = {
-      //           label: ele.windpowerstationid,
-      //           children: []
-      //         };
-      //         treeTemp.children.push({
-      //           label: ele.name,
-      //           id: ele.id
-      //         });
-      //         treeData.push(treeTemp);
-      //       } else {
-      //         findRes.children.push({
-      //           label: ele.name,
-      //           id: ele.id
-      //         });
-      //       }
-      //     });
-      //     that.treeData = treeData;
-      //   }
-      // });
-    },
-
-    // 获取关键节点
-    getEquipmentParams() {
-      api.paramComparisonEquipmentParams({}).then((res) => {
-        that.gjcsOptions = res.data;
-      });
-
-      // let that = this;
-      // that.API.requestData({
-      //   baseURL: "http://10.155.32.4:8031/",
-      //   subUrl: "paramComparison/equipmentParams",
-      //   success(res) {
-      //     that.gjcsOptions = res.data;
-      //   },
-      // });
-    },
-
-    // 获取单选结果
-    getRadio(type) {
-      if (type === this.form.type && this.form.type !== "") {
-        this.form.type = "";
-      } else {
-        this.form.type = type;
-      }
-    },
-
-    // 渲染图表
-    renderCharts() {
-      let that = this;
-      that.$nextTick(() => {
-        let begin = that.form.dateArea.length
-          ? new Date(that.form.dateArea[0]).formatDate("yyyy-MM-dd hh:mm:ss")
-          : "";
-        let end = that.form.dateArea.length
-          ? new Date(that.form.dateArea[1]).formatDate("yyyy-MM-dd hh:mm:ss")
-          : "";
-        let interval = that.form.interval;
-        let type = that.form.type;
-        let paramtype = that.form.fjType;
-        let wts = [];
-        let wtsArray = that.$refs.treeRef.getCheckedNodes();
-        let params = [];
-        let paramsArray = that.$refs.treeRef1.getCheckedNodes();
-        // let params = that.form.gjcs;
-
-        wtsArray.forEach((pEle) => {
-          if (pEle.id) {
-            wts.push(pEle.id);
-          } else {
-            pEle.children.forEach((cEle) => {
-              wts.push(cEle.id);
-            });
-          }
-        });
-
-        paramsArray.forEach((pEle) => {
-          params.push(pEle.code);
-        });
-
-        let data = {};
-        data.begin = begin;
-        data.end = end;
-        interval && (data.interval = interval);
-        type && (data.type = type);
-        data.paramtype = paramtype;
-        data.wts = wts.toString();
-        data.params = params.toString();
-
-        if (begin && end && paramtype && wts.length && params.length) {
-          // that.API.requestData({
-          //   baseURL: "http://10.155.32.4:8031/",
-          //   subUrl: "paramComparison/generatingCurve",
-          //   timeout: 10000,
-          //   data,
-          //   success(res) {
-          //     if (res.data.length) {
-          //       let xAxisData = []; // x轴标题
-          //       let seriesData = []; // 折线图数据
-          //       let keyArray = [];
-          //       if (that.form.fjType === "1") {
-          //         params.forEach((ele) => {
-          //           let findRes = that.gjcsOptions.find((findEle) => {
-          //             return ele === findEle.code;
-          //           });
-          //           keyArray.push(findRes.description);
-          //         });
-          //       } else {
-          //         wtsArray.forEach((pEle) => {
-          //           if (pEle.id) {
-          //             keyArray.push(pEle.label);
-          //           } else {
-          //             pEle.children.forEach((cEle) => {
-          //               keyArray.push(cEle.label);
-          //             });
-          //           }
-          //         });
-          //       }
-          //       keyArray.forEach((ele) => {
-          //         seriesData.push({
-          //           data: [],
-          //           type: "line",
-          //           smooth: true,
-          //           name: ele,
-          //         });
-          //       });
-          //       res.data.forEach((pEle) => {
-          //         xAxisData.push(that.fmtDate(new Date(pEle.time)));
-          //         keyArray.forEach((cEle, cIndex) => {
-          //           seriesData[cIndex].data.push(pEle[cEle] || null);
-          //         });
-          //       });
-          //       document
-          //         .getElementById("lineChart")
-          //         .removeAttribute("_echarts_instance_");
-          //       let chartDom = document.getElementById("lineChart");
-          //       let myChart = echarts.init(chartDom);
-          //       let option = {
-          //         xAxis: {
-          //           type: "category",
-          //           data: xAxisData,
-          //         },
-          //         yAxis: {
-          //           type: "value",
-          //         },
-          //         series: seriesData,
-          //         tooltip: {
-          //           trigger: "axis",
-          //           axisPointer: {
-          //             type: "cross",
-          //             label: {
-          //               backgroundColor: "#6a7985",
-          //             },
-          //           },
-          //         },
-          //       };
-          //       option && myChart.setOption(option);
-          //     } else {
-          //       that.BASE.showMsg({
-          //         type: "warning",
-          //         msg: "所选参数暂无数据,请切换参数后再次尝试",
-          //       });
-          //     }
-          //   },
-          // });
-        } else {
-          that.BASE.showMsg({
-            msg: "无法生成,请检查 日期、设备结构与关键参数是否已选择",
-          });
-        }
-      });
-    },
-
-    // 过滤树形节点
-    filterNode(value, data) {
-      if (!value) return true;
-      return data.label.indexOf(value) !== -1;
-    },
-
-    // 过滤树形节点
-    filterNode1(value, data) {
-      if (!value) return true;
-      return data.description.indexOf(value) !== -1;
-    },
-
-    // 获取树形选中
-    getTreeChecked(data, checked, node) {
-      if (!this.treeIsMultiple) {
-        if (checked === true) {
-          this.checkedId = data.id;
-          this.$refs.treeRef.setCheckedKeys([data.id]);
-        } else {
-          if (this.checkedId == data.id) {
-            this.$refs.treeRef.setCheckedKeys([]);
-          }
-        }
-      }
-    },
-
-    // 获取树形选中
-    getTreeChecked1(data, checked, node) {
-      if (this.treeIsMultiple) {
-        if (checked === true) {
-          this.checkedId = data.code;
-          this.$refs.treeRef1.setCheckedKeys([data.code]);
-        } else {
-          if (this.checkedId == data.code) {
-            this.$refs.treeRef1.setCheckedKeys([]);
-          }
-        }
-      }
-    },
-
-    // 重置表单
-    resetForm() {
-      this.form.fjType === "1"
-        ? (this.treeIsMultiple = false)
-        : (this.treeIsMultiple = true);
-      this.$refs.treeRef.setCheckedKeys([]);
-      this.$refs.treeRef1.setCheckedKeys([]);
-      this.form.gjcs = "";
-      this.$forceUpdate();
-      document
-        .getElementById("lineChart")
-        .removeAttribute("_echarts_instance_");
-      echarts.init(document.getElementById("lineChart"));
-    },
-
-    // 格式化日期
-    fmtDate(date) {
-      let curDate = date || new Date();
-      let year = curDate.getFullYear();
-      let mouth = curDate.getUTCMonth() + 1;
-      let day = curDate.getDate();
-      let hour = curDate.getHours();
-      let minutes = curDate.getMinutes();
-      let seconds = curDate.getSeconds();
-      return (
-        year +
-        "-" +
-        (mouth < 10 ? "0" + mouth : mouth) +
-        "-" +
-        (day < 10 ? "0" + day : day) +
-        " " +
-        (hour < 10 ? "0" + hour : hour) +
-        ":" +
-        (minutes < 10 ? "0" + minutes : minutes) +
-        ":" +
-        (seconds < 10 ? "0" + seconds : seconds)
-      );
-    },
-  },
-
-  watch: {
-    filterText(val) {
-      this.$refs.treeRef.filter(val);
-    },
-
-    filterText1(val) {
-      this.$refs.treeRef1.filter(val);
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.searchBox1 {
-  width: 80%;
-  display: flex;
-  justify-content: flex-start;
-  align-items: center;
-  position: relative;
-
-  .btnBox {
-    position: absolute;
-    left: calc(100% + 60px);
-    top: 0;
-    display: flex;
-    justify-content: flex-start;
-    align-items: center;
-  }
-
-  .el-input {
-    width: 150px;
-  }
-}
-
-.cardBox {
-  width: 100%;
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  margin-top: 20px;
-
-  .el-card {
-    width: 32%;
-    height: 255px;
-
-    .treeBox {
-      width: 100%;
-
-      .el-tree {
-        width: 100%;
-        height: 160px;
-        margin-top: 10px;
-        overflow-y: scroll;
-
-        &::-webkit-scrollbar {
-          width: 6px;
-          height: 6px;
-          background: #fff;
-        }
-
-        &::-webkit-scrollbar-track {
-          border-radius: 5px;
-          background: #fff;
-        }
-
-        &::-webkit-scrollbar-thumb {
-          border-radius: 10px;
-          background: rgba(144, 147, 153, 0.3);
-        }
-      }
-    }
-  }
-}
-
-.selectBox {
-  .el-select {
-    max-height: 150px;
-    overflow-y: scroll;
-
-    &::-webkit-scrollbar {
-      width: 6px;
-      height: 6px;
-      background: #fff;
-    }
-
-    &::-webkit-scrollbar-track {
-      border-radius: 5px;
-      background: #fff;
-    }
-
-    &::-webkit-scrollbar-thumb {
-      border-radius: 10px;
-      background: rgba(144, 147, 153, 0.3);
-    }
-  }
-}
-
-.chartsBox {
-  width: 100%;
-  height: 400px;
-}
-</style>
-<style lang="less">
-.cardBox {
-  .el-card__header {
-    padding: 5px 20px;
-  }
-
-  .el-card__body {
-    padding: 10px 20px;
-  }
-}
-</style>

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

@@ -1,134 +0,0 @@
-<template>
-	<div>
-		<div class="action-bar">
-			<div class="query mg-b-16">
-				<div class="query-items">
-					<div class="query-item">
-						<div class="lable">风场:</div>
-						<div class="search-input">
-							<el-select v-model="wpvalue" clearable placeholder="请选择" popper-class="select">
-								<el-option v-for="item in ChangZhan" :key="item.id" :label="item.name" :value="item.id">
-								</el-option>
-							</el-select>
-						</div>
-					</div>
-					<div class="query-item">
-						<div class="lable">日期:</div>
-						<div class="search-input">
-							<el-date-picker v-model="myDate" type="date" placeholder="开始日期" popper-class="date-select"
-					   value-format="YYYY-MM-DD"></el-date-picker>
-						</div>
-					</div>
-				</div>
-				<div class="query-actions">
-					<button class="btn green" @click="searchData">搜索</button>
-				</div>
-			</div>
-		</div>
-		<el-row>
-			<el-col :span="14">
-				<panel :title="'日雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-					<div class="wind-info">
-						<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">
-								<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">
-								<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 {
-				rzdfsData: {
-					indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
-					data: [{value: [44200, 14200, 20000, 35000, 50000, 38000],name: "",}, ],
-				},
-				yzdfsData: {
-					indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
-					data: [{value: [44200, 14200, 20000, 35000, 50000, 38000],name: "",}, ],
-				},
-				nzdfsData: {
-					indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
-					data: [{value: [44200, 14200, 20000, 35000, 50000, 38000],name: "",}, ],
-				},
-				ChangZhan: [],
-				wpvalue: '',
-				myDate: ""
-			}
-		},
-		created() {
-			var that = this;
-			that.API.requestData({
-				method: "GET",
-				baseURL: "http://10.83.66.220:8020/",
-				subUrl: "benchmarking/wplist",
-				success(res) {
-					that.ChangZhan = res.data;
-					that.wpvalue = res.data[0].id;
-					let end = new Date();
-					that.myDate = end.formatDate("yyyy-MM-dd");
-					that.searchData();
-				},
-			});
-		},
-		methods: {
-			searchData(){
-				var that = this;
-				that.API.requestData({
-					method: "GET",
-					subUrl: "radar/gzfx",
-					data:{
-						stId:that.wpvalue,
-						Date:that.myDate
-					},
-					success(res) {
-						that.rzdfsData = {
-							indicator:Object.keys(res.data[0].year),
-							data:[{value:Object.values(res.data[0].year)}]
-						}
-						that.yzdfsData = {
-							indicator:Object.keys(res.data[1].month),
-							data:[{value:Object.values(res.data[1].month)}]
-						}
-						that.nzdfsData = {
-							indicator:Object.keys(res.data[2].day),
-							data:[{value:Object.values(res.data[2].day)}]
-						}
-					},
-				});
-			}
-		},
-
-	};
-</script>
-
-<style>
-</style>

+ 0 - 345
src/views/malfunctionDiagnose/index.vue

@@ -1,345 +0,0 @@
-<template>
-  <div class="draught-fan-list">
-    <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="wpId"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-              @change="
-                (wpId) => {
-                  getProject();
-                }
-              "
-            >
-              <el-option
-                v-for="item in wpArray"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              />
-            </el-select>
-          </div>
-        </div>
-        <!-- <div class="query-item">
-          <div class="lable">项目:</div>
-          <div class="search-input">
-            <el-select
-              v-model="projectId"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in projectArray"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              />
-            </el-select>
-          </div>
-        </div> -->
-        <div class="query-item">
-          <div class="lable">模型:</div>
-          <div class="search-input">
-            <el-select
-              v-model="modelId"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in modelArray"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              />
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">时间类型:</div>
-          <div class="search-input">
-            <el-select
-              v-model="typeId"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in typeArray"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              />
-            </el-select>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="search()">查询</button>
-        <!-- <button class="btn green" @click="">导入</button> -->
-        <button class="btn green" @click="Excels">导出</button>
-      </div>
-    </div>
-    <div class="df-table">
-      <ComTable height="78vh" :data="tableData"></ComTable>
-    </div>
-    <el-dialog
-      title="批量诊断"
-      v-model="dialogShow"
-      width="85%"
-      top="10vh"
-      custom-class="modal"
-      :close-on-click-modal="true"
-    >
-      <el-table
-        :data="treeData"
-        style="width: 100%; height: 600px; overflow-y: scroll"
-        row-key="id"
-        border
-        default-expand-all
-        :expand-row-keys="['0']"
-        :tree-props="{ children: 'children' }"
-      >
-        <el-table-column
-          prop="name"
-          label="项目名称"
-          sortable
-        ></el-table-column>
-        <el-table-column
-          prop="judegVulue"
-          label="状态"
-          sortable
-        ></el-table-column>
-      </el-table>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import ComTable from "@com/coms/table/table.vue";
-import api1 from "@api/economic/index.js";
-import api from "@api/wisdomOverhaul/fault/index.js";
-export default {
-  // 名称
-  name: "cutAnalyse",
-
-  // 使用组件
-  components: {
-    ComTable,
-  },
-
-  // 数据
-  data() {
-    const that = this;
-    return {
-      isAsc: "asc",
-      wpArray: [],
-      wpId: "",
-      projectId: "",
-      projectArray: [],
-      modelId: "2",
-      modelArray: [
-        {
-          id: "2",
-          value: "2",
-          name: "极限学习机",
-        },
-        {
-          id: "1",
-          value: "1",
-          name: "决策树分类法",
-        },
-      ],
-      typeId: "1",
-      typeArray: [
-        {
-          id: "1",
-          value: "1",
-          name: "顺时",
-        },
-        {
-          id: "2",
-          value: "2",
-          name: "趋势",
-        },
-      ],
-      dialogShow: false,
-      tableData: {
-        column: [
-          {
-            name: "风机",
-            field: "wtid",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "型号",
-            field: "modelid",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "评分",
-            field: "judegvulue",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "操作",
-            field: "cz",
-            is_num: false,
-            is_light: false,
-            template() {
-              return "<el-button type='text' style='cursor: pointer;'>详情</el-button>";
-            },
-            click(e, row) {
-              that.getTree(row);
-            },
-          },
-        ],
-        data: [],
-      },
-    };
-  },
-
-  // 函数
-  methods: {
-    // 请求服务
-    requestData() {
-      api1.getWpList({ type: "-1" }).then((res) => {
-        this.wpArray = res.data?.data || [];
-        this.wpId = res.data?.data?.[0]?.id;
-        this.getProject();
-      });
-    },
-
-    // 获取期数
-    getProject() {
-      api
-        .powercompareProjectAjax({
-          wpIds: this.wpId,
-        })
-        .then((res) => {
-          this.projectArray = res.data;
-          this.projectId = res.data[0].id;
-          this.getTableData();
-        });
-    },
-
-    getTableData() {
-      let that = this;
-      if (!that.wpId || !that.projectId) {
-        that.BASE.showMsg({
-          msg: "场站与期数不可为空",
-        });
-      } else if (!that.modelId || !that.typeId) {
-        that.BASE.showMsg({
-          msg: "模型与时间类型不可为空",
-        });
-      } else {
-        api
-          .stopanalysisStopAnalysisList({
-            wpId: this.wpId,
-            isAsc: this.isAsc,
-            modelId: this.modelId,
-            typeId: this.typeId,
-          })
-          .then((res) => {
-            this.tableData.data = res.data;
-          });
-      }
-    },
-    // 获取故障诊断树
-    getTree(item) {
-      api
-        .stopanalysisStopAnalysisTree({
-          mainId: item.id,
-          wtId: item.wtid,
-          values: item.judegvulue,
-        })
-        .then((res) => {
-          if (res.data[0]) {
-            res.data[0].id = "0";
-            this.treeData = res.data;
-            this.dialogShow = true;
-          }
-        });
-    },
-
-    search() {
-      this.getTableData();
-    },
-    formatJson(filterVal, jsonData) {
-      return jsonData.map((v) => filterVal.map((j) => v[j]));
-    },
-    Excels() {
-      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();
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.draught-fan-list {
-  width: 100%;
-  height: 100%;
-  display: flex;
-  flex-direction: column;
-
-  .btn-group-tabs {
-    display: flex;
-    flex-direction: row;
-
-    .photovoltaic {
-      margin-left: 1.481vh;
-    }
-  }
-
-  .df-table {
-    border: 0.093vh solid fade(@darkgray, 50%);
-    position: relative;
-    overflow: auto;
-    flex-grow: 1;
-    margin-top: 1.481vh;
-
-    &:before {
-      content: "";
-      width: 0.37vh;
-      height: 0.37vh;
-      background: @write;
-      position: absolute;
-      left: 0.278vh;
-      top: 0.278vh;
-    }
-
-    tbody {
-      height: calc(100vh - 166px);
-    }
-  }
-}
-</style>

+ 0 - 134
src/views/malfunctionDiagnose/yjfl.vue

@@ -1,134 +0,0 @@
-<template>
-	<div>
-		<div class="action-bar">
-			<div class="query mg-b-16">
-				<div class="query-items">
-					<div class="query-item">
-						<div class="lable">风场:</div>
-						<div class="search-input">
-							<el-select v-model="wpvalue" clearable placeholder="请选择" popper-class="select">
-								<el-option v-for="item in ChangZhan" :key="item.id" :label="item.name" :value="item.id">
-								</el-option>
-							</el-select>
-						</div>
-					</div>
-					<div class="query-item">
-						<div class="lable">日期:</div>
-						<div class="search-input">
-							<el-date-picker v-model="myDate" type="date" placeholder="开始日期" popper-class="date-select"
-					   value-format="YYYY-MM-DD"></el-date-picker>
-						</div>
-					</div>
-				</div>
-				<div class="query-actions">
-					<button class="btn green" @click="searchData">搜索</button>
-				</div>
-			</div>
-		</div>
-		<el-row>
-			<el-col :span="14">
-				<panel :title="'日雷达图'" class="radar-panel" :icon="'svg-wind-site'">
-					<div class="wind-info">
-						<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">
-								<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">
-								<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 {
-				rzdfsData: {
-					indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
-					data: [{value: [44200, 14200, 20000, 35000, 50000, 38000],name: "",}, ],
-				},
-				yzdfsData: {
-					indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
-					data: [{value: [44200, 14200, 20000, 35000, 50000, 38000],name: "",}, ],
-				},
-				nzdfsData: {
-					indicator: ["N0", "N1", "N2", "N3", "N4", "N5"],
-					data: [{value: [44200, 14200, 20000, 35000, 50000, 38000],name: "",}, ],
-				},
-				ChangZhan: [],
-				wpvalue: '',
-				myDate: ""
-			}
-		},
-		created() {
-			var that = this;
-			that.API.requestData({
-				method: "GET",
-				baseURL: "http://10.83.66.220:8020/",
-				subUrl: "benchmarking/wplist",
-				success(res) {
-					that.ChangZhan = res.data;
-					that.wpvalue = res.data[0].id;
-					let end = new Date();
-					that.myDate = end.formatDate("yyyy-MM-dd");
-					that.searchData();
-				},
-			});
-		},
-		methods: {
-			searchData(){
-				var that = this;
-				that.API.requestData({
-					method: "GET",
-					subUrl: "radar/yjfx",
-					data:{
-						stationid:that.wpvalue,
-						date:that.myDate
-					},
-					success(res) {
-						that.rzdfsData = {
-							indicator:Object.keys(res.data[0].year),
-							data:[{value:Object.values(res.data[0].year)}]
-						}
-						that.yzdfsData = {
-							indicator:Object.keys(res.data[1].month),
-							data:[{value:Object.values(res.data[1].month)}]
-						}
-						that.nzdfsData = {
-							indicator:Object.keys(res.data[2].day),
-							data:[{value:Object.values(res.data[2].day)}]
-						}
-					},
-				});
-			}
-		},
-
-	};
-</script>
-
-<style>
-</style>

+ 0 - 467
src/views/malfunctionRecall/components/fault-diagnosis.vue

@@ -1,467 +0,0 @@
-<template>
-    <div class="fault-diagnosis-pop-up-window">
-        <div class="white font-md">查询条件</div>
-        <div class="query left mg-b-8">
-            <div class="query-items">
-                <div class="query-item">
-                    <div class="lable">风机:</div>
-                    <div class="search-input">
-                        <el-input v-model="value1" placeholder="SG01_53" class="placeholder-left" />
-                    </div>
-                </div>
-                <div class="query-item">
-                    <div class="lable">部件类型:</div>
-                    <div class="search-input">
-                        <el-select class="placeholder-left" v-model="value2" placeholder="风机" popper-class="select">
-                            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
-                        </el-select>
-                    </div>
-                </div>
-                <div class="query-item">
-                    <div class="lable">测点类型:</div>
-                    <div class="search-input">
-                        <el-select class="placeholder-left" v-model="value3" placeholder="所有测点" popper-class="select">
-                            <el-option v-for="item in pointype" :key="item.value" :label="item.label" :value="item.value"></el-option>
-                        </el-select>
-                    </div>
-                </div>
-            </div>
-            <div class="query-actions">
-                <button class="btn green"  @click="onClickSelect">重新选择</button>
-            </div>
-        </div>
-        <div class="white font-md mg-t-16">
-            <div>测点选择</div>
-            <div class="check-item">
-                <el-checkbox-group v-model="checkValue" text-color="#05bb4c" fill="#05bb4c" :max="5" @change="check">
-                    <template v-for="(items, i) in checkList" :key="i">
-                        <template v-for="(item, j) in items" :key="j">
-                            <el-checkbox class="cb-item" :label="item.uniformcode+'$'+item.name"> {{item.name}},值:{{item.value}}</el-checkbox>
-                        </template>
-                        <br>
-                    </template>
-                </el-checkbox-group>
-            </div>
-        </div>
-        <div class="time-axis-box">
-            <div class="time-axis-icon mg-r-16" @click="startAnimate">
-                <i :class="timeAxisIcon" class="green"></i>
-            </div>
-            <div class="time-axis-progress-box">
-                <div class="time-axis-progress" :style="'width: '+timeAxisProgress+'%;'"></div>
-                <div class="time-axis-progress-scale" v-for="index of 20" :key="index"></div>
-            </div>
-        </div>
-        <div class="white font-md mg-t-16">风机故障回溯</div>
-        <multiple-y-line-chart ref="chart" class="fdp-chart" height="32.407vh" :yAxises="yAxis" :list="lineData" :showLegend="true" />
-    </div>
-</template>
-
-<script>
-import MultipleYLineChart from "@com/chart/line/multiple-y-line-chart.vue";
-export default {
-    components: {MultipleYLineChart},
-    props:{
-        data: String,
-    },
-    data() {
-        return {
-            yAxis: [
-                {
-                    name: '机舱震动x方向',
-                    min: 50,
-                    max: 370,
-                    unit: "",
-                    position: "left",
-                },
-                {
-                    name: '机舱震动y方向',
-                    min: 60,
-                    max: 320,
-                    unit: "",
-                    position: "right",
-                },
-                {
-                    name: '机舱震动最大偏移值',
-                    min: 90,
-                    max: 330,
-                    unit: "",
-                    position: "left",
-                },
-                {
-                    name: '风速1',
-                    min: 30,
-                    max: 350,
-                    unit: "",
-                    position: "right",
-                },
-                {
-                    name: '风速2',
-                    min: 100,
-                    max: 360,
-                    unit: "",
-                    position: "left",
-                },
-            ],
-            lineData: [
-                {
-                    title: "机舱震动x方向",
-                    yAxisIndex: 0,
-                    value: [
-                        ["2021/07/01 00:00:00", 68],
-                        ["2021/07/01 05:00:00", 74],
-                        ["2021/07/01 10:00:00", 69],
-                        ["2021/07/01 15:00:00", 134],
-                        ["2021/07/01 20:00:00", 262],
-                    ],
-                },
-                {
-                    title: "机舱震动y方向",
-                    yAxisIndex: 1,
-                    value: [
-                        ["2021/07/01 00:00:00", 110],
-                        ["2021/07/01 05:00:00", 175],
-                        ["2021/07/01 10:00:00", 290],
-                        ["2021/07/01 15:00:00", 140],
-                        ["2021/07/01 20:00:00", 203],
-                    ],
-                },
-                {
-                    title: "机舱震动最大偏移值",
-                    yAxisIndex: 2,
-                    value: [
-                        ["2021/07/01 00:00:00", 312],
-                        ["2021/07/01 05:00:00", 203],
-                        ["2021/07/01 10:00:00", 231],
-                        ["2021/07/01 15:00:00", 305],
-                        ["2021/07/01 20:00:00", 230],
-                    ],
-                },
-                {
-                    title: "风速1",
-                    yAxisIndex: 3,
-                    value: [
-                        ["2021/07/01 00:00:00", 277],
-                        ["2021/07/01 05:00:00", 311],
-                        ["2021/07/01 10:00:00", 296],
-                        ["2021/07/01 15:00:00", 87],
-                        ["2021/07/01 20:00:00", 273],
-                    ],
-                },
-                {
-                    title: "风速2",
-                    yAxisIndex: 4,
-                    value: [
-                        ["2021/07/01 00:00:00", 214],
-                        ["2021/07/01 05:00:00", 224],
-                        ["2021/07/01 10:00:00", 313],
-                        ["2021/07/01 15:00:00", 230],
-                        ["2021/07/01 20:00:00", 264],
-                    ],
-                }
-            ],
-            options: [
-                {
-                    value: "0",
-                    label: "风机",
-                },
-                {
-                    value: "1",
-                    label: "齿轮箱",
-                },
-                {
-                    value: "2",
-                    label: "发电机",
-                },
-                {
-                    value: "3",
-                    label: "变桨",
-                }
-            ],
-            pointype: [
-                {
-                    value: "0",
-                    label: "所有测点",
-                },
-                {
-                    value: "1",
-                    label: "遥测测点",
-                },
-                {
-                    value: "2",
-                    label: "遥信测点",
-                },
-                
-            ],
-            value1: "",
-            value2: "",
-            value3: "",
-            checkList: [],
-            checkValue: [],
-            timeAxisIcon: "el-icon-video-play", // el-icon-video-play el-icon-video-pause
-            timeAxisProgress: 0,
-            timeAxisAnimate: false,
-            animationFrameId: null,
-            start: 0,
-            end: 5,
-            temp: null,
-            temp1: null,
-            animationTime: 680, // 每次变化数据的大致时间间隔(具体会根据当前页面是否可见、CPU的负荷情况等上下浮动14~18ms)
-            animationData: {}, // 回显的数组
-            animationDataIndex: -1,
-            maxlength: 0,
-        };
-    },
-    created(){},
-    mounted() {
-        this.value1 = this.data.windTurbineId
-        this.value2 = this.options[0].value
-        this.value3 = this.pointype[0].value
-        this.requestPoint()
-    },
-    // 函数
-    methods: {
-        // 重新选择按钮
-        onClickSelect(){
-            this.requestPoint()
-        },
-        requestPoint(){
-            let that = this;
-            that.API.requestData({
-                method: "POST",
-                subUrl: "/fault/queryPointVos",
-                data: {
-                    wtId: that.value1,
-                    bjtype: that.value2,
-                    cdtype: that.value3
-                },
-                success(res) {
-                    if(res.code == 200){
-                        let points = "";
-                        let data = res.data;
-                        that.checkList = [];
-                        // 将数据分成4个一组
-                        var chunk = 4;
-                        for(var i = 0, j = data.length; i < j ;i+=chunk) {
-                            that.checkList.push(data.slice(i,i + chunk))
-                        }
-                        data.forEach(item => {points += item.uniformcode + ","})
-                        // 默认选择前5个
-                        if (that.checkList.length >= 2){
-                            that.checkValue = [
-                                that.checkList[0][0].uniformcode + "$" + that.checkList[0][0].name, 
-                                that.checkList[0][1].uniformcode + "$" + that.checkList[0][1].name,
-                                that.checkList[0][2].uniformcode + "$" + that.checkList[0][2].name,
-                                that.checkList[0][3].uniformcode + "$" + that.checkList[0][3].name,
-                                that.checkList[1][0].uniformcode + "$" + that.checkList[1][0].name]
-                        }else {
-                            data.forEach(item => {
-                                that.checkValue.push(item.uniformcode + "$" + item.name)
-                            })
-                        }   
-                        that.requestValue(points);
-                    }
-                },
-            }); 
-        },
-        requestValue(points){
-            let that = this;
-            that.API.requestData({
-				showLoading: true,
-                method: "POST",
-                subUrl: "/fault/getFaultPlayback",
-                timeout: 20000,
-                data: {
-                    wtId: that.value1,
-                    pointids: points,
-                    stopTime: new Date(that.data.stopTime).formatDate("yyyy-MM-dd hh:mm:ss")
-                },
-                success(res) {
-                    if(res.code == 200) {
-                        that.animationData = [];
-                        let data = res.data.datas
-                        // 取出最长的一个数值
-                        that.checkList.forEach((items) => {
-                            for (var i = 0; i < items.length; i++){
-                                items[i].value = data[items[i].uniformcode][0]
-                                if (items[i].uniformcode.length > that.maxlength){
-                                    that.maxlength = data[items[i].uniformcode].length;
-                                }
-                            }  
-                        })
-                        that.animationData = data;
-                    }
-                    that.initEchart();
-                },
-            }); 
-        },
-        startAnimate: function () {
-            if (this.timeAxisAnimate) {
-                this.timeAxisIcon = "el-icon-video-play";
-                if (this.animationFrameId) {
-                    window.cancelAnimationFrame(this.animationFrameId);
-                }
-            } else {
-                this.timeAxisIcon = "el-icon-video-pause";
-                this.animationFrameId = window.requestAnimationFrame(this.timeAxisAnimation);
-            }
-            this.timeAxisAnimate = !this.timeAxisAnimate;
-        },
-        endAnimate: function () {
-            this.timeAxisProgress = 0;
-            this.timeAxisIcon = "el-icon-video-play";
-            this.timeAxisAnimate = false;
-            this.start = 0;
-            this.end = 5;
-            this.$refs.chart.datazoom(this.start, this.end);
-            if (this.animationFrameId) {
-                window.cancelAnimationFrame(this.animationFrameId);
-            }
-            this.animationFrameId = null;
-            this.animationDataIndex = -1;
-        },
-        timeAxisAnimation: function () {
-            if (this.timeAxisAnimate) {
-                this.maxlength <= 100 ? this.maxlength = 100 : this.maxlength
-                const step = this.maxlength / 100;
-                this.timeAxisProgress += step;
-                this.animationDataIndex += 1;
-
-                if (this.animationDataIndex < this.maxlength) {
-                   this.checkList.forEach(items => {
-                       items.forEach(item => {
-                           if (this.animationDataIndex < this.animationData[item.uniformcode].length)
-                                item.value = this.animationData[item.uniformcode][this.animationDataIndex]
-                       })
-                   })
-                }
-
-                this.start += step;
-                this.end += step;
-                this.$refs.chart.datazoom(this.start, this.end);
-                if (this.timeAxisProgress < 100) {
-                    setTimeout(() => {
-                        this.animationFrameId = window.requestAnimationFrame(this.timeAxisAnimation);
-                    }, this.animationTime);
-                } else {
-                    this.endAnimate();
-                } 
-            }
-        },
-        check: function () {
-            this.initEchart();
-            if (this.temp) {
-                this.lineData.splice(4, 0, this.temp);
-                this.yAxis.splice(4, 0, this.temp1);
-                this.temp = null;
-                this.temp1 = null;
-            } else {
-                this.temp = this.lineData[4];
-                this.temp1 = this.yAxis[4];
-                this.lineData.splice(4, 1);
-                this.yAxis.splice(4, 1);
-            }
-            this.$refs.chart.reload();
-        },
-        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);
-                let obj = {
-                    name: name,
-                    unit: "",
-                }
-                if (index%2 == 0)
-                    obj.position = "left";
-                else
-                    obj.position = "right";
-                this.yAxis.push(obj);
-
-                let data = {
-                    title: name,
-                    yAxisIndex: index
-                }
-                let value = [];
-                this.animationData[uniformcode].forEach(ele => {
-                    let obj = {
-                        text: String(ele),
-                        value: ele
-                    }
-                    value.push(obj)
-                })
-                data.value = value
-				lineData.push(data);
-            })
-			this.lineData=lineData;
-        },
-    },
-    watch: {
-        data(value){
-            this.value1 = value.windTurbineId
-            this.checkList = []
-        }
-    }
-};
-</script>
-
-<style lang="less">
-.fault-diagnosis-pop-up-window {
-    width: 100%;
-
-    .time-axis-box {
-        margin: 16px auto;
-        display: flex;
-        width: 256px;
-
-        .time-axis-icon {
-            font-size: 30px;
-            line-height: 1;
-            cursor: pointer;
-        }
-
-        .time-axis-progress-box {
-            width: 200px;
-            height: 30px;
-            display: flex;
-            position: relative;
-
-            .time-axis-progress {
-                position: absolute;
-                height: 100%;
-                left: 0;
-                top: 0;
-                background: fade(@green, 60);
-                transition: all .1s;
-            }
-
-            .time-axis-progress-scale {
-                width: 10px;
-                height: 100%;
-                border: 1px solid @green;
-
-                +.time-axis-progress-scale {
-                    border-left: none;
-                }
-            }
-        }
-    }
-
-    .fdp-sub-title {
-        color: #a8b2b5;
-        margin: 2px 0 16px 0;
-    }
-
-    .cb-item {
-        margin-top: 12px;
-        width: 240px;
-    }
-
-    .fdp-chart {
-        width: 100%;
-        height: 32.407vh;
-    }
-}
-</style>

+ 0 - 355
src/views/malfunctionRecall/index.vue

@@ -1,355 +0,0 @@
-<template>
-  <div class="knowledge-2">
-    <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="wpId"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-              @change="
-                (wpId) => {
-                  getWt(wpId, true);
-                }
-              "
-            >
-              <el-option
-                v-for="item in wpArray"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              />
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">风机:</div>
-          <div class="search-input">
-            <el-select
-              v-model="wtId"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in wtArray"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              />
-            </el-select>
-          </div>
-        </div>
-        <!-- <div class="query-item">
-          <div class="lable">类型:</div>
-          <div class="search-input">
-            <el-select
-              v-model="type"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in typeArray"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              />
-            </el-select>
-          </div>
-        </div> -->
-        <div class="query-item">
-          <div class="query-item">
-            <div class="lable">开始日期:</div>
-            <div class="search-input">
-              <el-date-picker
-                v-model="value1"
-                @change="BeginChange(value1)"
-                type="date"
-                value-format="YYYY-MM-DD"
-                placeholder="选择日期"
-                popper-class="date-select"
-              >
-              </el-date-picker>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">结束日期:</div>
-            <div class="search-input">
-              <el-date-picker
-                v-model="value2"
-                @change="EndChange(value2)"
-                type="date"
-                value-format="YYYY-MM-DD"
-                placeholder="选择日期"
-                popper-class="date-select"
-              >
-              </el-date-picker>
-              <div class="unit svg-icon svg-icon-gray">
-                <svg-icon :svgid="''" />
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions" style="margin-right: 1500px">
-        <button class="btn green" @click="onClickSearch">查询</button>
-      </div>
-    </div>
-    <div>
-      <ComTable :data="tableData" height="85vh"></ComTable>
-    </div>
-    <div>
-      <el-dialog
-        title="故障诊断"
-        v-model="dialogVisible"
-        width="1400px"
-        top="10vh"
-        custom-class="modal hide-header"
-        :close-on-click-modal="false"
-        :before-close="onClickDialogClose"
-      >
-        <fault-diagnosis :data="rowitem" ref="rowitemS" :key="componentKey" />
-      </el-dialog>
-    </div>
-  </div>
-</template>
-
-<script>
-import ComTable from "@com/coms/table/table.vue";
-import FaultDiagnosis from "./components/fault-diagnosis.vue";
-import api from "@api/wisdomOverhaul/fault/index.js";
-import api1 from "@api/economic/index.js";
-
-export default {
-  components: { ComTable, FaultDiagnosis },
-  data() {
-    const that = this;
-    return {
-      componentKey: 0,
-      value1: "",
-      value2: "",
-      wpId: "",
-      wpArray: [],
-      rowitem: "",
-      wpName: "",
-      wtId: "A01",
-      type: "2",
-      dialogVisible: false,
-      tableData: {
-        column: [
-          {
-            name: "场站",
-            field: "wpName",
-            is_num: true,
-            is_light: false,
-          },
-          {
-            name: "机组",
-            field: "windTurbineId",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "开始时刻",
-            field: "stopTime",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "结束时刻",
-            field: "startTime",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "停机小时数(h)",
-            field: "stopHours",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "停机类型",
-            field: "warnDesc",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "损失电量(kWh)",
-            field: "lossPower",
-            is_num: false,
-            is_light: false,
-          },
-          {
-            name: "操作",
-            field: "",
-            is_num: false,
-            is_light: false,
-            template() {
-              return "<el-button type='text' style='cursor: pointer;'>回溯</el-button>";
-            },
-            click(e, row) {
-              that.onClickOption(row);
-            },
-          },
-        ],
-        data: [],
-      },
-    };
-  },
-  created() {
-    this.value1 = new Date(new Date().getTime() - 3600 * 1000 * 24).formatDate(
-      "yyyy-MM-dd"
-    );
-    this.value2 = this.getTime(2);
-    this.getWp();
-
-    this.requestSafeList();
-  },
-  methods: {
-    getTime(val) {
-      //时间戳处理,val=1是默认开始时间(当前月第一天),val=2是默认结束时间(今天)
-      var date = new Date();
-      var year = date.getFullYear(),
-        month = date.getMonth() + 1,
-        day = date.getDate();
-      month >= 1 && month <= 9 ? (month = "0" + month) : "";
-      day >= 0 && day <= 9 ? (day = "0" + day) : "";
-      var begin = year + "-" + month + "-01";
-      var end = year + "-" + month + "-" + day;
-      if (val == 1) {
-        return begin;
-      } else if (val == 2) {
-        return end;
-      }
-    },
-    // 获取风场
-    getWp(reGetWp) {
-      api1.benchmarkingWplist().then((res) => {
-        this.wpArray = res.data;
-        this.wpId = res.data[0].id;
-        this.wpName = res.data[0].wpName;
-        this.getWt(this.wpId, reGetWp);
-        this.requestSafeList();
-      });
-    },
-
-    // 获取风机
-    getWt(wpid, reGetWp) {
-      // let that = this;
-      if (this.wpId) {
-        // api1
-        //   .benchmarkingWtList({
-        //     wpId: wpid,
-        //   })
-        //   .then((res) => {
-        //     this.wtArray = res.data;
-        //     // that.wtId = res.data[0].id;
-        //   });
-
-
-
-        api1
-          .powercompareWindturbineAjax({
-            wpId: wpid,
-          })
-          .then((res) => {
-            this.wtArray = res.data;
-          });
-
-
-      }
-    },
-    BeginChange(vl) {
-      this.value1 = vl;
-    },
-    EndChange(vl) {
-      this.value2 = vl;
-    },
-    typeChange(vl) {
-      this.type = vl;
-    },
-    // 搜索按钮
-    onClickSearch() {
-      this.requestSafeList();
-    },
-    // 获取停机事件
-    requestSafeList() {
-      let that = this;
-
-      let data = {
-        tablepar: {
-          pageNum: 1,
-          pageSize: 1000,
-        },
-        beginDate: that.value1,
-        endDate: that.value2,
-        wpId: that.wpId,
-        type: 2,
-        wtId: "CL01_001",
-      };
-
-      if (that.wtId != "A01") {
-        data.wtId = that.wtId;
-      }
-      if (that.type != "") data.type = that.type;
-
-      api.eventGetShutdownevent(data).then((res) => {
-        if (res.code == 200) {
-          this.tableData.data = [];
-          if (res.data.list.length) {
-            let data = res.data.list;
-            for (var i = 0; i < data.length; i++) {
-              let obj = {
-                wpName: data[i].wpName,
-                windTurbineId: data[i].windTurbineId,
-                stopTime: new Date(data[i].stopTime).formatDate(
-                  "yyyy-MM-dd hh:mm:ss"
-                ),
-
-                stopHours: data[i].stopHours,
-                statusName: data[i].statusName,
-                warnDesc: data[i].warnDesc,
-                lossPower: data[i].lossPower,
-                handleWay: data[i].handleWay,
-              };
-              if (data[i].startTime)
-                obj.startTime = new Date(data[i].startTime).formatDate(
-                  "yyyy-MM-dd hh:mm:ss"
-                );
-              this.tableData.data.push(obj);
-            }
-          }
-        }
-      });
-    },
-    // 回放按钮
-    onClickOption(row) {
-      this.rowitem = row;
-      this.dialogVisible = true;
-      this.componentKey += 1;
-    },
-    // 关闭弹窗
-    onClickDialogClose() {
-      this.dialogVisible = false;
-    },
-  },
-};
-</script>
-
-<style lang="less" scope>
-@titleGray: #9ca5a8;
-@rowGray: #606769;
-@darkBack: #536268;
-.knowledge-2 {
-  .el-select {
-    width: 200px;
-  }
-  .el-input {
-    width: 200px;
-  }
-}
-</style>

+ 0 - 230
src/views/malfunctionStatistics/index.vue

@@ -1,230 +0,0 @@
-<template>
-  <div class="draught-fan-list">
-    <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="wpId" clearable placeholder="请选择" popper-class="select">
-              <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">日期:</div>
-          <div class="search-input">
-            <el-date-picker v-model="recorddate" type="date" value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
-            </el-date-picker>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="search()">查询</button>
-      </div>
-    </div>
-    <div class="df-table curTable">
-      <el-table class="custom-table" :data="tableData.data" height="88vh" max-height="88vh" stripe style="width: 100%" :border="true">
-        <el-table-column :show-overflow-tooltip="true" prop="wtname" width="150px" label="风机"></el-table-column>
-        <el-table-column :show-overflow-tooltip="true" :label="tableTitle">
-          <el-table-column :show-overflow-tooltip="true" label="近一天">
-            <el-table-column :show-overflow-tooltip="true" label="1">
-              <el-table-column :show-overflow-tooltip="true" prop="day1top1name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day1top1" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-            <el-table-column :show-overflow-tooltip="true" label="2">
-              <el-table-column :show-overflow-tooltip="true" prop="day1top2name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day1top2" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-            <el-table-column :show-overflow-tooltip="true" label="3">
-              <el-table-column :show-overflow-tooltip="true" prop="day1top3name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day1top3" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-          </el-table-column>
-          <el-table-column :show-overflow-tooltip="true" label="近三天">
-            <el-table-column :show-overflow-tooltip="true" label="1">
-              <el-table-column :show-overflow-tooltip="true" prop="day3top1name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day3top1" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-            <el-table-column :show-overflow-tooltip="true" label="2">
-              <el-table-column :show-overflow-tooltip="true" prop="day3top2name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day3top2" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-            <el-table-column :show-overflow-tooltip="true" label="3">
-              <el-table-column :show-overflow-tooltip="true" prop="day3top3name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day3top3" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-          </el-table-column>
-          <el-table-column :show-overflow-tooltip="true" label="近七天">
-            <el-table-column :show-overflow-tooltip="true" label="1">
-              <el-table-column :show-overflow-tooltip="true" prop="day7top1name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day7top1" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-            <el-table-column :show-overflow-tooltip="true" label="2">
-              <el-table-column :show-overflow-tooltip="true" prop="day7top2name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day7top2" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-            <el-table-column :show-overflow-tooltip="true" label="3">
-              <el-table-column :show-overflow-tooltip="true" prop="day7top3name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day7top3" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-          </el-table-column>
-          <el-table-column :show-overflow-tooltip="true" label="近十五天">
-            <el-table-column :show-overflow-tooltip="true" label="1">
-              <el-table-column :show-overflow-tooltip="true" prop="day15top1name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day15top1" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-            <el-table-column :show-overflow-tooltip="true" label="2">
-              <el-table-column :show-overflow-tooltip="true" prop="day15top2name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day15top2" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-            <el-table-column :show-overflow-tooltip="true" label="3">
-              <el-table-column :show-overflow-tooltip="true" prop="day15top3name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="day15top3" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-          </el-table-column>
-          <el-table-column :show-overflow-tooltip="true" label="近一个月">
-            <el-table-column :show-overflow-tooltip="true" label="1">
-              <el-table-column :show-overflow-tooltip="true" prop="month1top1name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="month1top1" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-            <el-table-column :show-overflow-tooltip="true" label="2">
-              <el-table-column :show-overflow-tooltip="true" prop="month1top2name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="month1top2" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-            <el-table-column :show-overflow-tooltip="true" label="3">
-              <el-table-column :show-overflow-tooltip="true" prop="month1top3name" label="故障" width="200px"></el-table-column>
-              <el-table-column :show-overflow-tooltip="true" prop="month1top3" label="频次" :sortable="true" width="150px"></el-table-column>
-            </el-table-column>
-          </el-table-column>
-        </el-table-column>
-      </el-table>
-    </div>
-    <el-dialog title="切入切出风速整合历史" v-model="dialogShow" width="85%" top="10vh" custom-class="modal"
-      :close-on-click-modal="true" @closed="dialogType = ''">
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import apis from "@api/wisdomOverhaul/health/index.js";
-import api from "@api/wisdomOverhaul/reliability/index.js";
-export default {
-  // 名称
-  name: "cutAnalyse",
-
-  // 数据
-  data () {
-    const that = this;
-    return {
-      isAsc: "asc",
-      wpArray: [],
-      wpId: "",
-      recorddate: new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
-      tableTitle: "",
-      tableData: {
-        column: [
-          {
-            name: "风机",
-            field: "windturbineid",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          }
-        ],
-        data: [],
-      },
-    };
-  },
-
-  // 函数
-  methods: {
-    // 请求服务
-    requestData () {
-      apis.powercompareWindfarmAjax().then((res) => {
-        this.wpArray = res.data;
-        this.wpId = res.data[0].id;
-        this.getTableData();
-      });
-    },
-
-    getTableData () {
-      if (!this.wpId || !this.recorddate) {
-        this.BASE.showMsg({
-          msg: "场站与日期不可为空"
-        });
-      } else {
-        api
-          .failurestatistics({
-            wpid: this.wpId,
-            date: this.recorddate,
-          })
-          .then((res) => {
-            if (res.data) {
-              this.tableTitle = res.data[0].wpname + "故障统计";
-              this.tableData.data = res.data;
-            }
-          });
-      }
-    },
-
-    search () {
-      this.getTableData();
-    }
-  },
-
-  created () {
-    this.requestData();
-  },
-
-  mounted () { },
-
-  unmounted () { },
-};
-</script>
-
-<style lang="less" scoped>
-.draught-fan-list {
-  width: 100%;
-  height: 100%;
-  display: flex;
-  flex-direction: column;
-
-  .btn-group-tabs {
-    display: flex;
-    flex-direction: row;
-
-    .photovoltaic {
-      margin-left: 1.481vh;
-    }
-  }
-
-  .df-table {
-    border: 0.093vh solid fade(@darkgray, 50%);
-    position: relative;
-    overflow: auto;
-    flex-grow: 1;
-    margin-top: 1.481vh;
-
-    &:before {
-      content: '';
-      width: 0.37vh;
-      height: 0.37vh;
-      background: @write;
-      position: absolute;
-      left: 0.278vh;
-      top: 0.278vh;
-    }
-
-    tbody {
-      height: calc(100vh - 166px);
-    }
-  }
-}
-</style>
-<style lang="less">
-.curTable {
-  .cell {
-    text-align: center;
-  }
-}
-</style>

+ 0 - 133
src/views/overhaulRule/index.vue

@@ -1,133 +0,0 @@
-<template>
-  <div class="ruleBox">
-    <div class="radioBox">
-      <el-radio-group v-model="maintenanceType" @change="getTableData">
-        <el-radio
-          :label="item.code"
-          v-for="(item, index) in radioArray"
-          :key="index"
-          >{{ item.widget }}</el-radio
-        >
-      </el-radio-group>
-    </div>
-    <div class="tableBox">
-      <el-table
-        height="100%"
-        ref="multipleTable"
-        empty-text="暂无数据"
-        :data="tableData"
-        :header-cell-style="{
-          height: '40px',
-          background: 'rgba(83, 98, 104, 0.2)',
-          color: '#b2bdc0',
-          'border-bottom': '0px solid red',
-        }"
-        :cell-style="{
-          height: '40px',
-          'border-bottom': 'solid 0px #242424',
-        }"
-        stripe
-        style="width: 100%; margin-bottom: 10px"
-      >
-        <el-table-column
-          type="index"
-          width="150"
-          align="center"
-          label="检修步骤"
-        />
-        <el-table-column
-          prop="widget"
-          label="检修类型"
-          width="150"
-          align="center"
-        ></el-table-column>
-        <el-table-column
-          prop="process"
-          label="检修过程"
-          align="left"
-        ></el-table-column>
-      </el-table>
-      
-    </div>
-  </div>
-</template>
-<script>
-export default {
-  data() {
-    return {
-      maintenanceType: 3,
-      radioArray: [],
-      tableData: [],
-      knowledge: "故障维修记录库",
-      knowledgeList: [
-        {
-          label: "故障维修记录库",
-          value: "0",
-        },
-      ],
-    };
-  },
-  components: {},
-  created() {
-    this.getMaintenance();
-  },
-  methods: {
-    getMaintenance() {
-      let that = this;
-      this.API.requestData({
-        method: "GET",
-        baseURL: "http://192.168.1.18:9002/",
-        subUrl: "know/maintenance/type",
-        success(res) {
-          that.radioArray = res.data;
-          that.maintenanceType = res?.data[0]?.code;
-          that.getTableData();
-        },
-      });
-    },
-    getTableData() {
-      let that = this;
-      this.API.requestData({
-        method: "GET",
-        baseURL: "http://192.168.1.18:9002/",
-        subUrl: "know/maintenance/list",
-        data: {
-          code: that.maintenanceType,
-        },
-        success(res) {
-          that.tableData = res.data;
-        },
-      });
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.ruleBox {
-  display: flex;
-  width: 100%;
-  height: 100%;
-  align-items: center;
-
-  .radioBox {
-    width: 20%;
-    height: 80%;
-    max-height: 80%;
-    margin: 10% 0 10% 20px;
-    overflow-y: scroll;
-    display: flex;
-    justify-content: flex-start;
-    align-items: flex-start;
-
-    .el-radio {
-      display: block;
-    }
-  }
-
-  .tableBox {
-    width: 80%;
-    height: 80%;
-    margin: 10% 20px;
-  }
-}
-</style>

+ 0 - 544
src/views/planPower/index.vue

@@ -1,544 +0,0 @@
-<template>
-  <div class="draught-fan-list" id="draughtFan">
-    <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="wpId" clearable placeholder="请选择" popper-class="select" @change="getProject(true)">
-              <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">项目:</div>
-          <div class="search-input">
-            <el-select v-model="projectId" clearable placeholder="请选择" popper-class="select">
-              <el-option v-for="item in projectArray" :key="item.id" :value="item.id" :label="item.name" />
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">日期:</div>
-          <div class="search-input">
-            <el-date-picker v-model="recorddate" type="year" value-format="YYYY" placeholder="选择日期" popper-class="date-select">
-            </el-date-picker>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="search()">查询</button>
-        <button class="btn green" @click="dialogShow = true">新增</button>
-        <button class="btn green" @click="exportExcel()" v-if="tableData.data.length">导出</button>
-      </div>
-    </div>
-    <div class="df-table">
-      <ComTable height="78vh" :data="tableData"></ComTable>
-    </div>
-    <el-dialog title="新增计划发电量" v-model="dialogShow" width="85%" top="10vh" custom-class="modal curDialog"
-      :close-on-click-modal="false" @closed="resetForm">
-      <el-form ref="form" :model="form" :rules="rules" inline label-width="80px">
-        <el-form-item label="场站" prop="submitWpId">
-          <el-select v-model="form.submitWpId" clearable placeholder="请选择" popper-class="select" @change="reGetProject()">
-            <el-option v-for="item in wpArray" :key="item.id" :value="item.id" :label="item.name" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="项目" prop="submitProjectId">
-          <el-select v-model="form.submitProjectId" clearable placeholder="请选择" popper-class="select">
-            <el-option v-for="item in projectArray2" :key="item.id" :value="item.id" :label="item.name" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="时间" prop="submitData">
-          <el-date-picker v-model="form.submitData" type="year" value-format="YYYY" placeholder="选择日期" popper-class="date-select">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item class="curFlex" label="1月份计划发电量(万kWh):" prop="gc01">
-          <el-input v-model="form.gc01"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="2月份计划发电量(万kWh):" prop="gc02">
-          <el-input v-model="form.gc02"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="3月份计划发电量(万kWh):" prop="gc03">
-          <el-input v-model="form.gc03"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="4月份计划发电量(万kWh):" prop="gc04">
-          <el-input v-model="form.gc04"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="5月份计划发电量(万kWh):" prop="gc05">
-          <el-input v-model="form.gc05"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="6月份计划发电量(万kWh):" prop="gc06">
-          <el-input v-model="form.gc06"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="7月份计划发电量(万kWh):" prop="gc07">
-          <el-input v-model="form.gc07"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="8月份计划发电量(万kWh):" prop="gc08">
-          <el-input v-model="form.gc08"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="9月份计划发电量(万kWh):" prop="gc09">
-          <el-input v-model="form.gc09"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="10月份计划发电量(万kWh):" prop="gc10">
-          <el-input v-model="form.gc10"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="11月份计划发电量(万kWh):" prop="gc11">
-          <el-input v-model="form.gc11"></el-input>
-        </el-form-item>
-        <el-form-item class="curFlex" label="12月份计划发电量(万kWh):" prop="gc12">
-          <el-input v-model="form.gc12"></el-input>
-        </el-form-item>
-      </el-form>
-      <template #footer>
-        <span class="dialog-footer">
-          <button class="btn green" @click="submit">提交</button>
-          <button class="btn green" @click="dialogShow = false">取消</button>
-        </span>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import ComTable from "@com/coms/table/table.vue";
-export default {
-  // 名称
-  name: "cutAnalyse",
-
-  // 使用组件
-  components: {
-    ComTable
-  },
-
-  // 数据
-  data () {
-    const that = this;
-    return {
-      isAsc: "asc",
-      wpArray: [],
-      wpId: "",
-      projectArray: [],
-      projectId: "",
-      projectArray2: [],
-      recorddate: new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy"),
-      dialogShow: false,
-      tableData: {
-        column: [
-          {
-            name: "名称",
-            field: "projectName",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "年",
-            field: "year",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "1月",
-            field: "gc01",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "2月",
-            field: "gc02",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "3月",
-            field: "gc03",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "4月",
-            field: "gc04",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "5月",
-            field: "gc05",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "6月",
-            field: "gc06",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "7月",
-            field: "gc07",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "8月",
-            field: "gc08",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "9月",
-            field: "gc09",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "10月",
-            field: "gc10",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "11月",
-            field: "gc11",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "12月",
-            field: "gc12",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "合计",
-            field: "generatingcapacity",
-            is_num: false,
-            is_light: false,
-            sortable: true
-          },
-          {
-            name: "操作",
-            field: "generatingcapacity",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-            template () {
-              return "<el-button type='text' style='cursor: pointer;'>编辑</el-button>";
-            },
-            click (e, row) {
-              that.editData(row)
-            }
-          }
-        ],
-        data: [],
-      },
-      form: {
-        outagehours: 0.0,
-        submitWpId: "",
-        submitProjectId: "",
-        submitData: "",
-        gc01: "",
-        gc02: "",
-        gc03: "",
-        gc04: "",
-        gc05: "",
-        gc06: "",
-        gc07: "",
-        gc08: "",
-        gc09: "",
-        gc10: "",
-        gc11: "",
-        gc12: "",
-      },
-      rules: {
-        submitWpId: [
-          { required: true, message: '请选择场站', trigger: 'change' },
-        ],
-        submitProjectId: [
-          { required: true, message: '请选择项目', trigger: 'change' },
-        ],
-        submitData: [
-          { required: true, message: '请选择时间', trigger: 'change' },
-        ],
-        gc01: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc02: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc03: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc04: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc05: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc06: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc07: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc08: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc09: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc10: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc11: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-        gc12: [
-          { required: true, validator: this.BASE.elCkeck.isNumber, trigger: 'change' },
-        ],
-      }
-    };
-  },
-
-  // 函数
-  methods: {
-    // 请求服务
-    requestData () {
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        subUrl: "powercompare/windfarmAllAjax",
-        success (res) {
-          that.wpArray = res.data;
-          that.wpId = that.wpId || res.data[0].id;
-          that.getProject();
-        }
-      });
-    },
-
-    // 获取期数
-    getProject (skipRequest) {
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        subUrl: "powercompare/projectAjax",
-        data: {
-          wpIds: that.wpId
-        },
-        success (res) {
-          that.projectArray = res.data;
-          that.projectArray2 = res.data;
-          that.projectId = res.data[0].id;
-          if (!skipRequest) {
-            that.getTableData();
-          }
-        }
-      });
-    },
-
-    // 弹窗获取期数
-    reGetProject (wpIds = this.form.submitWpId) {
-      let that = this;
-      that.API.requestData({
-        method: "GET",
-        subUrl: "powercompare/projectAjax",
-        data: {
-          wpIds
-        },
-        success (res) {
-          that.projectArray2 = res.data;
-          that.form.submitProjectId = res.data[0].id
-          that.dialogShow = true;
-        }
-      });
-    },
-
-    getTableData () {
-      let that = this;
-      if (!that.recorddate) {
-        that.BASE.showMsg({
-          msg: "时间不可为空"
-        });
-      } else {
-        that.API.requestData({
-          method: "POST",
-          subUrl: "projectplan/getProjectPlanVo",
-          data: {
-            isAsc: that.isAsc,
-            wpId: that.wpId || "",
-            pjId: that.projectId || "",
-            year: new Date(that.recorddate).getFullYear()
-          },
-          success (res) {
-            that.tableData.data = res.data;
-          }
-        });
-      }
-    },
-
-    // 导出excel
-    exportExcel () {
-      this.BASE.exportExcel(this.tableData);
-    },
-
-    submit () {
-      let that = this;
-      that.$refs.form.validate((valid) => {
-        if (valid) {
-          let data = that.BASE.deepCopy(that.form);
-          data.windpower = that.form.submitWpId;
-          data.projectid = that.form.submitProjectId;
-          data.year = new Date(that.form.submitData).getFullYear();
-          data.generatingcapacity = (parseFloat(data.gc01) + parseFloat(data.gc02) + parseFloat(data.gc03) + parseFloat(data.gc04) + parseFloat(data.gc05) + parseFloat(data.gc06) + parseFloat(data.gc07) + parseFloat(data.gc08) + parseFloat(data.gc09) + parseFloat(data.gc10) + parseFloat(data.gc11) + parseFloat(data.gc12));
-          that.API.requestData({
-            method: "POST",
-            subUrl: "projectplan/saveData",
-            data,
-            success (res) {
-              that.getTableData();
-              that.BASE.showMsg({
-                type: "success",
-                msg: "保存成功"
-              });
-              that.dialogShow = false;
-            }
-          });
-        } else {
-          return false;
-        }
-      });
-    },
-
-    editData (item) {
-      let that = this;
-      that.API.requestData({
-        method: "POST",
-        subUrl: "projectplan/getSingleProjectPlan",
-        data: {
-          pjId: item.projectid,
-          year: item.year
-        },
-        success (res) {
-          that.reGetProject(res.data.windpower || "");
-          that.form = res.data;
-          that.form.submitWpId = res.data.windpower;
-          that.form.submitProjectId = res.data.projectid;
-          that.form.submitData = res.data.year;
-          that.form.outagehours = 0.0;
-          that.dialogShow = true;
-        }
-      });
-    },
-
-    resetForm () {
-      for (let key in this.form) {
-        if(key === "outagehours"){
-          this.form[key] = 0.0;
-        }
-        this.form[key] = "";
-      }
-      this.$refs.form.resetFields();
-    },
-
-    search () {
-      this.getTableData();
-    }
-  },
-
-  created () {
-    this.requestData();
-  },
-
-  mounted () { },
-
-  unmounted () { },
-};
-</script>
-
-<style lang="less" scoped>
-.draught-fan-list {
-  width: 100%;
-  height: 100%;
-  display: flex;
-  flex-direction: column;
-
-  .btn-group-tabs {
-    display: flex;
-    flex-direction: row;
-
-    .photovoltaic {
-      margin-left: 1.481vh;
-    }
-  }
-
-  .df-table {
-    border: 0.093vh solid fade(@darkgray, 50%);
-    position: relative;
-    overflow: auto;
-    flex-grow: 1;
-    margin-top: 1.481vh;
-
-    &:before {
-      content: '';
-      width: 0.37vh;
-      height: 0.37vh;
-      background: @write;
-      position: absolute;
-      left: 0.278vh;
-      top: 0.278vh;
-    }
-
-    tbody {
-      height: calc(100vh - 166px);
-    }
-  }
-}
-</style>
-<style lang="less">
-.el-form {
-  .el-form-item {
-    margin-bottom: 30px;
-  }
-  .el-form-item.curFlex {
-    width: 100%;
-    .el-form-item__label {
-      width: 210px !important;
-    }
-    .el-form-item__content {
-      display: flex;
-      justify-content: flex-start;
-      align-items: center;
-      width: 100%;
-    }
-  }
-}
-
-.curDialog {
-  #draughtFan .el-dialog__body {
-    max-height: 600px;
-    overflow-y: scroll;
-  }
-
-  .dialog-footer {
-    width: 100%;
-    margin-top: 20px;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-  }
-}
-</style>
-

+ 0 - 726
src/views/realSearch/index.vue

@@ -1,726 +0,0 @@
-<template>
-  <div>
-    <div class="query mg-b-8">
-      <div class="query-items">
-        <div class="query-item">
-          <div class="lable">点名:</div>
-          <div class="search-input">
-            <el-input
-              style="width: 250px"
-              placeholder="请输入点名"
-              size="middle"
-              v-model="form.pointId"
-              clearable
-            ></el-input>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">描述:</div>
-          <div class="search-input">
-            <el-input
-              placeholder="请输入描述"
-              size="middle"
-              v-model="form.pointName"
-              clearable
-            ></el-input>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable"></div>
-          <div class="search-input">
-            <el-checkbox
-              v-model="form.autoReq"
-              label="刷新"
-              border
-              @change="reReqAjax"
-            ></el-checkbox>
-          </div>
-        </div>
-      </div>
-      <div class="query-actions">
-        <button class="btn green" @click="getTableData">查询</button>
-        <button class="btn green" @click="exportExcel('tableData')">
-          导出
-        </button>
-      </div>
-    </div>
-    <div class="searchPage">
-      <div style="width: 200px; height: 100vh">
-        <CollapseList
-          :list="menus"
-          @click="clickMenu"
-          @onClick="handleClick"
-        />
-      </div>
-      <div class="df-table">
-        <ComTable
-          height="78vh"
-          :data="tableData"
-          :pageSize="20"
-          @onPagging="onChangePage"
-        ></ComTable>
-      </div>
-    </div>
-    <el-dialog
-      title="查看详情"
-      v-model="showDialog"
-      width="85%"
-      top="10vh"
-      custom-class="modal"
-      :close-on-click-modal="true"
-      @closed="
-        (res) => {
-          pointId = '';
-        }
-      "
-    >
-      <div class="query mg-b-8">
-        <div class="query-items">
-          <div class="query-item">
-            <div class="lable">点名:</div>
-            <div class="search-input">
-              <el-input
-                readonly
-                style="width: 300px"
-                size="middle"
-                v-model="pointId"
-                clearable
-              ></el-input>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">日期:</div>
-            <div class="search-input">
-              <el-date-picker
-                size="medium"
-                v-model="form.dateArea"
-                type="datetimerange"
-                :picker-options="pickerOptions"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                align="right"
-                @change="
-                  (res) => {
-                    getDatePickerChange(res);
-                  }
-                "
-              >
-              </el-date-picker>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">间隔:</div>
-            <div class="search-input">
-              <el-input
-                placeholder="请输入间隔"
-                clearable
-                v-model="form.interval"
-                type="number"
-              ></el-input>
-            </div>
-          </div>
-        </div>
-        <div class="query-actions">
-          <button class="btn green" @click="getDetails">查询</button>
-          <button
-            class="btn green"
-            @click="exportExcel('detailsTableData')"
-            v-if="detailsTableData.data.length"
-          >
-            导出
-          </button>
-          <button
-            class="btn green"
-            @click="renderCharts"
-            v-if="detailsTableData.data.length"
-          >
-            查看折线图
-          </button>
-        </div>
-      </div>
-      <ComTable height="50vh" :data="detailsTableData"></ComTable>
-    </el-dialog>
-    <el-dialog
-      title="查看折线图"
-      v-model="chartDialogShow"
-      width="60%"
-      top="10vh"
-      custom-class="modal"
-      :close-on-click-modal="true"
-    >
-      <div id="lineChart" style="width: 100%; height: 500px"></div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import CollapseList from "@com/coms/collapse/collapse-list.vue";
-import ComTable from "@com/coms/table/table.vue";
-import * as echarts from "echarts";
-import api from "@api/economic/index.js";
-
-export default {
-  data() {
-    const that = this;
-    return {
-      menus: [],
-      tableid: "",
-      pointId: "",
-      form: {
-        pointId: "",
-        pointName: "",
-        autoReq: false,
-        dateArea: [
-          this.fmtDate(
-            new Date(
-              new Date().setTime(new Date().getTime() - 3600 * 1000 * 24)
-            )
-          ),
-          this.fmtDate(new Date()),
-        ],
-        interval: "",
-      },
-      showDialog: false,
-      chartDialogShow: false,
-      tableData: {
-        column: [
-          {
-            name: "序号",
-            field: "index",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "点名",
-            field: "pointId",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "描述",
-            field: "pointName",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "值",
-            field: "value",
-            is_num: true,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "时间戳",
-            field: "timeDate",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "操作",
-            field: "",
-            is_num: false,
-            is_light: false,
-            template() {
-              return "<el-button type='text' style='cursor: pointer;'>详情</el-button>";
-            },
-            click(e, row) {
-              that.goDetails(row);
-            },
-          },
-        ],
-        data: [],
-      },
-      detailsTableData: {
-        column: [
-          {
-            name: "序号",
-            field: "index",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "时间戳",
-            field: "timeDate",
-            is_num: false,
-            is_light: false,
-            sortable: true,
-          },
-          {
-            name: "值",
-            field: "value",
-            is_num: true,
-            is_light: false,
-            sortable: true,
-          },
-        ],
-        data: [],
-      },
-      autoReqTimmer: null,
-
-      currentPage: 1,
-      pagesize: 10,
-      pagesizereal: 100,
-      currentPageTotal: 0,
-      pickerOptions: {
-        shortcuts: [
-          {
-            text: "最近一天",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近一周",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近一个月",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近三个月",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-        ],
-      },
-    };
-  },
-
-  components: {
-    CollapseList,
-    ComTable,
-  },
-
-  mounted() {
-    let that = this;
-    that.$nextTick(() => {
-      that.tableid = that.$route.query.tableid || "JSFW";
-      that.getMenuList();
-      that.getTableData();
-    });
-  },
-
-  unmounted() {
-    clearInterval(this.autoReqTimmer);
-    this.autoReqTimmer = null;
-  },
-
-  methods: {
-    // 获取左侧菜单
-    getMenuList() {
-      api.datacenterTables({}).then((res) => {
-        let JSFW = {
-          text: "计算服务",
-          children: [],
-        };
-        let CL_FDC = {
-          text: "崇礼",
-          children: [],
-        };
-        let KB_FDC = {
-          text: "康保",
-          children: [],
-        };
-        let DX_FDC = {
-          text: "代县",
-          children: [],
-        };
-        let SY_FDC = {
-          text: "寿阳",
-          children: [],
-        };
-        res.data.forEach((ele) => {
-          ele.text = ele.tablename;
-          if (ele.windpowerstationid === "CL_FDC") {
-            CL_FDC.children.push(ele);
-          } else if (ele.windpowerstationid === "KB_FDC") {
-            KB_FDC.children.push(ele);
-          } else if (ele.windpowerstationid === "DX_FDC") {
-            DX_FDC.children.push(ele);
-          } else if (ele.windpowerstationid === "SY_FDC") {
-            SY_FDC.children.push(ele);
-          } else {
-            // JSFW.children.push(ele);
-            JSFW = ele;
-          }
-        });
-        this.menus.push(JSFW, CL_FDC, KB_FDC, DX_FDC, SY_FDC);
-      });
-    },
-
-    // 获取表格数据
-    getTableData() {
-      api
-        .datacenterRealtimeData({
-          tableid: this.tableid,
-          pointId: this.form.pointId,
-          pointName: this.form.pointName || "",
-          pageNum: this.currentPage,
-          pageSize: this.pagesizereal,
-        })
-        .then((res) => {
-          res.data.forEach((ele, index) => {
-            ele.index = index + 1;
-            ele.timeDate = this.fmtDate(new Date(ele.time));
-            if (ele.value > 0) {
-              ele.value = parseFloat(ele.value).toFixed(4);
-            }
-          });
-          this.tableData.data = res.data || [];
-          this.currentPageTotal = res.count || [];
-        });
-    },
-
-    // index渲染函数
-    indexMethod(index) {
-      return index + 1;
-    },
-
-    // 查看详情按钮被点击
-    goDetails(row) {
-      this.pointId = row.pointId;
-      this.getDetails();
-    },
-
-    // 获取详情
-    getDetails() {
-      let that = this;
-      if (!that.form.dateArea || !that.form.dateArea.length) {
-        that.BASE.showMsg({
-          msg: "请先选择要查询的日期区间后再试",
-        });
-      } else {
-        let begin = this.form.dateArea.length
-          ? new Date(this.form.dateArea[0]).formatDate("yyyy-MM-dd hh:mm:ss")
-          : "";
-        let end = this.form.dateArea.length
-          ? new Date(this.form.dateArea[1]).formatDate("yyyy-MM-dd hh:mm:ss")
-          : "";
-
-        let data = {
-          pointId: that.pointId || "",
-          begin,
-          end,
-        };
-
-        if (this.form.interval) data.interval = that.form.interval;
-
-        api
-          .datacenterHistoryData({
-            pointId: this.pointId || "",
-            begin: begin,
-            end: end,
-          })
-          .then((res) => {
-            if (res.data.length) {
-              res.data.forEach((ele, index) => {
-                ele.index = index + 1;
-                ele.timeDate = this.fmtDate(new Date(ele.time));
-                if (ele.value > 0) {
-                  ele.value = parseFloat(ele.value).toFixed(4);
-                }
-              });
-              this.detailsTableData.data = res.data || [];
-            } else {
-              this.BASE.showMsg({
-                type: "warning",
-                msg: "所选日期区间之内暂无数据,请重试",
-              });
-            }
-            this.showDialog = true;
-          });
-      }
-    },
-
-    // 初始页currentPage、初始每页数据数pagesize和数据data
-    handleSizeChange: function (size) {
-      this.pagesize = size;
-    },
-    handleSizerealChange: function (size) {
-      this.currentPage = 1;
-      this.pagesizereal = size;
-      this.getTableData();
-    },
-    handleCurrentChange: function (currentPage) {
-      this.currentPage = currentPage;
-    },
-
-    // 导出excel
-    exportExcel(tableDataName) {
-      // let that = this;
-      if (tableDataName === "tableData") {
-        let tableid = this.tableid;
-        let pointId = this.form.pointId || "";
-        let pointName = this.form.pointName || "";
-        api
-          .datacenterRealtimeExport({
-            tableid: tableid,
-            pointId: pointId,
-            pointName: pointName,
-          })
-          .then((res) => {
-            const {
-              export_json_to_excel,
-            } = require("@tools/excel/Export2Excel.js"); // 注意这个Export2Excel路径
-            const tHeader = ["点名", "描述"]; // 上面设置Excel的表格第一行的标题
-            const filterVal = ["id", "name"]; // 上面的index、nickName、name是tableData里对象的属性key值
-            const list = res.data; //把要导出的数据tableData存到list
-            const data = this.formatJson(filterVal, list);
-            export_json_to_excel(tHeader, data, "导出的Excel"); // 最后一个是表名字
-          });
-      } else {
-        const {
-          export_json_to_excel,
-        } = require("@tools/excel/Export2Excel.js"); // 注意这个Export2Excel路径
-        const tHeader = ["点名", "描述", "时间戳", "值"]; // 上面设置Excel的表格第一行的标题
-        const filterVal = ["pointId", "pointName", "timeDate", "value"]; // 上面的index、nickName、name是tableData里对象的属性key值
-        const list = this[tableDataName].data; //把要导出的数据tableData存到list
-        const data = this.formatJson(filterVal, list);
-        export_json_to_excel(tHeader, data, "导出的Excel"); // 最后一个是表名字
-      }
-    },
-
-    formatJson(filterVal, jsonData) {
-      return jsonData.map((v) => filterVal.map((j) => v[j]));
-    },
-
-    // 刷新开关
-    reReqAjax() {
-      clearInterval(this.autoReqTimmer);
-      this.autoReqTimmer = null;
-      if (this.form.autoReq) {
-        this.BASE.showMsg({
-          type: "success",
-          msg: "已开启自动刷新数据,每间隔 1 秒自动刷新一次数据",
-        });
-        this.autoReqTimmer = setInterval(() => {
-          this.getTableData(true);
-        }, 1000);
-      } else {
-        this.BASE.showMsg({
-          type: "warning",
-          msg: "已关闭自动刷新数据",
-        });
-      }
-    },
-
-    // 分页器每页数量修改
-    getPaginationSize(value) {
-      this.currentPageSize = value;
-      this.getDetails();
-    },
-
-    // 分页器页数修改
-    getPaginationCurrent(value) {
-      this.currentPage = value;
-      this.getTableData();
-    },
-
-    onChangePage(page) {
-      this.getPaginationCurrent(page.pageIndex);
-    },
-
-    // 获取选中的时间
-    getDatePickerChange(value) {
-      this.detailsTableData.data = [];
-    },
-
-    // 渲染折线图
-    renderCharts() {
-      this.chartDialogShow = true;
-      this.$nextTick(() => {
-        let xAxisData = [];
-        let seriesData = [];
-
-        this.detailsTableData.data.forEach((ele) => {
-          xAxisData.push(ele.timeDate);
-          seriesData.push(ele.value);
-        });
-        document
-          .getElementById("lineChart")
-          .removeAttribute("_echarts_instance_");
-        let chartDom = document.getElementById("lineChart");
-        let myChart = echarts.init(chartDom);
-
-        let option = {
-          xAxis: {
-            type: "category",
-            data: xAxisData,
-          },
-          yAxis: {
-            type: "value",
-          },
-          series: [
-            {
-              data: seriesData,
-              type: "line",
-              smooth: true,
-              name: "值",
-            },
-          ],
-          tooltip: {
-            trigger: "axis",
-            axisPointer: {
-              type: "cross",
-              label: {
-                backgroundColor: "#6a7985",
-              },
-            },
-          },
-        };
-        option && myChart.setOption(option);
-      });
-    },
-
-    // 格式化日期
-    fmtDate(date) {
-      let curDate = date || new Date();
-      let year = curDate.getFullYear();
-      let mouth = curDate.getUTCMonth() + 1;
-      let day = curDate.getDate();
-      let hour = curDate.getHours();
-      let minutes = curDate.getMinutes();
-      let seconds = curDate.getSeconds();
-      return (
-        year +
-        "-" +
-        (mouth < 10 ? "0" + mouth : mouth) +
-        "-" +
-        (day < 10 ? "0" + day : day) +
-        " " +
-        (hour < 10 ? "0" + hour : hour) +
-        ":" +
-        (minutes < 10 ? "0" + minutes : minutes) +
-        ":" +
-        (seconds < 10 ? "0" + seconds : seconds)
-      );
-    },
-
-    // 点击左侧菜单
-    clickMenu(item) {
-      // console.log(item);
-      this.tableid = item.tableid;
-      this.getTableData();
-    },
-    handleClick() {
-      this.tableid = "JSFW";
-      this.getTableData();
-    },
-  },
-};
-</script>
-  
-<style lang="less" scoped>
-.jsfw {
-  width: 200px;
-  height: 37px;
-  background-color: rgb(30, 37, 36);
-  padding: 7px;
-  box-sizing: border-box;
-  padding-left: 14px;
-  cursor: pointer;
-}
-.jsfw:hover {
-  color: #fff;
-  background: rgba(75, 85, 174, 0.6);
-}
-.searchBox {
-  width: 80%;
-  display: flex;
-  justify-content: flex-start;
-  align-items: center;
-  position: relative;
-
-  .btnBox {
-    position: absolute;
-    left: calc(100% + 20px);
-    top: 0;
-    display: flex;
-    justify-content: flex-start;
-    align-items: center;
-  }
-
-  .el-input {
-    width: 150px;
-  }
-}
-
-.tableBox {
-  margin-top: 10px;
-}
-
-.paginationBox {
-  width: 100%;
-  margin-top: 20px;
-  display: flex;
-  justify-content: flex-end;
-  align-items: center;
-}
-
-.df-table {
-  border: 0.093vh solid fade(@darkgray, 50%);
-  position: relative;
-  overflow: auto;
-  width: calc(100% - 220px);
-  height: 87vh;
-  margin-left: 20px;
-
-  &:before {
-    content: "";
-    width: 0.37vh;
-    height: 0.37vh;
-    background: @write;
-    position: absolute;
-    left: 0.278vh;
-    top: 0.278vh;
-  }
-
-  tbody {
-    height: calc(100vh - 166px);
-  }
-}
-</style>
-<style lang="less">
-.tableBox {
-  .cell {
-    text-align: center;
-  }
-}
-.searchPage {
-  margin-top: 1.481vh;
-  display: flex;
-  justify-content: flex-start;
-  align-items: flex-start;
-  width: 100%;
-
-  .el-dialog__body {
-    padding: 10px 20px;
-    max-height: 570px;
-    overflow: hidden;
-  }
-}
-</style>

+ 0 - 335
src/views/reportPandect/index.vue

@@ -1,335 +0,0 @@
-<template>
-  <div class="swiperBox">
-    <el-carousel
-      style="width: 100%; margin: 5vh 0"
-      trigger="click"
-      type="card"
-      height="80vh"
-      :autoplay="false"
-      indicator-position="none"
-      :initial-index="1"
-      arrow="none"
-      @change="changeSwiper"
-    >
-      <!-- card-1 -->
-      <el-carousel-item style="padding: 20px; background: rgb(4, 12, 11)">
-        <div class="itemBox">
-          <p class="itemTitle">统计分析</p>
-          <iframe
-            class="iframe"
-            width="100%"
-            height="100%"
-            src="http://10.81.3.155:8070/analysis/#/"
-          />
-        </div>
-      </el-carousel-item>
-
-      <!-- card-2 -->
-      <el-carousel-item style="padding: 20px; background: rgb(4, 12, 11)">
-        <div class="itemBox">
-          <p class="itemTitle">
-            自定义报表
-            <i
-              class="itemMoreBtn el-icon-more"
-              @click="jumpUrl('/fdczzdy')"
-            ></i>
-          </p>
-          <div style="margin-top: 200px">
-            <div class="inline" @click="jumpUrl('/fdczzdy')">
-              <div class="l">风电场站自定义</div>
-              <div class="r r4">
-                <span>4</span>
-              </div>
-            </div>
-            <div class="inline" @click="jumpUrl('/fdxmzdy')">
-              <div class="l">风电项目自定义</div>
-              <div class="r r2">
-                <span>2</span>
-              </div>
-            </div>
-            <div class="inline" @click="jumpUrl('/gfczzdy')">
-              <div class="l">光伏场站自定义</div>
-              <div class="r r1">
-                <span>1</span>
-              </div>
-            </div>
-            <div class="inline" @click="jumpUrl('/gfxmzdy')">
-              <div class="l">光伏场项目定义</div>
-              <div class="r r1">
-                <span>1</span>
-              </div>
-            </div>
-          </div>
-        </div>
-      </el-carousel-item>
-
-      <!-- card-3 -->
-      <el-carousel-item style="padding: 20px; background: rgb(4, 12, 11)">
-        <div class="itemBox">
-          <p class="itemTitle">
-            固定报表
-            <i class="itemMoreBtn el-icon-more" @click="jumpUrl('/oafd')"></i>
-          </p>
-          <div class="imageBox">
-            <div class="imgItem" @click="jumpUrl('/oafd')">
-              <el-image class="img" src="./static/img/oa日报.png" fit="fill" />
-              <p class="imgTitle">OA日报(风电)</p>
-            </div>
-            <div class="imgItem" @click="jumpUrl('/xnyrb')">
-              <el-image
-                class="img"
-                src="./static/img/新能源日报.png"
-                fit="fill"
-              />
-              <p class="imgTitle">新能源日报</p>
-            </div>
-            <div class="imgItem" @click="jumpUrl('/missfdrb')">
-              <el-image
-                class="img"
-                src="./static/img/miss日报.png"
-                fit="fill"
-              />
-              <p class="imgTitle">山西晋能MISS日报</p>
-            </div>
-            <div class="imgItem" @click="jumpUrl('/xnyfdscyb')">
-              <el-image
-                class="img"
-                src="./static/img/新能源生产月报.png"
-                fit="fill"
-              />
-              <p class="imgTitle">新能源风电生产月报</p>
-            </div>
-            <div class="imgItem" @click="jumpUrl('/mhsscyb')">
-              <el-image
-                class="img"
-                src="./static/img/麻黄山生产月报.png"
-                fit="fill"
-              />
-              <p class="imgTitle">麻黄山生产月报</p>
-            </div>
-            <div class="imgItem" @click="jumpUrl('/nssscyb')">
-              <el-image
-                class="img"
-                src="./static/img/牛首山生产月报.png"
-                fit="fill"
-              />
-              <p class="imgTitle">牛首山生产月报</p>
-            </div>
-          </div>
-        </div>
-      </el-carousel-item>
-    </el-carousel>
-  </div>
-</template>
-
-<script>
-import $ from "jquery";
-export default {
-  // 名称
-  name: "cutAnalyse",
-
-  // 数据
-  data() {
-    const that = this;
-    return {};
-  },
-
-  // 函数
-  methods: {
-    // 切换走马灯,并重新渲染样式
-    changeSwiper(index) {
-      this.$nextTick(() => {
-        const swiperDom = $(".swiperBox .el-carousel__item");
-        swiperDom
-          .eq(index)
-          .css({ background: "rgb(4, 12, 11)", border: "1px solid #05bb4c" });
-        for (let i = 0; i < swiperDom.length; i++) {
-          if (i !== index) {
-            swiperDom.eq(i).find(".el-carousel__mask").css({
-              background: "rgb(4, 12, 11)",
-            });
-            swiperDom.eq(i).css({
-              background: "rgb(4, 12, 11)",
-              border: "1px solid rgba(5, 187, 76, 0.5)",
-            });
-          }
-        }
-      });
-    },
-
-    // 页面跳转
-    jumpUrl(url) {
-      this.$router.push(url);
-    },
-  },
-
-  created() {},
-
-  mounted() {
-    this.$nextTick(() => {
-      this.changeSwiper(1);
-    });
-  },
-
-  unmounted() {},
-};
-</script>
-
-<style lang="less" scoped>
-.swiperBox,
-.itemBox {
-  width: 100%;
-  height: 100%;
-  font-size: 20px;
-
-  .itemTitle {
-    width: 100%;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    position: relative;
-
-    .itemMoreBtn {
-      cursor: pointer;
-      font-size: 22px;
-      position: absolute;
-      right: 0;
-      top: 0;
-    }
-  }
-
-  .inline {
-    display: flex;
-    justify-content: space-around;
-    align-items: center;
-    font-size: 24px;
-    margin-bottom: 30px;
-    width: 100%;
-    margin: 0 0 30px 0;
-    transition: 0.2s;
-
-    .l {
-      color: #b3bdc0;
-      width: 46%;
-      display: flex;
-      justify-content: flex-end;
-      align-items: center;
-      margin-right: 4%;
-      transition: 0.2s;
-    }
-
-    .r {
-      color: #05bb4c;
-      position: relative;
-      width: 46%;
-      display: flex;
-      justify-content: flex-start;
-      align-items: center;
-      margin-left: 4%;
-
-      &::after {
-        content: "";
-        position: absolute;
-        height: 10px;
-        left: 30px;
-        top: calc(50% - 5px);
-        background-color: #edbf03;
-        border-radius: 2px;
-      }
-    }
-
-    .r1::after {
-      width: 30px;
-    }
-
-    .r2::after {
-      width: 60px;
-    }
-
-    .r3::after {
-      width: 90px;
-    }
-
-    .r4::after {
-      width: 120px;
-    }
-
-    &:hover {
-      width: 80%;
-      margin: 0 10% 30px 10%;
-      color: #05bb4c;
-      transition: 0.2s;
-    }
-
-    &:hover .l {
-      color: #05bb4c;
-      transition: 0.2s;
-    }
-  }
-
-  .imageBox {
-    width: 100%;
-    display: flex;
-    justify-content: flex-start;
-    align-items: center;
-    flex-wrap: wrap;
-    margin-top: 100px;
-
-    .imgItem {
-      cursor: pointer;
-      border: none;
-      margin-right: 1%;
-      margin-bottom: 20px;
-      display: flex;
-      justify-content: flex-start;
-      align-items: center;
-      flex-direction: column;
-      width: 32%;
-
-      .img {
-        width: 100%;
-        height: 150px;
-        border: 1px solid #b3bdc0;
-        transition: 0.2s;
-
-        &:hover {
-          border: 1px solid #05bb4c;
-          transition: 0.2s;
-        }
-      }
-
-      p {
-        width: 100%;
-        font-size: 16px;
-        color: #b3bdc0;
-        text-align: center;
-        transition: 0.2s;
-      }
-
-      &:hover p {
-        transition: 0.2s;
-        color: #05bb4c;
-      }
-    }
-  }
-
-  .iframe {
-    border: 0;
-    overflow: scroll;
-    background: #fff;
-  }
-}
-</style>
-
-<style lang="less">
-.itemBox {
-  .el-form-item,
-  .el-form-item__label {
-    font-size: 16px;
-  }
-
-  .el-form-item__label {
-    text-align: left;
-  }
-}
-</style>

+ 0 - 285
src/views/sampleDatabase/abilityAnalysis/index.vue

@@ -1,285 +0,0 @@
-<template>
-  <div>
-    <el-row>
-      <el-col :span="6"> </el-col>
-      <el-col :span="18">
-        <div class="operation">
-          <div class="title">操作面板</div>
-          <div class="condition">
-            <div class="query">
-              <div class="lable">使用模板:</div>
-              <div class="search">
-                <el-select
-                  v-model="model"
-                  clearable
-                  placeholder="请选择"
-                  popper-class="select"
-                  style="width: 120px;"
-                >
-                  <el-option
-                    v-for="item in modelList"
-                    :key="item.value"
-                    :value="item.value"
-                    :label="item.label"
-                  />
-                </el-select>
-              </div>
-            </div>
-            <div class="query1">
-              <div class="lable">最大风速:</div>
-              <el-input size="middle" v-model="wind" clearable></el-input>
-            </div>
-            <div class="query1">
-              <div class="lable">最小风速:</div>
-              <el-input size="middle" v-model="wind" clearable></el-input>
-            </div>
-            <div class="query1">
-              <div class="lable">最大功率:</div>
-              <el-input size="middle" v-model="wind" clearable></el-input>
-            </div>
-            <div class="query1">
-              <div class="lable">最小功率:</div>
-              <el-input size="middle" v-model="wind" clearable></el-input>
-            </div>
-          </div>
-          <div class="condition">
-            <el-checkbox-group v-model="checkList">
-              <el-checkbox label="非并网"></el-checkbox>
-              <el-checkbox label="非合理值"></el-checkbox>
-              <el-checkbox label="并网后十分钟"></el-checkbox>
-              <el-checkbox label="停机前十分钟"></el-checkbox>
-              <el-checkbox label="功率曲线偏差"></el-checkbox>
-              <el-checkbox label="欠符合等级"></el-checkbox>
-            </el-checkbox-group>
-            <div class="level">
-              <el-select
-                v-model="level"
-                clearable
-                placeholder="请选择"
-                popper-class="select"
-                style="width: 80px"
-              >
-                <el-option
-                  v-for="item in levelList"
-                  :key="item.value"
-                  :value="item.value"
-                  :label="item.label"
-                />
-              </el-select>
-            </div>
-          </div>
-        </div>
-        <div>
-          <div class="chart" id="linechart3"></div>
-        </div>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-<script>
-import util from "@/helper/util.js";
-import partten from "@/helper/partten.js";
-import * as echarts from "echarts";
-export default {
-  data() {
-    return {
-      wind: "",
-      model: "进阶模板",
-      modelList: [
-        {
-          label: "进阶模板",
-          value: "0",
-        },
-      ],
-      checkList: [
-        "非并网",
-        "非合理值",
-        "并网后十分钟",
-        "停机前十分钟",
-        "功率曲线偏差",
-        "欠符合等级",
-      ],
-      level: "1级",
-      levelList: [
-        {
-          label: "1级",
-          value: "1",
-        },
-        {
-          label: "2级",
-          value: "2",
-        },
-      ],
-      wtId: "MG01_01",
-    };
-  },
-  created() {
-    this.$nextTick(() => {
-      this.getChart3();
-    });
-  },
-  methods: {
-    async getChart3() {
-      const res = await this.API.requestData({
-        method: "POST",
-        subUrl: "yaw/getTotalRanges",
-        data: {
-          wtId: this.wtId,
-          beginDate: new Date(new Date().getTime() - 86400000).formatDate("yyyy-MM-dd"),
-          endDate: new Date().formatDate("yyyy-MM-dd"),
-          type: 1,
-        },
-      });
-      if (res && res.data && res.data.data) {
-        const xData = [];
-        const lData = [];
-        const dataMap = res.data.data;
-        for (let key in dataMap) {
-          let tmpKey = key.replace(/r/, "");
-          tmpKey = tmpKey.replace(/_/, "-");
-          if (tmpKey < 100) {
-            xData.push(tmpKey);
-            lData.push(dataMap[key]);
-          }
-        }
-        this.line3Data = lData;
-        let option = {
-          color: ["#05bb4c", "#4b55ae", "#fa8c16", "#f8de5b"],
-          tooltip: {
-            trigger: "axis",
-            backgroundColor: "rgba(0,0,0,0.4)",
-            borderColor: partten.getColor("gray"),
-            textStyle: {
-              color: "#fff",
-              fontSize: util.vh(16),
-            },
-          },
-          legend: {
-            show: false,
-            data: ["偏航次数"],
-            right: 56,
-            icon: "circle",
-            itemWidth: 6,
-            inactiveColor: "#606769",
-            textStyle: {
-              color: partten.getColor("grayl"),
-              fontSize: 12,
-            },
-          },
-          grid: {
-            top: util.vh(40),
-            left: util.vh(60),
-            right: util.vh(130),
-            bottom: util.vh(24),
-          },
-          xAxis: [
-            {
-              name: "对风偏差(度)",
-              type: "category",
-              boundaryGap: false,
-              axisLabel: {
-                formatter: "{value}",
-                fontSize: util.vh(14),
-                textStyle: {
-                  color: partten.getColor("gray"),
-                },
-              },
-              data: xData,
-            },
-          ],
-          yAxis: [
-            {
-              type: "value",
-              name: "数量",
-              axisLabel: {
-                formatter: "{value}",
-                fontSize: util.vh(14),
-              },
-              splitLine: {
-                lineStyle: {
-                  color: partten.getColor("gray") + 55,
-                  type: "dashed",
-                },
-              },
-            },
-          ],
-          series: [
-            {
-              name: "数量",
-              type: "line",
-              smooth: true,
-              zlevel: 0,
-              lineStyle: {
-                normal: {
-                  color: "#05bb4c",
-                  width: 1,
-                },
-              },
-              yAxisIndex: 0,
-              data: lData,
-            },
-          ],
-        };
-        const chart = echarts.init(document.getElementById("linechart3"));
-        chart.clear();
-        chart.setOption(option);
-        this.resize = function () {
-          chart.resize();
-        };
-        window.addEventListener("resize", this.resize);
-      }
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.operation {
-  width: 95%;
-  border: 1px solid #ffffff;
-  margin-top: 20px;
-
-  .title {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    font-size: 20px;
-    margin-left: 10px;
-    width: 100px;
-    padding: 10px;
-    margin-top: -30px;
-    background-image: url("../../../assets/background.png");
-  }
-  .condition {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    margin-left: 20px;
-    margin-bottom: 10px;
-    .query {
-      display: flex;
-      flex-direction: row;
-      align-items: center;
-    }
-    .query1 {
-      width: 130px;
-      display: flex;
-      flex-direction: row;
-      align-items: center;
-      margin-left: 20px;
-
-      .lable {
-        width: 150px;
-      }
-    }
-    .level {
-      margin-left: 10px;
-    }
-  }
-}
-.chart {
-    width: 100%;
-    height: 220px;
-    display: block;
-    margin: auto;
-  }
-</style>

+ 0 - 339
src/views/sampleDatabase/analysis/index.vue

@@ -1,339 +0,0 @@
-<template>
-  <div class="knowledge-2">
-    <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="wpId"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in wpArray"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              />
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item">
-          <div class="lable">样本类型:</div>
-          <div class="search-input">
-            <el-select
-              v-model="sampleValue"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-              style="width: 130px; margin-left: 20px"
-            >
-              <el-option
-                v-for="item in sampleList"
-                :key="item.value"
-                :value="item.value"
-                :label="item.label"
-              />
-            </el-select>
-          </div>
-        </div>
-        <div class="query-item" style="width: 445px">
-          <div class="lable">起止时间:</div>
-          <div class="search-input">
-            <el-date-picker
-              class="picker"
-              @change="changes"
-              v-model="timeValue"
-              type="datetimerange"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-            >
-            </el-date-picker>
-          </div>
-        </div>
-        <div class="query-item" style="width: 250px">
-          <div class="lable">时间间隔:</div>
-          <div class="search-input">
-            <el-select
-              v-model="interval"
-              collapse-tags
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in intervals"
-                :key="item.value"
-                :value="item.value"
-                :label="item.label"
-              >
-              </el-option>
-            </el-select>
-          </div>
-        </div>
-        <div class="query-actions">
-          <button class="btn" @click="getData()">查询</button>
-        </div>
-      </div>
-    </div>
-
-    <el-row :type="'flex'" class="content">
-      <el-col :span="5">
-        <div class="left">
-          <el-tree
-            class="filter-tree"
-            :data="showData"
-            :props="defaultProps"
-            :filter-node-method="filterNode"
-            node-key="id"
-            :default-expanded-keys="[0]"
-            :default-checked-keys="[ids]"
-            ref="tree"
-            highlight-current
-            @node-click="handleChange"
-          >
-          </el-tree>
-        </div>
-      </el-col>
-      <el-col :span="19">
-        <el-row>
-          <el-col :span="15">
-            <div class="charts">
-              <div class="titles">性能分析图</div>
-              <PerformanceEcharts id="chartsData" :showTime="true" :data="scatterLineData" width="100%" height="70vh"></PerformanceEcharts>
-            </div>
-          </el-col>
-          <el-col :span="9">
-            <div class="charts" v-if="warningTimeList.length > 0">
-              <div class="titles">预警饼状图</div>
-              <PieCharts id="pie" width="100%" height="70vh" :warningTimeList="warningTimeList"></PieCharts>
-            </div>
-          </el-col>
-        </el-row>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-<script>
-import PerformanceEcharts from "../performance/performanceEcharts.vue";
-import PieCharts from "./pieCharts.vue";
-import BASE from "@tools/basicTool.js";
-export default {
-  components: {
-    PerformanceEcharts,
-    PieCharts,
-  },
-  created() {
-    if (this.timeValue.length === 0) {
-      let date = new Date();
-      this.timeValue[0] = 1622476800000;
-      this.timeValue[1] = 1630252800000;
-    }
-    this.getData();
-    this.getWp();
-  },
-  data() {
-    return {
-      timeValue: [],
-      ids:'',
-      wpId: "NSS_FDC",
-      wpArray: [],
-      sampleValue: "0",
-      sampleList: [
-        {
-          label: "正样本",
-          value: "0",
-        },
-        {
-          label: "负样本",
-          value: "1",
-        },
-      ],
-      interval: "5-1008",
-      intervals: [
-        {
-          label: "小于30分钟",
-          value: "0-0.5",
-        },
-        {
-          label: "30分钟-1小时",
-          value: "0.5-1",
-        },
-        {
-          label: "1小时-2小时",
-          value: "1-2",
-        },
-        {
-          label: "2小时-5小时",
-          value: "2-5",
-        },
-        {
-          //42天
-          label: "大于5小时",
-          value: "5-1008",
-        },
-      ],
-
-      defaultProps: {
-        children: "children",
-        label: "windturbineId",
-      },
-      showData: [],
-      warningTimeList: [],
-      scatterLineData:{},
-      warningList: [
-        {
-          label: "变桨系统",
-          value: "BJXT",
-        },
-        {
-          label: "测风系统",
-          value: "CFXT",
-        },
-        {
-          label: "发电机",
-          value: "FDJ",
-        },
-        {
-          label: "传动链",
-          value: "CDL",
-        },
-        {
-          label: "齿轮箱",
-          value: "CLX",
-        },
-        {
-          label: "机舱",
-          value: "JC",
-        },
-        {
-          label: "液压系统",
-          value: "YYXT",
-        },
-        {
-          label: "偏航系统",
-          value: "PHXT",
-        },
-        {
-          label: "塔底柜",
-          value: "TDG",
-        },
-      ],
-    };
-  },
-  methods: {
-    // 获取风场
-    getWp() {
-      let that = this;
-      that.API.requestData({
-        baseURL: "http://10.155.32.4:8082/",
-        subUrl: "powercompare/windfarmAjax",
-        success(res) {
-          that.wpArray = res.data;
-          that.wpId = res.data[1].id;
-        },
-      });
-    },
-    getData() {
-      let that = this;
-      that.showData = [];
-      this.API.requestData({
-        method: "GET",
-        subUrl: "http://192.168.1.18:9002/analyse/basic",
-        data: {
-          station: this.wpId,
-          intervals: this.interval,
-          tag: this.sampleValue,
-          st: new Date(this.timeValue[0]).formatDate("yyyy-MM-dd hh:mm:ss"),
-          et: new Date(this.timeValue[1]).formatDate("yyyy-MM-dd hh:mm:ss"),
-        },
-        success(res) {
-          if (res) {
-            that.ids = res.data[0].children[0].id
-            that.showData = res.data;
-            that.handleChange(res.data[0].children[0])
-          }
-        },
-      });
-    },
-    async handleChange(val) {
-      if (val.st) {
-        BASE.showLoading({ text: "加载中..." });
-        let warningList = [];
-        let that = this;
-        await this.API.requestData({
-          method: "GET",
-          subUrl: "http://192.168.1.18:8075/alarm/history/page",
-          data: {
-            pagenum: 1,
-            pagesize: 20000,
-            starttime: val.st,
-            endtime: val.et,
-            stationid: this.wpId,
-            windturbineid: val.wtId,
-          },
-          success(res) {
-            if (res.records) {
-              res.records.forEach((item) => {
-                if (
-                  warningList.filter((val) => val.label === item.category3)
-                    .length > 0
-                ) {
-                  warningList.filter((val) => val.label === item.category3)[0]
-                    .num++;
-                } else {
-                  let obj = {
-                    label: item.category3,
-                    name: that.warningList.filter(
-                      (val) => val.value === item.category3
-                    )[0].label,
-                    num: 1,
-                  };
-                  warningList.push(obj);
-                }
-              });
-
-              that.warningTimeList = warningList;
-            }
-          },
-        });
-        
-        await that.API.requestData({
-        method: "GET",
-        baseURL: "http://192.168.1.18:9002/",
-        // baseURL: "http://192.168.10.4:9002/",
-        subUrl: "case/performance/line",
-        data: {
-          id: val.id,
-          interval: 30,
-        },
-        success(res) {
-          if (res.code == 200) {
-            that.scatterLineData = res.data;
-            BASE.closeLoading();
-          }
-        },
-      });
-      }
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-.charts {
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-}
-.titles{
-  font-size: 16px;
-  margin: 20px 0 40px 10px;
-}
-body .el-tree {
-  height: 85vh;
-  padding-left: 30px;
-  overflow-y: auto;
-}
-</style>

+ 0 - 127
src/views/sampleDatabase/analysis/pieCharts.vue

@@ -1,127 +0,0 @@
-<template>
-  <div class="precisionEcharts" :style="style" :id="id"></div>
-</template>
-<script>
-import * as echarts from "echarts";
-export default {
-  props: {
-    warningTimeList: {
-      type: Array,
-    },
-    id: Object,
-    width: {
-      type: String,
-      default: "600px",
-    },
-    height: {
-      type: String,
-      default: "250px",
-    },
-  },
-  data() {
-    return {
-    };
-  },
-  computed: {
-    style() {
-      return `width: ${this.width}; height: ${this.height};`;
-    },
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-  updated() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-  methods: {
-    initChart() {
-      let seriesData = [];
-      this.warningTimeList.forEach((item) => {
-        let obj = {
-          value: item.num,
-          name: item.name,
-        };
-        seriesData.push(obj);
-      });
-      let chartDom = document.getElementById(this.id);
-      let myChart = echarts.init(chartDom);
-      let option = {
-        title: {
-          text: "",
-        },
-        tooltip: {
-          trigger: "item",
-        },
-        legend: {
-          top: "5%",
-          left: "center",
-          textStyle: {
-            color: "#ffffff",
-            fontSize: 14,
-          },
-        },
-        series: [
-          {
-            name: "报警次数",
-            type: "pie",
-            radius: ["30%", "55%"],
-            avoidLabelOverlap: false,
-            itemStyle: {
-              borderRadius: 10,
-              borderColor: "#000",
-              borderWidth: 2,
-            },
-            label: {
-              show: true,
-              normal: {
-                show: true,
-                textStyle: {
-                  fontSize: "20",
-                  color: "#ffffff",
-                },
-              },
-              emphasis: {
-                show: true,
-                textStyle: {
-                  fontSize: "25",
-                  color: "#ffffff",
-                },
-              },
-            },
-            emphasis: {
-              label: {
-                show: true,
-                fontSize: "40",
-                fontWeight: "bold",
-              },
-            },
-            labelLine: {
-              show: true,
-            },
-            data: seriesData,
-          },
-        ],
-      };
-      option && myChart.setOption(option);
-    },
-  },
-  watch: {
-    warningTimeList: {
-      handler(newValue, oldValue) {
-        this.initChart();
-      },
-      deep: true,
-    },
-  },
-};
-</script>
-<style lang="less" scoped>
-// .precisionEcharts {
-//   width: 600px;
-//   height: 250px;
-// }
-</style>

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

@@ -1,478 +0,0 @@
-<template>
-	<el-scrollbar height="92vh">
-		<div class="query mg-b-8">
-			<div class="query-items">
-				<div class="query-item" style="width: 220px;">
-					<div class="lable">场站:</div>
-					<div class="search-input">
-						<el-select v-model="station" placeholder="请选择" popper-class="select" @change="stationChange">
-							<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: 230px;">
-					<div class="lable">样本类型:</div>
-					<div class="search-input">
-						<el-select v-model="category" collapse-tags clearable placeholder="请选择" popper-class="select">
-							<el-option
-								v-for="item in categorys"
-								:key="item.value"
-								:value="item.value"
-								:label="item.label"
-							/>
-						</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="exportData()">导出</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="category=='0'"></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: [], //传感点参数
-				category: "0", //模型分类
-				categorys: [
-					{label: "检修样本", value: "0"},
-					{label: "DBSCAN样本", value: "1"},
-				],
-				st:'',
-				widgetArr: [],
-				ChangZhan: [],
-				fjxh: [],
-				fjxhArr: [],
-				widget: [],
-				model: [],
-				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: {
-			stationChange(){
-				let fjxh = [];
-				this.fjxhArr.forEach(ele => {
-					if (ele.id == this.station) {
-						ele.value.forEach(ele2 => {
-							fjxh.push({
-								label: ele2,
-								value: ele2
-							})
-						})
-						this.model = ele.value;
-					}
-				})
-				this.fjxh = fjxh;
-			},
-			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://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) {
-						that.ChangZhan = res.data;
-						that.station = res.data[1].name
-						let fjxhArr = [];
-						let model = [],
-							fjxh = [];
-						res.data.forEach(ele => {
-							fjxhArr.push({
-								id: ele.id,
-								value: ele.model.split("/")
-							})
-							if (ele.id == "NSS_FDC") {
-								model = ["UP82"];
-								fjxh.push({
-									label: "UP82",
-									value: "UP82"
-								})
-							}
-						})
-						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.category == '0'){
-										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.tableData.data = [];
-				that.tableData2.data = [];
-				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,
-						category: that.category,
-						st: that.time[0].valueOf(),
-						et: that.time[1].valueOf()
-					},
-					success(res) {
-						if (res.code == 200 && res.data.length) {
-							let data = res.data;
-							if(that.category == '0'){
-								let k = 0;
-								for (var i = 0; i < data.length; i++) {
-									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 j = 0; j < data.length; j++) {
-									k ++;
-									let obj = {
-										index: k,
-										wtId: data[j].windturbineid,
-										faulttype: data[j].faulttype,
-										modelId: data[j].model,
-										faultTime: data[j].starttime,
-										widget:data[j].faultcode
-									};
-									that.tableData2.data.push(obj);
-								}
-							}
-						}
-					},
-				});
-			},
-			formatJson(filterVal, jsonData) {
-				return jsonData.map(v => filterVal.map(j => v[j]));
-			},
-			exportData() {
-				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();
-		},
-	};
-</script>
-
-<style lang="less" scoped>
-	.mb10 {
-		margin-bottom: 10px;
-	}
-
-	.el-select.w {
-		width: 100%;
-	}
-
-	// .el-range-editor.w{width: 100%;}
-</style>

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

@@ -1,317 +0,0 @@
-<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>

+ 0 - 126
src/views/sampleDatabase/knowledgeBase/index.vue

@@ -1,126 +0,0 @@
-<template>
-  <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="knowledge"
-              clearable
-              placeholder="请选择"
-              popper-class="select"
-            >
-              <el-option
-                v-for="item in knowledgeList"
-                :key="item.value"
-                :value="item.value"
-                :label="item.label"
-              />
-            </el-select>
-          </div>
-        </div>
-      </div>
-    </div>
-    <el-row :type="'flex'" class="content">
-      <el-col :span="24">
-        <el-table
-          height="89vh"
-          ref="multipleTable"
-          empty-text="暂无数据"
-          :data="tableData"
-          :header-cell-style="{
-            height: '40px',
-            background: 'rgba(83, 98, 104, 0.2)',
-            color: '#b2bdc0',
-            'border-bottom': '0px solid red',
-          }"
-          :cell-style="{
-            height: '40px',
-            'border-bottom': 'solid 0px #242424',
-          }"
-          stripe
-          style="width: 100%; margin-bottom: 10px"
-        >
-          <el-table-column
-            prop="indexs"
-            label="序号"
-            width="60"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="faulttype"
-            label="故障分类"
-            width="150"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="symptom"
-            label="故障现象"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="cause"
-            label="故障原因"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="maintenance"
-            label="维修过程"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="model"
-            label="风机型号"
-             width="150"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="manufacturer"
-            label="风机厂家"
-            width="200"
-            align="center"
-          ></el-table-column>
-        </el-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-<script>
-export default {
-  data() {
-    return {
-      tableData: [],
-      knowledge: '故障维修记录库',
-      knowledgeList: [
-        {
-          label: "故障维修记录库",
-          value: "0",
-        },
-      ],
-    };
-  },
-  components: {},
-  created() {
-    this.getData();
-  },
-  methods: {
-    getData() {
-      let that = this;
-      this.API.requestData({
-        method: "GET",
-        subUrl: "http://192.168.1.18:9002/know/fault/fix/all",
-        success(res) {
-          if (res) {
-              console.log(res);
-            res.data.forEach((item, index) => {
-              item.indexs = index +1;
-            });
-            that.tableData = res.data;
-          }
-        },
-      });
-    },
-  },
-};
-</script>

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

@@ -1,26 +0,0 @@
-<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>

+ 0 - 0
src/views/sampleDatabase/otherComponent.vue


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