文件
hl-api-changelog/changelogs-v2/2026-09/17_frontend_团期物资清单补改数量删除与手工录入-前端优化-管理后台.md
T
2026-09-17 17:19:11 +08:00

5.4 KiB
原始文件 Blame 文件历史

schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
schema ticket title consumer author change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base
hl-changelog/v2 frontend 团期物资清单补改数量删除与手工录入 admin wx(GIT) 前端优化 not_required not_required verified mmg 3684d137617f4432f855cecb9df6bd05d192b239 2026-09-17 纯前端条目,后端零改动。SuppliesPanel.vue:76 注释「调整数量 / 删除行 / 手工录入待后端补契约后接入」已过时——三个能力后端均已上线(改数量 PUT、删除 DELETE、手工录入复用 POST 的 suppliesName 分支,#6986)。原型「物资清单」Tab 的添加 / 删除操作因此可直接接入。[mmg 2026-09-17 交付] 全部落地:①orderV2GroupBatch 加 getGroupBatchSupplies/updateGroupBatchSuppliesQuantity/deleteGroupBatchSupplies(写路径不带 groupBatchId,雪花字符串,写关去重);②SuppliesPanel 清单源切换为 GET supplies(candidates 只留 PickerModal 内部),数量列行内 NInputNumber + 行尾 NPopconfirm 删除 + 手工录入按钮,三能力与确认物资共用 MATERIAL_PREPARING 阶段门,589520/589507 拦截器透 message 不建字典;③新建 SuppliesManualModal(NForm rules 必填,body 不传 suppliesResourceId)。api spec 3 例 + 两组件 spec 12 例,scoped checkpoint 13 项全绿。 2026-09-17 dev-v3

团期物资清单补改数量删除与手工录入(前端优化)

服务: hl-order-service-v3(后端零改动) 页面: 管理后台 /order-v2/batch → 团期详情 → 物资 Tab 组件: src/views/order-v2/batch/detail/components/SuppliesPanel.vue、SuppliesPickerModal.vue 原型: 团期需求1/_verify/proto_local/batchDetail.jsx「物资清单」Tab 前端基线: mmg/hl-ui v2.1 @ 15e3d7d 日期: 2026-09-17 影响范围: 仅前台;无端点、无出入参、无路由、无 DDL 变化


⚠️ 关键变化

🔵 组件注释已过时。 SuppliesPanel.vue:76 写着「调整数量 / 删除行 / 手工录入待后端补契约后接入」, 这三项后端都已上线,可以直接接。


一、原型要求 vs 当前渲染

原型功能 当前前端 后端接口
物资清单表 ✅ 已有(候选列表 added 标记) GET …/{groupBatchId}/supplies/candidates
从备品库加入 ✅ 已有 POST …/{groupBatchId}/supplies(传 suppliesResourceId)
添加物资(名称 + 数量规格)手工录入 ❌ 缺 同一个 POST,传 suppliesName 不传 suppliesResourceId
行内改数量 ❌ 缺 PUT …/supplies/{batchSuppliesId}/quantity
删除物资(行尾 ✕) ❌ 缺 DELETE …/supplies/{batchSuppliesId}
确认物资清单 ✅ 已有 POST …/{groupBatchId}/confirm-material

接口前缀均为 /v3/admin/order/group-batch。


二、本次调整

2.1 已选清单改用团期物资列表

改数量、删除都要行 ID。建议已选清单直接读:

GET /v3/admin/order/group-batch/{groupBatchId}/supplies

每行字段:id(即 batchSuppliesId)、suppliesResourceId(手工录入行为 null)、suppliesName、category、hasCost、billingType、unitPrice、quantity、sortOrder、remark。

候选接口的 batchSuppliesId 也能用,但手工录入的行不在候选库里,只有这个列表能看到。

2.2 手工录入

POST /v3/admin/order/group-batch/{groupBatchId}/supplies
Content-Type: application/json

{ "suppliesName": "急救包", "category": "…", "quantity": 2, "remark": "规格:大号" }
  • suppliesName 与 suppliesResourceId 二选一:不传库 ID 时名称必填,否则报「备品名称不能为空(未指定备品库 ID 时必填)」
  • quantity 必填
  • 可选:category(字典 supplies_category)、hasCost、billingType、unitPrice、sortOrder、remark
  • 原型「数量规格」一栏:数量进 quantity,规格文字进 remark

2.3 改数量

PUT /v3/admin/order/group-batch/supplies/{batchSuppliesId}/quantity
Content-Type: application/json

{ "quantity": 3 }

⚠️ 路径里没有 groupBatchId。

2.4 删除

DELETE /v3/admin/order/group-batch/supplies/{batchSuppliesId}

软删,删除后重新拉 2.1 的列表。

2.5 共同约束

  • 阶段门:三个写操作只在团期 batchStatus = MATERIAL_PREPARING 时放行,其他阶段返回 589520「物资清单只能在『准备物资』阶段配置」。按钮按同一条件显隐或置灰,与现有「确认物资」一致
  • 权限:写操作 group-batch:manage,列表 group-batch:view(团期管理员均已授)
  • 物资确认后是否仍允许改:后端只看阶段(jw 2026-09-02 / 09-03 两次确认「只要还在准备物资就放行」),前端不要另加只读判断

三、不在本条范围

  • 物资确认、从备品库选择:已上线,不改
  • 备品库本身的维护(资源 → 备品):另一模块

四、验证建议

  1. 在 TEST 物料准备中的团里手工录入「急救包 ×2」,列表出现该行,suppliesResourceId 为空
  2. 改数量为 3,刷新后仍为 3;删除后该行消失
  3. 找一个资源准备中的团,三个写按钮不可用;强行调用返回 589520