hl-api-changelog/changelogs/2026-03/26_1530_price_tiers_readonly.md
2026-03-26 15:52:12 +08:00

3.2 KiB

价格档位是自动计算字段,前端不需要手动输入

日期: 2026-03-26 类型: 前端BUG


问题

产品编辑页出现了"价格档位"手动输入表单(档位名称+价格),这个不应该存在。

正确逻辑

priceTiers后端自动计算的只读字段,数据来源:

  1. 管理端在团期管理中配置套餐组合combo,如"1大1小 ¥12800"、"2大1小 ¥18800"
  2. 后端自动取最近一期可报名团期的 combo 价格返回给小程序
  3. 前端产品编辑页不需要价格档位的输入表单

前端需要做

  • 删除产品编辑页的"价格档位"输入区域
  • 价格档位通过团期管理中的套餐combo配置,不在产品基本信息中配置

补充:组合在哪里配置

人员组合1大1小、2大1小等和价格在团期的套餐管理中配置:

方法 路径 说明
GET /admin/product/group-batch/{batchId}/combos 查看团期套餐列表
POST /admin/product/group-batch/{batchId}/combo 添加套餐
PUT /admin/product/group-batch/combo/{comboId} 编辑套餐
DELETE /admin/product/group-batch/combo/{comboId} 删除套餐

套餐请求体

{
  "comboName": "1大1小",
  "comboCode": "1A1C",
  "adultCount": 1,
  "childCount": 1,
  "sellPrice": 12800,
  "stock": 20
}

流程:团期管理 → 选择团期 → 配置套餐组合和价格 → 小程序详情页自动取最近可报名团期的套餐展示

产品编辑页的"价格档位"输入框应该去掉,改为提示"价格档位由团期套餐自动生成"。


更正:产品级别配置组合,价格后端自动算

管理端输入

产品编辑时配置 priceTierLabels(只输组合名称和人数,不输价格):

[
  { "label": "1大1小", "adultCount": 1, "childCount": 1 },
  { "label": "1大2小", "adultCount": 1, "childCount": 2 },
  { "label": "2大1小", "adultCount": 2, "childCount": 1 }
]

通过 POST /admin/product/savePUT /admin/product/{id}priceTierLabels 字段保存。

小程序展示

priceTiers 后端根据组合定义,匹配所有可报名团期 combo 的最低售价自动填入 price

[
  { "label": "1大1小", "adultCount": 1, "childCount": 1, "price": 12800 },
  { "label": "1大2小", "adultCount": 1, "childCount": 2, "price": 15800 },
  { "label": "2大1小", "adultCount": 2, "childCount": 1, "price": 18800 }
]

前端改造

产品编辑页的"价格档位"表单改为:

  • 输入:档位名称(如"1大1小"+ 成人数 + 儿童数
  • 不输入价格价格由后端从团期combo自动算
  • 回显用 priceTierLabels 字段

补充:价格档位保存方式

价格档位没有独立的保存接口,跟产品一起保存。

前端在价格档位区域加个"保存"按钮,点击时调 POST /admin/product/save(或 PUT /admin/product/{id},body 中带 priceTierLabels 字段:

{
  "productId": "xxx",
  "priceTierLabels": [
    { "label": "1大1小", "adultCount": 1, "childCount": 1 },
    { "label": "2大1小", "adultCount": 2, "childCount": 1 }
  ]
}

和产品其他字段一起提交即可,不需要单独接口。