lishifeng
2020-09-15 ce10677f47a14879424e7f562f78442cc03cfda1
src/pages/dataTest/realTime.vue
@@ -54,16 +54,20 @@
          <div class="page-content-tools">
            <el-popover
            placement="bottom"
            trigger="hover">
            trigger="hover"
            v-show="showControl">
              <div class="hdw-menu-list">
                <ul>
                  <li class="hdw-menu-item"><a href="javascript:void(0);">启动核容测试</a></li>
                  <li class="hdw-menu-item"><a href="javascript:void(0);">停止测试</a></li>
                  <li class="hdw-menu-item"><a @click="dischargeDialog.show = true" href="javascript:void(0);">启动核容测试</a></li>
                  <li class="hdw-menu-item"><a @click="stopTest" href="javascript:void(0);">停止测试</a></li>
                  <!-- <li class="hdw-menu-item"><a @click="systemDialog.show = true" href="javascript:void(0);">系统参数设置</a></li>
                  <li class="hdw-menu-item"><a href="javascript:void(0);">清除告警</a></li>
                  <li class="hdw-menu-item"><a href="javascript:void(0);">启动养护/除硫</a></li>
                  <li class="hdw-menu-item"><a href="javascript:void(0);">停止养护/除硫</a></li>
                  <li class="hdw-menu-item"><a href="javascript:void(0);">启动离线养护</a></li>
                  <li class="hdw-menu-item"><a href="javascript:void(0);">停止离线养护</a></li>
                  <li class="hdw-menu-item"><a href="javascript:void(0);">重启设备</a></li>
                  <li class="hdw-menu-item"><a href="javascript:void(0);">定期重启设备</a></li>
                  <li class="hdw-menu-item"><a href="javascript:void(0);">重启设备</a></li> -->
                </ul>
              </div>
              <button class="hdw-btn" slot="reference">
@@ -74,50 +78,40 @@
          </div>
          <el-tabs v-model="acTabs" type="border-card" class="flex-layout" @tab-click="tabClick">
            <el-tab-pane label="电路拓扑图" name="eleLine">
                <science-box :top="8" :left="8" no-header>
                <science-box :top="8" :left="8" no-header v-show="stateListShow">
                  <div class="hdw-state-list table-layout">
                    <div class="table-row">
                      <div class="table-cell text-right">设备工作状态:</div>
                      <div class="table-cell">未知</div>
                    </div>
                    <div class="table-row">
                      <div class="table-cell text-right">核容终止原因:</div>
                      <div class="table-cell">无</div>
                    </div>
                    <div class="table-row">
                      <div class="table-cell text-right">通信计数:</div>
                      <div class="table-cell">0</div>
                    </div>
                    <div class="table-row">
                      <div class="table-cell text-right">通信丢包率:</div>
                      <div class="table-cell">0</div>
                    </div>
                    <div class="table-row">
                      <div class="table-cell text-right">SD卡状态:</div>
                      <div class="table-cell">正常</div>
                    </div>
                    <div class="table-row">
                      <div class="table-cell text-right">设备版本号:</div>
                      <div class="table-cell">D:8,V2.53.47</div>
                    <div v-for="state in showStateList" :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>
                <circuit-diagram></circuit-diagram>
                <circuit-diagram
                :online-vol="inputs.online_vol"
                :group-vol="inputs.group_vol"
                :batt-curr="inputs.group_curr"
                :dev-temp="diagram.temp"
                :type="diagram.type"></circuit-diagram>
            </el-tab-pane>
            <el-tab-pane label="电压" name="vol">
              <bar-chart ref="vol" id="vol" unit="V"></bar-chart>
            </el-tab-pane>
            <el-tab-pane label="内阻" name="res">
              <bar-chart ref="res" id="res" unit="mΩ"></bar-chart>
              <bar-chart ref="res" id="res" unit="mΩ" max-color="red" min-color="green"></bar-chart>
            </el-tab-pane>
            <el-tab-pane label="温度" name="temp">
              <bar-chart ref="temp" id="temp" unit="℃"></bar-chart>
              <bar-chart ref="temp" id="temp" unit="℃" max-color="red" min-color="green"></bar-chart>
            </el-tab-pane>
            <el-tab-pane label="电导" name="conduct">
              <bar-chart ref="conduct" id="conduct"></bar-chart>
            </el-tab-pane>
            <el-tab-pane label="均衡电流" name="curr">
              <bar-chart ref="curr" id="curr"></bar-chart>
              <bar-chart ref="curr" id="curr" unit="A"></bar-chart>
            </el-tab-pane>
            <el-tab-pane label="数据表格" name="tblData">
              <el-table border size="small" :data="table.datas" height="100%">
@@ -134,6 +128,32 @@
        </div>
      </flex-layout>
    </content-box>
    <!-- 放电参数设置 -->
    <el-dialog
    :title="dischargeDialogTitle"
    width="700px"
    :visible.sync="dischargeDialog.show"
    :close-on-click-modal="false"
    top="0"
    class="dialog-center"
    :modal-append-to-body="false">
      <discharge-dialog-content
      v-if="dischargeDialog.show"
      :batt="batt"></discharge-dialog-content>
    </el-dialog>
    <!-- 系统参数设置 -->
    <el-dialog
    title="系统参数设置"
    width="700px"
    :visible.sync="systemDialog.show"
    :close-on-click-modal="false"
    top="0"
    class="dialog-center"
    :modal-append-to-body="false">
      <system-params
      v-if="systemDialog.show"
      :batt="batt"></system-params>
    </el-dialog>
  </flex-layout>
</template>
@@ -141,26 +161,41 @@
import ContentBox from "../../components/ContentBox";
import HomeList from "./HomeList";
import BarChart from "../../components/chart/BarChart";
import CircuitDiagram from './CircuitDiagram'
import ScienceBox from '../../components/ScienceBox'
import CircuitDiagram from "./CircuitDiagram";
import ScienceBox from "../../components/ScienceBox";
import DischargeDialogContent from '../../components/params/DischargeDialogContent'
import SystemParams from '../../components//params/SystemParams'
import { realTimeSearch, realTimeGroup, realTimeAlarm } from "../../assets/js/realTime";
import {
  realTimeSearch,
  realTimeGroup,
  realTimeAlarm,
  realTimePowerOff
} from "../../assets/js/realTime";
import {
  formatSeconds,
  sethoubeiTime,
} from '../../assets/js/tools'
  sethoubeiTime,
  Timeout,
  regEquipType,
  getBarNum
} from "../../assets/js/tools";
import { const_61850 } from "../../assets/js/const";
/* import moment from "moment"; */
let vol, res, temp, conduct, curr;
let vol, resChart, temp, conduct, currChart;
export default {
  components: {
    ContentBox,
    HomeList,
    BarChart,
    CircuitDiagram,
    ScienceBox
    ScienceBox,
    DischargeDialogContent,
    SystemParams
  },
  data() {
    return {
      username: sessionStorage.getItem('username'),
      /* 电池状态 模块 组端展示 */
      inputs: {
        group_vol: 0 /* 端电压-组端电压 */,
@@ -169,6 +204,7 @@
        batt_test_tlong: "0:00:00" /* 测试时长 */,
        rec_datetime: 0 /* 更新日期 */,
        batt_test_cap: 0 /* 测试容量 */,
        batt_rest_cap: 0, // 剩余容量
        batt_state: 0 /* 电池状态 */
      },
      acTabs: "eleLine",
@@ -201,7 +237,7 @@
          },
          {
            prop: "curr1",
            label: "均衡电流",
            label: "均衡电流(A)",
            width: ""
          }
        ],
@@ -216,7 +252,104 @@
          }
        ]
      },
      batt: {}
      batt: {},
      stateListShow: true,
      stateList: [
        {
          name: "workState",
          type: "",
          icon: "",
          text: "设备工作状态:",
          value: "在线浮充",
          show: true
        },
        {
          name: "connect",
          type: "",
          icon: "el-icon-tongxun",
          text: "设备通讯:",
          value: "正常",
          show: true
        },
        {
          name: "devTemp",
          type: "",
          icon: "el-icon-wendu",
          text: "设备温度:",
          value: "正常",
          show: true
        },
        {
          name: "contact",
          type: "",
          icon: "el-icon-fenxiang",
          text: "干接点:",
          value: "正常",
          show: false
        },
        {
          name: "stopReason",
          type: "",
          icon: "",
          text: "核容终止原因:",
          value: "未知",
          show: false
        },
        {
          name: "failReason",
          type: "",
          icon: "",
          text: "操作失败原因:",
          value: "未知",
          show: false
        },
        {
          name: "resDay",
          type: "",
          icon: "",
          text: "剩余天数:",
          value: "0",
          show: false
        },
        {
          name: "workMode",
          type: "",
          icon: "",
          text: "工作模式:",
          value: "停止",
          show: false
        },
        {
          name: "groupVol",
          type: "",
          icon: "",
          text: "组端电压:",
          value: "0",
          unit: "V",
          show: false
        },
        {
          name: "peakVol",
          type: "",
          icon: "",
          text: "峰值电压:",
          value: "0",
          unit: "V",
          show: false
        }
      ],
      timer: new Timeout(),
      diagram: {
        type: -1,
        desc: "",
        temp: 0 // 设备温度
      },
      dischargeDialog: {
        show: false
      },
      systemDialog: {
        show: false,
      },
    };
  },
  methods: {
@@ -236,7 +369,7 @@
      vol = {
        title: {
          show: true,
          text: "最大值=0V;最小值=0V;平均值=0V;累加和=0V",
          text: "最大值=0V;最小值=0V;平均值=0V",
          x: "center",
          textStyle: {
            fontSize: "14"
@@ -252,7 +385,7 @@
      };
      // 内阻
      res = {
      resChart = {
        title: {
          show: true,
          text: "最大值=0mΩ;最小值=mΩ;平均值=0mΩ",
@@ -308,7 +441,7 @@
        ]
      };
      // 均衡电流
      curr = {
      currChart = {
        title: {
          show: true,
          text: "最大值=0mA;最小值=0mA;平均值=0mA",
@@ -330,31 +463,40 @@
    },
    setChart() {
      this.$refs.vol.setOption(vol);
      this.$refs.res.setOption(res);
      this.$refs.res.setOption(resChart);
      this.$refs.temp.setOption(temp);
      this.$refs.conduct.setOption(conduct);
      this.$refs.curr.setOption(curr);
      this.$refs.curr.setOption(currChart);
    },
    startTimer() {
      this.timer.start(() => {
        this.$axios
          .all([
            this.realTimeSearch(),
            this.realTimeGroupss(),
            this.realTimePowerOffs()
          ])
          .then(() => {
            this.timer.open();
          })
          .catch(() => {
            this.timer.open();
          });
      }, 3000);
    },
    leafClick(data) {
      this.batt = data;
      /*   console.log('this.batt',this.batt); */
      this.realTimeAlarmss();
      this.realTimeGroupss();
      this.realTimeSearch();
      // 开启循环请求
      this.startTimer();
    },
    /* 查询电池告警参数 */
    realTimeAlarmss() {
      var batt = this.batt;
      console.log('batt',batt);
     realTimeAlarm({
       dev_id:batt.FBSDeviceId
     }).then(res => {
         console.log('batt.FBSDeviceId',batt.FBSDeviceId);
      realTimeAlarm({
        dev_id: batt.FBSDeviceId
      }).then(res => {
        let rsccc = JSON.parse(res.data.result);
          console.log("rsccc", rsccc);
      /*   this.inputs = rsa.data[0]; */
        /* console.log("this.inputs", this.inputs); */
      });
    },
    /* 实时组端信息 */
@@ -362,12 +504,166 @@
      var batt = this.batt;
      realTimeGroup(batt.BattGroupId).then(res => {
        let rsa = JSON.parse(res.data.result);
        /*   console.log("rsa", rsa); */
        this.inputs = rsa.data[0];
        /* console.log("this.inputs", this.inputs); */
      });
    },
    /* 查询电路图开关状态和信息 */
    realTimePowerOffs() {
      let batt = this.batt;
      // 设备为61850显示右侧的面板
      if (regEquipType(batt.FBSDeviceId, "equip61850")) {
        this.stateListShow = true;
      } else {
        this.stateListShow = false;
      }
      // 查询后台数据
      realTimePowerOff({
        dev_id: batt.FBSDeviceId
      }).then(res => {
        let rs = JSON.parse(res.data.result);
        let outTime = 2 * 60; //设备超时时间(2分钟)
        let isOutTime = true; //通讯中断      判断设备是否通讯中断    true:中断    false:正常
        if (rs.code == 1) {
          let data = rs.data[0];
          // 基础信息
          this.setEquipBase(data);
          // 判断是否超时
          var nowTime = new Date(data.note).getTime(); //当前时间
          var record = new Date(data.record_datetime).getTime();
          if (Math.abs(nowTime - record) / 1000 > outTime) {
            this.disconnect();
          } else {
            // 未超时执行逻辑
            // 设备为61850
            if (regEquipType(batt.FBSDeviceId, "equip61850")) {
              this.setEquip61850(data);
            }
          }
        } else {
          // 设备处于未连接
          this.disconnect();
        }
      });
    },
    disconnect() {
      // 设备未连接
      this.diagram.type = -1;
      this.setStateList("workState", "未连接");
      this.diagram.temp = 0;
      // 通讯状态
      this.setStateList("connect", "异常", "table-row-error");
      // 温度
      this.setStateList("devTemp", "未知", "table-row-warn");
      // 干接点
      this.setStateList("contact", "未知", "table-row-warn");
      // 核容终止原因
      this.setStateList("stopReason", "未知");
      // 操作失败原因
      this.setStateList("failReason", "未知");
    },
    // 基础信息
    setEquipBase(data) {
      // 设备的温度
      this.diagram.temp = data.dev_temp;
    },
    // 61850设备信息
    setEquip61850(data) {
      //  电路图类型
      let workstatus = parseInt(data.dev_workstate); //[0:'在线监测',1:'放电测试',2:'充电测试',3:'内阻测试',4:'未知'];
      this.diagram.desc = "";
      switch (workstatus) {
        case 0: //浮充状态拓扑图
          this.diagram.type = 0;
          this.diagram.desc = "(开关闭合)";
          break;
        case 4: //浮充状态(内阻测试)拓扑图
          this.diagram.type = 0;
          // 当前设备是否是内阻测试
          this.diagram.desc = "(开关闭合)";
          this.diagram.desc += "(内阻测试)";
          break;
        case 1: //充电状态拓扑图
          this.diagram.type = 2;
          this.diagram.desc = "(开关断开)";
          break;
        case 2: //放电状态拓扑图
          this.diagram.type = 1;
          this.diagram.desc = "(开关断开)";
          break;
        case 3: //放电状态拓扑图
          this.diagram.type = 7;
          break;
        case 5: //放电状态(KD测试)拓扑图
          this.diagram.type = 3;
          this.diagram.desc = "(开关断开)";
          this.diagram.desc += "(KD测试)";
          break;
        case 6: // 离线养护测试
          this.diagram.type = 4;
          this.diagram.desc = "离线养护测试";
          break;
        default:
          //未知
          this.diagram.type = -1;
          this.diagram.desc = "(未知)";
          break;
      }
      // 设备工作状态
      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 failReasons = const_61850.failreasons;
      this.setStateList("failReason", failReasons[data.dev_alarmstate]);
      // 告警信息
      let alarms = data.dev_61850alarms.split(",");
      // alarms = ['false', 'false', 'true', 'false', 'true'];
      // 通讯状态
      if (alarms[1] == "true") {
        this.setStateList("connect", "异常", "table-row-error");
      } else {
        this.setStateList("connect", "正常", "");
      }
      // 温度
      if (alarms[2] == "true") {
        this.setStateList("devTemp", "异常", "table-row-error");
      } else {
        this.setStateList("devTemp", "正常", "");
      }
      // 干接点
      if (alarms[4] == "true") {
        this.setStateList("contact", "异常", "table-row-error");
      } else {
        this.setStateList("contact", "正常", "");
      }
    },
    // 设置stateList的值
    setStateList(name, value, type) {
      let stateList = this.stateList;
      for (let i = 0; i < stateList.length; i++) {
        let state = stateList[i];
        if (state.name == name) {
          state.value = value;
          state.type = type ? type : "";
        }
      }
    },
    /* echars图表 */
    realTimeSearch() {
      var batt = this.batt;
@@ -375,18 +671,16 @@
        BattGroupId: batt.BattGroupId
      }).then(res => {
        let rs = JSON.parse(res.data.result);
        /*   console.log("rs", rs); */
        /* 数据表格 */
        /*   let vovo = {}; */
        if (rs.code == 1) {
          this.vovo = rs.data.map(item => {
            return {
              num1: "#" + item.mon_num,
              vol1: item.mon_vol,
              res1: item.mon_res,
              temp1: item.mon_tmp
            }
              temp1: item.mon_tmp,
              conduct1: (1 / item.mon_res * 1000).toFixed(0),
              curr1: item.mon_JH_curr
            };
          });
        }
        this.table.datas = this.vovo;
@@ -398,16 +692,20 @@
            return ["#" + item.mon_num, item.mon_vol];
          });
        }
        let volBarNum = getBarNum(volTempVol);
        vol.title.text = "最大值="+volBarNum.max.toFixed(2)+"V;最小值="+volBarNum.min.toFixed(2)+"V;平均值="+volBarNum.avg.toFixed(2)+"V";
        vol.series[0].data = volTempVol;
        // 内阻
        /*     let volTempres = [];
        let volTempres = [];
        if (rs.code == 1) {
          volTempres = rs.data.map(item => {
            return ["#" + item.mon_num, item.mon_res];
          });
        }
        res.series[0].data = volTempres; */
        let resBarNum = getBarNum(volTempres);
        resChart.title.text = "最大值="+resBarNum.max.toFixed(2)+"mΩ;最小值="+resBarNum.min.toFixed(2)+"mΩ;平均值="+resBarNum.avg.toFixed(2)+"mΩ";
        resChart.series[0].data = volTempres;
        // 温度
        let volTempte = [];
@@ -416,33 +714,106 @@
            return ["#" + item.mon_num, item.mon_tmp];
          });
        }
        let tempBarNum = getBarNum(volTempte);
        temp.title.text = "最大值="+tempBarNum.max.toFixed(1)+"℃;最小值="+tempBarNum.min.toFixed(1)+"℃;平均值="+tempBarNum.avg.toFixed(1)+"℃";
        temp.series[0].data = volTempte;
        // 电导
        let conductTemp = [];
        if (rs.code == 1) {
          conductTemp = rs.data.map(item => {
            return ["#" + item.mon_num, (1 / item.mon_res * 1000).toFixed(0)];
          });
        }
        let conductBarNum = getBarNum(conductTemp);
        conduct.title.text = "最大值="+conductBarNum.max.toFixed(0)+";最小值="+conductBarNum.min.toFixed(0)+";平均值="+conductBarNum.avg.toFixed(0);
        conduct.series[0].data = conductTemp;
        // 均衡电流
        let currTemp = [];
        if (rs.code == 1) {
          currTemp = rs.data.map(item => {
            return ["#" + item.mon_num, item.mon_JH_curr];
          });
        }
        let currBarNum = getBarNum(currTemp);
        currChart.title.text = "最大值="+currBarNum.max.toFixed(1)+"mA;最小值="+currBarNum.min.toFixed(1)+"mA;平均值="+currBarNum.avg.toFixed(1)+"mA";
        currChart.series[0].data = currTemp;
        // 更新电压图表
        this.$refs.vol.setOption(vol);
        this.$refs.res.setOption(res);
        this.$refs.temp.setOption(temp);
        this.setChart();
      });
    },
    // 向父级发送同步页面的指令
    syncPage() {
      let batt = this.batt;
      let search="?province="+batt.StationName1
      +"&city="+batt.StationName2+"&county="+batt.StationName5
      +"&home="+batt.StationName3+"&batt="+batt.BattGroupId;
      window.parent.postMessage({
        cmd: "syncPage",
        params: {
          pageInfo: {
            label: '历史数据',
            name: 'history',
            src: '#/history'+search,
            closable: true,
      let search =
        "?province=" +
        batt.StationName1 +
        "&city=" +
        batt.StationName2 +
        "&county=" +
        batt.StationName5 +
        "&home=" +
        batt.StationName3 +
        "&batt=" +
        batt.BattGroupId;
      window.parent.postMessage(
        {
          cmd: "syncPage",
          params: {
            pageInfo: {
              label: "历史数据",
              name: "history",
              src: "#/history" + search,
              closable: true
            }
          }
        },
      }, "*");
        "*"
      );
    },
    // 停止测试
    stopTest() {
      this.$layer.confirm('停止测试',{icon: 3}, (index)=>{
        // 关闭询问层
        this.$layer.close(index);
        // 根据设备id进行停止
        if(regEquipType(this.batt.FBSDeviceId, 'equip61850')) {
          // 停止设备
          this.stop61850Test();
        }else {
          // 提示信息
          this.$layer.msg('未知设备类型,暂无法停止测试!');
        }
      });
    },
    // 停止61850测试
    stop61850Test() {
      // 开启等待框
      let loading = this.$layer.loading(1);
      // 请求后台
      this.$apis.dischargeTest.e61850.stop({
        num: const_61850.cmd.stop,
        dev_id: this.batt.FBSDeviceId
      }).then(res=>{
        let rs = JSON.parse(res.data.result);
        if(rs.code == 1) {
            // 提示信息
            this.$layer.msg('停止测试成功');
        }else {
            // 提示信息
            this.$layer.msg('停止测试失败!');
        }
        // 关闭等待框
        this.$layer.close(loading);
      }).catch(error=>{
        console.log(error);
        // 关闭等待框
        this.$layer.close(loading);
        // 提示信息
        this.$layer.msg('停止测试失败,停止测试请求异常!');
      });
    }
  },
  computed: {
@@ -461,23 +832,35 @@
          3: "放电",
          4: "均充"
        },
        list = {};
        list = {
          batt_state: "未知",
          group_online_vol: "在线:0.00V;组端:0.00V",
          group_curr: "0.00A",
          rec_datetime: "1982-01-01 00:00:00",
          batt_test_tlong: formatSeconds(0),
          batt_test_cap: "0Ah",
          batt_syrl_cap: "---",
          sysc: "------"
        };
      if (this.diagram.type == -1) {
        return list;
      }
      list.batt_state = obj[this.inputs.batt_state];
      list.group_online_vol = `在线:${this.inputs.online_vol.toFixed(
      list.group_online_vol = `在线:${this.inputs.online_vol.toFixed(
        2
      )}V;组端:${this.inputs.group_vol.toFixed(2)}V`;
      )}V;组端:${this.inputs.group_vol.toFixed(2)}V`;
      list.group_curr = this.inputs.group_curr.toFixed(2) + "A";
      list.rec_datetime = this.inputs.rec_datetime;
      list.batt_test_tlong = formatSeconds(this.inputs.batt_test_tlong);
      list.batt_test_cap = this.inputs.batt_test_cap.toFixed(1) + "Ah";
      list.batt_test_cap = this.inputs.batt_test_cap.toFixed(1) + "AH";
      if (this.inputs.batt_state === 2) {
        list.batt_syrl_cap = "---";
      } else {
        list.batt_syrl_cap = this.inputs.batt_test_cap.toFixed(1) + "Ah";
        list.batt_syrl_cap = this.inputs.batt_rest_cap.toFixed(1) + "AH";
      }
      if (this.inputs.batt_state === 3) {
        list.sysc = this.sethoubeiTime(
        list.sysc = sethoubeiTime(
          parseFloat(this.inputs.batt_rest_cap) /
            parseFloat(this.inputs.group_curr)
        );
@@ -485,6 +868,28 @@
        list.sysc = "------";
      }
      return list;
    },
    showStateList() {
      return this.stateList.filter(item => {
        if (item.show) {
          return item;
        }
      });
    },
    dischargeDialogTitle() {
      let batt = this.batt;
      if (regEquipType(batt.FBSDeviceId, "equip61850")) {
        return "61850放电参数设置";
      } else {
        return "未知设备(待开发)"
      }
    },
    showControl() {
      if(this.username == 'superuser' || this.username == 'admin') {
        return true;
      }else {
        return false;
      }
    }
  },
  mounted() {
@@ -494,13 +899,14 @@
    this.$nextTick(() => {
      this.$G.chartManage.resize(this.acTabs);
    });
    // 向父组件通信
    window.parent.postMessage({kk:1}, "*")
    // 屏幕缩放时触发
    window.addEventListener("resize", () => {
      this.resize();
    });
  },
  destroyed() {
    this.timer.stop();
  }
};
</script>
@@ -511,6 +917,15 @@
}
.table-cell.text-right {
  font-size: 14px;
}
.table-cell.text-right .iconfont {
  margin-right: 4px;
}
.table-row.table-row-error {
  color: #ff0000;
}
.table-row.table-row-warn {
  color: #e6a23c;
}
.table-row .table-cell {
  padding-top: 12px;
@@ -533,7 +948,7 @@
  color: #cfcfcf;
}
.box-tools .iconfont:active {
  color: #FF0000;
  color: #ff0000;
}
.page-content-tools {
  position: absolute;
@@ -554,7 +969,7 @@
  box-sizing: border-box;
  outline: none;
  margin: 0;
  transition: .1s;
  transition: 0.1s;
  font-weight: 500;
  -webkit-user-select: none;
  -moz-user-select: none;
@@ -576,11 +991,11 @@
.hdw-menu-list .hdw-menu-item:first-child {
  border-top: none;
}
.hdw-menu-item a{
.hdw-menu-item a {
  display: block;
  text-align: center;
  padding: 8px;
  color: #FFFFFF;
  color: #ffffff;
  cursor: pointer;
  background-color: rgba(30, 125, 219, 0.767);
}