he wei
2021-11-23 d5065222162b850d8f42b20ca134321cf231378f
U 18650实时页面 拓扑图左侧添加上一次核容数据
4个文件已修改
261 ■■■■ 已修改文件
src/assets/js/const/const_61850.js 96 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/history.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/movingRingSystem/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataTest/realTime.vue 151 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_61850.js
@@ -1,3 +1,5 @@
import { getLastCapacityTest } from "../history";
export default {
    workstates: ["在线浮充","预充电","核容测试","停电放电","内阻测试","K1/D1测试", '离线养护测试', '未知'],
    alarmstates: ["继电器K1告警","通讯告警","设备过温告警","二极管D1告警"],
@@ -167,26 +169,26 @@
            notShow: true,
            show: false
        },
        {
            id: 110,
            name: "xuHang",
            type: "",
            icon: "",
            text: "预估续航时长:",
            value: "???",
            show: true
        },
        // {
        //     id: 110,
        //     name: "xuHang",
        //     type: "",
        //     icon: "",
        //     text: "预估续航时长:",
        //     value: "???",
        //     show: true
        // },
    ],
    historyStateList: [
        {
            id: 5,
            name: "stopReason",
            type: "",
            icon: "",
            text: "核容终止原因:",
            value: "未知",
            show: false
        },
        // {
        //     id: 5,
        //     name: "stopReason",
        //     type: "",
        //     icon: "",
        //     text: "核容终止原因:",
        //     value: "未知",
        //     show: false
        // },
        {
            id: 6,
            name: "failReason",
@@ -195,7 +197,63 @@
            text: "操作失败原因:",
            value: "未知",
            show: false
        },
        }
  ],
  lastCapacityTest: [
    {
      id: 11,
      name: 'test_starttime',
      type: '',
      icon: '',
      text: '开始时间:',
      value: '未知',
      show: true
    },
    {
      id: 12,
      name: 'test_cap',
      type: '',
      icon: '',
      text: '测试容量:',
      value: '未知',
      show: true
    },
    {
      id: 13,
      name: 'test_timelong',
      type: '',
      icon: '',
      text: '测试时长:',
      value: '未知',
      show: true
    },
    {
      id: 14,
      name: 're_cap',
      type: '',
      icon: '',
      text: '剩余容量:',
      value: '未知',
      show: true
    },
    {
      id: 15,
      name: 'endurance_time',
      type: '',
      icon: '',
      text: '续航时长:',
      value: '未知',
      show: true
    },
    {
      id: 16,
      name: "stopReason",
      type: "",
      icon: "",
      text: "终止原因:",
      value: "未知",
      show: true
    }
    ],
    getItemByName(name, list) {
        let result = false;
src/assets/js/history.js
@@ -60,3 +60,15 @@
        data: null
    });
}
/**
 * 查询(61850)最后一次核容放电数据
 * num为FBSDeviceId
 * 参数:json={"num":910000119,"BattGroupId":1005129}
 */
export const getLastCapacityTest = (data) => {
  return axios({
      method: "post",
      url: "Batttestdata_infAction_searchBattLastHrDataById",
      data: 'json=' + JSON.stringify(data)
  });
}
src/pages/dataTest/movingRingSystem/index.vue
@@ -1,7 +1,7 @@
<template>
    <flex-layout direction="row" class="page-real-time" :no-bg="true">
        <home-list slot="header" @toggleChange="toggleChange" @leaf-click="leafClick"></home-list>
        <router-view v-if="isReload"></router-view>
        <router-view :key="$route.fullPath" v-if="isReload"></router-view>
    </flex-layout>
</template>
src/pages/dataTest/realTime.vue
@@ -304,6 +304,33 @@
                    </div>
                  </div>
                </science-box>
                <!-- 上次核容测试信息 -->
                <science-box
                  style="position: relative; margin-top: 8px"
                  title="上一次核容测试信息"
                  v-show="stateListState"
                >
                  <div class="hdw-state-list table-layout">
                    <div
                      v-for="state in lastCapacityTest.filter((item) => item.show)"
                      :key="state.text"
                      class="table-row"
                      :class="state.type"
                    >
                      <div class="table-cell text-right">
                        <i
                          v-if="state.icon"
                          class="iconfont"
                          :class="state.icon"
                        ></i
                        >{{ state.text }}
                      </div>
                      <div class="table-cell">
                        {{ state.value }}{{ state.unit }}
                      </div>
                    </div>
                  </div>
                </science-box>
              </div>
              <div style="position: absolute;top: 8px; left: 8px" v-if="isLithium">
                <science-box
@@ -851,9 +878,8 @@
  realTimeNot,
  realTimeAdd,
  BattRtAlarmActionGetInfo,
  BattRsAlarmActionGetInfo, realTimeXuHang,
} from "../../assets/js/realTime";
import {
  BattRsAlarmActionGetInfo,
  // realTimeXuHang,
  realTimeSearch,
  realTimeGroup,
  realTimeAlarm,
@@ -862,11 +888,16 @@
  inversionInfo,
} from "../../assets/js/realTime";
import {
  getLastCapacityTest
} from "../../assets/js/history";
import {
  formatSeconds,
  sethoubeiTime,
  Timeout,
  regEquipType,
  getBarNum,
  GetMonomerCap,
  GetHourRate,
  isHasPermit,
  getConduct,
} from "../../assets/js/tools";
@@ -943,6 +974,7 @@
    let isCanTest = isHasPermit("batt_test_op_permit", permits);
    let stateList = const_61850.stateList;
    let historyStateList = const_61850.historyStateList;
    let lastCapacityTest = const_61850.lastCapacityTest;
    let pageConfig = this.$store.getters["user/realTabsConfig"];
    return {
      workPlanDialog: false,
@@ -1063,6 +1095,7 @@
      stateListShow: true,
      stateList: stateList,
      historyStateList: historyStateList,
      lastCapacityTest: lastCapacityTest,
      timer: new Timeout("realTime"),
      diagram: {
        update: true,
@@ -1729,10 +1762,14 @@
      this.batt = data;
      this.diagram.desc = "";
      this.realTimeAlarmss();
      this.realTimeXuHang();    // 预估续航时长
      // this.realTimeXuHang();    // 预估续航时长
      this.diagram.devType = getDevType(data.chargeType, data.buscoupleState);
      this.esVideoSn = data.videoUrl;
      this.table.headers = getTblHeader(data.FBSDeviceId);
      // 如果是61850 则查询最后一次放电数据
      if (regEquipType(data.FBSDeviceId, ["equip61850"])) {
        this.getLastCapacityTest(data);
      }
      this.$nextTick(()=>{
        this.changeTabsName();
        // 开启循环请求
@@ -1917,7 +1954,7 @@
      // 干接点
      this.setStateList("contact", "未知", "table-row-warn");
      // 核容终止原因
      this.setStateList("stopReason", "未知");
      // this.setStateList("stopReason", "未知");
      // 操作失败原因
      this.setStateList("failReason", "未知");
      // 预估续航时长
@@ -2115,15 +2152,15 @@
      let workStates = const_61850.workstates;
      this.setStateList("workState", workStates[data.dev_workstate]);
      // 核容终止原因
      let stopReasons = const_61850.stopreasons;
      if (data.dev_workstate == 2) {
        this.setStateList("stopReason", "未知");
      } else {
        this.setStateList(
          "stopReason",
          stopReasons[data.dev_last_captest_stop_type]
        );
      }
      // let stopReasons = const_61850.stopreasons;
      // if (data.dev_workstate == 2) {
      //   this.setStateList("stopReason", "未知");
      // } else {
      //   this.setStateList(
      //     "stopReason",
      //     stopReasons[data.dev_last_captest_stop_type]
      //   );
      // }
      // 操作失败原因
      let failReasons = const_61850.failreasons;
@@ -2218,6 +2255,14 @@
        if (state.name == name) {
          state.value = value;
          state.type = type ? type : "";
        }
      }
      for (let i = 0, list = this.lastCapacityTest, j = list.length; i < j; i++) {
        let state = list[i];
        if (state.name == name) {
          state.value = value;
          state.type = type || "";
        }
      }
    },
@@ -2737,22 +2782,22 @@
          console.log(error);
        });
    },
    realTimeXuHang() {
      let batt = this.batt;
      realTimeXuHang(batt.FBSDeviceId).then(res=>{
        let rs = JSON.parse(res.data.result);
        if(rs.data == -1) {
          // 预估续航时长
          this.setStateList("xuHang", "???");
        }else {
          // 预估续航时长
          this.setStateList("xuHang", formatSeconds(rs.data*60));
        }
      }).catch(error=>{
        // 预估续航时长
        this.setStateList("xuHang", "???");
      })
    },
    // realTimeXuHang() {
    //   let batt = this.batt;
    //   realTimeXuHang(batt.FBSDeviceId).then(res=>{
    //     let rs = JSON.parse(res.data.result);
    //     if(rs.data == -1) {
    //       // 预估续航时长
    //       this.setStateList("xuHang", "???");
    //     }else {
    //       // 预估续航时长
    //       this.setStateList("xuHang", formatSeconds(rs.data*60));
    //     }
    //   }).catch(error=>{
    //     // 预估续航时长
    //     this.setStateList("xuHang", "???");
    //   })
    // },
    // 逆变信息
    inversionInfo() {
      let batt = this.batt;
@@ -2874,6 +2919,46 @@
        }
      });
    },
    getLastCapacityTest (batt) {
      let param = {
        num: batt.FBSDeviceId,
        BattGroupId: batt.BattGroupId
      };
      getLastCapacityTest(param).then((res) => {
        res = JSON.parse(res.data.result);
        // console.log(res, 'res======');
        if (res.code) {
          let data = res.data;
          // 上次核容停止原因
          this.setStateList('stopReason', data.test_stoptype_reason);
          // 核容测试的最后一笔数据
          let datalist = data.batttestdataList;
          // 上次核容开始时间
          this.setStateList('test_starttime', data.test_starttime);
          // 上次核容测试容量
          this.setStateList('test_cap', data.test_cap.toFixed(1) + "AH");
          // 上次核容测试时长
          this.setStateList('test_timelong', data.test_timelong);
          let volArr = [];
          datalist.forEach((v) => {
            volArr.push(['#' + v.mon_num, v.mon_vol]);
          });
          let batNum = getBarNum(volArr);
          let avg_curr = data.test_timelong > 0 ? data.test_cap * 3600 / data.test_timelong : data.test_curr;
          let over_cap = GetMonomerCap(batt.MonCapStd, GetHourRate(batt.MonCapStd, avg_curr),
                        data.test_cap, batNum.max, batNum.min, batt.MonVolStd, 0);
          let real_cap = GetMonomerCap(batt.MonCapStd, GetHourRate(batt.MonCapStd, avg_curr),
                        data.test_cap, batNum.max, batNum.min, batt.MonVolStd, 1);
          let xuhang = batt.Load_curr ? real_cap / batt.Load_curr : 0;
          // 剩余容量
          this.setStateList('re_cap', over_cap.toFixed(1) + 'AH');
          // 续航时长
          this.setStateList('endurance_time', xuhang ? sethoubeiTime(xuhang) : '---');
        }
      }).catch((err) => {
        console.error(err);
      });
    }
  },
  computed: {
    battFullName() {
@@ -3128,7 +3213,7 @@
}
.table-row .table-cell {
  padding-top: 12px;
  padding-top: 8px;
}
.page-content {
@@ -3290,4 +3375,8 @@
.lampImg {
  height: 28px;
}
>>> .box-header {
  font-size: 14px;
  padding: 0;
}
</style>