Ver código fonte

fix: 修复告警设置中productKey参数错误的问题,修改告警级别为从字典获取

yanglzh 1 ano atrás
pai
commit
855f4976ed

+ 6 - 7
src/api/alarm/index.ts

@@ -2,7 +2,6 @@ import { get, post, del, put } from '/@/utils/request';
 
 export default {
   common: {
-    levelall: (id?: number) => get('/alarm/level/all', { id }),
     trigger_type: (productKey: string) => get('/alarm/rule/trigger_type', { productKey }),
     trigger_param: (productKey: string) => get('/alarm/rule/trigger_param', { productKey }),
     trigger_params: (params: object) => get('/alarm/rule/trigger_param', params),
@@ -16,10 +15,10 @@ export default {
     undeploy: (data: object) => post('/alarm/rule/undeploy', data),
     level_edit: (data: object) => put('/alarm/level/edit', data),
     level_all: (productKey: string) => get('/alarm/level/all', { productKey }),
-    },
-    log: {
-      getList: (params: object) => get('/alarm/log/list', params),
-      detail: (id: number) => get('/alarm/log/detail', { id }),
-      handle: (data: object) => post('/alarm/log/handle', data),
-      },
+  },
+  log: {
+    getList: (params: object) => get('/alarm/log/list', params),
+    detail: (id: number) => get('/alarm/log/detail', { id }),
+    handle: (data: object) => post('/alarm/log/handle', data),
+  },
 }

+ 8 - 14
src/views/iot/alarm/setting/component/edit.vue

@@ -8,7 +8,7 @@
 
 				<el-form-item label="告警级别" prop="level">
 					<el-radio-group v-model="ruleForm.level">
-						<el-radio :label="item.level" v-for="item in levelData" :key="item.level">{{ item.name }}</el-radio>
+						<el-radio :label="Number(item.value)" v-for="item in alarm_type" :key="item.value">{{ item.label }}</el-radio>
 					</el-radio-group>
 				</el-form-item>
 
@@ -210,7 +210,6 @@ interface DicState {
 	typeData: any;
 	triData: any;
 	operData: any;
-	levelData: any;
 	requestParams: any;
 	action: any;
 	tempData: any;
@@ -228,7 +227,8 @@ export default defineComponent({
 		const formRef = ref<HTMLElement | null>(null);
 		const { proxy } = getCurrentInstance() as any;
 
-		const { notice_send_gateway } = proxy.useDict('notice_send_gateway');
+		const { notice_send_gateway, alarm_type } = proxy.useDict('notice_send_gateway', 'alarm_type');
+
 		const state = reactive<DicState>({
 			id: 0,
 			isShowDialog: false,
@@ -312,7 +312,6 @@ export default defineComponent({
 			if (row) {
 				setType(true);
 
-
 				alarm.common.detail(row.id).then((res: any) => {
 
 					state.requestParams = res.data.condition.triggerCondition;
@@ -334,7 +333,7 @@ export default defineComponent({
 							return { phone: p };
 						});
 					});
-					iotapi.product.event({ key: res.data.productKey }).then((ress: any) => {
+					iotapi.product.event({ productKey: res.data.productKey }).then((ress: any) => {
 						state.eventList = ress || []
 						state.ruleForm.eventKey = row.eventKey
 					})
@@ -344,11 +343,8 @@ export default defineComponent({
 						alarm.common.trigger_type(product_key).then((res: any) => {
 							state.typeData = res.list || [];
 						});
-
 					}
 				});
-
-
 			}
 			state.isShowDialog = true;
 		};
@@ -358,9 +354,6 @@ export default defineComponent({
 			iotapi.product.getLists({ status: 1 }).then((res: any) => {
 				state.productData = res.product || [];
 			});
-			alarm.common.levelall().then((res: any) => {
-				state.levelData = res.list || [];
-			});
 			alarm.common.operator().then((res: any) => {
 				state.operData = res.list || [];
 			});
@@ -437,12 +430,12 @@ export default defineComponent({
 			gettriData()
 		};
 
-		watch(() => state.ruleForm.productKey, (key) => {
-			if (!key) return
+		watch(() => state.ruleForm.productKey, (productKey) => {
+			if (!productKey) return
 			// 切换产品时候重新获取事件列表,清空之前选中的事件
 			state.ruleForm.eventKey = ''
 
-			iotapi.product.event({ key }).then((res: any) => {
+			iotapi.product.event({ productKey }).then((res: any) => {
 				state.eventList = res || []
 			})
 		})
@@ -608,6 +601,7 @@ export default defineComponent({
 		};
 
 		return {
+			alarm_type,
 			getRadio,
 			gettriData,
 			getTem,

+ 0 - 80
src/views/iot/alarm/setting/component/level.vue

@@ -1,80 +0,0 @@
-<template>
-	<div class="system-edit-dept-container">
-		<el-dialog title="设置告警级别" v-model="isShowDialog" width="769px">
-			<el-form ref="formRef" :model="ruleForm" :rules="rules" label-width="90px">
-				<el-row :gutter="35">
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-for="(item, index) in levelData" :key="index">
-						<el-form-item :label="'级别' + item.level" prop="name" required>
-							<el-input v-model.trim="item.name" placeholder="请输入告警级别名称"></el-input>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-			<template #footer>
-				<span class="dialog-footer">
-					<el-button @click="onCancel">取 消</el-button>
-					<el-button type="primary" @click="onSubmit">设置</el-button>
-				</span>
-			</template>
-		</el-dialog>
-	</div>
-</template>
-
-<script lang="ts">
-import { reactive, toRefs, defineComponent, ref } from 'vue';
-import api from '/@/api/alarm';
-import { ElMessage } from 'element-plus';
-
-interface RuleFormState {
-	level: number;
-	name: string;
-}
-interface DeptSate {
-	isShowDialog: boolean;
-	levelData: RuleFormState[];
-}
-
-export default defineComponent({
-	name: 'level',
-	setup() {
-		const formRef = ref<HTMLElement | null>(null);
-		const state = reactive<DeptSate>({
-			isShowDialog: false,
-			levelData: [],
-		});
-
-		// 打开弹窗
-		const openDialog = () => {
-			api.common.level_all(1).then((res: any) => {
-				state.levelData = res.list || [];
-			});
-
-			state.isShowDialog = true;
-		};
-		// 关闭弹窗
-		const closeDialog = () => {
-			state.isShowDialog = false;
-		};
-		// 取消
-		const onCancel = () => {
-			closeDialog();
-		};
-		// 新增
-		const onSubmit = () => {
-			api.common.level_edit({ list: state.levelData }).then(() => {
-				ElMessage.success('修改成功');
-				closeDialog(); // 关闭弹窗
-			});
-		};
-
-		return {
-			openDialog,
-			closeDialog,
-			onCancel,
-			onSubmit,
-			formRef,
-			...toRefs(state),
-		};
-	},
-});
-</script>

+ 11 - 28
src/views/iot/alarm/setting/index.vue

@@ -8,12 +8,6 @@
 					</el-icon>
 					新增告警
 				</el-button>
-				<el-button type="primary" @click="onOpenLevel" v-auth="'level'">
-					<el-icon>
-						<ele-Setting />
-					</el-icon>
-					级别设置
-				</el-button>
 			</el-form-item>
 		</el-form>
 		<el-divider class="my-5" />
@@ -98,7 +92,6 @@
 		</el-row>
 		<pagination v-show="tableData.total > 0" :total="tableData.total" v-model:page="tableData.param.pageNum" v-model:limit="tableData.param.pageSize" @pagination="dataList" />
 		<EditDic ref="editDicRef" @dataList="dataList" />
-		<LevelDic ref="levelDicRef" @dataList="dataList" />
 	</div>
 </template>
 
@@ -106,35 +99,34 @@
 import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
 import { ElMessageBox, ElMessage, FormInstance } from 'element-plus';
 import EditDic from './component/edit.vue';
-import LevelDic from './component/level.vue';
 import alarm from '/@/api/alarm';
 
 // 定义接口来定义对象的类型
 interface TableDataRow {
 	id: number;
+	status: number;
 	name: string;
 	key: string;
 	createBy: string;
 }
 interface TableDataState {
-	ids: number[];
 	tableData: {
-		data: Array<TableDataRow>;
+		data: any[];
 		total: number;
 		loading: boolean;
 		param: {
 			pageNum: number;
 			pageSize: number;
 			name: string;
-			level: number;
-			triggerType: number;
+			level: string;
+			triggerType: string;
 		};
 	};
 }
 
 export default defineComponent({
 	name: 'setlist',
-	components: { EditDic, LevelDic },
+	components: { EditDic },
 
 	setup() {
 		const addDicRef = ref();
@@ -174,9 +166,6 @@ export default defineComponent({
 		const onOpenAdd = () => {
 			editDicRef.value.openDialog();
 		};
-		const onOpenLevel = () => {
-			levelDicRef.value.openDialog();
-		};
 		// 打开修改模型弹窗
 		const onOpenEdit = (row: TableDataRow) => {
 			editDicRef.value.openDialog({ ...row });
@@ -187,24 +176,19 @@ export default defineComponent({
 		};
 		const onRowDel = (row?: TableDataRow) => {
 			let msg = '你确定要删除所选数据?';
-			let ids: number[] = [];
-			if (row) {
-				msg = `此操作将永久删除告警:“${row.name}”,是否继续?`;
-				ids = row.id;
-			} else {
-				ids = state.ids;
-			}
-			if (ids.length === 0) {
+			let ids: number[] | number = [];
+			if (!row?.id) {
 				ElMessage.error('请选择要删除的数据。');
 				return;
 			}
+			msg = `此操作将永久删除告警:“${row.name}”,是否继续?`;
 			ElMessageBox.confirm(msg, '提示', {
 				confirmButtonText: '确认',
 				cancelButtonText: '取消',
 				type: 'warning',
 			})
 				.then(() => {
-					alarm.common.delete(ids).then(() => {
+					alarm.common.delete(row.id).then(() => {
 						ElMessage.success('删除成功');
 						dataList();
 					});
@@ -221,8 +205,8 @@ export default defineComponent({
 			formEl.resetFields();
 			dataList();
 		};
-		const onActionStatus = (item: TableDataRow[]) => {
-			if (item.status == 0) {
+		const onActionStatus = (item: TableDataRow) => {
+			if (item.status === 0) {
 				alarm.common.deploy({ id: item.id }).then(() => {
 					dataList();
 				});
@@ -241,7 +225,6 @@ export default defineComponent({
 			queryRef,
 			levelDicRef,
 			onOpenRecord,
-			onOpenLevel,
 			onOpenAdd,
 			onOpenEdit,
 			onRowDel,

+ 0 - 1
src/views/iot/iotmanager/dashboard.vue

@@ -134,7 +134,6 @@ export default defineComponent({
 		const homeBarRef = ref();
 		const store = useStore();
 		const router = useRouter();
-		const route = useRoute();
 		const state = reactive({
 			loading: false,
 			tableData: {