27 lines
1.7 KiB
Markdown
27 lines
1.7 KiB
Markdown
## 1. API And Types
|
||
|
||
- [x] 1.1 按 21 号接口文档核对代理系列授权列表、创建、详情、更新和套餐管理的请求响应类型。
|
||
- [x] 1.2 将创建请求的 `packages` 定义为必填,并补充套餐 1~100 项及套餐 ID 不重复的约束说明。
|
||
- [x] 1.3 明确 `GrantPackageItem.remove` 仅用于后续套餐删除,保留完整授权详情响应类型。
|
||
|
||
## 2. Candidate State Merge
|
||
|
||
- [x] 2.1 在创建授权页面按 `package_id` 合并套餐候选列表和当前选择状态。
|
||
- [x] 2.2 在授权详情页面按 `package_id` 合并套餐列表候选和详情中的已授权套餐,已授权套餐必须保留在合并结果中。
|
||
- [x] 2.3 在独立授权套餐列表页面复用同一状态规则,避免候选套餐和已授权套餐重复或丢失。
|
||
|
||
## 3. Create And Manage Packages
|
||
|
||
- [x] 3.1 创建授权提交前校验套餐数量为 1~100,且套餐 ID 不重复。
|
||
- [x] 3.2 创建授权始终提交 `packages[]`,禁止空数组或缺失套餐列表提交。
|
||
- [x] 3.3 新增或调价继续提交套餐项和成本价;删除只提交 `remove: true`,不调用独立删除接口。
|
||
- [x] 3.4 套餐管理成功后使用后端返回的完整授权详情刷新页面,不前端重算响应结构。
|
||
|
||
## 4. Verification
|
||
|
||
- [x] 4.1 验证创建 1 个套餐成功,创建 0 个、101 个和重复套餐被阻止。
|
||
- [x] 4.2 验证套餐候选与授权详情合并后,已授权状态、成本价和生效条件展示正确。
|
||
- [x] 4.3 验证新增、调价和 `remove=true` 删除均使用套餐管理接口。
|
||
- [x] 4.4 验证接口成功响应仍按完整授权详情结构处理。
|
||
- [x] 4.5 运行类型检查、lint 和构建。
|