7.8 KiB
7.8 KiB
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 套餐系列 API(packageSeries.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 套餐管理 API(package.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 代理可售套餐 API(myPackage.ts)
- 2.3.1 实现 getMyPackages(我的可售套餐列表)
- 2.3.2 实现 getMyPackageDetail(获取可售套餐详情)
- 2.3.3 实现 getMySeriesAllocations(我的被分配系列列表)
2.4 单套餐分配 API(shopPackageAllocation.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 组件