fetch(add): 运营商管理
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 2m23s

This commit is contained in:
sexygoat
2026-01-27 16:06:48 +08:00
parent c07e481b5b
commit 6127b21c2c
20 changed files with 1502 additions and 42 deletions

View File

@@ -0,0 +1,38 @@
# Change: 新增运营商管理功能
## Why
当前系统缺少对运营商基础信息的统一管理能力。需要提供一个集中的运营商管理模块,用于维护运营商的基础信息(名称、编码、类型、描述等),以便后续在网卡、套餐等业务模块中关联使用。
运营商管理是物联网卡管理系统的基础数据模块,需要支持对运营商的 CRUD 操作以及状态管理,方便运营人员统一维护运营商信息。
## What Changes
- 新增运营商管理 API 服务层CarrierService
- 新增运营商相关 TypeScript 类型定义
- 新增运营商管理页面,支持以下功能:
- 运营商列表查询(支持按名称、类型、状态筛选)
- 创建运营商
- 编辑运营商信息
- 删除运营商
- 状态切换(启用/禁用)
- 查看运营商详情
- 新增运营商类型常量配置CMCC/CUCC/CTCC/CBN
- 在账户管理菜单下新增运营商管理入口
- 新增路由配置
## Impact
- **新增文件**:
- `src/api/modules/carrier.ts` - API 服务层
- `src/types/api/carrier.ts` - TypeScript 类型定义
- `src/views/finance/carrier-management/index.vue` - 运营商管理页面
- `src/config/constants/carrierTypes.ts` - 运营商类型常量
- **修改文件**:
- `src/api/modules/index.ts` - 导出 CarrierService
- `src/types/api/index.ts` - 导出 carrier 类型
- `src/router/routesAlias.ts` - 新增路由别名
- `src/router/routes/asyncRoutes.ts` - 新增路由配置
- `src/config/constants/index.ts` - 导出运营商类型常量
- **受影响的业务模块**: 账户管理
- **不涉及破坏性变更**

View File

@@ -0,0 +1,200 @@
# 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** 允许用户重试操作

View File

@@ -0,0 +1,48 @@
# Implementation Tasks
## 1. 类型定义和常量配置
- [x] 1.1 创建运营商类型定义文件 `src/types/api/carrier.ts`
- [x] 1.2 在 `src/types/api/index.ts` 中导出 carrier 类型
- [x] 1.3 创建运营商类型常量 `src/config/constants/carrierTypes.ts`
- [x] 1.4 在 `src/config/constants/index.ts` 中导出运营商类型常量
## 2. API 服务层
- [x] 2.1 创建 CarrierService 类 `src/api/modules/carrier.ts`
- [x] 2.2 实现获取运营商列表接口(支持分页和筛选)
- [x] 2.3 实现创建运营商接口
- [x] 2.4 实现更新运营商接口
- [x] 2.5 实现删除运营商接口
- [x] 2.6 实现获取运营商详情接口
- [x] 2.7 实现更新运营商状态接口
- [x] 2.8 在 `src/api/modules/index.ts` 中导出 CarrierService
## 3. 路由配置
- [x] 3.1 在 `src/router/routesAlias.ts` 添加运营商管理路由别名
- [x] 3.2 在 `src/router/routes/asyncRoutes.ts` 添加运营商管理路由配置
## 4. 运营商管理页面
- [x] 4.1 创建运营商管理页面组件 `src/views/finance/carrier-management/index.vue`
- [x] 4.2 实现搜索栏(运营商名称、运营商类型、状态筛选)
- [x] 4.3 实现运营商列表表格展示
- [x] 4.4 实现列筛选和表格头部工具栏
- [x] 4.5 实现分页功能
- [x] 4.6 实现新增运营商对话框
- [x] 4.7 实现编辑运营商对话框
- [x] 4.8 实现删除运营商确认
- [x] 4.9 实现状态开关切换
- [x] 4.10 实现表单验证规则
- [x] 4.11 实现数据加载和错误处理
## 5. 集成测试
- [x] 5.1 测试运营商列表查询功能(包括筛选和分页)
- [x] 5.2 测试创建运营商功能
- [x] 5.3 测试编辑运营商功能
- [x] 5.4 测试删除运营商功能
- [x] 5.5 测试状态切换功能
- [x] 5.6 验证表单验证规则是否正确
- [x] 5.7 验证权限控制是否正确