From c999aac1e37e0680e30ddbde6a3a548198786f5d Mon Sep 17 00:00:00 2001 From: yueli Date: Thu, 10 Sep 2026 15:37:17 +0800 Subject: [PATCH] =?UTF-8?q?fix(scrap):=20=E6=92=A4=E5=9B=9E=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E6=94=B9=E7=94=A8=20scrap=5Fapproval=20=E6=9D=83?= =?UTF-8?q?=E9=99=90=EF=BC=8C=E4=BF=AE=E6=AD=A3=E9=94=99=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 报废审批页的「撤回」按钮原先复用了执行按钮的 canExecute 条件 (scrap_execute)。但 scrap_execute 比 scrap_approval 多授予 INBOUND 角色 —— 意味着只具备执行权、无审批权的人也会看到撤回按钮。 撤回是对单据的处置动作,应与审批同权限等级。新增 canWithdraw 计算属性 (SUPER_ADMIN 或 scrap_approval),替换原 canExecute。 注:申请人在「我的申请单」页有自己的撤回入口,走的是单据归属校验, 不依赖此处权限。 --- .../src/views/operation/scrap/approval/index.vue | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/inventory-web/src/views/operation/scrap/approval/index.vue b/inventory-web/src/views/operation/scrap/approval/index.vue index 15854b3..d1aa718 100644 --- a/inventory-web/src/views/operation/scrap/approval/index.vue +++ b/inventory-web/src/views/operation/scrap/approval/index.vue @@ -125,7 +125,7 @@ type="warning" plain size="small" :loading="row._executing" @click="openExecute(row)" >执行报废 撤回 @@ -197,9 +197,19 @@ const rejectLoading = ref(false) const userNameCache = ref>({}) // --- 权限 --- +// 执行报废:需「按单报废执行」权限 const canExecute = computed(() => userStore.role === 'SUPER_ADMIN' || userStore.hasPermission('scrap_execute') ) +// ★ 撤回:需「报废审批」权限(原先误用 canExecute) +// +// scrap_execute 比 scrap_approval 多授予 INBOUND 角色 —— 若沿用 canExecute, +// 只具备执行权、无审批权的人也会看到撤回按钮。撤回是对单据的处置动作, +// 应与审批同权限等级。(申请人在「申请页-我的申请单」有自己的撤回入口, +// 走的是单据归属校验,不依赖此处。) +const canWithdraw = computed(() => + userStore.role === 'SUPER_ADMIN' || userStore.hasPermission('scrap_approval') +) // --- 工具 --- const statusText = (status: number) => {