113
113
>
114
114
<Icon icon =" ep:download" class =" mr-5px" /> 导出
115
115
</el-button >
116
+ <el-button
117
+ type =" danger"
118
+ plain
119
+ @click =" handleDeleteList"
120
+ :disabled =" selectedIds.length === 0"
121
+ v-hasPermi =" ['iot:device:delete']"
122
+ >
123
+ <Icon icon =" ep:delete" class =" mr-5px" /> 批量删除
124
+ </el-button >
116
125
</el-form-item >
117
126
</el-form >
118
127
</ContentWrap >
119
128
120
129
<!-- 列表 -->
121
130
<ContentWrap >
122
- <el-table v-loading =" loading" :data =" list" :stripe =" true" :show-overflow-tooltip =" true" >
131
+ <el-table
132
+ v-loading =" loading"
133
+ :data =" list"
134
+ :stripe =" true"
135
+ :show-overflow-tooltip =" true"
136
+ @selection-change =" handleSelectionChange"
137
+ >
138
+ <el-table-column type =" selection" width =" 55" />
123
139
<el-table-column label =" DeviceName" align =" center" prop =" deviceName" >
124
140
<template #default =" scope " >
125
141
<el-link @click =" openDetail(scope.row.id)" >{{ scope.row.deviceName }}</el-link >
@@ -231,6 +247,7 @@ const queryFormRef = ref() // 搜索的表单
231
247
const exportLoading = ref (false ) // 导出加载状态
232
248
const products = ref <ProductVO []>([]) // 产品列表
233
249
const deviceGroups = ref <DeviceGroupVO []>([]) // 设备分组列表
250
+ const selectedIds = ref <number []>([]) // 选中的设备编号数组
234
251
235
252
/** 查询列表 */
236
253
const getList = async () => {
@@ -253,6 +270,7 @@ const handleQuery = () => {
253
270
/** 重置按钮操作 */
254
271
const resetQuery = () => {
255
272
queryFormRef .value .resetFields ()
273
+ selectedIds .value = [] // 清空选择
256
274
handleQuery ()
257
275
}
258
276
@@ -305,4 +323,21 @@ const handleExport = async () => {
305
323
exportLoading .value = false
306
324
}
307
325
}
326
+
327
+ /** 多选框选中数据 */
328
+ const handleSelectionChange = (selection : DeviceVO []) => {
329
+ selectedIds .value = selection .map ((item ) => item .id )
330
+ }
331
+
332
+ /** 批量删除按钮操作 */
333
+ const handleDeleteList = async () => {
334
+ try {
335
+ await message .delConfirm ()
336
+ // 执行批量删除
337
+ await DeviceApi .deleteDeviceList (selectedIds .value )
338
+ message .success (t (' common.delSuccess' ))
339
+ // 刷新列表
340
+ await getList ()
341
+ } catch {}
342
+ }
308
343
</script >
0 commit comments