New file |
| | |
| | | <template> |
| | | <div class="card flex-c"> |
| | | <div class="card-title"> |
| | | <div class="flex-r"> |
| | | {{ title }} |
| | | </div> |
| | | <el-checkbox v-model="checked1" @change="changed"></el-checkbox> |
| | | </div> |
| | | <div class="card-content"> |
| | | <div class="col"> |
| | | 实时: |
| | | <div :class="['value', { alarm: !!value }]"> |
| | | {{ value ? "告警" : "正常" }} |
| | | </div> |
| | | </div> |
| | | <div class="col"> |
| | | 模拟: |
| | | <div class="btn"> |
| | | <gradient-btn |
| | | :active="setFlag" |
| | | :disabled="!hasPermission" |
| | | @click="handlerClick" |
| | | size="xs" |
| | | >{{ setFlag ? "执行中" : "执行" }}</gradient-btn |
| | | > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import gradientBtn from "@/components/gradientBtn.vue"; |
| | | import { setAlarm } from "../js/apis"; |
| | | import changeBinaryBits from "@/assets/js/changeBinaryBits"; |
| | | import getBit from "@/assets/js/getBit"; |
| | | import setBitAtPositions from "@/assets/js/setBitAtPositions"; |
| | | |
| | | export default { |
| | | name: "", |
| | | props: { |
| | | option: { |
| | | type: Object, |
| | | required: true, |
| | | }, |
| | | datas: { |
| | | type: Object, |
| | | required: true, |
| | | }, |
| | | checked: { |
| | | type: Boolean, |
| | | required: true, |
| | | }, |
| | | }, |
| | | watch: { |
| | | checked(n) { |
| | | this.checked1 = n; |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | checked1: this.checked, |
| | | }; |
| | | }, |
| | | computed: { |
| | | hasPermission() { |
| | | return this.$store.state.user.downloadFlag == 1; |
| | | }, |
| | | title() { |
| | | return this.option.label; |
| | | }, |
| | | setFlag() { |
| | | let { flag, childrenCount, index } = this.option; |
| | | if (childrenCount) { |
| | | // 通过index获得它在flag数组中的index |
| | | let propIdx = Math.floor(index / 25); |
| | | let prop_flag = flag[propIdx]; |
| | | let _flag = this.datas[prop_flag]; |
| | | return !!getBit(_flag, index % 25); |
| | | } else { |
| | | return !!this.datas[flag]; |
| | | } |
| | | }, |
| | | value() { |
| | | let { |
| | | datas, |
| | | option: { key0, key1, childrenCount, index }, |
| | | } = this; |
| | | if (childrenCount) { |
| | | // 通过index获得它在flag数组中的index |
| | | let propIdx = Math.floor(index / 25); |
| | | let prop_key0 = key0[propIdx]; |
| | | let prop_key1 = key1[propIdx]; |
| | | let _key0 = datas[prop_key0]; |
| | | let _key1 = datas[prop_key1]; |
| | | return !this.setFlag |
| | | ? getBit(_key0, index % 25) |
| | | : getBit(_key1, index % 25); |
| | | } else { |
| | | return this.setFlag ? datas[key1] : datas[key0]; |
| | | } |
| | | }, |
| | | }, |
| | | components: { |
| | | gradientBtn, |
| | | }, |
| | | methods: { |
| | | changed() { |
| | | this.$emit("update:checked", this.checked1); |
| | | }, |
| | | handlerClick() { |
| | | let title = ""; |
| | | let pflag = 0; |
| | | if (this.setFlag) { |
| | | title = "是否取消执行?"; |
| | | pflag = 0; |
| | | } else { |
| | | title = "是否执行?"; |
| | | pflag = 1; |
| | | } |
| | | this.$confirm(title, "提示", { |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | let loading = this.$layer.loading(); |
| | | let params = { logList: [], rsAlmSet: {} }; |
| | | let { key1, flag } = this.option; |
| | | params.rsAlmSet[key1] = 1; |
| | | params.rsAlmSet[flag] = pflag; |
| | | params["logList"].push({ |
| | | param: flag, |
| | | paramCn: this.title, |
| | | fake: pflag || undefined, |
| | | st: pflag, |
| | | }); |
| | | 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(() => {}); |
| | | }, |
| | | }, |
| | | |
| | | mounted() {}, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .flex-r { |
| | | display: flex; |
| | | flex-direction: row; |
| | | } |
| | | .flex-c { |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | .card { |
| | | height: 100px; |
| | | border: 1px solid #77edf6; |
| | | border-radius: 4px; |
| | | color: #fff; |
| | | overflow: hidden; |
| | | .card-title { |
| | | background: #011f39; |
| | | height: 30px; |
| | | color: #77edf6; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding-left: 6px; |
| | | padding-right: 6px; |
| | | border-bottom: 1px solid #77edf6; |
| | | } |
| | | .i { |
| | | cursor: pointer; |
| | | margin-left: 4px; |
| | | margin-right: 6px; |
| | | width: 20px; |
| | | height: 20px; |
| | | border-radius: 50%; |
| | | background: #77edf6 url("../../../assets/images/gantan.png") 50% 50% / auto |
| | | 60% no-repeat; |
| | | } |
| | | .card-content { |
| | | flex: 1; |
| | | background: #0c4d77; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 6px; |
| | | } |
| | | .col { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .value { |
| | | flex: 1; |
| | | color: #77edf6; |
| | | margin-left: 6px; |
| | | margin-right: 6px; |
| | | padding-left: 6px; |
| | | height: 26px; |
| | | line-height: 26px; |
| | | border-radius: 6px; |
| | | &.alarm { |
| | | color: #ff4f45; |
| | | font-weight: 700; |
| | | } |
| | | } |
| | | .input { |
| | | color: #000; |
| | | flex: 1; |
| | | margin-left: 6px; |
| | | margin-right: 6px; |
| | | :deep(.el-input__inner) { |
| | | color: inherit; |
| | | } |
| | | } |
| | | .btn { |
| | | width: 76px; |
| | | padding-left: 8px; |
| | | } |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="card flex-c"> |
| | | <div class="card-title"> |
| | | <div class="flex-r"> |
| | | <div class="i"></div> |
| | | {{ title }} |
| | | </div> |
| | | <el-checkbox v-model="checked1" @change="changed"></el-checkbox> |
| | | </div> |
| | | <div class="card-content"> |
| | | <div class="row"> |
| | | 实时: |
| | | <div class="value">{{ value }}</div> |
| | | <div class="btn"></div> |
| | | </div> |
| | | <div class="row"> |
| | | 模拟: |
| | | <el-select |
| | | class="input" |
| | | v-if="isSelect" |
| | | :disabled="setFlag" |
| | | v-model="num" |
| | | size="mini" |
| | | > |
| | | <el-option |
| | | v-for="(item, idx) in selectOptions" |
| | | :key="'select_' + idx" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <el-input-number |
| | | v-else |
| | | class="input" |
| | | size="mini" |
| | | :disabled="setFlag" |
| | | v-model="num" |
| | | :step="1" |
| | | ></el-input-number> |
| | | <div class="btn"> |
| | | <gradient-btn |
| | | :active="setFlag" |
| | | size="xs" |
| | | :disabled="!hasPermission" |
| | | @click="confirm" |
| | | >{{ setFlag ? btnText + "中" : btnText }}</gradient-btn |
| | | > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import gradientBtn from "@/components/gradientBtn.vue"; |
| | | import { updateStateHrStop } from "../js/apis"; |
| | | export default { |
| | | name: "", |
| | | props: { |
| | | option: { |
| | | type: Object, |
| | | required: true, |
| | | }, |
| | | datas: { |
| | | type: Object, |
| | | required: true, |
| | | }, |
| | | btnText: { |
| | | type: String, |
| | | default: "执行", |
| | | }, |
| | | checked: { |
| | | type: Boolean, |
| | | required: true, |
| | | }, |
| | | }, |
| | | computed: { |
| | | title() { |
| | | return this.option.label; |
| | | }, |
| | | setFlag() { |
| | | return !!this.datas[this.option.flag]; |
| | | }, |
| | | isSelect() { |
| | | return !!this.option.option; |
| | | }, |
| | | selectOptions() { |
| | | if (this.isSelect) { |
| | | return this.option.option |
| | | .map((v, i) => ({ label: v, value: i })) |
| | | .filter((v) => !!v.label); |
| | | } else { |
| | | return []; |
| | | } |
| | | }, |
| | | value() { |
| | | let { datas, option } = this; |
| | | if (option.option) { |
| | | return this.setFlag |
| | | ? option.option[datas[option.key1]] |
| | | : option.option[datas[option.key0]]; |
| | | } else { |
| | | return this.setFlag ? datas[option.key1] : datas[option.key0]; |
| | | } |
| | | }, |
| | | hasPermission() { |
| | | return this.$store.state.user.downloadFlag == 1; |
| | | }, |
| | | }, |
| | | watch: { |
| | | datas(n, o) { |
| | | if (o.isEmpty && !n.isEmpty) { |
| | | this.num = this.datas[this.option.key1]; |
| | | } |
| | | }, |
| | | checked(n) { |
| | | this.checked1 = n; |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | checked1: this.checked, |
| | | // checked: false, |
| | | num: 0, |
| | | }; |
| | | }, |
| | | components: { |
| | | gradientBtn, |
| | | }, |
| | | methods: { |
| | | changed() { |
| | | this.$emit("update:checked", this.checked1); |
| | | }, |
| | | confirm() { |
| | | let title = ""; |
| | | let flag = 0; |
| | | let num; |
| | | if (this.setFlag) { |
| | | title = "是否取消给定?"; |
| | | flag = 0; |
| | | } else { |
| | | title = "是否给定?"; |
| | | flag = 1; |
| | | num = this.num; |
| | | } |
| | | this.$confirm(title, "提示", { |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | // console.log('调用结定接口', this.num, this.option.key1); |
| | | let loading = this.$layer.loading(); |
| | | let params = { logList: [] }; |
| | | params[this.option.key1] = flag ? num : undefined; |
| | | params[this.option.flag] = flag; |
| | | // params["battIndex"] = 0; |
| | | params["logList"].push({ |
| | | param: this.option.flag, |
| | | paramCn: this.title, |
| | | value: flag ? num : undefined, |
| | | st: flag, |
| | | }); |
| | | 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(() => {}); |
| | | }, |
| | | }, |
| | | |
| | | mounted() {}, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .flex-r { |
| | | display: flex; |
| | | flex-direction: row; |
| | | } |
| | | .flex-c { |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | .card { |
| | | height: 110px; |
| | | 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-right: 6px; |
| | | } |
| | | .i { |
| | | margin-left: 4px; |
| | | margin-right: 6px; |
| | | width: 20px; |
| | | height: 20px; |
| | | border-radius: 50%; |
| | | background: #77edf6 url("../../../assets/images/gantan.png") 50% 50% / auto |
| | | 60% no-repeat; |
| | | } |
| | | .card-content { |
| | | flex: 1; |
| | | background: #011f39; |
| | | display: flex; |
| | | flex-direction: column; |
| | | padding: 6px; |
| | | } |
| | | .value { |
| | | flex: 1; |
| | | background: #fff; |
| | | color: #000; |
| | | margin-left: 6px; |
| | | margin-right: 6px; |
| | | padding-left: 6px; |
| | | height: 26px; |
| | | line-height: 26px; |
| | | border-radius: 6px; |
| | | } |
| | | .input { |
| | | color: #000; |
| | | flex: 1; |
| | | margin-left: 6px; |
| | | margin-right: 6px; |
| | | :deep(.el-input__inner) { |
| | | color: inherit; |
| | | } |
| | | } |
| | | .btn { |
| | | width: 60px; |
| | | } |
| | | .row { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | |
| | | <script> |
| | | import gradientBtn from "@/components/gradientBtn.vue"; |
| | | import { updateMon } from "../js/apis"; |
| | | import { updateMon, updateDataHrStop } from "../js/apis"; |
| | | export default { |
| | | name: "", |
| | | props: { |
| | | option: { |
| | | type: Object, |
| | | required: true, |
| | | }, |
| | | type: { |
| | | type: Number, |
| | | required: true, |
| | | }, |
| | | datas: { |
| | |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | // console.log('调用结定接口', this.num, this.option.key1); |
| | | let loading = this.$layer.loading(); |
| | | let params = { logList: [] }; |
| | | let params2 = {}; |
| | | params2[this.option.key1] = flag ? num : undefined; |
| | | params2[this.option.flag] = flag; |
| | | params2["battIndex"] = 0; |
| | | const monNum = this.option.monNum; |
| | | params2["monNum"] = monNum; |
| | | params["dataSetList"] = [params2]; |
| | | params["logList"].push({ |
| | | param: this.option.flag, |
| | | paramCn: this.title, |
| | | value: flag ? num : undefined, |
| | | st: flag, |
| | | 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); |
| | | }); |
| | | if (this.type < 4) { |
| | | this.updateMon(flag, num); |
| | | } else { |
| | | this.updateDataHrStop(flag, num); |
| | | } |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | updateDataHrStop(flag, num) { |
| | | let loading = this.$layer.loading(); |
| | | let params = { logList: [] }; |
| | | let params2 = {}; |
| | | params2[this.option.key1] = flag ? num : undefined; |
| | | params2[this.option.flag] = flag; |
| | | // params2["battIndex"] = 0; |
| | | const monNum = this.option.monNum; |
| | | params2["monNum"] = monNum; |
| | | params["dataSetList"] = [params2]; |
| | | params["logList"].push({ |
| | | param: this.option.flag, |
| | | paramCn: this.title, |
| | | value: flag ? num : undefined, |
| | | st: flag, |
| | | 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); |
| | | }); |
| | | }, |
| | | updateMon(flag, num) { |
| | | let loading = this.$layer.loading(); |
| | | let params = { logList: [] }; |
| | | let params2 = {}; |
| | | params2[this.option.key1] = flag ? num : undefined; |
| | | params2[this.option.flag] = flag; |
| | | params2["battIndex"] = 0; |
| | | const monNum = this.option.monNum; |
| | | params2["monNum"] = monNum; |
| | | params["dataSetList"] = [params2]; |
| | | params["logList"].push({ |
| | | param: this.option.flag, |
| | | paramCn: this.title, |
| | | value: flag ? num : undefined, |
| | | st: flag, |
| | | 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); |
| | | }); |
| | | }, |
| | | }, |
| | | |
| | | mounted() {}, |
| | |
| | | </div> |
| | | </panel> |
| | | <panel class="panel mon" title="遥测量模拟(单体)"> |
| | | <div slot="tools" class="btn-grp"> |
| | | <el-radio-group |
| | | v-model="battInfoType" |
| | | class="radio-grp" |
| | | size="mini" |
| | | <div slot="leftTools" class="btn-grp"> |
| | | <gradient-btn |
| | | size="xs" |
| | | @click="selectAll('checkListMon', battInfoType)" |
| | | >全选</gradient-btn |
| | | > |
| | | <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-group> |
| | | <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" v-for="(item, idx) in 5" :key="'banner_' + idx" v-show="idx == battInfoType"> |
| | | <div class="btn-grp"> |
| | | <gradient-btn size="xs" @click="selectAll('checkListMon', idx)" |
| | | >全选</gradient-btn |
| | | > |
| | | <gradient-btn |
| | | size="xs" |
| | | @click="cancelSelectAll('checkListMon', idx)" |
| | | >取消全选</gradient-btn |
| | | > |
| | | </div> |
| | | <div class="btn-grp"> |
| | | <gradient-btn |
| | | size="xs" |
| | | :disabled=" |
| | | !checkListMon[idx].some((v) => v == true) || !hasPermission |
| | | " |
| | | @click="batchMonSet(idx, 1)" |
| | | >批量给定</gradient-btn |
| | | > |
| | | <gradient-btn |
| | | size="xs" |
| | | :disabled=" |
| | | !checkListMon[idx].some((v) => v == true) || !hasPermission |
| | | " |
| | | @click="batchMonSet(idx, 0)" |
| | | >批量取消</gradient-btn |
| | | > |
| | | </div> |
| | | <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="banner" v-show="1 == battInfoType"> |
| | | <div class="btn-grp"> |
| | | <gradient-btn size="xs" @click="selectAll('checkListMon', 1)" |
| | | >全选</gradient-btn |
| | | > |
| | | <gradient-btn |
| | | size="xs" |
| | | @click="cancelSelectAll('checkListMon', 1)" |
| | | >取消全选</gradient-btn |
| | | > |
| | | </div> |
| | | <div class="btn-grp"> |
| | | <gradient-btn |
| | | size="xs" |
| | | :disabled=" |
| | | !checkListMon[1].some((v) => v == true) || !hasPermission |
| | | " |
| | | @click="batchMonSet(1, 1)" |
| | | >批量给定</gradient-btn |
| | | > |
| | | <gradient-btn |
| | | size="xs" |
| | | :disabled=" |
| | | !checkListMon[1].some((v) => v == true) || !hasPermission |
| | | " |
| | | @click="batchMonSet(1, 0)" |
| | | >批量取消</gradient-btn |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="banner" v-show="2 == battInfoType"> |
| | | <div class="btn-grp"> |
| | | <gradient-btn size="xs" @click="selectAll('checkListMon', 2)" |
| | | >全选</gradient-btn |
| | | > |
| | | <gradient-btn |
| | | size="xs" |
| | | @click="cancelSelectAll('checkListMon', 2)" |
| | | >取消全选</gradient-btn |
| | | > |
| | | </div> |
| | | <div class="btn-grp"> |
| | | <gradient-btn |
| | | size="xs" |
| | | :disabled=" |
| | | !checkListMon[2].some((v) => v == true) || !hasPermission |
| | | " |
| | | @click="batchMonSet(2, 1)" |
| | | >批量给定</gradient-btn |
| | | > |
| | | <gradient-btn |
| | | size="xs" |
| | | :disabled=" |
| | | !checkListMon[2].some((v) => v == true) || !hasPermission |
| | | " |
| | | @click="batchMonSet(2, 0)" |
| | | >批量取消</gradient-btn |
| | | > |
| | | </div> |
| | | </div> --> |
| | | <div class="grid1 scroller" v-for="(item, idx) in 5" :key="'grid_'+idx" v-show="idx == battInfoType"> |
| | | <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" |
| | | :ref="'mon_type' + idx + '_' + index" |
| | | :type="battInfoType" |
| | | :option="data[index]" |
| | | :checked.sync="checkListMon[idx][index]" |
| | | :datas="monData" |
| | |
| | | </template> |
| | | </yc-grid> |
| | | </div> |
| | | <!-- <div class="grid1 scroller" v-show="1 == battInfoType"> |
| | | <yc-grid :count="monCount" :config="monProps[1]"> |
| | | <template v-slot="{ data, index }"> |
| | | <card-batt |
| | | :ref="'mon_type1_' + index" |
| | | :option="data[index]" |
| | | :checked.sync="checkListMon[1][index]" |
| | | :datas="monData" |
| | | ></card-batt> |
| | | </template> |
| | | </yc-grid> |
| | | </div> |
| | | <div class="grid1 scroller" v-show="2 == battInfoType"> |
| | | <yc-grid :count="monCount" :config="monProps[2]"> |
| | | <template v-slot="{ data, index }"> |
| | | <card-batt |
| | | :ref="'mon_type2_' + index" |
| | | :option="data[index]" |
| | | :checked.sync="checkListMon[2][index]" |
| | | :datas="monData" |
| | | ></card-batt> |
| | | </template> |
| | | </yc-grid> |
| | | </div> --> |
| | | </div> |
| | | </panel> |
| | | </div> |
| | | <panel class="panel right" 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="sm" |
| | | :disabled="!hasPermission || !canStart" |
| | | @click="setParam" |
| | | >开始放电</gradient-btn |
| | | > |
| | | <gradient-btn |
| | | active |
| | | size="sm" |
| | | :disabled="!hasPermission || !canStopDis" |
| | | @click="control(0)" |
| | | >停止放电</gradient-btn |
| | | > |
| | | <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> |
| | | </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="sm" |
| | | :disabled="!hasPermission || !canStart" |
| | | @click="control(1)" |
| | | >启动内阻测试</gradient-btn |
| | | > |
| | | <!-- <gradient-btn |
| | | active |
| | | size="sm" |
| | | :disabled="!hasPermission || !canStopRes" |
| | | @click="control(2)" |
| | | >停止内阻测试</gradient-btn |
| | | > --> |
| | | </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> |
| | | </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="sm" |
| | | :disabled="!hasPermission || !canStart" |
| | | @click="control(3)" |
| | | >启动充电测试</gradient-btn |
| | | > |
| | | <gradient-btn |
| | | active |
| | | size="sm" |
| | | :disabled="!hasPermission || !canStopChar" |
| | | @click="control(4)" |
| | | >停止充电测试</gradient-btn |
| | | > |
| | | </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> |
| | | </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="sm" |
| | | :disabled="!hasPermission || !canStart" |
| | | @click="control(5)" |
| | | >重启核容装置</gradient-btn |
| | | > |
| | | </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> |
| | | </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] || "未知" }} |
| | | </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> |
| | | <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 class="item-row"> |
| | | <div class="label">状态码:</div> |
| | | <div class="value">{{ testStopTypeReal }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> --> |
| | | </el-row> |
| | | </div> |
| | | </panel> |
| | | </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="设置充放电参数" |
| | |
| | | width="800px" |
| | | center |
| | | > |
| | | <discharge-params :can-start="canStart"></discharge-params> |
| | | <discharge-params |
| | | v-if="paramVisible" |
| | | :can-start="canStart" |
| | | ></discharge-params> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | |
| | | 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, getPropList } = props_const; |
| | | 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 } from "./js/apis"; |
| | | import { |
| | | updateGroup, |
| | | updateMon, |
| | | control, |
| | | setAlarm, |
| | | updateDataHrStop, |
| | | updateStateHrStop, |
| | | } from "./js/apis"; |
| | | import changeBinaryBits from "@/assets/js/changeBinaryBits"; |
| | | import setBitAtPositions from "@/assets/js/setBitAtPositions"; |
| | | |
| | |
| | | AlarmCard, |
| | | gradientBtn, |
| | | card, |
| | | card2, |
| | | card3, |
| | | cardBatt, |
| | | IpCard, |
| | | dischargeParams, |
| | |
| | | rtData: { |
| | | isEmpty: true, |
| | | }, |
| | | rsAlm: { |
| | | isEmpty: true, |
| | | }, |
| | | props1, |
| | | props2, |
| | | checkListMon: [[], [], [], [], []], |
| | | 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: [], |
| | | }; |
| | |
| | | for (let i = 0, j = n; i < j; i++) { |
| | | arr.push(false); |
| | | } |
| | | return [[...arr], [...arr], [...arr], [...arr], [...arr]]; |
| | | return [ |
| | | [...arr], |
| | | [...arr], |
| | | [...arr], |
| | | [...arr], |
| | | [...arr], |
| | | [...arr], |
| | | [...arr], |
| | | ]; |
| | | })(); |
| | | } |
| | | }, |
| | |
| | | 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); |
| | |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | let loading = this.$layer.loading(); |
| | | let params = { logList: [], dataSetList: [] }; |
| | | let checkList = this["checkListMon"][type]; |
| | | 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 = `mon_type${type}_` + v.i; |
| | | let refName = "group_yc_" + v.i; |
| | | let $el = this.$refs[refName]; |
| | | |
| | | 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); |
| | | 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, |
| | | monNum: $el.option.monNum, |
| | | battIndex: 0, |
| | | }); |
| | | }); |
| | | |
| | | updateMon(params) |
| | | 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); |
| | |
| | | color: #fff; |
| | | // height: 100%; |
| | | // flex: 1; |
| | | &.right { |
| | | margin-left: 10px; |
| | | &.top { |
| | | // margin-left: 10px; |
| | | // flex: 1.24; |
| | | flex: 1.1; |
| | | // flex: 1; |
| | | height: 300px; |
| | | .content { |
| | | height: 100%; |
| | | padding: 10px 30px; |
| | | 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; |
| | |
| | | background: #011f39; |
| | | display: flex; |
| | | flex-direction: column; |
| | | padding: 6px; |
| | | padding: 2px 6px; |
| | | |
| | | .item-row { |
| | | display: flex; |
| | |
| | | .banner { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin: -10px -10px 0 -10px; |
| | | // margin: -10px -10px 0 -10px; |
| | | margin-bottom: 10px; |
| | | } |
| | | .grid1 { |
| | | flex: 1; |
| | |
| | | overflow-y: auto; |
| | | } |
| | | .el_col:nth-child(n + 3) { |
| | | margin-top: 20px; |
| | | margin-top: 8px; |
| | | } |
| | | </style> |
| | |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 模拟告警 |
| | | * @returns |
| | | */ |
| | | export const setAlarm = (data) => { |
| | | return axios({ |
| | | method: "POST", |
| | | url: "CkpowerdevBattRsalarmSet/setDevAlmHrStop", |
| | | data |
| | | }); |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 核容终止时设置单体数据 |
| | | * @returns |
| | | */ |
| | | export const updateDataHrStop = (data) => { |
| | | return axios({ |
| | | method: "POST", |
| | | url: "ckPowerDevBattRtStateSet/updateDataHrStop", |
| | | data |
| | | }); |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 核容终止时设置组端 遥信量 |
| | | * @returns |
| | | */ |
| | | export const updateStateHrStop = (data) => { |
| | | return axios({ |
| | | method: "POST", |
| | | url: "ckPowerDevBattRtStateSet/updateStateHrStop", |
| | | data |
| | | }); |
| | | }; |
| | |
| | | import const_9100 from "./const_9100"; |
| | | const { stopReason } = const_9100; |
| | | |
| | | // 交直流 |
| | | const props1 = [ |
| | | { |
| | |
| | | key0: "currDirReal", |
| | | key1: "currDirFake", |
| | | flag: "currDirSt", |
| | | option: ['充电', '放电'] |
| | | option: ["充电", "放电"], |
| | | }, |
| | | { |
| | | label: "电流", |
| | |
| | | flag: "monTmpSt", |
| | | }, |
| | | { |
| | | label: "单体N剩余容量", |
| | | label: "单体N均衡电流", |
| | | key0: "monJhCurrReal", |
| | | key1: "monJhCurrFake", |
| | | flag: "monJhCurrSt", |
| | | }, |
| | | { |
| | | label: "单体N终止剩余容量", |
| | | key0: "monRestCapReal", |
| | | key1: "monRestCapFake", |
| | | flag: "monRestCapSt", |
| | | }, |
| | | { |
| | | label: "单体N均衡电流", |
| | | key0: "monJhCurrReal", |
| | | key1: "monJhCurrFake", |
| | | flag: "monJhCurrSt", |
| | | label: "单体N终止电压", |
| | | key0: "testMonVolReal", |
| | | key1: "testMonVolFake", |
| | | flag: "testMonVolSt", |
| | | }, |
| | | { |
| | | label: "单体N终止温度", |
| | | key0: "testMonTmpReal", |
| | | key1: "testMonTmpFake", |
| | | flag: "testMonTmpSt", |
| | | }, |
| | | ]; |
| | | |
| | | const alarm = [ |
| | | { |
| | | label: "常闭接触器K1告警", |
| | | key0: "k1AlmReal", |
| | | key1: "k1AlmFake", |
| | | flag: "k1AlmSt", |
| | | }, |
| | | { |
| | | label: "通讯告警", |
| | | key0: "devCommerrReal", |
| | | key1: "devCommerrFake", |
| | | flag: "devCommerrSt", |
| | | }, |
| | | { |
| | | label: "二极管D1告警", |
| | | key0: "d1AlmReal", |
| | | key1: "d1AlmFake", |
| | | flag: "d1AlmSt", |
| | | }, |
| | | ]; |
| | | |
| | | const props3 = [ |
| | | { |
| | | label: "设备工作状态", |
| | | key0: "devWorkStateReal", |
| | | key1: "devWorkStateFake", |
| | | flag: "devWorkStateSt", |
| | | option: [ |
| | | "在线浮充", |
| | | "预充电(限流充电)", |
| | | "核容测试", |
| | | "停电放电", |
| | | "内阻测试", |
| | | "K1/D1 测试", |
| | | ], |
| | | }, |
| | | { |
| | | label: "核容终止原因", |
| | | key0: "testStopTypeReal", |
| | | key1: "testStopTypeFake", |
| | | option: stopReason, |
| | | flag: "testStopTypeSt", |
| | | }, |
| | | { |
| | | label: "终止在线电压", |
| | | key0: "testOnlineVolReal", |
| | | key1: "testOnlineVolFake", |
| | | flag: "testOnlineVolSt", |
| | | }, |
| | | { |
| | | label: "终止组端电压", |
| | | key0: "testGroupVolReal", |
| | | key1: "testGroupVolFake", |
| | | flag: "testGroupVolSt", |
| | | }, |
| | | { |
| | | label: "终止时已放电时间", |
| | | key0: "testTimeLongReal", |
| | | key1: "testTimeLongFake", |
| | | flag: "testTimeLongSt", |
| | | }, |
| | | { |
| | | label: "终止时核容电流", |
| | | key0: "testOverCurrReal", |
| | | key1: "testOverCurrFake", |
| | | flag: "testOverCurrSt", |
| | | }, |
| | | { |
| | | label: "终止时剩余容量", |
| | | key0: "testOverRestCapReal", |
| | | key1: "testOverRestCapFake", |
| | | flag: "testOverRestCapSt", |
| | | }, |
| | | { |
| | | label: "K1触点电阻值", |
| | | key0: "k1PointResReal", |
| | | key1: "k1PointResFake", |
| | | flag: "k1PointResSt", |
| | | }, |
| | | { |
| | | label: "K1触点测试电流", |
| | | key0: "k1PointCurrReal", |
| | | key1: "k1PointCurrFake", |
| | | flag: "k1PointCurrSt", |
| | | }, |
| | | { |
| | | label: "D1导通压降", |
| | | key0: "d1CondVolDpReal", |
| | | key1: "d1CondVolDpFake", |
| | | flag: "d1CondVolDpSt", |
| | | }, |
| | | { |
| | | label: "D1导通测试电流", |
| | | key0: "d1CondTestCurrReal", |
| | | key1: "d1CondTestCurrFake", |
| | | flag: "d1CondTestCurrSt", |
| | | }, |
| | | ]; |
| | | |
| | |
| | | for (let i = 0; i < count; i++) { |
| | | let idx = i + 1; |
| | | sub.push({ |
| | | label: label.replace('N', idx), |
| | | label: label.replace("N", idx), |
| | | key0, |
| | | key1, |
| | | flag, |
| | | monNum: idx |
| | | monNum: idx, |
| | | }); |
| | | } |
| | | list.push(sub); |
| | |
| | | export default { |
| | | props1, |
| | | props2, |
| | | props3, |
| | | alarm, |
| | | getPropList, |
| | | }; |
| | |
| | | <template> |
| | | <div class="p-main flex-c"> |
| | | <panel class="panel p-content"> |
| | | <div class="panel-content flex-c"> |
| | | <div class="search"> |
| | | <div class="s-item"> |
| | | <div class="label">操作类型</div> |
| | | <div class="value"> |
| | | <el-select |
| | | v-model="cmdType" |
| | | class="dark" |
| | | size="mini" |
| | | @change="getList" |
| | | filterable |
| | | placeholder="请选择" |
| | | > |
| | | <el-option label="全部" value=""></el-option> |
| | | <el-option |
| | | v-for="(item, idx) in opInfo" |
| | | :key="'level_' + idx" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | <el-radio-group v-model="acTab" size="mini"> |
| | | <el-radio-button label="YC">遥测量</el-radio-button> |
| | | <el-radio-button label="YX">遥信量</el-radio-button> |
| | | </el-radio-group> |
| | | <div class="p-container"> |
| | | <transition-group name="slide"> |
| | | <div class="page-content flex-r" key="yc" v-show="acTab == 'YC'"> |
| | | <panel class="panel p-content"> |
| | | <div class="panel-content flex-c"> |
| | | <div class="search"> |
| | | <div class="s-item"> |
| | | <div class="label">操作类型</div> |
| | | <div class="value"> |
| | | <el-select |
| | | v-model="cmdType" |
| | | class="dark" |
| | | size="mini" |
| | | @change="getYCList" |
| | | filterable |
| | | placeholder="请选择" |
| | | > |
| | | <el-option label="全部" value=""></el-option> |
| | | <el-option |
| | | v-for="(item, idx) in opInfo" |
| | | :key="'level_' + idx" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="s-item"> |
| | | <div class="label">测试日期</div> |
| | | <div class="value"> |
| | | <el-date-picker |
| | | v-model="date1_1" |
| | | size="mini" |
| | | class="time_box dark" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | @change="getYCList" |
| | | value-format="yyyy-MM-dd" |
| | | ></el-date-picker |
| | | >- |
| | | <el-date-picker |
| | | v-model="date1_2" |
| | | size="mini" |
| | | class="time_box dark" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | @change="getYCList" |
| | | value-format="yyyy-MM-dd" |
| | | ></el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="s-item"> |
| | | <gradient-btn size="sm" @click="getYCList">查询</gradient-btn> |
| | | </div> |
| | | </div> |
| | | <div class="table-wrap"> |
| | | <el-table |
| | | id="batteryrTimequeryTable" |
| | | stripe |
| | | size="small" |
| | | :data="table1.datas" |
| | | height="100%" |
| | | class="table-dark" |
| | | tooltip-effect="light" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <el-table-column |
| | | label="序号" |
| | | type="index" |
| | | width="80" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | v-for="header in table1.headers" |
| | | :key="header.prop" |
| | | :prop="header.prop" |
| | | :label="header.label" |
| | | :width="header.width" |
| | | :min-width="header.minWidth" |
| | | show-overflow-tooltip |
| | | align="center" |
| | | ></el-table-column> |
| | | <!-- <el-table-column |
| | | prop="cztime" |
| | | fixed="right" |
| | | width="240px" |
| | | align="center" |
| | | label="操作" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | class="yellow" |
| | | size="mini" |
| | | @click="details(scope.row)" |
| | | >详情</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | </div> |
| | | <!-- 底部分页 --> |
| | | <el-pagination |
| | | class="pages center dark" |
| | | :current-page="pageNum1" |
| | | @size-change="handleSizeChange1" |
| | | @current-change="handleCurrentChange1" |
| | | :page-sizes="[10, 20, 30, 50, 100]" |
| | | :page-size="pageSize1" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total1" |
| | | ></el-pagination> |
| | | </div> |
| | | </div> |
| | | <div class="s-item"> |
| | | <div class="label">测试日期</div> |
| | | <div class="value"> |
| | | <el-date-picker |
| | | v-model="date1" |
| | | size="mini" |
| | | class="time_box dark" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | @change="getList" |
| | | value-format="yyyy-MM-dd" |
| | | ></el-date-picker |
| | | >- |
| | | <el-date-picker |
| | | v-model="date2" |
| | | size="mini" |
| | | class="time_box dark" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | @change="getList" |
| | | value-format="yyyy-MM-dd" |
| | | ></el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="s-item"> |
| | | <gradient-btn size="sm" @click="getList">查询</gradient-btn> |
| | | </div> |
| | | </panel> |
| | | </div> |
| | | <div class="table-wrap"> |
| | | <el-table |
| | | id="batteryrTimequeryTable" |
| | | stripe |
| | | size="small" |
| | | :data="table.datas" |
| | | height="100%" |
| | | class="table-dark" |
| | | tooltip-effect="light" |
| | | > |
| | | <el-table-column |
| | | label="序号" |
| | | type="index" |
| | | width="80" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | v-for="header in table.headers" |
| | | :key="header.prop" |
| | | :prop="header.prop" |
| | | :label="header.label" |
| | | :width="header.width" |
| | | :min-width="header.minWidth" |
| | | show-overflow-tooltip |
| | | align="center" |
| | | ></el-table-column> |
| | | <!-- <el-table-column |
| | | prop="cztime" |
| | | fixed="right" |
| | | width="240px" |
| | | align="center" |
| | | label="操作" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | class="yellow" |
| | | size="mini" |
| | | @click="details(scope.row)" |
| | | >详情</el-button |
| | | <div class="page-content flex-r" key="yc" v-show="acTab == 'YX'"> |
| | | <panel class="panel p-content"> |
| | | <div class="panel-content flex-c"> |
| | | <div class="search"> |
| | | <!-- <div class="s-item"> |
| | | <div class="label">操作类型</div> |
| | | <div class="value"> |
| | | <el-select |
| | | v-model="cmdType" |
| | | class="dark" |
| | | size="mini" |
| | | @change="getYXList" |
| | | filterable |
| | | placeholder="请选择" |
| | | > |
| | | <el-option label="全部" value=""></el-option> |
| | | <el-option |
| | | v-for="(item, idx) in opInfo" |
| | | :key="'level_' + idx" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> --> |
| | | <div class="s-item"> |
| | | <div class="label">测试日期</div> |
| | | <div class="value"> |
| | | <el-date-picker |
| | | v-model="date2_1" |
| | | size="mini" |
| | | class="time_box dark" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | @change="getYXList" |
| | | value-format="yyyy-MM-dd" |
| | | ></el-date-picker |
| | | >- |
| | | <el-date-picker |
| | | v-model="date2_2" |
| | | size="mini" |
| | | class="time_box dark" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | @change="getYXList" |
| | | value-format="yyyy-MM-dd" |
| | | ></el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="s-item"> |
| | | <gradient-btn size="sm" @click="getYXList">查询</gradient-btn> |
| | | </div> |
| | | </div> |
| | | <div class="table-wrap"> |
| | | <el-table |
| | | id="batteryrTimequeryTable" |
| | | stripe |
| | | size="small" |
| | | :data="table2.datas" |
| | | height="100%" |
| | | class="table-dark" |
| | | tooltip-effect="light" |
| | | > |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | <el-table-column |
| | | label="序号" |
| | | type="index" |
| | | width="80" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | v-for="header in table2.headers" |
| | | :key="header.prop" |
| | | :prop="header.prop" |
| | | :label="header.label" |
| | | :width="header.width" |
| | | :min-width="header.minWidth" |
| | | show-overflow-tooltip |
| | | align="center" |
| | | ></el-table-column> |
| | | <!-- <el-table-column |
| | | prop="cztime" |
| | | fixed="right" |
| | | width="240px" |
| | | align="center" |
| | | label="操作" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | class="yellow" |
| | | size="mini" |
| | | @click="details(scope.row)" |
| | | >详情</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | </div> |
| | | <!-- 底部分页 --> |
| | | <el-pagination |
| | | class="pages center dark" |
| | | :current-page="pageNum2" |
| | | @size-change="handleSizeChange2" |
| | | @current-change="handleCurrentChange2" |
| | | :page-sizes="[10, 20, 30, 50, 100]" |
| | | :page-size="pageSize2" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total2" |
| | | ></el-pagination> |
| | | </div> |
| | | </panel> |
| | | </div> |
| | | <!-- 底部分页 --> |
| | | <el-pagination |
| | | class="pages center dark" |
| | | :current-page="pageNum" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :page-sizes="[10, 20, 30, 50, 100]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total" |
| | | ></el-pagination> |
| | | </div> |
| | | </panel> |
| | | </transition-group> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import Panel from "@/components/panel.vue"; |
| | | import gradientBtn from "@/components/gradientBtn.vue"; |
| | | |
| | | import { getBattSetLog, getOpInfo } from "./js/apis"; |
| | | import { getBattSetLog, getOpInfo, getHrStopAlmLog } from "./js/apis"; |
| | | export default { |
| | | name: "hrTestRecord", |
| | | |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | date1: "", |
| | | date2: "", |
| | | acTab: "YC", |
| | | pageNum1: 1, |
| | | pageSize1: 10, |
| | | pageNum2: 1, |
| | | pageSize2: 10, |
| | | date1_1: "", |
| | | date1_2: "", |
| | | date2_1: "", |
| | | date2_2: "", |
| | | cmdType: "", |
| | | opInfo: [], |
| | | total: 0, |
| | | table: { |
| | | total1: 0, |
| | | total2: 0, |
| | | table1: { |
| | | headers: [ |
| | | // { |
| | | // prop: "devName", |
| | |
| | | minWidth: 180, |
| | | }, |
| | | { |
| | | prop: "value", |
| | | prop: "value1", |
| | | label: "设置值", |
| | | minWidth: 180, |
| | | }, |
| | | { |
| | | prop: "createTime", |
| | | label: "测控时间", |
| | | width: 180, |
| | | }, |
| | | // { |
| | | // prop: "almStartTime", |
| | | // label: "测控次数", |
| | | // width: 180, |
| | | // }, |
| | | // { |
| | | // prop: "almConfirmedTime", |
| | | // label: "最后一次测控时间", |
| | | // width: 180, |
| | | // }, |
| | | ], |
| | | datas: [], |
| | | }, |
| | | table2: { |
| | | headers: [ |
| | | // { |
| | | // prop: "devName", |
| | | // label: "设备名称", |
| | | // minWidth: 180, |
| | | // }, |
| | | { |
| | | prop: "cmdName", |
| | | label: "操作类型", |
| | | width: 180, |
| | | }, |
| | | { |
| | | prop: "paramCn", |
| | | label: "参数名称", |
| | | minWidth: 180, |
| | | }, |
| | | { |
| | | prop: "stStr", |
| | | label: "动作", |
| | | minWidth: 180, |
| | | }, |
| | | { |
| | |
| | | // details() { |
| | | // this.$router.push("/data-record/power-details"); |
| | | // }, |
| | | getList() { |
| | | getYXList() { |
| | | let params = { |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize, |
| | | cmdType: this.cmdType, |
| | | createTime: this.date1 |
| | | ? this.date1 + " 00:00:00" |
| | | pageNum: this.pageNum2, |
| | | pageSize: this.pageSize2, |
| | | startTime: this.date2_1 |
| | | ? this.date2_1 + " 00:00:00" |
| | | : "2023-01-01 00:00:00", |
| | | createTime1: this.date2 |
| | | ? this.date2 + " 23:59:59" |
| | | endTime: this.date2_2 |
| | | ? this.date2_2 + " 23:59:59" |
| | | : new Date().format("yyyy-MM-dd hh:mm:ss"), |
| | | }; |
| | | console.log("=====9=", params, JSON.stringify(params)); |
| | | // console.log("=====9=", params, JSON.stringify(params)); |
| | | // this.SOCKET1.send(JSON.stringify(params)); |
| | | getHrStopAlmLog(params) |
| | | .then((res) => { |
| | | let { |
| | | code, |
| | | data, |
| | | data2: { list, total }, |
| | | } = res.data; |
| | | let list1 = []; |
| | | let total1 = 0; |
| | | if (code && data) { |
| | | list1 = list.map((v) => { |
| | | v.stStr = v.st ? "执行" : "取消执行"; |
| | | return v; |
| | | }); |
| | | total1 = total; |
| | | } |
| | | this.table2.datas = list1; |
| | | this.total2 = total1; |
| | | }) |
| | | .catch((err) => { |
| | | console.log(err); |
| | | }); |
| | | }, |
| | | getYCList() { |
| | | let params = { |
| | | pageNum: this.pageNum1, |
| | | pageSize: this.pageSize1, |
| | | cmdType: this.cmdType, |
| | | createTime: this.date1_1 |
| | | ? this.date1_1 + " 00:00:00" |
| | | : "2023-01-01 00:00:00", |
| | | createTime1: this.date1_2 |
| | | ? this.date1_2 + " 23:59:59" |
| | | : new Date().format("yyyy-MM-dd hh:mm:ss"), |
| | | }; |
| | | // console.log("=====9=", params, JSON.stringify(params)); |
| | | // this.SOCKET1.send(JSON.stringify(params)); |
| | | getBattSetLog(params) |
| | | .then((res) => { |
| | |
| | | let total1 = 0; |
| | | if (code && data) { |
| | | list1 = list.map((v) => { |
| | | v.value = v.value || '--'; |
| | | v.paramCn = v.paramCn || '--'; |
| | | v.value1 = v.valueName |
| | | ? `${v.valueName} [${v.value}]` |
| | | : v.value || "--"; |
| | | v.paramCn = v.paramCn || "--"; |
| | | return v; |
| | | }); |
| | | total1 = total; |
| | | } |
| | | this.table.datas = list1; |
| | | this.total = total1; |
| | | this.table1.datas = list1; |
| | | this.total1 = total1; |
| | | }) |
| | | .catch((err) => { |
| | | console.log(err); |
| | |
| | | value: v, |
| | | })); |
| | | } |
| | | console.log(list,'list'); |
| | | console.log(list, "list"); |
| | | this.opInfo = list; |
| | | }) |
| | | .catch((err) => { |
| | |
| | | }); |
| | | }, |
| | | // 展示数据数量 |
| | | handleSizeChange(val) { |
| | | this.pageSize = val; |
| | | this.getList(); |
| | | handleSizeChange1(val) { |
| | | this.pageSize1 = val; |
| | | this.getYCList(); |
| | | }, |
| | | // 翻页 |
| | | handleCurrentChange(val) { |
| | | this.pageNum = val; |
| | | this.getList(); |
| | | handleCurrentChange1(val) { |
| | | this.pageNum1 = val; |
| | | this.getYCList(); |
| | | }, |
| | | // 展示数据数量 |
| | | handleSizeChange2(val) { |
| | | this.pageSize2 = val; |
| | | this.getYXList(); |
| | | }, |
| | | // 翻页 |
| | | handleCurrentChange2(val) { |
| | | this.pageNum2 = val; |
| | | this.getYXList(); |
| | | }, |
| | | }, |
| | | |
| | | mounted() { |
| | | this.getOpInfo(); |
| | | this.getList(); |
| | | this.getYCList(); |
| | | this.getYXList(); |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .slide-enter-active, |
| | | .slide-leave-active { |
| | | transition: all 0.3s; |
| | | } |
| | | |
| | | .slide-enter { |
| | | transform: translateX(100%); |
| | | } |
| | | |
| | | .slide-leave-to { |
| | | transform: translateX(-100%); |
| | | } |
| | | |
| | | .slide-enter-to { |
| | | transform: translateX(0); |
| | | } |
| | | .p-main { |
| | | height: 100%; |
| | | .btn-grp { |
| | |
| | | } |
| | | } |
| | | } |
| | | .p-container { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | position: relative; |
| | | } |
| | | .page-content { |
| | | height: 100%; |
| | | & ~ .page-content { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | } |
| | | } |
| | | .p-content { |
| | | flex: 1; |
| | | margin-top: 4px; |
| | |
| | | |
| | | |
| | | /** |
| | | * 核容测试记录 |
| | | * 核容测试记录 遥测量 |
| | | * @returns |
| | | */ |
| | | export const getBattSetLog = (data) => { |
| | |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * 查询遥信量日志 |
| | | * @returns |
| | | */ |
| | | export const getHrStopAlmLog = (data) => { |
| | | return axios({ |
| | | method: "POST", |
| | | url: "ckpowerdevBattRsalarmSetLog/getHrStopAlmLog", |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | |
| | | <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="3">均衡电流</el-radio-button> |
| | | <!-- <el-radio-button :label="3">剩余容量</el-radio-button> --> |
| | | </el-radio-group> |
| | | </div> |
| | | <div class="batt-contain"> |
| | |
| | | cachedViews: (state) => state.tagsView.cachedViews, |
| | | }), |
| | | battInfoTypeStr() { |
| | | return ["电压", "内阻", "温度", "剩余容量", "均衡电流"][ |
| | | // return ["电压", "内阻", "温度", "剩余容量", "均衡电流"][ |
| | | // this.battInfoType |
| | | // ]; |
| | | return ["电压", "内阻", "温度", "均衡电流"][ |
| | | this.battInfoType |
| | | ]; |
| | | }, |
| | |
| | | monTmpReal, |
| | | monTmpFake, |
| | | monTmpSt, |
| | | monRestCapReal, |
| | | monRestCapFake, |
| | | monRestCapSt, |
| | | // monRestCapReal, |
| | | // monRestCapFake, |
| | | // monRestCapSt, |
| | | monJhCurrReal, |
| | | monJhCurrFake, |
| | | monJhCurrSt, |
| | |
| | | let vol = monVolSt ? monVolFake : monVolReal; |
| | | let res = monResSt ? monResFake : monResReal; |
| | | let tmp = monTmpSt ? monTmpFake : monTmpReal; |
| | | let cap = monRestCapSt ? monRestCapFake : monRestCapReal; |
| | | // let cap = monRestCapSt ? monRestCapFake : monRestCapReal; |
| | | let curr = monJhCurrSt ? monJhCurrFake : monJhCurrReal; |
| | | return [vol + "V", res + "Ω", tmp + "℃", cap + "AH", curr + "A"]; |
| | | // return [vol + "V", res + "Ω", tmp + "℃"]; |
| | | // return [vol + "V", res + "Ω", tmp + "℃", cap + "AH", curr + "A"]; |
| | | return [vol + "V", res + "Ω", tmp + "℃", curr + "A"]; |
| | | }); |
| | | }, |
| | | }, |