Files
one-pipe-system/openspec/changes/add-package-management-system/tasks.md
sexygoat 841cf0442b
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 3m30s
fetch(add): 订单管理-企业设备
2026-01-29 15:43:45 +08:00

157 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Implementation Tasks
## 1. 基础设施准备
- [ ] 1.1 创建套餐管理类型定义文件src/types/api/packageManagement.ts
- [ ] 1.2 创建套餐常量配置文件src/config/constants/package.ts
- [ ] 1.3 导出常量配置到 constants/index.ts
## 2. API 服务层实现
### 2.1 套餐系列 APIpackageSeries.ts
- [ ] 2.1.1 实现 getPackageSeries套餐系列列表
- [ ] 2.1.2 实现 createPackageSeries创建套餐系列
- [ ] 2.1.3 实现 getPackageSeriesDetail获取套餐系列详情
- [ ] 2.1.4 实现 updatePackageSeries更新套餐系列
- [ ] 2.1.5 实现 deletePackageSeries删除套餐系列
- [ ] 2.1.6 实现 updatePackageSeriesStatus更新套餐系列状态
### 2.2 套餐管理 APIpackage.ts
- [ ] 2.2.1 实现 getPackages套餐列表
- [ ] 2.2.2 实现 createPackage创建套餐
- [ ] 2.2.3 实现 getPackageDetail获取套餐详情
- [ ] 2.2.4 实现 updatePackage更新套餐
- [ ] 2.2.5 实现 deletePackage删除套餐
- [ ] 2.2.6 实现 updatePackageStatus更新套餐状态
- [ ] 2.2.7 实现 updatePackageShelfStatus更新套餐上架状态
### 2.3 代理可售套餐 APImyPackage.ts
- [ ] 2.3.1 实现 getMyPackages我的可售套餐列表
- [ ] 2.3.2 实现 getMyPackageDetail获取可售套餐详情
- [ ] 2.3.3 实现 getMySeriesAllocations我的被分配系列列表
### 2.4 单套餐分配 APIshopPackageAllocation.ts
- [ ] 2.4.1 实现 getShopPackageAllocations单套餐分配列表
- [ ] 2.4.2 实现 createShopPackageAllocation创建单套餐分配
- [ ] 2.4.3 实现 getShopPackageAllocationDetail获取单套餐分配详情
- [ ] 2.4.4 实现 updateShopPackageAllocation更新单套餐分配
- [ ] 2.4.5 实现 deleteShopPackageAllocation删除单套餐分配
- [ ] 2.4.6 实现 updateShopPackageAllocationStatus更新单套餐分配状态
- [ ] 2.5 在 src/api/modules/index.ts 中导出所有新服务
## 3. 页面实现
### 3.1 套餐系列管理页面package-series/index.vue
- [ ] 3.1.1 实现列表展示(表格、分页)
- [ ] 3.1.2 实现搜索栏(系列名称、状态筛选)
- [ ] 3.1.3 实现新增对话框(表单验证)
- [ ] 3.1.4 实现编辑功能(复用新增对话框,根据 dialogType 区分新增/编辑)
- [ ] 3.1.5 实现删除功能(二次确认)
- [ ] 3.1.6 实现状态开关(启用/禁用)
- [ ] 3.1.7 集成 API 服务并处理加载状态
### 3.2 套餐管理页面package-list/index.vue
- [ ] 3.2.1 实现列表展示(表格、分页)
- [ ] 3.2.2 实现搜索栏(名称、系列、状态、上架状态、类型筛选)
- [ ] 3.2.3 实现系列下拉选择器(加载套餐系列列表,只显示启用状态)
- [ ] 3.2.4 实现新增对话框(表单验证、系列选择)
- [ ] 3.2.5 实现编辑功能(复用新增对话框,根据 dialogType 区分新增/编辑)
- [ ] 3.2.6 实现删除功能(二次确认)
- [ ] 3.2.7 实现状态开关(启用/禁用)
- [ ] 3.2.8 实现上架状态开关(上架/下架)
- [ ] 3.2.9 集成 API 服务并处理加载状态
### 3.3 代理可售套餐页面my-packages/index.vue
- [ ] 3.3.1 创建页面文件和基本结构
- [ ] 3.3.2 实现列表展示(表格、分页)
- [ ] 3.3.3 实现搜索栏(系列、类型筛选)
- [ ] 3.3.4 实现详情对话框(显示成本价、建议售价、利润空间)
- [ ] 3.3.5 实现被分配系列列表Tab可选
- [ ] 3.3.6 集成 API 服务并处理加载状态
### 3.4 单套餐分配页面package-assign/index.vue
- [ ] 3.4.1 创建页面文件和基本结构
- [ ] 3.4.2 实现列表展示(表格、分页)
- [ ] 3.4.3 实现搜索栏(店铺、套餐、状态筛选)
- [ ] 3.4.4 实现套餐下拉选择器(加载套餐列表,只显示启用且上架的套餐)
- [ ] 3.4.5 实现店铺下拉选择器(使用 ShopService 加载店铺列表)
- [ ] 3.4.6 实现新增对话框(套餐选择、店铺选择、成本价输入)
- [ ] 3.4.7 实现编辑功能(单独对话框或复用新增对话框,只允许修改成本价)
- [ ] 3.4.8 实现删除功能(二次确认)
- [ ] 3.4.9 实现状态管理(启用/禁用开关)
- [ ] 3.4.10 集成 API 服务并处理加载状态
## 4. 路由配置
- [ ] 4.1 在 asyncRoutes.ts 中添加 my-packages 路由配置
- [ ] 4.2 验证路由权限配置正确
## 5. 集成测试
### 5.1 套餐系列管理测试
- [ ] 5.1.1 测试列表查询(空列表、有数据、分页)
- [ ] 5.1.2 测试搜索功能(名称模糊搜索、状态筛选)
- [ ] 5.1.3 测试新增功能(成功、编码重复、字段验证)
- [ ] 5.1.4 测试编辑功能(成功、字段验证)
- [ ] 5.1.5 测试删除功能(成功、有关联套餐时禁止删除)
- [ ] 5.1.6 测试状态切换(启用→禁用、禁用→启用)
- [ ] 5.1.7 测试权限控制(未登录、无权限)
### 5.2 套餐管理测试
- [ ] 5.2.1 测试列表查询(空列表、有数据、分页)
- [ ] 5.2.2 测试多条件筛选(名称、系列、状态、上架状态、类型)
- [ ] 5.2.3 测试系列下拉选择器(只显示启用状态的系列)
- [ ] 5.2.4 测试新增功能(成功、编码重复、时长验证、流量验证)
- [ ] 5.2.5 测试编辑功能(成功、字段验证)
- [ ] 5.2.6 测试删除功能(成功、已分配时禁止删除)
- [ ] 5.2.7 测试状态切换(启用→禁用、禁用→启用)
- [ ] 5.2.8 测试上架状态切换(上架→下架、下架→上架)
- [ ] 5.2.9 测试权限控制(未登录、无权限)
### 5.3 代理可售套餐测试
- [ ] 5.3.1 测试列表查询(空列表、有数据、分页)
- [ ] 5.3.2 测试筛选功能(按系列、按类型)
- [ ] 5.3.3 测试详情查询(显示成本价、建议售价、利润空间、价格来源)
- [ ] 5.3.4 测试数据隔离(只能看到分配给自己的套餐)
- [ ] 5.3.5 测试被分配系列列表(如果实现)
- [ ] 5.3.6 测试权限控制(非代理商用户无法访问)
### 5.4 单套餐分配测试
- [ ] 5.4.1 测试列表查询(空列表、有数据、分页)
- [ ] 5.4.2 测试筛选功能(按店铺、按套餐、按状态)
- [ ] 5.4.3 测试套餐下拉选择器(只显示启用且上架的套餐)
- [ ] 5.4.4 测试店铺下拉选择器(加载店铺列表)
- [ ] 5.4.5 测试新增功能(成功、重复分配、成本价验证)
- [ ] 5.4.6 测试编辑功能(修改成本价)
- [ ] 5.4.7 测试删除功能(成功、有订单时的处理)
- [ ] 5.4.8 测试状态切换(启用→禁用、禁用→启用)
- [ ] 5.4.9 测试价格覆盖规则(单套餐分配优先于系列分配)
- [ ] 5.4.10 测试权限控制(仅管理员可操作)
### 5.5 通用功能测试
- [ ] 5.5.1 测试所有页面的表单验证(必填、长度、格式)
- [ ] 5.5.2 测试所有页面的 loading 状态(列表、提交、删除)
- [ ] 5.5.3 测试所有页面的错误处理(网络错误、业务错误)
- [ ] 5.5.4 测试所有页面的二次确认(删除操作)
- [ ] 5.5.5 测试分页功能(换页、改变每页数量)
- [ ] 5.5.6 测试刷新功能(列表刷新)
- [ ] 5.5.7 测试列显示/隐藏功能
- [ ] 5.5.8 测试状态值映射前端0/1与后端1/2的转换
## 6. 代码优化和文档
- [ ] 6.1 代码格式化和 ESLint 检查
- [ ] 6.2 添加必要的注释
- [ ] 6.3 更新 API 文档(如需要)
- [ ] 6.4 提交代码并创建 PR
## 注意事项
- 所有页面需参考 `/system/role` 页面的组件化结构
- 使用统一的 `CommonStatus` 常量(需要注意文档中的状态值映射)
- API 字段使用下划线命名(如 `series_name`),前端类型使用驼峰命名
- 所有删除操作需要二次确认
- 所有表单需要完整的验证规则
- 统一使用 Element Plus 的 Message 和 MessageBox 组件