fetch(add): 运营商管理
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 2m23s
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 2m23s
This commit is contained in:
38
openspec/changes/add-carrier-management/proposal.md
Normal file
38
openspec/changes/add-carrier-management/proposal.md
Normal 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` - 导出运营商类型常量
|
||||
- **受影响的业务模块**: 账户管理
|
||||
- **不涉及破坏性变更**
|
||||
@@ -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** 允许用户重试操作
|
||||
48
openspec/changes/add-carrier-management/tasks.md
Normal file
48
openspec/changes/add-carrier-management/tasks.md
Normal 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 验证权限控制是否正确
|
||||
Reference in New Issue
Block a user