| | |
| | | import type { MesWmStockTakingTaskApi } from '#/api/mes/wm/stocktaking/task'; |
| | | |
| | | import { ref } from 'vue'; |
| | | import { useRouter } from 'vue-router'; |
| | | |
| | | import { Page, useVbenModal } from '@vben/common-ui'; |
| | | import { MesWmStockTakingTaskStatusEnum } from '@vben/constants'; |
| | |
| | | cancelStockTaking, |
| | | deleteStockTaking, |
| | | exportStockTaking, |
| | | getStockTakingApproveProcessList, |
| | | getStockTakingPage, |
| | | submitStockTakingApproval, |
| | | } from '#/api/mes/wm/stocktaking/task'; |
| | | import { |
| | | importStockTakingQuantity, |
| | |
| | | } from '#/api/wls/stocktaking/task/line'; |
| | | 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, |
| | | }); |
| | | |
| | |
| | | formModalApi.setData({ formType: 'update', id: row.id }).open(); |
| | | } |
| | | |
| | | /** 提交盘点任务 */ |
| | | /** 开始盘点 */ |
| | | function handleSubmit(row: MesWmStockTakingTaskApi.StockTakingTask) { |
| | | formModalApi.setData({ formType: 'submit', id: row.id }).open(); |
| | | } |
| | | |
| | | /** 执行盘点 */ |
| | | function handleExecute(row: MesWmStockTakingTaskApi.StockTakingTask) { |
| | | formModalApi.setData({ formType: 'execute', id: row.id }).open(); |
| | | /** 提交结果审批 - 先获取流程列表 */ |
| | | async function handleSubmitApproval(row: MesWmStockTakingTaskApi.StockTakingTask) { |
| | | const hideLoading = message.loading({ |
| | | content: '获取审批流程...', |
| | | duration: 0, |
| | | }); |
| | | try { |
| | | const processList = await getStockTakingApproveProcessList(); |
| | | hideLoading(); |
| | | if (!processList || processList.length === 0) { |
| | | message.warning('暂无可用审批流程,请先配置 BPM 流程'); |
| | | return; |
| | | } |
| | | processModalApi |
| | | .setData({ |
| | | id: row.id, |
| | | processList, |
| | | submitFn: submitStockTakingApproval, |
| | | }) |
| | | .open(); |
| | | } catch { |
| | | hideLoading(); |
| | | } |
| | | } |
| | | |
| | | /** 查看审批详情 */ |
| | | function handleProcessDetail(row: MesWmStockTakingTaskApi.StockTakingTask) { |
| | | 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> |
| | |
| | | onClick: handleEdit.bind(null, row), |
| | | }, |
| | | { |
| | | label: '提交', |
| | | label: '开始盘点', |
| | | type: 'link', |
| | | auth: ['mes:wm-stock-taking-task:update'], |
| | | ifShow: row.status === StatusEnum.PREPARE, |
| | |
| | | }, |
| | | }, |
| | | { |
| | | label: '执行盘点', |
| | | type: 'link', |
| | | auth: ['mes:wm-stock-taking-task:update'], |
| | | ifShow: row.status === StatusEnum.APPROVING, |
| | | onClick: handleExecute.bind(null, row), |
| | | }, |
| | | { |
| | | label: '导入实盘数', |
| | | type: 'link', |
| | | icon: ACTION_ICON.UPLOAD, |
| | |
| | | onClick: handleImport.bind(null, row), |
| | | }, |
| | | { |
| | | label: '提交结果审批', |
| | | type: 'link', |
| | | auth: ['mes:wm-stock-taking-task:update'], |
| | | ifShow: row.status === StatusEnum.APPROVING, |
| | | onClick: handleSubmitApproval.bind(null, row), |
| | | }, |
| | | { |
| | | label: '查看审批', |
| | | type: 'link', |
| | | auth: ['mes:wm-stock-taking-task:query'], |
| | | ifShow: row.status === StatusEnum.APPROVING, |
| | | onClick: handleProcessDetail.bind(null, row), |
| | | }, |
| | | { |
| | | label: '取消', |
| | | type: 'link', |
| | | danger: true, |