You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
11 KiB
11 KiB
系统设置页面
最后更新:2026-04-26 状态:已设计
1. 基本信息
| 项 | 值 |
|---|---|
| 路由 | /settings |
| 权限 | admin |
| 入口 | 侧边栏系统设置 |
| 面包屑 | 首页 / 系统设置 |
2. 界面布局
┌──────────────────────────────────────────────────────────┐
│ [面包屑] 首页 / 系统设置 │
├──────────────────────────────────────────────────────────┤
│ [Tab切换] [系统配置] [车间管理] [修改密码] │
├──────────────────────────────────────────────────────────┤
│ │
│ ====== Tab1: 系统配置 ====== │
│ │
│ [查询条件区] │
│ 关键字[___________] [查询] [重置] │
│ │
│ [列表区] │
│ 配置项 | 值 | 类型 | 说明 | 操作 │
│ ping_interval | 60 | number| Ping间隔| [编辑] │
│ collect_retry | 3 | number| 重试次数| [编辑] │
│ daily_summary | 01:00 | string| 汇总时间| [编辑] │
│ log_retention | 90 | number| 日志保留| [编辑] │
│ api_token | ******** | string| API Token| [编辑][重置] │
│ │
│ ====== Tab2: 车间管理 ====== │
│ │
│ [+ 新增车间] │
│ [列表区] │
│ 车间名称 | 排序 | 状态 | 操作 │
│ A栋 | 1 | 启用 | [编辑][删除] │
│ B栋 | 2 | 启用 | [编辑][删除] │
│ C栋 | 3 | 停用 | [编辑][启用] │
│ │
│ ====== Tab3: 修改密码 ====== │
│ │
│ ┌──────────────────────────┐ │
│ │ 当前密码 [__________] │ │
│ │ 新密码 [__________] │ │
│ │ 确认密码 [__________] │ │
│ │ [确认修改] │ │
│ └──────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
3. Tab1-系统配置
查询条件
| 字段 | 控件 | 必填 | 默认值 | 校验 | 联动 |
|---|---|---|---|---|---|
| 关键字 | el-input placeholder=配置项/说明 | 否 | 空 | - | 无 |
列表字段
| 字段名 | 列宽 | 排序 | 超长处理 | 对齐 |
|---|---|---|---|---|
| 配置项(config_key) | 200px | - | tooltip | left |
| 配置值(config_value) | auto | - | tooltip | left |
| 值类型(value_type) | 80px | - | - | center |
| 说明(description) | 200px | - | tooltip | left |
| 操作 | 160px | - | - | center |
操作按钮
| 名称 | 权限编码 | 位置 | 显示条件 | 点击行为 |
|---|---|---|---|---|
| 编辑 | settings:update | 行操作 | 始终 | 打开编辑弹窗 |
| 重置Token | settings:reset-token | 行操作 | config_key=api_token或collector_api_key | 确认"确定重置{配置项}?重置后需同步更新相关服务配置。 "->调API |
弹窗规格
编辑配置项弹窗:
- 宽度500px,标题=编辑配置项
| 字段 | 控件 | 必填 | 默认值 | 校验 | 联动 |
|---|---|---|---|---|---|
| 配置项 | el-input disabled | - | config_key | - | - |
| 配置值 | el-input(根据value_type切换number/string) | 是 | 当前值 | 必填 | value_type=number时控件为el-input-number |
| 说明 | el-input disabled | - | description | - | - |
说明:敏感字段(api_token/collector_api_key)显示为"********",编辑弹窗中也默认遮蔽,点击眼睛图标切换可见。
4. Tab2-车间管理
列表字段
| 字段名 | 列宽 | 排序 | 超长处理 | 对齐 |
|---|---|---|---|---|
| 车间名称 | 200px | - | tooltip | left |
| 排序 | 80px | y | - | center |
| 状态 | 80px | - | - | center |
| 操作 | 160px | - | - | center |
操作按钮
| 名称 | 权限编码 | 位置 | 显示条件 | 点击行为 |
|---|---|---|---|---|
| 新增车间 | workshop:create | 页头 | 始终 | 打开新增弹窗 |
| 编辑 | workshop:update | 行操作 | 始终 | 打开编辑弹窗 |
| 删除 | workshop:delete | 行操作 | 启用状态且无关联机床 | 确认->删除 |
| 启用/停用 | workshop:toggle | 行操作 | 始终 | 确认->切换状态 |
弹窗规格
新增/编辑车间弹窗:
- 宽度400px,标题=新增车间/编辑车间
| 字段 | 控件 | 必填 | 默认值 | 校验 | 联动 |
|---|---|---|---|---|---|
| 车间名称 | el-input maxlength=100 | 是 | - | 必填+唯一性 | - |
| 排序号 | el-input-number min=0 max=99 | 是 | 末尾 | 必填+正整数 | - |
5. Tab3-修改密码
表单字段
| 字段 | 控件 | 必填 | 默认值 | 校验 | 联动 |
|---|---|---|---|---|---|
| 当前密码 | el-input type=password show-password | 是 | - | 必填 | - |
| 新密码 | el-input type=password show-password | 是 | - | 必填+长度8-32位 | - |
| 确认密码 | el-input type=password show-password | 是 | - | 必填+与新密码一致 | 新密码变化时重新校验 |
操作按钮
| 名称 | 权限编码 | 位置 | 显示条件 | 点击行为 |
|---|---|---|---|---|
| 确认修改 | - | 表单底部 | 始终 | 校验通过->调API->成功提示+清空表单 |
6. 状态机
车间is_enabled:
- 1(启用): el-tag success -> 可编辑/停用/删除(无机床关联时)
- 0(停用): el-tag danger -> 可编辑/启用
删除前提:该车间下无机床(有关联机床的不可删除)
7. 交互流程
Tab1-系统配置:
- 加载:请求配置项列表->渲染
- 查询:关键字搜索->重置page=1->请求列表
- 编辑:弹窗->修改值->保存->关闭->刷新列表
- 重置Token:确认->调API重置->显示新值->提示"请同步更新相关服务配置"
Tab2-车间管理:
- 加载:请求车间列表->渲染(数据量极小,无需分页)
- 新增:弹窗->填写->保存->关闭->刷新
- 编辑:弹窗(回填)->修改->保存->关闭->刷新
- 删除:确认"确定删除车间【{名称}】?此操作不可恢复。 "->调API->刷新
- 启停:确认->调API->刷新
Tab3-修改密码:
- 填写表单->确认修改->校验->调API->成功提示"密码修改成功,请重新登录"->清除Token->跳转/login
8. 空状态
系统配置列表无数据:el-empty 暂无配置项 车间列表无数据:el-empty 暂无车间数据,点击新增车间添加
9. Mock数据
GET /api/admin/sys-config 系统配置列表:
{ "code": 0, "data": { "items": [
{ "id": 1, "configKey": "ping_interval", "configValue": "60", "valueType": "number", "description": "Ping检测间隔(秒)" },
{ "id": 2, "configKey": "collect_retry_count", "configValue": "3", "valueType": "number", "description": "采集失败重试次数" },
{ "id": 3, "configKey": "collect_retry_interval", "configValue": "30", "valueType": "number", "description": "采集重试间隔(秒)" },
{ "id": 4, "configKey": "collect_fail_alert_threshold", "configValue": "5", "valueType": "number", "description": "连续失败N次触发告警" },
{ "id": 5, "configKey": "daily_summary_time", "configValue": "01:00", "valueType": "string", "description": "日终汇总执行时间" },
{ "id": 6, "configKey": "log_retention_days", "configValue": "90", "valueType": "number", "description": "原始采集日志保留天数" },
{ "id": 7, "configKey": "bigscreen_refresh_interval", "configValue": "10", "valueType": "number", "description": "大屏刷新间隔(秒)" },
{ "id": 8, "configKey": "api_token", "configValue": "********", "valueType": "string", "description": "前端API Token" },
{ "id": 9, "configKey": "collector_api_port", "configValue": "5800", "valueType": "number", "description": "采集服务管理API端口" },
{ "id": 10, "configKey": "collector_api_key", "configValue": "********", "valueType": "string", "description": "采集服务间通信API Key" }
]}}
PUT /api/admin/sys-config/1 编辑配置项:
{ "code": 0, "message": "success", "data": null }
POST /api/admin/sys-config/reset-token 重置Token:
{ "code": 0, "data": { "configKey": "api_token", "newValue": "eyJhbGciOiJIUzI1NiJ9.new.random.token" }}
GET /api/admin/workshop 车间列表:
{ "code": 0, "data": { "items": [
{ "id": 1, "name": "A栋", "sortOrder": 1, "isEnabled": 1, "machineCount": 32 },
{ "id": 2, "name": "B栋", "sortOrder": 2, "isEnabled": 1, "machineCount": 28 },
{ "id": 3, "name": "C栋", "sortOrder": 3, "isEnabled": 0, "machineCount": 0 }
]}}
POST /api/admin/workshop 新增车间:
{ "code": 0, "message": "success", "data": { "id": 4, "name": "D栋" }}
POST /api/admin/change-password 修改密码:
{ "code": 0, "message": "success", "data": null }
POST /api/admin/change-password 修改密码失败(旧密码错误):
{ "code": 40001, "message": "当前密码不正确", "data": null }
10. 数据需求
以下为本页面需要的数据,数据库设计定稿时需覆盖。参考
01-数据库设计.md草案。
| 数据需求 | 草案对应 | 说明 |
|---|---|---|
| 系统配置列表 | cnc_sys_config | 主表 |
| 编辑配置项 | cnc_sys_config.config_value | 按config_key更新 |
| 重置Token | cnc_sys_config | 生成新随机Token写入 |
| 车间列表 | cnc_workshop | 主表+关联机床数 |
| 车间名称唯一性 | cnc_workshop.name UNIQUE | 新增/编辑时校验 |
| 车间删除约束 | cnc_machine.workshop_id | 有关联机床时禁止删除 |
| 修改密码 | admin密码校验 | 验证旧密码+写入新密码哈希 |