Initial commit: One Pipe System
完整的管理系统,包含账户管理、卡片管理、套餐管理、财务管理等功能模块。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
40
openspec/changes/add-platform-account-management/proposal.md
Normal file
40
openspec/changes/add-platform-account-management/proposal.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Change: 平台账号管理功能
|
||||
|
||||
## Why
|
||||
系统需要完整的平台账号管理能力,允许超级管理员管理平台内部的运营和管理人员账号。虽然后端已提供完整的平台账号 API(参考 `docs/部分API.md`),但缺少前端管理界面,导致管理员无法通过界面直观地管理平台账号、分配角色和控制账号状态。
|
||||
|
||||
## What Changes
|
||||
- 新增平台账号管理页面(`src/views/system/platform-account/index.vue`)
|
||||
- 完整实现平台账号 CRUD 功能
|
||||
- 支持平台账号列表查询和筛选
|
||||
- 提供角色分配功能(为账号分配/移除角色)
|
||||
- 支持修改账号密码
|
||||
- 支持启用/禁用账号
|
||||
- 添加国际化支持(中英文)
|
||||
- 添加路由配置
|
||||
- 平台账号 API 模块已完善(已补全缺失接口)
|
||||
|
||||
## Impact
|
||||
- 新增规范:`specs/platform-account-management/spec.md`
|
||||
- 新增文件:
|
||||
- `src/views/system/platform-account/index.vue` (平台账号管理页面)
|
||||
- 修改文件:
|
||||
- `src/router/routes/asyncRoutes.ts` (添加平台账号管理路由)
|
||||
- `src/router/routesAlias.ts` (添加路由别名)
|
||||
- `src/locales/langs/zh.json` (添加中文翻译)
|
||||
- `src/locales/langs/en.json` (添加英文翻译)
|
||||
- 依赖接口(参考 `docs/部分API.md`):
|
||||
- 平台账号列表 (GET /api/platform-accounts)
|
||||
- 新增平台账号 (POST /api/platform-accounts)
|
||||
- 删除平台账号 (DELETE /api/platform-accounts/:id)
|
||||
- 获取平台账号详情 (GET /api/platform-accounts/:id)
|
||||
- 编辑平台账号 (PUT /api/platform-accounts/:id)
|
||||
- 修改密码 (POST /api/platform-accounts/:id/password)
|
||||
- 获取账号角色 (GET /api/platform-accounts/:id/roles)
|
||||
- 分配角色 (POST /api/platform-accounts/:id/roles)
|
||||
- 移除角色 (DELETE /api/platform-accounts/:id/roles)
|
||||
- 启用/禁用账号 (PUT /api/platform-accounts/:id/status)
|
||||
- 依赖模块:
|
||||
- `src/api/modules/account.ts` (✅ 已补全所有接口)
|
||||
- 角色管理:获取角色列表用于分配
|
||||
- 权限系统:控制页面访问权限
|
||||
@@ -0,0 +1,241 @@
|
||||
# 平台账号管理规范
|
||||
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: 平台账号列表展示
|
||||
系统 SHALL 提供平台账号列表展示功能,以表格形式展示所有平台内部账号。
|
||||
|
||||
#### Scenario: 展示账号列表
|
||||
- **WHEN** 超级管理员访问平台账号管理页面
|
||||
- **THEN** 系统以表格展示所有平台账号,包含以下字段:
|
||||
- 账号ID
|
||||
- 账号名称
|
||||
- 用户名(登录名)
|
||||
- 手机号
|
||||
- 邮箱
|
||||
- 角色列表
|
||||
- 状态(启用/禁用)
|
||||
- 创建时间
|
||||
- 最后登录时间
|
||||
- 操作按钮
|
||||
|
||||
#### Scenario: 按账号名称搜索
|
||||
- **WHEN** 管理员在搜索框输入账号名称并点击查询
|
||||
- **THEN** 系统返回名称包含该关键词的账号记录
|
||||
|
||||
#### Scenario: 按用户名搜索
|
||||
- **WHEN** 管理员在搜索框输入用户名并点击查询
|
||||
- **THEN** 系统返回用户名包含该关键词的账号记录
|
||||
|
||||
#### Scenario: 按状态筛选
|
||||
- **WHEN** 管理员选择账号状态(启用/禁用)并点击查询
|
||||
- **THEN** 系统返回该状态的所有账号
|
||||
|
||||
#### Scenario: 重置搜索条件
|
||||
- **WHEN** 管理员点击重置按钮
|
||||
- **THEN** 系统清空所有搜索条件并显示完整列表
|
||||
|
||||
### Requirement: 新增平台账号
|
||||
系统 SHALL 提供新增平台账号功能,允许管理员创建新的平台运营或管理账号。
|
||||
|
||||
#### Scenario: 打开新增账号对话框
|
||||
- **WHEN** 管理员点击"新增账号"按钮
|
||||
- **THEN** 系统弹出新增账号对话框,包含以下字段:
|
||||
- 账号名称(必填)
|
||||
- 用户名(必填,唯一,作为登录名)
|
||||
- 密码(必填,需符合强度要求)
|
||||
- 确认密码(必填,需与密码一致)
|
||||
- 手机号(必填,格式验证)
|
||||
- 邮箱(可选,格式验证)
|
||||
- 状态(启用/禁用,默认启用)
|
||||
- 备注(可选)
|
||||
|
||||
#### Scenario: 成功创建账号
|
||||
- **WHEN** 管理员填写完整信息并点击确定
|
||||
- **THEN** 系统验证数据有效性,创建账号记录,关闭对话框,刷新列表,显示成功提示
|
||||
|
||||
#### Scenario: 用户名重复
|
||||
- **WHEN** 管理员输入已存在的用户名并提交
|
||||
- **THEN** 系统显示"用户名已存在"错误提示,不创建记录
|
||||
|
||||
#### Scenario: 密码强度不足
|
||||
- **WHEN** 管理员输入不符合强度要求的密码并提交
|
||||
- **THEN** 系统显示"密码强度不足,至少8位且包含字母、数字"错误提示
|
||||
|
||||
#### Scenario: 确认密码不一致
|
||||
- **WHEN** 管理员输入的确认密码与密码不一致并提交
|
||||
- **THEN** 系统显示"两次输入的密码不一致"错误提示
|
||||
|
||||
#### Scenario: 必填字段校验
|
||||
- **WHEN** 管理员未填写必填字段并提交
|
||||
- **THEN** 系统高亮显示未填写的必填字段,显示"请填写必填项"提示
|
||||
|
||||
### Requirement: 编辑平台账号
|
||||
系统 SHALL 提供编辑平台账号功能,允许管理员修改已有账号的基本信息。
|
||||
|
||||
#### Scenario: 打开编辑账号对话框
|
||||
- **WHEN** 管理员点击某个账号的"编辑"按钮
|
||||
- **THEN** 系统弹出编辑对话框,预填充该账号的当前信息(不包含密码)
|
||||
|
||||
#### Scenario: 成功更新账号
|
||||
- **WHEN** 管理员修改信息并点击确定
|
||||
- **THEN** 系统验证数据有效性,更新账号记录,关闭对话框,刷新列表,显示成功提示
|
||||
|
||||
#### Scenario: 编辑时不允许修改用户名为重复值
|
||||
- **WHEN** 管理员修改用户名为已存在的其他用户名并提交
|
||||
- **THEN** 系统显示"用户名已存在"错误提示,不更新记录
|
||||
|
||||
#### Scenario: 编辑时不显示密码
|
||||
- **WHEN** 管理员打开编辑对话框
|
||||
- **THEN** 密码字段不显示,系统提示"如需修改密码请使用修改密码功能"
|
||||
|
||||
### Requirement: 删除平台账号
|
||||
系统 SHALL 提供删除平台账号功能,允许管理员删除不再使用的账号。
|
||||
|
||||
#### Scenario: 删除账号
|
||||
- **WHEN** 管理员点击某个账号的"删除"按钮并确认
|
||||
- **THEN** 系统删除该账号记录,刷新列表,显示成功提示
|
||||
|
||||
#### Scenario: 删除前二次确认
|
||||
- **WHEN** 管理员点击"删除"按钮
|
||||
- **THEN** 系统弹出确认对话框,提示"确定要删除账号 XXX 吗?此操作不可撤销"
|
||||
|
||||
#### Scenario: 禁止删除当前登录账号
|
||||
- **WHEN** 管理员尝试删除自己当前登录的账号
|
||||
- **THEN** 系统提示"不能删除当前登录账号",不执行删除
|
||||
|
||||
#### Scenario: 取消删除操作
|
||||
- **WHEN** 管理员在确认对话框中点击取消
|
||||
- **THEN** 系统关闭对话框,不删除账号
|
||||
|
||||
### Requirement: 查看平台账号详情
|
||||
系统 SHALL 提供账号详情查看功能,展示账号的完整信息。
|
||||
|
||||
#### Scenario: 查看账号详情
|
||||
- **WHEN** 管理员点击账号的"查看详情"按钮
|
||||
- **THEN** 系统弹出详情对话框,展示账号的所有字段信息,包括:
|
||||
- 基本信息(账号名称、用户名、手机号、邮箱)
|
||||
- 角色信息(已分配的角色列表)
|
||||
- 状态信息(当前状态、创建时间、更新时间、最后登录时间)
|
||||
- 备注信息
|
||||
|
||||
### Requirement: 修改账号密码
|
||||
系统 SHALL 提供修改账号密码功能,允许管理员重置平台账号的登录密码。
|
||||
|
||||
#### Scenario: 打开修改密码对话框
|
||||
- **WHEN** 管理员点击账号的"修改密码"按钮
|
||||
- **THEN** 系统弹出修改密码对话框,包含以下字段:
|
||||
- 新密码(必填,需符合强度要求)
|
||||
- 确认新密码(必填,需与新密码一致)
|
||||
|
||||
#### Scenario: 成功修改密码
|
||||
- **WHEN** 管理员输入符合要求的新密码并点击确定
|
||||
- **THEN** 系统更新账号密码,关闭对话框,显示"密码修改成功"提示
|
||||
|
||||
#### Scenario: 新密码强度不足
|
||||
- **WHEN** 管理员输入不符合强度要求的新密码并提交
|
||||
- **THEN** 系统显示"密码强度不足,至少8位且包含字母、数字"错误提示
|
||||
|
||||
#### Scenario: 确认密码不一致
|
||||
- **WHEN** 管理员输入的确认密码与新密码不一致并提交
|
||||
- **THEN** 系统显示"两次输入的密码不一致"错误提示
|
||||
|
||||
### Requirement: 角色分配管理
|
||||
系统 SHALL 提供角色分配功能,允许管理员为平台账号分配或移除角色。
|
||||
|
||||
#### Scenario: 打开角色分配对话框
|
||||
- **WHEN** 管理员点击账号的"分配角色"按钮
|
||||
- **THEN** 系统弹出角色分配对话框,显示:
|
||||
- 当前账号已分配的角色列表(可移除)
|
||||
- 可分配的角色列表(多选框)
|
||||
|
||||
#### Scenario: 为账号添加角色
|
||||
- **WHEN** 管理员选中一个或多个角色并点击确定
|
||||
- **THEN** 系统为该账号添加选中的角色,刷新角色列表,显示成功提示
|
||||
|
||||
#### Scenario: 从账号移除角色
|
||||
- **WHEN** 管理员在已分配角色列表中移除某个角色并点击确定
|
||||
- **THEN** 系统从该账号移除该角色,刷新角色列表,显示成功提示
|
||||
|
||||
#### Scenario: 显示角色权限说明
|
||||
- **WHEN** 管理员在角色列表中查看某个角色
|
||||
- **THEN** 系统显示该角色的描述和主要权限说明
|
||||
|
||||
#### Scenario: 至少保留一个角色
|
||||
- **WHEN** 管理员尝试移除账号的所有角色
|
||||
- **THEN** 系统提示"账号至少需要保留一个角色",不允许全部移除
|
||||
|
||||
### Requirement: 账号状态管理
|
||||
系统 SHALL 提供账号状态切换功能,允许管理员启用或禁用平台账号。
|
||||
|
||||
#### Scenario: 切换账号状态
|
||||
- **WHEN** 管理员点击账号的状态开关
|
||||
- **THEN** 系统更新该账号的状态(启用↔禁用),刷新列表,显示成功提示
|
||||
|
||||
#### Scenario: 禁用账号后登录限制
|
||||
- **WHEN** 账号被禁用后,该账号尝试登录
|
||||
- **THEN** 系统拒绝登录,提示"账号已被禁用,请联系管理员"
|
||||
|
||||
#### Scenario: 禁止禁用当前登录账号
|
||||
- **WHEN** 管理员尝试禁用自己当前登录的账号
|
||||
- **THEN** 系统提示"不能禁用当前登录账号",不执行禁用
|
||||
|
||||
### Requirement: 分页功能
|
||||
系统 SHALL 支持平台账号列表的分页展示,以提高大数据量下的性能和用户体验。
|
||||
|
||||
#### Scenario: 默认分页显示
|
||||
- **WHEN** 管理员首次访问页面
|
||||
- **THEN** 系统默认显示第 1 页,每页 20 条记录
|
||||
|
||||
#### Scenario: 切换页码
|
||||
- **WHEN** 管理员点击分页器的页码
|
||||
- **THEN** 系统跳转到对应页面并加载数据
|
||||
|
||||
#### Scenario: 调整每页显示数量
|
||||
- **WHEN** 管理员选择不同的每页显示数量(10/20/50/100)
|
||||
- **THEN** 系统重新加载数据并按新的数量显示
|
||||
|
||||
#### Scenario: 显示总记录数
|
||||
- **WHEN** 数据加载完成后
|
||||
- **THEN** 分页器显示总记录数
|
||||
|
||||
### Requirement: 国际化支持
|
||||
系统 SHALL 支持中英文双语界面,所有文案通过国际化文件管理。
|
||||
|
||||
#### Scenario: 中文界面显示
|
||||
- **WHEN** 系统语言设置为中文
|
||||
- **THEN** 所有界面文案显示为中文
|
||||
|
||||
#### Scenario: 英文界面显示
|
||||
- **WHEN** 系统语言设置为英文
|
||||
- **THEN** 所有界面文案显示为英文
|
||||
|
||||
### Requirement: 访问权限控制
|
||||
系统 SHALL 限制平台账号管理页面的访问权限,仅超级管理员可访问。
|
||||
|
||||
#### Scenario: 超级管理员访问
|
||||
- **WHEN** 超级管理员访问平台账号管理页面
|
||||
- **THEN** 系统正常显示平台账号管理界面
|
||||
|
||||
#### Scenario: 普通管理员访问
|
||||
- **WHEN** 普通管理员尝试访问平台账号管理页面
|
||||
- **THEN** 系统显示"403 无权访问"页面或重定向到首页
|
||||
|
||||
### Requirement: 异常处理与用户反馈
|
||||
系统 SHALL 在操作过程中提供清晰的用户反馈和错误处理。
|
||||
|
||||
#### Scenario: 操作成功反馈
|
||||
- **WHEN** 用户执行新增/编辑/删除/密码修改/角色分配操作成功
|
||||
- **THEN** 系统显示成功消息提示(如"账号创建成功")
|
||||
|
||||
#### Scenario: API 请求失败处理
|
||||
- **WHEN** API 请求失败或超时
|
||||
- **THEN** 系统显示错误消息,并提示用户重试
|
||||
|
||||
#### Scenario: 数据加载状态
|
||||
- **WHEN** 系统正在加载账号数据
|
||||
- **THEN** 显示加载动画或骨架屏,防止用户误操作
|
||||
|
||||
#### Scenario: 空数据提示
|
||||
- **WHEN** 账号列表为空
|
||||
- **THEN** 系统显示"暂无账号数据,点击新增按钮创建账号"提示
|
||||
79
openspec/changes/add-platform-account-management/tasks.md
Normal file
79
openspec/changes/add-platform-account-management/tasks.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# 实现任务清单
|
||||
|
||||
## 1. API 模块实现
|
||||
- [x] 1.1 补全平台账号 API 接口(已在 `src/api/modules/account.ts` 中完成)
|
||||
- [x] 平台账号列表查询
|
||||
- [x] 创建平台账号
|
||||
- [x] 更新平台账号
|
||||
- [x] 删除平台账号
|
||||
- [x] 获取账号详情
|
||||
- [x] 获取账号角色
|
||||
- [x] 分配角色
|
||||
- [x] 移除角色
|
||||
- [x] 修改密码
|
||||
- [x] 启用/禁用账号
|
||||
|
||||
## 2. 前端页面实现
|
||||
- [ ] 2.1 创建平台账号管理页面组件 `src/views/system/platform-account/index.vue`
|
||||
- [ ] 2.1.1 实现账号列表展示(表格)
|
||||
- [ ] 2.1.2 实现搜索表单(账号名称、用户名、状态)
|
||||
- [ ] 2.1.3 实现新增账号功能(对话框表单)
|
||||
- [ ] 2.1.4 实现编辑账号功能
|
||||
- [ ] 2.1.5 实现删除账号功能(含确认)
|
||||
- [ ] 2.1.6 实现账号详情查看
|
||||
- [ ] 2.1.7 实现修改密码功能
|
||||
- [ ] 2.1.8 实现角色分配功能(对话框+多选)
|
||||
- [ ] 2.1.9 实现账号状态切换(启用/禁用)
|
||||
- [ ] 2.1.10 实现分页功能
|
||||
- [ ] 2.2 添加路由配置
|
||||
- [ ] 2.2.1 在 `src/router/routes/asyncRoutes.ts` 中添加平台账号管理路由
|
||||
- [ ] 2.2.2 在 `src/router/routesAlias.ts` 中添加路由别名
|
||||
- [ ] 2.3 添加国际化支持
|
||||
- [ ] 2.3.1 在 `src/locales/langs/zh.json` 中添加中文文案
|
||||
- [ ] 2.3.2 在 `src/locales/langs/en.json` 中添加英文文案
|
||||
|
||||
## 3. 角色分配功能
|
||||
- [ ] 3.1 实现角色选择组件或对话框
|
||||
- [ ] 3.2 显示账号当前拥有的角色
|
||||
- [ ] 3.3 支持添加角色(多选)
|
||||
- [ ] 3.4 支持移除已分配的角色
|
||||
- [ ] 3.5 实时更新角色列表
|
||||
|
||||
## 4. 密码管理功能
|
||||
- [ ] 4.1 实现修改密码对话框
|
||||
- [ ] 4.2 密码强度验证(长度、复杂度)
|
||||
- [ ] 4.3 确认密码校验
|
||||
- [ ] 4.4 修改成功后提示
|
||||
|
||||
## 5. 数据验证与交互优化
|
||||
- [ ] 5.1 表单字段验证
|
||||
- [ ] 账号名称必填
|
||||
- [ ] 用户名必填且唯一
|
||||
- [ ] 密码强度校验
|
||||
- [ ] 手机号格式验证
|
||||
- [ ] 邮箱格式验证
|
||||
- [ ] 5.2 用户体验优化
|
||||
- [ ] 加载状态提示
|
||||
- [ ] 操作成功/失败消息提示
|
||||
- [ ] 删除前二次确认
|
||||
- [ ] 空数据提示
|
||||
|
||||
## 6. 权限控制
|
||||
- [ ] 6.1 配置页面访问权限(仅超级管理员可访问)
|
||||
- [ ] 6.2 添加按钮级权限控制(新增、编辑、删除等)
|
||||
|
||||
## 7. 测试与优化
|
||||
- [ ] 7.1 功能测试(CRUD 操作)
|
||||
- [ ] 7.2 角色分配功能测试
|
||||
- [ ] 7.3 密码修改功能测试
|
||||
- [ ] 7.4 状态切换功能测试
|
||||
- [ ] 7.5 异常处理测试
|
||||
|
||||
## 当前状态
|
||||
- ✅ 第 1 阶段(API 模块)已完成
|
||||
- ⏳ 第 2 阶段(前端页面)待实现
|
||||
- ⏳ 第 3 阶段(角色分配)待实现
|
||||
- ⏳ 第 4 阶段(密码管理)待实现
|
||||
- ⏳ 第 5 阶段(验证优化)待实现
|
||||
- ⏳ 第 6 阶段(权限控制)待实现
|
||||
- ⏳ 第 7 阶段(测试优化)待实现
|
||||
Reference in New Issue
Block a user