Explorar o código

新增批量删除

yukai %!s(int64=2) %!d(string=hai) anos
pai
achega
f43757b60d

+ 1 - 0
src/api/notice/index.ts

@@ -20,5 +20,6 @@ export default {
   },
   log:{
     getList: (params: object) => get("/notice/log/search", params),
+    delete: (ids: number) => del("/notice/log/del", { ids }),
   }
 };

+ 2 - 10
src/views/iot/noticeservices/log/component/detail.vue

@@ -18,33 +18,25 @@
 </template>
 
 <script lang="ts">
-import { reactive, toRefs, defineComponent, ref, unref } from 'vue';
-import api from '/@/api/alarm';
-import { ElMessage } from 'element-plus';
+import { reactive, toRefs, defineComponent, ref } from 'vue';
 
 
 
 interface DicState {
 	isShowDialog: boolean;
-	ruleForm: RuleFormState;
-	content: '';
-
+	content: string;
 }
 
 export default defineComponent({
 	name: 'Edit',
-
 	setup(prop, { emit }) {
 		const formRef = ref<HTMLElement | null>(null);
 		const state = reactive<DicState>({
 			isShowDialog: false,
 			content: '',
-			
 		});
-
 		// 打开弹窗
 		const openDialog = (row: RuleFormState | null) => {
-		
 			state.content=row.content;
 			state.isShowDialog = true;
 		};

+ 0 - 108
src/views/iot/noticeservices/log/component/edit.vue

@@ -1,108 +0,0 @@
-<template>
-	<div class="system-edit-dic-container">
-		<el-dialog title="告警处理" v-model="isShowDialog" width="769px">
-			<el-form :model="ruleForm" ref="formRef" :rules="rules" size="default" label-width="110px">
-				<el-form-item label="处理状态" prop="status">
-					<el-radio-group v-model="ruleForm.status">
-						<el-radio :label="1">已处理</el-radio>
-						<el-radio :label="2">忽略</el-radio>
-					</el-radio-group>
-				</el-form-item>
-				<el-form-item label="处理意见" prop="content">
-					<el-input v-model="ruleForm.content" type="textarea" placeholder="请输入内容"></el-input>
-				</el-form-item>
-			</el-form>
-			<template #footer>
-				<span class="dialog-footer">
-					<el-button @click="onCancel" size="default">取 消</el-button>
-					<el-button type="primary" @click="onSubmit" size="default">确定</el-button>
-				</span>
-			</template>
-		</el-dialog>
-	</div>
-</template>
-
-<script lang="ts">
-import { reactive, toRefs, defineComponent, ref, unref } from 'vue';
-import api from '/@/api/alarm';
-import { ElMessage } from 'element-plus';
-
-
-interface RuleFormState {
-	id?: number;
-	status: number;
-	content: string;
-}
-interface DicState {
-	isShowDialog: boolean;
-	ruleForm: RuleFormState;
-	rules: {};
-}
-
-export default defineComponent({
-	name: 'Edit',
-
-	setup(prop, { emit }) {
-		const formRef = ref<HTMLElement | null>(null);
-		const state = reactive<DicState>({
-			isShowDialog: false,
-			ruleForm: {
-				status: 1,
-				content: '',
-			},
-			rules: {
-				status: [{ required: true, message: '处理状态不能为空', trigger: 'blur' }],
-			},
-		});
-
-		// 打开弹窗
-		const openDialog = (row: RuleFormState | null) => {
-			resetForm();
-			api.log.detail(row.id).then((res: any) => {
-				state.ruleForm.id = res.data.id;
-			});
-
-			state.isShowDialog = true;
-		};
-		const resetForm = () => {
-			state.ruleForm = {
-				status: 1,
-				content: '',
-			};
-		};
-
-		const onSubmit = () => {
-			const formWrap = unref(formRef) as any;
-			if (!formWrap) return;
-			formWrap.validate((valid: boolean) => {
-				if (valid) {
-					api.log.handle(state.ruleForm).then(() => {
-						ElMessage.success('告警出来成功');
-						closeDialog(); // 关闭弹窗
-						emit('dataList');
-					});
-				}
-			});
-		};
-
-		// 关闭弹窗
-		const closeDialog = () => {
-			state.isShowDialog = false;
-		};
-		// 取消
-		const onCancel = () => {
-			closeDialog();
-		};
-
-		return {
-			openDialog,
-			closeDialog,
-			onCancel,
-			onSubmit,
-			formRef,
-			...toRefs(state),
-		};
-	},
-});
-</script>
-

+ 37 - 3
src/views/iot/noticeservices/log/index.vue

@@ -28,10 +28,18 @@
 							</el-icon>
 							重置
 						</el-button>
+						<el-button size="default" type="danger" class="ml10" @click="onRowDel(null)" v-auth="'del'">
+							<el-icon>
+								<ele-Delete />
+							</el-icon>
+							删除
+							</el-button>
 					</el-form-item>
 				</el-form>
 			</div>
-			<el-table :data="tableData.data" style="width: 100%" v-loading="tableData.loading">
+			<el-table :data="tableData.data" style="width: 100%" @selection-change="handleSelectionChange" v-loading="tableData.loading">
+				<el-table-column type="selection" width="55" align="center" />
+
 				<el-table-column label="ID" align="center" prop="id" width="60" v-col="'ID'" />
 			
 				<el-table-column label="标题" prop="title" :show-overflow-tooltip="true" v-col="'title'" />
@@ -66,7 +74,6 @@
 import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
 import { ElMessageBox, ElMessage, FormInstance } from 'element-plus';
 import api from '/@/api/notice';
-import EditDic from './component/edit.vue';
 import DetailDic from './component/detail.vue';
 
 // 定义接口来定义对象的类型
@@ -95,7 +102,7 @@ interface TableDataState {
 
 export default defineComponent({
 	name: 'log',
-	components: { EditDic, DetailDic },
+	components: {  DetailDic },
 
 	setup() {
 		const addDicRef = ref();
@@ -157,7 +164,34 @@ export default defineComponent({
 		const handleSelectionChange = (selection: TableDataRow[]) => {
 			state.ids = selection.map((item) => item.id);
 		};
+		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) {
+				ElMessage.error('请选择要删除的数据。');
+				return;
+			}
+			ElMessageBox.confirm(msg, '提示', {
+				confirmButtonText: '确认',
+				cancelButtonText: '取消',
+				type: 'warning',
+			})
+				.then(() => {
+				api.log.delete(ids).then(() => {
+					ElMessage.success('删除成功');
+					typeList();
+				});
+				})
+				.catch(() => { });
+			};
 		return {
+			onRowDel,
 			addDicRef,
 			editDicRef,
 			queryRef,