SunZehao 1 anno fa
parent
commit
8b80d72217

+ 1 - 1
components.d.ts

@@ -166,7 +166,7 @@ declare module 'vue' {
     StrightLineChart: typeof import('./src/components/chart/line/stright-line-chart.vue')['default']
     SubmitBtn: typeof import('./src/components/generatingCapacityComponent/SubmitBtn.vue')['default']
     SvgDraw: typeof import('./src/components/coms/icon/svg-draw.vue')['default']
-    SvgIcon: typeof import('./src/components/powerPredictionComponent/svgIcon/index.vue')['default']
+    SvgIcon: typeof import('./src/components/coms/icon/svg-icon.vue')['default']
     SvgPageShow: typeof import('./src/components/powerPredictionComponent/powerControlSvg/svgPageShow.vue')['default']
     Tab: typeof import('./src/components/coms/tabs/tab.vue')['default']
     Table: typeof import('./src/components/generatingCapacityComponent/table.vue')['default']

+ 8 - 8
src/App.vue

@@ -873,14 +873,14 @@ export default {
               index: "/integratedAlarm/realwarning",
             },
             {
-              name: "报警查询",
-              index: "/integratedAlarm/historyWarning",
-            },
-            {
               name: "预警查询",
               index: "/integratedAlarm/customWarning",
             },
             {
+              name: "报警查询",
+              index: "/integratedAlarm/historyWarning",
+            },
+            {
               name: "停机查询",
               index: "/integratedAlarm/stopQuery",
             },
@@ -923,13 +923,13 @@ export default {
               index: "/integratedAlarm/historyConfig",
             },
             {
-              name: "规则修改日志",
-              index: "/integratedAlarm/logs",
-            },
-            {
               name: "预警排查方案",
               index: "/integratedAlarm/earlyWarning",
             },
+            {
+              name: "规则修改日志",
+              index: "/integratedAlarm/logs",
+            },
           ],
         },
         {

+ 601 - 689
src/components/powerPredictionComponent/batteryDivinerDialog/dayBatterDialog.vue

@@ -1,46 +1,24 @@
 <template>
-  <el-dialog
-    custom-class="windLifeDialog"
-    :title="title"
-    v-model="dialogVisible"
-    :fullscreen="true"
-    :close-on-click-modal="false"
-    @close="closeDialog"
-  >
-    <div class="globalDiaMain" :class="!theme ? 'themeDa' : 'themeLi'">
-      <div class="main_top">
-        <div class="main_top_left">
-          <div class="exceed">
-            <span style="margin-top: 3px">时间:</span>
-            <el-date-picker
-              v-model="dateVal"
-              type="datetimerange"
-              :clearable="false"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-            >
-            </el-date-picker>
-          </div>
-          <div class="exceed">
-            <span style="margin-top: 3px">超前:</span>
-            <el-select
-              style="width: 130px"
-              class="exTime"
-              v-model="chooseExceedTimeFv"
-              placeholder="请选择"
-            >
-              <el-option
-                v-for="item in ExceedTimeList"
-                :key="item.value"
-                :label="item.label"
-                :disabled="item.disabled"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
-          </div>
-          <!-- <div class="exceed">
+    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" :fullscreen="true"
+        :close-on-click-modal="false" @close="closeDialog">
+        <div class="globalDiaMain" :class="!theme ? 'themeDa' : 'themeLi'">
+            <div class="main_top">
+                <div class="main_top_left">
+                    <div class="exceed">
+                        <span style="margin-top: 3px">时间:</span>
+                        <el-date-picker v-model="dateVal" type="datetimerange" :clearable="false" range-separator="至"
+                            start-placeholder="开始日期" end-placeholder="结束日期">
+                        </el-date-picker>
+                    </div>
+                    <div class="exceed">
+                        <span style="margin-top: 3px">超前:</span>
+                        <el-select style="width: 130px" class="exTime" v-model="chooseExceedTimeFv" placeholder="请选择">
+                            <el-option v-for="item in ExceedTimeList" :key="item.value" :label="item.label"
+                                :disabled="item.disabled" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </div>
+                    <!-- <div class="exceed">
                         <span style="margin-top: 3px;">间隔:</span>
                         <el-select class="exTime" v-model="rJianStr" placeholder="请选择">
                             <el-option v-for="item in rJian" :key="item.value" :label="item.label"
@@ -48,681 +26,615 @@
                             </el-option>
                         </el-select>
                     </div> -->
-          <el-button type="primary" @click="seachData">查 询</el-button>
-          <el-button @click="exportExcel">导出查询结果</el-button>
-        </div>
-      </div>
-      <div v-loading="loading">
-        <div class="main_charts">
-          <div id="centerCharts" class="chartsStyle"></div>
-        </div>
-        <div class="main_table warn-table" style="margin-top: 20px">
-          <el-table
-            :data="tableData"
-            ref="report-table_day"
-            border
-            max-height="50vh"
-            style="width: 100%"
-          >
-            <el-table-column
-              prop="dataTime"
-              label="时间"
-              align="center"
-              width="160"
-            ></el-table-column>
-            <el-table-column
-              prop="theoreticalPower"
-              label="理论电量"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="availablePower"
-              label="可用电量"
-              align="center"
-            ></el-table-column>
-            <el-table-column label="当期数据" align="center">
-              <el-table-column
-                prop="actualPowerDq"
-                label="实际电量"
-                align="center"
-              ></el-table-column>
-              <el-table-column
-                prop="veryShortTermForecastDq"
-                label="超短期预测"
-                align="center"
-              >
-                <el-table-column
-                  prop="veryShortTermForecastDq"
-                  label="累计"
-                  align="center"
-                >
-                </el-table-column>
-                <el-table-column
-                  prop="veryTimeVs"
-                  label="时刻"
-                  align="center"
-                ></el-table-column>
-              </el-table-column>
-              <el-table-column
-                prop="shortTermForecastDq"
-                label="短期预测"
-                align="center"
-              >
-                <el-table-column
-                  prop="shortTermForecastDq"
-                  label="累计"
-                  align="center"
-                ></el-table-column>
-                <el-table-column
-                  prop="shortTimeVs"
-                  label="时刻"
-                  align="center"
-                ></el-table-column>
-              </el-table-column>
-            </el-table-column>
-            <el-table-column label="同期数据" align="center">
-              <el-table-column
-                prop="actualPowerTq"
-                label="实际电量"
-                align="center"
-              ></el-table-column>
-              <el-table-column
-                prop="veryShortTermForecastTq"
-                label="超短期预测"
-                align="center"
-              >
-              </el-table-column>
-              <el-table-column
-                prop="shortTermForecastTq"
-                label="短期预测"
-                align="center"
-              ></el-table-column>
-            </el-table-column>
-            <el-table-column label="同期比率" align="center">
-              <el-table-column
-                prop="tqActualRatio"
-                label="实际电量"
-                align="center"
-              ></el-table-column>
-              <el-table-column
-                prop="tqUltraRatio"
-                label="超短期预测"
-                align="center"
-              ></el-table-column>
-              <el-table-column
-                prop="tqShortRatio"
-                label="短期预测"
-                align="center"
-              ></el-table-column>
-            </el-table-column>
-          </el-table>
+                    <el-button type="primary" @click="seachData">查 询</el-button>
+                    <el-button @click="exportExcel">导出查询结果</el-button>
+                </div>
+            </div>
+            <div v-loading="loading">
+                <div class="main_charts">
+                    <div id="centerCharts" class="chartsStyle"></div>
+                </div>
+                <div class="main_table warn-table" style="margin-top: 20px">
+                    <el-table :data="tableData" ref="report-table_day" border max-height="50vh" style="width: 100%"
+                        :header-cell-style="{
+                        padding: '4px',
+                        fontSize: '16px',
+                        fontWeight: bold,
+                        border: '0.5px solid rgba(0,0,0,.5) !important',
+                        }">
+                        <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
+                        <el-table-column prop="theoreticalPower" label="理论电量" align="center"></el-table-column>
+                        <el-table-column prop="availablePower" label="可用电量" align="center"></el-table-column>
+                        <el-table-column label="当期数据" align="center">
+                            <el-table-column prop="actualPowerDq" label="实际电量" align="center"></el-table-column>
+                            <el-table-column prop="veryShortTermForecastDq" label="超短期预测" align="center">
+                                <el-table-column prop="veryShortTermForecastDq" label="累计" align="center">
+                                </el-table-column>
+                                <el-table-column prop="veryTimeVs" label="时刻" align="center"></el-table-column>
+                            </el-table-column>
+                            <el-table-column prop="shortTermForecastDq" label="短期预测" align="center">
+                                <el-table-column prop="shortTermForecastDq" label="累计" align="center"></el-table-column>
+                                <el-table-column prop="shortTimeVs" label="时刻" align="center"></el-table-column>
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column label="同期数据" align="center">
+                            <el-table-column prop="actualPowerTq" label="实际电量" align="center"></el-table-column>
+                            <el-table-column prop="veryShortTermForecastTq" label="超短期预测" align="center">
+                            </el-table-column>
+                            <el-table-column prop="shortTermForecastTq" label="短期预测" align="center"></el-table-column>
+                        </el-table-column>
+                        <el-table-column label="同期比率" align="center">
+                            <el-table-column prop="tqActualRatio" label="实际电量" align="center"></el-table-column>
+                            <el-table-column prop="tqUltraRatio" label="超短期预测" align="center"></el-table-column>
+                            <el-table-column prop="tqShortRatio" label="短期预测" align="center"></el-table-column>
+                        </el-table-column>
+                    </el-table>
+                </div>
+            </div>
         </div>
-      </div>
-    </div>
-  </el-dialog>
+    </el-dialog>
 </template>
 
 <script>
-import * as XLSX from "xlsx";
-import { saveAs } from "file-saver";
-import * as XLSXD from "xlsx-js-style";
-import {
-  apiGetdailyPowerComparisonChartData,
-  apiGetdailyPowerComparisonTableData,
-} from "../../../api/api";
-export default {
-  props: {
-    from: {
-      type: String,
-      default: () => {
-        return "";
-      },
-    },
-    ExceedTimeList: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-    stationData: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-    echartsTheme: {
-      type: String,
-      default: () => {
-        return "";
-      },
-    },
-    theme: {
-      type: Boolean,
-      default: () => {
-        return false;
-      },
-    },
-  },
-  data() {
-    return {
-      title: "",
-      dialogVisible: false,
-      windTurbines: null,
-      windTurbinesVal: null,
-      tableData: [],
-      chooseExceedTimeFv: 0,
-      rJianStr: 1,
-      dateVal: [],
-      loading: false,
-      rJian: [],
-      fakeFs: [
-        {
-          name: "预测风速",
-          data: [
-            1.5, 5.7, 7, 3, 4, 9, 5, 4, 2, 3, 9, 0, 4, 5, 8, 6.4, 4, 9, 3, 2, 7,
-            1, 5, 2,
-          ],
+    import * as XLSX from "xlsx";
+    import {
+        saveAs
+    } from "file-saver";
+    import * as XLSXD from "xlsx-js-style";
+    import {
+        apiGetdailyPowerComparisonChartData,
+        apiGetdailyPowerComparisonTableData,
+    } from "../../../api/api";
+    export default {
+        props: {
+            from: {
+                type: String,
+                default: () => {
+                    return "";
+                },
+            },
+            ExceedTimeList: {
+                type: Array,
+                default: () => {
+                    return [];
+                },
+            },
+            stationData: {
+                type: Array,
+                default: () => {
+                    return [];
+                },
+            },
+            echartsTheme: {
+                type: String,
+                default: () => {
+                    return "";
+                },
+            },
+            theme: {
+                type: Boolean,
+                default: () => {
+                    return false;
+                },
+            },
         },
-        {
-          name: "实际风速",
-          data: [
-            7.1, 5.9, 6, 4, 1, 2, 9, 5, 4, 5, 7, 1, 6, 9, 5, 3, 4, 2, 4, 5.6, 9,
-            1, 4.4, 3,
-          ],
+        data() {
+            return {
+                title: "",
+                dialogVisible: false,
+                windTurbines: null,
+                windTurbinesVal: null,
+                tableData: [],
+                chooseExceedTimeFv: 0,
+                rJianStr: 1,
+                dateVal: [],
+                loading: false,
+                rJian: [],
+                fakeFs: [{
+                        name: "预测风速",
+                        data: [
+                            1.5, 5.7, 7, 3, 4, 9, 5, 4, 2, 3, 9, 0, 4, 5, 8, 6.4, 4, 9, 3, 2, 7,
+                            1, 5, 2,
+                        ],
+                    },
+                    {
+                        name: "实际风速",
+                        data: [
+                            7.1, 5.9, 6, 4, 1, 2, 9, 5, 4, 5, 7, 1, 6, 9, 5, 3, 4, 2, 4, 5.6, 9,
+                            1, 4.4, 3,
+                        ],
+                    },
+                ],
+            };
         },
-      ],
-    };
-  },
-  created() {
-    this.rJian = [
-      {
-        label: "15分钟",
-        value: 1,
-      },
-      {
-        label: "1小时",
-        value: 2,
-      },
-    ];
-  },
-  methods: {
-    closeDialog() {
-      this.dialogVisible = false;
-    },
-    seachData() {
-      this.loading = true;
-      this.getChartsData();
-      this.getTableData();
-    },
-    allStationData() {
-      this.getChartsData();
-      this.getTableData();
-    },
-    chooseVal(val) {
-      this.stationData.forEach((item) => {
-        if (item.no === val) {
-          this.windTurbinesVal = item.itemVal;
-        }
-      });
-    },
-    // 日发电量预测echarts
-    getChartsData() {
-      let that = this;
-      let pickStartTime = that.getElecTime(that.dateVal[0]);
-      let pickStartTime15 = that.getElecTime(that.dateVal[0], "15");
-      let pickEndTime = that.getElecTime(that.dateVal[1]);
-      let pickEndTime15 = that.getElecTime(that.dateVal[1], "15");
-      let params = {
-        beginDataTime: pickStartTime,
-        beginDataTime15: pickStartTime15,
-        endDataTime: pickEndTime,
-        endDataTime15: pickEndTime15,
-        leadTime: that.chooseExceedTimeFv,
-        stationNumber: that.windTurbines,
-        itemVal: that.windTurbinesVal,
-        // jg: that.rJianStr
-        jg: 1,
-      };
-      apiGetdailyPowerComparisonChartData(params).then((datas) => {
-        if (datas && datas.data) {
-          let xAxis = [];
-          let series = [];
-          let legend = [];
-          if (datas.data.dateList.length > 0) {
-            // datas.data.dateList.forEach(item =>{
-            //     xAxis.push(item.substring(item.indexOf(' '), item.length))
-            // })
-            xAxis = datas.data.dateList;
-          }
-          if (datas.data.dataFormatList.length > 0) {
-            datas.data.dataFormatList.forEach((iten) => {
-              legend.push(iten.name);
-              let seriesObj = {
-                name: iten.name,
-                type: "line",
-                data: iten.data.map((it) => {
-                  return that.$utils.isHasNum(it);
-                }),
-                symbol: "none",
-              };
-              series.push(seriesObj);
-            });
-          }
-          that.getglobalLine("centerCharts", xAxis, legend, series);
-        }
-      });
-    },
-    getglobalLine(name, xAxis, legend, series) {
-      const seriesFindFs = series.some((ele) => {
-        return ele.name.indexOf("风速") !== -1;
-      });
-      if (!seriesFindFs) {
-        this.fakeFs.forEach((ele) => {
-          series.push(ele);
-        });
-      }
-
-      const legendFindFs = legend.some((ele) => {
-        return ele.indexOf("风速") !== -1;
-      });
-      if (!seriesFindFs) {
-        this.fakeFs.forEach((ele) => {
-          legend.push(ele.name);
-        });
-      }
+        created() {
+            this.rJian = [{
+                    label: "15分钟",
+                    value: 1,
+                },
+                {
+                    label: "1小时",
+                    value: 2,
+                },
+            ];
+        },
+        methods: {
+            closeDialog() {
+                this.dialogVisible = false;
+            },
+            seachData() {
+                this.loading = true;
+                this.getChartsData();
+                this.getTableData();
+            },
+            allStationData() {
+                this.getChartsData();
+                this.getTableData();
+            },
+            chooseVal(val) {
+                this.stationData.forEach((item) => {
+                    if (item.no === val) {
+                        this.windTurbinesVal = item.itemVal;
+                    }
+                });
+            },
+            // 日发电量预测echarts
+            getChartsData() {
+                let that = this;
+                let pickStartTime = that.getElecTime(that.dateVal[0]);
+                let pickStartTime15 = that.getElecTime(that.dateVal[0], "15");
+                let pickEndTime = that.getElecTime(that.dateVal[1]);
+                let pickEndTime15 = that.getElecTime(that.dateVal[1], "15");
+                let params = {
+                    beginDataTime: pickStartTime,
+                    beginDataTime15: pickStartTime15,
+                    endDataTime: pickEndTime,
+                    endDataTime15: pickEndTime15,
+                    leadTime: that.chooseExceedTimeFv,
+                    stationNumber: that.windTurbines,
+                    itemVal: that.windTurbinesVal,
+                    // jg: that.rJianStr
+                    jg: 1,
+                };
+                apiGetdailyPowerComparisonChartData(params).then((datas) => {
+                    if (datas && datas.data) {
+                        let xAxis = [];
+                        let series = [];
+                        let legend = [];
+                        if (datas.data.dateList.length > 0) {
+                            // datas.data.dateList.forEach(item =>{
+                            //     xAxis.push(item.substring(item.indexOf(' '), item.length))
+                            // })
+                            xAxis = datas.data.dateList;
+                        }
+                        if (datas.data.dataFormatList.length > 0) {
+                            datas.data.dataFormatList.forEach((iten) => {
+                                legend.push(iten.name);
+                                let seriesObj = {
+                                    name: iten.name,
+                                    type: "line",
+                                    data: iten.data.map((it) => {
+                                        return that.$utils.isHasNum(it);
+                                    }),
+                                    symbol: "none",
+                                };
+                                series.push(seriesObj);
+                            });
+                        }
+                        that.getglobalLine("centerCharts", xAxis, legend, series);
+                    }
+                });
+            },
+            getglobalLine(name, xAxis, legend, series) {
+                const seriesFindFs = series.some((ele) => {
+                    return ele.name.indexOf("风速") !== -1;
+                });
+                if (!seriesFindFs) {
+                    this.fakeFs.forEach((ele) => {
+                        series.push(ele);
+                    });
+                }
 
-      let powerLineData = [];
-      let fsLineData = [];
+                const legendFindFs = legend.some((ele) => {
+                    return ele.indexOf("风速") !== -1;
+                });
+                if (!seriesFindFs) {
+                    this.fakeFs.forEach((ele) => {
+                        legend.push(ele.name);
+                    });
+                }
 
-      series.forEach((ele) => {
-        ele.type = ele.type || "line";
-        if (ele.name.indexOf("风速") !== -1) {
-          ele.yAxisIndex = 1;
-          fsLineData.push(ele.data);
-        } else {
-          ele.yAxisIndex = 0;
-          powerLineData.push(ele.data);
-        }
-      });
+                let powerLineData = [];
+                let fsLineData = [];
 
-      powerLineData.forEach((pEle) => {
-        for (let i = 0; i < pEle.length; i++) {
-          if (pEle[i] === "-") {
-            pEle.splice(i, 1);
-            i--;
-          }
-        }
-      });
+                series.forEach((ele) => {
+                    ele.type = ele.type || "line";
+                    if (ele.name.indexOf("风速") !== -1) {
+                        ele.yAxisIndex = 1;
+                        fsLineData.push(ele.data);
+                    } else {
+                        ele.yAxisIndex = 0;
+                        powerLineData.push(ele.data);
+                    }
+                });
 
-      fsLineData.forEach((pEle) => {
-        for (let i = 0; i < pEle.length; i++) {
-          if (pEle[i] === "-") {
-            pEle.splice(i, 1);
-            i--;
-          }
-        }
-      });
+                powerLineData.forEach((pEle) => {
+                    for (let i = 0; i < pEle.length; i++) {
+                        if (pEle[i] === "-") {
+                            pEle.splice(i, 1);
+                            i--;
+                        }
+                    }
+                });
 
-      const allPowerData = [].concat(...powerLineData);
-      const powerMin = Math.min(...allPowerData);
-      const powerMax = Math.max(...allPowerData);
+                fsLineData.forEach((pEle) => {
+                    for (let i = 0; i < pEle.length; i++) {
+                        if (pEle[i] === "-") {
+                            pEle.splice(i, 1);
+                            i--;
+                        }
+                    }
+                });
 
-      const allWindData = [].concat(...fsLineData);
-      const windSpeedMin = Math.min(...allWindData);
-      const windSpeedMax = Math.max(...allWindData);
+                const allPowerData = [].concat(...powerLineData);
+                const powerMin = Math.min(...allPowerData);
+                const powerMax = Math.max(...allPowerData);
 
-      const splitNumber = 5;
+                const allWindData = [].concat(...fsLineData);
+                const windSpeedMin = Math.min(...allWindData);
+                const windSpeedMax = Math.max(...allWindData);
 
-      let option = {
-        title: {
-          text: "电量",
-        },
-        tooltip: {
-          trigger: "axis",
-        },
-        legend: {
-          right: "20",
-          data: legend,
-        },
-        grid: {
-          left: "5%",
-          right: "4%",
-          bottom: "3%",
-          containLabel: true,
-        },
-        xAxis: {
-          type: "category",
-          boundaryGap: false,
-          data: xAxis,
-        },
-        yAxis: [
-          {
-            type: "value",
-            name: "万千瓦时(Wkw/h)",
-            splitLine: {
-              lineStyle: {
-                color: this.$store.state.theme ? "#000" : "#ccc",
-                type: "dashed", // 修改为虚线
-                opacity: 0.2,
-              },
-            },
-            min: powerMin,
-            max: powerMax, // 动态设置最大值
-            interval: parseFloat(
-              ((powerMax - powerMin) / splitNumber).toFixed(4)
-            ),
-            splitNumber,
-            axisLabel: {
-              formatter(value) {
-                return parseInt(value);
-              },
-            },
-          },
-          {
-            type: "value",
-            name: "风速(m/s)",
-            splitLine: {
-              lineStyle: {
-                color: this.$store.state.theme ? "#000" : "#ccc",
-                type: "dashed", // 修改为虚线
-                opacity: 0.2,
-              },
-            },
-            min: windSpeedMin,
-            max: windSpeedMax, // 动态设置最大值
-            splitNumber,
-            interval: parseFloat(
-              ((windSpeedMax - windSpeedMin) / splitNumber).toFixed(4)
-            ),
-            axisLabel: {
-              formatter(value) {
-                return parseFloat(value.toFixed(1));
-              },
-            },
-          },
-        ],
-        series: series,
-      };
-      if (this.from === "index") {
-        option.backgroundColor = "";
-      }
-      if (!this.theme) {
-        option.backgroundColor = "";
-      }
-      // 基于准备好的dom,初始化echarts实例
-      let dom = document.getElementById(name);
-      dom.removeAttribute("_echarts_instance_")
-        ? dom.removeAttribute("_echarts_instance_")
-        : "";
-      let myChart = this.$echarts.init(dom, this.echartsTheme);
-      myChart.setOption(option);
-      window.addEventListener("resize", function () {
-        myChart.resize();
-      });
-    },
-    // 日发电量预测table
-    getTableData() {
-      let that = this;
-      let pickStartTime = that.getElecTime(that.dateVal[0]);
-      let pickStartTime15 = that.getElecTime(that.dateVal[0], "15");
-      let pickEndTime = that.getElecTime(that.dateVal[1]);
-      let pickEndTime15 = that.getElecTime(that.dateVal[1], "15");
-      that.tableData = [];
-      let params = {
-        beginDataTime: pickStartTime,
-        beginDataTime15: pickStartTime15,
-        endDataTime: pickEndTime,
-        endDataTime15: pickEndTime15,
-        leadTime: that.chooseExceedTimeFv,
-        stationNumber: that.windTurbines,
-        itemVal: that.windTurbinesVal,
-        // jg: that.rJianStr
-        jg: 1,
-      };
-      apiGetdailyPowerComparisonTableData(params).then((datas) => {
-        if (datas && datas.data) {
-          that.loading = false;
-          if (datas.data.dataFormatList) {
-            datas.data.dataFormatList.forEach((item) => {
-              for (let i in item) {
-                if (i !== "dataTime") {
-                  item[i] = that.$utils.isHasNum(item[i]);
-                }
-              }
-              //同期实际比率
-              item.tqActualRatio = that.$utils.ratioCalculation(
-                item.actualPowerDq,
-                item.actualPowerTq
-              );
-              //同期超短期比率
-              item.tqUltraRatio = that.$utils.ratioCalculation(
-                item.veryShortTermForecastDq,
-                item.veryShortTermForecastTq
-              );
-              //同期短期比率
-              item.tqShortRatio = that.$utils.ratioCalculation(
-                item.shortTermForecastDq,
-                item.shortTermForecastTq
-              );
-            });
-            that.tableData = datas.data.dataFormatList;
+                const splitNumber = 5;
 
-            for (let i = 0; i < that.tableData.length; i++) {
-              let item = that.tableData[i];
-              let items = that.tableData[i + 1];
-              if (i === 0) {
-                item.veryTimeVs = item.veryShortTermForecastDq;
-                item.shortTimeVs = item.shortTermForecastDq;
-                if (
-                  item.veryShortTermForecastDq !== "-" &&
-                  items.veryShortTermForecastDq !== "-"
-                ) {
-                  items.veryTimeVs = Number(
-                    Number(items.veryShortTermForecastDq) -
-                      Number(item.veryShortTermForecastDq)
-                  ).toFixed(2);
-                } else {
-                  items.veryTimeVs = "-";
-                }
-                if (
-                  item.shortTermForecastDq !== "-" &&
-                  items.shortTermForecastDq !== "-"
-                ) {
-                  items.shortTimeVs = Number(
-                    Number(items.shortTermForecastDq) -
-                      Number(item.shortTermForecastDq)
-                  ).toFixed(2);
-                } else {
-                  items.shortTimeVs = "-";
-                }
-              } else {
-                if (items) {
-                  if (
-                    item.veryShortTermForecastDq !== "-" &&
-                    items.veryShortTermForecastDq !== "-"
-                  ) {
-                    items.veryTimeVs = Number(
-                      Number(items.veryShortTermForecastDq) -
-                        Number(item.veryShortTermForecastDq)
-                    ).toFixed(2);
-                  } else {
-                    items.veryTimeVs = "-";
-                  }
-                  if (
-                    item.shortTermForecastDq !== "-" &&
-                    items.shortTermForecastDq !== "-"
-                  ) {
-                    items.shortTimeVs = Number(
-                      Number(items.shortTermForecastDq) -
-                        Number(item.shortTermForecastDq)
-                    ).toFixed(2);
-                  } else {
-                    items.shortTimeVs = "-";
-                  }
-                }
-                // else {
-                //     items.veryTimeVs = '-'
-                //     items.shortTimeVs = '-'
-                // }
-              }
-            }
-          }
-        }
-      });
-    },
-    //转换时间
-    getElecTime(date, type) {
-      var y = date.getFullYear();
-      var m = date.getMonth() + 1;
-      m = m < 10 ? "0" + m : m;
-      var d = date.getDate();
-      d = d < 10 ? "0" + d : d;
-      var h = date.getHours();
-      h = h < 10 ? "0" + h : h;
-      var minute = date.getMinutes();
-      minute = minute < 10 ? "0" + minute : minute;
-      let timeF = "";
-      timeF = y + "-" + m + "-" + d + " " + h + ":" + minute;
-      if (type !== "15") {
-        return this.$utils.changeElectricPickDate(timeF) + ":00";
-      } else {
-        return this.$utils.changePowerPickDate(timeF) + ":00";
-      }
-    },
-    exportExcel() {
-      let $e = this.$refs["report-table_day"].$el;
-      try {
-        let $table = $e.querySelector(".el-table__fixed");
-        if (!$table) {
-          $table = $e;
-        }
-        const wb = XLSX.utils.table_to_book($table, {
-          raw: true,
-        });
-        if (wb && wb.Sheets.Sheet1) {
-          let as = ["!cols", "!fullref", "!merges", "!ref", "!rows"];
-          let bs = [
-            "时间",
-            "理论电量",
-            "当期数据",
-            "可用电量",
-            "实际电量",
-            "超短期预测",
-            "短期预测",
-            "同期数据",
-            "同期比率",
-            "环比数据",
-            "环比比率",
-            "累计",
-            "时刻",
-          ];
-          for (let i in wb.Sheets.Sheet1) {
-            if (as.indexOf(i) < 0) {
-              if (bs.indexOf(wb.Sheets.Sheet1[i].v) >= 0) {
-                wb.Sheets.Sheet1[i].s = {
-                  font: {
-                    name: "微软雅黑",
-                    sz: 11,
-                    bold: true,
-                    color: {
-                      rgb: "ffffff",
+                let option = {
+                    title: {
+                        text: "电量",
+                    },
+                    tooltip: {
+                        trigger: "axis",
+                    },
+                    legend: {
+                        right: "20",
+                        data: legend,
                     },
-                  },
-                  alignment: {
-                    horizontal: "center",
-                    vertical: "center",
-                  },
-                  fill: {
-                    fgColor: {
-                      rgb: "4f81bd",
+                    grid: {
+                        left: "5%",
+                        right: "4%",
+                        bottom: "3%",
+                        containLabel: true,
                     },
-                  },
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xAxis,
+                    },
+                    yAxis: [{
+                            type: "value",
+                            name: "万千瓦时(Wkw/h)",
+                            splitLine: {
+                                lineStyle: {
+                                    color: this.$store.state.theme ? "#000" : "#ccc",
+                                    type: "dashed", // 修改为虚线
+                                    opacity: 0.2,
+                                },
+                            },
+                            min: powerMin,
+                            max: powerMax, // 动态设置最大值
+                            interval: parseFloat(
+                                ((powerMax - powerMin) / splitNumber).toFixed(4)
+                            ),
+                            splitNumber,
+                            axisLabel: {
+                                formatter(value) {
+                                    return parseInt(value);
+                                },
+                            },
+                        },
+                        {
+                            type: "value",
+                            name: "风速(m/s)",
+                            splitLine: {
+                                lineStyle: {
+                                    color: this.$store.state.theme ? "#000" : "#ccc",
+                                    type: "dashed", // 修改为虚线
+                                    opacity: 0.2,
+                                },
+                            },
+                            min: windSpeedMin,
+                            max: windSpeedMax, // 动态设置最大值
+                            splitNumber,
+                            interval: parseFloat(
+                                ((windSpeedMax - windSpeedMin) / splitNumber).toFixed(4)
+                            ),
+                            axisLabel: {
+                                formatter(value) {
+                                    return parseFloat(value.toFixed(1));
+                                },
+                            },
+                        },
+                    ],
+                    series: series,
                 };
-                if (i === "A1") {
-                  wb.Sheets.Sheet1["!cols"].push({
-                    wch: 30,
-                  });
-                } else if (i === "B1") {
-                  wb.Sheets.Sheet1["!cols"].push({
-                    wch: 20,
-                  });
-                } else {
-                  wb.Sheets.Sheet1["!cols"].push({
-                    wch: 15,
-                  });
+                if (this.from === "index") {
+                    option.backgroundColor = "";
                 }
-              } else {
-                wb.Sheets.Sheet1[i].s = {
-                  font: {
-                    name: "微软雅黑",
-                    sz: 10,
-                    bold: false,
-                    color: {
-                      rgb: "000000",
-                    },
-                  },
-                  alignment: {
-                    horizontal: "center",
-                    vertical: "center",
-                  },
-                  // fill:{fgColor: {rgb: '4f81bd'}}
+                if (!this.theme) {
+                    option.backgroundColor = "";
+                }
+                // 基于准备好的dom,初始化echarts实例
+                let dom = document.getElementById(name);
+                dom.removeAttribute("_echarts_instance_") ?
+                    dom.removeAttribute("_echarts_instance_") :
+                    "";
+                let myChart = this.$echarts.init(dom, this.echartsTheme);
+                myChart.setOption(option);
+                window.addEventListener("resize", function () {
+                    myChart.resize();
+                });
+            },
+            // 日发电量预测table
+            getTableData() {
+                let that = this;
+                let pickStartTime = that.getElecTime(that.dateVal[0]);
+                let pickStartTime15 = that.getElecTime(that.dateVal[0], "15");
+                let pickEndTime = that.getElecTime(that.dateVal[1]);
+                let pickEndTime15 = that.getElecTime(that.dateVal[1], "15");
+                that.tableData = [];
+                let params = {
+                    beginDataTime: pickStartTime,
+                    beginDataTime15: pickStartTime15,
+                    endDataTime: pickEndTime,
+                    endDataTime15: pickEndTime15,
+                    leadTime: that.chooseExceedTimeFv,
+                    stationNumber: that.windTurbines,
+                    itemVal: that.windTurbinesVal,
+                    // jg: that.rJianStr
+                    jg: 1,
                 };
-              }
-            }
-          }
-        }
+                apiGetdailyPowerComparisonTableData(params).then((datas) => {
+                    if (datas && datas.data) {
+                        that.loading = false;
+                        if (datas.data.dataFormatList) {
+                            datas.data.dataFormatList.forEach((item) => {
+                                for (let i in item) {
+                                    if (i !== "dataTime") {
+                                        item[i] = that.$utils.isHasNum(item[i]);
+                                    }
+                                }
+                                //同期实际比率
+                                item.tqActualRatio = that.$utils.ratioCalculation(
+                                    item.actualPowerDq,
+                                    item.actualPowerTq
+                                );
+                                //同期超短期比率
+                                item.tqUltraRatio = that.$utils.ratioCalculation(
+                                    item.veryShortTermForecastDq,
+                                    item.veryShortTermForecastTq
+                                );
+                                //同期短期比率
+                                item.tqShortRatio = that.$utils.ratioCalculation(
+                                    item.shortTermForecastDq,
+                                    item.shortTermForecastTq
+                                );
+                            });
+                            that.tableData = datas.data.dataFormatList;
 
-        const wbout = XLSXD.write(wb, {
-          bookType: "xlsx",
-          bookSST: true,
-          type: "array",
-        });
-        saveAs(
-          new Blob([wbout], {
-            type: "application/octet-stream",
-          }),
-          `${this.title}.xlsx`
-        );
-      } catch (e) {
-        if (typeof console !== "undefined") console.error(e);
-      }
-    },
-  },
-};
+                            for (let i = 0; i < that.tableData.length; i++) {
+                                let item = that.tableData[i];
+                                let items = that.tableData[i + 1];
+                                if (i === 0) {
+                                    item.veryTimeVs = item.veryShortTermForecastDq;
+                                    item.shortTimeVs = item.shortTermForecastDq;
+                                    if (
+                                        item.veryShortTermForecastDq !== "-" &&
+                                        items.veryShortTermForecastDq !== "-"
+                                    ) {
+                                        items.veryTimeVs = Number(
+                                            Number(items.veryShortTermForecastDq) -
+                                            Number(item.veryShortTermForecastDq)
+                                        ).toFixed(2);
+                                    } else {
+                                        items.veryTimeVs = "-";
+                                    }
+                                    if (
+                                        item.shortTermForecastDq !== "-" &&
+                                        items.shortTermForecastDq !== "-"
+                                    ) {
+                                        items.shortTimeVs = Number(
+                                            Number(items.shortTermForecastDq) -
+                                            Number(item.shortTermForecastDq)
+                                        ).toFixed(2);
+                                    } else {
+                                        items.shortTimeVs = "-";
+                                    }
+                                } else {
+                                    if (items) {
+                                        if (
+                                            item.veryShortTermForecastDq !== "-" &&
+                                            items.veryShortTermForecastDq !== "-"
+                                        ) {
+                                            items.veryTimeVs = Number(
+                                                Number(items.veryShortTermForecastDq) -
+                                                Number(item.veryShortTermForecastDq)
+                                            ).toFixed(2);
+                                        } else {
+                                            items.veryTimeVs = "-";
+                                        }
+                                        if (
+                                            item.shortTermForecastDq !== "-" &&
+                                            items.shortTermForecastDq !== "-"
+                                        ) {
+                                            items.shortTimeVs = Number(
+                                                Number(items.shortTermForecastDq) -
+                                                Number(item.shortTermForecastDq)
+                                            ).toFixed(2);
+                                        } else {
+                                            items.shortTimeVs = "-";
+                                        }
+                                    }
+                                    // else {
+                                    //     items.veryTimeVs = '-'
+                                    //     items.shortTimeVs = '-'
+                                    // }
+                                }
+                            }
+                        }
+                    }
+                });
+            },
+            //转换时间
+            getElecTime(date, type) {
+                var y = date.getFullYear();
+                var m = date.getMonth() + 1;
+                m = m < 10 ? "0" + m : m;
+                var d = date.getDate();
+                d = d < 10 ? "0" + d : d;
+                var h = date.getHours();
+                h = h < 10 ? "0" + h : h;
+                var minute = date.getMinutes();
+                minute = minute < 10 ? "0" + minute : minute;
+                let timeF = "";
+                timeF = y + "-" + m + "-" + d + " " + h + ":" + minute;
+                if (type !== "15") {
+                    return this.$utils.changeElectricPickDate(timeF) + ":00";
+                } else {
+                    return this.$utils.changePowerPickDate(timeF) + ":00";
+                }
+            },
+            exportExcel() {
+                let $e = this.$refs["report-table_day"].$el;
+                try {
+                    let $table = $e.querySelector(".el-table__fixed");
+                    if (!$table) {
+                        $table = $e;
+                    }
+                    const wb = XLSX.utils.table_to_book($table, {
+                        raw: true,
+                    });
+                    if (wb && wb.Sheets.Sheet1) {
+                        let as = ["!cols", "!fullref", "!merges", "!ref", "!rows"];
+                        let bs = [
+                            "时间",
+                            "理论电量",
+                            "当期数据",
+                            "可用电量",
+                            "实际电量",
+                            "超短期预测",
+                            "短期预测",
+                            "同期数据",
+                            "同期比率",
+                            "环比数据",
+                            "环比比率",
+                            "累计",
+                            "时刻",
+                        ];
+                        for (let i in wb.Sheets.Sheet1) {
+                            if (as.indexOf(i) < 0) {
+                                if (bs.indexOf(wb.Sheets.Sheet1[i].v) >= 0) {
+                                    wb.Sheets.Sheet1[i].s = {
+                                        font: {
+                                            name: "微软雅黑",
+                                            sz: 11,
+                                            bold: true,
+                                            color: {
+                                                rgb: "ffffff",
+                                            },
+                                        },
+                                        alignment: {
+                                            horizontal: "center",
+                                            vertical: "center",
+                                        },
+                                        fill: {
+                                            fgColor: {
+                                                rgb: "4f81bd",
+                                            },
+                                        },
+                                    };
+                                    if (i === "A1") {
+                                        wb.Sheets.Sheet1["!cols"].push({
+                                            wch: 30,
+                                        });
+                                    } else if (i === "B1") {
+                                        wb.Sheets.Sheet1["!cols"].push({
+                                            wch: 20,
+                                        });
+                                    } else {
+                                        wb.Sheets.Sheet1["!cols"].push({
+                                            wch: 15,
+                                        });
+                                    }
+                                } else {
+                                    wb.Sheets.Sheet1[i].s = {
+                                        font: {
+                                            name: "微软雅黑",
+                                            sz: 10,
+                                            bold: false,
+                                            color: {
+                                                rgb: "000000",
+                                            },
+                                        },
+                                        alignment: {
+                                            horizontal: "center",
+                                            vertical: "center",
+                                        },
+                                        // fill:{fgColor: {rgb: '4f81bd'}}
+                                    };
+                                }
+                            }
+                        }
+                    }
+
+                    const wbout = XLSXD.write(wb, {
+                        bookType: "xlsx",
+                        bookSST: true,
+                        type: "array",
+                    });
+                    saveAs(
+                        new Blob([wbout], {
+                            type: "application/octet-stream",
+                        }),
+                        `${this.title}.xlsx`
+                    );
+                } catch (e) {
+                    if (typeof console !== "undefined") console.error(e);
+                }
+            },
+        },
+    };
 </script>
 
 <style lang="less">
-.globalDiaMain {
-  .main_top {
-    .main_top_left {
-      .exceed {
-        .el-date-editor {
-          .el-input__prefix {
-            margin-left: 5px !important;
-          }
+    .globalDiaMain {
+        .main_top {
+            .main_top_left {
+                .exceed {
+                    .el-date-editor {
+                        .el-input__prefix {
+                            margin-left: 5px !important;
+                        }
+                    }
+                }
+            }
         }
-      }
     }
-  }
-}
 
-.themeDa {
-  .main_top {
-    .main_top_left {
-      .exceed {
-        color: #fff;
-      }
+    .themeDa {
+        .main_top {
+            .main_top_left {
+                .exceed {
+                    color: #fff;
+                }
+            }
+        }
     }
-  }
-}
 
-.themeLi {
-  .main_top {
-    .main_top_left {
-      .exceed {
-        color: #000;
-      }
+    .themeLi {
+        .main_top {
+            .main_top_left {
+                .exceed {
+                    color: #000;
+                }
+            }
+        }
     }
-  }
-}
 </style>

+ 542 - 642
src/components/powerPredictionComponent/batteryDivinerDialog/monthAndYearBatterDialog.vue

@@ -1,678 +1,578 @@
 <template>
-  <el-dialog
-    custom-class="windLifeDialog"
-    :title="title"
-    v-model="dialogVisible"
-    :fullscreen="true"
-    :close-on-click-modal="false"
-    @close="closeDialog"
-  >
-    <div
-      class="globalDiaMain"
-      v-loading="loading"
-      :class="!theme ? 'themeDa' : 'themeLi'"
-    >
-      <div class="main_top">
-        <div class="main_top_left">
-          <div class="exceed">
-            <span style="margin-top: 3px">时间:</span>
-            <el-date-picker
-              v-model="monthVal"
-              v-if="isMonth"
-              type="daterange"
-              value-format="YYYY-MM-DD"
-              :clearable="false"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-            >
-            </el-date-picker>
-            <el-date-picker
-              v-model="yearVal"
-              v-else
-              type="monthrange"
-              value-format="YYYY-MM"
-              range-separator="至"
-              start-placeholder="开始月份"
-              end-placeholder="结束月份"
-            >
-            </el-date-picker>
-          </div>
-          <div class="exceed">
-            <span style="margin-top: 3px">超前:</span>
-            <el-select
-              style="width: 130px"
-              class="exTime"
-              v-model="chooseExceedTimeFv"
-              placeholder="请选择"
-            >
-              <el-option
-                v-for="item in ExceedTimeList"
-                :key="item.value"
-                :label="item.label"
-                :disabled="item.disabled"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
-          </div>
-          <el-button type="primary" @click="seachData">查 询</el-button>
-          <el-button @click="exportExcel">导出查询结果</el-button>
+    <el-dialog custom-class="windLifeDialog" :title="title" v-model="dialogVisible" :fullscreen="true"
+        :close-on-click-modal="false" @close="closeDialog">
+        <div class="globalDiaMain" v-loading="loading" :class="!theme ? 'themeDa' : 'themeLi'">
+            <div class="main_top">
+                <div class="main_top_left">
+                    <div class="exceed">
+                        <span style="margin-top: 3px">时间:</span>
+                        <el-date-picker v-model="monthVal" v-if="isMonth" type="daterange" value-format="YYYY-MM-DD"
+                            :clearable="false" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
+                        </el-date-picker>
+                        <el-date-picker v-model="yearVal" v-else type="monthrange" value-format="YYYY-MM"
+                            range-separator="至" start-placeholder="开始月份" end-placeholder="结束月份">
+                        </el-date-picker>
+                    </div>
+                    <div class="exceed">
+                        <span style="margin-top: 3px">超前:</span>
+                        <el-select style="width: 130px" class="exTime" v-model="chooseExceedTimeFv" placeholder="请选择">
+                            <el-option v-for="item in ExceedTimeList" :key="item.value" :label="item.label"
+                                :disabled="item.disabled" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </div>
+                    <el-button type="primary" @click="seachData">查 询</el-button>
+                    <el-button @click="exportExcel">导出查询结果</el-button>
+                </div>
+            </div>
+            <div class="main_charts">
+                <div id="centersCharts" class="chartsStyle"></div>
+            </div>
+            <div class="main_table warn-table" style="margin-top: 20px">
+                <el-table :data="tableData" ref="report-table" border max-height="50vh" style="width: 100%"
+                    :header-cell-style="{
+                        padding: '4px',
+                        fontSize: '16px',
+                        fontWeight: bold,
+                        border: '0.5px solid rgba(0,0,0,.5) !important',
+                        }">
+                    <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
+                    <el-table-column label="当期数据" align="center">
+                        <el-table-column prop="veryShortTermForecastDq" label="计划发电" align="center"></el-table-column>
+                        <el-table-column prop="actualPowerDq" label="实际发电" align="center"></el-table-column>
+                        <el-table-column prop="shortTermForecastDq" label="预测发电" align="center"></el-table-column>
+                    </el-table-column>
+                    <el-table-column label="同期数据" align="center">
+                        <el-table-column prop="veryShortTermForecastTq" label="计划发电" align="center"></el-table-column>
+                        <el-table-column prop="actualPowerTq" label="实际发电" align="center"></el-table-column>
+                        <el-table-column prop="shortTermForecastTq" label="预测发电" align="center"></el-table-column>
+                    </el-table-column>
+                    <el-table-column label="同期比率" align="center">
+                        <el-table-column prop="tqActualRatio" label="计划发电" align="center"></el-table-column>
+                        <el-table-column prop="tqUltraRatio" label="实际发电" align="center"></el-table-column>
+                        <el-table-column prop="tqShortRatio" label="预测发电" align="center"></el-table-column>
+                    </el-table-column>
+                    <el-table-column label="环比数据" align="center">
+                        <el-table-column prop="veryShortTermForecastSy" label="计划发电" align="center"></el-table-column>
+                        <el-table-column prop="actualPowerSy" label="实际发电" align="center"></el-table-column>
+                        <el-table-column prop="shortTermForecastSy" label="预测发电" align="center"></el-table-column>
+                    </el-table-column>
+                    <el-table-column label="环比比率" align="center">
+                        <el-table-column prop="hbActualRatio" label="计划发电" align="center"></el-table-column>
+                        <el-table-column prop="hbUltraRatio" label="实际发电" align="center"></el-table-column>
+                        <el-table-column prop="hbShortRatio" label="预测发电" align="center"></el-table-column>
+                    </el-table-column>
+                </el-table>
+            </div>
         </div>
-      </div>
-      <div class="main_charts">
-        <div id="centersCharts" class="chartsStyle"></div>
-      </div>
-      <div class="main_table warn-table" style="margin-top: 20px">
-        <el-table
-          :data="tableData"
-          ref="report-table"
-          border
-          max-height="50vh"
-          style="width: 100%"
-        >
-          <el-table-column
-            prop="dataTime"
-            label="时间"
-            align="center"
-            width="160"
-          ></el-table-column>
-          <el-table-column label="当期数据" align="center">
-            <el-table-column
-              prop="veryShortTermForecastDq"
-              label="计划发电"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="actualPowerDq"
-              label="实际发电"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="shortTermForecastDq"
-              label="预测发电"
-              align="center"
-            ></el-table-column>
-          </el-table-column>
-          <el-table-column label="同期数据" align="center">
-            <el-table-column
-              prop="veryShortTermForecastTq"
-              label="计划发电"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="actualPowerTq"
-              label="实际发电"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="shortTermForecastTq"
-              label="预测发电"
-              align="center"
-            ></el-table-column>
-          </el-table-column>
-          <el-table-column label="同期比率" align="center">
-            <el-table-column
-              prop="tqActualRatio"
-              label="计划发电"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="tqUltraRatio"
-              label="实际发电"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="tqShortRatio"
-              label="预测发电"
-              align="center"
-            ></el-table-column>
-          </el-table-column>
-          <el-table-column label="环比数据" align="center">
-            <el-table-column
-              prop="veryShortTermForecastSy"
-              label="计划发电"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="actualPowerSy"
-              label="实际发电"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="shortTermForecastSy"
-              label="预测发电"
-              align="center"
-            ></el-table-column>
-          </el-table-column>
-          <el-table-column label="环比比率" align="center">
-            <el-table-column
-              prop="hbActualRatio"
-              label="计划发电"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="hbUltraRatio"
-              label="实际发电"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              prop="hbShortRatio"
-              label="预测发电"
-              align="center"
-            ></el-table-column>
-          </el-table-column>
-        </el-table>
-      </div>
-    </div>
-  </el-dialog>
+    </el-dialog>
 </template>
 
 <script>
-import * as XLSX from "xlsx";
-import { saveAs } from "file-saver";
-import * as XLSXD from "xlsx-js-style";
-import {
-  apiGetmonthlyDailyPowerComparisonChartData,
-  apiGetyearlyDailyPowerComparisonChartData,
-  apiGetmonthlyDailyPowerComparisonTableData,
-  apiGetyearlyDailyPowerComparisonTableData,
-} from "../../../api/api";
-export default {
-  props: {
-    from: {
-      type: String,
-      default: () => {
-        return "";
-      },
-    },
-    ExceedTimeList: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-    stationData: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-    echartsTheme: {
-      type: String,
-      default: () => {
-        return "";
-      },
-    },
-    theme: {
-      type: Boolean,
-      default: () => {
-        return false;
-      },
-    },
-  },
-  data() {
-    return {
-      title: "",
-      dialogVisible: false,
-      windTurbines: null,
-      windTurbinesVal: null,
-      tableData: [],
-      chooseExceedTimeFv: 0,
-      pickerTime: [],
-      monthVal: [],
-      yearVal: [],
-      loading: false,
-      isMonth: false,
-      fakeFs: [
-        {
-          name: "预测风速",
-          data: [
-            1.5, 5.7, 7, 3, 4, 9, 5, 4, 2, 3, 9, 0, 4, 5, 8, 6.4, 4, 9, 3, 2, 7,
-            1, 5, 2,
-          ],
-        },
-        {
-          name: "实际风速",
-          data: [
-            7.1, 5.9, 6, 4, 1, 2, 9, 5, 4, 5, 7, 1, 6, 9, 5, 3, 4, 2, 4, 5.6, 9,
-            1, 4.4, 3,
-          ],
+    import * as XLSX from "xlsx";
+    import {
+        saveAs
+    } from "file-saver";
+    import * as XLSXD from "xlsx-js-style";
+    import {
+        apiGetmonthlyDailyPowerComparisonChartData,
+        apiGetyearlyDailyPowerComparisonChartData,
+        apiGetmonthlyDailyPowerComparisonTableData,
+        apiGetyearlyDailyPowerComparisonTableData,
+    } from "../../../api/api";
+    export default {
+        props: {
+            from: {
+                type: String,
+                default: () => {
+                    return "";
+                },
+            },
+            ExceedTimeList: {
+                type: Array,
+                default: () => {
+                    return [];
+                },
+            },
+            stationData: {
+                type: Array,
+                default: () => {
+                    return [];
+                },
+            },
+            echartsTheme: {
+                type: String,
+                default: () => {
+                    return "";
+                },
+            },
+            theme: {
+                type: Boolean,
+                default: () => {
+                    return false;
+                },
+            },
         },
-      ],
-    };
-  },
-  created() {},
-  methods: {
-    closeDialog() {
-      this.dialogVisible = false;
-    },
-    seachData() {
-      this.loading = true;
-      this.getChartsData();
-      this.getTableData();
-    },
-    chooseVal(val) {
-      this.stationData.forEach((item) => {
-        if (item.no === val) {
-          this.windTurbinesVal = item.itemVal;
-        }
-      });
-    },
-    // 全域功率预测echarts
-    getChartsData() {
-      let that = this;
-      let params = {
-        leadTime: that.chooseExceedTimeFv,
-        stationNumber: that.windTurbines,
-        itemVal: that.windTurbinesVal,
-      };
-      if (that.isMonth) {
-        params.beginDataTime = that.monthVal[0];
-        params.endDataTime = that.monthVal[1];
-        apiGetmonthlyDailyPowerComparisonChartData(params).then((datas) => {
-          that.changeChartsData(datas);
-        });
-      } else {
-        params.beginDataTime = that.yearVal[0];
-        params.endDataTime = that.yearVal[1];
-        delete params.leadTime;
-        apiGetyearlyDailyPowerComparisonChartData(params).then((datas) => {
-          that.changeChartsData(datas);
-        });
-      }
-    },
-    //数据处理
-    changeChartsData(datas) {
-      if (datas && datas.data) {
-        let xAxis = [];
-        let series = [];
-        let legend = [];
-        if (datas.data.dateList.length > 0) {
-          datas.data.dateList.forEach((item) => {
-            if (this.isMonth) {
-              xAxis.push(item.substring(0, item.indexOf(" ")));
-            } else {
-              xAxis.push(item.substring(0, item.indexOf(" ") - 3));
-            }
-          });
-        }
-        if (datas.data.dataFormatList.length > 0) {
-          datas.data.dataFormatList.forEach((iten) => {
-            legend.push(iten.name);
-            let seriesObj = {
-              name: iten.name,
-              type: "line",
-              data: iten.data.map((it) => {
-                return this.$utils.isHasNum(it);
-              }),
-              symbol: "none",
+        data() {
+            return {
+                title: "",
+                dialogVisible: false,
+                windTurbines: null,
+                windTurbinesVal: null,
+                tableData: [],
+                chooseExceedTimeFv: 0,
+                pickerTime: [],
+                monthVal: [],
+                yearVal: [],
+                loading: false,
+                isMonth: false,
+                fakeFs: [{
+                        name: "预测风速",
+                        data: [
+                            1.5, 5.7, 7, 3, 4, 9, 5, 4, 2, 3, 9, 0, 4, 5, 8, 6.4, 4, 9, 3, 2, 7,
+                            1, 5, 2,
+                        ],
+                    },
+                    {
+                        name: "实际风速",
+                        data: [
+                            7.1, 5.9, 6, 4, 1, 2, 9, 5, 4, 5, 7, 1, 6, 9, 5, 3, 4, 2, 4, 5.6, 9,
+                            1, 4.4, 3,
+                        ],
+                    },
+                ],
             };
-            series.push(seriesObj);
-          });
-        }
-        this.getglobalLine("centersCharts", xAxis, legend, series);
-      }
-    },
-    getglobalLine(name, xAxis, legend, series) {
-      const seriesFindFs = series.some((ele) => {
-        return ele.name.indexOf("风速") !== -1;
-      });
-      if (!seriesFindFs) {
-        this.fakeFs.forEach((ele) => {
-          series.push(ele);
-        });
-      }
+        },
+        created() {},
+        methods: {
+            closeDialog() {
+                this.dialogVisible = false;
+            },
+            seachData() {
+                this.loading = true;
+                this.getChartsData();
+                this.getTableData();
+            },
+            chooseVal(val) {
+                this.stationData.forEach((item) => {
+                    if (item.no === val) {
+                        this.windTurbinesVal = item.itemVal;
+                    }
+                });
+            },
+            // 全域功率预测echarts
+            getChartsData() {
+                let that = this;
+                let params = {
+                    leadTime: that.chooseExceedTimeFv,
+                    stationNumber: that.windTurbines,
+                    itemVal: that.windTurbinesVal,
+                };
+                if (that.isMonth) {
+                    params.beginDataTime = that.monthVal[0];
+                    params.endDataTime = that.monthVal[1];
+                    apiGetmonthlyDailyPowerComparisonChartData(params).then((datas) => {
+                        that.changeChartsData(datas);
+                    });
+                } else {
+                    params.beginDataTime = that.yearVal[0];
+                    params.endDataTime = that.yearVal[1];
+                    delete params.leadTime;
+                    apiGetyearlyDailyPowerComparisonChartData(params).then((datas) => {
+                        that.changeChartsData(datas);
+                    });
+                }
+            },
+            //数据处理
+            changeChartsData(datas) {
+                if (datas && datas.data) {
+                    let xAxis = [];
+                    let series = [];
+                    let legend = [];
+                    if (datas.data.dateList.length > 0) {
+                        datas.data.dateList.forEach((item) => {
+                            if (this.isMonth) {
+                                xAxis.push(item.substring(0, item.indexOf(" ")));
+                            } else {
+                                xAxis.push(item.substring(0, item.indexOf(" ") - 3));
+                            }
+                        });
+                    }
+                    if (datas.data.dataFormatList.length > 0) {
+                        datas.data.dataFormatList.forEach((iten) => {
+                            legend.push(iten.name);
+                            let seriesObj = {
+                                name: iten.name,
+                                type: "line",
+                                data: iten.data.map((it) => {
+                                    return this.$utils.isHasNum(it);
+                                }),
+                                symbol: "none",
+                            };
+                            series.push(seriesObj);
+                        });
+                    }
+                    this.getglobalLine("centersCharts", xAxis, legend, series);
+                }
+            },
+            getglobalLine(name, xAxis, legend, series) {
+                const seriesFindFs = series.some((ele) => {
+                    return ele.name.indexOf("风速") !== -1;
+                });
+                if (!seriesFindFs) {
+                    this.fakeFs.forEach((ele) => {
+                        series.push(ele);
+                    });
+                }
 
-      const legendFindFs = legend.some((ele) => {
-        return ele.indexOf("风速") !== -1;
-      });
-      if (!seriesFindFs) {
-        this.fakeFs.forEach((ele) => {
-          legend.push(ele.name);
-        });
-      }
+                const legendFindFs = legend.some((ele) => {
+                    return ele.indexOf("风速") !== -1;
+                });
+                if (!seriesFindFs) {
+                    this.fakeFs.forEach((ele) => {
+                        legend.push(ele.name);
+                    });
+                }
 
-      let powerLineData = [];
-      let fsLineData = [];
+                let powerLineData = [];
+                let fsLineData = [];
 
-      series.forEach((ele) => {
-        ele.type = ele.type || "line";
-        ele.data.forEach((num) => {});
-        if (ele.name.indexOf("风速") !== -1) {
-          ele.yAxisIndex = 1;
-          fsLineData.push(ele.data);
-        } else {
-          ele.yAxisIndex = 0;
-          powerLineData.push(ele.data);
-        }
-      });
+                series.forEach((ele) => {
+                    ele.type = ele.type || "line";
+                    ele.data.forEach((num) => {});
+                    if (ele.name.indexOf("风速") !== -1) {
+                        ele.yAxisIndex = 1;
+                        fsLineData.push(ele.data);
+                    } else {
+                        ele.yAxisIndex = 0;
+                        powerLineData.push(ele.data);
+                    }
+                });
 
-      powerLineData.forEach((pEle) => {
-        for (let i = 0; i < pEle.length; i++) {
-          if (pEle[i] === "-") {
-            pEle.splice(i, 1);
-            i--;
-          }
-        }
-      });
+                powerLineData.forEach((pEle) => {
+                    for (let i = 0; i < pEle.length; i++) {
+                        if (pEle[i] === "-") {
+                            pEle.splice(i, 1);
+                            i--;
+                        }
+                    }
+                });
 
-      fsLineData.forEach((pEle) => {
-        for (let i = 0; i < pEle.length; i++) {
-          if (pEle[i] === "-") {
-            pEle.splice(i, 1);
-            i--;
-          }
-        }
-      });
+                fsLineData.forEach((pEle) => {
+                    for (let i = 0; i < pEle.length; i++) {
+                        if (pEle[i] === "-") {
+                            pEle.splice(i, 1);
+                            i--;
+                        }
+                    }
+                });
 
-      console.log(111, powerLineData);
-      console.log(222, fsLineData);
+                console.log(111, powerLineData);
+                console.log(222, fsLineData);
 
-      const allPowerData = [].concat(...powerLineData);
-      const powerMin = Math.min(...allPowerData);
-      const powerMax = Math.max(...allPowerData);
+                const allPowerData = [].concat(...powerLineData);
+                const powerMin = Math.min(...allPowerData);
+                const powerMax = Math.max(...allPowerData);
 
-      const allWindData = [].concat(...fsLineData);
-      const windSpeedMin = Math.min(...allWindData);
-      const windSpeedMax = Math.max(...allWindData);
+                const allWindData = [].concat(...fsLineData);
+                const windSpeedMin = Math.min(...allWindData);
+                const windSpeedMax = Math.max(...allWindData);
 
-      const splitNumber = 5;
+                const splitNumber = 5;
 
-      console.log(123, series);
+                console.log(123, series);
 
-      let option = {
-        title: {
-          text: "电量",
-        },
-        tooltip: {
-          trigger: "axis",
-        },
-        legend: {
-          right: "20",
-          data: legend,
-        },
-        grid: {
-          left: "5%",
-          right: "4%",
-          bottom: "3%",
-          containLabel: true,
-        },
-        xAxis: {
-          type: "category",
-          boundaryGap: false,
-          data: xAxis,
-        },
-        yAxis: [
-          {
-            type: "value",
-            name: "万千瓦时(Wkw/h)",
-            splitLine: {
-              lineStyle: {
-                color: this.$store.state.theme ? "#000" : "#ccc",
-                type: "dashed", // 修改为虚线
-                opacity: 0.2,
-              },
-            },
-            min: powerMin,
-            max: powerMax, // 动态设置最大值
-            interval: parseFloat(
-              ((powerMax - powerMin) / splitNumber).toFixed(4)
-            ),
-            splitNumber,
-            axisLabel: {
-              formatter(value) {
-                return parseInt(value);
-              },
-            },
-          },
-          {
-            type: "value",
-            name: "风速(m/s)",
-            splitLine: {
-              lineStyle: {
-                color: this.$store.state.theme ? "#000" : "#ccc",
-                type: "dashed", // 修改为虚线
-                opacity: 0.2,
-              },
-            },
-            min: windSpeedMin,
-            max: windSpeedMax, // 动态设置最大值
-            splitNumber,
-            interval: parseFloat(
-              ((windSpeedMax - windSpeedMin) / splitNumber).toFixed(4)
-            ),
-            axisLabel: {
-              formatter(value) {
-                return parseFloat(value.toFixed(1));
-              },
-            },
-          },
-        ],
-        series: series,
-      };
-      if (this.from === "index") {
-        option.backgroundColor = "";
-      }
-      if (!this.theme) {
-        option.backgroundColor = "";
-      }
-      // 基于准备好的dom,初始化echarts实例
-      let dom = document.getElementById(name);
-      dom.removeAttribute("_echarts_instance_")
-        ? dom.removeAttribute("_echarts_instance_")
-        : "";
-      let myChart = this.$echarts.init(dom, this.echartsTheme);
-      myChart.setOption(option);
-      window.addEventListener("resize", function () {
-        myChart.resize();
-      });
-    },
-    // 全域功率预测table
-    getTableData() {
-      let that = this;
-      let params = {
-        leadTime: that.chooseExceedTimeFv,
-        stationNumber: that.windTurbines,
-        itemVal: that.windTurbinesVal,
-      };
-      if (that.isMonth) {
-        params.beginDataTime = that.monthVal[0];
-        params.endDataTime = that.monthVal[1];
-        apiGetmonthlyDailyPowerComparisonTableData(params).then((datas) => {
-          that.changeTableData(datas);
-        });
-      } else {
-        params.beginDataTime = that.yearVal[0];
-        params.endDataTime = that.yearVal[1];
-        delete params.leadTime;
-        apiGetyearlyDailyPowerComparisonTableData(params).then((datas) => {
-          that.changeTableData(datas);
-        });
-      }
-    },
-    changeTableData(datas) {
-      if (datas && datas.data) {
-        this.loading = false;
-        if (datas.data.dataFormatList) {
-          datas.data.dataFormatList.forEach((item) => {
-            for (let i in item) {
-              if (i !== "dataTime") {
-                item[i] = this.$utils.isHasNum(item[i]);
-              } else {
-                if (!this.isMonth) {
-                  item[i] = item[i].substring(0, item[i].lastIndexOf("-"));
-                }
-              }
-            }
-            //同期计划发电
-            item.tqActualRatio = this.$utils.ratioCalculation(
-              item.veryShortTermForecastDq,
-              item.veryShortTermForecastTq
-            );
-            //同期实际发电
-            item.tqUltraRatio = this.$utils.ratioCalculation(
-              item.actualPowerDq,
-              item.actualPowerTq
-            );
-            //同期预测发电
-            item.tqShortRatio = this.$utils.ratioCalculation(
-              item.shortTermForecastDq,
-              item.shortTermForecastTq
-            );
-            //环比计划发电
-            item.hbActualRatio = this.$utils.ratioCalculation(
-              item.veryShortTermForecastDq,
-              item.veryShortTermForecastSy
-            );
-            //环比实际发电
-            item.hbUltraRatio = this.$utils.ratioCalculation(
-              item.actualPowerDq,
-              item.actualPowerSy
-            );
-            //环比预测发电
-            item.hbShortRatio = this.$utils.ratioCalculation(
-              item.shortTermForecastDq,
-              item.shortTermForecastSy
-            );
-          });
-          this.tableData = datas.data.dataFormatList;
-        }
-      }
-    },
-    exportExcel() {
-      let $e = this.$refs["report-table"].$el;
-      try {
-        let $table = $e.querySelector(".el-table__fixed");
-        if (!$table) {
-          $table = $e;
-        }
-        const wb = XLSX.utils.table_to_book($table, {
-          raw: true,
-        });
-        if (wb && wb.Sheets.Sheet1) {
-          let as = ["!cols", "!fullref", "!merges", "!ref", "!rows"];
-          let bs = [
-            "时间",
-            "当期数据",
-            "实际发电",
-            "预测发电",
-            "同期数据",
-            "同期比率",
-            "环比数据",
-            "环比比率",
-          ];
-          for (let i in wb.Sheets.Sheet1) {
-            if (as.indexOf(i) < 0) {
-              if (bs.indexOf(wb.Sheets.Sheet1[i].v) >= 0) {
-                wb.Sheets.Sheet1[i].s = {
-                  font: {
-                    name: "微软雅黑",
-                    sz: 11,
-                    bold: true,
-                    color: {
-                      rgb: "ffffff",
+                let option = {
+                    title: {
+                        text: "电量",
+                    },
+                    tooltip: {
+                        trigger: "axis",
+                    },
+                    legend: {
+                        right: "20",
+                        data: legend,
                     },
-                  },
-                  alignment: {
-                    horizontal: "center",
-                    vertical: "center",
-                  },
-                  fill: {
-                    fgColor: {
-                      rgb: "4f81bd",
+                    grid: {
+                        left: "5%",
+                        right: "4%",
+                        bottom: "3%",
+                        containLabel: true,
                     },
-                  },
+                    xAxis: {
+                        type: "category",
+                        boundaryGap: false,
+                        data: xAxis,
+                    },
+                    yAxis: [{
+                            type: "value",
+                            name: "万千瓦时(Wkw/h)",
+                            splitLine: {
+                                lineStyle: {
+                                    color: this.$store.state.theme ? "#000" : "#ccc",
+                                    type: "dashed", // 修改为虚线
+                                    opacity: 0.2,
+                                },
+                            },
+                            min: powerMin,
+                            max: powerMax, // 动态设置最大值
+                            interval: parseFloat(
+                                ((powerMax - powerMin) / splitNumber).toFixed(4)
+                            ),
+                            splitNumber,
+                            axisLabel: {
+                                formatter(value) {
+                                    return parseInt(value);
+                                },
+                            },
+                        },
+                        {
+                            type: "value",
+                            name: "风速(m/s)",
+                            splitLine: {
+                                lineStyle: {
+                                    color: this.$store.state.theme ? "#000" : "#ccc",
+                                    type: "dashed", // 修改为虚线
+                                    opacity: 0.2,
+                                },
+                            },
+                            min: windSpeedMin,
+                            max: windSpeedMax, // 动态设置最大值
+                            splitNumber,
+                            interval: parseFloat(
+                                ((windSpeedMax - windSpeedMin) / splitNumber).toFixed(4)
+                            ),
+                            axisLabel: {
+                                formatter(value) {
+                                    return parseFloat(value.toFixed(1));
+                                },
+                            },
+                        },
+                    ],
+                    series: series,
                 };
-                if (i === "A1") {
-                  wb.Sheets.Sheet1["!cols"].push({
-                    wch: 30,
-                  });
-                } else if (i === "B1") {
-                  wb.Sheets.Sheet1["!cols"].push({
-                    wch: 20,
-                  });
-                } else {
-                  wb.Sheets.Sheet1["!cols"].push({
-                    wch: 15,
-                  });
+                if (this.from === "index") {
+                    option.backgroundColor = "";
                 }
-              } else {
-                wb.Sheets.Sheet1[i].s = {
-                  font: {
-                    name: "微软雅黑",
-                    sz: 10,
-                    bold: false,
-                    color: {
-                      rgb: "000000",
-                    },
-                  },
-                  alignment: {
-                    horizontal: "center",
-                    vertical: "center",
-                  },
-                  // fill:{fgColor: {rgb: '4f81bd'}}
+                if (!this.theme) {
+                    option.backgroundColor = "";
+                }
+                // 基于准备好的dom,初始化echarts实例
+                let dom = document.getElementById(name);
+                dom.removeAttribute("_echarts_instance_") ?
+                    dom.removeAttribute("_echarts_instance_") :
+                    "";
+                let myChart = this.$echarts.init(dom, this.echartsTheme);
+                myChart.setOption(option);
+                window.addEventListener("resize", function () {
+                    myChart.resize();
+                });
+            },
+            // 全域功率预测table
+            getTableData() {
+                let that = this;
+                let params = {
+                    leadTime: that.chooseExceedTimeFv,
+                    stationNumber: that.windTurbines,
+                    itemVal: that.windTurbinesVal,
                 };
-              }
-            }
-          }
-        }
+                if (that.isMonth) {
+                    params.beginDataTime = that.monthVal[0];
+                    params.endDataTime = that.monthVal[1];
+                    apiGetmonthlyDailyPowerComparisonTableData(params).then((datas) => {
+                        that.changeTableData(datas);
+                    });
+                } else {
+                    params.beginDataTime = that.yearVal[0];
+                    params.endDataTime = that.yearVal[1];
+                    delete params.leadTime;
+                    apiGetyearlyDailyPowerComparisonTableData(params).then((datas) => {
+                        that.changeTableData(datas);
+                    });
+                }
+            },
+            changeTableData(datas) {
+                if (datas && datas.data) {
+                    this.loading = false;
+                    if (datas.data.dataFormatList) {
+                        datas.data.dataFormatList.forEach((item) => {
+                            for (let i in item) {
+                                if (i !== "dataTime") {
+                                    item[i] = this.$utils.isHasNum(item[i]);
+                                } else {
+                                    if (!this.isMonth) {
+                                        item[i] = item[i].substring(0, item[i].lastIndexOf("-"));
+                                    }
+                                }
+                            }
+                            //同期计划发电
+                            item.tqActualRatio = this.$utils.ratioCalculation(
+                                item.veryShortTermForecastDq,
+                                item.veryShortTermForecastTq
+                            );
+                            //同期实际发电
+                            item.tqUltraRatio = this.$utils.ratioCalculation(
+                                item.actualPowerDq,
+                                item.actualPowerTq
+                            );
+                            //同期预测发电
+                            item.tqShortRatio = this.$utils.ratioCalculation(
+                                item.shortTermForecastDq,
+                                item.shortTermForecastTq
+                            );
+                            //环比计划发电
+                            item.hbActualRatio = this.$utils.ratioCalculation(
+                                item.veryShortTermForecastDq,
+                                item.veryShortTermForecastSy
+                            );
+                            //环比实际发电
+                            item.hbUltraRatio = this.$utils.ratioCalculation(
+                                item.actualPowerDq,
+                                item.actualPowerSy
+                            );
+                            //环比预测发电
+                            item.hbShortRatio = this.$utils.ratioCalculation(
+                                item.shortTermForecastDq,
+                                item.shortTermForecastSy
+                            );
+                        });
+                        this.tableData = datas.data.dataFormatList;
+                    }
+                }
+            },
+            exportExcel() {
+                let $e = this.$refs["report-table"].$el;
+                try {
+                    let $table = $e.querySelector(".el-table__fixed");
+                    if (!$table) {
+                        $table = $e;
+                    }
+                    const wb = XLSX.utils.table_to_book($table, {
+                        raw: true,
+                    });
+                    if (wb && wb.Sheets.Sheet1) {
+                        let as = ["!cols", "!fullref", "!merges", "!ref", "!rows"];
+                        let bs = [
+                            "时间",
+                            "当期数据",
+                            "实际发电",
+                            "预测发电",
+                            "同期数据",
+                            "同期比率",
+                            "环比数据",
+                            "环比比率",
+                        ];
+                        for (let i in wb.Sheets.Sheet1) {
+                            if (as.indexOf(i) < 0) {
+                                if (bs.indexOf(wb.Sheets.Sheet1[i].v) >= 0) {
+                                    wb.Sheets.Sheet1[i].s = {
+                                        font: {
+                                            name: "微软雅黑",
+                                            sz: 11,
+                                            bold: true,
+                                            color: {
+                                                rgb: "ffffff",
+                                            },
+                                        },
+                                        alignment: {
+                                            horizontal: "center",
+                                            vertical: "center",
+                                        },
+                                        fill: {
+                                            fgColor: {
+                                                rgb: "4f81bd",
+                                            },
+                                        },
+                                    };
+                                    if (i === "A1") {
+                                        wb.Sheets.Sheet1["!cols"].push({
+                                            wch: 30,
+                                        });
+                                    } else if (i === "B1") {
+                                        wb.Sheets.Sheet1["!cols"].push({
+                                            wch: 20,
+                                        });
+                                    } else {
+                                        wb.Sheets.Sheet1["!cols"].push({
+                                            wch: 15,
+                                        });
+                                    }
+                                } else {
+                                    wb.Sheets.Sheet1[i].s = {
+                                        font: {
+                                            name: "微软雅黑",
+                                            sz: 10,
+                                            bold: false,
+                                            color: {
+                                                rgb: "000000",
+                                            },
+                                        },
+                                        alignment: {
+                                            horizontal: "center",
+                                            vertical: "center",
+                                        },
+                                        // fill:{fgColor: {rgb: '4f81bd'}}
+                                    };
+                                }
+                            }
+                        }
+                    }
 
-        const wbout = XLSXD.write(wb, {
-          bookType: "xlsx",
-          bookSST: true,
-          type: "array",
-        });
-        saveAs(
-          new Blob([wbout], {
-            type: "application/octet-stream",
-          }),
-          `${this.title}.xlsx`
-        );
-      } catch (e) {
-        if (typeof console !== "undefined") console.error(e);
-      }
-    },
-  },
-};
+                    const wbout = XLSXD.write(wb, {
+                        bookType: "xlsx",
+                        bookSST: true,
+                        type: "array",
+                    });
+                    saveAs(
+                        new Blob([wbout], {
+                            type: "application/octet-stream",
+                        }),
+                        `${this.title}.xlsx`
+                    );
+                } catch (e) {
+                    if (typeof console !== "undefined") console.error(e);
+                }
+            },
+        },
+    };
 </script>
 
 <style lang="less">
-@import "../SecondaryPageStyle/globalblackStyle.less";
-@import "../SecondaryPageStyle/globalwhiteStyle.less";
+    @import "../SecondaryPageStyle/globalblackStyle.less";
+    @import "../SecondaryPageStyle/globalwhiteStyle.less";
 </style>
 <style lang="less">
-.globalDiaMain {
-  .main_top {
-    .main_top_left {
-      .exceed {
-        .el-date-editor {
-          .el-input__prefix {
-            margin-left: 5px !important;
-          }
+    .globalDiaMain {
+        .main_top {
+            .main_top_left {
+                .exceed {
+                    .el-date-editor {
+                        .el-input__prefix {
+                            margin-left: 5px !important;
+                        }
+                    }
+                }
+            }
         }
-      }
     }
-  }
-}
 
-.themeDa {
-  .main_top {
-    .main_top_left {
-      .exceed {
-        color: #fff;
-      }
+    .themeDa {
+        .main_top {
+            .main_top_left {
+                .exceed {
+                    color: #fff;
+                }
+            }
+        }
     }
-  }
-}
 
-.themeLi {
-  .main_top {
-    .main_top_left {
-      .exceed {
-        color: #000;
-      }
+    .themeLi {
+        .main_top {
+            .main_top_left {
+                .exceed {
+                    color: #000;
+                }
+            }
+        }
     }
-  }
-}
 </style>

+ 14 - 2
src/components/powerPredictionComponent/homePageAssembly/globalDialogPage.vue

@@ -39,7 +39,13 @@
                     <div id="centerCharts" class="chartsStyle"></div>
                 </div>
                 <div class="warn-table" style="margin-top: 20px" v-show="title === '功率预测'">
-                    <el-table :data="tableData" ref="report-table_power" max-height="50vh" style="width: 100%">
+                    <el-table :data="tableData" ref="report-table_power" max-height="50vh" style="width: 100%"
+                        :header-cell-style="{
+                        padding: '4px',
+                        fontSize: '16px',
+                        fontWeight: bold,
+                        border: '0.5px solid rgba(0,0,0,.5) !important',
+                        }">
                         <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
                         <el-table-column prop="theoreticalPower" label="理论功率" align="center"></el-table-column>
                         <el-table-column prop="availablePower" label="可用功率" align="center"></el-table-column>
@@ -74,7 +80,13 @@
                     </el-table>
                 </div>
                 <div class="warn-table" v-show="title === '风速预测' || title === '辐照度预测'">
-                    <el-table :data="tableData" ref="report-table_wind" max-height="400px" style="width: 100%">
+                    <el-table :data="tableData" ref="report-table_wind" max-height="400px" style="width: 100%"
+                        :header-cell-style="{
+                        padding: '4px',
+                        fontSize: '16px',
+                        fontWeight: bold,
+                        border: '0.5px solid rgba(0,0,0,.5) !important',
+                        }">
                         <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
                         <el-table-column label="当期数据" align="center">
                             <el-table-column prop="actualWindSpeedDq" label="实际" align="center"></el-table-column>

+ 7 - 1
src/components/powerPredictionComponent/panoramicPowerDialog/panoramaPowerDialogPage.vue

@@ -32,7 +32,13 @@
                     </el-col>
                 </el-row>
                 <div class="main_table warn-table" style="margin-top: 20px">
-                    <el-table :data="tableData" ref="report-table" border max-height="50vh" style="width: 100%">
+                    <el-table :data="tableData" ref="report-table" border max-height="50vh" style="width: 100%"
+                        :header-cell-style="{
+                        padding: '4px',
+                        fontSize: '16px',
+                        fontWeight: bold,
+                        border: '0.5px solid rgba(0,0,0,.5) !important',
+                        }">
                         <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
                         <el-table-column prop="theoreticalPower" label="理论功率" align="center"></el-table-column>
                         <el-table-column prop="availablePower" label="可用功率" align="center"></el-table-column>

+ 14 - 2
src/components/powerPredictionComponent/powerPredictionDialog/predictionDialogPage.vue

@@ -30,7 +30,13 @@
                     <div id="centerCharts" class="chartsStyle"></div>
                 </div>
                 <div class="main_table warn-table" style="margin-top: 20px" v-show="isPower">
-                    <el-table :data="tableData" ref="report-table_power" border max-height="50vh" style="width: 100%">
+                    <el-table :data="tableData" ref="report-table_power" border max-height="50vh" style="width: 100%"
+                        :header-cell-style="{
+                        padding: '4px',
+                        fontSize: '16px',
+                        fontWeight: bold,
+                        border: '0.5px solid rgba(0,0,0,.5) !important',
+                        }">
                         <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
                         <el-table-column prop="theoreticalPower" label="理论功率" align="center"></el-table-column>
                         <el-table-column prop="availablePower" label="可用功率" align="center"></el-table-column>
@@ -65,7 +71,13 @@
                     </el-table>
                 </div>
                 <div class="main_table warn-table" v-show="!isPower">
-                    <el-table :data="tableData" ref="report-table_wind" border max-height="400px" style="width: 100%">
+                    <el-table :data="tableData" ref="report-table_wind" border max-height="400px" style="width: 100%"
+                        :header-cell-style="{
+                        padding: '4px',
+                        fontSize: '16px',
+                        fontWeight: bold,
+                        border: '0.5px solid rgba(0,0,0,.5) !important',
+                        }">
                         <el-table-column prop="dataTime" label="时间" align="center" width="160"></el-table-column>
                         <el-table-column label="当期数据" align="center">
                             <el-table-column prop="actualWindSpeedDq" label="实际风速" align="center"></el-table-column>

+ 19 - 1
src/views/generatingCapacity/dataAnalysis/lineAnalysis/index.vue

@@ -95,7 +95,7 @@
             :xAxis="barxAxis"
             :yAxis="baryAxis"
             :series="barSeries"
-            :colors="['#22a6b3', '#05bc4c', '#C531C7', '#4b55ae', '#fa8c16', '#1DA0D7','#DD5044']"
+            :colors="['#22a6b3', '#05bc4c', '#C531C7', '#4b55ae', '#fa8c16', '#1DA0D7','#DD5044','#1467e3']"
           >
           </bar-chart-cop>
         </div>
@@ -551,6 +551,12 @@ const barSeries = ref([
     data: [],
   },
   {
+    name: "0~3m风速",
+    type: "bar",
+    stack: "a",
+    data: [],
+  },
+  {
     name: "3~5m风速",
     type: "bar",
     stack: "a",
@@ -622,6 +628,12 @@ const funTimeArea = () => {
               data: [],
             },
             {
+              name: "0~3m风速",
+              type: "bar",
+              stack: "a",
+              data: [],
+            },
+            {
               name: "3~5m风速",
               type: "bar",
               stack: "a",
@@ -722,6 +734,12 @@ const funTimeArea = () => {
             data: [],
           },
           {
+            name: "0~3m风速",
+            type: "bar",
+            stack: "a",
+            data: [],
+          },
+          {
             name: "3~5m风速",
             type: "bar",
             stack: "a",