zhulizhen 5 năm trước cách đây
mục cha
commit
7b39fe64c9

+ 9 - 0
src/api/evaluate/evaluate.js

@@ -0,0 +1,9 @@
+import httputils from '@/api/httputils'
+// 查询运行评价
+export function runDataQury({ getParams }) {
+    return httputils.getJson(`/duoduo-service/transfer/chiller/command/runDataQuery?projectId=Pj5101050001&begin=20200224&end=20200224`, getParams)
+}
+// 查询相似日样本
+export function energyDayQuery({ getParams }) {
+    return httputils.getJson(`/duoduo-service/transfer/chiller/command/energyDayQuery?projectId=Pj3206120001&date=20191105`, getParams)
+}

+ 72 - 74
src/views/appeal/index.vue

@@ -29,7 +29,7 @@
               <div class="remark">备注:{{item.remarks||'--'}}</div>
               <div class="btn">
                 <el-button size="mini">查看快照</el-button>
-                <el-button size="mini" type="primary">申诉</el-button>
+                <el-button size="mini" type="primary" @click="menu(item)">申诉</el-button>
               </div>
             </div>
           </div>
@@ -56,22 +56,17 @@
       </div>
       <div class="right">
         <div class="title Micbold">审核完成/超时未申诉</div>
-        <div
-          class="card"
-          v-for="(item,index) in auditCompletedArr"
-          :key="index"
-          @click="menu(item)"
-        >
+        <div class="card" v-for="(item,index) in auditCompletedArr" :key="index">
           <div class="remark">
             <div class="remark-left">审批时间:{{item.updateTime?formatter1(item.updateTime):'--'}}</div>
             <div class="remark-right Micbold">
               <span
-                :class="item.status=='303'?'backout':(item.status=='304'?'backout1':'backout2')"
+                :class="item.status=='303'?'backout':(item.status=='306'?'backout1':'backout2')"
               >
                 <img
-                  :src="item.status=='303'?require('../../assets/completed.png'):(item.status=='304'?require('../../assets/gray.png'):require('../../assets/error.png'))"
+                  :src="item.status=='303'?require('../../assets/completed.png'):(item.status=='306'?require('../../assets/gray.png'):require('../../assets/error.png'))"
                 />
-                {{item.status=='303'?'申诉成功':(item.status=='304'?'未申诉':'申诉失败')}}
+                {{item.status=='303'?'申诉成功':(item.status=='306'?'未申诉':'申诉失败')}}
               </span>
             </div>
           </div>
@@ -97,69 +92,69 @@ export default {
       appealsArr: [],
       InAuditArr: [],
       auditCompletedArr: [],
-      appealsDate: "",
-      data: [
-        {
-          date: "20202.01.13",
-          info: [
-            {
-              time: "08:30",
-              ad1: 1,
-              ad2: 1,
-              temp1: "8.0",
-              re1: 1,
-              re2: 0,
-              temp2: "10.0",
-              remark: "冷水温度过高,没有及时按策略执行"
-            },
-            {
-              time: "08:30",
-              ad1: 1,
-              ad2: 1,
-              temp1: "8.0",
-              re1: 1,
-              re2: 0,
-              temp2: "10.0",
-              remark: "冷水温度过高,没有及时按策略执行"
-            },
-            {
-              time: "08:30",
-              ad1: 1,
-              ad2: 1,
-              temp1: "8.0",
-              re1: 1,
-              re2: 0,
-              temp2: "10.0",
-              remark: "冷水温度过高,没有及时按策略执行"
-            }
-          ]
-        },
-        {
-          date: "20202.01.13",
-          info: [
-            {
-              time: "08:30",
-              ad1: 1,
-              ad2: 1,
-              temp1: "8.0",
-              re1: 1,
-              re2: 0,
-              temp2: "10.0",
-              remark: "冷水温度过高,没有及时按策略执行"
-            },
-            {
-              time: "08:30",
-              ad1: 1,
-              ad2: 1,
-              temp1: "8.0",
-              re1: 1,
-              re2: 0,
-              temp2: "10.0",
-              remark: "冷水温度过高,没有及时按策略执行"
-            }
-          ]
-        }
-      ]
+      appealsDate: ""
+      // data: [
+      //   {
+      //     date: "20202.01.13",
+      //     info: [
+      //       {
+      //         time: "08:30",
+      //         ad1: 1,
+      //         ad2: 1,
+      //         temp1: "8.0",
+      //         re1: 1,
+      //         re2: 0,
+      //         temp2: "10.0",
+      //         remark: "冷水温度过高,没有及时按策略执行"
+      //       },
+      //       {
+      //         time: "08:30",
+      //         ad1: 1,
+      //         ad2: 1,
+      //         temp1: "8.0",
+      //         re1: 1,
+      //         re2: 0,
+      //         temp2: "10.0",
+      //         remark: "冷水温度过高,没有及时按策略执行"
+      //       },
+      //       {
+      //         time: "08:30",
+      //         ad1: 1,
+      //         ad2: 1,
+      //         temp1: "8.0",
+      //         re1: 1,
+      //         re2: 0,
+      //         temp2: "10.0",
+      //         remark: "冷水温度过高,没有及时按策略执行"
+      //       }
+      //     ]
+      //   },
+      //   {
+      //     date: "20202.01.13",
+      //     info: [
+      //       {
+      //         time: "08:30",
+      //         ad1: 1,
+      //         ad2: 1,
+      //         temp1: "8.0",
+      //         re1: 1,
+      //         re2: 0,
+      //         temp2: "10.0",
+      //         remark: "冷水温度过高,没有及时按策略执行"
+      //       },
+      //       {
+      //         time: "08:30",
+      //         ad1: 1,
+      //         ad2: 1,
+      //         temp1: "8.0",
+      //         re1: 1,
+      //         re2: 0,
+      //         temp2: "10.0",
+      //         remark: "冷水温度过高,没有及时按策略执行"
+      //       }
+      //     ]
+      //   }
+      // ]
       // review: [
       //   {
       //     date: "2020.02.12 08:30",
@@ -232,6 +227,7 @@ export default {
       }
     },
     menu(item) {
+      console.log(item);
       this.$router.push({
         path: "/appeal/appealDetail",
         query: { id: item.commandId }
@@ -292,7 +288,7 @@ export default {
       let params = {
         postParams: {
           criteria: {
-            projectId: "Pj1101080002",
+            projectId: "Pj4413030001",
             trackerId: 3,
             status: [303, 304, 306],
             createTime: {
@@ -546,6 +542,8 @@ export default {
   .right {
     flex: 1;
     min-width: 310px;
+    max-height: 900px;
+    overflow: scroll;
     .title {
       margin-bottom: 16px;
     }

+ 22 - 64
src/views/evaluate/evEnergyTable.vue

@@ -1,78 +1,36 @@
 <template>
   <div class="evEnergyTable">
-    <el-table :data="tableData" style="width: 100%;" height="350">
+    <el-table :data="samples" style="width: 100%;" height="350">
       <el-table-column prop label="序号" align="left" type="index" width="150"></el-table-column>
-      <el-table-column prop="a" label="日期" align="left"></el-table-column>
-      <el-table-column prop="b" label="室外平均温度(℃)" align="right"></el-table-column>
-      <el-table-column prop="c" label="室内平均温度(℃)" align="right"></el-table-column>
-      <el-table-column prop="d" label="冷站能耗(kWh)" align="right"></el-table-column>
+      <el-table-column prop="date" label="日期" align="left">
+        <template slot-scope="{row}">{{formatter(row.date)}}</template>
+      </el-table-column>
+      <el-table-column prop="outsiteTemp" label="室外平均温度(℃)" align="right">
+        <template slot-scope="{row}">{{row.outsiteTemp.toFixed(1)}}</template>
+      </el-table-column>
+      <el-table-column prop="indoorTemp" label="室内平均温度(℃)" align="right">
+        <template slot-scope="{row}">{{row.indoorTemp.toFixed(1)}}</template>
+      </el-table-column>
+      <el-table-column prop="energy" label="冷站能耗(kWh)" align="right">
+        <template slot-scope="{row}">{{row.energy.toFixed(0)}}</template>
+      </el-table-column>
       <el-table-column prop="e" label align="right"></el-table-column>
     </el-table>
   </div>
 </template>
 <script>
+var moment = require("moment");
+import "moment/locale/zh-cn";
 export default {
+  props: ["samples"],
   data() {
-    return {
-      tableData: [
-        {
-          a: "2019.11.03",
-          b: "27.1",
-          c: "24.5",
-          d: "11894"
-        },
-        {
-          a: "2019.11.03",
-          b: "27.1",
-          c: "24.5",
-          d: "11894"
-        },
-        {
-          a: "2019.11.03",
-          b: "27.1",
-          c: "24.5",
-          d: "11894"
-        },
-        {
-          a: "2019.11.03",
-          b: "27.1",
-          c: "24.5",
-          d: "11894"
-        },
-        {
-          a: "2019.11.03",
-          b: "27.1",
-          c: "24.5",
-          d: "11894"
-        },
-        {
-          a: "2019.11.03",
-          b: "27.1",
-          c: "24.5",
-          d: "11894"
-        },
-        {
-          a: "2019.11.03",
-          b: "27.1",
-          c: "24.5",
-          d: "11894"
-        },
-        {
-          a: "2019.11.03",
-          b: "27.1",
-          c: "24.5",
-          d: "11894"
-        },
-        {
-          a: "2019.11.03",
-          b: "27.1",
-          c: "24.5",
-          d: "11894"
-        }
-      ]
-    };
+    return {};
+  },
+  methods: {
+    formatter(date) {
+      return moment.unix(date / 1000).format("YYYY.MM.DD");
+    }
   },
-  methods: {},
   mounted() {}
 };
 </script>

+ 32 - 13
src/views/evaluate/evHistory.vue

@@ -9,27 +9,33 @@
     </p>
     <div class="count-data">
       <div class="outdoor">
-        <div class="outdoor-left">
-          <span>27.3℃</span>
+        <div class="outdoor-left" :style="{'height':((current.tempOutdoor)/maxArr[0])*160 + 'px'}">
+          <span>{{current.tempOutdoor.toFixed(1)}}℃</span>
         </div>
-        <div class="outdoor-right">
-          <span>27.1℃</span>
+        <div
+          class="outdoor-right"
+          :style="{'height':((similarDay.tempOutdoor)/maxArr[0])*160 + 'px'}"
+        >
+          <span>{{similarDay.tempOutdoor.toFixed(1)}}℃</span>
         </div>
       </div>
       <div class="indoor">
-        <div class="indoor-left">
-          <span>24.5℃</span>
+        <div class="indoor-left" :style="{'height': ((current.tempIndoor)/maxArr[1])*160 + 'px'}">
+          <span>{{current.tempIndoor.toFixed(1)}}℃</span>
         </div>
-        <div class="indoor-right">
-          <span>24.4℃</span>
+        <div
+          class="indoor-right"
+          :style="{'height': ((similarDay.tempIndoor)/maxArr[1])*160 + 'px'}"
+        >
+          <span>{{similarDay.tempIndoor.toFixed(1)}}℃</span>
         </div>
       </div>
       <div class="coldWar">
-        <div class="coldWar-left">
-          <span>9817kWh</span>
+        <div class="coldWar-left" :style="{'height': ((current.energy)/maxArr[2])*160 + 'px'}">
+          <span>{{current.energy.toFixed(0)}}kWh</span>
         </div>
-        <div class="coldWar-right">
-          <span>11092kWh</span>
+        <div class="coldWar-right" :style="{'height': ((similarDay.energy)/maxArr[2])*160 + 'px'}">
+          <span>{{similarDay.energy.toFixed(0)}}kWh</span>
         </div>
       </div>
     </div>
@@ -40,6 +46,19 @@
     </div>
   </div>
 </template>
+<script>
+export default {
+  data() {
+    return {};
+  },
+  props: ["current", "similarDay", "maxArr"],
+  mounted() {
+    console.log(this.current);
+    console.log(this.similarDay);
+    console.log(this.maxArr);
+  }
+};
+</script>
 <style lang="scss" scoped>
 p {
   margin: 0;
@@ -107,7 +126,7 @@ p {
     }
     .outdoor-left {
       width: 100px;
-      height: 121px;
+      // height: 121px;
       background: rgba(0, 145, 255, 1);
       position: absolute;
       bottom: 0;

+ 4 - 3
src/views/evaluate/evRateTitle.vue

@@ -3,12 +3,12 @@
     <span v-if="tab==1" class="count-bottom-text">
       <span class="span1"></span>
       <span class="span2 Micbold">室内温度满足率</span>
-      <span class="span3">90.2%</span>
+      <span class="span3">{{rate}}%</span>
     </span>
     <span v-if="tab==2" class="count-bottom-text">
       <span class="span1"></span>
       <span class="span2 Micbold">节能率</span>
-      <span class="span4">22.6%</span>
+      <span class="span4">{{rate}}%</span>
       <span class="span5">准确率</span>
       <span class="span6">90%</span>
     </span>
@@ -24,7 +24,8 @@ export default {
   data() {
     return {};
   },
-  props: ["tab"]
+  mounted() {},
+  props: ["tab", "rate"]
 };
 </script>
 <style lang="scss" scoped>

+ 76 - 75
src/views/evaluate/evStackedLine.vue

@@ -22,7 +22,7 @@ export default {
           trigger: "axis"
         },
         legend: {
-          data: ["优衣库", "海底捞", "大玩家"],
+          data: ["", "", ""],
           icon: "stack",
           right: 28
         },
@@ -83,31 +83,31 @@ export default {
             type: "line",
             stack: "总量",
             data: [
-              13,
-              12,
-              12,
-              14,
-              11,
-              13,
-              12,
-              11,
-              12,
-              12,
-              14,
-              11,
-              13,
-              14,
-              15,
-              12,
-              12,
-              14,
-              11,
-              13,
-              11,
-              14,
-              13,
-              12,
-              15
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0
             ]
           },
           {
@@ -115,31 +115,31 @@ export default {
             type: "line",
             stack: "总量",
             data: [
-              13,
-              15,
-              12,
-              14,
-              13,
-              16,
-              15,
-              13,
-              12,
-              11,
-              13,
-              14,
-              15,
-              14,
-              13,
-              12,
-              13,
-              14,
-              13,
-              12,
-              10,
-              12,
-              12,
-              11,
-              14
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0
             ]
           },
           {
@@ -147,30 +147,31 @@ export default {
             type: "line",
             stack: "总量",
             data: [
-              18,
-              19,
-              19,
-              19,
-              11,
-              11,
-              12,
-              18,
-              12,
-              19,
-              13,
-              11,
-              12,
-              13,
-              18,
-              13,
-              13,
-              14,
-              19,
-              11,
-              13,
-              18,
-              12,
-              19
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0,
+              0
             ]
           }
         ]

+ 92 - 6
src/views/evaluate/evTwoLevelMenu.vue

@@ -15,34 +15,43 @@
             <li :class="{current: num==3}" @click="change(3)">执行率</li>
           </div>
           <div class="count-top-right">
+<<<<<<< HEAD
             <date-temp  @pickerVal="pickerVal"></date-temp>
+=======
+            <date-temp :types="0" @pickerVal="pickerVal"></date-temp>
+>>>>>>> 2e1d1bd20ac434e4f6845ad308eac48d63df87cc
           </div>
         </ul>
         <div class="count-bottom">
           <div v-show="num == 1">
-            <ev-rate-title :tab="1"></ev-rate-title>
+            <ev-rate-title :tab="1" :rate="tindoorFillRate"></ev-rate-title>
             <div class="count-bottom-switch">
               <span class="switchSpan">只显示不满足的点位</span>
               <el-switch v-model="value2"></el-switch>
             </div>
             <div class="count-bottom-content">
-              <ev-two-table :switch="value2"></ev-two-table>
+              <ev-two-table v-if="dataList.length>=0" :switch="value2" :dataList="dataList"></ev-two-table>
             </div>
             <div class="count-bottom-foot">
               <ev-stacked-line></ev-stacked-line>
             </div>
           </div>
           <div v-show="num == 2">
-            <ev-rate-title :tab="2"></ev-rate-title>
+            <ev-rate-title :tab="2" :rate="energySavingRate"></ev-rate-title>
             <div class="count-historical-data">
-              <ev-history></ev-history>
+              <ev-history
+                v-if="Object.keys(current).length>0||Object.keys(similarDay).length>0||Object.keys(maxArr).length>0"
+                :current="current"
+                :similarDay="similarDay"
+                :maxArr="maxArr"
+              ></ev-history>
               <div class="count-foot">
                 <div class="count-foot-title">
                   <span class="Micbold">相似日概况</span>
                   <span class="MicrYaHei">相似度高</span>
                 </div>
                 <div class="count-foot-table">
-                  <ev-energy-table></ev-energy-table>
+                  <ev-energy-table v-if="samples.length>0" :samples="samples"></ev-energy-table>
                 </div>
               </div>
             </div>
@@ -65,6 +74,7 @@ import EvCard from "./evCard"; //执行率
 import EvRateTitle from "./evRateTitle";
 import EvHistory from "./evHistory";
 import DateTemp from "./dateTemp";
+import { runDataQury, energyDayQuery } from "@/api/evaluate/evaluate.js";
 
 export default {
   data() {
@@ -72,6 +82,18 @@ export default {
       headText: "运行评价",
       num: 1,
       value2: true,
+      current: {},
+      similarDay: {},
+      samples: [],
+      maxArr: [],
+      chillerExecuteRate: "", //略执行率
+      isExecutedNum: "", //已执行数量
+      allReceivedNum: "", //共收到数量
+      dataList: [], //室内温度满足率
+      energySaving: "", //节能量
+      tindoorOverrunDegree: "", //超限程度
+      tindoorFillRate: "", //室内温度满足率
+      energySavingRate: "", //节能率
       cardList: [
         {
           a: "08:30",
@@ -132,16 +154,80 @@ export default {
     EvHistory,
     DateTemp
   },
-  mounted() {},
+  mounted() {
+    this.start();
+    this.queryRunDataQury();
+  },
   methods: {
     change: function(index) {
       this.num = index;
+      this.start();
+    },
+    start() {
+      if (this.num == 2) {
+        this.queryEnergyDayQuery();
+      }
     },
     pickerVal(val) {
       console.log(val);
     },
     jumpIndex() {
       this.$router.push("/evaluate");
+    },
+    queryRunDataQury() {
+      this.runDataQuryArr = [];
+      runDataQury({}).then(res => {
+        if (res.result == "success") {
+          this.chillerExecuteRate = res.chillerExecuteRate; //略执行率
+          this.isExecutedNum = res.isExecutedNum; //已执行数量
+          this.allReceivedNum = res.allReceivedNum; //共收到数量
+          this.dataList = res.dataList ? res.dataList : []; //室内温度满足率
+          this.energySaving = res.energySaving; //节能量
+          this.tindoorOverrunDegree = res.tindoorOverrunDegree; //超限程度
+          this.tindoorFillRate = res.tindoorFillRate; //室内温度满足率
+          this.energySavingRate = res.energySavingRate; //节能率
+          console.log(this.energySavingRate);
+        }
+      });
+    },
+    // 节能率
+    queryEnergyDayQuery() {
+      energyDayQuery({}).then(res => {
+        // 本日概况
+        this.current = res.current ? res.current : {};
+        // 相似日概况
+        this.similarDay = res.similarDay ? res.similarDay : {};
+        // 相似日列表
+        this.samples = res.samples ? res.samples : [];
+        if (this.samples.length > 0) {
+          var outsiteTemp = [],
+            indoorTemp = [],
+            energy = [];
+          for (var i in this.samples) {
+            outsiteTemp.push(this.samples[i].outsiteTemp);
+            indoorTemp.push(this.samples[i].indoorTemp);
+            energy.push(this.samples[i].energy);
+          }
+          let maxOutsiteTemp = this.maxMethod(this.sortMethod(outsiteTemp)),
+            maxIndoorTemp = this.maxMethod(this.sortMethod(indoorTemp)),
+            maxEnergy = this.maxMethod(this.sortMethod(energy));
+          this.maxArr.push(maxOutsiteTemp, maxIndoorTemp, maxEnergy);
+        }
+      });
+    },
+    sortMethod(arr) {
+      if (arr instanceof Array) {
+        return arr.sort(function(num1, num2) {
+          return num1 - num2;
+        });
+      } else {
+        return 1;
+      }
+    },
+    maxMethod(arr) {
+      if (arr instanceof Array) {
+        return eval(arr[arr.length - 1]);
+      }
     }
   }
 };

+ 26 - 27
src/views/evaluate/evTwoTable.vue

@@ -1,7 +1,7 @@
 <template>
   <el-table
     class="expandTable"
-    :data="tableData"
+    :data="dataList"
     style="width: 100%;z-index:1"
     :row-key="getRowKeys"
     :expand-row-keys="expands"
@@ -42,35 +42,34 @@ export default {
       getRowKeys(row) {
         return row.id;
       },
-      expands: [],
-      tableData: [
-        {
-          id: "1",
-          name: "优衣库",
-          a: "22-26",
-          b: "26.5",
-          c: "37",
-          d: "-1",
-          e: "12",
-          f: "-3",
-          g: "F3"
-        },
+      expands: []
+      // tableData: [
+      //   {
+      //     id: "1",
+      //     name: "优衣库",
+      //     a: "22-26",
+      //     b: "26.5",
+      //     c: "37",
+      //     d: "-1",
+      //     e: "12",
+      //     f: "-3",
+      //     g: "F3"
+      //   },
 
-        {
-          id: "3",
-          name: "优衣库",
-          a: "22-26",
-          b: "26.5",
-          c: "37",
-          d: "1",
-          e: "12",
-          f: "-3",
-          g: "F2"
-        }
-      ]
+      //   {
+      //     id: "3",
+      //     name: "优衣库",
+      //     a: "22-26",
+      //     b: "26.5",
+      //     c: "37",
+      //     d: "1",
+      //     e: "12",
+      //     f: "-3",
+      //     g: "F2"
+      //   }
+      // ]
     };
   },
-  props: ["switch"],
   methods: {
     init() {
       if (this.tableData) {

+ 3 - 3
src/views/strategy/index.vue

@@ -28,7 +28,7 @@
       </div>
     </div>
     <el-dialog title="提示" :visible.sync="showTodayStrategy" width="1260px">
-      <today-strategy :data='data'></today-strategy>
+      <today-strategy :data='tableData'></today-strategy>
     </el-dialog>
   </div>
 </template>
@@ -45,7 +45,7 @@ export default {
       headText: "当日运行策略",
       navText: true,
       showTodayStrategy: false,
-      data:{},
+      tableData:[],
       quickData:{},
       today:'',
       now:''
@@ -104,7 +104,7 @@ export default {
       getCommand(params).then(res=>{
         console.log(res)
         if(res.data){
-          this.data = res.data.content?res.data.content:{}
+          this.tableData = res.data.content?res.data.content:[]
         }
       })
     }