# 价格档位是自动计算字段,前端不需要手动输入 **日期**: 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}` | 删除套餐 | **套餐请求体**: ```json { "comboName": "1大1小", "comboCode": "1A1C", "adultCount": 1, "childCount": 1, "sellPrice": 12800, "stock": 20 } ``` **流程**:团期管理 → 选择团期 → 配置套餐组合和价格 → 小程序详情页自动取最近可报名团期的套餐展示 产品编辑页的"价格档位"输入框应该去掉,改为提示"价格档位由团期套餐自动生成"。 --- ## 更正:产品级别配置组合,价格后端自动算 ### 管理端输入 产品编辑时配置 `priceTierLabels`(只输组合名称和人数,不输价格): ```json [ { "label": "1大1小", "adultCount": 1, "childCount": 1 }, { "label": "1大2小", "adultCount": 1, "childCount": 2 }, { "label": "2大1小", "adultCount": 2, "childCount": 1 } ] ``` 通过 `POST /admin/product/save` 或 `PUT /admin/product/{id}` 的 `priceTierLabels` 字段保存。 ### 小程序展示 `priceTiers` 后端根据组合定义,匹配所有可报名团期 combo 的最低售价自动填入 `price`: ```json [ { "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` 字段: ```json { "productId": "xxx", "priceTierLabels": [ { "label": "1大1小", "adultCount": 1, "childCount": 1 }, { "label": "2大1小", "adultCount": 2, "childCount": 1 } ] } ``` 和产品其他字段一起提交即可,不需要单独接口。