<template>
|
<!-- <title>核容测试</title> -->
|
<flex-layout>
|
<div class="table-layout filter-box-table" slot="header">
|
<div class="table-row">
|
<!-- 省 -->
|
<div class="table-cell text-right">机房名称:</div>
|
<div class="table-cell">
|
<el-select
|
v-model="params.devId"
|
size="small"
|
@change="sendMessage"
|
placeholder="请选择机房名称"
|
>
|
<el-option
|
v-for="item in stationNameList"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
>
|
</el-option>
|
</el-select>
|
</div>
|
<!-- 事件类型 -->
|
<div class="table-cell text-right">设备工作状态:</div>
|
<div class="table-cell">
|
<el-select
|
ref="selecetEvent"
|
v-model="params.devWorkstate"
|
@change="sendMessage"
|
size="small"
|
placeholder="请选择设备工作状态"
|
>
|
<el-option label="全部(共6种)" :value="-1"></el-option>
|
<el-option label="在线浮充" :value="0"></el-option>
|
<el-option label="预充电(限流充电)" :value="1"></el-option>
|
<el-option label="核容测试" :value="2"></el-option>
|
<el-option label="停电放电" :value="3"></el-option>
|
<el-option label="内阻测试" :value="4"></el-option>
|
<el-option label="K1/D1测试" :value="5"></el-option>
|
</el-select>
|
</div>
|
</div>
|
</div>
|
<div class="flex-page-content">
|
<!-- 表单 -->
|
<el-table
|
stripe
|
size="small"
|
:data="dataList"
|
height="100%"
|
class="tableCent"
|
>
|
<el-table-column
|
prop="stationName"
|
align="center"
|
label="机房名称"
|
min-width="360"
|
></el-table-column>
|
<!-- <el-table-column prop="devId" align="center" label="设备ID"></el-table-column>-->
|
<!-- <el-table-column prop="deviceName" align="center" label="设备名称"></el-table-column>-->
|
<el-table-column
|
prop="deviceStatus"
|
align="center"
|
label="设备状态"
|
></el-table-column>
|
<!-- workstate[_data.devWorkstate] -->
|
<el-table-column
|
prop="devCaptestOnlinevol"
|
align="center"
|
min-width="120"
|
label="在线电压(V)"
|
></el-table-column>
|
<el-table-column
|
prop="devCaptestGroupvol"
|
align="center"
|
min-width="120"
|
label="组端电压(V)"
|
></el-table-column>
|
<el-table-column
|
prop="devCaptestCurr"
|
align="center"
|
min-width="120"
|
label="组端电流(A)"
|
></el-table-column>
|
<el-table-column
|
prop="devTemp"
|
align="center"
|
min-width="120"
|
label="设备温度(℃)"
|
></el-table-column>
|
<el-table-column
|
prop="devCaptestCap"
|
align="center"
|
min-width="120"
|
label="已测容量(AH)"
|
></el-table-column>
|
<el-table-column
|
prop="dev61850Alarms"
|
align="center"
|
label="设备告警"
|
></el-table-column>
|
<el-table-column
|
prop="dateLong"
|
align="center"
|
label="已测时间"
|
></el-table-column>
|
<el-table-column
|
prop="cztime"
|
fixed="right"
|
width="180px"
|
align="center"
|
label="操作"
|
>
|
<template slot-scope="scope">
|
<el-button type="primary" size="mini" @click="goRealTime(scope.row)"
|
>实时</el-button
|
>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
<!-- 底部 -->
|
<div class="flex-page-footer" slot="footer"></div>
|
</flex-layout>
|
</template>
|
<script>
|
import { const_61850 } from "@/assets/js/const";
|
import { formatSeconds, getQueryString, Timeout } from "@/assets/js/tools";
|
import { UserBattgroup } from "./js/btsStatus";
|
import { getBattGroupIdByDevId } from "@/assets/js/api";
|
import createWs from "@/assets/js/websocket";
|
const WSMixin = createWs("deviceWorkState");
|
const uId = sessionStorage.getItem("userId") * 1;
|
|
import const_digit from "@/assets/js/const/const_digit";
|
const {
|
cap: CAP,
|
vol: VOL,
|
curr: CURR,
|
res: RES,
|
conduct: CONDUCT,
|
temp: TEMP,
|
hum: HUM,
|
} = const_digit;
|
|
export default {
|
name: "btsStatus",
|
mixins: [WSMixin],
|
data() {
|
let devWorkstate = getQueryString("workStauts");
|
return {
|
pageCurr: 1,
|
pageSize: 10,
|
pageAll: 0,
|
devId: 0,
|
stationNameList: [],
|
dataList: [],
|
// timer: new Timeout("btsStatusTest"),
|
params: {
|
devId: 0,
|
devWorkstate: devWorkstate ? devWorkstate * 1 : -1,
|
note: uId,
|
},
|
};
|
},
|
created() {
|
this.queryStationName();
|
},
|
mounted() {
|
let status = this.$route.query.status;
|
if (status) {
|
this.params.devWorkstate = status * 1;
|
}
|
},
|
methods: {
|
createSearch(data) {
|
return (
|
"?province=" +
|
data.stationName1 +
|
"&city=" +
|
data.stationName2 +
|
"&county=" +
|
data.stationName5 +
|
"&home=" +
|
data.stationName3
|
);
|
},
|
async goRealTime(data) {
|
let battGroupId = await this.getBattGroupIdByDevId(data.devId);
|
let search = this.createSearch(data.stationNameObj);
|
if (battGroupId) {
|
search += "&batt=" + battGroupId;
|
}
|
this.$router.push(
|
"/dataTest/movingRingSystem" + search + "&listReload=1"
|
);
|
},
|
getBattGroupIdByDevId(devId) {
|
return getBattGroupIdByDevId(devId)
|
.then((res) => {
|
let { code, data, data2 } = res.data;
|
if (code && data) {
|
return data2;
|
} else {
|
return false;
|
}
|
})
|
.catch((err) => {
|
console.log(err);
|
});
|
},
|
refreshFN() {
|
// console.log(123);
|
// 告警等级
|
let status = this.$route.query.status;
|
if (status != undefined) {
|
this.params.devWorkstate = status * 1;
|
}
|
},
|
// // 展示数据数量
|
// handleSizeChange(val) {
|
// this.pageSize = val;
|
// this.queryList();
|
// },
|
// // 翻页
|
// handleCurrentChange(val) {
|
// this.pageCurr = val;
|
// this.queryList();
|
// },
|
// startQueryList() {
|
// this.timer.start(() => {
|
// this.$axios
|
// .all([this.queryList()])
|
// .then(() => {
|
// this.timer.open();
|
// })
|
// .catch((error) => {
|
// this.timer.open();
|
// console.log(error);
|
// });
|
// }, 4000);
|
// },
|
onWSOpen() {
|
this.sendMessage();
|
},
|
onWSMessage(res) {
|
res = JSON.parse(res.data);
|
// console.log(res, "====socket");
|
let params = [];
|
if (res.code) {
|
params = res.data.map((item) => {
|
item.deviceStatus = const_61850.workstates[item.devWorkstate];
|
item.dev61850Alarms = this.getAlarmsText(item.dev61850alarms);
|
item.dateLong = formatSeconds(item.battTestTLong);
|
item.devCaptestOnlinevol = item.devCaptestOnlinevol.toHold(VOL);
|
item.devCaptestGroupvol = item.devCaptestGroupvol.toHold(VOL);
|
item.devCaptestCurr = item.devCaptestCurr.toHold(CURR);
|
item.devTemp = item.devTemp.toHold(TEMP);
|
item.devCaptestCap = item.devCaptestCap.toHold(CAP);
|
item.stationNameObj = {
|
stationName1: item.stationName1,
|
stationName2: item.stationName2,
|
stationName3: item.stationName3,
|
stationName5: item.stationName5,
|
}
|
return item;
|
});
|
}
|
this.dataList = params;
|
},
|
sendMessage() {
|
this.SOCKET.send(JSON.stringify(this.params));
|
},
|
// 获取告警参数
|
getAlarmsText: function (alarms) {
|
var dev61850Alarms = const_61850.alarmstates;
|
var _alarms = alarms.split(",");
|
var str = "";
|
for (var i = 0; i < _alarms.length; i++) {
|
if (_alarms[i] == "true") {
|
str += dev61850Alarms[i];
|
}
|
}
|
if (str.length == 0) {
|
str = "无";
|
}
|
return str;
|
},
|
// 查询机房名称
|
queryStationName() {
|
UserBattgroup()
|
.then((res) => {
|
res = res.data;
|
let params = [];
|
if (res.code) {
|
params = res.data.map((item) => {
|
return {
|
label: item.stationName,
|
value: item.fbsdeviceId,
|
};
|
});
|
}
|
let text =
|
params.length > 0
|
? "全部 (共" + params.length + "种)"
|
: "暂无可测机房站点";
|
params.unshift({
|
label: text,
|
value: 0,
|
});
|
this.stationNameList = params;
|
})
|
.catch((err) => {});
|
},
|
}, //methods
|
};
|
</script>
|
<style lang="less" scoped></style>
|