| | |
| | | import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; |
| | | import { |
| | | deleteMachinery, |
| | | deleteMachineryList, |
| | | exportMachinery, |
| | | getMachineryPage, |
| | | } from '#/api/mes/dv/machinery'; |
| | |
| | | records: MesDvMachineryApi.Machinery[]; |
| | | }) { |
| | | checkedIds.value = records.map((item) => item.id!); |
| | | } |
| | | |
| | | /** |
| | | * 表格数据重载后(查询/翻页/刷新/切换设备类型)清空勾选, |
| | | * 避免勾选了上一页的设备后,页面已刷新但仍按旧勾选删除 |
| | | */ |
| | | function handleDataChange() { |
| | | checkedIds.value = []; |
| | | gridApi.grid.clearCheckboxRow(); |
| | | } |
| | | |
| | | const [FormModal, formModalApi] = useVbenModal({ |
| | |
| | | |
| | | /** 批量删除设备 */ |
| | | async function handleDeleteBatch() { |
| | | if (checkedIds.value.length === 0) { |
| | | return; |
| | | } |
| | | const count = checkedIds.value.length; |
| | | const hideLoading = message.loading({ |
| | | content: $t('ui.actionMessage.deleting', [`${checkedIds.value.length} 台`]), |
| | | content: $t('ui.actionMessage.deleting', [`${count} 台`]), |
| | | duration: 0, |
| | | }); |
| | | try { |
| | | await Promise.all(checkedIds.value.map((id) => deleteMachinery(id))); |
| | | message.success($t('ui.actionMessage.deleteSuccess', [''])); |
| | | checkedIds.value = []; |
| | | handleRefresh(); |
| | | await deleteMachineryList(checkedIds.value); |
| | | message.success($t('ui.actionMessage.deleteSuccess', [`${count} 台`])); |
| | | } finally { |
| | | hideLoading(); |
| | | handleDataChange(); |
| | | handleRefresh(); |
| | | } |
| | | } |
| | | |
| | |
| | | gridEvents: { |
| | | checkboxAll: handleRowCheckboxChange, |
| | | checkboxChange: handleRowCheckboxChange, |
| | | dataChange: handleDataChange, |
| | | }, |
| | | }); |
| | | </script> |
| | |
| | | auth: ['mes:dv-machinery:delete'], |
| | | disabled: checkedIds.length === 0, |
| | | popConfirm: { |
| | | disabled: checkedIds.length === 0, |
| | | title: $t('ui.actionMessage.deleteConfirm', [ |
| | | `${checkedIds.length} 台`, |
| | | ]), |