| | |
| | | return axios({ |
| | | method: "post", |
| | | url: "Batt_rtstateAction_serchByCondition", |
| | | data: "rtstate.battGroupId="+params |
| | | data: "rtstate.battGroupId=" + params |
| | | }) |
| | | } |
| | | |
| | |
| | | * @param params 查询参数 |
| | | * @returns {AxiosPromise} |
| | | */ |
| | | export const searchHistoryRealtimeData = (params)=>{ |
| | | export const searchHistoryRealtimeData = (params) => { |
| | | // 查询后台 |
| | | return axios({ |
| | | method: "post", |
| | |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 查询历史实时数据 |
| | | * @param json:{"dev_id":618500002} |
| | | * @returns {AxiosPromise} |
| | | */ |
| | | export const JhStateActionSerchByCondition = (params) => { |
| | | // 查询后台 |
| | | return axios({ |
| | | method: "post", |
| | | url: "JhStateAction_action_serchByCondition", |
| | | data: "json=" + JSON.stringify(params) |
| | | }); |
| | | } |
New file |
| | |
| | | <template> |
| | | <div class="con"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <flex-box title="电压"> |
| | | <el-table :data="volTable" stripe class="border-table table-stripe-odd" :show-header="false" size="small"> |
| | | <el-table-column prop="name" label="名称" align="center" min-width="100" class-name="table-list-name"> |
| | | </el-table-column> |
| | | <el-table-column prop="value" label="值" align="center" class-name="table-list-value"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </flex-box> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <flex-box title="电流"> |
| | | <el-table :data="eleTable" stripe class="border-table table-stripe-odd" :show-header="false" size="small"> |
| | | <el-table-column prop="name" label="名称" align="center" min-width="100" class-name="table-list-name"> |
| | | </el-table-column> |
| | | <el-table-column prop="value" label="值" align="center" class-name="table-list-value"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </flex-box> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <flex-box title="其他"> |
| | | <el-table :data="otherTable" stripe class="border-table table-stripe-odd" :show-header="false" size="small"> |
| | | <el-table-column prop="name" label="名称" align="center" min-width="100" class-name="table-list-name"> |
| | | </el-table-column> |
| | | <el-table-column prop="value" label="值" align="center" class-name="table-list-value"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </flex-box> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import FlexBox from "@/components/FlexBox" |
| | | import { |
| | | JhStateActionSerchByCondition, |
| | | } from "@/assets/js/realTime"; |
| | | export default { |
| | | components: { |
| | | FlexBox |
| | | }, |
| | | props: ['devId'], |
| | | data() { |
| | | return { |
| | | volTable: [{ |
| | | key: 'input_vol_total', |
| | | name: '总输入电压', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_total', |
| | | name: '总输出电压', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_one', |
| | | name: '输出电压1', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_two', |
| | | name: '输出电压2', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_three', |
| | | name: '输出电压3', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_four', |
| | | name: '输出电压4', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_five', |
| | | name: '输出电压5', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_six', |
| | | name: '输出电压6', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_seven', |
| | | name: '输出电压7', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_eight', |
| | | name: '输出电压8', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_nine', |
| | | name: '输出电压9', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_vol_ten', |
| | | name: '输出电压10', |
| | | value: '???' |
| | | } |
| | | ], |
| | | eleTable: [{ |
| | | key: 'input_curr_total', |
| | | name: '总输入电流', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'output_curr_total', |
| | | name: '总输出电流', |
| | | value: '???' |
| | | } |
| | | ], |
| | | otherTable: [{ |
| | | key: 'dev_version', |
| | | name: '版本号', |
| | | value: '???' |
| | | }, |
| | | { |
| | | key: 'dev_temp', |
| | | name: '温度', |
| | | value: '???' |
| | | } |
| | | ], |
| | | } |
| | | }, |
| | | mounted() { |
| | | JhStateActionSerchByCondition({ |
| | | dev_id: this.devId, |
| | | }).then((res) => { |
| | | let resData = JSON.parse(res.data.result) |
| | | if (resData.code == 1) { |
| | | let dataObj = resData.data[0]; |
| | | for (let key in dataObj) { |
| | | this.volTable.map(item => { |
| | | if (item.key == key) { |
| | | item.value = dataObj[key] |
| | | } |
| | | }) |
| | | this.eleTable.map(item => { |
| | | if (item.key == key) { |
| | | item.value = dataObj[key] |
| | | } |
| | | }) |
| | | this.otherTable.map(item => { |
| | | if (item.key == key) { |
| | | item.value = dataObj[key] |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }).catch((err) => { |
| | | console.log(err) |
| | | }); |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .con { |
| | | padding: 10px; |
| | | } |
| | | </style> |
| | |
| | | </li> |
| | | <li class="hdw-menu-item" v-if="control.data.startOutlineYH.show"> |
| | | <a @click="outlineCuringDialog.show = true" |
| | | href="javascript:void(0);">启动离线养护</a> |
| | | href="javascript:void(0);">启动离线养护</a> |
| | | </li> |
| | | <li class="hdw-menu-item" v-if="control.data.stopOutlineYH.show"> |
| | | <a href="javascript:void(0);">停止离线养护</a> |
| | |
| | | <science-box :top="8" :left="8" no-header v-show="stateListState"> |
| | | <div class="hdw-state-list table-layout"> |
| | | <div v-for="state in showStateList" :key="state.text" class="table-row" |
| | | :class="state.type" |
| | | v-show="!state.notShow"> |
| | | :class="state.type" v-show="!state.notShow"> |
| | | <div class="table-cell text-right"> |
| | | <i v-if="state.icon" class="iconfont" :class="state.icon"></i>{{ |
| | | state.text |
| | |
| | | </div> |
| | | <table class="table-info-list" v-if="fodShow"> |
| | | <thead> |
| | | <tr> |
| | | <td v-for="item in fodHeaders" :key="item.prop">{{ item.label }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td v-for="item in fodHeaders" :key="item.prop">{{ item.label }}</td> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <tr v-for="(fod, key) in fodData" :key="key"> |
| | | <td v-for="(item, index) in fod" :key="index">{{ fod[index] }}</td> |
| | | </tr> |
| | | <tr v-for="(fod, key) in fodData" :key="key"> |
| | | <td v-for="(item, index) in fod" :key="index">{{ fod[index] }}</td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | </science-box> |
| | | <circuit-diagram :batt="batt" :online-vol="inputs.online_vol" :group-vol="inputs.group_vol" |
| | | :batt-curr="inputs.group_curr" :dev-temp="diagram.temp" |
| | | :type="diagram.type" :update="diagram.update" |
| | | :version="dev_version" :contact-res="diagram.contactRes" |
| | | :drop-vol="diagram.dropVol"></circuit-diagram> |
| | | :batt-curr="inputs.group_curr" :dev-temp="diagram.temp" :type="diagram.type" |
| | | :update="diagram.update" :version="dev_version" :contact-res="diagram.contactRes" |
| | | :drop-vol="diagram.dropVol"></circuit-diagram> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="电压" name="vol"> |
| | | <bar-chart-three-d ref="vol" id="vol" unit="V" :show-tools="true" |
| | | @right-click="chartRightCLick"></bar-chart-three-d> |
| | | @right-click="chartRightCLick"></bar-chart-three-d> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="内阻" name="res"> |
| | | <bar-chart-three-d ref="res" id="res" unit="mΩ" :show-tools="true" max-color="red" |
| | | min-color="green" @right-click="chartRightCLick"></bar-chart-three-d> |
| | | min-color="green" @right-click="chartRightCLick"></bar-chart-three-d> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="温度" name="temp"> |
| | | <bar-chart-three-d ref="temp" id="temp" unit="℃" :show-tools="true" max-color="red" |
| | | min-color="green" @right-click="chartRightCLick"></bar-chart-three-d> |
| | | min-color="green" @right-click="chartRightCLick"></bar-chart-three-d> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="电导" name="conduct"> |
| | | <bar-chart-three-d ref="conduct" id="conduct" :show-tools="true" |
| | | @right-click="chartRightCLick"></bar-chart-three-d> |
| | | @right-click="chartRightCLick"></bar-chart-three-d> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="均衡电流" name="curr"> |
| | | <bar-chart-three-d ref="curr" id="curr" unit="A" :show-tools="true" |
| | | @right-click="chartRightCLick"></bar-chart-three-d> |
| | | @right-click="chartRightCLick"></bar-chart-three-d> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="漏液电压" name="leakVol"> |
| | | <bar-chart-three-d ref="leakVol" id="leakVol" unit="V" :show-tools="true" |
| | | @right-click="chartRightCLick"></bar-chart-three-d> |
| | | @right-click="chartRightCLick"></bar-chart-three-d> |
| | | </el-tab-pane> |
| | | |
| | | <el-tab-pane label="数据表格" name="tblData" class="el-table-wrapper"> |
| | | <el-table stripe size="small" :data="table.datas" height="100%"> |
| | | <el-table-column v-for="header in table.headers" :key="header.prop" :prop="header.prop" |
| | | :label="header.label" :width="header.width" |
| | | align="center"></el-table-column> |
| | | :label="header.label" :width="header.width" align="center"></el-table-column> |
| | | </el-table> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="逆变信息" name="niBianInfoTab" v-if="isNiBian"> |
| | | <ni-bian-info-tab ref="niBianInfoTab" :name="acTabs" |
| | | :devId="batt.FBSDeviceId"></ni-bian-info-tab> |
| | | <ni-bian-info-tab ref="niBianInfoTab" :name="acTabs" :devId="batt.FBSDeviceId"> |
| | | </ni-bian-info-tab> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="均衡供电" name="jggdInfoTab" v-if="isJhgd"> |
| | | <jggd-info-tab :devId="batt.FBSDeviceId"></jggd-info-tab> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | |
| | | </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" |
| | | @close="closeDisChargeDialog"></discharge-dialog-content> |
| | | :close-on-click-modal="false" top="0" class="dialog-center" :modal-append-to-body="false"> |
| | | <discharge-dialog-content v-if="dischargeDialog.show" :batt="batt" @close="closeDisChargeDialog"> |
| | | </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"> |
| | | class="dialog-center" :modal-append-to-body="false"> |
| | | <system-params v-if="systemDialog.show" :batt="batt"></system-params> |
| | | </el-dialog> |
| | | <!-- 除硫养护参数设置 --> |
| | | <el-dialog title="除硫养护参数设置" width="700px" :visible.sync="curingDialog.show" :close-on-click-modal="false" |
| | | top="0" |
| | | class="dialog-center" :modal-append-to-body="false"> |
| | | top="0" class="dialog-center" :modal-append-to-body="false"> |
| | | <curing-params v-if="curingDialog.show" :batt="batt"></curing-params> |
| | | </el-dialog> |
| | | <!-- 离线养护参数设置 --> |
| | | <el-dialog title="离线养护参数设置" width="700px" :visible.sync="outlineCuringDialog.show" :close-on-click-modal="false" |
| | | top="0" class="dialog-center" :modal-append-to-body="false"> |
| | | top="0" class="dialog-center" :modal-append-to-body="false"> |
| | | <outline-curing-params v-if="outlineCuringDialog.show" :batt="batt"></outline-curing-params> |
| | | </el-dialog> |
| | | <!-- 定期重启参数设置 --> |
| | | <el-dialog title="定期重启参数设置" width="700px" :visible.sync="restartPlanDialog.show" :close-on-click-modal="false" |
| | | top="0" class="dialog-center" :modal-append-to-body="false"> |
| | | top="0" class="dialog-center" :modal-append-to-body="false"> |
| | | <restart-plan-params v-if="restartPlanDialog.show" :batt="batt"></restart-plan-params> |
| | | </el-dialog> |
| | | <!-- 实时历史数据 --> |
| | | <el-dialog :title="histroyDataTitle" width="1200px" :visible.sync="historyRealTimeDataDialog.show" |
| | | :close-on-click-modal="false" top="0" class="dialog-center no-bg" :modal-append-to-body="false"> |
| | | :close-on-click-modal="false" top="0" class="dialog-center no-bg" :modal-append-to-body="false"> |
| | | <history-realtime-data :batt="batt" v-if="historyRealTimeDataDialog.show"></history-realtime-data> |
| | | </el-dialog> |
| | | <!-- 逆变信息 --> |
| | | <el-dialog title="逆变信息" width="600px" :visible.sync="nibian.show" :close-on-click-modal="false" top="0" |
| | | class="dialog-center" :modal-append-to-body="false"> |
| | | class="dialog-center" :modal-append-to-body="false"> |
| | | <ni-bian v-if="nibian.show" :batt="batt"></ni-bian> |
| | | </el-dialog> |
| | | <!-- 停止养护除硫 --> |
| | | <el-dialog title="停止养护除硫" width="600px" :visible.sync="stopCuringDialog.show" :close-on-click-modal="false" |
| | | top="0" |
| | | class="dialog-center" :modal-append-to-body="false"> |
| | | top="0" class="dialog-center" :modal-append-to-body="false"> |
| | | <stop-curing v-if="stopCuringDialog.show" :batt="batt"></stop-curing> |
| | | </el-dialog> |
| | | <right-menu :visible.sync="rightMenu.show" :x="rightMenu.x" :y="rightMenu.y"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | 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 DischargeDialogContent from "../../components/params/DischargeDialogContent"; |
| | | import SystemParams from "../../components//params/SystemParams"; |
| | | import CuringParams from "@/components/params/CuringParams"; |
| | | import OutlineCuringParams from "@/components/params/OutlineCuringParams"; |
| | | import RestartPlanParams from "@/components/params/RestartPlanParams"; |
| | | import HistoryRealtimeData from "@/pages/dataTest/HistoryRealtimeData"; |
| | | import RightMenu from "@/components/RightMenu"; |
| | | import NiBian from "@/pages/dataTest/dialogs/NiBian"; |
| | | import StopCuring from "@/pages/dataTest/dialogs/StopCuring"; |
| | | import NiBianInfoTab from "@/pages/dataTest/components/NiBianInfoTab"; |
| | | import {realTimeNot, realTimeAdd} from "../../assets/js/realTime"; |
| | | import { |
| | | realTimeSearch, |
| | | realTimeGroup, |
| | | realTimeAlarm, |
| | | realTimePowerOff, |
| | | realTimeStateList, |
| | | inversionInfo, |
| | | } from "../../assets/js/realTime"; |
| | | import { |
| | | formatSeconds, |
| | | sethoubeiTime, |
| | | Timeout, |
| | | regEquipType, |
| | | getBarNum, |
| | | isHasPermit, |
| | | } from "../../assets/js/tools"; |
| | | 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 DischargeDialogContent from "../../components/params/DischargeDialogContent"; |
| | | import SystemParams from "../../components//params/SystemParams"; |
| | | import CuringParams from "@/components/params/CuringParams"; |
| | | import OutlineCuringParams from "@/components/params/OutlineCuringParams"; |
| | | import RestartPlanParams from "@/components/params/RestartPlanParams"; |
| | | import HistoryRealtimeData from "@/pages/dataTest/HistoryRealtimeData"; |
| | | import RightMenu from "@/components/RightMenu"; |
| | | import NiBian from "@/pages/dataTest/dialogs/NiBian"; |
| | | import StopCuring from "@/pages/dataTest/dialogs/StopCuring"; |
| | | import NiBianInfoTab from "@/pages/dataTest/components/NiBianInfoTab"; |
| | | import { |
| | | realTimeNot, |
| | | realTimeAdd |
| | | } from "../../assets/js/realTime"; |
| | | import { |
| | | realTimeSearch, |
| | | realTimeGroup, |
| | | realTimeAlarm, |
| | | realTimePowerOff, |
| | | realTimeStateList, |
| | | inversionInfo, |
| | | } from "../../assets/js/realTime"; |
| | | import { |
| | | formatSeconds, |
| | | sethoubeiTime, |
| | | Timeout, |
| | | regEquipType, |
| | | getBarNum, |
| | | isHasPermit, |
| | | } from "../../assets/js/tools"; |
| | | |
| | | import { |
| | | const_61850, |
| | | const_9100 |
| | | } from "../../assets/js/const"; |
| | | import getMarkLineData from "@/components/chart/js/getMarkLineData"; |
| | | import BarChartThreeD from "@/components/chart/BarChartThreeD"; |
| | | /* import moment from "moment"; */ |
| | | let vol, resChart, temp, conduct, currChart, leakVol; |
| | | let tblData = []; |
| | | export default { |
| | | components: { |
| | | BarChartThreeD, |
| | | ContentBox, |
| | | HomeList, |
| | | //BarChart, |
| | | CircuitDiagram, |
| | | ScienceBox, |
| | | DischargeDialogContent, |
| | | SystemParams, |
| | | CuringParams, |
| | | OutlineCuringParams, |
| | | RestartPlanParams, |
| | | HistoryRealtimeData, |
| | | RightMenu, |
| | | NiBian, |
| | | StopCuring, |
| | | NiBianInfoTab, |
| | | // NiBianInfo, |
| | | }, |
| | | watch: { |
| | | "$route.params.BattGroupId"(BattGroupId) { |
| | | this.$nextTick(() => { |
| | | this.getBattGroupInfo(BattGroupId); |
| | | }); |
| | | import { |
| | | const_61850, |
| | | const_9100 |
| | | } from "../../assets/js/const"; |
| | | import getMarkLineData from "@/components/chart/js/getMarkLineData"; |
| | | import BarChartThreeD from "@/components/chart/BarChartThreeD"; |
| | | import JggdInfoTab from './components/jggdInfoTab.vue'; |
| | | /* import moment from "moment"; */ |
| | | let vol, resChart, temp, conduct, currChart, leakVol; |
| | | let tblData = []; |
| | | export default { |
| | | components: { |
| | | BarChartThreeD, |
| | | ContentBox, |
| | | HomeList, |
| | | //BarChart, |
| | | CircuitDiagram, |
| | | ScienceBox, |
| | | DischargeDialogContent, |
| | | SystemParams, |
| | | CuringParams, |
| | | OutlineCuringParams, |
| | | RestartPlanParams, |
| | | HistoryRealtimeData, |
| | | RightMenu, |
| | | NiBian, |
| | | StopCuring, |
| | | NiBianInfoTab, |
| | | JggdInfoTab, |
| | | // NiBianInfo, |
| | | }, |
| | | isNiBian(val) { |
| | | if (!val && this.acTabs == "niBianInfoTab") { |
| | | this.acTabs = "eleLine"; |
| | | } |
| | | }, |
| | | "$store.state.theme.collapse"() { |
| | | this.$nextTick(() => { |
| | | this.resize(); |
| | | }); |
| | | }, |
| | | }, |
| | | data() { |
| | | let permits = this.$store.state.user.permits; |
| | | let isCanTest = isHasPermit("batt_test_op_permit", permits); |
| | | let stateList = const_61850.stateList; |
| | | return { |
| | | isCanTest: isCanTest, |
| | | homeListShow: true, |
| | | dev_version: "", |
| | | username: sessionStorage.getItem("username"), |
| | | rightMenu: { |
| | | show: false, |
| | | x: 0, |
| | | y: 0, |
| | | xIndex: 0, |
| | | watch: { |
| | | "$route.params.BattGroupId"(BattGroupId) { |
| | | this.$nextTick(() => { |
| | | this.getBattGroupInfo(BattGroupId); |
| | | }); |
| | | }, |
| | | /* 电池状态 模块 组端展示 */ |
| | | inputs: { |
| | | group_vol: 0 /* 端电压-组端电压 */, |
| | | online_vol: 0 /* 端电压-在线电压 */, |
| | | group_curr: 0 /* 电池电流 */, |
| | | batt_test_tlong: "0:00:00" /* 测试时长 */, |
| | | rec_datetime: 0 /* 更新日期 */, |
| | | batt_test_cap: 0 /* 测试容量 */, |
| | | batt_rest_cap: 0, // 剩余容量 |
| | | batt_state: 0 /* 电池状态 */, |
| | | }, |
| | | acTabs: "eleLine", |
| | | table: { |
| | | headers: [{ |
| | | prop: "num1", |
| | | label: "单体编号", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "vol1", |
| | | label: "电压(V)", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "res1", |
| | | label: "内阻(mΩ)", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "temp1", |
| | | label: "温度(℃)", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "conduct1", |
| | | label: "电导", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "curr1", |
| | | label: "均衡电流(A)", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "leakVol1", |
| | | label: "漏液电压(V)", |
| | | width: "", |
| | | }, |
| | | ], |
| | | datas: [{ |
| | | num1: 0, |
| | | vol1: 0, |
| | | res1: 0, |
| | | temp1: 0, |
| | | conduct1: 0, |
| | | curr1: 0, |
| | | leakVol1: 0, |
| | | },], |
| | | }, |
| | | batt: {}, |
| | | stateListShow: true, |
| | | stateList: stateList, |
| | | timer: new Timeout("realTime"), |
| | | diagram: { |
| | | update: true, |
| | | type: -1, |
| | | desc: "", |
| | | powerCut: 1, |
| | | temp: 0, // 设备温度 |
| | | contactRes: 0, // 接触器阻抗 |
| | | dropVol: 0, // 导通压降 |
| | | }, |
| | | dischargeDialog: { |
| | | show: false, |
| | | }, |
| | | systemDialog: { |
| | | show: false, |
| | | }, |
| | | curingDialog: { |
| | | show: false, |
| | | }, |
| | | outlineCuringDialog: { |
| | | show: false, |
| | | }, |
| | | restartPlanDialog: { |
| | | show: false, |
| | | }, |
| | | historyRealTimeDataDialog: { |
| | | show: false, |
| | | }, |
| | | control: { |
| | | show: false, |
| | | data: { |
| | | startTest: { |
| | | // 启动核容测试 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 11, |
| | | }, |
| | | stopTest: { |
| | | // 停止测试 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 12, |
| | | }, |
| | | setSystemParams: { |
| | | // 系统参数设置 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 13, |
| | | }, |
| | | clearWarn: { |
| | | // 清理告警 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 14, |
| | | }, |
| | | startYH: { |
| | | // 启动养护/除硫 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 15, |
| | | }, |
| | | stopYH: { |
| | | // 停止养护/除硫 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 16, |
| | | }, |
| | | startOutlineYH: { |
| | | // 启动离线养护/除硫 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 17, |
| | | }, |
| | | stopOutlineYH: { |
| | | // 停止离线养护/除硫 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 18, |
| | | }, |
| | | circleRestart: { |
| | | // 定期重启 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 19, |
| | | }, |
| | | restart: { |
| | | // 重启 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 20, |
| | | }, |
| | | }, |
| | | }, |
| | | powerChart: { |
| | | ACVol: [{ |
| | | id: "ACVolA", |
| | | name: "三项交流电压", |
| | | number: "A", |
| | | min: 0, |
| | | max: 250, |
| | | unit: "伏特(V)", |
| | | color: [ |
| | | [0.2, "#FA62E8"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#DCFD00"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACVolB", |
| | | name: "三项交流电压", |
| | | number: "B", |
| | | min: 0, |
| | | max: 250, |
| | | unit: "伏特(V)", |
| | | color: [ |
| | | [0.2, "#FA62E8"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#DCFD00"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACVolC", |
| | | name: "三项交流电压", |
| | | number: "C", |
| | | min: 0, |
| | | max: 250, |
| | | unit: "伏特(V)", |
| | | color: [ |
| | | [0.2, "#FA62E8"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#DCFD00"], |
| | | ], |
| | | }, |
| | | ], |
| | | ACCurr: [{ |
| | | id: "ACCurrA", |
| | | name: "三项交流电流", |
| | | number: "A", |
| | | min: 0, |
| | | max: 100, |
| | | unit: "安培(A)", |
| | | color: [ |
| | | [0.2, "#0081FF"], |
| | | [0.8, "#90EC7D"], |
| | | [1, "#E5357E"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACCurrB", |
| | | name: "三项交流电流", |
| | | number: "B", |
| | | min: 0, |
| | | max: 100, |
| | | unit: "安培(A)", |
| | | color: [ |
| | | [0.2, "#0081FF"], |
| | | [0.8, "#90EC7D"], |
| | | [1, "#E5357E"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACCurrC", |
| | | name: "三项交流电流", |
| | | number: "C", |
| | | min: 0, |
| | | max: 100, |
| | | unit: "安培(A)", |
| | | color: [ |
| | | [0.2, "#0081FF"], |
| | | [0.8, "#90EC7D"], |
| | | [1, "#E5357E"], |
| | | ], |
| | | }, |
| | | ], |
| | | ACPower: [{ |
| | | id: "ACPowerA", |
| | | name: "三项交流频率", |
| | | number: "A", |
| | | min: 40, |
| | | max: 80, |
| | | unit: "赫兹(Hz)", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACPowerB", |
| | | name: "三项交流频率", |
| | | number: "B", |
| | | min: 40, |
| | | max: 80, |
| | | unit: "赫兹(Hz)", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACPowerC", |
| | | name: "三项交流频率", |
| | | number: "C", |
| | | min: 40, |
| | | max: 80, |
| | | unit: "赫兹(Hz)", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | ], |
| | | Cos: [{ |
| | | id: "CosA", |
| | | name: "三项功率因数", |
| | | number: "A", |
| | | min: 0, |
| | | max: 0.2, |
| | | unit: "", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "CosB", |
| | | name: "三项功率因数", |
| | | number: "B", |
| | | min: 0, |
| | | max: 0.2, |
| | | unit: "", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "CosC", |
| | | name: "三项功率因数", |
| | | number: "C", |
| | | min: 0, |
| | | max: 0.2, |
| | | unit: "", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | ], |
| | | apparentPower: [{ |
| | | id: "apparentPowerA", |
| | | name: "三项视在功率", |
| | | number: "A", |
| | | min: 0, |
| | | max: 1000, |
| | | unit: "千伏安(KVA)", |
| | | color: [ |
| | | [0.2, "#6042FA"], |
| | | [0.8, "#F8BD45"], |
| | | [1, "#00FFFF"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "apparentPowerB", |
| | | name: "三项视在功率", |
| | | number: "B", |
| | | min: 0, |
| | | max: 1000, |
| | | unit: "千伏安(KVA)", |
| | | color: [ |
| | | [0.2, "#6042FA"], |
| | | [0.8, "#F8BD45"], |
| | | [1, "#00FFFF"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "apparentPowerC", |
| | | name: "三项视在功率", |
| | | number: "C", |
| | | min: 0, |
| | | max: 1000, |
| | | unit: "千伏安(KVA)", |
| | | color: [ |
| | | [0.2, "#6042FA"], |
| | | [0.8, "#F8BD45"], |
| | | [1, "#00FFFF"], |
| | | ], |
| | | }, |
| | | ], |
| | | direct: [{ |
| | | id: "directVol", |
| | | name: "输出直流电压", |
| | | number: "电压", |
| | | min: 0, |
| | | max: 60, |
| | | unit: "伏特(V)", |
| | | color: [ |
| | | [0.2, "#FA62E8"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#DCFD00"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "directCurr", |
| | | name: "输出直流电流", |
| | | number: "电流", |
| | | min: 0, |
| | | max: 100, |
| | | unit: "安培(A)", |
| | | color: [ |
| | | [0.2, "#0081FF"], |
| | | [0.8, "#90EC7D"], |
| | | [1, "#E5357E"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "directPower", |
| | | name: "输出直流功率", |
| | | number: "功率", |
| | | min: 0, |
| | | max: 100, |
| | | unit: "千瓦(KW)", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | nibian: { |
| | | show: false, |
| | | }, |
| | | stopCuringDialog: { |
| | | show: false, |
| | | }, |
| | | fodHeaders: [], |
| | | fodData: [], |
| | | }; |
| | | }, |
| | | methods: { |
| | | tabClick(tab) { |
| | | this.acTabs = tab.name; |
| | | // 根据tab更新电路图 |
| | | if (this.acTabs === "eleLine") { |
| | | this.diagram.update = true; |
| | | } else { |
| | | this.diagram.update = false; |
| | | } |
| | | // 更新图表 |
| | | this.setChart(); |
| | | |
| | | // 重置图表的大小 |
| | | this.$nextTick(() => { |
| | | this.resize(); |
| | | // 设置表格的数据 |
| | | if (this.acTabs == "tblData") { |
| | | this.table.datas = tblData; |
| | | isNiBian(val) { |
| | | if (!val && this.acTabs == "niBianInfoTab") { |
| | | this.acTabs = "eleLine"; |
| | | } |
| | | }); |
| | | }, |
| | | "$store.state.theme.collapse"() { |
| | | this.$nextTick(() => { |
| | | this.resize(); |
| | | }); |
| | | }, |
| | | }, |
| | | toggleChange() { |
| | | this.resize(); |
| | | }, |
| | | resize() { |
| | | if (this.acTabs === "powerInfo") { |
| | | this.powerInfoChartResize(); |
| | | } else if (this.acTabs === "niBianInfoTab") { |
| | | this.$refs.niBianInfoTab.resize(); |
| | | } else { |
| | | this.$G.chartManage.resize(this.acTabs); |
| | | } |
| | | }, |
| | | powerInfoChartResize() { |
| | | // 三项交流电压 |
| | | this.powerChart.ACVol.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | |
| | | // 三项交流电流 |
| | | this.powerChart.ACCurr.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | |
| | | // 三项交流频率 |
| | | this.powerChart.ACPower.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | |
| | | // 三项功率因数 |
| | | this.powerChart.Cos.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | |
| | | // 三项视在功率 |
| | | this.powerChart.apparentPower.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | |
| | | // 输出直流 |
| | | this.powerChart.direct.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | }, |
| | | initChart() { |
| | | // 电压 |
| | | vol = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0V;最小值=0V;平均值=0V", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | data() { |
| | | let permits = this.$store.state.user.permits; |
| | | let isCanTest = isHasPermit("batt_test_op_permit", permits); |
| | | let stateList = const_61850.stateList; |
| | | return { |
| | | isCanTest: isCanTest, |
| | | homeListShow: true, |
| | | dev_version: "", |
| | | username: sessionStorage.getItem("username"), |
| | | rightMenu: { |
| | | show: false, |
| | | x: 0, |
| | | y: 0, |
| | | xIndex: 0, |
| | | }, |
| | | /* 电池状态 模块 组端展示 */ |
| | | inputs: { |
| | | group_vol: 0 /* 端电压-组端电压 */ , |
| | | online_vol: 0 /* 端电压-在线电压 */ , |
| | | group_curr: 0 /* 电池电流 */ , |
| | | batt_test_tlong: "0:00:00" /* 测试时长 */ , |
| | | rec_datetime: 0 /* 更新日期 */ , |
| | | batt_test_cap: 0 /* 测试容量 */ , |
| | | batt_rest_cap: 0, // 剩余容量 |
| | | batt_state: 0 /* 电池状态 */ , |
| | | }, |
| | | acTabs: "eleLine", |
| | | table: { |
| | | headers: [{ |
| | | prop: "num1", |
| | | label: "单体编号", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "vol1", |
| | | label: "电压(V)", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "res1", |
| | | label: "内阻(mΩ)", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "temp1", |
| | | label: "温度(℃)", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "conduct1", |
| | | label: "电导", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "curr1", |
| | | label: "均衡电流(A)", |
| | | width: "", |
| | | }, |
| | | { |
| | | prop: "leakVol1", |
| | | label: "漏液电压(V)", |
| | | width: "", |
| | | }, |
| | | ], |
| | | datas: [{ |
| | | num1: 0, |
| | | vol1: 0, |
| | | res1: 0, |
| | | temp1: 0, |
| | | conduct1: 0, |
| | | curr1: 0, |
| | | leakVol1: 0, |
| | | }, ], |
| | | }, |
| | | batt: {}, |
| | | stateListShow: true, |
| | | stateList: stateList, |
| | | timer: new Timeout("realTime"), |
| | | diagram: { |
| | | update: true, |
| | | type: -1, |
| | | desc: "", |
| | | powerCut: 1, |
| | | temp: 0, // 设备温度 |
| | | contactRes: 0, // 接触器阻抗 |
| | | dropVol: 0, // 导通压降 |
| | | }, |
| | | dischargeDialog: { |
| | | show: false, |
| | | }, |
| | | systemDialog: { |
| | | show: false, |
| | | }, |
| | | curingDialog: { |
| | | show: false, |
| | | }, |
| | | outlineCuringDialog: { |
| | | show: false, |
| | | }, |
| | | restartPlanDialog: { |
| | | show: false, |
| | | }, |
| | | historyRealTimeDataDialog: { |
| | | show: false, |
| | | }, |
| | | control: { |
| | | show: false, |
| | | data: { |
| | | startTest: { |
| | | // 启动核容测试 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 11, |
| | | }, |
| | | stopTest: { |
| | | // 停止测试 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 12, |
| | | }, |
| | | setSystemParams: { |
| | | // 系统参数设置 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 13, |
| | | }, |
| | | clearWarn: { |
| | | // 清理告警 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 14, |
| | | }, |
| | | startYH: { |
| | | // 启动养护/除硫 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 15, |
| | | }, |
| | | stopYH: { |
| | | // 停止养护/除硫 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 16, |
| | | }, |
| | | startOutlineYH: { |
| | | // 启动离线养护/除硫 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 17, |
| | | }, |
| | | stopOutlineYH: { |
| | | // 停止离线养护/除硫 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 18, |
| | | }, |
| | | circleRestart: { |
| | | // 定期重启 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 19, |
| | | }, |
| | | restart: { |
| | | // 重启 |
| | | show: true, |
| | | typeShow: false, |
| | | id: 20, |
| | | }, |
| | | }, |
| | | }, |
| | | series: [{ |
| | | name: "电压", |
| | | type: "bar", |
| | | data: [], |
| | | markLine: { |
| | | data: getMarkLineData(), |
| | | }, |
| | | },], |
| | | }; |
| | | // 漏液电压 |
| | | leakVol = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0V;最小值=0V;平均值=0V", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | powerChart: { |
| | | ACVol: [{ |
| | | id: "ACVolA", |
| | | name: "三项交流电压", |
| | | number: "A", |
| | | min: 0, |
| | | max: 250, |
| | | unit: "伏特(V)", |
| | | color: [ |
| | | [0.2, "#FA62E8"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#DCFD00"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACVolB", |
| | | name: "三项交流电压", |
| | | number: "B", |
| | | min: 0, |
| | | max: 250, |
| | | unit: "伏特(V)", |
| | | color: [ |
| | | [0.2, "#FA62E8"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#DCFD00"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACVolC", |
| | | name: "三项交流电压", |
| | | number: "C", |
| | | min: 0, |
| | | max: 250, |
| | | unit: "伏特(V)", |
| | | color: [ |
| | | [0.2, "#FA62E8"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#DCFD00"], |
| | | ], |
| | | }, |
| | | ], |
| | | ACCurr: [{ |
| | | id: "ACCurrA", |
| | | name: "三项交流电流", |
| | | number: "A", |
| | | min: 0, |
| | | max: 100, |
| | | unit: "安培(A)", |
| | | color: [ |
| | | [0.2, "#0081FF"], |
| | | [0.8, "#90EC7D"], |
| | | [1, "#E5357E"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACCurrB", |
| | | name: "三项交流电流", |
| | | number: "B", |
| | | min: 0, |
| | | max: 100, |
| | | unit: "安培(A)", |
| | | color: [ |
| | | [0.2, "#0081FF"], |
| | | [0.8, "#90EC7D"], |
| | | [1, "#E5357E"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACCurrC", |
| | | name: "三项交流电流", |
| | | number: "C", |
| | | min: 0, |
| | | max: 100, |
| | | unit: "安培(A)", |
| | | color: [ |
| | | [0.2, "#0081FF"], |
| | | [0.8, "#90EC7D"], |
| | | [1, "#E5357E"], |
| | | ], |
| | | }, |
| | | ], |
| | | ACPower: [{ |
| | | id: "ACPowerA", |
| | | name: "三项交流频率", |
| | | number: "A", |
| | | min: 40, |
| | | max: 80, |
| | | unit: "赫兹(Hz)", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACPowerB", |
| | | name: "三项交流频率", |
| | | number: "B", |
| | | min: 40, |
| | | max: 80, |
| | | unit: "赫兹(Hz)", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "ACPowerC", |
| | | name: "三项交流频率", |
| | | number: "C", |
| | | min: 40, |
| | | max: 80, |
| | | unit: "赫兹(Hz)", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | ], |
| | | Cos: [{ |
| | | id: "CosA", |
| | | name: "三项功率因数", |
| | | number: "A", |
| | | min: 0, |
| | | max: 0.2, |
| | | unit: "", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "CosB", |
| | | name: "三项功率因数", |
| | | number: "B", |
| | | min: 0, |
| | | max: 0.2, |
| | | unit: "", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "CosC", |
| | | name: "三项功率因数", |
| | | number: "C", |
| | | min: 0, |
| | | max: 0.2, |
| | | unit: "", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | ], |
| | | apparentPower: [{ |
| | | id: "apparentPowerA", |
| | | name: "三项视在功率", |
| | | number: "A", |
| | | min: 0, |
| | | max: 1000, |
| | | unit: "千伏安(KVA)", |
| | | color: [ |
| | | [0.2, "#6042FA"], |
| | | [0.8, "#F8BD45"], |
| | | [1, "#00FFFF"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "apparentPowerB", |
| | | name: "三项视在功率", |
| | | number: "B", |
| | | min: 0, |
| | | max: 1000, |
| | | unit: "千伏安(KVA)", |
| | | color: [ |
| | | [0.2, "#6042FA"], |
| | | [0.8, "#F8BD45"], |
| | | [1, "#00FFFF"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "apparentPowerC", |
| | | name: "三项视在功率", |
| | | number: "C", |
| | | min: 0, |
| | | max: 1000, |
| | | unit: "千伏安(KVA)", |
| | | color: [ |
| | | [0.2, "#6042FA"], |
| | | [0.8, "#F8BD45"], |
| | | [1, "#00FFFF"], |
| | | ], |
| | | }, |
| | | ], |
| | | direct: [{ |
| | | id: "directVol", |
| | | name: "输出直流电压", |
| | | number: "电压", |
| | | min: 0, |
| | | max: 60, |
| | | unit: "伏特(V)", |
| | | color: [ |
| | | [0.2, "#FA62E8"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#DCFD00"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "directCurr", |
| | | name: "输出直流电流", |
| | | number: "电流", |
| | | min: 0, |
| | | max: 100, |
| | | unit: "安培(A)", |
| | | color: [ |
| | | [0.2, "#0081FF"], |
| | | [0.8, "#90EC7D"], |
| | | [1, "#E5357E"], |
| | | ], |
| | | }, |
| | | { |
| | | id: "directPower", |
| | | name: "输出直流功率", |
| | | number: "功率", |
| | | min: 0, |
| | | max: 100, |
| | | unit: "千瓦(KW)", |
| | | color: [ |
| | | [0.2, "#F8BD45"], |
| | | [0.8, "#00FFFF"], |
| | | [1, "#F3535F"], |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | series: [{ |
| | | name: "漏液电压", |
| | | type: "bar", |
| | | data: [], |
| | | },], |
| | | }; |
| | | |
| | | // 内阻 |
| | | resChart = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0mΩ;最小值=mΩ;平均值=0mΩ", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | nibian: { |
| | | show: false, |
| | | }, |
| | | series: [{ |
| | | name: "内阻", |
| | | type: "bar", |
| | | data: [], |
| | | markLine: { |
| | | data: getMarkLineData(), |
| | | }, |
| | | },], |
| | | }; |
| | | |
| | | // 温度 |
| | | temp = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0℃;最小值=0℃;平均值=0℃", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | stopCuringDialog: { |
| | | show: false, |
| | | }, |
| | | series: [{ |
| | | name: "温度", |
| | | type: "bar", |
| | | data: [], |
| | | markLine: { |
| | | data: getMarkLineData(), |
| | | }, |
| | | },], |
| | | fodHeaders: [], |
| | | fodData: [], |
| | | }; |
| | | |
| | | // 电导 |
| | | conduct = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0;最小值=0;平均值=0", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | }, |
| | | series: [{ |
| | | name: "电导", |
| | | type: "bar", |
| | | data: [], |
| | | markLine: { |
| | | data: getMarkLineData(), |
| | | }, |
| | | },], |
| | | }; |
| | | // 均衡电流 |
| | | currChart = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0mA;最小值=0mA;平均值=0mA", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | }, |
| | | series: [{ |
| | | name: "均衡电流", |
| | | type: "bar", |
| | | data: [], |
| | | },], |
| | | }; |
| | | // 设置配置项 |
| | | this.setChart(); |
| | | }, |
| | | setChart() { |
| | | let acTabs = this.acTabs; |
| | | switch (acTabs) { |
| | | case "vol": |
| | | this.$refs.vol.setOption(vol); |
| | | break; |
| | | case "res": |
| | | this.$refs.res.setOption(resChart); |
| | | break; |
| | | case "temp": |
| | | this.$refs.temp.setOption(temp); |
| | | break; |
| | | case "conduct": |
| | | this.$refs.conduct.setOption(conduct); |
| | | break; |
| | | case "curr": |
| | | this.$refs.curr.setOption(currChart); |
| | | break; |
| | | case "leakVol": |
| | | this.$refs.leakVol.setOption(leakVol); |
| | | break; |
| | | } |
| | | }, |
| | | startTimer() { |
| | | this.timer.start(() => { |
| | | this.$axios |
| | | .all([ |
| | | this.realTimeSearch(), |
| | | this.realTimeGroupss(), |
| | | this.realTimePowerOffs(), |
| | | this.realTimeStateList(), |
| | | //this.inversionInfo() |
| | | ]) |
| | | .then(() => { |
| | | this.timer.open(); |
| | | methods: { |
| | | tabClick(tab) { |
| | | this.acTabs = tab.name; |
| | | // 根据tab更新电路图 |
| | | if (this.acTabs === "eleLine") { |
| | | this.diagram.update = true; |
| | | } else { |
| | | this.diagram.update = false; |
| | | } |
| | | // 更新图表 |
| | | this.setChart(); |
| | | |
| | | // 重置图表的大小 |
| | | this.$nextTick(() => { |
| | | this.resize(); |
| | | // 设置表格的数据 |
| | | if (this.acTabs == "tblData") { |
| | | this.table.datas = tblData; |
| | | } |
| | | }); |
| | | }, |
| | | toggleChange() { |
| | | this.resize(); |
| | | }, |
| | | resize() { |
| | | if (this.acTabs === "powerInfo") { |
| | | this.powerInfoChartResize(); |
| | | } else if (this.acTabs === "niBianInfoTab") { |
| | | this.$refs.niBianInfoTab.resize(); |
| | | } else { |
| | | this.$G.chartManage.resize(this.acTabs); |
| | | } |
| | | }, |
| | | powerInfoChartResize() { |
| | | // 三项交流电压 |
| | | this.powerChart.ACVol.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | |
| | | // 三项交流电流 |
| | | this.powerChart.ACCurr.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | |
| | | // 三项交流频率 |
| | | this.powerChart.ACPower.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | |
| | | // 三项功率因数 |
| | | this.powerChart.Cos.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | |
| | | // 三项视在功率 |
| | | this.powerChart.apparentPower.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | |
| | | // 输出直流 |
| | | this.powerChart.direct.forEach((item) => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | }, |
| | | initChart() { |
| | | // 电压 |
| | | vol = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0V;最小值=0V;平均值=0V", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | }, |
| | | series: [{ |
| | | name: "电压", |
| | | type: "bar", |
| | | data: [], |
| | | markLine: { |
| | | data: getMarkLineData(), |
| | | }, |
| | | }, ], |
| | | }; |
| | | // 漏液电压 |
| | | leakVol = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0V;最小值=0V;平均值=0V", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | }, |
| | | series: [{ |
| | | name: "漏液电压", |
| | | type: "bar", |
| | | data: [], |
| | | }, ], |
| | | }; |
| | | |
| | | // 内阻 |
| | | resChart = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0mΩ;最小值=mΩ;平均值=0mΩ", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | }, |
| | | series: [{ |
| | | name: "内阻", |
| | | type: "bar", |
| | | data: [], |
| | | markLine: { |
| | | data: getMarkLineData(), |
| | | }, |
| | | }, ], |
| | | }; |
| | | |
| | | // 温度 |
| | | temp = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0℃;最小值=0℃;平均值=0℃", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | }, |
| | | series: [{ |
| | | name: "温度", |
| | | type: "bar", |
| | | data: [], |
| | | markLine: { |
| | | data: getMarkLineData(), |
| | | }, |
| | | }, ], |
| | | }; |
| | | |
| | | // 电导 |
| | | conduct = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0;最小值=0;平均值=0", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | }, |
| | | series: [{ |
| | | name: "电导", |
| | | type: "bar", |
| | | data: [], |
| | | markLine: { |
| | | data: getMarkLineData(), |
| | | }, |
| | | }, ], |
| | | }; |
| | | // 均衡电流 |
| | | currChart = { |
| | | title: { |
| | | show: true, |
| | | text: "最大值=0mA;最小值=0mA;平均值=0mA", |
| | | x: "center", |
| | | textStyle: { |
| | | fontSize: "14", |
| | | }, |
| | | }, |
| | | series: [{ |
| | | name: "均衡电流", |
| | | type: "bar", |
| | | data: [], |
| | | }, ], |
| | | }; |
| | | // 设置配置项 |
| | | this.setChart(); |
| | | }, |
| | | setChart() { |
| | | let acTabs = this.acTabs; |
| | | switch (acTabs) { |
| | | case "vol": |
| | | this.$refs.vol.setOption(vol); |
| | | break; |
| | | case "res": |
| | | this.$refs.res.setOption(resChart); |
| | | break; |
| | | case "temp": |
| | | this.$refs.temp.setOption(temp); |
| | | break; |
| | | case "conduct": |
| | | this.$refs.conduct.setOption(conduct); |
| | | break; |
| | | case "curr": |
| | | this.$refs.curr.setOption(currChart); |
| | | break; |
| | | case "leakVol": |
| | | this.$refs.leakVol.setOption(leakVol); |
| | | break; |
| | | } |
| | | }, |
| | | startTimer() { |
| | | this.timer.start(() => { |
| | | this.$axios |
| | | .all([ |
| | | this.realTimeSearch(), |
| | | this.realTimeGroupss(), |
| | | this.realTimePowerOffs(), |
| | | this.realTimeStateList(), |
| | | //this.inversionInfo() |
| | | ]) |
| | | .then(() => { |
| | | this.timer.open(); |
| | | }) |
| | | .catch(() => { |
| | | this.timer.open(); |
| | | }); |
| | | }, 3000); |
| | | }, |
| | | getBattGroupInfo(BattGroupId) { |
| | | this.homeListShow = false; |
| | | this.timer.name = "movingRingSysteRrealTime"; |
| | | this.$apis.dataMager.battGroupMager |
| | | .getBattGroupInfo(BattGroupId) |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.leafClick(rs.data[0]); |
| | | } else { |
| | | this.$layer.msg("未获取到电池组的信息"); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.timer.open(); |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, 3000); |
| | | }, |
| | | getBattGroupInfo(BattGroupId) { |
| | | this.homeListShow = false; |
| | | this.timer.name = "movingRingSysteRrealTime"; |
| | | this.$apis.dataMager.battGroupMager |
| | | .getBattGroupInfo(BattGroupId) |
| | | .then((res) => { |
| | | }, |
| | | leafClick(data) { |
| | | this.batt = data; |
| | | this.diagram.desc = ""; |
| | | this.realTimeAlarmss(); |
| | | // 开启循环请求 |
| | | this.startTimer(); |
| | | }, |
| | | /* 查询电池告警参数 */ |
| | | realTimeAlarmss() { |
| | | var batt = this.batt; |
| | | realTimeAlarm({ |
| | | dev_id: batt.FBSDeviceId, |
| | | }).then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.leafClick(rs.data[0]); |
| | | } else { |
| | | this.$layer.msg("未获取到电池组的信息"); |
| | | let list = rs.data; |
| | | // 单体电压 |
| | | this.setChartMarkLine(vol, "Voltage", "Batt_Alarm_Type_MonVol", list); |
| | | // 单体温度 |
| | | this.setChartMarkLine( |
| | | temp, |
| | | "Temperature", |
| | | "Batt_Alarm_Type_MonTmp", |
| | | list |
| | | ); |
| | | // 单体内阻 |
| | | this.setChartMarkLine( |
| | | resChart, |
| | | "Resistance", |
| | | "Batt_Alarm_Type_MonRes", |
| | | list |
| | | ); |
| | | // 单体电导 |
| | | this.setChartMarkLine( |
| | | conduct, |
| | | "Conductance", |
| | | "Batt_Alarm_Type_MonRes", |
| | | list |
| | | ); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | leafClick(data) { |
| | | this.batt = data; |
| | | this.diagram.desc = ""; |
| | | this.realTimeAlarmss(); |
| | | // 开启循环请求 |
| | | this.startTimer(); |
| | | }, |
| | | /* 查询电池告警参数 */ |
| | | realTimeAlarmss() { |
| | | var batt = this.batt; |
| | | realTimeAlarm({ |
| | | dev_id: batt.FBSDeviceId, |
| | | }).then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | let list = rs.data; |
| | | // 单体电压 |
| | | this.setChartMarkLine(vol, "Voltage", "Batt_Alarm_Type_MonVol", list); |
| | | // 单体温度 |
| | | this.setChartMarkLine( |
| | | temp, |
| | | "Temperature", |
| | | "Batt_Alarm_Type_MonTmp", |
| | | list |
| | | ); |
| | | // 单体内阻 |
| | | this.setChartMarkLine( |
| | | resChart, |
| | | "Resistance", |
| | | "Batt_Alarm_Type_MonRes", |
| | | list |
| | | ); |
| | | // 单体电导 |
| | | this.setChartMarkLine( |
| | | conduct, |
| | | "Conductance", |
| | | "Batt_Alarm_Type_MonRes", |
| | | list |
| | | ); |
| | | } |
| | | }); |
| | | }, |
| | | setChartMarkLine(chartData, name, alm_name, list) { |
| | | let batt = this.batt; |
| | | // 遍历list |
| | | for (let i = 0; i < list.length; i++) { |
| | | let item = list[i]; |
| | | if (item.alm_name == alm_name) { |
| | | let high = 0; |
| | | let low = 0; |
| | | switch (name) { |
| | | case "Voltage": // 电压告警 |
| | | //单体电压 |
| | | let std_mon_vol = batt.MonVolStd; |
| | | high = parseFloat(std_mon_vol * item.alm_high_coe).toHold(3); |
| | | low = parseFloat(std_mon_vol * item.alm_low_coe).toHold(3); |
| | | break; |
| | | case "Temperature": |
| | | //单体温度 |
| | | let std_mon_tmp = 25; |
| | | high = parseFloat(std_mon_tmp * item.alm_high_coe).toHold(1); |
| | | low = parseFloat(std_mon_tmp * item.alm_low_coe).toHold(1); |
| | | break; |
| | | case "Resistance": |
| | | let std_mon_res = |
| | | (1 * (batt.MonVolStd / 2)) / (batt.MonCapStd / 100); |
| | | high = parseFloat(std_mon_res * item.alm_high_coe).toHold(3); |
| | | low = parseFloat(std_mon_res * item.alm_low_coe).toHold(3); |
| | | break; |
| | | case "Conductance": |
| | | let std_mon_ser = batt.MonSerStd; |
| | | high = parseFloat(std_mon_ser * item.alm_high_coe).toHold(0); |
| | | low = parseFloat(std_mon_ser * item.alm_low_coe).toHold(0); |
| | | break; |
| | | } |
| | | // 低告警 |
| | | chartData.series[0].markLine.data[0].yAxis = low; |
| | | // 高告警 |
| | | chartData.series[0].markLine.data[1].yAxis = high; |
| | | break; |
| | | } |
| | | } |
| | | }, |
| | | /* 实时组端信息 */ |
| | | realTimeGroupss() { |
| | | var batt = this.batt; |
| | | realTimeGroup(batt.BattGroupId).then((res) => { |
| | | let rsa = JSON.parse(res.data.result); |
| | | if (rsa.code == 1) { |
| | | this.inputs = rsa.data[0]; |
| | | } |
| | | }); |
| | | }, |
| | | /* 查询电路图开关状态和信息 */ |
| | | 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.dev_version = data.dev_version; |
| | | // 基础信息 |
| | | 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 { |
| | | // 未超时执行逻辑 |
| | | let dev_id = batt.FBSDeviceId; |
| | | this.diagram.powerCut = 0; |
| | | // 设备为61850 |
| | | if (regEquipType(dev_id, "equip61850")) { |
| | | this.setEquip61850(data); |
| | | } else if (regEquipType(dev_id, ["BTS", "BTS9110", "BTS9120"])) { |
| | | this.setEquipBTS(data); |
| | | } else if (regEquipType(dev_id, ["BTS9605", "BTS9611"])) { |
| | | this.setEquip9605(data); |
| | | } else { |
| | | this.disconnect(); |
| | | }, |
| | | setChartMarkLine(chartData, name, alm_name, list) { |
| | | let batt = this.batt; |
| | | // 遍历list |
| | | for (let i = 0; i < list.length; i++) { |
| | | let item = list[i]; |
| | | if (item.alm_name == alm_name) { |
| | | let high = 0; |
| | | let low = 0; |
| | | switch (name) { |
| | | case "Voltage": // 电压告警 |
| | | //单体电压 |
| | | let std_mon_vol = batt.MonVolStd; |
| | | high = parseFloat(std_mon_vol * item.alm_high_coe).toHold(3); |
| | | low = parseFloat(std_mon_vol * item.alm_low_coe).toHold(3); |
| | | break; |
| | | case "Temperature": |
| | | //单体温度 |
| | | let std_mon_tmp = 25; |
| | | high = parseFloat(std_mon_tmp * item.alm_high_coe).toHold(1); |
| | | low = parseFloat(std_mon_tmp * item.alm_low_coe).toHold(1); |
| | | break; |
| | | case "Resistance": |
| | | let std_mon_res = |
| | | (1 * (batt.MonVolStd / 2)) / (batt.MonCapStd / 100); |
| | | high = parseFloat(std_mon_res * item.alm_high_coe).toHold(3); |
| | | low = parseFloat(std_mon_res * item.alm_low_coe).toHold(3); |
| | | break; |
| | | case "Conductance": |
| | | let std_mon_ser = batt.MonSerStd; |
| | | high = parseFloat(std_mon_ser * item.alm_high_coe).toHold(0); |
| | | low = parseFloat(std_mon_ser * item.alm_low_coe).toHold(0); |
| | | break; |
| | | } |
| | | // 低告警 |
| | | chartData.series[0].markLine.data[0].yAxis = low; |
| | | // 高告警 |
| | | chartData.series[0].markLine.data[1].yAxis = high; |
| | | break; |
| | | } |
| | | } |
| | | }, |
| | | /* 实时组端信息 */ |
| | | realTimeGroupss() { |
| | | var batt = this.batt; |
| | | realTimeGroup(batt.BattGroupId).then((res) => { |
| | | let rsa = JSON.parse(res.data.result); |
| | | if (rsa.code == 1) { |
| | | this.inputs = rsa.data[0]; |
| | | } |
| | | }); |
| | | }, |
| | | /* 查询电路图开关状态和信息 */ |
| | | realTimePowerOffs() { |
| | | let batt = this.batt; |
| | | // 设备为61850显示右侧的面板 |
| | | if (regEquipType(batt.FBSDeviceId, "equip61850")) { |
| | | this.stateListShow = true; |
| | | } else { |
| | | // 设置版本号 |
| | | this.dev_version = ""; |
| | | // 设备处于未连接 |
| | | this.disconnect(); |
| | | this.stateListShow = false; |
| | | } |
| | | }); |
| | | }, |
| | | 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) { |
| | | let groupIndex = this.batt.GroupIndexInFBSDevice; |
| | | // 设备的温度 |
| | | this.diagram.temp = data.dev_temp; |
| | | this.diagram.contactRes = groupIndex != 0 ? data.dev_conresist1 : data.dev_conresist; |
| | | this.diagram.dropVol = groupIndex != 0 ? data.dev_condvoldp : data.dev_condvoldp1; |
| | | }, |
| | | // BTS设备信息 |
| | | setEquipBTS(data) { |
| | | let batt = this.batt; |
| | | // 电路图类型 |
| | | let workstatus = parseInt(data.dev_workstate); //[0:'在线监测',1:'放电测试',2:'充电测试',3:'内阻测试',4:'未知']; |
| | | this.diagram.desc = ""; |
| | | let battstate = this.inputs.batt_state; |
| | | let alarmstatus = data.dev_alarmstate; |
| | | // 查询后台数据 |
| | | 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.dev_version = data.dev_version; |
| | | // 基础信息 |
| | | this.setEquipBase(data); |
| | | |
| | | // 设置停电放电状态 |
| | | if (data.dev_onlinevollow) { |
| | | this.inputs.batt_state = 5; |
| | | this.diagram.type = 5; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | this.diagram.powerCut = 1; |
| | | // 当前设备是BTS设备 |
| | | if (workstatus === 0 && data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | return; |
| | | } |
| | | // 判断workstatus |
| | | switch (workstatus) { |
| | | case 0: |
| | | this.diagram.type = 0; |
| | | // 判断是否超时 |
| | | 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 { |
| | | // 未超时执行逻辑 |
| | | let dev_id = batt.FBSDeviceId; |
| | | this.diagram.powerCut = 0; |
| | | // 设备为61850 |
| | | if (regEquipType(dev_id, "equip61850")) { |
| | | this.setEquip61850(data); |
| | | } else if (regEquipType(dev_id, ["BTS", "BTS9110", "BTS9120"])) { |
| | | this.setEquipBTS(data); |
| | | } else if (regEquipType(dev_id, ["BTS9605", "BTS9611"])) { |
| | | this.setEquip9605(data); |
| | | } else { |
| | | this.disconnect(); |
| | | } |
| | | } |
| | | } else { |
| | | // 设置版本号 |
| | | this.dev_version = ""; |
| | | // 设备处于未连接 |
| | | 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) { |
| | | let groupIndex = this.batt.GroupIndexInFBSDevice; |
| | | // 设备的温度 |
| | | this.diagram.temp = data.dev_temp; |
| | | this.diagram.contactRes = groupIndex != 0 ? data.dev_conresist1 : data.dev_conresist; |
| | | this.diagram.dropVol = groupIndex != 0 ? data.dev_condvoldp : data.dev_condvoldp1; |
| | | }, |
| | | // BTS设备信息 |
| | | setEquipBTS(data) { |
| | | let batt = this.batt; |
| | | // 电路图类型 |
| | | let workstatus = parseInt(data.dev_workstate); //[0:'在线监测',1:'放电测试',2:'充电测试',3:'内阻测试',4:'未知']; |
| | | this.diagram.desc = ""; |
| | | let battstate = this.inputs.batt_state; |
| | | let alarmstatus = data.dev_alarmstate; |
| | | |
| | | // 设置停电放电状态 |
| | | if (data.dev_onlinevollow) { |
| | | this.inputs.batt_state = 5; |
| | | this.diagram.type = 5; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | this.diagram.powerCut = 1; |
| | | // 当前设备是BTS设备 |
| | | if (data.dev_res_test_state !== 0) { |
| | | if (workstatus === 0 && data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | break; |
| | | case 1: |
| | | if ( |
| | | data.dev_testgroupnum > 0 && |
| | | data.dev_testgroupnum === batt.GroupIndexInFBSDevice + 1 |
| | | ) { |
| | | this.diagram.type = 1; |
| | | this.diagram.desc = "(开关断开)"; |
| | | } else { |
| | | if (battstate === 3) { |
| | | return; |
| | | } |
| | | // 判断workstatus |
| | | switch (workstatus) { |
| | | case 0: |
| | | this.diagram.type = 0; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | // 当前设备是BTS设备 |
| | | if (data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | break; |
| | | case 1: |
| | | if ( |
| | | data.dev_testgroupnum > 0 && |
| | | data.dev_testgroupnum === batt.GroupIndexInFBSDevice + 1 |
| | | ) { |
| | | this.diagram.type = 1; |
| | | this.diagram.desc = "(开关断开)"; |
| | | } else { |
| | | if (battstate === 3) { |
| | | this.diagram.type = 1; |
| | | this.diagram.desc = "(开关断开)"; |
| | | } else { |
| | | this.diagram.type = 0; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | } |
| | | } |
| | | |
| | | // 当前设备是BTS设备 |
| | | if (data.dev_testtype == 209) { |
| | | this.diagram.desc += "(KD测试)"; |
| | | this.diagram.type = 3; |
| | | } |
| | | break; |
| | | case 2: |
| | | //辨别当前电池组是否在充电 |
| | | if ( |
| | | this.diagram.type == 2 || |
| | | (data.dev_testgroupnum > 0 && |
| | | data.dev_testgroupnum === batt.GroupIndexInFBSDevice + 1) |
| | | ) { |
| | | //充电 |
| | | if ( |
| | | alarmstatus === 1 || |
| | | alarmstatus === 2 || |
| | | alarmstatus === 3 || |
| | | alarmstatus === 4 || |
| | | alarmstatus === 6 |
| | | ) { |
| | | //限流充电 -->常闭接触器断开 |
| | | this.diagram.type = 2; |
| | | this.diagram.desc = "(开关断开)"; |
| | | } else { |
| | | //直流充电 -->常闭接触器闭合 |
| | | this.diagram.type = 2; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | } |
| | | } else { |
| | | this.diagram.type = 0; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | } |
| | | } |
| | | |
| | | // 当前设备是BTS设备 |
| | | if (data.dev_testtype == 209) { |
| | | this.diagram.desc += "(KD测试)"; |
| | | this.diagram.type = 3; |
| | | } |
| | | break; |
| | | case 2: |
| | | //辨别当前电池组是否在充电 |
| | | if ( |
| | | this.diagram.type == 2 || |
| | | (data.dev_testgroupnum > 0 && |
| | | data.dev_testgroupnum === batt.GroupIndexInFBSDevice + 1) |
| | | ) { |
| | | //充电 |
| | | if ( |
| | | alarmstatus === 1 || |
| | | alarmstatus === 2 || |
| | | alarmstatus === 3 || |
| | | alarmstatus === 4 || |
| | | alarmstatus === 6 |
| | | ) { |
| | | //限流充电 -->常闭接触器断开 |
| | | this.diagram.type = 2; |
| | | this.diagram.desc = "(开关断开)"; |
| | | } else { |
| | | //直流充电 -->常闭接触器闭合 |
| | | this.diagram.type = 2; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | } |
| | | } else { |
| | | this.diagram.type = 0; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | } |
| | | break; |
| | | default: |
| | | this.diagram.type = -1; |
| | | break; |
| | | } |
| | | }, |
| | | // 61850设备信息 |
| | | setEquip61850(data) { |
| | | // 电路图类型 |
| | | let workstatus = parseInt(data.dev_workstate); //[0:'在线监测',1:'放电测试',2:'充电测试',3:'内阻测试',4:'未知']; |
| | | this.diagram.desc = ""; |
| | | |
| | | // 设置停电放电状态 |
| | | if (data.dev_onlinevollow) { |
| | | this.inputs.batt_state = 5; |
| | | this.diagram.type = 5; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | this.diagram.powerCut = 1; |
| | | // 当前设备是BTS设备 |
| | | if (workstatus === 0 && data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | break; |
| | | default: |
| | | this.diagram.type = -1; |
| | | break; |
| | | } |
| | | return; |
| | | } |
| | | }, |
| | | // 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; |
| | | // 设置停电放电状态 |
| | | if (data.dev_onlinevollow) { |
| | | this.inputs.batt_state = 5; |
| | | this.diagram.type = 5; |
| | | 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", "正常", ""); |
| | | } |
| | | }, |
| | | // 9605设备 |
| | | setEquip9605(data) { |
| | | let batt = this.batt; |
| | | // 电路图类型 |
| | | let workstatus = parseInt(data.dev_workstate); //[0:'在线监测',1:'放电测试',2:'充电测试',3:'内阻测试',4:'未知']; |
| | | this.diagram.desc = ""; |
| | | let battstate = this.inputs.batt_state; |
| | | let alarmstatus = data.dev_alarmstate; |
| | | |
| | | // 设置停电放电状态 |
| | | if (data.dev_onlinevollow) { |
| | | this.inputs.batt_state = 5; |
| | | this.diagram.type = 5; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | this.diagram.powerCut = 1; |
| | | // 当前设备是BTS设备 |
| | | if (workstatus === 0 && data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | return; |
| | | } |
| | | // 判断workstatus |
| | | switch (workstatus) { |
| | | case 0: |
| | | this.diagram.type = 0; |
| | | //this.diagram.desc = '(开关闭合)'; |
| | | this.diagram.powerCut = 1; |
| | | // 当前设备是BTS设备 |
| | | if (data.dev_res_test_state !== 0) { |
| | | this.diagram.type = 6; |
| | | if (workstatus === 0 && data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | break; |
| | | case 1: |
| | | this.diagram.type = 1; |
| | | //this.diagram.desc = '(开关断开)'; |
| | | break; |
| | | case 2: |
| | | this.diagram.type = 2; |
| | | //this.diagram.desc = '(开关断开)'; |
| | | break; |
| | | default: |
| | | this.diagram.type = -1; |
| | | break; |
| | | } |
| | | }, |
| | | // 设置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 : ""; |
| | | return; |
| | | } |
| | | } |
| | | }, |
| | | /* echars图表 */ |
| | | realTimeSearch() { |
| | | var batt = this.batt; |
| | | realTimeSearch({ |
| | | BattGroupId: batt.BattGroupId, |
| | | }).then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | let data = []; |
| | | if (rs.code == 1) { |
| | | data = rs.data.map((item) => { |
| | | return { |
| | | num1: "#" + item.mon_num, |
| | | vol1: item.mon_vol, |
| | | res1: item.mon_res, |
| | | temp1: item.mon_tmp, |
| | | conduct1: item.mon_res ? |
| | | ((1 / item.mon_res) * 1000).toFixed(0) : 0, |
| | | curr1: item.mon_JH_curr, |
| | | leakVol1: item.mon_LY_vol, |
| | | }; |
| | | }); |
| | | |
| | | 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; |
| | | } |
| | | // 更新表格 |
| | | if (this.acTabs == "tblData") { |
| | | this.table.datas = data; |
| | | |
| | | // 设备工作状态 |
| | | 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 { |
| | | tblData = data; |
| | | this.setStateList( |
| | | "stopReason", |
| | | stopReasons[data.dev_last_captest_stop_type] |
| | | ); |
| | | } |
| | | |
| | | // 电压值 |
| | | let volTempVol = []; |
| | | if (rs.code == 1) { |
| | | volTempVol = rs.data.map((item) => { |
| | | 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 failReasons = const_61850.failreasons; |
| | | this.setStateList("failReason", failReasons[data.dev_alarmstate]); |
| | | |
| | | // 内阻 |
| | | let volTempres = []; |
| | | if (rs.code == 1) { |
| | | volTempres = rs.data.map((item) => { |
| | | return ["#" + item.mon_num, item.mon_res]; |
| | | }); |
| | | // 告警信息 |
| | | 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", "正常", ""); |
| | | } |
| | | 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 = []; |
| | | if (rs.code == 1) { |
| | | volTempte = rs.data.map((item) => { |
| | | return ["#" + item.mon_num, item.mon_tmp]; |
| | | }); |
| | | if (alarms[2] == "true") { |
| | | this.setStateList("devTemp", "异常", "table-row-error"); |
| | | } else { |
| | | this.setStateList("devTemp", "正常", ""); |
| | | } |
| | | 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, |
| | | item.mon_res ? ((1 / item.mon_res) * 1000).toFixed(0) : 0, |
| | | ]; |
| | | }); |
| | | // 干接点 |
| | | if (alarms[4] == "true") { |
| | | this.setStateList("contact", "异常", "table-row-error"); |
| | | } else { |
| | | this.setStateList("contact", "正常", ""); |
| | | } |
| | | 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]; |
| | | }); |
| | | }, |
| | | // 9605设备 |
| | | setEquip9605(data) { |
| | | let batt = this.batt; |
| | | // 电路图类型 |
| | | let workstatus = parseInt(data.dev_workstate); //[0:'在线监测',1:'放电测试',2:'充电测试',3:'内阻测试',4:'未知']; |
| | | this.diagram.desc = ""; |
| | | let battstate = this.inputs.batt_state; |
| | | let alarmstatus = data.dev_alarmstate; |
| | | |
| | | // 设置停电放电状态 |
| | | if (data.dev_onlinevollow) { |
| | | this.inputs.batt_state = 5; |
| | | this.diagram.type = 5; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | this.diagram.powerCut = 1; |
| | | // 当前设备是BTS设备 |
| | | if (workstatus === 0 && data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | return; |
| | | } |
| | | 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; |
| | | // 漏液电压 |
| | | let leakVolTemp = []; |
| | | if (rs.code == 1) { |
| | | leakVolTemp = rs.data.map((item) => { |
| | | return ["#" + item.mon_num, item.mon_LY_vol]; |
| | | }); |
| | | // 判断workstatus |
| | | switch (workstatus) { |
| | | case 0: |
| | | this.diagram.type = 0; |
| | | //this.diagram.desc = '(开关闭合)'; |
| | | // 当前设备是BTS设备 |
| | | if (data.dev_res_test_state !== 0) { |
| | | this.diagram.type = 6; |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | break; |
| | | case 1: |
| | | this.diagram.type = 1; |
| | | //this.diagram.desc = '(开关断开)'; |
| | | break; |
| | | case 2: |
| | | this.diagram.type = 2; |
| | | //this.diagram.desc = '(开关断开)'; |
| | | break; |
| | | default: |
| | | this.diagram.type = -1; |
| | | break; |
| | | } |
| | | let leakVolNum = getBarNum(leakVolTemp); |
| | | leakVol.title.text = |
| | | "最大值=" + |
| | | leakVolNum.max.toFixed(1) + |
| | | "V;最小值=" + |
| | | leakVolNum.min.toFixed(1) + |
| | | "V;平均值=" + |
| | | leakVolNum.avg.toFixed(1) + |
| | | "V"; |
| | | leakVol.series[0].data = leakVolTemp; |
| | | // 更新电压图表 |
| | | 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, |
| | | }, |
| | | // 设置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; |
| | | realTimeSearch({ |
| | | BattGroupId: batt.BattGroupId, |
| | | }).then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | let data = []; |
| | | if (rs.code == 1) { |
| | | data = rs.data.map((item) => { |
| | | return { |
| | | num1: "#" + item.mon_num, |
| | | vol1: item.mon_vol, |
| | | res1: item.mon_res, |
| | | temp1: item.mon_tmp, |
| | | conduct1: item.mon_res ? |
| | | ((1 / item.mon_res) * 1000).toFixed(0) : 0, |
| | | curr1: item.mon_JH_curr, |
| | | leakVol1: item.mon_LY_vol, |
| | | }; |
| | | }); |
| | | } |
| | | // 更新表格 |
| | | if (this.acTabs == "tblData") { |
| | | this.table.datas = data; |
| | | } else { |
| | | tblData = data; |
| | | } |
| | | |
| | | // 电压值 |
| | | let volTempVol = []; |
| | | if (rs.code == 1) { |
| | | volTempVol = rs.data.map((item) => { |
| | | 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 = []; |
| | | if (rs.code == 1) { |
| | | volTempres = rs.data.map((item) => { |
| | | return ["#" + item.mon_num, item.mon_res]; |
| | | }); |
| | | } |
| | | 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 = []; |
| | | if (rs.code == 1) { |
| | | volTempte = rs.data.map((item) => { |
| | | 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, |
| | | item.mon_res ? ((1 / item.mon_res) * 1000).toFixed(0) : 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; |
| | | // 漏液电压 |
| | | let leakVolTemp = []; |
| | | if (rs.code == 1) { |
| | | leakVolTemp = rs.data.map((item) => { |
| | | return ["#" + item.mon_num, item.mon_LY_vol]; |
| | | }); |
| | | } |
| | | let leakVolNum = getBarNum(leakVolTemp); |
| | | leakVol.title.text = |
| | | "最大值=" + |
| | | leakVolNum.max.toFixed(1) + |
| | | "V;最小值=" + |
| | | leakVolNum.min.toFixed(1) + |
| | | "V;平均值=" + |
| | | leakVolNum.avg.toFixed(1) + |
| | | "V"; |
| | | leakVol.series[0].data = leakVolTemp; |
| | | // 更新电压图表 |
| | | 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, |
| | | }, |
| | | }, |
| | | }, |
| | | }, |
| | | "*" |
| | | ); |
| | | }, |
| | | // 停止测试 |
| | | stopTest() { |
| | | this.$layer.confirm( |
| | | "停止测试", { |
| | | icon: 3, |
| | | }, |
| | | (index) => { |
| | | // 关闭询问层 |
| | | this.$layer.close(index); |
| | | // 根据设备id进行停止 |
| | | if (regEquipType(this.batt.FBSDeviceId, "equip61850")) { |
| | | // 停止设备 |
| | | this.stop61850Test(); |
| | | } else if ( |
| | | regEquipType(this.batt.FBSDeviceId, [ |
| | | "BTS", |
| | | "BTS9110", |
| | | "BTS9120", |
| | | "BTS9605", |
| | | ]) |
| | | ) { |
| | | // 停止设备 |
| | | this.stopBtsTest(); |
| | | } else { |
| | | // 提示信息 |
| | | this.$layer.msg("未知设备类型,暂无法停止测试!"); |
| | | "*" |
| | | ); |
| | | }, |
| | | // 停止测试 |
| | | stopTest() { |
| | | this.$layer.confirm( |
| | | "停止测试", { |
| | | icon: 3, |
| | | }, |
| | | (index) => { |
| | | // 关闭询问层 |
| | | this.$layer.close(index); |
| | | // 根据设备id进行停止 |
| | | if (regEquipType(this.batt.FBSDeviceId, "equip61850")) { |
| | | // 停止设备 |
| | | this.stop61850Test(); |
| | | } else if ( |
| | | regEquipType(this.batt.FBSDeviceId, [ |
| | | "BTS", |
| | | "BTS9110", |
| | | "BTS9120", |
| | | "BTS9605", |
| | | ]) |
| | | ) { |
| | | // 停止设备 |
| | | this.stopBtsTest(); |
| | | } else { |
| | | // 提示信息 |
| | | this.$layer.msg("未知设备类型,暂无法停止测试!"); |
| | | } |
| | | } |
| | | } |
| | | ); |
| | | }, |
| | | // 停止bts测试 |
| | | stopBtsTest() { |
| | | // 开启等待框 |
| | | let loading = this.$layer.loading(1); |
| | | // 请求后台 |
| | | this.$apis.dischargeTest.bts |
| | | .stop({ |
| | | num: const_9100.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("停止测试失败,停止测试请求异常!"); |
| | | }); |
| | | }, |
| | | // 停止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("停止测试失败,停止测试请求异常!"); |
| | | }); |
| | | }, |
| | | // 停止养护除硫 |
| | | stopCuring() { |
| | | let batt = this.batt; |
| | | let groupNum = batt.GroupIndexInFBSDevice + 1; |
| | | this.$layer.confirm("确定停止养护/除硫", { |
| | | icon: 3 |
| | | }, (index) => { |
| | | // 关闭确认框 |
| | | this.$layer.close(index); |
| | | ); |
| | | }, |
| | | // 停止bts测试 |
| | | stopBtsTest() { |
| | | // 开启等待框 |
| | | let loading = this.$layer.loading(1); |
| | | this.$apis.curing |
| | | .stop(batt.FBSDeviceId, groupNum) |
| | | // 请求后台 |
| | | this.$apis.dischargeTest.bts |
| | | .stop({ |
| | | num: const_9100.cmd.stop, |
| | | dev_id: this.batt.FBSDeviceId, |
| | | }) |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | this.$layer.msg(rs.msg); |
| | | 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("停止测试失败,停止测试请求异常!"); |
| | | }); |
| | | }); |
| | | }, |
| | | // 查询拓扑图状态的显示 |
| | | searchStatus() { |
| | | this.$apis.pageSetting.realTime |
| | | .searchStatus() |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | let data = rs.data; |
| | | this.stateList.forEach((item) => { |
| | | item.show = this.getStateById(item.id, data); |
| | | }); |
| | | } |
| | | // 设置养护除硫信息 |
| | | this.setFodHeaders(this.stateList); |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | setFodHeaders(stateList) { |
| | | let result = []; |
| | | result.push({ |
| | | prop: "num", |
| | | label: "编号", |
| | | }); |
| | | // 剩余天数 |
| | | let resDay = const_61850.getItemByName("resDay", stateList); |
| | | if (resDay && resDay.show) { |
| | | result.push({ |
| | | prop: "RestTime_", |
| | | label: "天数", |
| | | }); |
| | | } |
| | | // 工作状态 |
| | | let workModel = const_61850.getItemByName("workMode", stateList); |
| | | if (workModel && workModel.show) { |
| | | result.push({ |
| | | prop: "WorkState_", |
| | | label: "模式", |
| | | }); |
| | | } |
| | | // 组端电压 |
| | | let groupVol = const_61850.getItemByName("groupVol", stateList); |
| | | if (groupVol && groupVol.show) { |
| | | result.push({ |
| | | prop: "VGroupVol_", |
| | | label: "组压", |
| | | }); |
| | | } |
| | | // 峰值电压 |
| | | let peakVol = const_61850.getItemByName("peakVol", stateList); |
| | | if (peakVol && peakVol.show) { |
| | | result.push({ |
| | | prop: "VpeakVol_", |
| | | label: "峰压", |
| | | }); |
| | | } |
| | | this.fodHeaders = result; |
| | | }, |
| | | // 查询控制按钮的内容 |
| | | searchControl() { |
| | | this.$apis.pageSetting.realTime |
| | | .searchControl() |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | let control = false; // 控制整体的显示 |
| | | if (rs.code == 1) { |
| | | let data = rs.data; |
| | | Object.keys(this.control.data).forEach((key) => { |
| | | let item = this.control.data[key]; |
| | | item.show = this.getStateById(item.id, data); // 根据id设置按钮的状态 |
| | | // 存在控制 |
| | | if (item.show) { |
| | | control = item.show; |
| | | } |
| | | }); |
| | | } |
| | | this.control.show = control; // 设置整体显示的状态 |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | getStateById(id, list) { |
| | | let result = false; |
| | | for (let i = 0; i < list.length; i++) { |
| | | let item = list[i]; |
| | | if (id == item.id) { |
| | | result = item.status ? true : false; |
| | | break; |
| | | } |
| | | } |
| | | return result; |
| | | }, |
| | | clearWarn() { |
| | | // 清除告警 |
| | | this.$layer.confirm( |
| | | "清除设备告警", { |
| | | icon: 3, |
| | | title: "系统提示", |
| | | }, |
| | | (index) => { |
| | | // 关闭弹出框 |
| | | }, |
| | | // 停止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("停止测试失败,停止测试请求异常!"); |
| | | }); |
| | | }, |
| | | // 停止养护除硫 |
| | | stopCuring() { |
| | | let batt = this.batt; |
| | | let groupNum = batt.GroupIndexInFBSDevice + 1; |
| | | this.$layer.confirm("确定停止养护/除硫", { |
| | | icon: 3 |
| | | }, (index) => { |
| | | // 关闭确认框 |
| | | this.$layer.close(index); |
| | | // 开启加载等待 |
| | | let load = this.$layer.loading(1); |
| | | // 执行清除告警 |
| | | let batt = this.batt; |
| | | this.$apis.system |
| | | .clearWarn(batt.FBSDeviceId) |
| | | let loading = this.$layer.loading(1); |
| | | this.$apis.curing |
| | | .stop(batt.FBSDeviceId, groupNum) |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.$layer.msg("清除设备告警成功!"); |
| | | } else { |
| | | this.$layer.msg("清除设备告警失败!"); |
| | | } |
| | | // 关闭等待 |
| | | this.$layer.close(load); |
| | | this.$layer.msg(rs.msg); |
| | | // 关闭等待框 |
| | | this.$layer.close(loading); |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | // 关闭等待 |
| | | this.$layer.close(load); |
| | | // 关闭等待框 |
| | | this.$layer.close(loading); |
| | | }); |
| | | }); |
| | | }, |
| | | // 查询拓扑图状态的显示 |
| | | searchStatus() { |
| | | this.$apis.pageSetting.realTime |
| | | .searchStatus() |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | let data = rs.data; |
| | | this.stateList.forEach((item) => { |
| | | item.show = this.getStateById(item.id, data); |
| | | }); |
| | | } |
| | | // 设置养护除硫信息 |
| | | this.setFodHeaders(this.stateList); |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | setFodHeaders(stateList) { |
| | | let result = []; |
| | | result.push({ |
| | | prop: "num", |
| | | label: "编号", |
| | | }); |
| | | // 剩余天数 |
| | | let resDay = const_61850.getItemByName("resDay", stateList); |
| | | if (resDay && resDay.show) { |
| | | result.push({ |
| | | prop: "RestTime_", |
| | | label: "天数", |
| | | }); |
| | | } |
| | | ); |
| | | }, |
| | | realTimeStateList() { |
| | | // 获取剩余天数,工作模式,组端电压,峰值电压 |
| | | let batt = this.batt; |
| | | // 仅有编号不做任何操作 |
| | | if (this.fodHeaders.length == 1) { |
| | | return; |
| | | } |
| | | realTimeStateList(batt.BattGroupId) |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | let data = []; |
| | | if (rs.code == 1) { |
| | | let rsData = rs.data[0]; |
| | | let workModels = ["停止", "养护", "除硫"]; |
| | | let list = ["one", "two", "three", "four", "five"]; |
| | | let fodHeaders = this.fodHeaders; |
| | | data = list.map((item, index) => { |
| | | let workModel = rsData["WorkState_" + item]; |
| | | return fodHeaders.map((fod) => { |
| | | if (fod.prop == "num") { |
| | | return index + 1; |
| | | } else if (fod.prop == "WorkState_") { |
| | | return workModels[workModel]; |
| | | } else { |
| | | return rsData[fod.prop + item]; |
| | | // 工作状态 |
| | | let workModel = const_61850.getItemByName("workMode", stateList); |
| | | if (workModel && workModel.show) { |
| | | result.push({ |
| | | prop: "WorkState_", |
| | | label: "模式", |
| | | }); |
| | | } |
| | | // 组端电压 |
| | | let groupVol = const_61850.getItemByName("groupVol", stateList); |
| | | if (groupVol && groupVol.show) { |
| | | result.push({ |
| | | prop: "VGroupVol_", |
| | | label: "组压", |
| | | }); |
| | | } |
| | | // 峰值电压 |
| | | let peakVol = const_61850.getItemByName("peakVol", stateList); |
| | | if (peakVol && peakVol.show) { |
| | | result.push({ |
| | | prop: "VpeakVol_", |
| | | label: "峰压", |
| | | }); |
| | | } |
| | | this.fodHeaders = result; |
| | | }, |
| | | // 查询控制按钮的内容 |
| | | searchControl() { |
| | | this.$apis.pageSetting.realTime |
| | | .searchControl() |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | let control = false; // 控制整体的显示 |
| | | if (rs.code == 1) { |
| | | let data = rs.data; |
| | | Object.keys(this.control.data).forEach((key) => { |
| | | let item = this.control.data[key]; |
| | | item.show = this.getStateById(item.id, data); // 根据id设置按钮的状态 |
| | | // 存在控制 |
| | | if (item.show) { |
| | | control = item.show; |
| | | } |
| | | }); |
| | | //return [index+1, rsData['RestTime_'+item], workModels[workModel], rsData['VGroupVol_'+item], rsData['VpeakVol_'+item]] |
| | | }); |
| | | this.fodData = data; |
| | | } |
| | | this.control.show = control; // 设置整体显示的状态 |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | getStateById(id, list) { |
| | | let result = false; |
| | | for (let i = 0; i < list.length; i++) { |
| | | let item = list[i]; |
| | | if (id == item.id) { |
| | | result = item.status ? true : false; |
| | | break; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | // 逆变信息 |
| | | inversionInfo() { |
| | | let batt = this.batt; |
| | | inversionInfo(batt.FBSDeviceId) |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | console.log(rs); |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | monitorPage() { |
| | | // 获取缓存的session |
| | | let name = sessionStorage.getItem("acTabs"); |
| | | let pageName = this.homeListShow ? |
| | | "realTime" : |
| | | "movingRingSysteRrealTime"; |
| | | if (name === pageName && this.acTabs === "eleLine") { |
| | | this.diagram.update = true; |
| | | } else { |
| | | this.diagram.update = false; |
| | | } |
| | | // 启动监控 |
| | | requestAnimationFrame(() => { |
| | | this.monitorPage(); |
| | | }); |
| | | }, |
| | | setRightMenuPos(x, y) { |
| | | this.rightMenu.show = true; |
| | | this.rightMenu.x = x; |
| | | this.rightMenu.y = y; |
| | | }, |
| | | chartRightCLick(params) { |
| | | this.rightMenu.show = true; |
| | | this.rightMenu.x = params.x; |
| | | this.rightMenu.y = params.y; |
| | | this.rightMenu.xIndex = params.xIndex; |
| | | }, |
| | | payAttentionMon() { |
| | | let searchParams = { |
| | | BattGroupId: this.batt.BattGroupId, |
| | | MonNum: this.rightMenu.xIndex + 1 |
| | | }; |
| | | |
| | | // 查询 |
| | | realTimeNot(searchParams).then(res => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.$layer.msg('单体#' + (searchParams.MonNum) + "已被关注"); |
| | | } else { |
| | | this.addAttentionMon(searchParams); |
| | | } |
| | | }).catch(error => { |
| | | console.log(error); |
| | | }) |
| | | }, |
| | | addAttentionMon(params) { |
| | | let loading = this.$layer.loading(1); |
| | | // 请求后台添加 |
| | | realTimeAdd(params).then(res => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.$layer.msg("成功关注单体#" + (params.MonNum)); |
| | | } else { |
| | | this.$layer.msg("添加失败"); |
| | | return result; |
| | | }, |
| | | clearWarn() { |
| | | // 清除告警 |
| | | this.$layer.confirm( |
| | | "清除设备告警", { |
| | | icon: 3, |
| | | title: "系统提示", |
| | | }, |
| | | (index) => { |
| | | // 关闭弹出框 |
| | | this.$layer.close(index); |
| | | // 开启加载等待 |
| | | let load = this.$layer.loading(1); |
| | | // 执行清除告警 |
| | | let batt = this.batt; |
| | | this.$apis.system |
| | | .clearWarn(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(load); |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | // 关闭等待 |
| | | this.$layer.close(load); |
| | | }); |
| | | } |
| | | ); |
| | | }, |
| | | realTimeStateList() { |
| | | // 获取剩余天数,工作模式,组端电压,峰值电压 |
| | | let batt = this.batt; |
| | | // 仅有编号不做任何操作 |
| | | if (this.fodHeaders.length == 1) { |
| | | return; |
| | | } |
| | | this.$layer.close(loading); |
| | | }).catch(error => { |
| | | this.$layer.close(loading); |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | closeDisChargeDialog() { |
| | | this.dischargeDialog.show = false; |
| | | } |
| | | }, |
| | | computed: { |
| | | battFullName() { |
| | | let batt = this.batt; |
| | | if (batt.StationName && batt.BattGroupName) { |
| | | return batt.StationName + "-" + batt.BattGroupName; |
| | | } |
| | | return "电池组全称"; |
| | | }, |
| | | backInputs() { |
| | | let batt = this.batt; |
| | | const obj = { |
| | | 0: "未知", |
| | | 1: "浮充", |
| | | 2: "充电", |
| | | 3: "放电", |
| | | 4: "均充", |
| | | }, |
| | | 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: "------", |
| | | realTimeStateList(batt.BattGroupId) |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | let data = []; |
| | | if (rs.code == 1) { |
| | | let rsData = rs.data[0]; |
| | | let workModels = ["停止", "养护", "除硫"]; |
| | | let list = ["one", "two", "three", "four", "five"]; |
| | | let fodHeaders = this.fodHeaders; |
| | | data = list.map((item, index) => { |
| | | let workModel = rsData["WorkState_" + item]; |
| | | return fodHeaders.map((fod) => { |
| | | if (fod.prop == "num") { |
| | | return index + 1; |
| | | } else if (fod.prop == "WorkState_") { |
| | | return workModels[workModel]; |
| | | } else { |
| | | return rsData[fod.prop + item]; |
| | | } |
| | | }); |
| | | //return [index+1, rsData['RestTime_'+item], workModels[workModel], rsData['VGroupVol_'+item], rsData['VpeakVol_'+item]] |
| | | }); |
| | | this.fodData = data; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | // 逆变信息 |
| | | inversionInfo() { |
| | | let batt = this.batt; |
| | | inversionInfo(batt.FBSDeviceId) |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | console.log(rs); |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | monitorPage() { |
| | | // 获取缓存的session |
| | | let name = sessionStorage.getItem("acTabs"); |
| | | let pageName = this.homeListShow ? |
| | | "realTime" : |
| | | "movingRingSysteRrealTime"; |
| | | if (name === pageName && this.acTabs === "eleLine") { |
| | | this.diagram.update = true; |
| | | } else { |
| | | this.diagram.update = false; |
| | | } |
| | | // 启动监控 |
| | | requestAnimationFrame(() => { |
| | | this.monitorPage(); |
| | | }); |
| | | }, |
| | | setRightMenuPos(x, y) { |
| | | this.rightMenu.show = true; |
| | | this.rightMenu.x = x; |
| | | this.rightMenu.y = y; |
| | | }, |
| | | chartRightCLick(params) { |
| | | this.rightMenu.show = true; |
| | | this.rightMenu.x = params.x; |
| | | this.rightMenu.y = params.y; |
| | | this.rightMenu.xIndex = params.xIndex; |
| | | }, |
| | | payAttentionMon() { |
| | | let searchParams = { |
| | | BattGroupId: this.batt.BattGroupId, |
| | | MonNum: this.rightMenu.xIndex + 1 |
| | | }; |
| | | if (this.diagram.type == -1) { |
| | | return list; |
| | | |
| | | // 查询 |
| | | realTimeNot(searchParams).then(res => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.$layer.msg('单体#' + (searchParams.MonNum) + "已被关注"); |
| | | } else { |
| | | this.addAttentionMon(searchParams); |
| | | } |
| | | }).catch(error => { |
| | | console.log(error); |
| | | }) |
| | | }, |
| | | addAttentionMon(params) { |
| | | let loading = this.$layer.loading(1); |
| | | // 请求后台添加 |
| | | realTimeAdd(params).then(res => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.$layer.msg("成功关注单体#" + (params.MonNum)); |
| | | } else { |
| | | this.$layer.msg("添加失败"); |
| | | } |
| | | this.$layer.close(loading); |
| | | }).catch(error => { |
| | | this.$layer.close(loading); |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | closeDisChargeDialog() { |
| | | this.dischargeDialog.show = false; |
| | | } |
| | | let batt_state_text = this.diagram.powerCut ? |
| | | "停电放电" : |
| | | obj[this.inputs.batt_state]; |
| | | list.batt_state = batt_state_text + this.diagram.desc; |
| | | if (regEquipType(batt.FBSDeviceId, "BTS9605")) { |
| | | list.group_online_vol = `组端:${this.inputs.group_vol.toFixed(2)}V`; |
| | | } else { |
| | | list.group_online_vol = `在线:${this.inputs.online_vol.toFixed( |
| | | }, |
| | | computed: { |
| | | battFullName() { |
| | | let batt = this.batt; |
| | | if (batt.StationName && batt.BattGroupName) { |
| | | return batt.StationName + "-" + batt.BattGroupName; |
| | | } |
| | | return "电池组全称"; |
| | | }, |
| | | backInputs() { |
| | | let batt = this.batt; |
| | | const obj = { |
| | | 0: "未知", |
| | | 1: "浮充", |
| | | 2: "充电", |
| | | 3: "放电", |
| | | 4: "均充", |
| | | }, |
| | | 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; |
| | | } |
| | | let batt_state_text = this.diagram.powerCut ? |
| | | "停电放电" : |
| | | obj[this.inputs.batt_state]; |
| | | list.batt_state = batt_state_text + this.diagram.desc; |
| | | if (regEquipType(batt.FBSDeviceId, "BTS9605")) { |
| | | list.group_online_vol = `组端:${this.inputs.group_vol.toFixed(2)}V`; |
| | | } else { |
| | | list.group_online_vol = `在线:${this.inputs.online_vol.toFixed( |
| | | 2 |
| | | )}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"; |
| | | if (this.inputs.batt_state === 2) { |
| | | list.batt_syrl_cap = "---"; |
| | | } else { |
| | | list.batt_syrl_cap = this.inputs.batt_rest_cap.toFixed(1) + "AH"; |
| | | } |
| | | if (this.inputs.batt_state === 3) { |
| | | list.sysc = sethoubeiTime( |
| | | parseFloat(this.inputs.batt_rest_cap) / |
| | | parseFloat(this.inputs.group_curr) |
| | | ); |
| | | } else { |
| | | 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 "放电参数设置"; |
| | | } else if (regEquipType(batt.FBSDeviceId, ["BTS", "BTS9110", "BTS9120", "BTS9605"])) { |
| | | return "BTS设备放电参数设置"; |
| | | } else if (regEquipType(batt.FBSDeviceId, ["BTS9611", "BTS9605"])) { |
| | | return "内阻测试"; |
| | | } else { |
| | | return "未知设备(待开发)"; |
| | | |
| | | 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"; |
| | | if (this.inputs.batt_state === 2) { |
| | | list.batt_syrl_cap = "---"; |
| | | } else { |
| | | list.batt_syrl_cap = this.inputs.batt_rest_cap.toFixed(1) + "AH"; |
| | | } |
| | | if (this.inputs.batt_state === 3) { |
| | | list.sysc = sethoubeiTime( |
| | | parseFloat(this.inputs.batt_rest_cap) / |
| | | parseFloat(this.inputs.group_curr) |
| | | ); |
| | | } else { |
| | | 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 "放电参数设置"; |
| | | } else if (regEquipType(batt.FBSDeviceId, ["BTS", "BTS9110", "BTS9120", "BTS9605"])) { |
| | | return "BTS设备放电参数设置"; |
| | | } else if (regEquipType(batt.FBSDeviceId, ["BTS9611", "BTS9605"])) { |
| | | return "内阻测试"; |
| | | } else { |
| | | return "未知设备(待开发)"; |
| | | } |
| | | }, |
| | | stateListState() { |
| | | return this.stateListShow && this.showStateList.length; |
| | | }, |
| | | histroyDataTitle() { |
| | | return this.batt.StationName + "-历史实时数据"; |
| | | }, |
| | | fodShow() { |
| | | return this.fodHeaders.length === 1 || this.fodData.length === 0 ? |
| | | false : |
| | | true; |
| | | }, |
| | | isNiBian() { |
| | | let batt = this.batt; |
| | | return regEquipType(batt.FBSDeviceId, 'BTS9120'); |
| | | }, |
| | | isJhgd() { |
| | | let batt = this.batt; |
| | | return regEquipType(batt.FBSDeviceId, 'BTS9110'); |
| | | } |
| | | }, |
| | | stateListState() { |
| | | return this.stateListShow && this.showStateList.length; |
| | | mounted() { |
| | | let BattGroupId = this.$route.params.BattGroupId; |
| | | if (BattGroupId) { |
| | | this.getBattGroupInfo(BattGroupId); |
| | | } |
| | | |
| | | // 查询拓扑图状态的显示 |
| | | this.searchStatus(); |
| | | // 查询控制按钮的配置 |
| | | this.searchControl(); |
| | | // 初始化图表 |
| | | this.initChart(); |
| | | |
| | | this.$nextTick(() => { |
| | | this.$G.chartManage.resize(this.acTabs); |
| | | }); |
| | | |
| | | // 屏幕缩放时触发 |
| | | window.addEventListener("resize", this.resize); |
| | | |
| | | // 监控是否已经切换到当前页面 |
| | | this.monitorPage(); |
| | | // 监听点击事件 |
| | | // this.$G.chartManage.get("vol").getZr().on('contextmenu', params=>{ |
| | | // let pointInPixel= [params.offsetX, params.offsetY]; |
| | | // console.log(this.$G.chartManage.get("vol").containPixel('grid',pointInPixel)); |
| | | // this.setRightMenuPos(params.event.clientX, params.event.clientY); |
| | | // }); |
| | | }, |
| | | histroyDataTitle() { |
| | | return this.batt.StationName + "-历史实时数据"; |
| | | destroyed() { |
| | | window.removeEventListener('resize', this.resize); |
| | | this.timer.stop(); |
| | | }, |
| | | fodShow() { |
| | | return this.fodHeaders.length === 1 || this.fodData.length === 0 ? |
| | | false : |
| | | true; |
| | | }, |
| | | isNiBian() { |
| | | let batt = this.batt; |
| | | return regEquipType(batt.FBSDeviceId, 'BTS9120'); |
| | | } |
| | | }, |
| | | mounted() { |
| | | let BattGroupId = this.$route.params.BattGroupId; |
| | | if (BattGroupId) { |
| | | this.getBattGroupInfo(BattGroupId); |
| | | } |
| | | |
| | | // 查询拓扑图状态的显示 |
| | | this.searchStatus(); |
| | | // 查询控制按钮的配置 |
| | | this.searchControl(); |
| | | // 初始化图表 |
| | | this.initChart(); |
| | | |
| | | this.$nextTick(() => { |
| | | this.$G.chartManage.resize(this.acTabs); |
| | | }); |
| | | |
| | | // 屏幕缩放时触发 |
| | | window.addEventListener("resize", this.resize); |
| | | |
| | | // 监控是否已经切换到当前页面 |
| | | this.monitorPage(); |
| | | // 监听点击事件 |
| | | // this.$G.chartManage.get("vol").getZr().on('contextmenu', params=>{ |
| | | // let pointInPixel= [params.offsetX, params.offsetY]; |
| | | // console.log(this.$G.chartManage.get("vol").containPixel('grid',pointInPixel)); |
| | | // this.setRightMenuPos(params.event.clientX, params.event.clientY); |
| | | // }); |
| | | }, |
| | | destroyed() { |
| | | window.removeEventListener('resize', this.resize); |
| | | this.timer.stop(); |
| | | }, |
| | | }; |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .page-real-time { |
| | | color: #ffffff; |
| | | } |
| | | .page-real-time { |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .table-cell.text-right { |
| | | font-size: 14px; |
| | | } |
| | | .table-cell.text-right { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .table-cell.text-right .iconfont { |
| | | margin-right: 4px; |
| | | } |
| | | .table-cell.text-right .iconfont { |
| | | margin-right: 4px; |
| | | } |
| | | |
| | | .table-row.table-row-error { |
| | | color: #ff0000; |
| | | } |
| | | .table-row.table-row-error { |
| | | color: #ff0000; |
| | | } |
| | | |
| | | .table-row.table-row-warn { |
| | | color: #e6a23c; |
| | | } |
| | | .table-row.table-row-warn { |
| | | color: #e6a23c; |
| | | } |
| | | |
| | | .table-row .table-cell { |
| | | padding-top: 12px; |
| | | } |
| | | .table-row .table-cell { |
| | | padding-top: 12px; |
| | | } |
| | | |
| | | .page-content { |
| | | position: relative; |
| | | padding-top: 8px; |
| | | padding-bottom: 2px; |
| | | box-sizing: border-box; |
| | | height: 100%; |
| | | } |
| | | .page-content { |
| | | position: relative; |
| | | padding-top: 8px; |
| | | padding-bottom: 2px; |
| | | box-sizing: border-box; |
| | | height: 100%; |
| | | } |
| | | |
| | | .box-tools { |
| | | line-height: 32px; |
| | | } |
| | | .box-tools { |
| | | line-height: 32px; |
| | | } |
| | | |
| | | .box-tools .iconfont, |
| | | .box-tools .el-iconfont { |
| | | font-size: 24px; |
| | | } |
| | | .box-tools .iconfont, |
| | | .box-tools .el-iconfont { |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .box-tools .iconfont:hover, |
| | | .box-tools .el-iconfont:hover { |
| | | cursor: pointer; |
| | | color: #cfcfcf; |
| | | } |
| | | .box-tools .iconfont:hover, |
| | | .box-tools .el-iconfont:hover { |
| | | cursor: pointer; |
| | | color: #cfcfcf; |
| | | } |
| | | |
| | | .box-tools .iconfont:active, |
| | | .box-tools .el-iconfont:active { |
| | | color: #ff0000; |
| | | } |
| | | .box-tools .iconfont:active, |
| | | .box-tools .el-iconfont:active { |
| | | color: #ff0000; |
| | | } |
| | | |
| | | .page-content-tools { |
| | | position: absolute; |
| | | top: 14px; |
| | | right: 8px; |
| | | z-index: 99; |
| | | } |
| | | .page-content-tools { |
| | | position: absolute; |
| | | top: 14px; |
| | | right: 8px; |
| | | z-index: 99; |
| | | } |
| | | |
| | | .hdw-btn { |
| | | display: inline-block; |
| | | color: #fff; |
| | | background-color: #409eff; |
| | | border-color: #409eff; |
| | | line-height: 1; |
| | | white-space: nowrap; |
| | | cursor: pointer; |
| | | -webkit-appearance: none; |
| | | text-align: center; |
| | | box-sizing: border-box; |
| | | outline: none; |
| | | margin: 0; |
| | | transition: 0.1s; |
| | | font-weight: 500; |
| | | -webkit-user-select: none; |
| | | -moz-user-select: none; |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | padding: 6px 10px; |
| | | font-size: 14px; |
| | | border-radius: 4px; |
| | | } |
| | | .hdw-btn { |
| | | display: inline-block; |
| | | color: #fff; |
| | | background-color: #409eff; |
| | | border-color: #409eff; |
| | | line-height: 1; |
| | | white-space: nowrap; |
| | | cursor: pointer; |
| | | -webkit-appearance: none; |
| | | text-align: center; |
| | | box-sizing: border-box; |
| | | outline: none; |
| | | margin: 0; |
| | | transition: 0.1s; |
| | | font-weight: 500; |
| | | -webkit-user-select: none; |
| | | -moz-user-select: none; |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | padding: 6px 10px; |
| | | font-size: 14px; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .hdw-btn:hover { |
| | | background-color: #3c91e6; |
| | | } |
| | | .hdw-btn:hover { |
| | | background-color: #3c91e6; |
| | | } |
| | | |
| | | .hdw-menu-list { |
| | | border: 1px solid #409eff; |
| | | } |
| | | .hdw-menu-list { |
| | | border: 1px solid #409eff; |
| | | } |
| | | |
| | | .hdw-menu-list .hdw-menu-item { |
| | | border-top: 1px solid #0e5194; |
| | | } |
| | | .hdw-menu-list .hdw-menu-item { |
| | | border-top: 1px solid #0e5194; |
| | | } |
| | | |
| | | .hdw-menu-list .hdw-menu-item:first-child { |
| | | border-top: none; |
| | | } |
| | | .hdw-menu-list .hdw-menu-item:first-child { |
| | | border-top: none; |
| | | } |
| | | |
| | | .hdw-menu-item a { |
| | | display: block; |
| | | text-align: center; |
| | | padding: 8px; |
| | | color: #ffffff; |
| | | cursor: pointer; |
| | | background-color: rgba(30, 125, 219, 0.767); |
| | | } |
| | | .hdw-menu-item a { |
| | | display: block; |
| | | text-align: center; |
| | | padding: 8px; |
| | | color: #ffffff; |
| | | cursor: pointer; |
| | | background-color: rgba(30, 125, 219, 0.767); |
| | | } |
| | | |
| | | .hdw-menu-item a:hover { |
| | | background-color: rgb(60, 135, 211); |
| | | } |
| | | .hdw-menu-item a:hover { |
| | | background-color: rgb(60, 135, 211); |
| | | } |
| | | |
| | | .hdw-menu-item a:active { |
| | | background-color: rgb(34, 100, 167); |
| | | } |
| | | .hdw-menu-item a:active { |
| | | background-color: rgb(34, 100, 167); |
| | | } |
| | | |
| | | .hdw-state-list { |
| | | box-sizing: border-box; |
| | | font-size: 14px; |
| | | padding-bottom: 8px; |
| | | } |
| | | .hdw-state-list { |
| | | box-sizing: border-box; |
| | | font-size: 14px; |
| | | padding-bottom: 8px; |
| | | } |
| | | |
| | | .table-info-list { |
| | | width: 100%; |
| | | font-size: 14px; |
| | | } |
| | | .table-info-list { |
| | | width: 100%; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .table-info-list td { |
| | | padding: 4px; |
| | | text-align: center; |
| | | } |
| | | .table-info-list td { |
| | | padding: 4px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .noborder { |
| | | border: none; |
| | | } |
| | | .noborder { |
| | | border: none; |
| | | } |
| | | |
| | | .el-table-wrapper { |
| | | background-color: #052272; |
| | | } |
| | | .el-table-wrapper { |
| | | background-color: #052272; |
| | | } |
| | | |
| | | .flex-box-list, |
| | | .flex-box-list-full { |
| | | display: flex; |
| | | flex-direction: row; |
| | | height: 50%; |
| | | box-sizing: border-box; |
| | | } |
| | | .flex-box-list, |
| | | .flex-box-list-full { |
| | | display: flex; |
| | | flex-direction: row; |
| | | height: 50%; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .flex-box-list-full { |
| | | height: 100%; |
| | | } |
| | | .flex-box-list-full { |
| | | height: 100%; |
| | | } |
| | | |
| | | .flex-box-mgr { |
| | | margin: 16px; |
| | | } |
| | | .flex-box-mgr { |
| | | margin: 16px; |
| | | } |
| | | |
| | | .page-content .flex-box { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | } |
| | | .page-content .flex-box { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | } |
| | | </style> |