# Carrier Management Specification

## ADDED Requirements

### Requirement: 运营商列表查询

系统 SHALL 提供运营商列表查询功能，支持分页和多条件筛选。

#### Scenario: 获取所有运营商列表

- **WHEN** 用户访问运营商管理页面
- **THEN** 系统应显示运营商列表，包含运营商 ID、名称、编码、类型、描述、状态、创建时间、更新时间
- **AND** 列表应支持分页展示

#### Scenario: 按运营商名称模糊搜索

- **WHEN** 用户在搜索框输入运营商名称并点击搜索
- **THEN** 系统应返回名称匹配的运营商列表
- **AND** 支持模糊匹配

#### Scenario: 按运营商类型筛选

- **WHEN** 用户选择运营商类型（CMCC/CUCC/CTCC/CBN）并点击搜索
- **THEN** 系统应返回指定类型的运营商列表

#### Scenario: 按状态筛选

- **WHEN** 用户选择状态（启用/禁用）并点击搜索
- **THEN** 系统应返回指定状态的运营商列表

#### Scenario: 组合条件筛选

- **WHEN** 用户同时指定多个筛选条件
- **THEN** 系统应返回满足所有条件的运营商列表

### Requirement: 创建运营商

系统 SHALL 提供创建运营商的功能，允许运营人员添加新的运营商信息。

#### Scenario: 成功创建运营商

- **WHEN** 用户点击"新增运营商"按钮并填写完整的必填信息（运营商编码、运营商名称、运营商类型）
- **THEN** 系统应创建新的运营商记录
- **AND** 显示成功消息
- **AND** 刷新运营商列表

#### Scenario: 创建运营商时必填字段验证

- **WHEN** 用户提交创建表单但缺少必填字段
- **THEN** 系统应显示验证错误消息
- **AND** 阻止表单提交

#### Scenario: 运营商编码长度验证

- **WHEN** 用户输入的运营商编码长度不在 1-50 个字符之间
- **THEN** 系统应显示验证错误消息

#### Scenario: 运营商名称长度验证

- **WHEN** 用户输入的运营商名称长度不在 1-100 个字符之间
- **THEN** 系统应显示验证错误消息

#### Scenario: 运营商描述长度验证

- **WHEN** 用户输入的运营商描述超过 500 个字符
- **THEN** 系统应显示验证错误消息

### Requirement: 编辑运营商

系统 SHALL 允许用户编辑现有运营商的信息。

#### Scenario: 成功编辑运营商

- **WHEN** 用户点击编辑按钮并修改运营商信息后提交
- **THEN** 系统应更新运营商记录
- **AND** 显示成功消息
- **AND** 刷新运营商列表

#### Scenario: 编辑时只能修改名称和描述

- **WHEN** 用户编辑运营商时
- **THEN** 系统应只允许修改运营商名称和描述
- **AND** 运营商编码、运营商类型应不可修改

#### Scenario: 编辑时表单验证

- **WHEN** 用户修改运营商信息但不符合验证规则
- **THEN** 系统应显示验证错误消息
- **AND** 阻止表单提交

### Requirement: 删除运营商

系统 SHALL 允许用户删除运营商记录。

#### Scenario: 成功删除运营商

- **WHEN** 用户点击删除按钮并确认删除操作
- **THEN** 系统应删除该运营商记录
- **AND** 显示成功消息
- **AND** 刷新运营商列表

#### Scenario: 删除前二次确认

- **WHEN** 用户点击删除按钮
- **THEN** 系统应显示确认对话框
- **AND** 提示用户确认删除操作

#### Scenario: 取消删除操作

- **WHEN** 用户在确认对话框中点击取消
- **THEN** 系统应取消删除操作
- **AND** 保留运营商记录

### Requirement: 运营商状态管理

系统 SHALL 提供运营商状态切换功能（启用/禁用）。

#### Scenario: 成功切换运营商状态

- **WHEN** 用户点击状态开关
- **THEN** 系统应立即更新运营商状态
- **AND** 显示成功消息
- **AND** UI 应反映新的状态

#### Scenario: 状态切换失败时回滚

- **WHEN** 状态切换请求失败
- **THEN** 系统应恢复原状态
- **AND** 显示错误消息

### Requirement: 获取运营商详情

系统 SHALL 提供获取单个运营商详细信息的功能。

#### Scenario: 成功获取运营商详情

- **WHEN** 系统需要获取特定运营商的详细信息
- **THEN** 系统应返回该运营商的完整信息
- **AND** 包含运营商 ID、编码、名称、类型、描述、状态、创建时间、更新时间

### Requirement: 运营商类型定义

系统 SHALL 支持以下运营商类型。

#### Scenario: 运营商类型枚举

- **WHEN** 系统处理运营商类型
- **THEN** 系统应支持以下类型：
  - CMCC: 中国移动
  - CUCC: 中国联通
  - CTCC: 中国电信
  - CBN: 中国广电

### Requirement: 数据展示和格式化

系统 SHALL 正确展示和格式化运营商数据。

#### Scenario: 运营商类型显示

- **WHEN** 在列表中显示运营商类型
- **THEN** 系统应将类型代码转换为可读的中文名称
- **AND** 使用不同的标签颜色区分不同类型

#### Scenario: 状态显示

- **WHEN** 在列表中显示运营商状态
- **THEN** 系统应使用开关组件展示状态
- **AND** 启用状态显示为绿色"启用"
- **AND** 禁用状态显示为红色"禁用"

#### Scenario: 时间格式化

- **WHEN** 显示创建时间和更新时间
- **THEN** 系统应将时间格式化为 YYYY-MM-DD HH:mm:ss 格式

### Requirement: 权限控制

系统 SHALL 对运营商管理功能进行权限控制。

#### Scenario: 基于角色的访问控制

- **WHEN** 用户访问运营商管理页面
- **THEN** 系统应验证用户是否有访问权限
- **AND** 无权限用户应被重定向到 403 页面

### Requirement: 错误处理

系统 SHALL 正确处理各种错误情况。

#### Scenario: API 请求失败处理

- **WHEN** API 请求失败
- **THEN** 系统应显示友好的错误消息
- **AND** 不应中断用户操作流程

#### Scenario: 网络错误处理

- **WHEN** 发生网络错误
- **THEN** 系统应提示用户检查网络连接
- **AND** 允许用户重试操作
