Jelajahi Sumber

增加风功率页面

sunzehao 1 bulan lalu
induk
melakukan
65ed72d9b9

+ 131 - 131
src/router/index.js

@@ -585,31 +585,31 @@ export const asyncRoutes = [
     },
     // 报表管理
     {
-        path: "/report",
-        name: "report",
-        redirect: "report/reportst/fdxnyrb",
+        path: "/sxReport",
+        name: "sxReport",
+        redirect: "sxReport/statistical/station",
         meta: {
             title: "报表管理",
             icon: "",
             permissions: ["jn_zhbb"],
         },
-        component: () => import("@/views/report"),
+        component: () => import("@/views/sxReport"),
         children: [
             {
             path: "statistical",
             redirect: "stationStatistical/station",
-            name: "electricReport",
+            name: "statistical",
             meta: {
                 title: "统计分析管理",
                 elIcon: "TrendCharts",
                 permissions: ["jn_dlbb"],
             },
-            component: () => import("@/views/report/stationReport"),
+            component: () => import("@/views/sxReport/stationStatistical"),
             children: [
                 {
                 path: "station",
-                name: "dmb",
-                component: () => import("@/views/report/stationReport/fczybb"),
+                name: "stationStat",
+                component: () => import("@/views/sxReport/stationStatistical/stationSta"),
                 meta: {
                     title: "场站统计分析",
                     icon: "",
@@ -618,129 +618,129 @@ export const asyncRoutes = [
                 },
                 ],
             },
-            {
-                path: "reportst",
-                meta: {
-                    title: "统计分析查看",
-                    elIcon: "Checked",
-                    permissions: ["jn_zdz"],
-                },
-                component: () => import("@/views/report/stationReport"),
-                children: [
-                    {
-                    path: "fdxnyrb",
-                    name: "fdxnyrb",
-                    component: () => import("@/views/report/stationReport/fdxnyrb"),
-                    meta: {
-                        title: "表低查询",
-                        icon: "",
-                        permissions: ["jn_zdz_fdxnyrb"],
-                    },
-                    },
-                    {
-                    path: "gfxnyrb",
-                    name: "gfxnyrb",
-                    component: () => import("@/views/report/stationReport/fdczzdy"),
-                    meta: {
-                        title: "公司月度数据",
-                        icon: "",
-                        permissions: ["jn_zdz_gfxnyrb"],
-                    },
-                    },
-                ],
-            },
-            {
-            path: "dayReport",
-            redirect: "dayReport/dmb",
-            name: "dayReport",
-            meta: {
-                title: "日报表管理",
-                elIcon: "DataAnalysis",
-                permissions: ["jn_dlbb"],
-            },
-            component: () => import("@/views/report/stationReport"),
-            children: [
-                {
-                path: "dmb",
-                name: "dmb",
-                component: () => import("@/views/report/stationReport/fczybb"),
-                meta: {
-                    title: "生产运营日报外报",
-                    icon: "",
-                    permissions: ["jn_dlbb_dmb"],
-                },
-                },
-                ],
-            },
-            {
-                path: "monthReport",
-                redirect: "monthReport/dmb",
-                name: "monthReport",
-                meta: {
-                    title: "月报报表管理",
-                    elIcon: "Platform",
-                    permissions: ["jn_dlbb"],
-                },
-                component: () => import("@/views/report/stationReport"),
-                children: [
-                    {
-                    path: "dmb",
-                    name: "dmb",
-                    component: () => import("@/views/report/stationReport/fczybb"),
-                    meta: {
-                        title: "MIS月报1",
-                        icon: "",
-                        permissions: ["jn_dlbb_dmb"],
-                    },
-                    },
-                ],
-            },
-            {
-                path: "companyReport",
-                redirect: "companyReport/dmb",
-                name: "companyReport",
-                meta: {
-                    title: "集团快报报表管理",
-                    elIcon: "PieChart",
-                    permissions: ["jn_dlbb"],
-                },
-                component: () => import("@/views/report/stationReport"),
-                children: [
-                    {
-                    path: "dmb",
-                    name: "dmb",
-                    component: () => import("@/views/report/stationReport/fczybb"),
-                    meta: {
-                        title: "广灵集团快报",
-                        icon: "",
-                        permissions: ["jn_dlbb_dmb"],
-                    },
-                    },
-                ],
-            },
-            {
-                path: "weekReport",
-                redirect: "weekReport/dmb",
-                name: "weekReport",
-                meta: {
-                    title: "周报报表管理",
-                    elIcon: "Odometer",
-                    permissions: ["jn_dlbb"],
-                },
-                component: () => import("@/views/report/stationReport"),
-                children: [
-                    {
-                    path: "dmb",
-                    name: "dmb",
-                    component: () => import("@/views/report/stationReport/fczybb"),
-                    meta: {
-                        title: "周报",
-                        icon: "",
-                        permissions: ["jn_dlbb_dmb"],
-                    },
-                    },
-                ],
-            },
+            // {
+            //     path: "reportst",
+            //     meta: {
+            //         title: "统计分析查看",
+            //         elIcon: "Checked",
+            //         permissions: ["jn_zdz"],
+            //     },
+            //     component: () => import("@/views/report/stationReport"),
+            //     children: [
+            //         {
+            //         path: "fdxnyrb",
+            //         name: "fdxnyrb",
+            //         component: () => import("@/views/report/stationReport/fdxnyrb"),
+            //         meta: {
+            //             title: "表低查询",
+            //             icon: "",
+            //             permissions: ["jn_zdz_fdxnyrb"],
+            //         },
+            //         },
+            //         {
+            //         path: "gfxnyrb",
+            //         name: "gfxnyrb",
+            //         component: () => import("@/views/report/stationReport/fdczzdy"),
+            //         meta: {
+            //             title: "公司月度数据",
+            //             icon: "",
+            //             permissions: ["jn_zdz_gfxnyrb"],
+            //         },
+            //         },
+            //     ],
+            // },
+            // {
+            // path: "dayReport",
+            // redirect: "dayReport/dmb",
+            // name: "dayReport",
+            // meta: {
+            //     title: "日报表管理",
+            //     elIcon: "DataAnalysis",
+            //     permissions: ["jn_dlbb"],
+            // },
+            // component: () => import("@/views/report/stationReport"),
+            // children: [
+            //     {
+            //     path: "dmb",
+            //     name: "dmb",
+            //     component: () => import("@/views/report/stationReport/fczybb"),
+            //     meta: {
+            //         title: "生产运营日报外报",
+            //         icon: "",
+            //         permissions: ["jn_dlbb_dmb"],
+            //     },
+            //     },
+            //     ],
+            // },
+            // {
+            //     path: "monthReport",
+            //     redirect: "monthReport/dmb",
+            //     name: "monthReport",
+            //     meta: {
+            //         title: "月报报表管理",
+            //         elIcon: "Platform",
+            //         permissions: ["jn_dlbb"],
+            //     },
+            //     component: () => import("@/views/report/stationReport"),
+            //     children: [
+            //         {
+            //         path: "dmb",
+            //         name: "dmb",
+            //         component: () => import("@/views/report/stationReport/fczybb"),
+            //         meta: {
+            //             title: "MIS月报1",
+            //             icon: "",
+            //             permissions: ["jn_dlbb_dmb"],
+            //         },
+            //         },
+            //     ],
+            // },
+            // {
+            //     path: "companyReport",
+            //     redirect: "companyReport/dmb",
+            //     name: "companyReport",
+            //     meta: {
+            //         title: "集团快报报表管理",
+            //         elIcon: "PieChart",
+            //         permissions: ["jn_dlbb"],
+            //     },
+            //     component: () => import("@/views/report/stationReport"),
+            //     children: [
+            //         {
+            //         path: "dmb",
+            //         name: "dmb",
+            //         component: () => import("@/views/report/stationReport/fczybb"),
+            //         meta: {
+            //             title: "广灵集团快报",
+            //             icon: "",
+            //             permissions: ["jn_dlbb_dmb"],
+            //         },
+            //         },
+            //     ],
+            // },
+            // {
+            //     path: "weekReport",
+            //     redirect: "weekReport/dmb",
+            //     name: "weekReport",
+            //     meta: {
+            //         title: "周报报表管理",
+            //         elIcon: "Odometer",
+            //         permissions: ["jn_dlbb"],
+            //     },
+            //     component: () => import("@/views/report/stationReport"),
+            //     children: [
+            //         {
+            //         path: "dmb",
+            //         name: "dmb",
+            //         component: () => import("@/views/report/stationReport/fczybb"),
+            //         meta: {
+            //             title: "周报",
+            //             icon: "",
+            //             permissions: ["jn_dlbb_dmb"],
+            //         },
+            //         },
+            //     ],
+            // },
             
         ],
     },

+ 6 - 5
src/views/layout/Header.vue

@@ -128,9 +128,9 @@ export default {
           isActive: false,
         },
         {
-          id: "report",
-          text: "智能报表",
-          path: "/report",
+          id: "sxReport",
+          text: "报表管理",
+          path: "/sxReport",
           isActive: false,
         },
       ],
@@ -200,6 +200,7 @@ export default {
             }
           }
         });
+
         // currMenu.splice(2, 0, {
         //   id: "zhbj",
         //   text: "综合报警",
@@ -261,8 +262,8 @@ export default {
       }  else if (data.path === "/powerPrediction") {
         this.activeIndex = index;
         this.$router.replace(`${data.path}/index`);
-      } else if (data.path === "/report") {
-        this.$router.replace(`${data.path}/reportst/fdxnyrb`);
+      } else if (data.path === "/sxReport") {
+        this.$router.replace(`${data.path}/statistical/station`);
       } else {
         this.activeIndex = index;
         this.$router.push(data.path);

+ 3 - 2
src/views/layout/Menu.vue

@@ -267,8 +267,8 @@ export default {
           data: [],
         },
         {
-          id: "report",
-          text: "智能报表",
+          id: "sxReport",
+          text: "报表管理",
           data: [],
         },
       ],
@@ -414,6 +414,7 @@ export default {
             this.$nextTick(() => {
               this.currRoot = element.id;
               this.$nextTick(() => {
+
                 this.currentMenu.forEach((element, index) => {
                   if (val.path.includes(element.fullPath)) {
                     this.activeIndex = index;

+ 2 - 2
src/views/stateMonitor/powerPredictMatrix/components/multiple-line-chart.vue

@@ -271,8 +271,8 @@ export default {
   },
   mounted() {
     this.$nextTick(() => {
-      this.$el.style.width = this.width;
-      this.$el.style.height = this.height;
+    //   this.$el.style.width = this.width;
+    //   this.$el.style.height = this.height;
       this.initChart();
       window.addEventListener("resize", this.resize);
     });

+ 116 - 78
src/views/stateMonitor/powerPredictMatrix/index.vue

@@ -6,7 +6,7 @@
     element-loading-background="rgba(4, 12, 11, 0.8)"
   >
     <!-- 头部按钮选项 -->
-    <HeaderNav @firstRender="firstRender" :isAll="true" />
+    <!-- <HeaderNav @firstRender="firstRender" :isAll="true" /> -->
     <div class="wrapper">
       <div class="chart-wrapper">
         <div
@@ -21,13 +21,22 @@
             <p class="text" title="双击查看详情">{{ list[index]?.name }}</p>
           </div>
           <div class="chart-item-chart">
-            <multipleLineChartVue
-              ref="multipLineChart"
-              height="100%"
-              width="100%"
-              :type="activeTab"
-              :chartData="list[index]"
-            />
+            <div class="chartMessage">
+                <div class="chartMessageItem" :span="8" v-for="it in chartMessageArr" :key="it">
+                    <span>{{it.title}}</span>
+                    <span>{{it.num}}</span>
+                    <span>{{it.nuit}}</span>
+                </div>
+            </div>
+            <div class="chartMain">
+                <multipleLineChartVue
+                    ref="multipLineChart"
+                    height="100%"
+                    width="100%"
+                    :type="activeTab"
+                    :chartData="list[index]"
+                />
+            </div>
           </div>
         </div>
       </div>
@@ -43,75 +52,20 @@
     >
       <template #title>
         <div class="dialog-title">
-          <div class="title">{{ showName }}功率预测详情</div>
+          <div class="title">{{ showName }}</div>
         </div>
       </template>
       <div class="dialog-body" style="height: 600px">
         <img class="dialog-img" src="@assets/imgs/dialog.png" />
-        <div class="dialog-form">
-          <div class="date-wrapper">
-            开始时间
-            <div style="margin-left: 10px">
-              <el-date-picker
-                v-model="beginDate"
-                type="date"
-                size="mini"
-                :disabled-date="disabledDate"
-                placeholder="选择日期"
-                popper-class="date-select"
-                value-format="YYYY-MM-DD"
-              >
-              </el-date-picker>
-            </div>
-          </div>
-          <div class="date-wrapper">
-            结束时间
-            <div style="margin-left: 10px">
-              <el-date-picker
-                v-model="endDate"
-                size="mini"
-                type="date"
-                :disabled-date="disabledDate2"
-                popper-class="date-select"
-                placeholder="选择日期"
-                value-format="YYYY-MM-DD"
-              >
-              </el-date-picker>
-            </div>
-          </div>
-          <div class="btns">
-            <el-button round size="mini" class="buttons" @click="handleSearch"
-              >查 询</el-button
-            >
-          </div>
-        </div>
-        <div class="dialog-chart" v-if="!isDouble">
+        <div class="dialog-chart">
           <multipleLineChartVue
             ref="multipLineChart"
             :type="activeTab"
+            width="100%"
+            height="100%"
             :chartData="singleChartData"
           />
         </div>
-        <div class="dialog-chart" v-if="isDouble">
-          <div class="carousel-wrapper">
-            <el-carousel trigger="click" height="100%" :autoplay="false">
-              <el-carousel-item
-                v-for="(chart, key) in doubleChartData"
-                :key="key"
-                :name="doubleChartData[key]?.name"
-              >
-                <multipleLineChartVue
-                  ref="multipLineChart"
-                  :chartData="doubleChartData[key]"
-                  width="1392px"
-                  :type="activeTab"
-                  height="580px"
-                  :isDouble="isDouble"
-                />
-              </el-carousel-item>
-            </el-carousel>
-          </div>
-        </div>
       </div>
     </el-dialog>
   </div>
@@ -136,12 +90,13 @@ export default {
       format: "YYYY-MM-DD",
       doubleChartData: [],
       singleChartData: {},
-      isDouble: true,
+      isDouble: false,
       showWpid: "",
       isSearch: false,
       timer: null,
       loading: false,
       flag: false,
+      chartMessageArr: []
     };
   },
   components: {
@@ -151,15 +106,69 @@ export default {
   created() {
     this.beginDate = dayjs().startOf("day").format(this.format);
     this.endDate = dayjs().add(3, "day").format(this.format);
+    this.chartMessageArr = [
+        {
+            title: "第一层平均风速",
+            num: 0,
+            nuit: "M/S"
+        },
+        {
+            title: "第一层平均风向",
+            num: 0,
+            nuit: "°"
+        },
+        {
+            title: "第一层温度",
+            num: 0,
+            nuit: "°C"
+        },
+        {
+            title: "第二层平均风速",
+            num: 0,
+            nuit: "M/S"
+        },
+        {
+            title: "第二层平均风向",
+            num: 0,
+            nuit: "°"
+        },
+        {
+            title: "第二层温度",
+            num: 0,
+            nuit: "°C"
+        },
+        {
+            title: "第三层平均风速",
+            num: 0,
+            nuit: "M/S"
+        },
+        {
+            title: "第三层平均风向",
+            num: 1000,
+            nuit: "°"
+        },
+        {
+            title: "第一层压力",
+            num: 0,
+            nuit: "Pa"
+        },
+        {
+            title: "第四层平均风速",
+            num: 0,
+            nuit: "M/S"
+        },
+        {
+            title: "第四层平均风向",
+            num: 0,
+            nuit: "°"
+        },
+    ]
     // this.init();
   },
   mounted() {
     this.list = dataJson.powerData
+    this.singleChartData = dataJson.powerData[0]
     this.loading = false;
-    // this.timer = setInterval(() => {
-    //   this.flag = true;
-    //   this.init();
-    // }, 15 * 60 * 1000);
   },
   unmounted() {
     clearInterval(this.timer);
@@ -322,6 +331,7 @@ export default {
   height: 100%;
   width: 100%;
   .wrapper {
+    margin-top: 20px;
     height: calc(100% - 57px);
     width: 100%;
     padding: 0 20px 10px 20px;
@@ -332,19 +342,22 @@ export default {
   width: 100%;
   display: grid;
   grid-template-columns: auto auto;
-  grid-auto-rows: 256px;
+//   grid-auto-rows: 256px;
   grid-gap: 20px;
   padding-bottom: 10px;
   .chart-item[data-type~="greenSty"] {
-    background: url("~@/assets/imgs/power-bg1.png") no-repeat;
+    // background: url("~@/assets/imgs/power-bg1.png") no-repeat;
+    border: 1px solid #3b6c53;
+    border-radius: 10px;
   }
   .chart-item[data-type~="blueSty"] {
-    background: url("~@/assets/imgs/power-bg2.png") no-repeat;
+    // background: url("~@/assets/imgs/power-bg2.png") no-repeat;
+    border: 1px solid #3b4e6c;
+    border-radius: 10px;
   }
   .chart-item {
     width: 935px;
-    height: 256px;
-    // border: 1px solid #fff;
+    // height: 256px;
     display: flex;
     align-items: center;
     background-size: 100% 100%;
@@ -352,7 +365,8 @@ export default {
     .chart-item-name {
       display: flex;
       width: 50px;
-      height: 256px;
+      height: 100%;
+    //   height: 256px;
       border-right: 1px solid #3a3f43;
       justify-content: center;
       align-items: center;
@@ -365,6 +379,30 @@ export default {
       width: calc(100% - 50px);
 
       height: 100%;
+      .chartMessage{
+        display: flex;
+        flex-wrap: wrap;
+        width: 100%;
+        padding: 10px 32px;
+        .chartMessageItem{
+            width: 32%;
+            margin-bottom: 10px;
+            padding: 0 20px;
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            span:nth-child(1) {
+                margin-right: 10px;
+            }
+            span:nth-child(2) {
+                margin-right: 10px;
+                color: rgb(230, 73, 11);
+            }
+        }
+      }
+      .chartMain{
+        height: 320px;
+      }
     }
   }
 }

+ 11 - 0
src/views/sxReport/index.vue

@@ -0,0 +1,11 @@
+<template>
+  <router-view />
+</template>
+
+<script>
+export default {
+  name: "sxReport", //智能报表
+};
+</script>
+
+<style></style>

+ 763 - 0
src/views/sxReport/stationStatistical/dataJson.json

@@ -0,0 +1,763 @@
+{
+    "total": 12770,
+    "pagecount": 639,
+    "pageindex": 1,
+    "rows": [
+        {
+            "id": 127431,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-28",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "右玉高家堡风电场  ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "YY_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 0
+        },
+        {
+            "id": 127436,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-28",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "阳高采凉山风电场",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "YG_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 1
+        },
+        {
+            "id": 127430,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-28",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "太旗卧牛山风电场",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "WNS_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 2
+        },
+        {
+            "id": 127432,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-28",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "平鲁虎头山  ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "PL_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 3
+        },
+        {
+            "id": 127434,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-28",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "浑源峰岳风电场 ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "HY_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 4
+        },
+        {
+            "id": 127437,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-28",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "熠彩光伏",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "HTS_GDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 5
+        },
+        {
+            "id": 127433,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-28",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "广灵劲风风电场  ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "GL_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 6
+        },
+        {
+            "id": 127435,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-28",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "方山宝塔山风电场 ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "FS_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 7
+        },
+        {
+            "id": 127411,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-27",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "右玉高家堡风电场  ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "YY_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 8
+        },
+        {
+            "id": 127416,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-27",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "阳高采凉山风电场",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "YG_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 9
+        },
+        {
+            "id": 127410,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-27",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "太旗卧牛山风电场",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "WNS_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 10
+        },
+        {
+            "id": 127412,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-27",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "平鲁虎头山  ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "PL_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 11
+        },
+        {
+            "id": 127414,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-27",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "浑源峰岳风电场 ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "HY_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 12
+        },
+        {
+            "id": 127417,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-27",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "熠彩光伏",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "HTS_GDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 13
+        },
+        {
+            "id": 127413,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-27",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "广灵劲风风电场  ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "GL_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 14
+        },
+        {
+            "id": 127415,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-27",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "方山宝塔山风电场 ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "FS_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 15
+        },
+        {
+            "id": 127391,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-26",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "右玉高家堡风电场  ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "YY_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 16
+        },
+        {
+            "id": 127396,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-26",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "阳高采凉山风电场",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "YG_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 17
+        },
+        {
+            "id": 127390,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-26",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "太旗卧牛山风电场",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "WNS_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 18
+        },
+        {
+            "id": 127392,
+            "type": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-26",
+            "windId": null,
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": null,
+            "dayValueR": null,
+            "wtName": null,
+            "stId": 0,
+            "wpName": "平鲁虎头山  ",
+            "orderNum": null,
+            "formulaDesc": null,
+            "fillPerson": null,
+            "fillDate": null,
+            "targetId": 0,
+            "targetCode": null,
+            "dayValue": null,
+            "wpId": "PL_FDC",
+            "unit": null,
+            "formula": null,
+            "color": null,
+            "num": 19
+        }
+    ],
+    "detail": [
+        {
+            "quarterValue10": "0",
+            "quarterValue11": "0",
+            "quarterValue12": "0",
+            "quarterValue13": "227",
+            "quarterValue14": "0",
+            "quarterValue15": "5.9",
+            "quarterValue16": "0.37",
+            "quarterValue17": "8.42",
+            "quarterValue18": "256",
+            "quarterValue19": "1500",
+            "quarterValue20": "0.17",
+            "quarterValue21": "100",
+            "quarterValue22": "100",
+            "quarterValue23": "1416",
+            "quarterValue24": "59",
+            "quarterValue25": "1416",
+            "quarterValue26": "0",
+            "quarterValue27": null,
+            "quarterValue28": null,
+            "quarterValue29": null,
+            "quarterValue30": null,
+            "monthValue": null,
+            "targetName": null,
+            "recordDate": "2024-02-28",
+            "weekValue": null,
+            "quarterValue": null,
+            "yearValue": null,
+            "wtId": "YY01_001",
+            "titleWidth": 0,
+            "dayValueR": null,
+            "dayValueE": null,
+            "wtName": "1A01",
+            "dayValueR1": "256",
+            "dayValueE1": "256",
+            "weekValue1": "256",
+            "monthValue1": "256",
+            "quarterValue1": "256",
+            "yearValue1": "256",
+            "dayValueR2": "256",
+            "dayValueE2": "256",
+            "weekValue2": "256",
+            "monthValue2": "256",
+            "quarterValue2": "256",
+            "yearValue2": "256",
+            "dayValueR3": "2.24",
+            "dayValueE3": "2.24",
+            "weekValue3": "2.24",
+            "monthValue3": "2.24",
+            "quarterValue3": "2.24",
+            "yearValue3": "2.24",
+            "dayValueR4": "0",
+            "dayValueE4": "0",
+            "weekValue4": "0",
+            "monthValue4": "0",
+            "quarterValue4": "0",
+            "yearValue4": "0",
+            "dayValueR5": "0",
+            "dayValueE5": "0",
+            "weekValue5": "0",
+            "monthValue5": "0",
+            "quarterValue5": "0",
+            "yearValue5": "0",
+            "dayValueR6": "0",
+            "dayValueE6": "0",
+            "weekValue6": "0",
+            "monthValue6": "0",
+            "quarterValue6": "0",
+            "yearValue6": "0",
+            "dayValueR7": "0",
+            "dayValueE7": "0",
+            "weekValue7": "0",
+            "monthValue7": "0",
+            "quarterValue7": "0",
+            "yearValue7": "0",
+            "dayValueR8": "3.47",
+            "dayValueE8": "3.47",
+            "weekValue8": "3.47",
+            "monthValue8": "3.47",
+            "quarterValue8": "3.47",
+            "yearValue8": "3.47",
+            "dayValueR9": "20.53",
+            "dayValueE9": "20.53",
+            "weekValue9": "20.53",
+            "monthValue9": "20.53",
+            "quarterValue9": "20.53",
+            "yearValue9": "20.53",
+            "dayValueR10": "0",
+            "dayValueE10": "0",
+            "weekValue10": "0",
+            "monthValue10": "0",
+            "yearValue10": "0",
+            "dayValueR11": "0",
+            "dayValueE11": "0",
+            "weekValue11": "0",
+            "monthValue11": "0",
+            "yearValue11": "0",
+            "dayValueR12": "0",
+            "dayValueE12": "0",
+            "weekValue12": "0",
+            "monthValue12": "0",
+            "yearValue12": "0",
+            "dayValueR13": "227",
+            "dayValueE13": "227",
+            "weekValue13": "227",
+            "monthValue13": "227",
+            "yearValue13": "227",
+            "dayValueR14": "0",
+            "dayValueE14": "0",
+            "weekValue14": "0",
+            "monthValue14": "0",
+            "yearValue14": "0",
+            "dayValueR15": "5.9",
+            "dayValueE15": "5.9",
+            "weekValue15": "5.9",
+            "monthValue15": "5.9",
+            "yearValue15": "5.9",
+            "dayValueR16": "0.37",
+            "dayValueE16": "0.37",
+            "weekValue16": "0.37",
+            "monthValue16": "0.37",
+            "yearValue16": "0.37",
+            "dayValueR17": "8.42",
+            "dayValueE17": "8.42",
+            "weekValue17": "8.42",
+            "monthValue17": "8.42",
+            "yearValue17": "8.42",
+            "dayValueR18": "256",
+            "dayValueE18": "256",
+            "weekValue18": "256",
+            "monthValue18": "256",
+            "yearValue18": "256",
+            "dayValueR19": "1500",
+            "dayValueE19": "1500",
+            "weekValue19": "1500",
+            "monthValue19": "1500",
+            "yearValue19": "1500",
+            "dayValueR20": "0.17",
+            "dayValueE20": "0.17",
+            "weekValue20": "0.17",
+            "monthValue20": "0.17",
+            "yearValue20": "0.17",
+            "dayValueR21": "100",
+            "dayValueE21": "100",
+            "weekValue21": "100",
+            "monthValue21": "100",
+            "yearValue21": "100",
+            "dayValueR22": "100",
+            "dayValueE22": "100",
+            "weekValue22": "100",
+            "monthValue22": "100",
+            "yearValue22": "100",
+            "dayValueR23": "24",
+            "dayValueE23": "24",
+            "weekValue23": "72",
+            "monthValue23": "672",
+            "yearValue23": "1416",
+            "dayValueR24": "1",
+            "dayValueE24": "1",
+            "weekValue24": "3",
+            "monthValue24": "28",
+            "yearValue24": "59",
+            "dayValueR25": "24",
+            "dayValueE25": "24",
+            "weekValue25": "72",
+            "monthValue25": "672",
+            "yearValue25": "1416",
+            "dayValueR26": "0",
+            "dayValueE26": "0",
+            "weekValue26": "0",
+            "monthValue26": "0",
+            "yearValue26": "0",
+            "dayValueR27": null,
+            "dayValueE27": null,
+            "weekValue27": null,
+            "monthValue27": null,
+            "yearValue27": null,
+            "dayValueR28": null,
+            "dayValueE28": null,
+            "weekValue28": null,
+            "monthValue28": null,
+            "yearValue28": null,
+            "dayValueR29": null,
+            "dayValueE29": null,
+            "weekValue29": null,
+            "monthValue29": null,
+            "yearValue29": null,
+            "dayValueR30": null,
+            "dayValueE30": null,
+            "weekValue30": null,
+            "monthValue30": null,
+            "yearValue30": null,
+            "targetId": 0
+        }
+    ]
+}

+ 314 - 0
src/views/sxReport/stationStatistical/deviceDetail.vue

@@ -0,0 +1,314 @@
+<template>
+  <div class="historysingleMachine">
+    <div class="historysingleMachine_top">
+      <div class="station">
+        风机名称:
+        <el-select
+          size="mini"
+          v-model="stationVal"
+          placeholder="请选择"
+          @change="changeStation"
+          clearable
+        >
+          <el-option
+            v-for="item in stationOptions"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+      </div>
+      <div class="but">
+        <el-button round size="mini" class="buttons" @click="seachData"
+          >搜 索</el-button
+        >
+        <el-button round size="mini" class="buttons" @click="downXlsxFn"
+          >导出</el-button
+        >
+      </div>
+    </div>
+    <div class="economicTable1">
+      <el-table
+        :data="historysingleMachineData"
+        stripe
+        size="mini"
+        height="calc(100% - 40px)"
+        ref="historysingleTable"
+        style="width: 100%"
+      >
+        <el-table-column
+          v-for="(item, index) in tableHeader"
+          :key="index"
+          sortable
+          :prop="item.code"
+          :label="item.title"
+          show-overflow-tooltip
+          header-align="center"
+          align="center"
+        >
+          <template #header="scope">
+            <div>{{ scope.column.label }}</div>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @current-change="handleCurrentChange"
+        :current-page="page.currentPage"
+        :page-size="page.pagesize"
+        @size-change="handleSizeChange"
+        :page-sizes="[21, 50, 100, 500]"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="page.total"
+      >
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  getApihistorywindturbinegoodnesslist,
+  getApihistorywindturbinegoodnesslistGf,
+  getApiequipmentListByWp,
+} from "@/api/monthlyPerformanceAnalysis";
+import utils from "@/utills/downXlsx";
+import dataJson from "./dataJson.json"
+export default {
+  props: {
+    // historyCompanyOptions: {
+    //   type: Array,
+    //   default: () => [],
+    // },
+    tabIndex: { type: Number, required: true },
+    historyStationOptions: {
+      type: Array,
+      default: () => [],
+    },
+  },
+  data() {
+    return {
+      //   hiscompanyVal: "",
+      hisstationVal: "",
+      hiswindVal: "",
+      pickerTimer: [],
+      historysingleMachineData: [],
+      hisWindOptions: [],
+      showBtn: true,
+      page: {
+        pagesize: 21,
+        currentPage: 1,
+        total: 0,
+      },
+      tableHeader: [
+        { title: "风机名称", code: "wtName" },
+        { title: "离线小时", code: "dayValueE10" },
+        { title: "故障小时", code: "dayValueE11" },
+        { title: "维护小时", code: "dayValueE12" },
+        { title: "最大功率", code: "dayValueE13" },
+        { title: "最小功率", code: "dayValueE14" },
+        { title: "最大风速", code: "dayValueE15" },
+        { title: "最小风速", code: "dayValueE16" },
+        { title: "平均功率", code: "dayValueE17" },
+        { title: "发电量", code: "dayValueE18" },
+        { title: "容量", code: "dayValueE19" },
+        { title: "设备利用小时数", code: "dayValueE20" },
+        { title: "设备可利用率", code: "dayValueE21" },
+        { title: "等效可用系数", code: "dayValueE22" },
+        { title: "有效风时数", code: "dayValueE23" },
+        { title: "安全天数", code: "dayValueE24" },
+        { title: "日历小时", code: "dayValueE25" },
+        { title: "实际发电量", code: "dayValueE1" },
+        { title: "理论发电量", code: "dayValueE2" },
+        { title: "平均风速", code: "dayValueE3" },
+        { title: "设备故障影响电量", code: "dayValueE4" },
+        { title: "调度限电损失电量", code: "dayValueE5" },
+        { title: "维护损失电量", code: "dayValueE6" },
+        { title: "不饱和电量", code: "dayValueE7" },
+        { title: "运行小时", code: "dayValueE8" },
+        { title: "停机小时", code: "dayValueE9" },
+        { title: "受累损失电量", code: "dayValueE26" }
+      ],
+    };
+  },
+  methods: {
+    async init(row) {
+      //   this.hiscompanyVal = row.companyId;
+      this.hisstationVal = row.windtpowerstationId;
+      this.hiswindVal = row.windturbineId;
+      await this.getTableData();
+    },
+    dateTimeFn(row) {
+      return row.recordDate
+        ? row.recordDate.substring(0, row.recordDate.indexOf("T"))
+        : row.date.substring(0, row.date.indexOf("T"));
+    },
+    headerArr(label) {
+      let arr = label.split("");
+      let Newarr = [];
+      let num = 0;
+      let str = "";
+      arr.forEach((it, index) => {
+        num++;
+        str += it;
+        if (label.indexOf(it) + 1 !== label.length) {
+          if (num % 2 === 0) {
+            Newarr.push(str);
+            str = "";
+          }
+        } else {
+          Newarr.push(str);
+        }
+      });
+      return Newarr;
+    },
+    async getWindPowerStation() {
+      const { data } = await getApiequipmentListByWp({
+        wpid: this.hisstationVal,
+      });
+      this.hisWindOptions = data.data;
+      if (!this.hiswindVal && data.data.length) {
+        this.hiswindVal = data.data[0].id;
+      }
+    },
+    // changeBtn(id) {
+    //   this.tabIndex = id;
+    //   this.$emit("getHisStationOptions", this.tabIndex, this.hiscompanyVal);
+    //   this.getTableData();
+    // },
+    changeStation(val) {
+      this.hisstationVal = val;
+      this.hiswindVal = "";
+      this.getWindPowerStation();
+    },
+    changeWind(val) {
+      this.hiswindVal = val;
+      this.getTableData();
+    },
+    seachData() {
+      this.getTableData();
+    },
+    async getTableData() {
+      let params = {
+        type: this.tabIndex,
+        pageNum: this.page.currentPage,
+        pageSize: this.page.pagesize,
+        beginDate: this.pickerTimer[0],
+        endDate: this.pickerTimer[1],
+        wpId: this.hisstationVal,
+        wtId: this.hiswindVal,
+      };
+      let datas = [];
+      this.historysingleMachineData = dataJson.detail;
+      this.page.total = dataJson.total;
+      if (this.tabIndex == -1) {
+        // datas = await getApihistorywindturbinegoodnesslist(params);
+        // this.historysingleMachineData = datas.data.data.records;
+        // this.page.total = datas.data.data.total;
+      } else {
+        datas = await getApihistorywindturbinegoodnesslistGf(params);
+        this.historysingleMachineData = datas.data.data;
+        this.page.total = datas.data.data.length;
+      }
+    },
+    handleSizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pagesize = val;
+      this.getTableData();
+    },
+    handleCurrentChange(val) {
+      this.page.currentPage = val;
+      this.getTableData();
+    },
+    //转换时间
+    getchangeTime(date) {
+      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;
+      return y + "-" + m + "-" + d;
+    },
+    downXlsxFn() {
+      let header = ["风机", "日期"];
+      this.tableHeader.forEach((it) => {
+        header.push(it.title);
+      });
+      utils.exportExcel(
+        this.$refs["historysingleTable"].$el,
+        header,
+        "单机性能历史分析数据"
+      );
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.historysingleMachine {
+  height: 100%;
+  .historysingleMachine_top {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    padding-top: 10px;
+    padding-bottom: 10px;
+
+    .stationsv {
+      .timeaa {
+        font-size: 14px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #b3b3b3;
+        margin-right: 10px;
+        margin-left: 10px;
+      }
+    }
+
+    .but {
+      display: flex;
+      flex-direction: row;
+      align-content: center;
+      margin-left: 20px;
+      .buttons {
+        background-color: rgba(5, 187, 76, 0.2);
+        border: 1px solid #3b6c53;
+        color: #b3b3b3;
+        font-size: 14px;
+
+        &:hover,
+        &.active {
+          background-color: rgba(5, 187, 76, 0.5);
+          color: #ffffff;
+        }
+      }
+    }
+    .el-date-editor--daterange {
+      background: transparent;
+      border: 1px solid #2a374f;
+      border-radius: 30px;
+      height: 25px;
+      .el-range-input {
+        background: transparent;
+        color: #fff;
+      }
+      .el-range-separator {
+        width: 10%;
+        color: #fff;
+        position: relative;
+      }
+    }
+  }
+  .economicTable1 {
+    height: calc(100% - 58px);
+  }
+}
+.el-pagination ::v-deep {
+  .el-pagination__sizes {
+    .el-input__inner {
+      width: 100% !important;
+      border-radius: 0 !important;
+    }
+  }
+}
+</style>

+ 11 - 0
src/views/sxReport/stationStatistical/index.vue

@@ -0,0 +1,11 @@
+<template>
+  <router-view />
+</template>
+
+<script>
+export default {
+  name: "statistical",
+};
+</script>
+
+<style></style>

+ 439 - 0
src/views/sxReport/stationStatistical/stationSta.vue

@@ -0,0 +1,439 @@
+<template>
+  <div class="stationStat">
+    <div class="stationStat_top">
+      <div class="station">
+        场站:
+        <el-select
+          size="mini"
+          v-model="stationVal"
+          placeholder="请选择"
+          @change="changeStation"
+          clearable
+        >
+          <el-option
+            v-for="item in stationOptions"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+      </div>
+      <div class="station">
+        时间:
+        <div>
+          <el-date-picker
+            v-model="pickerTimer"
+            type="date"
+            value-format="YYYY-MM-DD"
+            placeholder="选择日期"
+            popper-class="date-select"
+          >
+          </el-date-picker>
+        </div>
+      </div>
+      <div class="but">
+        <el-button round size="mini" class="buttons" @click="seachData"
+          >搜 索</el-button
+        >
+        <el-button round size="mini" class="buttons" @click="downXlsxFn"
+          >导出</el-button
+        >
+      </div>
+    </div>
+    <div class="stationStat_content">
+      <div class="stationStat_title clearfix">
+        <div class="leftContent floatLeft" :data-type="$store.state.moreSty"><span>场站统计分析</span></div>
+      </div>
+      <div class="economicTable1">
+        <el-table
+          :data="stationStatData"
+          size="mini"
+          stripe
+          ref="stand_table"
+          height="calc(100% - 40px)"
+          style="width: 100%"
+        >
+          <el-table-column label="场站" prop="wpName" align="center" />
+          <el-table-column label="日期" prop="recordDate" align="center" />
+          <el-table-column label="操作" align="center">
+            <template #default="scope">
+              <span class="historyBtn" :data-type="$store.state.moreSty" @click="deviceDetailFn(scope.row)"
+                >设备统计分析</span
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination
+          @current-change="handleCurrentChange"
+          :current-page="page.currentPage"
+          :page-size="page.pagesize"
+          @size-change="handleSizeChange"
+          :page-sizes="[23, 50, 100, 500]"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="page.total"
+        >
+        </el-pagination>
+      </div>
+    </div>
+    <el-dialog
+      v-model="dialogVisible"
+      width="100%"
+      custom-class="windhistoryDetailModel"
+      destroy-on-close
+      fullscreen
+    >
+      <template #title>
+        <div class="dialog-title">
+          <div class="title">{{ dialogTitle }}</div>
+        </div>
+      </template>
+      <div style="height: 100%">
+        <device-detail
+          ref="deviceDetail"
+          :tabIndex="tabIndex"
+          :historyStationOptions="stationOptions"
+        >
+        </device-detail>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getApiwpByCplistlist,
+  getApiwindturbinegoodnesslist,
+  getApiwindturbinegoodnesslistGf,
+} from "@/api/monthlyPerformanceAnalysis";
+import deviceDetail from "./deviceDetail.vue";
+import utils from "@/utills/downXlsx";
+import dayjs from "dayjs";
+import dataJson from "./dataJson.json"
+export default {
+  name: "stationStat",
+  components: {
+    deviceDetail
+  },
+  data() {
+    return {
+      companyOptions: [],
+      stationVal: "",
+      stationOptions: [],
+      pickerTimer: "",
+      stationStatData: [],
+      showBtn: true,
+      dialogTitle: "",
+      tableHeader: [
+        { title: "场站", code: "station", align: "center" },
+        { title: "日期", code: "dateTime", align: "center" },
+      ],
+      tableDetail: [
+        { title: "型号", code: "modelId", align: "left" },
+        { title: "日排行榜", code: "dayTop", align: "right" },
+        { title: "日拟合优度(%)", code: "dayGoodness", align: "right" },
+        { title: "日风速(m/s)", code: "daySpeed", align: "right" },
+        { title: "月排行榜", code: "monthTop", align: "right" },
+        { title: "月拟合优度(%)", code: "monthGoodness", align: "right" },
+        { title: "月风速(m/s)", code: "monthSpeed", align: "right" },
+        { title: "年排行榜", code: "yearTop", align: "right" },
+        { title: "年拟合优度(%)", code: "yearGoodness", align: "right" },
+        { title: "年风速(m/s)", code: "yearSpeed", align: "right" },
+      ],
+      page: {
+        pagesize: 23,
+        currentPage: 1,
+        total: 0,
+      },
+      dialogVisible: false,
+      dialogDetail: false,
+    };
+  },
+  created() {
+    this.pickerTimer = dayjs().add(-1, "day").format("YYYY-MM-DD");
+    this.stationStatData = dataJson.rows;
+      this.page.total = dataJson.total;
+  },
+  mounted() {},
+  methods: {
+    // 获取场站
+    async getStationData(companyVal) {
+      this.stationOptions = [];
+      let params = {
+        type: this.tabIndex,
+        companyid: companyVal,
+      };
+      const { data } = await getApiwpByCplistlist(params);
+      if (data.data.length) {
+        this.stationOptions = data.data;
+        this.stationVal = data.data[0].id || "";
+      } else {
+        this.stationOptions = [];
+        this.stationVal = "";
+      }
+      this.getTableData();
+    },
+    changeStation(val) {
+      this.stationVal = val;
+      this.getTableData();
+    },
+    seachData() {
+      this.getTableData();
+    },
+    async getTableData() {
+      let params = {
+        cmId: this.companyVal,
+        type: this.tabIndex,
+        pageNum: this.page.currentPage,
+        pageSize: this.page.pagesize,
+        recorddate: this.pickerTimer,
+        wpId: this.stationVal,
+      };
+      let datas = {};
+      if (this.tabIndex == -2) {
+        datas = await getApiwindturbinegoodnesslistGf(params);
+        this.stationStatData = datas.data.data;
+        this.page.total = datas.data.data.length;
+      } else {
+        datas = await getApiwindturbinegoodnesslist(params);
+        this.stationStatData = datas.data.data.records;
+        this.page.total = datas.data.data.total;
+      }
+    },
+    handleSizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pagesize = val;
+      this.getTableData();
+    },
+    handleCurrentChange(val) {
+      this.page.currentPage = val;
+      this.getTableData();
+    },
+    //转换时间
+    getchangeTime(date) {
+      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;
+      return y + "-" + m + "-" + d;
+    },
+    seachDetail(row) {
+      this.dialogDetail = true;
+      this.$nextTick(() => {
+        this.$refs.windDetail.recorddate = this.pickerTimer;
+        this.$refs.windDetail.init(row);
+      });
+    },
+    deviceDetailFn(row) {
+      this.dialogVisible = true;
+      this.dialogTitle = "设备统计分析";
+      this.$nextTick(() =>{
+        this.$refs.deviceDetail.init(row);
+      })
+    },
+    downXlsxFn() {
+      let header = [];
+      this.tableHeader.forEach((it) => {
+        if (it.title !== "操作") {
+          header.push(it.title);
+        }
+      });
+      if (this.stationStatData.length > 0) {
+        utils.exportExcel(
+          this.$refs["stand_table"].$el,
+          header,
+          "单机性能分析"
+        );
+      }
+    },
+  },
+};
+</script>
+
+<style lang="less">
+.stationStat {
+  height: 100%;
+  padding: 0 20px;
+
+  .stationStat_title {
+    .leftContent[data-type~="greenSty"] {
+            background: url("~@/assets/imgs/title_left_bg1.png") no-repeat;
+        }
+        .leftContent[data-type~="blueSty"] {
+            background: url("~@/assets/imgs/title_left_bg.png") no-repeat;
+        }
+    .leftContent {
+      width: 242px;
+      height: 41px;
+      line-height: 41px;
+
+      span {
+        font-size: 16px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #05bb4c;
+        margin-left: 25px;
+      }
+    }
+
+    .floatLeft {
+      float: left;
+    }
+
+    .floatRight {
+      float: right;
+    }
+  }
+  .stationStat_content {
+    background: rgba(0, 0, 0, 0.45);
+    height: calc(100% - 48px);
+  }
+  .clearfix::after {
+    content: "";
+    clear: both;
+    height: 0;
+    line-height: 0;
+    visibility: hidden;
+    display: block;
+  }
+
+  .clearfix {
+    zoom: 1;
+  }
+
+  .stationStat_top {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    padding-top: 5px;
+    padding-bottom: 5px;
+
+    .station {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      font-size: 14px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #b3b3b3;
+      margin-right: 10px;
+      margin-left: 10px;
+    }
+    .tabCut {
+      display: inline-block;
+      margin: 0 10px;
+
+      div {
+        display: inline-block;
+        width: 60px;
+        height: 27px;
+        border: 1px solid #274934;
+        text-align: center;
+        line-height: 25px;
+        cursor: pointer;
+      }
+
+      div:nth-child(1) {
+        border-radius: 13px 0px 0px 13px;
+        border-right-width: 0;
+      }
+
+      div:nth-child(2) {
+        border-radius: 0px 13px 13px 0px;
+      }
+
+      .active {
+        background-color: rgba(5, 187, 76, 0.9);
+        color: #fff;
+      }
+    }
+
+    .search-input {
+      margin-left: 10px;
+      .el-input__inner {
+        width: 175px;
+      }
+      .el-input__suffix {
+        right: -50px;
+      }
+    }
+
+    .but {
+      display: flex;
+      flex-direction: row;
+      align-content: center;
+      margin-left: 20px;
+      .buttons {
+        background-color: rgba(5, 187, 76, 0.2);
+        border: 1px solid #3b6c53;
+        color: #b3b3b3;
+        font-size: 14px;
+
+        &:hover,
+        &.active {
+          background-color: rgba(5, 187, 76, 0.5);
+          color: #ffffff;
+        }
+      }
+    }
+  }
+
+  .economicTable1 {
+    height: calc(100% - 42px);
+    .el-table__fixed,
+    .el-table__fixed-right {
+      background: rgba(0, 0, 0, 1);
+      border-left: 2px solid #000;
+      height: calc(100% - 15px) !important;
+    }
+
+    .el-table__fixed::before {
+      background-color: #2a2a2a;
+    }
+
+    .el-table__fixed-right::before {
+      background-color: #2a2a2a;
+    }
+
+    .el-pagination {
+      display: flex;
+      justify-content: flex-end;
+      padding-top: 5px;
+
+      .el-pagination__total,
+      .el-pagination__jump {
+        color: #fff;
+      }
+    }
+
+    .historyBtn[data-type~="greenSty"] {
+    color: @green;
+}
+.historyBtn[data-type~="blueSty"] {
+    color: @darkBlue;
+}
+
+    .historyBtn {
+      cursor: pointer;
+      margin-right: 15px;
+    }
+  }
+
+  .el-overlay {
+    .el-overlay-dialog {
+      overflow-y: hidden !important;
+
+      .windhistoryDetailModel,
+      .windDetailmodal {
+        margin-top: 0 !important;
+
+        .el-dialog__body {
+          padding: 10px 20px 20px 20px;
+          height: calc(100% - 80px);
+        }
+      }
+    }
+  }
+}
+</style>