HaniBlindBox/.kiro/specs/system-config-frontend/tasks.md
2026-01-18 01:29:27 +08:00

359 lines
13 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 Plan: 系统配置模块前端迁移
## Overview
本实现计划将系统配置模块从老项目PHP ThinkPHP + Layui迁移到新项目ASP.NET Core + Vue 3 + Element Plus。后端API已基本完成主要工作是前端页面开发和后端模型补充。
## 任务概览
| 阶段 | 任务数 | 预计工时 |
|------|--------|----------|
| 1. 后端API验证和补充 | 3 | 2h |
| 2. Checkpoint - 后端API验证 | 1 | 0.5h |
| 3. 前端API层开发 | 2 | 1.5h |
| 4. 前端基础设置页面 | 2 | 2h |
| 5. 前端微信支付配置页面 | 3 | 3h |
| 6. 前端支付宝配置页面 | 2 | 2h |
| 7. 前端小程序配置页面 | 3 | 3h |
| 8. 前端H5配置页面 | 3 | 3h |
| 9. Checkpoint - 支付配置验证 | 1 | 0.5h |
| 10. 前端上传配置页面 | 2 | 1.5h |
| 11. 前端签到配置页面 | 2 | 1h |
| 12. 前端系统设置页面 | 5 | 4h |
| 13. Checkpoint - 配置页面验证 | 1 | 0.5h |
| 14. 路由和菜单配置 | 2 | 1h |
| 15. Checkpoint - 完整功能验证 | 1 | 0.5h |
| 16. 属性测试 | 6 | 2h |
| 17. Final Checkpoint | 1 | 0.5h |
| **总计** | **40** | **28h** |
---
## Tasks
- [x] 1. 后端API验证和补充
- [x] 1.1 验证现有ConfigController API
- 使用Swagger测试 `GET /api/admin/business/config/{key}` 接口
- 测试所有配置键: base, weixinpay_setting, alipay_setting, miniprogram_setting, h5_setting, uploads, sign, systemconfig, app_setting, user_config, infinite_multiple, rank_setting, system_test
- 验证返回数据格式是否正确
- _Requirements: 10.1, 10.3_
- [x] 1.2 补充支付宝配置验证逻辑
-`AdminConfigService.cs` 添加 `ValidateAlipaySetting` 方法
- 验证商户列表不为空
- 验证AppId必填
- _Requirements: 3.3, 3.8_
- [x] 1.3 补充ConfigModels.cs中缺失的模型
- 添加 `AlipaySetting``AlipayMerchant` 模型
- 添加 `BaseSetting` 模型
- 添加 `SignSetting` 模型
- 添加 `AppSetting` 模型
- 添加 `UserConfig` 模型
- 添加 `SystemTest` 模型
- 添加 `InfiniteMultiple` 模型
- 添加 `RankSetting` 模型
- _Requirements: 10.1_
- [x] 2. Checkpoint - 后端API验证
- 确保所有配置键API正常工作
- 确保配置保存和获取功能正常
- 确保验证逻辑正确
- [x] 3. 前端API层开发
- [x] 3.1 创建配置管理API模块
- 创建 `src/api/business/config.ts`
- 定义所有TypeScript接口BaseSetting, WeixinPaySetting, AlipaySetting等
- 实现 `getConfig<T>(key: ConfigKey)` 获取配置API
- 实现 `updateConfig<T>(key: ConfigKey, value: T)` 更新配置API
- 实现 `getConfigKeys()` 获取配置键列表API
- _Requirements: 10.1, 10.2, 10.3_
- [ ]* 3.2 编写API模块单元测试
- 创建 `src/api/business/config.test.ts`
- 测试API调用参数构造
- 测试响应数据处理
- _Requirements: 10.4, 10.5_
- [x] 4. 前端基础设置页面开发
- [x] 4.1 创建基础设置页面
- 创建 `src/views/business/config/base.vue`
- 实现页面布局(表单区域)
- 实现网站名称、物流code、分销比例等基础配置项
- 实现赏券限制配置(特级/终极/高级/普通)
- 实现包邮门槛和运费配置
- 实现锁箱时间配置
- 实现图片上传(福利进群二维码、分享图片)
- 实现开关配置(首页弹窗、兑换开关)
- 实现表单验证和保存功能
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12_
- [ ]* 4.2 编写基础设置页面单元测试
- 测试表单验证逻辑
- 测试数据加载和保存
- _Requirements: 1.4_
- [x] 5. 前端微信支付配置页面开发
- [x] 5.1 创建微信支付配置页面
- 创建 `src/views/business/config/weixinpay.vue`
- 实现页面布局(商户列表区域)
- 实现商户列表展示
- 实现添加商户按钮
- 实现删除商户按钮(至少保留一个)
- 实现保存按钮
- _Requirements: 2.1, 2.2, 2.7, 2.8_
- [x] 5.2 创建商户表单组件
- 创建 `src/views/business/config/components/WeixinMerchantForm.vue`
- 实现商户名称、MCHID、Key输入
- 实现订单前缀输入3位字符验证
- 实现权重输入
- 实现启用状态开关
- 实现备注输入
- 实现表单验证(必填、前缀唯一性)
- _Requirements: 2.3, 2.4, 2.5, 2.6_
- [ ]* 5.3 编写微信支付配置页面单元测试
- 测试商户添加和删除逻辑
- 测试前缀唯一性验证
- _Requirements: 2.4, 2.7_
- [x] 6. 前端支付宝配置页面开发
- [x] 6.1 创建支付宝配置页面
- 创建 `src/views/business/config/alipay.vue`
- 实现页面布局(商户列表区域)
- 实现商户列表展示
- 实现添加/删除商户功能
- 实现保存功能
- _Requirements: 3.1, 3.2, 3.7, 3.8_
- [x] 6.2 创建支付宝商户表单组件
- 创建 `src/views/business/config/components/AlipayMerchantForm.vue`
- 实现商户名称、AppId输入
- 实现应用私钥、支付宝公钥文本域
- 实现权重、启用状态、备注配置
- 实现表单验证
- _Requirements: 3.3, 3.4, 3.5, 3.6_
- [x] 7. 前端小程序配置页面开发
- [x] 7.1 创建小程序配置页面
- 创建 `src/views/business/config/miniprogram.vue`
- 实现页面布局(小程序列表区域)
- 实现小程序列表展示
- 实现添加/删除小程序功能
- 实现保存功能(验证必须有默认小程序)
- _Requirements: 4.1, 4.2, 4.8, 4.9_
- [x] 7.2 创建小程序表单组件
- 创建 `src/views/business/config/components/MiniprogramForm.vue`
- 实现小程序名称、AppId、AppSecret输入
- 实现域名输入
- 实现订单前缀输入2位字符验证
- 实现是否默认单选框
- 实现关联商户多选(从微信支付配置获取商户列表)
- 实现表单验证
- _Requirements: 4.3, 4.4, 4.5, 4.6, 4.7_
- [ ]* 7.3 编写小程序配置页面单元测试
- 测试默认小程序唯一性验证
- 测试前缀唯一性验证
- _Requirements: 4.4, 4.6_
- [x] 8. 前端H5配置页面开发
- [x] 8.1 创建H5配置页面
- 创建 `src/views/business/config/h5.vue`
- 实现页面布局H5应用列表区域
- 实现H5应用列表展示
- 实现添加/删除H5应用功能
- 实现保存功能验证必须有默认H5应用
- _Requirements: 5.1, 5.2, 5.10, 5.11_
- [x] 8.2 创建H5应用表单组件
- 创建 `src/views/business/config/components/H5AppForm.vue`
- 实现H5名称、AppId、AppSecret输入
- 实现域名输入
- 实现订单前缀输入2位字符验证
- 实现是否默认单选框
- 实现支付方式选项卡(支付宝/微信)
- 实现关联商户选择
- 实现表单验证
- _Requirements: 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9_
- [ ]* 8.3 编写H5配置页面单元测试
- 测试默认H5应用唯一性验证
- 测试支付方式切换逻辑
- _Requirements: 5.4, 5.7_
- [x] 9. Checkpoint - 支付配置验证
- 确保微信支付配置页面正常工作
- 确保支付宝配置页面正常工作
- 确保小程序配置页面正常工作
- 确保H5配置页面正常工作
- 测试商户添加、删除、保存功能
- 测试前缀唯一性验证
- 测试默认唯一性验证
- [x] 10. 前端上传配置页面开发
- [x] 10.1 创建上传配置页面
- 创建 `src/views/business/config/uploads.vue`
- 实现页面布局(表单区域)
- 实现存储类型单选(本地/阿里云/腾讯云)
- 实现云存储配置字段(空间名称、地域、密钥、域名)
- 实现根据存储类型显示/隐藏配置字段
- 实现表单验证和保存功能
- _Requirements: 6.1, 6.2, 6.3, 6.4, 6.5_
- [ ]* 10.2 编写上传配置页面单元测试
- 测试存储类型切换逻辑
- 测试表单验证
- _Requirements: 6.2, 6.4_
- [x] 11. 前端签到配置页面开发
- [x] 11.1 创建签到配置页面
- 创建 `src/views/business/config/sign.vue`
- 实现页面布局(表单区域)
- 实现7天签到奖励配置
- 实现表单验证(数字验证)
- 实现保存功能
- _Requirements: 7.1, 7.2, 7.3_
- [ ]* 11.2 编写签到配置页面单元测试
- 测试数字验证逻辑
- _Requirements: 7.2_
- [x] 12. 前端系统设置页面开发
- [x] 12.1 创建系统设置主页面
- 创建 `src/views/business/config/system.vue`
- 实现页面布局(多卡片区域)
- 集成各配置卡片组件
- _Requirements: 8.1_
- [x] 12.2 创建应用设置卡片组件
- 创建 `src/views/business/config/components/AppSettingCard.vue`
- 实现项目名称、购买弹窗设置
- 实现商城购买次数配置
- 实现货币名称和图标配置(余额/货币1/货币2
- 实现中奖音频上传
- 实现各项限制配置
- 实现独立保存功能
- _Requirements: 8.2, 8.3, 8.4, 8.5, 8.6, 8.7_
- [x] 12.3 创建用户UID设置卡片组件
- 创建 `src/views/business/config/components/UserConfigCard.vue`
- 实现UID类型单选真实ID/数字ID/随机字符和数字)
- 实现UID长度配置根据类型显示/隐藏)
- 实现独立保存功能
- _Requirements: 8.8, 8.9_
- [x] 12.4 创建内测配置卡片组件
- 创建 `src/views/business/config/components/SystemTestCard.vue`
- 实现内测开关
- 实现禁用微信支付开关
- 实现签到倍数配置
- 实现独立保存功能
- _Requirements: 8.10, 8.11_
- [x] 12.5 创建排行榜设置卡片组件
- 创建 `src/views/business/config/components/RankSettingCard.vue`
- 实现达达券/钻石/UU币排行榜统计方式配置
- 实现自定义时间范围配置(根据类型显示/隐藏)
- 实现无限赏抽奖倍数配置
- 实现独立保存功能
- _Requirements: 8.12, 8.13, 8.14, 8.15_
- [x] 13. Checkpoint - 配置页面验证
- 确保基础设置页面正常工作
- 确保上传配置页面正常工作
- 确保签到配置页面正常工作
- 确保系统设置页面各卡片正常工作
- 测试配置保存和加载功能
- [x] 14. 路由和菜单配置
- [x] 14.1 配置路由
-`src/router/modules/business.ts` 添加系统配置路由配置
- 配置基础设置路由 `/business/config/base`
- 配置微信支付配置路由 `/business/config/weixinpay`
- 配置支付宝配置路由 `/business/config/alipay`
- 配置小程序配置路由 `/business/config/miniprogram`
- 配置H5配置路由 `/business/config/h5`
- 配置上传配置路由 `/business/config/uploads`
- 配置签到配置路由 `/business/config/sign`
- 配置系统设置路由 `/business/config/system`
- 配置权限标识 `config:view`, `config:edit`
- _Requirements: 9.1, 9.2, 9.3, 9.4_
- [x] 14.2 创建菜单SQL脚本
-`HoneyBox/scripts/` 创建 `seed_system_config_menus.sql`
- 添加系统配置菜单项
- 添加各子菜单项
- 添加相关权限配置
- _Requirements: 9.3_
- [x] 15. Checkpoint - 完整功能验证
- 确保所有页面正常访问
- 测试完整的配置管理流程
- 验证权限控制正常工作
- [ ] 16. 属性测试
- [ ]* 16.1 编写配置保存一致性属性测试
- **Property 1: 配置保存后获取一致性**
- **Validates: Requirements 1.2, 1.3, 1.4, 7.2**
- [ ]* 16.2 编写微信支付商户前缀唯一性属性测试
- **Property 2: 微信支付商户前缀唯一性验证**
- **Validates: Requirements 2.4**
- [ ]* 16.3 编写小程序默认唯一性属性测试
- **Property 3: 小程序默认唯一性验证**
- **Validates: Requirements 4.4, 4.9**
- [ ]* 16.4 编写H5应用默认唯一性属性测试
- **Property 4: H5应用默认唯一性验证**
- **Validates: Requirements 5.4, 5.11**
- [ ]* 16.5 编写商户列表最少保留一个属性测试
- **Property 5: 商户列表最少保留一个**
- **Validates: Requirements 2.7, 3.7**
- [ ]* 16.6 编写API响应格式一致性属性测试
- **Property 6: API响应格式一致性**
- **Validates: Requirements 10.1, 10.2, 10.3**
- [ ] 17. Final Checkpoint - 最终验证
- 确保所有测试通过
- 确保所有功能正常工作
- 如有问题,询问用户
---
## 验收检查清单
### 功能验收
- [ ] 基础设置页面正常显示,支持配置保存
- [ ] 微信支付配置页面正常显示,支持多商户管理
- [ ] 支付宝配置页面正常显示,支持多商户管理
- [ ] 小程序配置页面正常显示,支持多小程序管理
- [ ] H5配置页面正常显示支持多H5应用管理
- [ ] 上传配置页面正常显示,支持存储类型切换
- [ ] 签到配置页面正常显示支持7天奖励配置
- [ ] 系统设置页面正常显示,各卡片独立保存
- [ ] 商户前缀唯一性验证正常
- [ ] 默认小程序/H5应用唯一性验证正常
- [ ] 商户列表至少保留一个验证正常
- [ ] 图片上传功能正常
- [ ] 表单验证正常
### 非功能验收
- [ ] 页面加载性能正常
- [ ] 表单验证实时反馈
- [ ] 操作提示正确显示
- [ ] 属性测试全部通过
## Notes
- 每个Checkpoint确保增量验证
- 后端API已基本完成主要补充验证逻辑和模型定义
- 属性测试验证通用正确性属性
- 多商户/多小程序/多H5应用的动态表单是核心复杂度
- 任务标记 `*` 为可选任务,可根据时间情况决定是否执行