# 平台账号管理规范

## 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** 系统显示"暂无账号数据，点击新增按钮创建账号"提示
