From 263f7ba3a1cb879a49012691345446d0bef95537 Mon Sep 17 00:00:00 2001 From: yueli Date: Thu, 17 Sep 2026 10:04:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(borrow):=20=E5=89=8D=E7=AB=AF=E9=80=82?= =?UTF-8?q?=E9=85=8D=E6=95=B4=E5=8D=95=E8=BD=AC=E4=BA=A4=E4=B8=8E=E5=8F=8C?= =?UTF-8?q?=E5=90=91=E6=8F=A1=E6=89=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit · 转交弹窗由「选择明细」改为**整单**:列出该单全部未还物品(只读), 明确告知「发起后对方确认,责任才转移」。原先让用户挑一行,挑中就只转 那一行 —— 正是单内撕裂的入口,现从 UI 上根除。 · 操作栏新增【接收转交】【拒绝】:仅对 pending_transfer.is_mine 的行显示, 即「待我接收」的转交。已有 PENDING 时不再显示【转交】,避免重复发起。 · 状态列新增「转交待确认」:此时主表 current_holder 未变(东西还在原持有人 手上),必须用状态列把「责任正在转移中」显式表达出来,否则界面上看不出 任何变化。 · 新增 acceptBorrowTransfer / rejectBorrowTransfer API; 拒绝时用 prompt 收集可选原因,写入转交流水备注。 错误提示仍交由 request 拦截器统一 toast,不在本地重复弹出。 --- inventory-web/src/api/transaction.ts | 25 +++ .../src/views/transaction/records.vue | 166 +++++++++++++----- 2 files changed, 149 insertions(+), 42 deletions(-) diff --git a/inventory-web/src/api/transaction.ts b/inventory-web/src/api/transaction.ts index 274e7ee..f86d684 100644 --- a/inventory-web/src/api/transaction.ts +++ b/inventory-web/src/api/transaction.ts @@ -283,6 +283,31 @@ export function getBorrowHistory(borrowId: number) { }) } +/** + * 确认接收转交(双向握手第二步)—— 责任正式转移到接收人名下。 + * + * ★ 仅该转交的 to_user_id 本人可调用(后端强校验,非库管权限)。 + * ★ 副作用:该单**全部未归还明细**的当前持有人一并变更。 + */ +export function acceptBorrowTransfer(transferId: number) { + return request({ + url: `/v1/transactions/borrow/transfer/${transferId}/accept`, + method: 'post' + }) +} + +/** + * 拒绝转交 —— 主表不动,责任仍在原持有人。权限同上。 + * @param reason 可选拒绝原因,写入转交流水备注 + */ +export function rejectBorrowTransfer(transferId: number, reason?: string) { + return request({ + url: `/v1/transactions/borrow/transfer/${transferId}/reject`, + method: 'post', + data: { reason } + }) +} + /** * 整单流转时间线(**borrow_no** 维度):借出 → 转交(可多次) → 归还 → 报废 * diff --git a/inventory-web/src/views/transaction/records.vue b/inventory-web/src/views/transaction/records.vue index 05242e0..bb1a9a9 100644 --- a/inventory-web/src/views/transaction/records.vue +++ b/inventory-web/src/views/transaction/records.vue @@ -204,9 +204,13 @@ - +