Commit Graph

4 Commits

Author SHA1 Message Date
c999aac1e3 fix(scrap): 撤回按钮改用 scrap_approval 权限,修正错配
报废审批页的「撤回」按钮原先复用了执行按钮的 canExecute 条件
(scrap_execute)。但 scrap_execute 比 scrap_approval 多授予 INBOUND 角色 ——
意味着只具备执行权、无审批权的人也会看到撤回按钮。

撤回是对单据的处置动作,应与审批同权限等级。新增 canWithdraw 计算属性
(SUPER_ADMIN 或 scrap_approval),替换原 canExecute。

注:申请人在「我的申请单」页有自己的撤回入口,走的是单据归属校验,
不依赖此处权限。
2026-09-10 15:37:17 +08:00
d1dd3dd404 feat(approval): 三端审批页「撤回」入口,明确告知会释放库存
后端已支持撤回时释放预占(见上一提交),前端同步:

一、文案与语义
  按钮 完结 → 撤回,颜色 danger → warning(语义从「危险操作」变为
  「可逆的库存释放」)。确认弹窗明确告知会释放多少项库存:

    确定撤回申请单【APR-OUT-...】吗?
    撤回后该单将被作废,其预占的 5 项物料库存会立即释放,
    可供其它申请使用。此操作不可恢复。

  用户看到的「1 件货」背后其实是一批被锁定的库存,不写清楚会让人
  以为撤回只是「关掉一张单」。

二、报废新增撤回入口
  报废审批页原先只有「执行报废」,没有撤回。补上按钮 + handleWithdraw(),
  并新增 API 封装 withdrawScrapRequest()。
  状态映射同步补充 4: '已撤回'(statusText / statusTagType)。

三、成功提示改为透传后端消息
  后端会返回「申请单已撤回,释放 N 项预占库存」,比前端写死的文案
  更有信息量,故改为 res?.msg 优先、前端文案兜底。

按钮可见性沿用 row.status === 1(已通过但未执行),与后端的执行守卫
(执行成功后 status 置 3)一致,故已执行或已撤回的单不会出现该按钮。
2026-09-10 15:08:43 +08:00
af2d1c10c6 feat(scrap): 报废作业页重构为「按单扫码执行」,对齐出库版式
create.vue 由「直接报废」页(492 行)重写为按单执行页:
  · 顶部选择已批准申请单(scope=executable, status=1);
  · 载入 items_json 为待执行清单,逐项显示批准数量与已扫数量;
  · 扫码头按 (source_table, stock_id) 匹配批准明细,
    不在单内或超批准量时红色 toast + 震动阻断,禁止入车;
  · 支持 ?requestId= 深链直达;提交实扫 payload 到 execute 接口。

审批页的「执行报废」由弹窗盲执行改为跳转本页(router.push + query.requestId),
移除 executeVisible/confirmExecute 等已失效代码;路由标题改为「按单报废执行」。
executeScrapByRequest 增加 items 参数。
2026-09-10 10:14:43 +08:00
da5357acb3 feat(scrap): 前端报废申请 / 报废审批页 + API(对齐出库版式)
- api/scrap.ts 新增 submitScrapRequest/checkScrapApproval/getScrapApprovals/approveScrapRequest/executeScrapByRequest
- apply: 选库存(带 source_table+stock_id)/报废数量/原因/按需审批人提交
- approval: 顶部审批状态筛选+刷新、展开明细、列名对齐出库、分页含 sizes、按单执行弹窗
- 路由挂载 /scrap/apply、/scrap/approval
2026-09-10 09:47:02 +08:00