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.
haoliang-net/docs/02-功能清单/管理后台/05-采集地址/05-01-采集地址页面.md

153 lines
5.9 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 采集地址页面
> 最后更新2026-04-25
> 状态:已设计
---
### 1. 基本信息
| 项 | 值 |
|----|-----|
| 路由 | /collect-address |
| 权限 | admin |
| 入口 | 侧边栏采集地址 |
| 面包屑 | 首页 / 采集地址管理 |
### 2. 界面布局
┌──────────────────────────────────────────────────────────┐
│ [面包屑] 首页 / 采集地址管理 │
├──────────────────────────────────────────────────────────┤
│ [操作栏] [+ 新增地址] │
├──────────────────────────────────────────────────────────┤
│ [列表区] │
│ 名称 | URL | 品牌 | 间隔 | 状态 | 上次采集 | 连续失败 | 操作 │
│ FANUC-A栋 | http://10.1.1.1/ | FANUC| 30s | 启用 | 3秒前 | 0 | [编辑][停用]│
│ FANUC-B栋 | http://10.1.2.1/ | FANUC| 60s | 启用 | 58秒前 | 0 | [编辑][停用]│
└──────────────────────────────────────────────────────────┘
### 3. 查询条件
无(地址数量少)。
### 4. 列表字段
| 字段名 | 列宽 | 排序 | 超长处理 | 对齐 |
|--------|------|------|---------|------|
| 名称 | 120px | y | tooltip | left |
| URL | 250px | - | tooltip | left |
| 品牌 | 100px | - | - | center |
| 采集间隔 | 80px | - | - | center |
| 状态 | 80px | - | - | center |
| 上次采集 | 120px | - | - | center |
| 连续失败 | 80px | - | - | center |
| 操作 | 120px | - | - | center |
### 5. 操作按钮
| 名称 | 权限编码 | 位置 | 显示条件 | 点击行为 |
|------|---------|------|---------|---------|
| 新增地址 | address:create | 页头 | 始终 | 打开新增弹窗 |
| 编辑 | address:update | 行操作 | 始终 | 打开编辑弹窗 |
| 启用/停用 | address:toggle | 行操作 | 始终 | 确认->切换 |
### 6. 弹窗规格
**新增/编辑采集地址弹窗:**
- 宽度600px遮罩有ESC关闭是(脏数据检测)
表单字段:
| 字段 | 控件 | 必填 | 默认值 | 校验 | 联动 |
|------|------|------|--------|------|------|
| 地址名称 | el-input maxlength=100 | 是 | - | 必填 | - |
| HTTP地址 | el-input maxlength=500 | 是 | - | 必填+URL格式 | - |
| 关联品牌 | el-select | 是 | - | 必填 | 选定后下方加载该品牌机床 |
| 采集间隔 | el-input-number min=5 max=300 | 是 | 30 | 必填+正整数 | - |
| 选择机床 | el-checkbox-group | 否 | 空 | - | 品牌变化时重新加载机床列表 |
机床选择区域说明:
- 允许不选机床(先创建地址,后续在机床管理中关联)
- 只显示属于该品牌且未分配到其他地址的机床(编辑时含当前已分配的)
- 每个checkbox显示device_code (机床名称) 车间 IP
### 7. 状态机
采集地址is_enabled
- 1(启用): el-tag success -> 可编辑/停用
- 0(停用): el-tag danger -> 可编辑/启用
### 8. 交互流程
- 加载:请求采集地址列表->渲染
- 新增:弹窗->选品牌(加载机床)->勾选机床->保存->关闭->刷新
- 编辑:弹窗(回填数据+已选机床)->修改->保存->关闭->刷新
- 启停:确认->调API->刷新
### 9. 空状态
列表无数据el-empty 暂无采集地址数据,点击新增地址添加
### 10. 接口引用与数据结构
> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.5 端点清单,本节仅引用编号并定义返回数据结构。
#### 接口引用
| 接口名称 | 端点编号 | 界面用途 |
|---------|---------|---------|
| 地址列表 | §3.5 #1 | 表格数据渲染 |
| 新增地址 | §3.5 #3 | 新增弹窗保存 |
| 编辑地址 | §3.5 #4 | 编辑弹窗保存 |
| 删除地址 | §3.5 #5 | 删除操作 |
| 启停地址 | §3.5 #6 | 启停切换 |
| 地址下机床 | §3.5 #7 | 弹窗中机床列表 |
| 品牌下拉 | §3.13 #2 | 弹窗表单下拉 |
#### 数据结构
**地址列表§3.5 #1**
Response
```json
{ "code": 0, "data": { "items": [
{ "id": 1, "name": "FANUC-A栋", "url": "http://10.1.1.1/", "brandName": "FANUC", "collectInterval": 30, "isEnabled": 1, "lastCollectTime": "2026-04-25T17:36:38", "failCount": 0, "machineCount": 32 },
{ "id": 2, "name": "FANUC-B栋", "url": "http://10.1.2.1/", "brandName": "FANUC", "collectInterval": 60, "isEnabled": 1, "lastCollectTime": "2026-04-25T17:35:38", "failCount": 0, "machineCount": 28 }
]}}
```
**新增地址§3.5 #3**
Response
```json
{ "code": 0, "message": "success", "data": { "id": 3, "name": "SIEMENS-C栋" }}
```
**地址下机床§3.5 #7**
Response
```json
{ "code": 0, "data": { "items": [
{ "id": 1, "deviceCode": "fanake_1.8", "name": "西-1.8", "workshopName": "A栋", "ipAddress": "10.1.1.8", "isAssigned": false },
{ "id": 2, "deviceCode": "fanake_1.10", "name": "西-1.10", "workshopName": "A栋", "ipAddress": "10.1.1.10", "isAssigned": true }
]}}
```
**编辑地址§3.5 #4/ 删除地址§3.5 #5/ 启停地址§3.5 #6**
Response
```json
{ "code": 0, "message": "success", "data": null }
```
### 10. 数据需求
> 以下为本页面需要的数据,数据库设计定稿时需覆盖。参考 `01-数据库设计.md` 草案。
| 数据需求 | 草案对应 | 说明 |
|---------|---------|------|
| 采集地址列表 | cnc_collect_address | 主表需JOIN品牌名 |
| 品牌下拉 | cnc_brand | 弹窗表单 |
| 可选机床列表 | cnc_machine | 按brand_id筛选+排除已分配其他地址的机床 |
| 机床-地址关联 | cnc_machine.collect_address_id | 机床归属地址关系 |