From 15b3efe51e1f93b1446e0cc22101626eb27e610d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E7=BA=A2=E5=85=B5?= <374362909@qq.com> Date: Sat, 7 Mar 2026 17:32:17 +0800 Subject: [PATCH] fix --- src/api/purchase/purchasingrequisition.ts | 24 ++ .../SupplementFilesDialog.vue | 249 ++++++++++++++++ .../purchase/purchasingrequisition/index.vue | 43 +++ .../purchasingrequisition/supplement-view.vue | 277 ++++++++++++++++++ 4 files changed, 593 insertions(+) create mode 100644 src/views/purchase/purchasingrequisition/SupplementFilesDialog.vue create mode 100644 src/views/purchase/purchasingrequisition/supplement-view.vue diff --git a/src/api/purchase/purchasingrequisition.ts b/src/api/purchase/purchasingrequisition.ts index 828215f..28461c2 100644 --- a/src/api/purchase/purchasingrequisition.ts +++ b/src/api/purchase/purchasingrequisition.ts @@ -392,3 +392,27 @@ export function updateFiles(data: { purchaseId: string; fileIds: string[] }) { data, }); } + +export function tempStoreSupplement(applyId: string, fileIds: string[]) { + return request({ + url: '/purchase/purchasingapply/supplement/temp-store', + method: 'post', + data: { applyId, fileIds }, + }); +} + +export function submitSupplement(applyId: string) { + return request({ + url: '/purchase/purchasingapply/supplement/submit', + method: 'post', + data: { id: applyId }, + }); +} + +export function getSupplementFileType(purchaseType: string) { + return request({ + url: '/purchase/purchasingapply/supplement/file-type', + method: 'get', + params: { purchaseType }, + }); +} diff --git a/src/views/purchase/purchasingrequisition/SupplementFilesDialog.vue b/src/views/purchase/purchasingrequisition/SupplementFilesDialog.vue new file mode 100644 index 0000000..01fee83 --- /dev/null +++ b/src/views/purchase/purchasingrequisition/SupplementFilesDialog.vue @@ -0,0 +1,249 @@ + + + + + \ No newline at end of file diff --git a/src/views/purchase/purchasingrequisition/index.vue b/src/views/purchase/purchasingrequisition/index.vue index e6e351f..9b72eac 100644 --- a/src/views/purchase/purchasingrequisition/index.vue +++ b/src/views/purchase/purchasingrequisition/index.vue @@ -292,6 +292,9 @@ + + + @@ -405,6 +408,7 @@ const FlowCommentTimeline = defineAsyncComponent(() => import('/@/views/jsonflow const FileArchiveDialog = defineAsyncComponent(() => import('./FileArchiveDialog.vue')); const UpdateFilesDialog = defineAsyncComponent(() => import('./UpdateFilesDialog.vue')); const ContractDialog = defineAsyncComponent(() => import('./contract/ContractDialog.vue')); +const SupplementFilesDialog = defineAsyncComponent(() => import('./SupplementFilesDialog.vue')); // const DocAuditDialog = defineAsyncComponent(() => import('./docAudit/DocAuditDialog.vue')); // 字典数据和品目树数据 @@ -436,6 +440,7 @@ const implementFormRef = ref(); const fileArchiveDialogRef = ref(); const updateFilesDialogRef = ref(); const contractDialogRef = ref(); +const supplementFilesDialogRef = ref(); /** 采购代表弹窗 */ const representorDialogVisible = ref(false); @@ -712,6 +717,18 @@ const getActionMenuItems = (row: any) => { icon: DocumentChecked, visible: () => isCompleted, }, +{ + command: 'supplementFiles', + label: '补充材料', + icon: Upload, + visible: () => isCompleted && row?.purchaseMode === '1' && row?.purchaseChannel === '1' && hasAuth('purchase_supplement'), + }, + { + command: 'submitSupplementFiles', + label: '提交补充材料', + icon: Upload, + visible: () => isCompleted && row?.purchaseMode === '1' && row?.purchaseChannel === '1' && row?.supplementFlowStatus === '-1' && hasAuth('purchase_supplement'), + }, // { // command: 'downloadFileApply', // label: '下载文件审批表', @@ -773,6 +790,12 @@ const handleMoreCommand = (command: string, row: any) => { case 'contract': handleContract(row); break; + case 'supplementFiles': + handleSupplementFiles(row); + break; + case 'submitSupplementFiles': + handleSubmitSupplementFiles(row); + break; } }; @@ -801,6 +824,26 @@ const handleContract = async (row: any) => { } }; +/** 补充材料 */ +const handleSupplementFiles = (row: any) => { + const id = row?.id ?? row?.purchaseId; + if (!id) { + useMessage().warning('无法获取采购申请ID'); + return; + } + supplementFilesDialogRef.value?.open(String(id)); +}; + +/** 提交补充材料 */ +const handleSubmitSupplementFiles = async (row: any) => { + const id = row?.id ?? row?.purchaseId; + if (!id) { + useMessage().warning('无法获取采购申请ID'); + return; + } + supplementFilesDialogRef.value?.open(String(id)); +}; + /** 下载审批表 */ const handleDownloadApply = (row: any) => { const id = row?.id ?? row?.purchaseId; diff --git a/src/views/purchase/purchasingrequisition/supplement-view.vue b/src/views/purchase/purchasingrequisition/supplement-view.vue new file mode 100644 index 0000000..3f11bcd --- /dev/null +++ b/src/views/purchase/purchasingrequisition/supplement-view.vue @@ -0,0 +1,277 @@ +