From d0f98ad8e1047e3161a458399ad3005404ed87b8 Mon Sep 17 00:00:00 2001 From: whychdw <496960745@qq.com> Date: 星期五, 06 六月 2025 15:52:15 +0800 Subject: [PATCH] 标准参数管理 --- src/views/alarm/pwrAlarm.vue | 236 ++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 154 insertions(+), 82 deletions(-) diff --git a/src/views/alarm/pwrAlarm.vue b/src/views/alarm/pwrAlarm.vue index a830a18..90f7a05 100644 --- a/src/views/alarm/pwrAlarm.vue +++ b/src/views/alarm/pwrAlarm.vue @@ -33,6 +33,10 @@ } from "@/api/user"; import { + getPowerAlmIdType, + } from '@/api/station.js'; + + import { confirmPwrAlm, } from "@/api/alarm.js"; @@ -135,6 +139,22 @@ rowData: {}, }); + const almIds = ref([]); + const alarmTypeList = ref([]); + + const checkAll = ref(true); + const isIndeterminate = ref(false); + + function handleCheckAllChange (val) { + almIds.value = val ? alarmTypeList.value.map(v => v.value) : [] + isIndeterminate.value = false + } + function handleCheckedChange (value) { + const checkedCount = value.length + checkAll.value = checkedCount === alarmTypeList.value.length + isIndeterminate.value = checkedCount > 0 && checkedCount < alarmTypeList.value.length + } + // const tableData = reactive([]); // const rowData = reactive({}); @@ -167,6 +187,18 @@ nextTick(() => { sendMessage(); }); + } + + // 鏌ヨ鍛婅绫诲瀷 + async function getAlarmType() { + let res = await getPowerAlmIdType(); + let { code, data, data2 } = res; + let list = []; + if (code && data) { + list = Object.keys(data2).map((key) => ({value: key, label: data2[key]})); + } + alarmTypeList.value = list; + almIds.value = list.map(v => v.value); } watch( @@ -258,7 +290,8 @@ } - onMounted(() => { + onMounted(async () => { + await getAlarmType(); sendMessage(); }); </script> @@ -271,96 +304,125 @@ <yc-card is-full> <div class="page-content-wrapper"> <div class="page-content-tools page-filter"> - <div class="table-row"> - <div class="table-cell text-right">鐪侊細</div> - <div class="table-cell"> - <el-select - v-model="provice" - size="small" - clearable - placeholder="璇烽�夋嫨鐪�" - @change="selectChange" - > - <el-option - v-for="item in proviceList" - :key="'l0_' + item" - :label="item" - :value="item" + <div class="grid-container" :style="{'--counter': 5}"> + <div class="grid-item"> + <div class="label">鐪�</div> + <div class="value"> + <el-select + v-model="provice" + size="small" + clearable + placeholder="璇烽�夋嫨鐪�" + @change="selectChange" > - </el-option> - </el-select> + <el-option + v-for="item in proviceList" + :key="'l0_' + item" + :label="item" + :value="item" + > + </el-option> + </el-select> + </div> </div> - <div class="table-cell text-right">甯傦細</div> - <div class="table-cell"> - <el-select - v-model="city" - size="small" - clearable - placeholder="璇烽�夋嫨甯�" - @change="selectChange" - > - <el-option - v-for="item in cityList" - :key="'l1_' + item" - :label="item" - :value="item" + <div class="grid-item"> + <div class="label">甯�</div> + <div class="value"> + <el-select + v-model="city" + size="small" + clearable + placeholder="璇烽�夋嫨甯�" + @change="selectChange" > - </el-option> - </el-select> + <el-option + v-for="item in cityList" + :key="'l1_' + item" + :label="item" + :value="item" + > + </el-option> + </el-select> + </div> </div> - <div class="table-cell text-right">鍖哄幙:</div> - <div class="table-cell"> - <el-select - v-model="country" - clearable - size="small" - placeholder="璇烽�夋嫨鍖哄幙" - @change="selectChange" - > - <el-option - v-for="item in countryList" - :key="'l2_' + item" - :label="item" - :value="item" + <div class="grid-item"> + <div class="label">鍖哄幙</div> + <div class="value"> + <el-select + v-model="country" + clearable + size="small" + placeholder="璇烽�夋嫨鍖哄幙" + @change="selectChange" > - </el-option> - </el-select> + <el-option + v-for="item in countryList" + :key="'l2_' + item" + :label="item" + :value="item" + > + </el-option> + </el-select> + </div> </div> - <div class="table-cell text-right">绔欑偣:</div> - <div class="table-cell"> - <el-select - v-model="stationName" - clearable - size="small" - placeholder="璇烽�夋嫨绔欑偣" - @change="selectChange" - > - <el-option - v-for="item in stationList" - :key="'l3_' + item.stationId" - :label="item.stationName" - :value="item.stationName" + <div class="grid-item"> + <div class="label">绔欑偣</div> + <div class="value"> + <el-select + v-model="stationName" + clearable + size="small" + placeholder="璇烽�夋嫨绔欑偣" + @change="selectChange" > - </el-option> - </el-select> + <el-option + v-for="item in stationList" + :key="'l3_' + item.stationId" + :label="item.stationName" + :value="item.stationName" + > + </el-option> + </el-select> + </div> </div> - <div class="table-cell text-right">鍛婅绛夌骇:</div> - <div class="table-cell"> - <el-select - v-model="alarmLevel" - clearable - size="small" - placeholder="璇烽�夋嫨鍛婅绛夌骇" - @change="selectChange" - > - <el-option - v-for="item in alarmLevels" - :key="item.value" - :label="item.label" - :value="item.value" + <div class="grid-item"> + <div class="label">鍛婅绛夌骇</div> + <div class="value"> + <el-select + v-model="alarmLevel" + clearable + size="small" + placeholder="璇烽�夋嫨鍛婅绛夌骇" + @change="selectChange" > - </el-option> - </el-select> + <el-option + v-for="item in alarmLevels" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </div> + </div> + <div class="grid-item"> + <div class="label">鍛婅绫诲瀷</div> + <div class="value flex-row" style="grid-column: span 9;"> + <el-checkbox + v-model="checkAll" + :indeterminate="isIndeterminate" + @change="handleCheckAllChange" + >鍏ㄩ�� + </el-checkbox> + <el-checkbox-group + class="group" + v-model="almIds" + @change="handleCheckedChange" + > + <el-checkbox v-for="(item, idx) in alarmTypeList" :key="'list0_' + idx" :label="item.label" :value="item.value"> + </el-checkbox> + </el-checkbox-group> + </div> </div> </div> </div> @@ -436,6 +498,16 @@ .page-content-tools { padding-bottom: 8px; + .flex-row { + display: flex; + align-items: center; + :deep(.el-checkbox) { + color: #fff; + } + .group { + margin-left: 30px; + } + } } .page-content-table { -- Gitblit v1.9.1