Commit 685d608a566ab5e7769c4e1e253d835c6e35b60d
Merge branch 'fix/DEFECT-1604' into 'main_dev'
fix: 告警处理新增批量清除按钮 See merge request yunteng/thingskit-front!893
Showing
2 changed files
with
75 additions
and
4 deletions
| ... | ... | @@ -30,6 +30,8 @@ enum DeviceManagerApi { |
| 30 | 30 | |
| 31 | 31 | ALARM_BATCH_ACK = '/alarm/batch/ack', |
| 32 | 32 | |
| 33 | + ALARM_BATCH_CLEAR = '/alarm/batch/clear', | |
| 34 | + | |
| 33 | 35 | DEVICE_CREDENTIALS = '/device/credentials', |
| 34 | 36 | |
| 35 | 37 | COMMAND_ISSUANCE = '/rpc', |
| ... | ... | @@ -358,3 +360,13 @@ export const doBatchAckAlarm = (ids: string[]) => { |
| 358 | 360 | { joinPrefix: false } |
| 359 | 361 | ); |
| 360 | 362 | }; |
| 363 | + | |
| 364 | +export const doBatchClearAlarm = (ids: string[]) => { | |
| 365 | + return defHttp.post( | |
| 366 | + { | |
| 367 | + url: DeviceManagerApi.ALARM_BATCH_CLEAR, | |
| 368 | + data: { alarmIds: ids }, | |
| 369 | + }, | |
| 370 | + { joinPrefix: false } | |
| 371 | + ); | |
| 372 | +}; | ... | ... |
| ... | ... | @@ -19,7 +19,30 @@ |
| 19 | 19 | </a-button> |
| 20 | 20 | </template> |
| 21 | 21 | <template #toolbar> |
| 22 | - <Button @click="handleBatchAck" type="primary" :disabled="getCanBatchAck">批量处理</Button> | |
| 22 | + <Tooltip> | |
| 23 | + <template #title> | |
| 24 | + <div>激活未确认: 可以处理,清除</div> | |
| 25 | + <div>激活已确认: 只可清除,已经处理</div> | |
| 26 | + <div>清除未确认: 只可处理,已经清除</div> | |
| 27 | + <div>清除已确认: 不需要做处理和清除</div> | |
| 28 | + </template> | |
| 29 | + <Button @click="handleBatchClear" type="primary" :disabled="getCanBatchClear"> | |
| 30 | + <QuestionCircleOutlined class="cursor-pointer" /> | |
| 31 | + <span>批量清除</span> | |
| 32 | + </Button> | |
| 33 | + </Tooltip> | |
| 34 | + <Tooltip> | |
| 35 | + <template #title> | |
| 36 | + <div>激活未确认: 可以处理,清除</div> | |
| 37 | + <div>激活已确认: 只可清除,已经处理</div> | |
| 38 | + <div>清除未确认: 只可处理,已经清除</div> | |
| 39 | + <div>清除已确认: 不需要做处理和清除</div> | |
| 40 | + </template> | |
| 41 | + <Button @click="handleBatchAck" type="primary" :disabled="getCanBatchAck"> | |
| 42 | + <QuestionCircleOutlined class="cursor-pointer" /> | |
| 43 | + <span>批量处理</span> | |
| 44 | + </Button> | |
| 45 | + </Tooltip> | |
| 23 | 46 | </template> |
| 24 | 47 | </BasicTable> |
| 25 | 48 | <AlarmDetailDrawer @register="registerDetailDrawer" @success="handleSuccess" /> |
| ... | ... | @@ -29,10 +52,10 @@ |
| 29 | 52 | import { defineComponent, nextTick, h, computed } from 'vue'; |
| 30 | 53 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
| 31 | 54 | import { alarmColumns, alarmSearchSchemas } from './config/detail.config'; |
| 32 | - import { doBatchAckAlarm, getDeviceAlarm } from '/@/api/device/deviceManager'; | |
| 55 | + import { doBatchAckAlarm, doBatchClearAlarm, getDeviceAlarm } from '/@/api/device/deviceManager'; | |
| 33 | 56 | import { useDrawer } from '/@/components/Drawer'; |
| 34 | 57 | import AlarmDetailDrawer from './cpns/AlarmDetailDrawer.vue'; |
| 35 | - import { Modal, Button } from 'ant-design-vue'; | |
| 58 | + import { Modal, Button, Tooltip } from 'ant-design-vue'; | |
| 36 | 59 | import { JsonPreview } from '/@/components/CodeEditor'; |
| 37 | 60 | import { getDeviceDetail } from '/@/api/device/deviceManager'; |
| 38 | 61 | import { getAttribute } from '/@/api/ruleengine/ruleengineApi'; |
| ... | ... | @@ -44,6 +67,7 @@ |
| 44 | 67 | import { AlarmLogItem } from '/@/api/device/model/deviceConfigModel'; |
| 45 | 68 | import { AlarmStatus } from '/@/enums/alarmEnum'; |
| 46 | 69 | import { useMessage } from '/@/hooks/web/useMessage'; |
| 70 | + import { QuestionCircleOutlined } from '@ant-design/icons-vue'; | |
| 47 | 71 | |
| 48 | 72 | export default defineComponent({ |
| 49 | 73 | name: 'AlarmCenter', |
| ... | ... | @@ -52,6 +76,8 @@ |
| 52 | 76 | BasicTable, |
| 53 | 77 | TableAction, |
| 54 | 78 | AlarmDetailDrawer, |
| 79 | + QuestionCircleOutlined, | |
| 80 | + Tooltip, | |
| 55 | 81 | }, |
| 56 | 82 | |
| 57 | 83 | setup() { |
| ... | ... | @@ -60,6 +86,7 @@ |
| 60 | 86 | title: '告警记录列表', |
| 61 | 87 | api: getDeviceAlarm, |
| 62 | 88 | columns: alarmColumns, |
| 89 | + rowKey: 'id', | |
| 63 | 90 | useSearchForm: true, |
| 64 | 91 | formConfig: { |
| 65 | 92 | labelWidth: 120, |
| ... | ... | @@ -168,9 +195,30 @@ |
| 168 | 195 | }; |
| 169 | 196 | }; |
| 170 | 197 | |
| 198 | + const getCanBatchClear = computed(() => { | |
| 199 | + const rowSelection = getRowSelection(); | |
| 200 | + const getRows: AlarmLogItem[] = getSelectRows(); | |
| 201 | + | |
| 202 | + return ( | |
| 203 | + !rowSelection.selectedRowKeys?.length || | |
| 204 | + getRows.some( | |
| 205 | + (item) => | |
| 206 | + item.status === AlarmStatus.CLEARED_ACK || item.status === AlarmStatus.CLEARED_UN_ACK | |
| 207 | + ) | |
| 208 | + ); | |
| 209 | + }); | |
| 210 | + | |
| 171 | 211 | const getCanBatchAck = computed(() => { |
| 172 | 212 | const rowSelection = getRowSelection(); |
| 173 | - return !rowSelection.selectedRowKeys?.length; | |
| 213 | + const getRows: AlarmLogItem[] = getSelectRows(); | |
| 214 | + | |
| 215 | + return ( | |
| 216 | + !rowSelection.selectedRowKeys?.length || | |
| 217 | + getRows.some( | |
| 218 | + (item) => | |
| 219 | + item.status === AlarmStatus.CLEARED_ACK || item.status === AlarmStatus.ACTIVE_ACK | |
| 220 | + ) | |
| 221 | + ); | |
| 174 | 222 | }); |
| 175 | 223 | |
| 176 | 224 | const { createMessage } = useMessage(); |
| ... | ... | @@ -183,6 +231,15 @@ |
| 183 | 231 | reload(); |
| 184 | 232 | }; |
| 185 | 233 | |
| 234 | + const handleBatchClear = async () => { | |
| 235 | + const ids = getSelectRows<AlarmLogItem>().map((item) => item.id); | |
| 236 | + if (!ids.length) return; | |
| 237 | + await doBatchClearAlarm(ids); | |
| 238 | + createMessage.success('操作成功'); | |
| 239 | + clearSelectedRowKeys(); | |
| 240 | + reload(); | |
| 241 | + }; | |
| 242 | + | |
| 186 | 243 | return { |
| 187 | 244 | registerTable, |
| 188 | 245 | registerDetailDrawer, |
| ... | ... | @@ -190,7 +247,9 @@ |
| 190 | 247 | handleSuccess, |
| 191 | 248 | handleViewAlarmDetails, |
| 192 | 249 | handleBatchAck, |
| 250 | + handleBatchClear, | |
| 193 | 251 | getCanBatchAck, |
| 252 | + getCanBatchClear, | |
| 194 | 253 | }; |
| 195 | 254 | }, |
| 196 | 255 | }); | ... | ... |