| | |
| | | import type { VxeTableGridOptions } from '#/adapter/vxe-table'; |
| | | import type { MesWmMiscReceiptApi } from '#/api/mes/wm/miscreceipt'; |
| | | |
| | | import { useRouter } from 'vue-router'; |
| | | |
| | | import { Page, useVbenModal } from '@vben/common-ui'; |
| | | import { MesWmMiscReceiptStatusEnum } from '@vben/constants'; |
| | | import { downloadFileFromBlobPart } from '@vben/utils'; |
| | |
| | | cancelMiscReceipt, |
| | | deleteMiscReceipt, |
| | | exportMiscReceipt, |
| | | getMiscReceiptApproveProcessList, |
| | | getMiscReceiptPage, |
| | | submitMiscReceiptApproval, |
| | | } from '#/api/mes/wm/miscreceipt'; |
| | | import { $t } from '#/locales'; |
| | | |
| | | import ProcessSelectModal from '#/views/wls/components/process-select-modal.vue'; |
| | | import { useGridColumns, useGridFormSchema } from './data'; |
| | | import Form from './modules/form.vue'; |
| | | |
| | | const router = useRouter(); |
| | | |
| | | const [FormModal, formModalApi] = useVbenModal({ |
| | | connectedComponent: Form, |
| | | destroyOnClose: true, |
| | | }); |
| | | |
| | | const [ProcessModal, processModalApi] = useVbenModal({ |
| | | connectedComponent: ProcessSelectModal, |
| | | destroyOnClose: true, |
| | | }); |
| | | |
| | |
| | | /** 执行入库 */ |
| | | function handleFinish(row: MesWmMiscReceiptApi.MiscReceipt) { |
| | | formModalApi.setData({ formType: 'finish', id: row.id }).open(); |
| | | } |
| | | |
| | | /** 提交审批 - 先获取流程列表 */ |
| | | async function handleSubmitApproval(row: MesWmMiscReceiptApi.MiscReceipt) { |
| | | const hideLoading = message.loading({ |
| | | content: '获取审批流程...', |
| | | duration: 0, |
| | | }); |
| | | try { |
| | | const processList = await getMiscReceiptApproveProcessList(); |
| | | hideLoading(); |
| | | if (!processList || processList.length === 0) { |
| | | message.warning('暂无可用审批流程,请先配置 BPM 流程'); |
| | | return; |
| | | } |
| | | processModalApi |
| | | .setData({ |
| | | id: row.id, |
| | | processList, |
| | | submitFn: submitMiscReceiptApproval, |
| | | }) |
| | | .open(); |
| | | } catch { |
| | | hideLoading(); |
| | | } |
| | | } |
| | | |
| | | /** 查看审批详情 */ |
| | | function handleProcessDetail(row: MesWmMiscReceiptApi.MiscReceipt) { |
| | | if (!row.processInstanceId) { |
| | | message.warning('该单据尚未提交审批'); |
| | | return; |
| | | } |
| | | router.push({ |
| | | name: 'BpmProcessInstanceDetail', |
| | | query: { id: row.processInstanceId }, |
| | | }); |
| | | } |
| | | |
| | | /** 删除杂项入库单 */ |
| | |
| | | |
| | | <template> |
| | | <Page auto-content-height><FormModal @success="handleRefresh" /> |
| | | <ProcessModal @success="handleRefresh" /> |
| | | |
| | | <Grid table-title="杂项入库单列表"> |
| | | <template #toolbar-tools> |
| | |
| | | }, |
| | | }, |
| | | { |
| | | label: '提交审批', |
| | | type: 'link', |
| | | auth: ['mes:wm:misc-receipt:submit'], |
| | | ifShow: row.status === MesWmMiscReceiptStatusEnum.PREPARE, |
| | | onClick: handleSubmitApproval.bind(null, row), |
| | | }, |
| | | { |
| | | label: '查看审批', |
| | | type: 'link', |
| | | auth: ['mes:wm:misc-receipt:query'], |
| | | ifShow: row.status === MesWmMiscReceiptStatusEnum.APPROVING, |
| | | onClick: handleProcessDetail.bind(null, row), |
| | | }, |
| | | { |
| | | label: '执行入库', |
| | | type: 'link', |
| | | auth: ['mes:wm-misc-receipt:finish'], |