| | |
| | | .el-science-blue .el-table--striped .el-table__body tr.el-table__row--striped td { |
| | | background-color: #153953; |
| | | } |
| | | |
| | | .el-science-blue .el-table--striped.table-stripe-odd .el-table__body tr.el-table__row td { |
| | | background-color: #0D4260; |
| | | } |
| | | .el-science-blue .el-table--striped.table-stripe-odd .el-table__body tr.el-table__row--striped td { |
| | | background-color: #00253F; |
| | | } |
| | | .el-science-blue .el-table th>.cell { |
| | | font-weight: bold; |
| | | } |
| | |
| | | border-color: #6bed6b; |
| | | background-color: #6bed6b; |
| | | } |
| | | .el-science-blue .el-table.border-table .el-table__body-wrapper{ |
| | | box-sizing: border-box; |
| | | border-left: 1Px solid #00fefe; |
| | | border-right: 1Px solid #00fefe; |
| | | border-bottom: 1Px solid #00fefe; |
| | | border-top: 1Px solid #00fefe; |
| | | } |
| | | .el-science-blue .el-table .table-list-name { |
| | | color: #00fefe; |
| | | border-right: 1px solid #00fefe; |
| | | border-right: 1Px solid #00fefe; |
| | | } |
| | | .el-science-blue .el-table .table-list-name.white-color { |
| | | color: #fff; |
| | |
| | | /* flex-box */ |
| | | .flex-box { |
| | | box-sizing: border-box; |
| | | background-color: #153953; |
| | | background-color: #0B3550; |
| | | } |
| | | .flex-box-header { |
| | | background-image: url("./img/science-black/chart-wrapper-title-bg.png"); |
| | |
| | | |
| | | .flex-page-wrapper-border { |
| | | border: 1px solid #20A3B9; |
| | | } |
| | | |
| | | .chart-wrapper:before, |
| | | .chart-wrapper:after, |
| | | .chart-wrapper-corner{ |
| | | width: 16px; |
| | | height: 16px; |
| | | } |
| | | |
| | | .border-full { |
| | | border: 1Px solid #00fefe; |
| | | } |
| | | .border-right { |
| | | border-right: 1Px solid #00fefe; |
| | | } |
| | |
| | | border-color: #6bed6b; |
| | | background-color: #6bed6b; |
| | | } |
| | | .el-science-blue .el-table.border-table .el-table__body-wrapper{ |
| | | box-sizing: border-box; |
| | | border-left: 1Px solid #00fefe; |
| | | border-right: 1Px solid #00fefe; |
| | | border-bottom: 1Px solid #00fefe; |
| | | border-top: 1Px solid #00fefe; |
| | | } |
| | | .el-science-blue .el-table .table-list-name { |
| | | color: #00fefe; |
| | | border-right: 1px solid #00fefe; |
| | |
| | | .chart-wrapper-corner{ |
| | | width: 16px; |
| | | height: 16px; |
| | | } |
| | | |
| | | .border-full { |
| | | border: 1Px solid #00fefe; |
| | | } |
| | | .border-right { |
| | | border-right: 1Px solid #00fefe; |
| | | } |
| | |
| | | .w80 { |
| | | width: 80px; |
| | | } |
| | | .w240 { |
| | | width: 240px; |
| | | } |
| | | .w260 { |
| | | width: 260px; |
| | | } |
| | | .w280 { |
| | | width: 260px; |
| | | } |
| | | .w300 { |
| | | width: 300px; |
| | | } |
| | |
| | | .h30-percent { |
| | | height: 30%; |
| | | } |
| | | .h33-percent { |
| | | height: 33%; |
| | | } |
| | | .h40-percent { |
| | | height: 40%; |
| | | } |
| | | .h50-percent { |
| | | height: 50%; |
| | | } |
| | | .h60-percent { |
| | | height: 60%; |
| | | } |
| | | .full-height { |
| | | height: 100%; |
| | |
| | | } |
| | | .padding0808 { |
| | | padding: 0 8px 0 8px; |
| | | } |
| | | .padding816816 { |
| | | padding: 8px 16px 8px 16px; |
| | | } |
| | | .padding8161616 { |
| | | padding: 8px 16px 16px 16px; |
| | | } |
| | | .padding16161616 { |
| | | padding: 16px 16px 16px 16px; |
| | | } |
| | | .padding0800 { |
| | | padding: 0 8px 0 0; |
| | | } |
| | | .padding16040 { |
| | | padding: 16px 0 4px 0; |
| | | } |
| | | .padding16000 { |
| | | padding: 16px 0 0 0; |
| | | } |
| | | .padding016016 { |
| | | padding: 0 16px 0 16px; |
| | | } |
| | | /*margin*/ |
| | | .mgr8 { |
| | | margin-left: 8px; |
| | | } |
| | | .mgr16 { |
| | | margin-left: 16px; |
| | | } |
| | | .mgb8 { |
| | | margin-bottom: 8px; |
| | | } |
| | | .mgt16 { |
| | | margin-top: 16px; |
| | | } |
| | | /* */ |
| | | .overflow-y { |
| | |
| | | height: 12px; |
| | | box-shadow: none; |
| | | } |
| | | .hdw-light-text { |
| | | |
| | | } |
| | | |
| | | @keyframes errorLight { |
| | | 0% { |
New file |
| | |
| | | import axios from "axios"; |
| | | |
| | | export default { |
| | | /** |
| | | * 启动测试 |
| | | * @param data 启动命令 |
| | | * @returns {AxiosPromise} |
| | | */ |
| | | start(data) { |
| | | return axios({ |
| | | method: 'post', |
| | | url: 'Fbs9600_stateAction_action_update', |
| | | data: 'json='+JSON.stringify(data), |
| | | }); |
| | | }, |
| | | /** |
| | | * 停止测试 |
| | | * @param data 停止命令 |
| | | * @returns {AxiosPromise} |
| | | */ |
| | | stop(data) { |
| | | return axios({ |
| | | method: 'post', |
| | | url: 'Fbs9100_setparamAction_action_serchbyDev_id', |
| | | data: 'json='+JSON.stringify(data), |
| | | }); |
| | | } |
| | | } |
| | |
| | | import e61850 from './e61850' |
| | | import bts from './bts' |
| | | import bts9611 from "@/assets/js/apis/dischargeTest/bts9611"; |
| | | |
| | | export default { |
| | | e61850, |
| | | bts |
| | | bts, |
| | | bts9611, |
| | | }; |
| | |
| | | { |
| | | value: 9605, |
| | | label: "9605BTS" |
| | | }, |
| | | { |
| | | value: 9611, |
| | | label: "9600显示屏" |
| | | } |
| | | ], |
| | | power: [ |
| | |
| | | BTSSreen: /^9611/, |
| | | equip4016:/^4016/, |
| | | BTS9605: /^9605/, |
| | | BTS9611: /^9611/, |
| | | power: /^110/, |
| | | isolating: /^111/, |
| | | charger: /^112/, |
| | |
| | | <template> |
| | | <div class="time-wrapper" :class="{'mini-size':size=='mini'}"> |
| | | <div class="time-icon"><i class="iconfont el-icon-1rili_huaban12"></i></div> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.year" |
| | | :key="key+year" |
| | | :value="item"></time-number> |
| | | <span class="time-text">年</span> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.month" |
| | | :key="key+month" |
| | | :value="item"></time-number> |
| | | <span class="time-text">月</span> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.day" |
| | | :key="key+day" |
| | | :value="item">></time-number> |
| | | <span class="time-text">日</span> |
| | | <span class="time-division"></span> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.hour" |
| | | :key="key+hour" |
| | | :value="item"></time-number> |
| | | <span class="time-text">时</span> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.minute" |
| | | :key="key+minute" |
| | | :value="item"></time-number> |
| | | <span class="time-text">分</span> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.second" |
| | | :key="key+second" |
| | | :value="item"></time-number> |
| | | <span class="time-text">秒</span> |
| | | </div> |
| | | <div class="time-wrapper" :class="{'mini-size':size=='mini'}"> |
| | | <div class="time-icon"><i class="iconfont el-icon-1rili_huaban12"></i></div> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.year" |
| | | :key="key+year" |
| | | :value="item"></time-number> |
| | | <span class="time-text">年</span> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.month" |
| | | :key="key+month" |
| | | :value="item"></time-number> |
| | | <span class="time-text">月</span> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.day" |
| | | :key="key+day" |
| | | :value="item">> |
| | | </time-number> |
| | | <span class="time-text">日</span> |
| | | <template v-if="newline"> |
| | | <br> |
| | | <br> |
| | | <span class="time-newline-division"></span> |
| | | </template> |
| | | |
| | | <span class="time-division" v-else></span> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.hour" |
| | | :key="key+hour" |
| | | :value="item"></time-number> |
| | | <span class="time-text">时</span> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.minute" |
| | | :key="key+minute" |
| | | :value="item"></time-number> |
| | | <span class="time-text">分</span> |
| | | <time-number |
| | | v-for="(item,key) in timerVals.second" |
| | | :key="key+second" |
| | | :value="item"></time-number> |
| | | <span class="time-text">秒</span> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import TimeNumber from "@/pages/dataMager/components/TimeNumber"; |
| | | |
| | | export default { |
| | | name: "CalendarTime", |
| | | components: { |
| | | TimeNumber |
| | | }, |
| | | props: { |
| | | date: { |
| | | type: String, |
| | | default: "2021-01-01 00:00:00" |
| | | name: "CalendarTime", |
| | | components: { |
| | | TimeNumber |
| | | }, |
| | | size: { |
| | | type: String, |
| | | default: "" |
| | | props: { |
| | | date: { |
| | | type: String, |
| | | default: "2021-01-01 00:00:00" |
| | | }, |
| | | size: { |
| | | type: String, |
| | | default: "" |
| | | }, |
| | | newline: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | year: "year", |
| | | month: 'month', |
| | | day: "day", |
| | | hour: "hour", |
| | | minute: "minute", |
| | | second: "second" |
| | | } |
| | | }, |
| | | computed: { |
| | | timerVals() { |
| | | let sTimer = new Date(this.date).format("yyyy-MM-dd hh:mm:ss"); |
| | | let aTimer = sTimer.split(" "); |
| | | let dates = aTimer[0].split("-"); |
| | | let times = aTimer[1].split(":"); |
| | | return { |
| | | year: dates[0].split(""), |
| | | month: dates[1].split(""), |
| | | day: dates[2].split(""), |
| | | hour: times[0].split(""), |
| | | minute: times[1].split(""), |
| | | second: times[2].split("") |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | year: "year", |
| | | month: 'month', |
| | | day: "day", |
| | | hour: "hour", |
| | | minute: "minute", |
| | | second: "second" |
| | | } |
| | | }, |
| | | computed: { |
| | | timerVals() { |
| | | let sTimer = new Date(this.date).format("yyyy-MM-dd hh:mm:ss"); |
| | | let aTimer = sTimer.split(" "); |
| | | let dates = aTimer[0].split("-"); |
| | | let times = aTimer[1].split(":"); |
| | | return { |
| | | year: dates[0].split(""), |
| | | month: dates[1].split(""), |
| | | day: dates[2].split(""), |
| | | hour: times[0].split(""), |
| | | minute: times[1].split(""), |
| | | second: times[2].split("") |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .time-wrapper { |
| | | white-space: nowrap; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .time-icon { |
| | | display: inline-block; |
| | | padding: 12px; |
| | | background-color: #00feff; |
| | | border-radius: 50%; |
| | | margin-right: 8px; |
| | | vertical-align: top; |
| | | display: inline-block; |
| | | padding: 12px; |
| | | background-color: #00feff; |
| | | border-radius: 50%; |
| | | margin-right: 8px; |
| | | vertical-align: top; |
| | | } |
| | | |
| | | .time-icon i { |
| | | font-size: 46px; |
| | | color: #041F6C; |
| | | font-size: 46px; |
| | | color: #041F6C; |
| | | } |
| | | |
| | | .time-division { |
| | | margin-left: 32px; |
| | | margin-left: 32px; |
| | | } |
| | | |
| | | .time-text { |
| | | font-size: 14px; |
| | | color: #00fefe; |
| | | margin-left: 8px; |
| | | vertical-align: middle; |
| | | font-size: 14px; |
| | | color: #00fefe; |
| | | margin-left: 8px; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .time-newline-division { |
| | | margin-left: 78px; |
| | | } |
| | | /* mini-size */ |
| | | .mini-size .time-icon { |
| | | padding: 8px 8px 8px 8px; |
| | | margin-right: 4px; |
| | | padding: 8px 8px 8px 8px; |
| | | margin-right: 4px; |
| | | } |
| | | |
| | | .mini-size .time-icon i { |
| | | font-size: 24px; |
| | | font-size: 24px; |
| | | } |
| | | </style> |
| | |
| | | <div class="flex-box-border border-top-right"></div> |
| | | <div class="flex-box-border border-bottom-left"></div> |
| | | <div class="flex-box-border border-bottom-right"></div> |
| | | <div class="flex-box-header" v-if="!noHeader"> |
| | | <div class="flex-box-header" v-if="!noHeader" :class="{'no-header-bg':noHeaderBg}"> |
| | | <i class="iconfont el-icon-fold"></i> |
| | | <span class="header-text">{{title}}</span> |
| | | </div> |
| | |
| | | color: #00fefe; |
| | | font-weight: bold; |
| | | } |
| | | .flex-box-header.no-header-bg { |
| | | background: none; |
| | | padding: 8px 0; |
| | | } |
| | | .flex-box-header .iconfont { |
| | | font-size: 10px; |
| | | margin-right: 8px; |
| | |
| | | position: relative; |
| | | flex: 1; |
| | | overflow: hidden; |
| | | box-sizing: border-box; |
| | | } |
| | | </style> |
| | |
| | | }, |
| | | resColor: { |
| | | type: String, |
| | | default: "#6f7cad" |
| | | default: "#2C5774" |
| | | }, |
| | | fontColor: { |
| | | type: String, |
| | |
| | | name: { |
| | | type: String, |
| | | default: "" |
| | | } |
| | | }, |
| | | full: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | }, |
| | | watch: { |
| | | value() { |
| | |
| | | let color = this.color; |
| | | let resColor = this.resColor; |
| | | let title = this.getTitle(); |
| | | let full = this.full?['80%', '100%']:["50%", "66%"]; |
| | | let option = { |
| | | animation: false, |
| | | title: title, |
| | |
| | | name: 'circle', |
| | | type: 'pie', |
| | | clockWise: true, |
| | | radius: ['50%', '66%'], |
| | | radius: full, |
| | | itemStyle: { |
| | | normal: { |
| | | label: { |
| | |
| | | tooltip: this.getTooltip(opt), |
| | | grid: { |
| | | left: '1%', |
| | | right: '1%', |
| | | right: '5%', |
| | | bottom: '2%', |
| | | containLabel: true |
| | | }, |
| | |
| | | return opt.title; |
| | | }, |
| | | getTooltip(opt) { // 配置标题 |
| | | let unit = this.unit; |
| | | // 未配置标题 |
| | | if (!opt || !opt.tooltip) { |
| | | return { |
| | |
| | | type: 'line' // 默认为直线,可选为:'line' | 'shadow' |
| | | }, |
| | | appendToBody: true, |
| | | // formatter(params) { |
| | | // var res = params[0].name + '<br/>'; |
| | | // params.forEach(item => { |
| | | // res += item.marker; |
| | | // res += item.seriesName; |
| | | // res += ' : ' + item.data[1] + unit + '</br>'; |
| | | // }); |
| | | // return res; |
| | | // } |
| | | formatter(params) { |
| | | let res = params[0].name + '<br/>'; |
| | | params.forEach(item => { |
| | | res += item.marker; |
| | | res += item.seriesName; |
| | | res += ' : ' + item.data[1] + unit + '</br>'; |
| | | }); |
| | | return res; |
| | | } |
| | | }; |
| | | } |
| | | |
| | |
| | | <res-test |
| | | v-else-if="reg9605" |
| | | :batt="batt"></res-test> |
| | | <res-test9611 |
| | | v-else-if="reg9611" |
| | | :batt="batt"></res-test9611> |
| | | <div v-else class="kfz"> |
| | | <img src="../../assets/images/kfz.png"> |
| | | </div> |
| | |
| | | import DischargeParams61850 from './61850/DischargeParams' |
| | | import BtsDischargeParams from './BTS/DischargeParams' |
| | | import ResTest from "@/components/params/ResTest"; |
| | | import ResTest9611 from "@/components/params/ResTest9611"; |
| | | import { |
| | | regEquipType |
| | | } from '../../assets/js/tools' |
| | |
| | | components: { |
| | | DischargeParams61850, |
| | | BtsDischargeParams, |
| | | ResTest |
| | | ResTest, |
| | | ResTest9611 |
| | | }, |
| | | props: { |
| | | batt: { |
| | |
| | | return regEquipType(this.batt.FBSDeviceId, ["BTS", "BTS9110", "BTS9120"]); |
| | | }, |
| | | reg9605() { |
| | | return regEquipType(this.batt.FBSDeviceId, "BTS9605"); |
| | | return regEquipType(this.batt.FBSDeviceId, ["BTS9605"]); |
| | | }, |
| | | reg9611() { |
| | | return regEquipType(this.batt.FBSDeviceId, ["BTS9611"]); |
| | | }, |
| | | } |
| | | } |
New file |
| | |
| | | <template> |
| | | <el-form |
| | | ref="ruleForm" |
| | | size="mini" |
| | | label-position="top" |
| | | :model="params" |
| | | :rules="rules" |
| | | class="params-dialog"> |
| | | <el-form-item label="电池组名称"> |
| | | <el-input v-model="otherParams.groupName" readonly></el-input> |
| | | </el-form-item> |
| | | <div class="form-footer"> |
| | | <!-- <three-btn>清除告警</three-btn> --> |
| | | <three-btn @click="confirmStart">启动内阻测试</three-btn> |
| | | </div> |
| | | </el-form> |
| | | </template> |
| | | |
| | | <script> |
| | | import {const_9100} from "@/assets/js/const"; |
| | | |
| | | export default { |
| | | name: "ResTest9611", |
| | | props: { |
| | | batt: { |
| | | type: Object, |
| | | default() { |
| | | return {} |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | let cmd = const_9100.cmd; |
| | | return { |
| | | cmd: cmd, |
| | | params: {}, |
| | | rules: {}, |
| | | } |
| | | }, |
| | | methods: { |
| | | confirmStart() { |
| | | this.$confirm('确定启动内阻测试', '系统提示', { |
| | | type: 'warning' |
| | | }).then(()=>{ |
| | | this.start(); |
| | | }).catch(()=>{}); |
| | | }, |
| | | start() { |
| | | // 等待框 |
| | | let loading = this.$layer.loading(1); |
| | | // 请求后台 |
| | | this.$apis.dischargeTest.bts9611.start({ |
| | | num: this.cmd.start, |
| | | dev_id: this.batt.FBSDeviceId, |
| | | BattGroupNum: this.batt.GroupIndexInFBSDevice+1, |
| | | }).then(res => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | // 提示信息 |
| | | this.$layer.msg('启动测试成功'); |
| | | } else { |
| | | // 提示信息 |
| | | this.$layer.msg('启动测试失败!'); |
| | | } |
| | | // 关闭等待框 |
| | | this.$layer.close(loading); |
| | | }).catch(error => { |
| | | console.log(error); |
| | | // 关闭等待框 |
| | | this.$layer.close(loading); |
| | | // 提示信息 |
| | | this.$layer.msg('启动测试失败,启动测试请求异常!'); |
| | | }); |
| | | }, |
| | | }, |
| | | computed: { |
| | | otherParams() { |
| | | let batt = this.batt; |
| | | let groupInfo = '单体数量:' + this.batt.MonCount + ";电压(V):" |
| | | + this.batt.MonVolStd + ";容量(AH):" + this.batt.MonCapStd; |
| | | return { |
| | | groupName: batt.StationName + "-" + batt.BattGroupName, |
| | | FBSDeviceId: batt.FBSDeviceId, |
| | | groupInfo: groupInfo, |
| | | GroupIndexInFBSDevice: this.batt.GroupIndexInFBSDevice + 1, |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | ACCurr: [ |
| | | { |
| | | id: "ACCurrA", |
| | | key: "acOutCurrA", |
| | | key: "acIn1CurrA", |
| | | name: '三相交流电流', |
| | | number: "A", |
| | | min: 0, |
| | |
| | | }, |
| | | { |
| | | id: "ACCurrB", |
| | | key: "acOutCurrB", |
| | | key: "acIn1CurrB", |
| | | name: '三相交流电流', |
| | | number: "B", |
| | | min: 0, |
| | |
| | | }, |
| | | { |
| | | id: "ACCurrC", |
| | | key: "acOutCurrC", |
| | | key: "acIn1CurrC", |
| | | name: '三相交流电流', |
| | | number: "C", |
| | | min: 0, |
| | |
| | | <div class="h50-percent padding-box padding0880"> |
| | | <el-row :gutter="8" class="full-height"> |
| | | <el-col :span="8" class="full-height"> |
| | | <flex-box title="系统状态"> |
| | | <div class="flex-center"> |
| | | <card-box :icon="sysStateInfo.icon" :text="sysStateInfo.text"> |
| | | <hdw-light :type="sysStateInfo.state"></hdw-light> |
| | | </card-box> |
| | | </div> |
| | | <flex-box title="纹波峰值系数"> |
| | | <water-polo id="peakCoe" ref="peakCoe"></water-polo> |
| | | </flex-box> |
| | | |
| | | </el-col> |
| | | <el-col :span="8" class="full-height"> |
| | | <flex-box title="充电机输出电压"> |
| | |
| | | </div> |
| | | <div slot="footer" class="w400 full-height"> |
| | | <div class="h50-percent padding-box padding0088"> |
| | | <flex-box title="纹波峰值系数"> |
| | | <water-polo id="peakCoe" ref="peakCoe"></water-polo> |
| | | <flex-box title="系统状态"> |
| | | <el-table stripe :data="sysData" :show-header="false" height="100%" |
| | | size="small"> |
| | | <el-table-column |
| | | prop="name" |
| | | label="名称" |
| | | align="center" |
| | | min-width="100" |
| | | class-name="table-list-name no-border white-color"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="value" |
| | | label="值" |
| | | align="center" |
| | | class-name="table-list-value"> |
| | | <template slot-scope="scope"> |
| | | <hdw-light :type="scope.row.value"></hdw-light> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </flex-box> |
| | | </div> |
| | | <div class="h50-percent padding-box padding0088"> |
| | |
| | | export default { |
| | | name: "ChargerStatusTabPane", |
| | | components: { |
| | | HdwLight, |
| | | CardBox, |
| | | WaterPolo, |
| | | FlexBox, |
| | | CalendarTime, |
| | | CirclePieChart, |
| | | paramModule |
| | | paramModule, |
| | | HdwLight |
| | | }, |
| | | props: { |
| | | name: { |
| | |
| | | data: [60, 60], |
| | | max: 100, |
| | | }, |
| | | sysData: [ |
| | | { |
| | | name: '输出电压', |
| | | normal: "正常", |
| | | error: "异常", |
| | | count: Math.sqrt(2, 0), |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: '输出电流', |
| | | normal: "正常", |
| | | error: "异常", |
| | | count: Math.sqrt(2, 1), |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: '纹波', |
| | | normal: "正常", |
| | | error: "异常", |
| | | count: Math.sqrt(2, 2), |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: '输入电压', |
| | | normal: "正常", |
| | | error: "异常", |
| | | count: Math.sqrt(2, 3), |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: '输入电流', |
| | | normal: "正常", |
| | | error: "异常", |
| | | count: Math.sqrt(2, 4), |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: '电流', |
| | | normal: "正常", |
| | | error: "异常", |
| | | count: Math.sqrt(2, 5), |
| | | value: 0, |
| | | }, |
| | | ], |
| | | peakValue: "", |
| | | peakData: 0, |
| | | } |
| | |
| | | // 设置chargerCurr |
| | | this.chargerCurr.value = getValByKey(this.chargerCurr.key, info, 0); |
| | | // 设置系统状态 |
| | | this.sysState = getValByKey("charSystemState", info, -1); |
| | | this.setSysData(); |
| | | // 设置setParamModule |
| | | this.setParamModule(); |
| | | // 设置peakValue |
| | |
| | | let value = getValByKey("charPeakRipParam", info, 0); |
| | | this.peakCoe.data = [value, value]; |
| | | this.$refs.peakCoe.setOption(this.peakCoe); |
| | | }, |
| | | // 设置系统状态 |
| | | setSysData() { |
| | | let info = this.info; |
| | | let key = "charSystemState"; |
| | | let value = getValByKey(key, info, 0); |
| | | |
| | | this.sysData.map(item=>{ |
| | | item.value = value&item.count; |
| | | }); |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | font-size: 42px; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .peak-number-unit { |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .peak-number-text { |
| | | font-size: 18px; |
| | | } |
| | |
| | | <template> |
| | | <div class="hdw-light" :class="lightState"></div> |
| | | <div class="hdw-light-wrapper"> |
| | | <div class="hdw-light" :class="lightState"></div> |
| | | <span class="hdw-light-text">{{textState}}</span> |
| | | </div> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | type: { |
| | | type: [Number, String], |
| | | default: 0 |
| | | }, |
| | | normal: { |
| | | type: String, |
| | | default: "" |
| | | }, |
| | | error: { |
| | | type: String, |
| | | default: "" |
| | | } |
| | | }, |
| | | computed: { |
| | | lightState() { |
| | | let state=""; |
| | | switch (this.type) { |
| | | let type = this.type>1?1:this.type; |
| | | switch (type) { |
| | | case 1: |
| | | state = "error-light" |
| | | break; |
| | |
| | | break; |
| | | } |
| | | return state; |
| | | } |
| | | }, |
| | | textState() { |
| | | let state=""; |
| | | let type = this.type>1?1:this.type; |
| | | switch (type) { |
| | | case 1: |
| | | state = this.error; |
| | | break; |
| | | case -1: |
| | | state = ""; |
| | | break; |
| | | default: |
| | | state = this.normal; |
| | | break; |
| | | } |
| | | return state; |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | .hdw-light-wrapper { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 30px; |
| | | } |
| | | .hdw-light-text { |
| | | margin-left: 4px; |
| | | vertical-align: top; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="content-container padding0404"> |
| | | <div class="content-wrapper content-wrapper-main"> |
| | | <div class="h50-percent main-top"> |
| | | <el-row class="full-height"> |
| | | <el-col :span="12" class="full-height"> |
| | | <div class="h50-percent padding0880"> |
| | | <flex-box title="记录时间"> |
| | | <div class="center-content"> |
| | | <calendar-time size="mini" :date="updateTime"></calendar-time> |
| | | <div class="full-height padding0888"> |
| | | <flex-layout direction="row"> |
| | | <div class="content-wrapper content-wrapper-main"> |
| | | <div class="h60-percent main-top"> |
| | | <el-row class="full-height"> |
| | | <el-col :span="14" class="full-height"> |
| | | <div class="h50-percent padding0880"> |
| | | <flex-box title="记录时间"> |
| | | <div class="center-content"> |
| | | <calendar-time newline :date="updateTime"></calendar-time> |
| | | </div> |
| | | </flex-box> |
| | | </div> |
| | | <div class="h50-percent padding0880"> |
| | | <flex-layout direction="row"> |
| | | <flex-box title="电池信息" no-header-bg> |
| | | <el-row :gutter="8" class="full-height"> |
| | | <el-col :span="12" class="full-height"> |
| | | <div class="battery-info"> |
| | | <div class="battery-info-wrapper"> |
| | | <div class="battery-icon-wrapper"> |
| | | <div class="battery-icon"> |
| | | <i class="iconfont el-icon-6dianchi"></i></div> |
| | | </div> |
| | | <div class="battery-text-wrapper"> |
| | | <span class="text-content">故障电池节数</span> |
| | | <span class="text-value">{{ batteryNumber }}</span> |
| | | <span class="text-content">节</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12" class="full-height"> |
| | | <div class="battery-info"> |
| | | <div class="battery-info-wrapper"> |
| | | <div class="battery-res-pie-wrapper"> |
| | | <circle-pie-chart |
| | | ref="batteryRes" id="batteryRes" |
| | | full |
| | | :color="batteryRes.color" :max="batteryRes.max" |
| | | :unit="batteryRes.unit" |
| | | :value="batteryRes.value"></circle-pie-chart> |
| | | </div> |
| | | <div class="battery-res-text"> |
| | | <span>电池对地电阻</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </flex-box> |
| | | <flex-box title="装置状态" no-header-bg slot="footer" class="w280 mgr16"> |
| | | <div class="flex-center full-height padding0808"> |
| | | <el-table :data="insInfo" 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"> |
| | | <template slot-scope="scope"> |
| | | <hdw-light :type="scope.row.value"></hdw-light> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </flex-box> |
| | | </flex-layout> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="10" class="padding0888 full-height"> |
| | | <flex-box title="监测数据"> |
| | | <el-row :gutter="16" class="h33-percent"> |
| | | <el-col |
| | | :span="12" class="full-height" |
| | | v-for="item in volCurr.top" :key="item.id"> |
| | | <div class="circle-pie-chart-container"> |
| | | <div class="circle-pie-chart-wrapper"> |
| | | <circle-pie-chart |
| | | :ref="item.id" :id="item.id" |
| | | :color="item.color" :max="item.max" |
| | | :unit="item.unit" :value="item.value"></circle-pie-chart> |
| | | </div> |
| | | <div class="circle-pie-chart-text"> |
| | | <span>{{ item.name }}</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="16" class="h33-percent"> |
| | | <el-col |
| | | :span="12" class="full-height" |
| | | v-for="item in volCurr.middle" :key="item.id"> |
| | | <div class="circle-pie-chart-container"> |
| | | <div class="circle-pie-chart-wrapper"> |
| | | <circle-pie-chart |
| | | :ref="item.id" :id="item.id" |
| | | :color="item.color" :max="item.max" |
| | | :unit="item.unit" :value="item.value"></circle-pie-chart> |
| | | </div> |
| | | <div class="circle-pie-chart-text"> |
| | | <span>{{ item.name }}</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="16" class="h33-percent"> |
| | | <el-col |
| | | :span="12" class="full-height" |
| | | v-for="item in volCurr.bottom" :key="item.id"> |
| | | <div class="circle-pie-chart-container"> |
| | | <div class="circle-pie-chart-wrapper"> |
| | | <circle-pie-chart |
| | | :ref="item.id" :id="item.id" |
| | | :color="item.color" :max="item.max" |
| | | :unit="item.unit" :value="item.value"></circle-pie-chart> |
| | | </div> |
| | | <div class="circle-pie-chart-text"> |
| | | <span>{{ item.name }}</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </flex-box> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </flex-box> |
| | | <div class="h40-percent main-bottom"> |
| | | <flex-layout direction="row"> |
| | | <flex-box title="支路正/负对地电阻(KΩ)"> |
| | | <line-chart ref="resLine" id="resLine" unit="KΩ"></line-chart> |
| | | </flex-box> |
| | | <div class="full-height padding0808" slot="footer"> |
| | | <flex-box title="系统状态"> |
| | | <div class="padding016016 full-height flex-center"> |
| | | <el-row class="border-full"> |
| | | <el-col :span="12" class="border-right"> |
| | | <el-table :data="systemInfo1" stripe |
| | | class="table-stripe-odd" |
| | | :show-header="false"> |
| | | <el-table-column |
| | | prop="name" |
| | | label="名称" |
| | | align="left" |
| | | min-width="120"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="value" |
| | | label="值" |
| | | align="left" |
| | | class-name="table-list-value"> |
| | | <template slot-scope="scope"> |
| | | <hdw-light :type="scope.row.value"></hdw-light> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-table :data="systemInfo2" stripe |
| | | class="table-stripe-odd" |
| | | :show-header="false"> |
| | | <el-table-column |
| | | prop="name" |
| | | label="名称" |
| | | align="left" |
| | | min-width="120"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="value" |
| | | label="值" |
| | | align="left" |
| | | class-name="table-list-value"> |
| | | <template slot-scope="scope"> |
| | | <hdw-light :type="scope.row.value"></hdw-light> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </flex-box> |
| | | </div> |
| | | </flex-layout> |
| | | </div> |
| | | </div> |
| | | <div class="h50-percent padding0880"> |
| | | <flex-box title="工作状态"> |
| | | <el-table |
| | | :data="systemState" stripe |
| | | :show-header="false" height="100%" size="small"> |
| | | <el-table-column |
| | | prop="name" |
| | | label="名称" |
| | | align="center" |
| | | min-width="100" |
| | | class-name="table-list-name no-border white-color"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="value" |
| | | label="值" |
| | | align="center" |
| | | class-name="table-list-value"> |
| | | <template slot-scope="scope"> |
| | | <div class="hdw-light" :class="{'error-light':scope.row.value == 1}"></div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </flex-box> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12" class="padding0888 full-height"> |
| | | <flex-box title="监测数据"> |
| | | <el-row :gutter="16" class="h30-percent"> |
| | | <el-col |
| | | :span="12" class="full-height" |
| | | v-for="item in volCurr.top" :key="item.id"> |
| | | <div class="circle-pie-chart-container"> |
| | | <div class="circle-pie-chart-wrapper"> |
| | | <circle-pie-chart |
| | | :ref="item.id" :id="item.id" |
| | | :color="item.color" :max="item.max" |
| | | :unit="item.unit" :value="item.value"></circle-pie-chart> |
| | | </div> |
| | | <div class="circle-pie-chart-text"> |
| | | <span>{{ item.name }}</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="16" class="h30-percent"> |
| | | <el-col |
| | | :span="12" class="full-height" |
| | | v-for="item in volCurr.middle" :key="item.id"> |
| | | <div class="circle-pie-chart-container"> |
| | | <div class="circle-pie-chart-wrapper"> |
| | | <circle-pie-chart |
| | | :ref="item.id" :id="item.id" |
| | | :color="item.color" :max="item.max" |
| | | :unit="item.unit" :value="item.value"></circle-pie-chart> |
| | | </div> |
| | | <div class="circle-pie-chart-text"> |
| | | <span>{{ item.name }}</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="16" class="h30-percent"> |
| | | <el-col |
| | | :span="12" class="full-height" |
| | | v-for="item in volCurr.bottom" :key="item.id"> |
| | | <div class="circle-pie-chart-container"> |
| | | <div class="circle-pie-chart-wrapper"> |
| | | <circle-pie-chart |
| | | :ref="item.id" :id="item.id" |
| | | :color="item.color" :max="item.max" |
| | | :unit="item.unit" :value="item.value"></circle-pie-chart> |
| | | </div> |
| | | <div class="circle-pie-chart-text"> |
| | | <span>{{ item.name }}</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </flex-box> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="h50-percent main-bottom"> |
| | | <div class="content-container"> |
| | | <div class="content-wrapper content-wrapper-main padding0880"> |
| | | <flex-box title="支路正/负对地电阻KΩ"> |
| | | <line-chart ref="resLine" id="resLine"></line-chart> |
| | | </flex-box> |
| | | </div> |
| | | <div class="content-wrapper content-wrapper-w450 padding0888"> |
| | | <flex-box title="电池信息"> |
| | | <div class="flex-box-content"> |
| | | <div class="battery-info"> |
| | | <div class="battery-icon-wrapper"> |
| | | <div class="battery-icon"><i class="iconfont el-icon-6dianchi"></i></div> |
| | | </div> |
| | | <div class="battery-text-wrapper"> |
| | | <span class="text-content">故障电池节数</span><br> |
| | | <span class="text-value">{{batteryNumber}}节</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="flex-box-content"> |
| | | <div class="circle-pie-chart-container"> |
| | | <div class="circle-pie-chart-wrapper"> |
| | | <circle-pie-chart |
| | | ref="batteryRes" id="batteryRes" |
| | | :color="batteryRes.color" :max="batteryRes.max" |
| | | :unit="batteryRes.unit" :value="batteryRes.value"></circle-pie-chart> |
| | | </div> |
| | | <div class="circle-pie-chart-text"> |
| | | <span>电池对地电阻</span><br> |
| | | <span></span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </flex-box> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="content-wrapper content-wrapper-w360 padding0088"> |
| | | <table-list title="接地支路号"> |
| | | <el-table |
| | | :data="branchNumber" stripe |
| | | :show-header="false" height="100%" size="small"> |
| | | <el-table-column |
| | | prop="name" |
| | | label="名称" |
| | | align="center" |
| | | min-width="100" |
| | | class-name="table-list-name no-border white-color"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="value" |
| | | label="值" |
| | | align="center" |
| | | class-name="table-list-value"> |
| | | <div slot="footer" class="full-height w360 mgr8"> |
| | | <flex-layout> |
| | | <flex-box slot="header" title="接地支路号"> |
| | | <div class="padding8161616"> |
| | | <el-table |
| | | :data="branchNumber" 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> |
| | | </table-list> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </flex-box> |
| | | <div class="full-height padding16000 padding-box"> |
| | | <flex-box title="瞬时记录状态"> |
| | | <div class="padding0808 full-height flex-center"> |
| | | <el-table :data="insRecord" stripe |
| | | class="table-stripe-odd" |
| | | :show-header="false"> |
| | | <el-table-column |
| | | prop="name" |
| | | label="名称" |
| | | align="center" |
| | | min-width="120"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="value" |
| | | label="值" |
| | | align="center" |
| | | class-name="table-list-value"> |
| | | <template slot-scope="scope"> |
| | | <hdw-light :type="scope.row.value"></hdw-light> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </flex-box> |
| | | </div> |
| | | </flex-layout> |
| | | </div> |
| | | </flex-layout> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | import FlexBox from "@/components/FlexBox"; |
| | | import CalendarTime from "@/components/CalendarTime"; |
| | | import {getValByKey} from "@/assets/js/tools"; |
| | | import HdwLight from "@/pages/dataMager/components/HdwLight"; |
| | | |
| | | export default { |
| | | name: "IsolatingDeviceTabPane", |
| | | components: { |
| | | CalendarTime, |
| | | CirclePieChart, |
| | | LineChart, |
| | | TableList, |
| | | FlexBox |
| | | }, |
| | | props: { |
| | | name: { |
| | | type: String, |
| | | default: "" |
| | | name: "IsolatingDeviceTabPane", |
| | | components: { |
| | | HdwLight, |
| | | CalendarTime, |
| | | CirclePieChart, |
| | | LineChart, |
| | | FlexBox |
| | | }, |
| | | info: { |
| | | type: Object, |
| | | default() { |
| | | return {} |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | "$store.state.theme.collapse"() { |
| | | this.$nextTick(() => { |
| | | this.resize(); |
| | | }); |
| | | }, |
| | | name() { |
| | | this.setInfo(); |
| | | }, |
| | | info() { |
| | | this.setInfo(); |
| | | } |
| | | }, |
| | | data() { |
| | | let resLineConfig = { |
| | | axisLineColor: "#125984", |
| | | axisLineType: 'dashed', |
| | | axisLabelColor: '#fff', |
| | | line1Color: "#90ED7D", |
| | | line2Color: '#F69F41', |
| | | lineType: 'dashed', |
| | | }; |
| | | return { |
| | | branchNumber: [ |
| | | {key: 'insulatBranchNum1', name: '模块1', value: '???'}, |
| | | {key: 'insulatBranchNum2', name: '模块2', value: '???'}, |
| | | {key: 'insulatBranchNum3', name: '模块3', value: '???'}, |
| | | {key: 'insulatBranchNum4', name: '模块4', value: '???'}, |
| | | {key: 'insulatBranchNum5', name: '模块5', value: '???'}, |
| | | {key: 'insulatBranchNum6', name: '模块6', value: '???'}, |
| | | {key: 'insulatBranchNum7', name: '模块7', value: '???'}, |
| | | {key: 'insulatBranchNum8', name: '模块8', value: '???'}, |
| | | {key: 'insulatBranchNum9', name: '模块9', value: '???'}, |
| | | {key: 'insulatBranchNum10', name: '模块10', value: '???'}, |
| | | {key: 'insulatBranchNum11', name: '模块11', value: '???'}, |
| | | {key: 'insulatBranchNum12', name: '模块12', value: '???'}, |
| | | {key: 'insulatBranchNum13', name: '模块13', value: '???'}, |
| | | {key: 'insulatBranchNum14', name: '模块14', value: '???'}, |
| | | {key: 'insulatBranchNum15', name: '模块15', value: '???'}, |
| | | {key: 'insulatBranchNum16', name: '模块16', value: '???'}, |
| | | ], |
| | | systemState: [ |
| | | {key: 'insulatRecordState', name: '瞬时记录状态', value: 0}, |
| | | {key: 'insulatSystemState', name: '系统状态', value: 0}, |
| | | {key: 'insulatState', name: '装置状态', value: 0}, |
| | | ], |
| | | volCurr: { |
| | | top: [ |
| | | { |
| | | id: 'systemVol', |
| | | key: 'insulatSystemVol', |
| | | name: '系统电压', |
| | | color: '#F2535F', |
| | | value: 0, |
| | | unit: 'V', |
| | | max: 480, |
| | | }, |
| | | { |
| | | id: 'volCurrACVol', |
| | | key: 'insulatAcVol', |
| | | name: '交流电压', |
| | | color: '#4AFD88', |
| | | value: 0, |
| | | unit: 'V', |
| | | max: 480, |
| | | }, |
| | | ], |
| | | middle: [ |
| | | { |
| | | id: 'posFloorVol', |
| | | key: 'insulatGroundVol', |
| | | name: '正对地电压', |
| | | color: '#DCFD00', |
| | | value: 0, |
| | | unit: 'V', |
| | | max: 480, |
| | | }, |
| | | { |
| | | id: 'nesFloorVol', |
| | | key: 'insulatNegativeVol', |
| | | name: '负对地电压', |
| | | color: '#FA62E8', |
| | | value: 0, |
| | | unit: 'V', |
| | | max: 480, |
| | | }, |
| | | ], |
| | | bottom: [ |
| | | { |
| | | id: 'posFloorRes', |
| | | key: 'insulatGroundRes', |
| | | name: '正对地电阻', |
| | | color: '#F1E287', |
| | | value: 0, |
| | | unit: 'kΩ', |
| | | max: 50, |
| | | }, |
| | | { |
| | | id: 'NesFloorRes', |
| | | key: 'insulatNegativeRes', |
| | | name: '负对地电阻', |
| | | color: '#00FEFF', |
| | | value: 0, |
| | | unit: 'KΩ', |
| | | max: 50, |
| | | }, |
| | | ] |
| | | }, |
| | | batteryRes: { |
| | | name: '负对地电阻', |
| | | key: 'insulatBattRes', |
| | | color: '#00FEFF', |
| | | value: 0, |
| | | unit: 'KΩ', |
| | | max: 50, |
| | | }, |
| | | resLine: { |
| | | tooltip: { |
| | | show: false |
| | | props: { |
| | | name: { |
| | | type: String, |
| | | default: "" |
| | | }, |
| | | xAxis: [{ |
| | | type: 'category', |
| | | boundaryGap: 0, |
| | | axisLine: { |
| | | onZero: false, |
| | | lineStyle: { |
| | | color: resLineConfig.axisLineColor, |
| | | type: resLineConfig.axisLineType, |
| | | }, |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | | }, |
| | | axisLabel: { |
| | | color: resLineConfig.axisLabelColor, |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: resLineConfig.axisLineColor, |
| | | type: resLineConfig.axisLineType, |
| | | }, |
| | | }, |
| | | }], |
| | | yAxis: [{ |
| | | type: 'value', |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: resLineConfig.axisLineColor, |
| | | type: resLineConfig.axisLineType, |
| | | }, |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | | }, |
| | | axisLabel: { |
| | | color: resLineConfig.axisLabelColor, |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: resLineConfig.axisLineColor, |
| | | type: resLineConfig.axisLineType, |
| | | }, |
| | | }, |
| | | max: function (data) { |
| | | let max = data.max; |
| | | if (max == -Infinity) { |
| | | return 1; |
| | | info: { |
| | | type: Object, |
| | | default() { |
| | | return {} |
| | | } |
| | | return Math.ceil(max * 1.01); |
| | | } |
| | | }], |
| | | series: [ |
| | | { |
| | | name: '绝缘监测模块支路正对地电阻', |
| | | smooth: false, |
| | | symbol: 'circle', |
| | | symbolSize: 8, |
| | | data: [ |
| | | ['模块1', 0], |
| | | ['模块2', 0], |
| | | ['模块3', 0], |
| | | ['模块4', 0], |
| | | ['模块5', 0], |
| | | ['模块6', 0], |
| | | ['模块7', 0], |
| | | ['模块8', 0], |
| | | ['模块9', 0], |
| | | ['模块10', 0], |
| | | ['模块11', 0], |
| | | ['模块12', 0], |
| | | ['模块13', 0], |
| | | ['模块14', 0], |
| | | ['模块15', 0], |
| | | ['模块16', 0], |
| | | ], |
| | | itemStyle: { |
| | | normal: { |
| | | color: resLineConfig.line1Color |
| | | }, |
| | | }, |
| | | lineStyle: { |
| | | color: resLineConfig.line1Color, |
| | | type: resLineConfig.lineType |
| | | } |
| | | }, |
| | | { |
| | | name: '绝缘监测模块支路负对地电阻', |
| | | smooth: false, |
| | | symbol: 'circle', |
| | | symbolSize: 8, |
| | | data: [ |
| | | ['模块1', 0], |
| | | ['模块2', 0], |
| | | ['模块3', 0], |
| | | ['模块4', ], |
| | | ['模块5', 0], |
| | | ['模块6', 0], |
| | | ['模块7', 0], |
| | | ['模块8', 0], |
| | | ['模块9', 0], |
| | | ['模块10', 0], |
| | | ['模块11', 0], |
| | | ['模块12', 0], |
| | | ['模块13', 0], |
| | | ['模块14', 0], |
| | | ['模块15', 0], |
| | | ['模块16', 0], |
| | | ], |
| | | itemStyle: { |
| | | normal: { |
| | | color: resLineConfig.line2Color, |
| | | }, |
| | | }, |
| | | lineStyle: { |
| | | color: resLineConfig.line2Color, |
| | | type: resLineConfig.lineType |
| | | } |
| | | }, |
| | | ] |
| | | }, |
| | | } |
| | | }, |
| | | methods: { |
| | | // 绝缘装置图表重置大小 |
| | | resize() { |
| | | this.$nextTick(() => { |
| | | this.$refs.resLine.resize(); |
| | | this.$refs.batteryRes.resize(); |
| | | // 重置大小 |
| | | for (let key in this.volCurr) { |
| | | this.volCurr[key].map(item => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | setInfo() { |
| | | // 设置branchNumber |
| | | this.setBranchNumber(); |
| | | // 设置systemState |
| | | this.setSystemState(); |
| | | // 设置volCurr |
| | | this.setVolCurr(); |
| | | // 设置batteryRes |
| | | this.batteryRes.value = getValByKey(this.batteryRes.key, this.info, 0); |
| | | // 设置resLine |
| | | this.setResLine(); |
| | | watch: { |
| | | "$store.state.theme.collapse"() { |
| | | this.$nextTick(() => { |
| | | this.resize(); |
| | | }); |
| | | }, |
| | | name() { |
| | | this.setInfo(); |
| | | }, |
| | | info() { |
| | | this.setInfo(); |
| | | } |
| | | }, |
| | | // 设置branchNumber |
| | | setBranchNumber() { |
| | | let info = this.info; |
| | | this.branchNumber.map(item=>{ |
| | | item.value = getValByKey(item.key, info, "???"); |
| | | }); |
| | | data() { |
| | | let resLineConfig = { |
| | | axisLineColor: "#125984", |
| | | axisLineType: 'dashed', |
| | | axisLabelColor: '#fff', |
| | | line1Color: "#90ED7D", |
| | | line2Color: '#F69F41', |
| | | lineType: 'dashed', |
| | | }; |
| | | return { |
| | | branchNumber: [ |
| | | {key: 'insulatBranchNum1', name: '模块1', value: '???'}, |
| | | {key: 'insulatBranchNum2', name: '模块2', value: '???'}, |
| | | {key: 'insulatBranchNum3', name: '模块3', value: '???'}, |
| | | {key: 'insulatBranchNum4', name: '模块4', value: '???'}, |
| | | {key: 'insulatBranchNum5', name: '模块5', value: '???'}, |
| | | {key: 'insulatBranchNum6', name: '模块6', value: '???'}, |
| | | {key: 'insulatBranchNum7', name: '模块7', value: '???'}, |
| | | {key: 'insulatBranchNum8', name: '模块8', value: '???'}, |
| | | {key: 'insulatBranchNum9', name: '模块9', value: '???'}, |
| | | {key: 'insulatBranchNum10', name: '模块10', value: '???'}, |
| | | {key: 'insulatBranchNum11', name: '模块11', value: '???'}, |
| | | {key: 'insulatBranchNum12', name: '模块12', value: '???'}, |
| | | {key: 'insulatBranchNum13', name: '模块13', value: '???'}, |
| | | {key: 'insulatBranchNum14', name: '模块14', value: '???'}, |
| | | {key: 'insulatBranchNum15', name: '模块15', value: '???'}, |
| | | {key: 'insulatBranchNum16', name: '模块16', value: '???'}, |
| | | ], |
| | | systemState: [ |
| | | {key: 'insulatRecordState', name: '瞬时记录状态', value: 0}, |
| | | {key: 'insulatSystemState', name: '系统状态', value: 0}, |
| | | {key: 'insulatState', name: '装置状态', value: 0}, |
| | | ], |
| | | volCurr: { |
| | | top: [ |
| | | { |
| | | id: 'systemVol', |
| | | key: 'insulatSystemVol', |
| | | name: '系统电压', |
| | | color: '#F2535F', |
| | | value: 0, |
| | | unit: 'V', |
| | | max: 480, |
| | | }, |
| | | { |
| | | id: 'volCurrACVol', |
| | | key: 'insulatAcVol', |
| | | name: '交流电压', |
| | | color: '#4AFD88', |
| | | value: 0, |
| | | unit: 'V', |
| | | max: 480, |
| | | }, |
| | | ], |
| | | middle: [ |
| | | { |
| | | id: 'posFloorVol', |
| | | key: 'insulatGroundVol', |
| | | name: '正对地电压', |
| | | color: '#DCFD00', |
| | | value: 0, |
| | | unit: 'V', |
| | | max: 480, |
| | | }, |
| | | { |
| | | id: 'nesFloorVol', |
| | | key: 'insulatNegativeVol', |
| | | name: '负对地电压', |
| | | color: '#FA62E8', |
| | | value: 0, |
| | | unit: 'V', |
| | | max: 480, |
| | | }, |
| | | ], |
| | | bottom: [ |
| | | { |
| | | id: 'posFloorRes', |
| | | key: 'insulatGroundRes', |
| | | name: '正对地电阻', |
| | | color: '#F1E287', |
| | | value: 0, |
| | | unit: 'kΩ', |
| | | max: 50, |
| | | }, |
| | | { |
| | | id: 'NesFloorRes', |
| | | key: 'insulatNegativeRes', |
| | | name: '负对地电阻', |
| | | color: '#00FEFF', |
| | | value: 0, |
| | | unit: 'KΩ', |
| | | max: 50, |
| | | }, |
| | | ] |
| | | }, |
| | | batteryRes: { |
| | | name: '负对地电阻', |
| | | key: 'insulatBattRes', |
| | | color: '#00FEFF', |
| | | value: 0, |
| | | unit: 'KΩ', |
| | | max: 50, |
| | | }, |
| | | resLine: { |
| | | xAxis: [{ |
| | | type: 'category', |
| | | boundaryGap: 0, |
| | | axisLine: { |
| | | onZero: false, |
| | | lineStyle: { |
| | | color: resLineConfig.axisLineColor, |
| | | type: resLineConfig.axisLineType, |
| | | }, |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | | }, |
| | | axisLabel: { |
| | | color: resLineConfig.axisLabelColor, |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: resLineConfig.axisLineColor, |
| | | type: resLineConfig.axisLineType, |
| | | }, |
| | | }, |
| | | }], |
| | | yAxis: [{ |
| | | type: 'value', |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: resLineConfig.axisLineColor, |
| | | type: resLineConfig.axisLineType, |
| | | }, |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | | }, |
| | | axisLabel: { |
| | | color: resLineConfig.axisLabelColor, |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: resLineConfig.axisLineColor, |
| | | type: resLineConfig.axisLineType, |
| | | }, |
| | | }, |
| | | max: function (data) { |
| | | let max = data.max; |
| | | if (max == -Infinity) { |
| | | return 1; |
| | | } |
| | | return Math.ceil(max * 1.01); |
| | | } |
| | | }], |
| | | series: [ |
| | | { |
| | | name: '支路正对地电阻', |
| | | smooth: false, |
| | | symbol: 'circle', |
| | | symbolSize: 8, |
| | | data: [ |
| | | ['模块1', 0], |
| | | ['模块2', 0], |
| | | ['模块3', 0], |
| | | ['模块4', 0], |
| | | ['模块5', 0], |
| | | ['模块6', 0], |
| | | ['模块7', 0], |
| | | ['模块8', 0], |
| | | ['模块9', 0], |
| | | ['模块10', 0], |
| | | ['模块11', 0], |
| | | ['模块12', 0], |
| | | ['模块13', 0], |
| | | ['模块14', 0], |
| | | ['模块15', 0], |
| | | ['模块16', 0], |
| | | ], |
| | | itemStyle: { |
| | | normal: { |
| | | color: resLineConfig.line1Color |
| | | }, |
| | | }, |
| | | lineStyle: { |
| | | color: resLineConfig.line1Color, |
| | | type: resLineConfig.lineType |
| | | } |
| | | }, |
| | | { |
| | | name: '支路负对地电阻', |
| | | smooth: false, |
| | | symbol: 'circle', |
| | | symbolSize: 8, |
| | | data: [ |
| | | ['模块1', 0], |
| | | ['模块2', 0], |
| | | ['模块3', 0], |
| | | ['模块4',], |
| | | ['模块5', 0], |
| | | ['模块6', 0], |
| | | ['模块7', 0], |
| | | ['模块8', 0], |
| | | ['模块9', 0], |
| | | ['模块10', 0], |
| | | ['模块11', 0], |
| | | ['模块12', 0], |
| | | ['模块13', 0], |
| | | ['模块14', 0], |
| | | ['模块15', 0], |
| | | ['模块16', 0], |
| | | ], |
| | | itemStyle: { |
| | | normal: { |
| | | color: resLineConfig.line2Color, |
| | | }, |
| | | }, |
| | | lineStyle: { |
| | | color: resLineConfig.line2Color, |
| | | type: resLineConfig.lineType |
| | | } |
| | | }, |
| | | ] |
| | | }, |
| | | insInfo: [ |
| | | { |
| | | name: '平衡桥', |
| | | count: Math.pow(2, 0), |
| | | value: 0 |
| | | }, |
| | | { |
| | | name: '检测桥', |
| | | count: Math.pow(2, 1), |
| | | value: 0 |
| | | }, |
| | | { |
| | | name: '采集器通讯', |
| | | count: Math.pow(2, 2), |
| | | value: 0 |
| | | }, |
| | | { |
| | | name: '电流', |
| | | count: Math.pow(2, 3), |
| | | value: 0 |
| | | }, |
| | | ], |
| | | systemInfo1: [ |
| | | { |
| | | name: '绝缘下降', |
| | | count: Math.pow(2, 0), |
| | | normal: '无', |
| | | error: '有', |
| | | value: 0 |
| | | }, |
| | | { |
| | | name: '电压', |
| | | count: Math.pow(2, 1), |
| | | normal: '无偏', |
| | | error: '有偏', |
| | | value: 0 |
| | | }, |
| | | { |
| | | name: '电池绝缘下降', |
| | | count: Math.pow(2, 2), |
| | | normal: '无', |
| | | error: '有', |
| | | value: 0 |
| | | }, |
| | | { |
| | | name: '电压越线', |
| | | count: Math.pow(2, 3), |
| | | normal: '无', |
| | | error: '有', |
| | | value: 0 |
| | | }, |
| | | ], |
| | | systemInfo2: [ |
| | | { |
| | | name: '接地故障', |
| | | count: Math.pow(2, 4), |
| | | normal: '无', |
| | | error: '有', |
| | | value: 0 |
| | | }, |
| | | { |
| | | name: '直流互窜', |
| | | count: Math.pow(2, 5), |
| | | normal: '无', |
| | | error: '有', |
| | | value: 0 |
| | | }, |
| | | { |
| | | name: '交流窜入', |
| | | count: Math.pow(2, 6), |
| | | normal: '无', |
| | | error: '有', |
| | | value: 0 |
| | | }, |
| | | { |
| | | name: '电池接地', |
| | | count: Math.pow(2, 7), |
| | | normal: '无', |
| | | error: '有', |
| | | value: 0 |
| | | }, |
| | | ], |
| | | insRecord: [ |
| | | { |
| | | name: '新增瞬时记录', |
| | | count: Math.pow(2, 0), |
| | | value: 0 |
| | | } |
| | | ], |
| | | } |
| | | }, |
| | | // 设置systemState |
| | | setSystemState() { |
| | | let info = this.info; |
| | | this.systemState.map(item=>{ |
| | | item.value = getValByKey(item.key, info, -1); |
| | | }); |
| | | }, |
| | | // 设置volCurr |
| | | setVolCurr() { |
| | | let info = this.info; |
| | | this.volCurr.top.map(item=>{ |
| | | item.value = getValByKey(item.key, info, 0); |
| | | }); |
| | | this.volCurr.middle.map(item=>{ |
| | | item.value = getValByKey(item.key, info, 0); |
| | | }); |
| | | this.volCurr.bottom.map(item=>{ |
| | | item.value = getValByKey(item.key, info, 0); |
| | | }); |
| | | }, |
| | | // 设置resLine |
| | | setResLine() { |
| | | let info = this.info; |
| | | let pos = this.getPosRes(); |
| | | let posList = pos.map(item=>{ |
| | | let value = getValByKey(item.key, info, 0); |
| | | return [item.name, value]; |
| | | }); |
| | | methods: { |
| | | // 绝缘装置图表重置大小 |
| | | resize() { |
| | | setTimeout(() =>{ |
| | | this.$nextTick(() => { |
| | | // 重置大小 |
| | | for (let key in this.volCurr) { |
| | | this.volCurr[key].map(item => { |
| | | this.$refs[item.id][0].resize(); |
| | | }); |
| | | } |
| | | this.$refs.resLine.resize(); |
| | | this.$refs.batteryRes.resize(); |
| | | }); |
| | | }, 300); |
| | | |
| | | let neg = this.getNegRes(); |
| | | let negList = neg.map(item=>{ |
| | | let value = getValByKey(item.key, info, 0); |
| | | return [item.name, value]; |
| | | }); |
| | | this.resLine.series[0].data = posList; |
| | | this.resLine.series[1].data = negList; |
| | | this.$refs.resLine.setOption(this.resLine); |
| | | }, |
| | | setInfo() { |
| | | // 设置branchNumber |
| | | this.setBranchNumber(); |
| | | // 设置systemState |
| | | //this.setSystemState(); |
| | | // 设置insRecord |
| | | this.setInsRecord(); |
| | | // 设置batteryInfo |
| | | this.setInsInfo(); |
| | | // 设置系统状态 |
| | | this.setSystemInfo(); |
| | | // 设置volCurr |
| | | this.setVolCurr(); |
| | | // 设置batteryRes |
| | | this.batteryRes.value = getValByKey(this.batteryRes.key, this.info, 0); |
| | | // 设置resLine |
| | | this.setResLine(); |
| | | }, |
| | | // 设置branchNumber |
| | | setBranchNumber() { |
| | | let info = this.info; |
| | | this.branchNumber.map(item => { |
| | | item.value = getValByKey(item.key, info, "???"); |
| | | }); |
| | | }, |
| | | // 设置systemState |
| | | setSystemState() { |
| | | let info = this.info; |
| | | this.systemState.map(item => { |
| | | item.value = getValByKey(item.key, info, -1); |
| | | }); |
| | | }, |
| | | // 设置volCurr |
| | | setVolCurr() { |
| | | let info = this.info; |
| | | this.volCurr.top.map(item => { |
| | | item.value = getValByKey(item.key, info, 0); |
| | | }); |
| | | this.volCurr.middle.map(item => { |
| | | item.value = getValByKey(item.key, info, 0); |
| | | }); |
| | | this.volCurr.bottom.map(item => { |
| | | item.value = getValByKey(item.key, info, 0); |
| | | }); |
| | | }, |
| | | // 设置resLine |
| | | setResLine() { |
| | | let info = this.info; |
| | | let pos = this.getPosRes(); |
| | | let posList = pos.map(item => { |
| | | let value = getValByKey(item.key, info, 0); |
| | | return [item.name, value]; |
| | | }); |
| | | |
| | | let neg = this.getNegRes(); |
| | | let negList = neg.map(item => { |
| | | let value = getValByKey(item.key, info, 0); |
| | | return [item.name, value]; |
| | | }); |
| | | this.resLine.series[0].data = posList; |
| | | this.resLine.series[1].data = negList; |
| | | this.$refs.resLine.setOption(this.resLine); |
| | | }, |
| | | getPosRes() { |
| | | return [ |
| | | {key: 'insulatBranchResIs1', name: "模块1", value: 0}, |
| | | {key: 'insulatBranchResIs2', name: "模块2", value: 0}, |
| | | {key: 'insulatBranchResIs3', name: "模块3", value: 0}, |
| | | {key: 'insulatBranchResIs4', name: "模块4", value: 0}, |
| | | {key: 'insulatBranchResIs5', name: "模块5", value: 0}, |
| | | {key: 'insulatBranchResIs6', name: "模块6", value: 0}, |
| | | {key: 'insulatBranchResIs7', name: "模块7", value: 0}, |
| | | {key: 'insulatBranchResIs8', name: "模块8", value: 0}, |
| | | {key: 'insulatBranchResIs9', name: "模块9", value: 0}, |
| | | {key: 'insulatBranchResIs10', name: "模块10", value: 0}, |
| | | {key: 'insulatBranchResIs11', name: "模块11", value: 0}, |
| | | {key: 'insulatBranchResIs12', name: "模块12", value: 0}, |
| | | {key: 'insulatBranchResIs13', name: "模块13", value: 0}, |
| | | {key: 'insulatBranchResIs14', name: "模块14", value: 0}, |
| | | {key: 'insulatBranchResIs15', name: "模块15", value: 0}, |
| | | {key: 'insulatBranchResIs16', name: "模块16", value: 0}, |
| | | ] |
| | | }, |
| | | getNegRes() { |
| | | return [ |
| | | {key: 'insulatBranchResNe1', name: "模块1", value: 0}, |
| | | {key: 'insulatBranchResNe2', name: "模块2", value: 0}, |
| | | {key: 'insulatBranchResNe3', name: "模块3", value: 0}, |
| | | {key: 'insulatBranchResNe4', name: "模块4", value: 0}, |
| | | {key: 'insulatBranchResNe5', name: "模块5", value: 0}, |
| | | {key: 'insulatBranchResNe6', name: "模块6", value: 0}, |
| | | {key: 'insulatBranchResNe7', name: "模块7", value: 0}, |
| | | {key: 'insulatBranchResNe8', name: "模块8", value: 0}, |
| | | {key: 'insulatBranchResNe9', name: "模块9", value: 0}, |
| | | {key: 'insulatBranchResNe10', name: "模块10", value: 0}, |
| | | {key: 'insulatBranchResNe11', name: "模块11", value: 0}, |
| | | {key: 'insulatBranchResNe12', name: "模块12", value: 0}, |
| | | {key: 'insulatBranchResNe13', name: "模块13", value: 0}, |
| | | {key: 'insulatBranchResNe14', name: "模块14", value: 0}, |
| | | {key: 'insulatBranchResNe15', name: "模块15", value: 0}, |
| | | {key: 'insulatBranchResNe16', name: "模块16", value: 0}, |
| | | ] |
| | | }, |
| | | // 设置瞬时记录 |
| | | setInsRecord() { |
| | | let key = "insulatRecordState"; |
| | | let info = this.info; |
| | | let value = getValByKey(key, info, 0); |
| | | |
| | | this.insRecord.map(item=>{ |
| | | item.value = value&item.count; |
| | | }); |
| | | }, |
| | | // 设置装置状态 |
| | | setInsInfo() { |
| | | let key = "insulatState"; |
| | | let info = this.info; |
| | | let value = getValByKey(key, info, 0); |
| | | this.insInfo.map(item=>{ |
| | | item.value = value&item.count; |
| | | }); |
| | | }, |
| | | // 设置系统状态 |
| | | setSystemInfo() { |
| | | let key = "insulatState"; |
| | | let info = this.info; |
| | | let value = getValByKey(key, info, 0); |
| | | this.systemInfo1.map(item=>{ |
| | | item.value = value&item.count; |
| | | }); |
| | | this.systemInfo2.map(item=>{ |
| | | item.value = value&item.count; |
| | | }); |
| | | } |
| | | }, |
| | | getPosRes() { |
| | | return [ |
| | | {key: 'insulatBranchResIs1', name: "模块1", value: 0}, |
| | | {key: 'insulatBranchResIs2', name: "模块2", value: 0}, |
| | | {key: 'insulatBranchResIs3', name: "模块3", value: 0}, |
| | | {key: 'insulatBranchResIs4', name: "模块4", value: 0}, |
| | | {key: 'insulatBranchResIs5', name: "模块5", value: 0}, |
| | | {key: 'insulatBranchResIs6', name: "模块6", value: 0}, |
| | | {key: 'insulatBranchResIs7', name: "模块7", value: 0}, |
| | | {key: 'insulatBranchResIs8', name: "模块8", value: 0}, |
| | | {key: 'insulatBranchResIs9', name: "模块9", value: 0}, |
| | | {key: 'insulatBranchResIs10', name: "模块10", value: 0}, |
| | | {key: 'insulatBranchResIs11', name: "模块11", value: 0}, |
| | | {key: 'insulatBranchResIs12', name: "模块12", value: 0}, |
| | | {key: 'insulatBranchResIs13', name: "模块13", value: 0}, |
| | | {key: 'insulatBranchResIs14', name: "模块14", value: 0}, |
| | | {key: 'insulatBranchResIs15', name: "模块15", value: 0}, |
| | | {key: 'insulatBranchResIs16', name: "模块16", value: 0}, |
| | | ] |
| | | computed: { |
| | | updateTime() { |
| | | let recordTime = this.info.recordTime; |
| | | return recordTime ? recordTime : "2020-01-01 00:00:00"; |
| | | }, |
| | | batteryNumber() { |
| | | let number = this.info.insulatFaultNum; |
| | | return number ? number : 0; |
| | | } |
| | | }, |
| | | getNegRes() { |
| | | return [ |
| | | {key: 'insulatBranchResNe1', name: "模块1", value: 0}, |
| | | {key: 'insulatBranchResNe2', name: "模块2", value: 0}, |
| | | {key: 'insulatBranchResNe3', name: "模块3", value: 0}, |
| | | {key: 'insulatBranchResNe4', name: "模块4", value: 0}, |
| | | {key: 'insulatBranchResNe5', name: "模块5", value: 0}, |
| | | {key: 'insulatBranchResNe6', name: "模块6", value: 0}, |
| | | {key: 'insulatBranchResNe7', name: "模块7", value: 0}, |
| | | {key: 'insulatBranchResNe8', name: "模块8", value: 0}, |
| | | {key: 'insulatBranchResNe9', name: "模块9", value: 0}, |
| | | {key: 'insulatBranchResNe10', name: "模块10", value: 0}, |
| | | {key: 'insulatBranchResNe11', name: "模块11", value: 0}, |
| | | {key: 'insulatBranchResNe12', name: "模块12", value: 0}, |
| | | {key: 'insulatBranchResNe13', name: "模块13", value: 0}, |
| | | {key: 'insulatBranchResNe14', name: "模块14", value: 0}, |
| | | {key: 'insulatBranchResNe15', name: "模块15", value: 0}, |
| | | {key: 'insulatBranchResNe16', name: "模块16", value: 0}, |
| | | ] |
| | | mounted() { |
| | | // 设置支路内阻折线图 |
| | | this.setResLine(); |
| | | this.resize(); |
| | | // 添加resize监听事件 |
| | | window.addEventListener('resize', this.resize); |
| | | }, |
| | | destroyed() { |
| | | // 移除resize监听事件 |
| | | window.removeEventListener('resize', this.resize); |
| | | } |
| | | }, |
| | | computed: { |
| | | updateTime() { |
| | | let recordTime = this.info.recordTime; |
| | | return recordTime?recordTime:"2020-01-01 00:00:00"; |
| | | }, |
| | | batteryNumber() { |
| | | let number = this.info.insulatFaultNum; |
| | | return number?number:0; |
| | | } |
| | | }, |
| | | mounted() { |
| | | // 设置支路内阻折线图 |
| | | this.setResLine(); |
| | | this.resize(); |
| | | // 添加resize监听事件 |
| | | window.addEventListener('resize', this.resize); |
| | | }, |
| | | destroyed() { |
| | | // 移除resize监听事件 |
| | | window.removeEventListener('resize', this.resize); |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .content-container { |
| | | display: flex; |
| | | height: 100%; |
| | | display: flex; |
| | | height: 100%; |
| | | } |
| | | |
| | | .content-wrapper { |
| | | height: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .content-wrapper-main { |
| | | flex: 1; |
| | | flex: 1; |
| | | } |
| | | |
| | | .content-wrapper.content-wrapper-w360 { |
| | | width: 360px; |
| | | width: 360px; |
| | | } |
| | | |
| | | .content-wrapper-w450 { |
| | | width: 450px; |
| | | width: 450px; |
| | | } |
| | | |
| | | .h50-percent { |
| | | box-sizing: border-box; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .padding0880 { |
| | | box-sizing: border-box; |
| | | padding: 0 8px 8px 0; |
| | | box-sizing: border-box; |
| | | padding: 0 8px 8px 0; |
| | | } |
| | | |
| | | .padding0888 { |
| | | box-sizing: border-box; |
| | | padding: 0 8px 8px 8px; |
| | | box-sizing: border-box; |
| | | padding: 0 8px 8px 8px; |
| | | } |
| | | |
| | | .padding0088 { |
| | | box-sizing: border-box; |
| | | padding: 0 0 8px 8px; |
| | | box-sizing: border-box; |
| | | padding: 0 0 8px 8px; |
| | | } |
| | | |
| | | .circle-pie-chart-container { |
| | | height: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .circle-pie-chart-wrapper { |
| | | display: inline-block; |
| | | width: 120px; |
| | | height: 120px; |
| | | vertical-align: middle; |
| | | display: inline-block; |
| | | width: 120px; |
| | | height: 120px; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .circle-pie-chart-text { |
| | | display: inline-block; |
| | | font-size: 14px; |
| | | vertical-align: middle; |
| | | display: inline-block; |
| | | font-size: 14px; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .center-content { |
| | | display: flex; |
| | | height: 100%; |
| | | justify-content: center; |
| | | align-items: center; |
| | | display: flex; |
| | | height: 100%; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | |
| | | .flex-box-content { |
| | | display: flex; |
| | | height: 50%; |
| | | justify-content: center; |
| | | align-items: center; |
| | | display: flex; |
| | | height: 50%; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | |
| | | .battery-info { |
| | | text-align: left; |
| | | display: inline-block; |
| | | display: flex; |
| | | align-items:center; |
| | | justify-content:center; |
| | | height: 100%; |
| | | } |
| | | |
| | | .battery-info-wrapper { |
| | | text-align: center; |
| | | } |
| | | .battery-icon-wrapper { |
| | | display: inline-block; |
| | | padding: 8px; |
| | | border-radius: 50%; |
| | | display: inline-block; |
| | | border-radius: 50%; |
| | | } |
| | | |
| | | .battery-icon i { |
| | | font-size: 88px; |
| | | color: transparent; |
| | | background: linear-gradient(to right, #ff9184, #ff3761); |
| | | -webkit-background-clip: text; |
| | | } |
| | | |
| | | .battery-text-wrapper { |
| | | display: inline-block; |
| | | font-size: 88px; |
| | | color: transparent; |
| | | background: linear-gradient(to right, #ff9184, #ff3761); |
| | | -webkit-background-clip: text; |
| | | } |
| | | |
| | | .text-content { |
| | | font-size: 14px; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .text-value { |
| | | font-size: 24px; |
| | | color: #ff3761; |
| | | font-size: 24px; |
| | | color: #ff3761; |
| | | } |
| | | .battery-res-pie-wrapper { |
| | | display: inline-block; |
| | | width: 88px; |
| | | height: 88px; |
| | | } |
| | | </style> |
| | |
| | | } |
| | | clear() { |
| | | let ctx = this.context; |
| | | ctx.clearRect(0, 0, this.width, this.width); |
| | | ctx.clearRect(0, 0, this.width, this.height); |
| | | } |
| | | resize() { |
| | | let el = this.el; |
| | |
| | | } |
| | | } else if (regEquipType(devId, 'BTS9120')) { // 交流电网 |
| | | rs = "grid"; |
| | | } else if (regEquipType(devId, "BTS9605")) { |
| | | } else if (regEquipType(devId, ["BTS9605", "BTS9611"])) { |
| | | rs = "collect"; |
| | | } |
| | | return rs; |
| | |
| | | dev_id: batt.FBSDeviceId, |
| | | }).then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | //console.log(rs); |
| | | console.log(rs); |
| | | let outTime = 2 * 60; //设备超时时间(2分钟) |
| | | let isOutTime = true; //通讯中断 判断设备是否通讯中断 true:中断 false:正常 |
| | | if (rs.code == 1) { |
| | |
| | | this.setEquip61850(data); |
| | | } else if (regEquipType(dev_id, ["BTS", "BTS9110", "BTS9120"])) { |
| | | this.setEquipBTS(data); |
| | | } else if (regEquipType(dev_id, "BTS9605")) { |
| | | } else if (regEquipType(dev_id, ["BTS9605","BTS9611"])) { |
| | | this.setEquip9605(data); |
| | | } else { |
| | | this.disconnect(); |
| | |
| | | let batt = this.batt; |
| | | if (regEquipType(batt.FBSDeviceId, "equip61850")) { |
| | | return "放电参数设置"; |
| | | } else if ( |
| | | regEquipType(batt.FBSDeviceId, ["BTS", "BTS9110", "BTS9120", "BTS9605"]) |
| | | ) { |
| | | } else if (regEquipType(batt.FBSDeviceId, ["BTS", "BTS9110", "BTS9120", "BTS9605"])) { |
| | | return "BTS设备放电参数设置"; |
| | | } else { |
| | | }else if(regEquipType(batt.FBSDeviceId, ["BTS9611", "BTS9605"])){ |
| | | return "内阻测试"; |
| | | } else { |
| | | return "未知设备(待开发)"; |
| | | } |
| | | }, |