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/warningPeople/index.vue | 68 ++++--
src/types/warning.d.ts | 31 +-
src/views/warningManage/warningPeople/component/peopleDialog.vue | 124 ++++++++--
src/views/warningManage/warningSet/component/setDialog.vue | 46 +++
src/api/warningManage/warningPeople/index.ts | 41 +++
src/api/basicDataManage/gasManage/index.ts | 9
src/api/warningManage/warningInfo/index.ts | 25 ++
src/views/warningManage/warningInfo/index.vue | 134 +++++++-----
src/views/warningManage/warningInfo/component/infoDialog.vue | 75 +++++-
src/api/warningManage/warningSet/index.ts | 24 ++
src/views/warningManage/warningSet/index.vue | 33 +-
11 files changed, 450 insertions(+), 160 deletions(-)
diff --git a/src/api/basicDataManage/gasManage/index.ts b/src/api/basicDataManage/gasManage/index.ts
index c37b56e..4062b55 100644
--- a/src/api/basicDataManage/gasManage/index.ts
+++ b/src/api/basicDataManage/gasManage/index.ts
@@ -12,6 +12,15 @@
});
},
+ //气体不分页
+ getGas: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/gasCategory/list`,
+ method: 'post',
+ data: data
+ });
+ },
+
//气体新增
addGas: (data: object) => {
return request({
diff --git a/src/api/warningManage/warningInfo/index.ts b/src/api/warningManage/warningInfo/index.ts
new file mode 100644
index 0000000..0be772f
--- /dev/null
+++ b/src/api/warningManage/warningInfo/index.ts
@@ -0,0 +1,25 @@
+import request from '/@/utils/request';
+
+export function warningInfoApi() {
+ return {
+
+ //预警信息分页
+ getWarnLogPage: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/gasWarnLog/page`,
+ method: 'post',
+ data: data
+ });
+ },
+
+ //预警信息处理
+ handleWarnLog: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/gasWarnLog/handleById`,
+ method: 'post',
+ data: data
+ });
+ },
+
+ };
+}
\ No newline at end of file
diff --git a/src/api/warningManage/warningPeople/index.ts b/src/api/warningManage/warningPeople/index.ts
new file mode 100644
index 0000000..31edc1c
--- /dev/null
+++ b/src/api/warningManage/warningPeople/index.ts
@@ -0,0 +1,41 @@
+import request from '/@/utils/request';
+
+export function warningPeopleApi() {
+ return {
+
+ //预警通知人员分页
+ getWarnUserPage: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/gasWarnUser/page`,
+ method: 'post',
+ data: data
+ });
+ },
+ //预警通知人员新增
+ addWarnUser: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/gasWarnUser/add`,
+ method: 'post',
+ data: data
+ });
+ },
+
+ //预警通知人员修改
+ handelWarnUser: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/gasWarnUser/update`,
+ method: 'post',
+ data: data
+ });
+ },
+
+ //预警通知人员删除
+ delWarnUser: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/gasWarnUser/del`,
+ method: 'post',
+ data: data
+ });
+ },
+ };
+}
\ No newline at end of file
diff --git a/src/api/warningManage/warningSet/index.ts b/src/api/warningManage/warningSet/index.ts
new file mode 100644
index 0000000..7e5cd8f
--- /dev/null
+++ b/src/api/warningManage/warningSet/index.ts
@@ -0,0 +1,24 @@
+import request from '/@/utils/request';
+
+export function warningSetApi() {
+ return {
+
+ //预警设置查询
+ getWarnSetPage: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/gasThreshold/list`,
+ method: 'post',
+ data: data
+ });
+ },
+
+ //预警设置修改
+ handelWarnSet: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/gasThreshold/update`,
+ method: 'post',
+ data: data
+ });
+ },
+ };
+}
\ No newline at end of file
diff --git a/src/types/warning.d.ts b/src/types/warning.d.ts
index 82748e5..7162092 100644
--- a/src/types/warning.d.ts
+++ b/src/types/warning.d.ts
@@ -1,6 +1,7 @@
interface TableDataRow {
+ id: string;
name: string;
- points: number;
+ threshold: number;
}
export interface TableDataState {
tableData: {
@@ -12,8 +13,9 @@
isShowUserDialog: boolean;
disabled: boolean;
setForm: {
+ id: string;
name: string;
- points: number;
+ threshold: number;
};
setFormRules:{},
}
@@ -22,6 +24,8 @@
id: string;
name: string;
phone: string;
+ realName: string;
+ userId: string;
}
export interface PeopleDataState {
tableData: {
@@ -32,7 +36,7 @@
pageIndex: number;
pageSize: number;
searchParams:{
- name: string
+ realName: string
}
};
}
@@ -43,8 +47,10 @@
isShowUserDialog: boolean;
disabled: boolean;
peopleForm: {
+ id: string;
name: string;
phone: string;
+ realName: string;
};
setFormRules:{},
peopleList: Array<TableDataPeople>
@@ -53,15 +59,16 @@
export interface TableDataInfo {
id: string;
content: string;
- warningTime: string;
- name: string;
- ppm: string;
- level: string;
- notifier: string;
- managePeople: string;
- manageTime: string;
+ warnTime: string;
+ gasName: string;
+ gasConcentration: string;
+ gasThresholdId: string;
+ handlerName: string;
+ handlerRealName: string;
+ handlerTime: string;
status: string;
method?: string;
+ gasWarnLogSmsUsers: []
}
export interface InfoDataState {
tableData: {
@@ -72,7 +79,7 @@
pageIndex: number;
pageSize: number;
searchParams:{
- time: [];
+ time: string[];
level: string;
status: string;
gas: string;
@@ -87,12 +94,14 @@
export interface people {
id: string;
name: string;
+ realName: string;
}
export interface InfoState {
title: string;
isShowUserDialog: boolean;
disabled: boolean;
infoForm: {
+ id: string;
name: string;
method: string;
};
diff --git a/src/views/warningManage/warningInfo/component/infoDialog.vue b/src/views/warningManage/warningInfo/component/infoDialog.vue
index df40d83..599ed3a 100644
--- a/src/views/warningManage/warningInfo/component/infoDialog.vue
+++ b/src/views/warningManage/warningInfo/component/infoDialog.vue
@@ -15,7 +15,7 @@
size="default"
:disabled="state.disabled"
>
- <el-option v-for="item in state.peopleList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ <el-option v-for="item in state.peopleList" :key="item.id" :label="item.realName" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="处理方式:" prop="points">
@@ -35,6 +35,9 @@
<script setup lang="ts">
import {reactive, ref} from "vue";
import {InfoState} from "/@/types/warning";
+import {userApi} from "/@/api/systemManage/user";
+import {ElMessage} from "element-plus";
+import {warningInfoApi} from "/@/api/warningManage/warningInfo";
const gasRef = ref();
const emit = defineEmits(["getInfoData"]);
@@ -43,42 +46,74 @@
isShowUserDialog: false,
disabled: false,
infoForm: {
+ id: '',
name: '',
method: ''
},
setFormRules:{
name: [{ required: true, message: '请选择预警人员', trigger: 'blur' }],
},
- peopleList: [
- // {
- // id: '1',
- // name: '张三',
- // },
- // {
- // id: '2',
- // name: '李四',
- // }
- ]
+ peopleList: []
});
const openDialog = (type: string, value: any) => {
+ getUserList();
state.isShowUserDialog = true;
if (type === '查看') {
state.disabled = true;
- state.infoForm = JSON.parse(JSON.stringify(value));
- state.infoForm.name = state.infoForm.managePeople;
- console.log("info",state.infoForm)
+ let data = JSON.parse(JSON.stringify(value));
+ state.infoForm.id = data.id;
+ state.infoForm.name = data.handlerId;
+ state.infoForm.method = data.handlerDesc;
} else if (type === '处理'){
state.disabled = false;
- state.infoForm = {
- name: '',
- method: ''
- }
+ state.infoForm = JSON.parse(JSON.stringify(value));
}
state.title = type;
};
-const onSubmit = () => {
- gasRef.value.clearValidate();
+const getUserList = async () => {
+ const param = {
+ pageIndex: 1,
+ pageSize: 9999,
+ searchParams: {
+ roleId: null,
+ name: "",
+ realName: "",
+ userIndentityId: null
+ }
+ }
+ let res = await userApi().getUserList(param);
+ if(res.data.code == 100) {
+ state.peopleList = res.data.data;
+ }else {
+ ElMessage({
+ type: 'error',
+ message: res.data.msg
+ });
+ }
+}
+
+const onSubmit = async () => {
+ if(state.title == '处理') {
+ const param = {
+ id: state.infoForm.id,
+ userId: state.infoForm.name,
+ handlerDesc: state.infoForm.method
+ }
+ let res = await warningInfoApi().handleWarnLog(param);
+ if(res.data.code == 100) {
+ ElMessage({
+ type: 'success',
+ message: '处理成功'
+ });
+ }else {
+ ElMessage({
+ type: 'error',
+ message: res.data.msg
+ });
+ }
+ gasRef.value.clearValidate();
+ }
state.isShowUserDialog = false;
emit('getInfoData');
};
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 = '';
diff --git a/src/views/warningManage/warningPeople/component/peopleDialog.vue b/src/views/warningManage/warningPeople/component/peopleDialog.vue
index 41562f6..28cdc67 100644
--- a/src/views/warningManage/warningPeople/component/peopleDialog.vue
+++ b/src/views/warningManage/warningPeople/component/peopleDialog.vue
@@ -8,7 +8,7 @@
<el-form :model="state.peopleForm" size="default" ref="gasRef" :rules="state.setFormRules" label-width="150px">
<el-form-item label="预警人员:" prop="name">
<el-select
- v-model="state.peopleForm.name"
+ v-model="state.peopleForm.realName"
filterable
class="w100"
style="max-width: 180px"
@@ -16,9 +16,9 @@
@change="changePeople"
:disabled="state.disabled"
>
- <el-option v-for="item in state.peopleList" :key="item.id" :label="item.name" :value="item.id">
+ <el-option v-for="item in state.peopleList" :key="item.id" :label="item.realName" :value="item.id">
<div class="valueTable">
- <div><div>姓名:</div><span>{{item.name}}</span></div>
+ <div><div>姓名:</div><span>{{item.realName}}</span></div>
<div><div>手机号:</div><span>{{item.phone}}</span></div>
</div>
</el-option>
@@ -41,6 +41,9 @@
<script setup lang="ts">
import {reactive, ref} from "vue";
import {PeopleState} from "/@/types/warning";
+import { userApi } from "/@/api/systemManage/user";
+import { warningPeopleApi } from "/@/api/warningManage/warningPeople";
+import {ElMessage} from "element-plus";
const gasRef = ref();
const emit = defineEmits(["getPeopleData"]);
@@ -49,27 +52,22 @@
isShowUserDialog: false,
disabled: false,
peopleForm: {
+ id: '',
name: '',
- phone: ''
+ phone: '',
+ realName: ''
},
setFormRules:{
name: [{ required: true, message: '请选择预警人员', trigger: 'blur' }],
phone: [{ required: true, message: '请输入手机号', trigger: 'blur' }],
},
- peopleList: [
- // {
- // id: '1',
- // name: '张三',
- // phone: '112554566666'
- // },
- // {
- // id: '2',
- // name: '李四',
- // phone: '11254212321'
- // }
- ]
+ peopleList: []
});
+
+let chooseObj = reactive<any>({});
+
const openDialog = (type: string, value: any) => {
+ getUserList();
state.isShowUserDialog = true;
if (type === '查看') {
state.disabled = true;
@@ -79,26 +77,100 @@
state.disabled = false;
state.title = '修改预警人员';
state.peopleForm = JSON.parse(JSON.stringify(value));
+ chooseObj = state.peopleForm;
}else {
state.disabled = false;
state.title = '新增预警人员';
state.peopleForm = {
+ id: '',
name: '',
- phone: ''
+ phone: '',
+ realName: ''
}
}
};
-
-const changePeople = (val:any) => {
- const obj = state.peopleList.find(item => item.id === val);
- if(obj){
- state.peopleForm.phone = obj.phone;
+const getUserList = async () => {
+ const param = {
+ pageIndex: 1,
+ pageSize: 9999,
+ searchParams: {
+ roleId: null,
+ name: "",
+ realName: "",
+ userIndentityId: null
+ }
+ }
+ let res = await userApi().getUserList(param);
+ if(res.data.code == 100) {
+ state.peopleList = res.data.data;
+ }else {
+ ElMessage({
+ type: 'error',
+ message: res.data.msg
+ });
}
}
-const onSubmit = () => {
- gasRef.value.clearValidate();
- state.isShowUserDialog = false;
- emit('getPeopleData');
+
+const changePeople = (val:any) => {
+ chooseObj = state.peopleList.find(item => item.id === val);
+ console.log("obj",chooseObj)
+ if(chooseObj){
+ state.peopleForm.phone = chooseObj.phone;
+ }
+}
+const onSubmit = async () => {
+ if(state.title == '新增预警人员' || state.title == '修改预警人员'){
+ const valid = gasRef.value.validate();
+ if(valid) {
+ if(state.title == '新增预警人员'){
+ const param = {
+ userId: chooseObj.id,
+ name: chooseObj.name,
+ realName: chooseObj.realName,
+ phone: chooseObj.phone
+ }
+ let res = await warningPeopleApi().addWarnUser(param);
+ if(res.data.code == 100) {
+ ElMessage({
+ type: 'success',
+ message: '新增成功'
+ });
+ }else{
+ ElMessage({
+ type: 'error',
+ message: res.data.msg
+ });
+ }
+ }else if(state.title == '修改预警人员'){
+ const param = {
+ id: state.peopleForm.id,
+ userId: chooseObj.id,
+ name: chooseObj.name,
+ realName: chooseObj.realName,
+ phone: chooseObj.phone
+ }
+ console.log("res",param)
+ let res = await warningPeopleApi().handelWarnUser(param);
+ if(res.data.code == 100) {
+ ElMessage({
+ type: 'success',
+ message: '修改成功'
+ });
+ }else{
+ ElMessage({
+ type: 'error',
+ message: res.data.msg
+ });
+ }
+ }
+ }
+ gasRef.value.clearValidate();
+ state.isShowUserDialog = false;
+ emit('getPeopleData');
+ }else {
+ state.isShowUserDialog = false;
+ emit('getPeopleData');
+ }
};
const handleClose = () => {
diff --git a/src/views/warningManage/warningPeople/index.vue b/src/views/warningManage/warningPeople/index.vue
index 0e8274e..e3c1063 100644
--- a/src/views/warningManage/warningPeople/index.vue
+++ b/src/views/warningManage/warningPeople/index.vue
@@ -4,9 +4,9 @@
<div class="system-menu-search mb15">
<el-form :inline="true" >
<el-form-item label="姓名:">
- <el-input v-model="state.tableData.listQuery.searchParams.name" placeholder="姓名" ></el-input>
+ <el-input v-model="state.tableData.listQuery.searchParams.realName" placeholder="请输入姓名" ></el-input>
</el-form-item>
- <el-button size="default" type="primary" class="ml10">
+ <el-button size="default" type="primary" class="ml10" @click="search()">
<el-icon>
<ele-Search />
</el-icon>
@@ -28,9 +28,9 @@
</el-button>
<el-table :data="state.tableData.data" style="width: 100%">
- <el-table-column align="center" prop="name" label="预警人员"/>
+ <el-table-column align="center" prop="realName" label="预警人员"/>
<el-table-column align="center" prop="phone" label="手机号"/>
- <el-table-column label="操作" show-overflow-tooltip width="140">
+ <el-table-column label="操作" show-overflow-tooltip align="center" width="240">
<template #default="scope">
<el-button size="small" text type="primary" @click="openDialog('查看', scope.row)">查看</el-button>
<el-button size="small" text type="primary" @click="openDialog('修改', scope.row)">修改</el-button>
@@ -59,40 +59,46 @@
</template>
<script setup lang="ts">
-import {reactive, ref} from "vue";
+import {reactive, ref, onMounted} from "vue";
import { ElMessage, ElMessageBox } from 'element-plus'
import { PeopleDataState } from "/@/types/warning";
import peopleDialog from "./component/peopleDialog.vue";
+import { warningPeopleApi } from "/@/api/warningManage/warningPeople";
const peopleRef = ref();
const state = reactive<PeopleDataState>({
tableData: {
- data: [
- // {
- // id: '1',
- // name: '张三',
- // phone: '112554566666'
- // },
- // {
- // id: '2',
- // name: '李四',
- // phone: '11254212321'
- // }
- ],
+ data: [],
total: 0,
loading: false,
listQuery: {
pageIndex: 1,
pageSize: 10,
searchParams:{
- name: ''
+ realName: ''
}
}
}
});
-const initPeopleData = () => {
- console.log("数据列表")
+//页面加载
+onMounted(() => {
+ initPeopleData();
+});
+
+const initPeopleData = async () => {
+ let res = await warningPeopleApi().getWarnUserPage(state.tableData.listQuery);
+ if(res.data.code == 100) {
+ state.tableData.listQuery.pageIndex = res.data.pageIndex;
+ state.tableData.listQuery.pageSize = res.data.pageSize;
+ state.tableData.total = res.data.total;
+ state.tableData.data = res.data.data;
+ }else {
+ ElMessage({
+ type: 'error',
+ message: res.data.msg
+ });
+ }
};
const onHandleSizeChange = (val: number) => {
state.tableData.listQuery.pageSize = val;
@@ -116,15 +122,31 @@
type: 'warning',
}
)
- .then(() => {
+ .then(async () => {
+ let res = await warningPeopleApi().delWarnUser({id: val.id})
+ if(res.data.code == 100) {
ElMessage({
type: 'success',
message: '删除成功',
})
- })
+ state.tableData.listQuery.pageIndex = 1;
+ initPeopleData();
+ }else {
+ ElMessage({
+ type: 'error',
+ message: res.data.msg
+ });
+ }
+ })
+};
+const search = () => {
+ state.tableData.listQuery.pageIndex = 1;
+ initPeopleData();
};
const reset = () => {
- state.tableData.listQuery.searchParams.name = '';
+ state.tableData.listQuery.pageIndex = 1;
+ state.tableData.listQuery.searchParams.realName = '';
+ initPeopleData();
}
</script>
<style scoped lang="scss">
diff --git a/src/views/warningManage/warningSet/component/setDialog.vue b/src/views/warningManage/warningSet/component/setDialog.vue
index 87cedd9..ccf3cf4 100644
--- a/src/views/warningManage/warningSet/component/setDialog.vue
+++ b/src/views/warningManage/warningSet/component/setDialog.vue
@@ -5,12 +5,12 @@
v-model="state.isShowUserDialog"
width="550px"
>
- <el-form :model="state.setForm" size="default" ref="gasRef" :rules="state.setFormRules" label-width="150px">
+ <el-form :model="state.setForm" size="default" ref="gasRef" :rules=" state.title == '修改' ?state.setFormRules:''" label-width="150px">
<el-form-item label="预警名称:" prop="name">
<span>{{state.setForm.name}}</span>
</el-form-item>
- <el-form-item label="连续超过阈值点数:" prop="points">
- <el-input v-model.trim="state.setForm.points" :disabled="state.disabled"></el-input>
+ <el-form-item label="连续超过阈值点数:" prop="threshold">
+ <el-input v-model.trim="state.setForm.threshold" :disabled="state.disabled"></el-input>
</el-form-item>
</el-form>
<template #footer>
@@ -26,6 +26,8 @@
<script setup lang="ts">
import {reactive, ref} from "vue";
import {SetState} from "/@/types/warning";
+import { warningSetApi } from "/@/api/warningManage/warningSet";
+import {ElMessage} from "element-plus/es";
const gasRef = ref();
const emit = defineEmits(["getSetData"]);
@@ -34,11 +36,12 @@
isShowUserDialog: false,
disabled: false,
setForm: {
+ id: '',
name: '',
- points: 0
+ threshold: 0
},
setFormRules:{
- points: [{ required: true, message: '请填写连续超过阈值点数', trigger: 'blur' }],
+ threshold: [{ required: true, message: '请填写连续超过阈值点数', trigger: 'blur' }],
}
});
const openDialog = (type: string, value: any) => {
@@ -53,10 +56,35 @@
state.setForm = JSON.parse(JSON.stringify(value));
}
};
-const onSubmit = () => {
- gasRef.value.clearValidate();
- state.isShowUserDialog = false;
- emit('getSetData');
+const onSubmit = async () => {
+
+ if(state.title == '修改'){
+ const valid = gasRef.value.validate();
+ if(valid){
+ const param = {
+ id: state.setForm.id,
+ threshold: state.setForm.threshold
+ }
+ let res = await warningSetApi().handelWarnSet(param);
+ if(res.data.code == 100){
+ ElMessage({
+ type: 'success',
+ message: '修改成功'
+ });
+ }else {
+ ElMessage({
+ type: 'error',
+ message: res.data.msg
+ });
+ }
+ }
+ gasRef.value.clearValidate();
+ state.isShowUserDialog = false;
+ emit('getSetData');
+ }else {
+ state.isShowUserDialog = false;
+ emit('getSetData');
+ }
};
const handleClose = () => {
diff --git a/src/views/warningManage/warningSet/index.vue b/src/views/warningManage/warningSet/index.vue
index e7eae42..873e235 100644
--- a/src/views/warningManage/warningSet/index.vue
+++ b/src/views/warningManage/warningSet/index.vue
@@ -3,7 +3,7 @@
<el-card shadow="hover">
<el-table :data="state.tableData.data" style="width: 100%">
<el-table-column align="center" prop="name" label="预警名称"/>
- <el-table-column align="center" prop="points" label="连续超过阈值点数"/>
+ <el-table-column align="center" prop="threshold" label="连续超过阈值点数"/>
<el-table-column label="操作" show-overflow-tooltip width="140">
<template #default="scope">
<el-button size="small" text type="primary" @click="openDialog('查看', scope.row)">查看</el-button>
@@ -17,28 +17,33 @@
</template>
<script setup lang="ts">
-import {reactive, ref} from "vue";
+import {reactive, ref, onMounted} from "vue";
import { TableDataState } from "/@/types/warning";
import setDialog from "./component/setDialog.vue";
+import { warningSetApi } from "/@/api/warningManage/warningSet";
+import {ElMessage} from "element-plus/es";
const setRef = ref();
const state = reactive<TableDataState>({
tableData: {
- data: [
- {
- name: '黄色预警',
- points: 1
- },
- {
- name: '红色预警',
- points: 2
- },
- ]
+ data: []
}
});
+//页面加载
+onMounted(() => {
+ initSetData();
+});
-const initSetData = () => {
- console.log("数据列表")
+const initSetData = async () => {
+ let res = await warningSetApi().getWarnSetPage({});
+ if(res.data.code == 100) {
+ state.tableData.data = res.data.data;
+ }else {
+ ElMessage({
+ type: 'error',
+ message: res.data.msg
+ });
+ }
};
const openDialog = (type: string, value: any) => {
setRef.value.openDialog(type, value);
--
Gitblit v1.9.2