lining vor 3 Jahren
Ursprung
Commit
2a291ad021

+ 15 - 0
src/App.vue

@@ -562,4 +562,19 @@ body {
 .el-pagination.is-background .el-pager li:not(.disabled).active {
   background-color: #05bb4c !important;
 }
+.el-table__body tr.hover-row > td.el-table__cell {
+  background-color: rgba(2, 2, 2) !important;
+}
+.main-body .el-table th,
+.df-table .el-table th,
+.main-body .custom-table.el-table th,
+.df-table .custom-table.el-table th,
+.main-body .el-table tr,
+.df-table .el-table tr,
+.main-body .custom-table.el-table tr,
+.df-table .custom-table.el-table tr {
+  background-color: #040c0b;
+  border: 0px;
+}
+
 </style>

+ 96 - 60
src/api/economic/index.js

@@ -187,7 +187,7 @@ const leaderboardLoadfactortoplist = (data) => {
     return request({
         url: `/consumer/leaderboard/loadfactortoplist`,
         method: "post",
-        data:data
+        data: data
     });
 };
 // 总发电效率排行
@@ -202,32 +202,32 @@ const leaderboardQuerywarningStatistical = (data) => {
     return request({
         url: `/consumer/leaderboard/querywarningStatistical`,
         method: "post",
-        data:data
+        data: data
     });
 };
 // 专题分析
-const  specificMaincenterlist = (data) => {
+const specificMaincenterlist = (data) => {
     return request({
         url: `/consumer/specific/maincenterlist?month=${data.month}`,
         method: "get",
     });
 };
-const  specificMaintoplist = (data) => {
+const specificMaintoplist = (data) => {
     return request({
         url: `/consumer/specific/maintoplist?month=${data.month}`,
         method: "get",
     });
 };
 // 风能利用率
-const  specificFnlylList = (data) => {
+const specificFnlylList = (data) => {
     return request({
         url: `/consumer/specific/fnlylList?year=${data.year}`,
         method: "get",
     });
 };
 
- // 故障损失率
- const  specificGzsslList = (data) => {
+// 故障损失率
+const specificGzsslList = (data) => {
     return request({
         url: `/consumer/specific/gzsslList?year=${data.year}`,
         method: "get",
@@ -235,7 +235,7 @@ const  specificFnlylList = (data) => {
 };
 
 // 限电损失率
-const  specificXdsslList = (data) => {
+const specificXdsslList = (data) => {
     return request({
         url: `/consumer/specific/xdsslList?year=${data.year}`,
         method: "get",
@@ -243,7 +243,7 @@ const  specificXdsslList = (data) => {
 };
 
 // 性能损失率
-const  specificXnsslList = (data) => {
+const specificXnsslList = (data) => {
     return request({
         url: `/consumer/specific/xnsslList?year=${data.year}`,
         method: "get",
@@ -251,228 +251,260 @@ const  specificXnsslList = (data) => {
 };
 
 // 受累损失率
-const  specificSlsslList = (data) => {
+const specificSlsslList = (data) => {
     return request({
         url: `/consumer/specific/slsslList?year=${data.year}`,
         method: "get",
     });
 };
 // mtbf
-const  specificMtbfList = (data) => {
+const specificMtbfList = (data) => {
     return request({
         url: `/consumer/specific/mtbfList?year=${data.year}`,
         method: "get",
     });
 };
 
- // mttr
- const  specificMttrList = (data) => {
+// mttr
+const specificMttrList = (data) => {
     return request({
         url: `/consumer/specific/mttrList?year=${data.year}`,
         method: "get",
     });
 };
 // 复位及时率
-const  specificFwjslList = (data) => {
+const specificFwjslList = (data) => {
     return request({
         url: `/consumer/specific/fwjslList?year=${data.year}`,
         method: "get",
     });
 };
 // 状态转换率
-const  specificZtzhlList = (data) => {
+const specificZtzhlList = (data) => {
     return request({
         url: `/consumer/specific/ztzhlList?year=${data.year}`,
         method: "get",
     });
 };
 
- // 消缺及时率
- const  specificXqjslList = (data) => {
+// 消缺及时率
+const specificXqjslList = (data) => {
     return request({
         url: `/consumer/specific/xqjslList?year=${data.year}`,
         method: "get",
     });
 };
 // 发电量分析
-const  specificFdlList = (data) => {
+const specificFdlList = (data) => {
     return request({
         url: `/consumer/specific/fdlList?year=${data.year}`,
         method: "get",
     });
 };
 // 综合场用电量
-const  specificZhcydlList = (data) => {
+const specificZhcydlList = (data) => {
     return request({
         url: `/consumer/specific/zhcydlList?year=${data.year}`,
         method: "get",
     });
 };
 // 单机信息总览
-const  powercompareWindfarmAjax = (data) => {
+const powercompareWindfarmAjax = (data) => {
     return request({
         url: `/consumer/powercompare/windfarmAjax`,
         method: "get",
     });
 };
-const  goodnessWindturbinegoodness = (data) => {
+const goodnessWindturbinegoodness = (data) => {
     return request({
         url: `/consumer/goodness/windturbinegoodness`,
         method: "post",
-        data:data
+        data: data
     });
 };
 
-const  powercompareWindturbineAjax = (data) => {
+const powercompareWindturbineAjax = (data) => {
     return request({
         url: `/consumer/powercompare/windturbineAjax?wpId=${data.wpId}`,
         method: "get",
     });
 };
 
-const  goodnessGoodhistorylist = (data) => {
+const goodnessGoodhistorylist = (data) => {
     return request({
         url: `/consumer/goodness/goodhistorylist`,
         method: "post",
-        data:data
+        data: data
     });
 };
 // 单机信息总览详情
 
-const  goodnessFindWtRealPowerChar = (data) => {
+const goodnessFindWtRealPowerChar = (data) => {
     return request({
         url: `/consumer/goodness/findWtRealPowerChar`,
         method: "post",
-        data:data
+        data: data
     });
 };
-const  goodnessGetplotBands = (data) => {
+const goodnessGetplotBands = (data) => {
     return request({
         url: `/consumer/goodness/getplotBands`,
         method: "post",
-        data:data
+        data: data
     });
 };
-const  goodnessPlotBandAjax = (data) => {
+const goodnessPlotBandAjax = (data) => {
     return request({
         url: `/consumer/goodness/plotBandAjax`,
         method: "post",
-        data:data
+        data: data
     });
 };
-const  goodnessFindRealPowerCharBy24 = (data) => {
+const goodnessFindRealPowerCharBy24 = (data) => {
     return request({
         url: `/consumer/goodness/findRealPowerCharBy24`,
         method: "post",
-        data:data
+        data: data
     });
 };
-const  goodnessBjjllist = (data) => {
+const goodnessBjjllist = (data) => {
     return request({
         url: `/consumer/goodness/bjjllist`,
         method: "post",
-        data:data
+        data: data
     });
 };
 
-const  goodnessGzjllist = (data) => {
+const goodnessGzjllist = (data) => {
     return request({
         url: `/consumer/goodness/gzjllist`,
         method: "post",
-        data:data
+        data: data
     });
 };
-const  goodnessXdjllist = (data) => {
+const goodnessXdjllist = (data) => {
     return request({
         url: `/consumer/goodness/xdjllist`,
         method: "post",
-        data:data
+        data: data
     });
 };
-const  goodnessWadAjax = (data) => {
+const goodnessWadAjax = (data) => {
     return request({
         url: `/consumer/goodness/wadAjax`,
         method: "post",
-        data:data
+        data: data
     });
 };
 
-const  goodnessBphlist = (data) => {
+const goodnessBphlist = (data) => {
     return request({
         url: `/consumer/goodness/bjphlist`,
         method: "post",
-        data:data
+        data: data
     });
 };
-const  goodnessGlchat = (data) => {
+const goodnessGlchat = (data) => {
     return request({
         url: `/consumer/goodness/glchat`,
         method: "post",
-        data:data
+        data: data
     });
 };
-const  goodnessFjfzy = (data) => {
+const goodnessFjfzy = (data) => {
     return request({
         url: `/consumer/goodness/fjfzy`,
         method: "post",
-        data:data
+        data: data
     });
 };
-const  requestData1 = (data) => {
+const requestData1 = (data) => {
     return request({
         url: `/consumer/${data.subUrl}`,
         method: "post",
-        data:data
+        data: data
     });
 };
 //znzhfx.vue
-const  singleanalysisSingleanalysisSub = (data) => {
+const singleanalysisSingleanalysisSub = (data) => {
     return request({
         url: `/consumer/singleanalysis/singleanalysisSub`,
         method: "post",
-        data:data
+        data: data
     });
 };
-const  singleanalysisSingleanalysisChart = (data) => {
+const singleanalysisSingleanalysisChart = (data) => {
     return request({
         url: `/consumer/singleanalysis/singleanalysisChart`,
         method: "post",
-        data:data
+        data: data
     });
 };
 // 单机月度分析
 
-const  singleanalysisSingleanalysisMain = (data) => {
+const singleanalysisSingleanalysisMain = (data) => {
     return request({
         url: `/consumer/singleanalysis/singleanalysisMain`,
         method: "post",
-        data:data
+        data: data
     });
 };
 //电量分析 未绑定界面
 
 
 //forecast-system.vue
-const  powercompareWindfarmAllAjax2 = (data) => {
+const powercompareWindfarmAllAjax2 = (data) => {
     return request({
         url: `/consumer/powercompare/windfarmAllAjax`,
         method: "get",
     });
 };
-const  weatherWeatherInfo = (data) => {
+const weatherWeatherInfo = (data) => {
     return request({
         url: `/consumer/weather/weatherInfo?wpId=${data.wpId}`,
         method: "get",
     });
 };
-const  weatherWatherChart = (data) => {
+const weatherWatherChart = (data) => {
     return request({
         url: `/consumer/weather/weatherChart`,
         method: "post",
-        data:data
+        data: data
     });
 };
 
+// 报表管理  --统计分析
+
+const statisticAnalysis = (data) => {
+    return request({
+        url: `/consumer/analysisplus/list?beginDate=${data.beginDate}&endDate=${data.endDate}`,
+        method: "get",
+    });
+};
+// 报表管理  --统计分析-场站
+const analysisplusTjfxlist = (data) => {
+    return request({
+        url: `/consumer/analysisplus/tjfxlist?theday=${data.theday}&wpid=${data.wpid}&identity=${0}`,
+        method: "get",
+    });
+};
+// 报表管理  --统计分析-表底
+const analysisplusBdzlist = (data) => {
+    return request({
+        url: `/consumer/analysisplus/bdzlist?theday=${data.theday}&wpid=${data.wpid}`,
+        method: "get",
+    });
+};
+// 报表管理  --统计分析--确认提交数据‘
+const analysisplusCommit = (data) => {
+    return request({
+        url: `/consumer/analysisplus/commit`,
+        method: "post",
+        data: data
+    });
+};
+
+
 export default {
     benchmarking,
     benchmarkingLineList,
@@ -538,5 +570,9 @@ export default {
     singleanalysisSingleanalysisMain,
     powercompareWindfarmAllAjax2,
     weatherWeatherInfo,
-    weatherWatherChart
+    weatherWatherChart,
+    statisticAnalysis,
+    analysisplusTjfxlist,
+    analysisplusBdzlist,
+    analysisplusCommit
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 967 - 943
src/router/index.js


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

@@ -441,7 +441,7 @@ export default {
               var dataId = that.tableIdArr[data.index - 1];
               that.clearDb();
               that.detailShow = 2;
-              // var that = this;
+              var that = this;
 
               api.benchmarkingDetails({
                   id: dataId,

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

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

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

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

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

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

+ 13 - 0
src/views/layout/Menu.vue

@@ -336,6 +336,19 @@ export default {
               icon: "svg-qxfx",
               path: "/decision/fs",
             },
+            {
+              text: "报表管理",
+              icon: "svg-统计分析",
+              path: "/decision/statisticAnalysis",
+               children: [
+                {
+                  text: "统计分析",
+                  icon: "svg-matrix",
+                  path: "/decision/statisticAnalysis",
+                },
+             
+              ],
+            },
             // {
             //   text: "电量预测",
             //   icon: "svg-dlyc",

+ 2 - 2
src/views/specific/fdl.vue

@@ -48,8 +48,8 @@
               cellspacing="0"
             >
               <tbody>
-                <tr>
-                  <td style="width: 4vh"></td>
+                      <tr>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 2
src/views/specific/fnlyl.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                 <tr>
-                  <td style="width: 4vw"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vw">本期</td>
                     <td style="width: 3vw">同期</td>
@@ -356,7 +356,6 @@ export default {
           for (const item in stations) {
             stations[item].children = stations[item].children.sort(this.compare("month"));
           }
-          console.log(stations);
           this.stations = stations
 
           

+ 1 - 1
src/views/specific/fwjsl.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                   <tr>
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 1
src/views/specific/gzssl.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                   <tr>
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 1
src/views/specific/mtbf.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                 <tr>
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 1
src/views/specific/mttr.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                   <tr>
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 1
src/views/specific/slssl.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                     <tr>
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 1
src/views/specific/whssl.vue

@@ -50,7 +50,7 @@
               <tbody>
            
                        <tr> 
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 1
src/views/specific/xdssl.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                  <tr>
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 1
src/views/specific/xnssl.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                     <tr>
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 1
src/views/specific/xqjsl.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                  <tr>
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 1
src/views/specific/zhcydl.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                 <tr>
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>

+ 1 - 1
src/views/specific/ztzhl.vue

@@ -49,7 +49,7 @@
             >
               <tbody>
                    <tr>
-                  <td style="width: 4vh"></td>
+                  <td style="width: 4vh">场站</td>
                   <template v-for="(x, i) of GsList" :key="i">
                     <td style="width: 3vh">本期</td>
                     <td style="width: 3vh">同期</td>