From 21d10974b1f1e19162b690c313c6f4014f182963 Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: 星期四, 31 八月 2023 15:53:35 +0800
Subject: [PATCH] 预警管理

---
 src/views/warningManage/warningInfo/index.vue |  134 +++++++++++++++++++++++++-------------------
 1 files changed, 77 insertions(+), 57 deletions(-)

diff --git a/src/views/warningManage/warningInfo/index.vue b/src/views/warningManage/warningInfo/index.vue
index 3ad31f8..4adf885 100644
--- a/src/views/warningManage/warningInfo/index.vue
+++ b/src/views/warningManage/warningInfo/index.vue
@@ -40,8 +40,9 @@
                             class="w100"
                             style="max-width: 180px"
                             size="default"
+                            filterable
                         >
-                            <el-option v-for="item in state.tableData.gasList" :key="item.label" :label="item.value" :value="item.label"></el-option>
+                            <el-option v-for="item in state.tableData.gasList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                         </el-select>
                     </el-form-item>
                     <el-button size="default" type="primary" class="ml10" @click="search()">
@@ -60,28 +61,34 @@
             </div>
             <el-table :data="state.tableData.data" style="width: 100%">
                 <el-table-column align="center" prop="content" label="预警内容"/>
-                <el-table-column align="center" prop="warningTime" label="预警时间"/>
-                <el-table-column align="center" prop="name" label="气体名称"/>
-                <el-table-column align="center" prop="ppm" label="气体浓度"/>
-                <el-table-column align="center" prop="level" label="预警级别" height="100">
+                <el-table-column align="center" prop="warnTime" label="预警时间"/>
+                <el-table-column align="center" prop="gasName" label="气体名称"/>
+                <el-table-column align="center" prop="gasConcentration" label="气体浓度"/>
+                <el-table-column align="center" prop="gasThresholdId" label="预警级别" height="100">
                     <template #default="scope">
-                        <span class="yellow" v-if="scope.row.level == '1'">黄色预警</span>
-                        <span class="red" v-if="scope.row.level == '2'">红色预警</span>
+                        <span class="yellow" v-if="scope.row.gasThresholdId == '1'">黄色预警</span>
+                        <span class="red" v-else-if="scope.row.gasThresholdId == '2'">红色预警</span>
                     </template>
                 </el-table-column>
-                <el-table-column align="center" prop="notifier" label="通知人员"/>
-                <el-table-column align="center" prop="managePeople" label="处理人"/>
-                <el-table-column align="center" prop="manageTime" label="处理时间"/>
+                <el-table-column align="center" prop="gasWarnLogSmsUsers" label="通知人员">
+                    <template #default="scope">
+                        <div v-for="(item, index) in scope.row.gasWarnLogSmsUsers" :key="index">
+                            {{item.realname}}
+                        </div>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" prop="handlerRealName" label="处理人"/>
+                <el-table-column align="center" prop="handlerTime" label="处理时间"/>
                 <el-table-column align="center" prop="status" label="处理状态">
                     <template #default="scope">
-                        <span v-if="scope.row.status == '1'">未处理</span>
-                        <span v-if="scope.row.status == '2'">已处理</span>
+                        <span v-if="scope.row.status == '0'">未处理</span>
+                        <span v-if="scope.row.status == '1'">已处理</span>
                     </template>
                 </el-table-column>
                 <el-table-column label="操作" show-overflow-tooltip width="140">
                     <template #default="scope">
-                        <el-button size="small" text type="primary" v-if="scope.row.status == '2'" @click="openDialog('查看', scope.row)">查看</el-button>
-                        <el-button size="small" text type="primary" v-if="scope.row.status == '1'" @click="openDialog('处理', scope.row)">处理</el-button>
+                        <el-button size="small" text type="primary" v-if="scope.row.status == '1'" @click="openDialog('查看', scope.row)">查看</el-button>
+                        <el-button size="small" text type="primary" v-if="scope.row.status == '0'" @click="openDialog('处理', scope.row)">处理</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -106,42 +113,17 @@
 </template>
 
 <script setup lang="ts">
-import {reactive, ref} from "vue";
+import {reactive, ref, onMounted} from "vue";
 import { ElMessage, ElMessageBox } from 'element-plus'
 import {InfoDataState, PeopleDataState} from "/@/types/warning";
 import infoDialog from "./component/infoDialog.vue";
+import { gasManageApi } from "/@/api/basicDataManage/gasManage";
+import {warningInfoApi} from "/@/api/warningManage/warningInfo";
 
 const infoRef = ref();
 const state = reactive<InfoDataState>({
     tableData: {
-        data: [
-            // {
-            //     id: '1',
-            //     content: '【气体监测预警提示】2023年10月20日8:30 甲烷气体浓度连续超标系统判断为黄色预警,请相关负责人及时检查处置。',
-            //     warningTime: '2023年10月20日 8:30',
-            //     name: '甲烷',
-            //     ppm: '5ppm',
-            //     level: '1',
-            //     notifier: '老娄、老程',
-            //     managePeople: '张三',
-            //     manageTime: '2023年10月20日  11:30',
-            //     status: '1',
-            // },
-            // {
-            //     id: '1',
-            //     content: '【气体监测预警提示】2023年10月20日8:30 甲烷气体浓度连续超标系统判断为黄色预警,请相关负责人及时检查处置。',
-            //     warningTime: '2023年10月20日 8:30',
-            //     name: '甲烷',
-            //     ppm: '5ppm',
-            //     level: '2',
-            //     notifier: '老娄、老程',
-            //     managePeople: '张三',
-            //     manageTime: '2023年10月20日  11:30',
-            //     status: '2',
-            //     method:'xxx'
-            // },
-
-        ],
+        data: [],
         total: 0,
         loading: false,
         listQuery: {
@@ -166,29 +148,64 @@
         ],
         statusList: [
             {
-                label: '1',
+                label: '0',
                 value: '未处理'
             },
             {
-                label: '2',
+                label: '1',
                 value: '已处理'
             }
         ],
-        gasList: [
-            {
-                label: '1',
-                value: '甲醛'
-            },
-            {
-                label: '2',
-                value: '甲烷'
-            }
-        ]
+        gasList: []
     }
 });
 
-const initInfoData = () => {
-    console.log("数据列表")
+//页面加载
+onMounted(() => {
+    getGas();
+    initInfoData();
+});
+
+//气体列表
+const getGas = async () => {
+    let res = await gasManageApi().getGas({});
+    if(res.data.code == 100){
+        state.tableData.gasList = res.data.data;
+    }else {
+        ElMessage({
+            type: 'warning',
+            message: res.data.msg
+        });
+    }
+};
+
+//预警信息列表
+const initInfoData = async () => {
+    const param = {
+        pageIndex: state.tableData.listQuery.pageIndex,
+        pageSize: state.tableData.listQuery.pageSize,
+        searchParams: {
+            startTime: state.tableData.listQuery.searchParams.time[0],
+            endTime: state.tableData.listQuery.searchParams.time[1],
+            gasCategoryId: state.tableData.listQuery.searchParams.gas,
+            status: state.tableData.listQuery.searchParams.status,
+            gasThresholdId: state.tableData.listQuery.searchParams.level,
+        }
+    };
+    let res = await warningInfoApi().getWarnLogPage(param);
+    console.log("res",res)
+    if(res.data.code == 100) {
+        state.tableData.data = res.data.data;
+        state.tableData.total = res.data.total;
+        state.tableData.listQuery.pageIndex = res.data.pageIndex;
+        state.tableData.listQuery.pageSize = res.data.pageSize;
+    }else {
+        ElMessage({
+            type: 'warning',
+            message: res.data.msg
+        });
+    }
+
 };
 const onHandleSizeChange = (val: number) => {
     state.tableData.listQuery.pageSize = val;
@@ -221,9 +238,12 @@
 };
 
 const search = () => {
+    state.tableData.listQuery.pageIndex = 1;
+    initInfoData();
     console.log("vla",state.tableData.listQuery.searchParams)
 }
 const reset = () => {
+    state.tableData.listQuery.pageIndex = 1;
     state.tableData.listQuery.searchParams.time = [];
     state.tableData.listQuery.searchParams.level = '';
     state.tableData.listQuery.searchParams.status = '';

--
Gitblit v1.9.2