121 lines
7.1 KiB
Markdown
121 lines
7.1 KiB
Markdown
# Requirements Document
|
||
|
||
## Introduction
|
||
|
||
本文档定义了钻石商城模块前端迁移的需求规范。该模块将从老项目(PHP ThinkPHP + Layui)迁移到新项目(ASP.NET Core + Vue 3 + Element Plus)。钻石商城模块是后台管理系统的营销功能模块,用于管理钻石充值商品的配置,包括商品信息、价格、首充配置、图片等。
|
||
|
||
## Glossary
|
||
|
||
- **Diamond_System**: 钻石商城管理系统,负责处理钻石商品的配置和管理
|
||
- **Diamond_Product**: 钻石商品,用户可购买的钻石充值商品
|
||
- **Diamond_List_Page**: 钻石商品列表页面,展示所有钻石商品
|
||
- **Diamond_Form_Dialog**: 钻石商品表单弹窗,用于新增和编辑商品
|
||
- **First_Charge**: 首充配置,首次充值用户可获得额外奖励
|
||
- **Reward_Config**: 赠送货币配置,配置购买商品后赠送的货币类型和数量
|
||
- **Search_Form**: 搜索表单组件,提供商品筛选功能
|
||
- **Diamond_Table**: 钻石商品表格组件,展示商品列表数据
|
||
- **API_Module**: 前端API模块,封装后端接口调用
|
||
|
||
## Requirements
|
||
|
||
### Requirement 1: 钻石商品列表
|
||
|
||
**User Story:** As a 运营人员, I want to 查看和管理钻石充值商品列表, so that I can 配置用户可购买的钻石商品。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 运营人员访问钻石商品页面 THEN THE Diamond_System SHALL 显示钻石商品列表,包含ID、商品名称、商品编号、价格、是否首充、展示图、排序、状态、创建时间、更新时间等字段
|
||
2. WHEN 运营人员输入搜索条件(商品名称、状态) THEN THE Diamond_System SHALL 根据条件筛选并返回匹配的商品列表
|
||
3. WHEN 商品列表数据量较大 THEN THE Diamond_System SHALL 支持分页展示,每页显示可配置数量的记录
|
||
4. WHEN 运营人员点击状态开关 THEN THE Diamond_System SHALL 切换商品的启用/禁用状态
|
||
5. WHEN 运营人员点击编辑按钮 THEN THE Diamond_System SHALL 打开编辑弹窗,显示商品详细信息
|
||
6. WHEN 运营人员点击删除按钮 THEN THE Diamond_System SHALL 弹出确认对话框,确认后删除商品
|
||
|
||
### Requirement 2: 钻石商品新增
|
||
|
||
**User Story:** As a 运营人员, I want to 添加新的钻石充值商品, so that I can 扩展用户可购买的商品选项。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 运营人员点击添加按钮 THEN THE Diamond_System SHALL 打开新增商品弹窗,显示空白表单
|
||
2. WHEN 运营人员填写商品信息(商品名称、商品编号、商品类型、价格、赠送货币、图片、排序、状态) THEN THE Diamond_System SHALL 验证必填字段不为空
|
||
3. WHEN 运营人员选择"是否首充"为"是" THEN THE Diamond_System SHALL 显示首充相关字段(首充额外赠送货币、首充展示图、首充选中图)
|
||
4. WHEN 运营人员选择"是否首充"为"否" THEN THE Diamond_System SHALL 隐藏首充相关字段
|
||
5. WHEN 运营人员上传图片 THEN THE Diamond_System SHALL 支持图片预览和替换
|
||
6. WHEN 运营人员提交表单 THEN THE Diamond_System SHALL 验证所有必填字段,验证通过后保存商品并刷新列表
|
||
7. IF 表单验证失败 THEN THE Diamond_System SHALL 显示错误提示,不关闭弹窗
|
||
|
||
### Requirement 3: 钻石商品编辑
|
||
|
||
**User Story:** As a 运营人员, I want to 编辑已有的钻石商品信息, so that I can 更新商品配置。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 运营人员打开编辑弹窗 THEN THE Diamond_System SHALL 加载并显示商品的所有信息
|
||
2. WHEN 商品为首充商品 THEN THE Diamond_System SHALL 显示首充相关字段并填充已有数据
|
||
3. WHEN 运营人员修改商品信息 THEN THE Diamond_System SHALL 实时更新表单数据
|
||
4. WHEN 运营人员提交修改 THEN THE Diamond_System SHALL 验证所有必填字段,验证通过后更新商品并刷新列表
|
||
5. IF 更新失败 THEN THE Diamond_System SHALL 显示错误提示,保留表单数据
|
||
|
||
### Requirement 4: 赠送货币配置
|
||
|
||
**User Story:** As a 运营人员, I want to 配置购买商品后赠送的货币, so that I can 设置用户购买后获得的奖励。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. THE Diamond_System SHALL 提供赠送货币配置组件,支持配置多种货币类型和数量
|
||
2. WHEN 运营人员配置基础赠送货币 THEN THE Diamond_System SHALL 保存货币类型和数量的JSON格式数据
|
||
3. WHEN 运营人员配置首充额外赠送货币 THEN THE Diamond_System SHALL 保存首充额外奖励的JSON格式数据
|
||
4. WHEN 加载商品数据 THEN THE Diamond_System SHALL 正确解析并显示已配置的货币奖励
|
||
|
||
### Requirement 5: 图片上传
|
||
|
||
**User Story:** As a 运营人员, I want to 上传商品展示图片, so that I can 配置商品在前端的显示效果。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. THE Diamond_System SHALL 支持上传4种图片:非首充展示图、非首充选中图、首充展示图、首充选中图
|
||
2. WHEN 运营人员点击图片区域 THEN THE Diamond_System SHALL 打开文件选择器
|
||
3. WHEN 运营人员选择图片文件 THEN THE Diamond_System SHALL 上传图片并显示预览
|
||
4. WHEN 图片上传成功 THEN THE Diamond_System SHALL 更新表单中的图片URL字段
|
||
5. IF 图片上传失败 THEN THE Diamond_System SHALL 显示错误提示
|
||
|
||
### Requirement 6: 前端API模块
|
||
|
||
**User Story:** As a 开发人员, I want to 有统一的API调用模块, so that I can 方便地与后端接口交互。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. THE API_Module SHALL 定义所有钻石商品相关的TypeScript接口类型
|
||
2. THE API_Module SHALL 实现钻石商品列表查询API调用 `getDiamondProducts`
|
||
3. THE API_Module SHALL 实现钻石商品新增API调用 `createDiamondProduct`
|
||
4. THE API_Module SHALL 实现钻石商品编辑API调用 `updateDiamondProduct`
|
||
5. THE API_Module SHALL 实现钻石商品删除API调用 `deleteDiamondProduct`
|
||
6. THE API_Module SHALL 实现钻石商品状态切换API调用 `updateDiamondProductStatus`
|
||
7. THE API_Module SHALL 实现获取最大排序值API调用 `getDiamondMaxSort`
|
||
8. WHEN API调用失败 THEN THE API_Module SHALL 返回统一格式的错误信息
|
||
|
||
### Requirement 7: 路由和权限配置
|
||
|
||
**User Story:** As a 开发人员, I want to 配置钻石商城模块的路由和权限, so that I can 控制页面访问。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. THE Diamond_System SHALL 配置钻石商品页面路由 `/business/diamond/list`
|
||
2. THE Diamond_System SHALL 为页面配置对应的权限标识(diamond:list, diamond:add, diamond:edit, diamond:delete)
|
||
3. THE Diamond_System SHALL 在业务管理菜单下添加钻石商城子菜单
|
||
|
||
### Requirement 8: 后端API开发
|
||
|
||
**User Story:** As a 开发人员, I want to 开发后端API接口, so that I can 支持前端所有功能。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. THE Diamond_System SHALL 提供钻石商品列表查询API,支持分页和筛选
|
||
2. THE Diamond_System SHALL 提供钻石商品新增API,验证必填字段
|
||
3. THE Diamond_System SHALL 提供钻石商品编辑API,验证必填字段
|
||
4. THE Diamond_System SHALL 提供钻石商品删除API
|
||
5. THE Diamond_System SHALL 提供钻石商品状态切换API
|
||
6. THE Diamond_System SHALL 提供获取最大排序值API
|
||
7. WHEN API调用失败 THEN THE Diamond_System SHALL 返回统一格式的错误响应
|