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