| | |
| | | |
| | | import { ref } from 'vue'; |
| | | |
| | | import { Page, useVbenModal } from '../../../../packages/effects/common-ui/src'; |
| | | import { downloadFileFromBlobPart } from '../../../../packages/utils/src'; |
| | | import { Page, useVbenModal } from '@vben/common-ui'; |
| | | import { downloadFileFromBlobPart } from '@vben/utils'; |
| | | |
| | | import { Button, message } from 'ant-design-vue'; |
| | | |
| | | import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; |
| | | import { |
| | | deleteMachinery, |
| | | deleteMachineryList, |
| | | exportMachinery, |
| | | getMachineryPage, |
| | | } from '#/api/mes/dv/machinery'; |
| | |
| | | import ImportForm from './modules/import-form.vue'; |
| | | |
| | | const selectedMachineryTypeId = ref<number>(); // 选中设备类型编号 |
| | | const checkedIds = ref<number[]>([]); |
| | | function handleRowCheckboxChange({ |
| | | records, |
| | | }: { |
| | | records: MesDvMachineryApi.Machinery[]; |
| | | }) { |
| | | checkedIds.value = records.map((item) => item.id!); |
| | | } |
| | | |
| | | /** |
| | | * 表格数据重载后(查询/翻页/刷新/切换设备类型)清空勾选, |
| | | * 避免勾选了上一页的设备后,页面已刷新但仍按旧勾选删除 |
| | | */ |
| | | function handleDataChange() { |
| | | checkedIds.value = []; |
| | | gridApi.grid.clearCheckboxRow(); |
| | | } |
| | | |
| | | const [FormModal, formModalApi] = useVbenModal({ |
| | | connectedComponent: Form, |
| | |
| | | handleRefresh(); |
| | | } finally { |
| | | hideLoading(); |
| | | } |
| | | } |
| | | |
| | | /** 批量删除设备 */ |
| | | async function handleDeleteBatch() { |
| | | if (checkedIds.value.length === 0) { |
| | | return; |
| | | } |
| | | const count = checkedIds.value.length; |
| | | const hideLoading = message.loading({ |
| | | content: $t('ui.actionMessage.deleting', [`${count} 台`]), |
| | | duration: 0, |
| | | }); |
| | | try { |
| | | await deleteMachineryList(checkedIds.value); |
| | | message.success($t('ui.actionMessage.deleteSuccess', [`${count} 台`])); |
| | | } finally { |
| | | hideLoading(); |
| | | handleDataChange(); |
| | | handleRefresh(); |
| | | } |
| | | } |
| | | |
| | |
| | | search: true, |
| | | }, |
| | | } as VxeTableGridOptions<MesDvMachineryApi.Machinery>, |
| | | gridEvents: { |
| | | checkboxAll: handleRowCheckboxChange, |
| | | checkboxChange: handleRowCheckboxChange, |
| | | dataChange: handleDataChange, |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | |
| | | onClick: handleCreate, |
| | | }, |
| | | { |
| | | label: $t('ui.actionTitle.deleteBatch'), |
| | | type: 'primary', |
| | | danger: true, |
| | | icon: ACTION_ICON.DELETE, |
| | | auth: ['mes:dv-machinery:delete'], |
| | | disabled: checkedIds.length === 0, |
| | | popConfirm: { |
| | | disabled: checkedIds.length === 0, |
| | | title: $t('ui.actionMessage.deleteConfirm', [ |
| | | `${checkedIds.length} 台`, |
| | | ]), |
| | | confirm: handleDeleteBatch, |
| | | }, |
| | | }, |
| | | { |
| | | label: $t('ui.actionTitle.import'), |
| | | type: 'primary', |
| | | icon: ACTION_ICON.UPLOAD, |