<template>
|
<div class="p-main">
|
<div class="p-content flex-r">
|
<div class="p-left flex-c">
|
<panel class="panel group" title="遥测量模拟(组端)">
|
<div slot="leftTools" class="btn-grp">
|
<gradient-btn size="xs" @click="selectAll('checkList1')"
|
>全选</gradient-btn
|
>
|
<gradient-btn size="xs" @click="cancelSelectAll('checkList1')"
|
>取消全选</gradient-btn
|
>
|
</div>
|
<div slot="tools" class="btn-grp">
|
<gradient-btn
|
size="xs"
|
:disabled="!checkList1.some((v) => v == true) || !hasPermission"
|
@click="batchGroupSet(1)"
|
>批量给定</gradient-btn
|
>
|
<gradient-btn
|
size="xs"
|
:disabled="!checkList1.some((v) => v == true) || !hasPermission"
|
@click="batchGroupSet(0)"
|
>批量取消</gradient-btn
|
>
|
</div>
|
<div class="content">
|
<div class="grid1">
|
<yc-grid :count="props1.length" :config="props1">
|
<template v-slot="{ data, index }">
|
<card
|
:ref="'group_' + index"
|
:option="data[index]"
|
:checked.sync="checkList1[index]"
|
:datas="rtData"
|
></card>
|
</template>
|
</yc-grid>
|
</div>
|
</div>
|
</panel>
|
<panel class="panel mon" title="遥测量模拟(单体)">
|
<div slot="leftTools" class="btn-grp">
|
<gradient-btn
|
size="xs"
|
@click="selectAll('checkListMon', battInfoType)"
|
>全选</gradient-btn
|
>
|
<gradient-btn
|
size="xs"
|
@click="cancelSelectAll('checkListMon', battInfoType)"
|
>取消全选</gradient-btn
|
>
|
</div>
|
<div slot="tools" class="btn-grp">
|
<gradient-btn
|
size="xs"
|
:disabled="
|
!checkListMon[battInfoType].some((v) => v == true) ||
|
!hasPermission
|
"
|
@click="batchMonSet(battInfoType, 1)"
|
>批量给定</gradient-btn
|
>
|
<gradient-btn
|
size="xs"
|
:disabled="
|
!checkListMon[battInfoType].some((v) => v == true) ||
|
!hasPermission
|
"
|
@click="batchMonSet(battInfoType, 0)"
|
>批量取消</gradient-btn
|
>
|
</div>
|
<div class="content flex-c">
|
<div class="banner">
|
<el-radio-group
|
v-model="battInfoType"
|
class="radio-grp"
|
size="mini"
|
>
|
<el-radio-button :label="0">电压</el-radio-button>
|
<el-radio-button :label="1">内阻</el-radio-button>
|
<el-radio-button :label="2">温度</el-radio-button>
|
<el-radio-button :label="3">均衡电流</el-radio-button>
|
<el-radio-button :label="4">终止剩余容量</el-radio-button>
|
<el-radio-button :label="5">终止单体电压</el-radio-button>
|
<el-radio-button :label="6">终止单体温度</el-radio-button>
|
</el-radio-group>
|
</div>
|
<div
|
class="grid1 scroller"
|
v-for="(item, idx) in 7"
|
:key="'grid_' + idx"
|
v-show="idx == battInfoType"
|
>
|
<yc-grid :count="monCount" :config="monProps[idx]">
|
<template v-slot="{ data, index }">
|
<card-batt
|
:ref="'mon_type' + idx + '_' + index"
|
:type="battInfoType"
|
:option="data[index]"
|
:checked.sync="checkListMon[idx][index]"
|
:datas="monData"
|
></card-batt>
|
</template>
|
</yc-grid>
|
</div>
|
</div>
|
</panel>
|
</div>
|
<div class="p-right flex-c">
|
<panel class="panel top" title="遥控量设置">
|
<div class="content">
|
<el-row class="el_row" :gutter="20">
|
<el-col class="el_col" :span="12">
|
<div class="card3">
|
<div class="card-title">核容装置放电</div>
|
<div class="card-content">
|
<div class="item-row">
|
<div class="label">核容装置状态:</div>
|
<div class="value">{{ hrState }}</div>
|
</div>
|
<div class="item-row">
|
<div class="label">放电测试:</div>
|
<div class="btn-grp">
|
<gradient-btn
|
size="xs"
|
:disabled="!hasPermission || !canStart"
|
@click="setParam"
|
>开始放电</gradient-btn
|
>
|
<gradient-btn
|
active
|
size="xs"
|
:disabled="!hasPermission || !canStopDis"
|
@click="control(0)"
|
>停止放电</gradient-btn
|
>
|
</div>
|
</div>
|
</div>
|
</div>
|
</el-col>
|
<el-col class="el_col" :span="12">
|
<div class="card3">
|
<div class="card-title">核容装置内阻</div>
|
<div class="card-content">
|
<div class="item-row">
|
<div class="label">核容装置状态:</div>
|
<div class="value">{{ hrState }}</div>
|
</div>
|
<div class="item-row">
|
<div class="label">内阻测试:</div>
|
<div class="btn-grp">
|
<gradient-btn
|
size="xs"
|
:disabled="!hasPermission || !canStart"
|
@click="control(1)"
|
>启动内阻测试</gradient-btn
|
>
|
<!-- <gradient-btn
|
active
|
size="sm"
|
:disabled="!hasPermission || !canStopRes"
|
@click="control(2)"
|
>停止内阻测试</gradient-btn
|
> -->
|
</div>
|
</div>
|
</div>
|
</div>
|
</el-col>
|
<el-col class="el_col" :span="12">
|
<div class="card3">
|
<div class="card-title">核容装置充电</div>
|
<div class="card-content">
|
<div class="item-row">
|
<div class="label">核容装置状态:</div>
|
<div class="value">{{ hrState }}</div>
|
</div>
|
<div class="item-row">
|
<div class="label">充电测试:</div>
|
<div class="btn-grp">
|
<gradient-btn
|
size="xs"
|
:disabled="!hasPermission || !canStart"
|
@click="control(3)"
|
>启动充电测试</gradient-btn
|
>
|
<gradient-btn
|
active
|
size="xs"
|
:disabled="!hasPermission || !canStopChar"
|
@click="control(4)"
|
>停止充电测试</gradient-btn
|
>
|
</div>
|
</div>
|
</div>
|
</div>
|
</el-col>
|
<el-col class="el_col" :span="12">
|
<div class="card3">
|
<div class="card-title">核容装置重启</div>
|
<div class="card-content">
|
<div class="item-row">
|
<div class="label">核容装置状态:</div>
|
<div class="value">{{ hrState }}</div>
|
</div>
|
<div class="item-row">
|
<div class="label">装置重启:</div>
|
<div class="btn-grp">
|
<gradient-btn
|
size="xs"
|
:disabled="!hasPermission || !canStart"
|
@click="control(5)"
|
>重启核容装置</gradient-btn
|
>
|
</div>
|
</div>
|
</div>
|
</div>
|
</el-col>
|
<!-- <el-col class="el_col" :span="12">
|
<div class="card3">
|
<div class="card-title">核容停止原因模拟(正在开发中)</div>
|
<div class="card-content">
|
<div class="item-row">
|
<div class="label">停止原因:</div>
|
<div class="value">
|
{{ stopReason[testStopTypeReal] || "未知" }}
|
</div>
|
</div>
|
<div class="item-row">
|
<div class="label">状态码:</div>
|
<div class="value">{{ testStopTypeReal }}</div>
|
</div>
|
</div>
|
</div>
|
</el-col> -->
|
<!-- <el-col class="el_col" :span="12">
|
<div class="card3">
|
<div class="card-title">核容装置IP配置</div>
|
<div class="card-content">
|
<div class="item-row">
|
<div class="label">核容装置IP地址:</div>
|
<div class="value">192.168.10.112</div>
|
</div>
|
<div class="item-row">
|
<div class="label">核容装置IP网关:</div>
|
<div class="value">192.168.10.1</div>
|
</div>
|
<div class="item-row">
|
<div class="label">核容装置子网掩码:</div>
|
<div class="value">255.255.255.0</div>
|
</div>
|
<div class="item-row">
|
<div class="label">核容装置配置IP地址:</div>
|
<div class="value">192.168.10.112</div>
|
</div>
|
<div class="item-row">
|
<div class="label">核容装置配置IP网关:</div>
|
<div class="value">192.168.10.1</div>
|
</div>
|
<div class="item-row">
|
<div class="label">核容装置配置子网掩码:</div>
|
<div class="value">255.255.255.0</div>
|
</div>
|
<div class="item-row">
|
<div class="label">装置重启模拟:</div>
|
<div class="btn-grp">
|
<gradient-btn size="sm" :disabled="!hasPermission"
|
>暂时配置生效</gradient-btn
|
>
|
<gradient-btn active size="sm" :disabled="!hasPermission"
|
>永久配置生效</gradient-btn
|
>
|
</div>
|
</div>
|
</div>
|
</div>
|
</el-col> -->
|
</el-row>
|
</div>
|
</panel>
|
<panel class="panel yx" title="遥信量模拟">
|
<div slot="leftTools" class="btn-grp">
|
<gradient-btn size="xs" @click="selectAll('checkList2')"
|
>全选</gradient-btn
|
>
|
<gradient-btn size="xs" @click="cancelSelectAll('checkList2')"
|
>取消全选</gradient-btn
|
>
|
</div>
|
<div slot="tools" class="btn-grp">
|
<gradient-btn
|
size="xs"
|
:disabled="!checkList2.some((v) => v == true) || !hasPermission"
|
@click="batchYXSet(1)"
|
>批量执行</gradient-btn
|
>
|
<gradient-btn
|
size="xs"
|
:disabled="!checkList2.some((v) => v == true) || !hasPermission"
|
@click="batchYXSet(0)"
|
>批量取消</gradient-btn
|
>
|
</div>
|
<div class="content flex-c">
|
<div class="grid1 scroller">
|
<yc-grid :count="props3.length" :config="props3">
|
<template v-slot="{ data, index }">
|
<card3
|
:ref="'group_yc_' + index"
|
:option="data[index]"
|
:checked.sync="checkList2[index]"
|
:datas="rtData"
|
></card3>
|
</template>
|
</yc-grid>
|
</div>
|
</div>
|
</panel>
|
<panel class="panel alarm" title="告警模拟">
|
<div slot="leftTools" class="btn-grp">
|
<gradient-btn size="xs" @click="selectAll('checkListAlarm')"
|
>全选</gradient-btn
|
>
|
<gradient-btn size="xs" @click="cancelSelectAll('checkListAlarm')"
|
>取消全选</gradient-btn
|
>
|
</div>
|
<div slot="tools" class="btn-grp">
|
<gradient-btn
|
size="xs"
|
:disabled="
|
!checkListAlarm.some((v) => v == true) || !hasPermission
|
"
|
@click="batchAlarmSet(1)"
|
>批量执行</gradient-btn
|
>
|
<gradient-btn
|
size="xs"
|
:disabled="
|
!checkListAlarm.some((v) => v == true) || !hasPermission
|
"
|
@click="batchAlarmSet(0)"
|
>批量取消</gradient-btn
|
>
|
</div>
|
<div class="content">
|
<div class="grid1">
|
<yc-grid :count="alarm.length" :config="alarm">
|
<template v-slot="{ data, index }">
|
<card2
|
:ref="'alarm_' + index"
|
:option="data[index]"
|
:checked.sync="checkListAlarm[index]"
|
:datas="rsAlm"
|
></card2>
|
</template>
|
</yc-grid>
|
</div>
|
</div>
|
</panel>
|
</div>
|
</div>
|
<el-dialog
|
title="设置充放电参数"
|
:visible.sync="paramVisible"
|
top="100px"
|
:close-on-click-modal="false"
|
class="dialog-center"
|
width="800px"
|
center
|
>
|
<discharge-params
|
v-if="paramVisible"
|
:can-start="canStart"
|
></discharge-params>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import Panel from "@/components/panel.vue";
|
import ycGrid from "@/components/ycGrid.vue";
|
import AlarmCard from "@/components/alarmCard.vue";
|
import gradientBtn from "@/components/gradientBtn.vue";
|
import card from "./components/card";
|
import card2 from "./components/card2";
|
import card3 from "./components/card3";
|
import cardBatt from "./components/cardBatt";
|
import IpCard from "./components/ipCard";
|
import dischargeParams from "./components/dischargeParams";
|
|
import props_const from "./js/const_props";
|
const { props1, props2, props3, getPropList, alarm } = props_const;
|
|
import createWs from "@/assets/js/websocket/plus";
|
const WSMixin = createWs("ckRtAndSignalAndHr", "ckDevRsAndRtAlm");
|
import const_9100 from "./js/const_9100";
|
import {
|
updateGroup,
|
updateMon,
|
control,
|
setAlarm,
|
updateDataHrStop,
|
updateStateHrStop,
|
} from "./js/apis";
|
import changeBinaryBits from "@/assets/js/changeBinaryBits";
|
import setBitAtPositions from "@/assets/js/setBitAtPositions";
|
|
export default {
|
name: "hrControl",
|
mixins: [WSMixin],
|
components: {
|
Panel,
|
ycGrid,
|
AlarmCard,
|
gradientBtn,
|
card,
|
card2,
|
card3,
|
cardBatt,
|
IpCard,
|
dischargeParams,
|
},
|
data() {
|
const { cmd, stopReason } = const_9100;
|
return {
|
cmd,
|
stopReason,
|
testStopTypeReal: 0,
|
paramVisible: false,
|
battInfoType: 0,
|
monData: [],
|
rtData: {
|
isEmpty: true,
|
},
|
rsAlm: {
|
isEmpty: true,
|
},
|
props1,
|
props2,
|
props3,
|
alarm,
|
checkListMon: [[], [], [], [], [], [], []],
|
// checkList1_acdc: param_acdc.map(() => false),
|
checkList1: props1.map(() => false),
|
checkList2: props3.map(() => false),
|
checkListAlarm: alarm.map(() => false),
|
// checkList2_acdc: [],
|
// checkList2_gp: [],
|
};
|
},
|
created() {
|
// 在 created 钩子中初始化数据
|
// this.checkList2_acdc = this.acdc_alarms.map(() => false);
|
// this.checkList2_gp = this.gp_alarms.map(() => false);
|
},
|
computed: {
|
hasPermission() {
|
return this.$store.state.user.downloadFlag == 1;
|
},
|
monCount() {
|
return this.monData.length;
|
},
|
canStopDis() {
|
return this.rtData.devWorkStateReal == 2;
|
},
|
canStart() {
|
return this.rtData.devWorkStateReal == 0;
|
},
|
canStopRes() {
|
return this.rtData.devWorkStateReal == 4;
|
},
|
canStopKD() {
|
return this.rtData.devWorkStateReal == 5;
|
},
|
canStopChar() {
|
return this.rtData.devWorkStateReal == 1;
|
},
|
monProps() {
|
return getPropList(this.monCount);
|
},
|
battState() {
|
return ["浮充", "放电", "充电"][this.rtData.battState] || "未知";
|
},
|
hrState() {
|
return (
|
[
|
"在线浮充",
|
"预充电(限流充电)",
|
"核容测试",
|
"停电放电",
|
"内阻测试",
|
"K1/D1 测试",
|
][this.rtData.devWorkStateReal] || "未知"
|
);
|
},
|
// checkListMon() {
|
// let arr = [];
|
// for (let i = 0, j = this.monCount; i < j; i++) {
|
// arr.push(false);
|
// }
|
// return [[...arr], [...arr], [...arr]];
|
// },
|
},
|
watch: {
|
monCount(n, o) {
|
if (n && n != o) {
|
this.checkListMon = (() => {
|
let arr = [];
|
for (let i = 0, j = n; i < j; i++) {
|
arr.push(false);
|
}
|
return [
|
[...arr],
|
[...arr],
|
[...arr],
|
[...arr],
|
[...arr],
|
[...arr],
|
[...arr],
|
];
|
})();
|
}
|
},
|
},
|
methods: {
|
control(type) {
|
let title = "";
|
let opCmd = 0;
|
let { stopDis, startRes, stopRes, startK1, stopK1, restart } = this.cmd;
|
switch (type) {
|
// 停止放电
|
case 0:
|
title = "是否停止放电?";
|
opCmd = stopDis;
|
break;
|
|
// 启动内阻
|
case 1:
|
title = "是否启动内阻测试?";
|
opCmd = startRes;
|
break;
|
// 停止内阻
|
case 2:
|
title = "是否停止内阻测试?";
|
opCmd = stopRes;
|
break;
|
// 启动充电
|
case 3:
|
title = "是否启动充电测试?";
|
opCmd = startK1;
|
break;
|
|
// 停止充电
|
case 4:
|
title = "是否停止充电测试?";
|
opCmd = stopK1;
|
break;
|
// 重启
|
case 5:
|
title = "是否重启核容装置?";
|
opCmd = restart;
|
break;
|
}
|
this.$confirm(title, "提示", {
|
type: "warning",
|
})
|
.then(() => {
|
let loading = this.$layer.loading();
|
control(opCmd)
|
.then((res) => {
|
let { code, data, msg } = res.data;
|
if (code && data) {
|
this.$message.success(msg);
|
} else {
|
this.$message.error(msg);
|
}
|
this.$layer.close(loading);
|
})
|
.catch((err) => {
|
console.log(err);
|
this.$layer.close(loading);
|
});
|
})
|
.catch(() => {});
|
},
|
setParam() {
|
this.paramVisible = true;
|
},
|
onWSOpen1() {
|
this.$nextTick(() => {
|
this.sendMessage1();
|
});
|
},
|
sendMessage1() {
|
if (!this.isWSOpen1) {
|
return false;
|
}
|
this.SOCKET1.send("");
|
},
|
onWSMessage1(res) {
|
let { data, data2, data3, data4 } = JSON.parse(res.data);
|
// console.log(data, "=====data??", data2);
|
// this.paramsAlram(data);
|
this.rtData = {
|
...data,
|
...data2,
|
...data3,
|
};
|
this.monData = data4;
|
this.testStopTypeReal = data3.testStopTypeReal;
|
},
|
onWSMessage2(res) {
|
let {
|
data: {
|
rsAlmRes: {
|
data2: [rsAlm],
|
},
|
rtAlmRes: {
|
data2: [rtAlm],
|
},
|
},
|
} = JSON.parse(res.data);
|
// console.log(rsAlm, "=====data", rtAlm);
|
this.rsAlm = rsAlm;
|
},
|
selectAll(list, idx) {
|
if (idx == undefined) {
|
this[list] = this[list].map(() => true);
|
} else {
|
let arr = this[list][idx].map(() => true);
|
this.$set(this[list], idx, arr);
|
}
|
},
|
cancelSelectAll(list, idx) {
|
if (idx == undefined) {
|
this[list] = this[list].map(() => false);
|
} else {
|
let arr = this[list][idx].map(() => false);
|
this.$set(this[list], idx, arr);
|
}
|
},
|
batchGroupSet(setFlag) {
|
let title = setFlag ? "确认批量给定?" : "确认批量取消给定?";
|
this.$confirm(title, "提示", {
|
type: "warning",
|
})
|
.then(() => {
|
let loading = this.$layer.loading();
|
let params = { logList: [] };
|
let checkList = this.checkList1;
|
checkList
|
.map((v, i) => ({ i, v }))
|
.filter((v) => v.v)
|
.forEach((v) => {
|
let refName = "group_" + v.i;
|
let $el = this.$refs[refName];
|
// console.log($el);
|
params["battIndex"] = 0;
|
params[$el.option.key1] = setFlag ? $el.num : undefined;
|
params[$el.option.flag] = setFlag ? 1 : 0;
|
params["logList"].push({
|
param: $el.option.flag,
|
paramCn: $el.title,
|
value: setFlag ? $el.num : undefined,
|
st: setFlag ? 1 : 0,
|
});
|
});
|
|
updateGroup(params)
|
.then((res) => {
|
let { code, data, msg } = res.data;
|
this.$layer.close(loading);
|
this.$message(msg);
|
})
|
.catch((err) => {
|
console.log(err);
|
this.$layer.close(loading);
|
});
|
})
|
.catch(() => {});
|
},
|
batchMonSet(type, setFlag) {
|
let title = setFlag ? "确认批量给定?" : "确认批量取消给定?";
|
this.$confirm(title, "提示", {
|
type: "warning",
|
})
|
.then(() => {
|
console.log(type, "xxx", type < 4);
|
if (type < 4) {
|
this.updateMon(type, setFlag);
|
} else {
|
this.updateDataHrStop(type, setFlag);
|
}
|
})
|
.catch(() => {});
|
},
|
updateMon(type, setFlag) {
|
let loading = this.$layer.loading();
|
let params = { logList: [], dataSetList: [] };
|
let checkList = this["checkListMon"][type];
|
checkList
|
.map((v, i) => ({ i, v }))
|
.filter((v) => v.v)
|
.forEach((v) => {
|
let refName = `mon_type${type}_` + v.i;
|
let $el = this.$refs[refName][0];
|
let params2 = {};
|
params2[$el.option.key1] = setFlag ? $el.num : undefined;
|
params2[$el.option.flag] = setFlag ? 1 : 0;
|
params2["battIndex"] = 0;
|
params2["monNum"] = $el.option.monNum;
|
|
params["dataSetList"].push(params2);
|
params["logList"].push({
|
param: $el.option.flag,
|
paramCn: $el.title,
|
value: setFlag ? $el.num : undefined,
|
st: setFlag ? 1 : 0,
|
monNum: $el.option.monNum,
|
battIndex: 0,
|
});
|
});
|
updateMon(params)
|
.then((res) => {
|
let { code, data, msg } = res.data;
|
this.$layer.close(loading);
|
this.$message(msg);
|
})
|
.catch((err) => {
|
console.log(err);
|
this.$layer.close(loading);
|
});
|
},
|
updateDataHrStop(type, setFlag) {
|
let loading = this.$layer.loading();
|
let params = { logList: [], dataSetList: [] };
|
let checkList = this["checkListMon"][type];
|
|
checkList
|
.map((v, i) => ({ i, v }))
|
.filter((v) => v.v)
|
.forEach((v) => {
|
let refName = `mon_type${type}_` + v.i;
|
let $el = this.$refs[refName][0];
|
|
let params2 = {};
|
params2[$el.option.key1] = setFlag ? $el.num : undefined;
|
params2[$el.option.flag] = setFlag ? 1 : 0;
|
// params2["battIndex"] = 0;
|
params2["monNum"] = $el.option.monNum;
|
|
params["dataSetList"].push(params2);
|
params["logList"].push({
|
param: $el.option.flag,
|
paramCn: $el.title,
|
value: setFlag ? $el.num : undefined,
|
st: setFlag ? 1 : 0,
|
monNum: $el.option.monNum,
|
// battIndex: 0,
|
});
|
});
|
|
updateDataHrStop(params)
|
.then((res) => {
|
let { code, data, msg } = res.data;
|
this.$layer.close(loading);
|
this.$message(msg);
|
})
|
.catch((err) => {
|
console.log(err);
|
this.$layer.close(loading);
|
});
|
},
|
batchYXSet(setFlag) {
|
let title = setFlag ? "确认批量给定?" : "确认批量取消给定?";
|
this.$confirm(title, "提示", {
|
type: "warning",
|
})
|
.then(() => {
|
let loading = this.$layer.loading();
|
let params = { logList: [] };
|
let checkList = this.checkList2;
|
checkList
|
.map((v, i) => ({ i, v }))
|
.filter((v) => v.v)
|
.forEach((v) => {
|
let refName = "group_yc_" + v.i;
|
let $el = this.$refs[refName];
|
console.log($el);
|
// params["battIndex"] = 0;
|
params[$el.option.key1] = setFlag ? $el.num : undefined;
|
params[$el.option.flag] = setFlag ? 1 : 0;
|
params["logList"].push({
|
param: $el.option.flag,
|
paramCn: $el.title,
|
value: setFlag ? $el.num : undefined,
|
st: setFlag ? 1 : 0,
|
});
|
});
|
|
updateStateHrStop(params)
|
.then((res) => {
|
let { code, data, msg } = res.data;
|
this.$layer.close(loading);
|
this.$message(msg);
|
})
|
.catch((err) => {
|
console.log(err);
|
this.$layer.close(loading);
|
});
|
})
|
.catch(() => {});
|
},
|
batchAlarmSet(setFlag) {
|
let title = setFlag ? "确认批量执行?" : "确认批量取消执行?";
|
this.$confirm(title, "提示", {
|
type: "warning",
|
})
|
.then(() => {
|
let loading = this.$layer.loading();
|
let params = { logList: [], rsAlmSet: {} };
|
let checkList = this["checkListAlarm"];
|
let arr = [];
|
checkList
|
.map((v, i) => ({ i, v }))
|
.filter((v) => v.v)
|
.forEach((v) => {
|
let refName = "alarm_" + v.i;
|
let $el = this.$refs[refName];
|
arr.push({ $el });
|
});
|
arr.forEach((v) => {
|
params.rsAlmSet[v.$el.option.key1] = setFlag ? 1 : undefined;
|
params.rsAlmSet[v.$el.option.flag] = setFlag ? 1 : 0;
|
params["logList"].push({
|
param: v.$el.option.flag,
|
paramCn: v.$el.title,
|
fake: setFlag ? 1 : undefined,
|
st: setFlag ? 1 : 0,
|
});
|
});
|
|
setAlarm(params)
|
.then((res) => {
|
let { code, data, msg } = res.data;
|
this.$layer.close(loading);
|
this.$message(msg);
|
})
|
.catch((err) => {
|
console.log(err);
|
this.$layer.close(loading);
|
});
|
})
|
.catch(() => {});
|
},
|
changeIp(ip) {
|
console.log(ip, "hhhhhh");
|
},
|
},
|
|
mounted() {},
|
};
|
</script>
|
|
<style scoped lang="less">
|
.p-main {
|
height: 100%;
|
}
|
.panel {
|
color: #fff;
|
// height: 100%;
|
// flex: 1;
|
&.top {
|
// margin-left: 10px;
|
// flex: 1.24;
|
// flex: 1;
|
height: 300px;
|
.content {
|
height: 100%;
|
padding: 8px 30px;
|
position: relative;
|
display: flex;
|
flex-direction: column;
|
justify-content: space-between;
|
}
|
}
|
&.alarm {
|
margin-top: 8px;
|
height: 180px;
|
}
|
&.yx {
|
margin-top: 8px;
|
flex: 1;
|
}
|
}
|
|
.p-right {
|
flex: 1.1;
|
margin-left: 10px;
|
}
|
.p-left {
|
flex: 1;
|
.group {
|
// flex: 1;
|
height: 300px;
|
}
|
.mon {
|
flex: 1.6;
|
margin-top: 10px;
|
}
|
}
|
.btn-grp {
|
padding: 10px;
|
display: flex;
|
:deep(.el-radio-button__inner) {
|
padding: 7px 4px;
|
}
|
}
|
.p-content {
|
height: 100%;
|
.content {
|
height: 100%;
|
padding: 10px;
|
}
|
}
|
.card3 {
|
height: 100%;
|
border: 1px solid #3e8d9d;
|
border-radius: 4px;
|
color: #fff;
|
overflow: hidden;
|
.card-title {
|
background: #0c4d77;
|
height: 30px;
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
padding-left: 6px;
|
}
|
.card-content {
|
flex: 1;
|
background: #011f39;
|
display: flex;
|
flex-direction: column;
|
padding: 2px 6px;
|
|
.item-row {
|
display: flex;
|
align-items: center;
|
.label {
|
width: 12em;
|
line-height: 30px;
|
}
|
.value {
|
color: #78eef8;
|
}
|
.btn-grp {
|
padding-left: 0;
|
flex: 1;
|
display: flex;
|
justify-content: space-between;
|
:deep(.gradient-btn) {
|
min-width: 110px;
|
}
|
}
|
}
|
}
|
}
|
.banner {
|
display: flex;
|
justify-content: space-between;
|
// margin: -10px -10px 0 -10px;
|
margin-bottom: 10px;
|
}
|
.grid1 {
|
flex: 1;
|
}
|
.scroller {
|
overflow-y: auto;
|
}
|
.el_col:nth-child(n + 3) {
|
margin-top: 8px;
|
}
|
</style>
|