From 69439fdfab8871643ba3eb9025f8674e54a11880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E7=BA=A2=E5=85=B5?= <374362909@qq.com> Date: Wed, 4 Mar 2026 20:19:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=87=E8=B4=AD=E6=A8=A1=E5=9D=978?= =?UTF-8?q?=E9=A1=B9=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 履约评价按钮:仅在审核状态完成时显示 2. 流程审批:申请人可编辑表单 3. 部门代表弹窗:增加身份选择(采购代表/评委) 4. 履约验收上传:改为仅支持PDF格式 5. 采购申请列表:增加采购形式字段显示(el-tag) 6. 采购申请提交:防止重复点击(已存在loading) --- src/api/purchase/purchasingrequisition.ts | 7 +++-- .../accept/AcceptBatchForm.vue | 2 +- .../purchase/purchasingrequisition/add.vue | 16 ++++++++-- .../purchase/purchasingrequisition/index.vue | 30 ++++++++++++++++--- 4 files changed, 45 insertions(+), 10 deletions(-) diff --git a/src/api/purchase/purchasingrequisition.ts b/src/api/purchase/purchasingrequisition.ts index 71eaf34..406200d 100644 --- a/src/api/purchase/purchasingrequisition.ts +++ b/src/api/purchase/purchasingrequisition.ts @@ -252,12 +252,13 @@ export function searchTeachers(keyword: string) { * @param id 采购申请ID * @param representorTeacherNo 指定采购代表人(单人,用户ID或工号) * @param representors 部门多人由系统抽取(多人,用户ID或工号逗号分隔) + * @param identity 身份:purchase_rep-采购代表,judge-评委 */ -export function saveRepresentor(id: number, representorTeacherNo?: string, representors?: string) { +export function saveRepresentor(id: number, representorTeacherNo?: string, representors?: string, identity?: string) { return request({ - url: '/purchase/purchasingapply/saveRepresentor', + url: '/purchase/purchasingapply/save-representor', method: 'post', - data: { id, representorTeacherNo, representors } + data: { id, representorTeacherNo, representors, representorType: identity } }); } diff --git a/src/views/purchase/purchasingrequisition/accept/AcceptBatchForm.vue b/src/views/purchase/purchasingrequisition/accept/AcceptBatchForm.vue index 2a5487b..3557846 100644 --- a/src/views/purchase/purchasingrequisition/accept/AcceptBatchForm.vue +++ b/src/views/purchase/purchasingrequisition/accept/AcceptBatchForm.vue @@ -18,7 +18,7 @@ - + 下载{{ lyysTemplateLabel }} diff --git a/src/views/purchase/purchasingrequisition/add.vue b/src/views/purchase/purchasingrequisition/add.vue index 84cc148..e05121c 100644 --- a/src/views/purchase/purchasingrequisition/add.vue +++ b/src/views/purchase/purchasingrequisition/add.vue @@ -1035,9 +1035,17 @@ const isPurchaseCenter = ref(false); /** 流程嵌入时:采购中心审核节点放开所有字段编辑;非采购中心节点只读 */ function flowFieldDisabled(_key: string) { if (isFlowEmbed.value && isPurchaseCenter.value) return false; + if (isFlowEmbed.value && isApplicant.value) return false; return !!isFlowEmbed.value; } +/** 当前用户是否为申请人(在流程中可编辑) */ +const isApplicant = computed(() => { + if (!dataForm.createUser) return false; + const currentUser = Session.getUser() || {}; + return dataForm.createUser === currentUser.userId || dataForm.createUser === currentUser.username; +}); + // 定义变量内容 const formRef = ref(); const dataForm = reactive({ @@ -1888,12 +1896,16 @@ const flowMethods = { }, }; -/** 流程嵌入时采购申请权限:根据前端缓存的角色(cloud-ui:roleCode)判断,非采购中心整表只读,采购中心仅采购方式/采购形式可编辑 */ +/** 流程嵌入时采购申请权限:根据前端缓存的角色(cloud-ui:roleCode)判断,非采购中心整表只读,采购中心仅采购方式/采购形式可编辑;申请人在流程中可编辑 */ function applyPurchaseApplyFormPerm() { if (!isFlowEmbed.value) return; const roleCode = Session.getRoleCode() || ''; isPurchaseCenter.value = roleCode === PURCHASE_CENTER_ROLE_CODE; - flowFormDisabled.value = !isPurchaseCenter.value; + if (isApplicant.value) { + flowFormDisabled.value = false; + } else { + flowFormDisabled.value = !isPurchaseCenter.value; + } } /** 流程嵌入时的“保存”回调:校验后调用 editObj,并通知流程已保存 */ diff --git a/src/views/purchase/purchasingrequisition/index.vue b/src/views/purchase/purchasingrequisition/index.vue index 38c2c56..a69e7be 100644 --- a/src/views/purchase/purchasingrequisition/index.vue +++ b/src/views/purchase/purchasingrequisition/index.vue @@ -185,6 +185,22 @@ - + + + +