Files
one-pipe-system/openspec/changes/add-permission-management/specs/permission-management/spec.md
sexygoat 222e5bb11a Initial commit: One Pipe System
完整的管理系统,包含账户管理、卡片管理、套餐管理、财务管理等功能模块。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-22 16:35:33 +08:00

207 lines
8.3 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.
# 权限管理规范
## ADDED Requirements
### Requirement: 权限列表展示
系统 SHALL 提供权限列表展示功能,以树形表格形式展示系统的完整权限结构。
#### Scenario: 展示权限树形列表
- **WHEN** 管理员访问权限管理页面
- **THEN** 系统以树形表格展示所有权限,包含以下字段:
- 权限名称
- 权限标识permissionCode
- 权限类型(菜单/按钮/API
- 父级权限(如有)
- 菜单路径menu类型
- 图标menu类型
- 排序序号
- 状态(启用/禁用)
- 创建时间
- 操作按钮
#### Scenario: 按权限名称搜索
- **WHEN** 管理员在搜索框输入权限名称并点击查询
- **THEN** 系统返回名称包含该关键词的权限记录,保持树形结构
#### Scenario: 按权限标识搜索
- **WHEN** 管理员在搜索框输入权限标识并点击查询
- **THEN** 系统返回匹配该标识的权限记录及其父级权限
#### Scenario: 按权限类型筛选
- **WHEN** 管理员选择权限类型(菜单/按钮/API并点击查询
- **THEN** 系统返回该类型的所有权限,保持树形结构
#### Scenario: 按权限状态筛选
- **WHEN** 管理员选择权限状态(启用/禁用)并点击查询
- **THEN** 系统返回该状态的所有权限
#### Scenario: 重置搜索条件
- **WHEN** 管理员点击重置按钮
- **THEN** 系统清空所有搜索条件并显示完整权限树
### Requirement: 新增权限
系统 SHALL 提供新增权限功能,允许管理员创建新的菜单、按钮或 API 权限。
#### Scenario: 打开新增权限对话框
- **WHEN** 管理员点击"新增权限"按钮
- **THEN** 系统弹出新增权限对话框,包含以下字段:
- 权限名称(必填)
- 权限标识(必填,唯一)
- 权限类型(必选:菜单/按钮/API
- 父级权限(可选,树形选择)
- 菜单路径(权限类型为菜单时必填)
- 菜单图标(权限类型为菜单时可选)
- 排序序号(可选,数字)
- 状态(启用/禁用,默认启用)
- 描述(可选)
#### 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** 系统删除该权限记录,刷新列表,显示成功提示
#### Scenario: 删除权限前二次确认
- **WHEN** 管理员点击"删除"按钮
- **THEN** 系统弹出确认对话框,提示"确定要删除该权限吗?此操作不可撤销"
#### Scenario: 删除有子权限的权限
- **WHEN** 管理员尝试删除有子权限的权限
- **THEN** 系统提示"该权限下存在子权限,请先删除子权限",不执行删除
#### Scenario: 删除已分配给角色的权限
- **WHEN** 管理员尝试删除已分配给角色的权限
- **THEN** 系统提示"该权限已分配给角色,请先从角色中移除该权限",不执行删除
#### Scenario: 取消删除操作
- **WHEN** 管理员在确认对话框中点击取消
- **THEN** 系统关闭对话框,不删除权限
### Requirement: 批量删除权限
系统 SHALL 提供批量删除权限功能,允许管理员一次性删除多个权限。
#### Scenario: 选择多个权限并删除
- **WHEN** 管理员选中多个无子权限的权限并点击"批量删除"按钮并确认
- **THEN** 系统删除所有选中的权限,刷新列表,显示成功提示(如"成功删除 3 个权限"
#### Scenario: 批量删除包含有子权限的权限
- **WHEN** 管理员选中的权限中包含有子权限的权限
- **THEN** 系统仅删除无子权限的权限,提示"部分权限存在子权限,已跳过删除"
### Requirement: 权限状态管理
系统 SHALL 提供权限状态切换功能,允许管理员启用或禁用权限。
#### Scenario: 切换权限状态
- **WHEN** 管理员点击权限的状态开关
- **THEN** 系统更新该权限的状态(启用↔禁用),刷新列表,显示成功提示
#### Scenario: 禁用父级权限
- **WHEN** 管理员禁用有子权限的权限
- **THEN** 系统同时禁用其所有子权限,提示"已同时禁用 X 个子权限"
### Requirement: 权限树形展示
系统 SHALL 以树形结构展示权限的层级关系,支持展开/折叠操作。
#### Scenario: 默认展开第一级
- **WHEN** 管理员首次访问权限管理页面
- **THEN** 系统默认展开第一级权限,其余层级折叠
#### Scenario: 展开/折叠权限节点
- **WHEN** 管理员点击权限节点的展开/折叠图标
- **THEN** 系统展开或折叠该节点的子权限
#### Scenario: 展开全部权限
- **WHEN** 管理员点击"全部展开"按钮
- **THEN** 系统展开所有权限节点
#### Scenario: 折叠全部权限
- **WHEN** 管理员点击"全部折叠"按钮
- **THEN** 系统折叠所有权限节点,仅显示第一级
### Requirement: 权限类型可视化区分
系统 SHALL 使用不同的视觉样式区分权限类型,提升可读性。
#### Scenario: 权限类型标签样式
- **WHEN** 列表中显示权限类型
- **THEN** 菜单权限显示为蓝色标签按钮权限显示为绿色标签API权限显示为橙色标签
#### Scenario: 权限类型图标
- **WHEN** 权限为菜单类型且配置了图标
- **THEN** 在权限名称前显示对应的菜单图标
### Requirement: 权限详情查看
系统 SHALL 提供权限详情查看功能,展示权限的完整信息。
#### 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** 系统显示"暂无权限数据,点击新增按钮创建权限"提示