|
|
# 仪表盘页面
|
|
|
|
|
|
> 最后更新:2026-04-25
|
|
|
> 状态:已设计
|
|
|
|
|
|
---
|
|
|
|
|
|
### 1. 基本信息
|
|
|
|
|
|
| 项 | 值 |
|
|
|
|----|-----|
|
|
|
| 路由 | /dashboard |
|
|
|
| 权限 | admin(全局Token) |
|
|
|
| 入口 | 侧边栏仪表盘,登录后默认页 |
|
|
|
| 面包屑 | 首页 / 仪表盘 |
|
|
|
|
|
|
### 2. 界面布局
|
|
|
|
|
|
┌──────────────────────────────────────────────────────────┐
|
|
|
│ [面包屑] 首页 / 仪表盘 2026-04-24│
|
|
|
├──────────────────────────────────────────────────────────┤
|
|
|
│ [统计卡片区] │
|
|
|
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
|
|
|
│ │ 在线机床 │ │ 今日产量 │ │ 活跃告警 │ │
|
|
|
│ │ 142/160 │ │ 2,847 │ │ 3 │ │
|
|
|
│ └────────────┘ └────────────┘ └────────────┘ │
|
|
|
│ 采集服务:[状态] 运行3天12小时 上次采集3秒前 │
|
|
|
│ [停止/启动采集] [刷新配置] │
|
|
|
├──────────────────────────────────────────────────────────┤
|
|
|
│ [机床产量排行区] [查看全部] │
|
|
|
│ 排名 | 机床名称 | 当前程序 | 产量 | 状态 │
|
|
|
│ 1 | 西-1.8 | 1566.NC | 580 | 在线 │
|
|
|
├──────────────────────────────────────────────────────────┤
|
|
|
│ [工人产量排行区] [查看全部] │
|
|
|
│ 排名 | 工人姓名 | 负责机床数 | 总产量 │
|
|
|
│ 1 | 张三 | 3 | 1,240 │
|
|
|
└──────────────────────────────────────────────────────────┘
|
|
|
|
|
|
### 3. 数据区块
|
|
|
|
|
|
| 区块 | 数据来源API | 刷新策略 |
|
|
|
|------|-----------|---------|
|
|
|
| 统计卡片(在线/产量/告警) | 统计卡片API | 页面挂载时加载,定时N秒刷新 |
|
|
|
| 采集服务状态 | 服务状态API | 页面挂载时加载,定时N秒刷新 |
|
|
|
| 机床产量排行 | 机床排行API | 页面挂载时加载,定时N秒刷新 |
|
|
|
| 工人产量排行 | 工人排行API | 页面挂载时加载,定时N秒刷新 |
|
|
|
|
|
|
> 定时刷新间隔后台可配,默认10秒
|
|
|
|
|
|
### 4. 操作按钮
|
|
|
|
|
|
| 名称 | 位置 | 显示条件 | 点击行为 |
|
|
|
|------|------|---------|---------|
|
|
|
| 停止采集 | 服务状态栏 | running | 确认->调API停止 |
|
|
|
| 启动采集 | 服务状态栏 | stopped/error | 确认->调API启动 |
|
|
|
| 刷新配置 | 服务状态栏 | running | 确认->调API刷新 |
|
|
|
| 查看全部 | 机床排行表头 | 始终 | 跳转产量报表 |
|
|
|
| 查看全部 | 工人排行表头 | 始终 | 跳转产量报表 |
|
|
|
| 机床名称 | 行内链接 | 始终 | 跳转机床详情 |
|
|
|
| 工人姓名 | 行内链接 | 始终 | 跳转员工详情 |
|
|
|
|
|
|
### 5. 状态机
|
|
|
|
|
|
采集服务状态:
|
|
|
- running: #67C23A绿 -> 可停止/刷新
|
|
|
- stopped: #909399灰 -> 可启动
|
|
|
- error: #F56C6C红 -> 可启动
|
|
|
|
|
|
机床在线状态:
|
|
|
- 1(在线): el-tag success
|
|
|
- 0(离线): el-tag info
|
|
|
|
|
|
### 6. 交互流程
|
|
|
|
|
|
- 加载:页面挂载->4个API并行(统计卡片/机床排行/工人排行/服务状态)->渲染
|
|
|
- 自动刷新:setInterval每N秒重新请求
|
|
|
- 点击机床名称:router.push到机床详情
|
|
|
- 停止采集:确认框->调WebAPI代理->采集服务API->更新状态
|
|
|
- 异常:采集服务不可达->warning提示+状态显示stopped
|
|
|
|
|
|
### 7. 空状态
|
|
|
|
|
|
- 机床排行无数据:el-empty 今日尚无产量数据
|
|
|
- 工人排行无数据:el-empty 今日尚无工人产量数据
|
|
|
|
|
|
### 8. Mock数据
|
|
|
|
|
|
**GET /api/admin/dashboard/summary 统计卡片:**
|
|
|
```json
|
|
|
{ "code": 0, "data": { "onlineCount": 142, "totalMachines": 160, "todayProduction": 2847, "activeAlerts": 3 }}
|
|
|
```
|
|
|
|
|
|
**GET /api/admin/collector/status 采集服务状态:**
|
|
|
```json
|
|
|
{ "code": 0, "data": { "status": "running", "uptimeSeconds": 316800, "lastCollectTime": "2026-04-25T17:36:38", "successCount": 1280, "failCount": 5 }}
|
|
|
```
|
|
|
|
|
|
**GET /api/admin/dashboard/machine-rank 机床产量排行TOP10:**
|
|
|
```json
|
|
|
{ "code": 0, "data": { "items": [
|
|
|
{ "rank": 1, "machineId": 1, "machineName": "西-1.8", "program": "1566.NC", "quantity": 580, "status": 1 },
|
|
|
{ "rank": 2, "machineId": 2, "machineName": "西-1.10", "program": "O123.NC", "quantity": 420, "status": 1 },
|
|
|
{ "rank": 3, "machineId": 3, "machineName": "东-2.0", "program": "A456.NC", "quantity": 380, "status": 1 },
|
|
|
{ "rank": 4, "machineId": 4, "machineName": "东-2.5", "program": "B789.NC", "quantity": 310, "status": 0 },
|
|
|
{ "rank": 5, "machineId": 5, "machineName": "南-3.1", "program": "C012.NC", "quantity": 290, "status": 1 },
|
|
|
{ "rank": 6, "machineId": 6, "machineName": "南-3.2", "program": "D345.NC", "quantity": 240, "status": 1 },
|
|
|
{ "rank": 7, "machineId": 7, "machineName": "北-4.0", "program": "E678.NC", "quantity": 210, "status": 1 },
|
|
|
{ "rank": 8, "machineId": 8, "machineName": "北-4.1", "program": "F901.NC", "quantity": 180, "status": 0 },
|
|
|
{ "rank": 9, "machineId": 9, "machineName": "西-1.5", "program": "G234.NC", "quantity": 150, "status": 1 },
|
|
|
{ "rank": 10, "machineId": 10, "machineName": "东-2.8", "program": "H567.NC", "quantity": 87, "status": 1 }
|
|
|
]}}
|
|
|
```
|
|
|
|
|
|
**GET /api/admin/dashboard/worker-rank 工人产量排行TOP10:**
|
|
|
```json
|
|
|
{ "code": 0, "data": { "items": [
|
|
|
{ "rank": 1, "workerId": 1, "workerName": "张三", "machineCount": 3, "totalQuantity": 1240 },
|
|
|
{ "rank": 2, "workerId": 2, "workerName": "李四", "machineCount": 2, "totalQuantity": 980 },
|
|
|
{ "rank": 3, "workerId": 3, "workerName": "王五", "machineCount": 4, "totalQuantity": 870 },
|
|
|
{ "rank": 4, "workerId": 4, "workerName": "赵六", "machineCount": 2, "totalQuantity": 650 },
|
|
|
{ "rank": 5, "workerId": 5, "workerName": "孙七", "machineCount": 3, "totalQuantity": 520 }
|
|
|
]}}
|
|
|
|
|
|
### 8. 数据需求
|
|
|
|
|
|
> 以下为本页面需要的数据,数据库设计定稿时需覆盖。参考 `01-数据库设计.md` 草案。
|
|
|
|
|
|
| 数据需求 | 草案对应 | 说明 |
|
|
|
|---------|---------|------|
|
|
|
| 在线机床数/总机床数 | cnc_machine.is_enabled + is_online | 统计卡片 |
|
|
|
| 今日总产量 | cnc_daily_production.total_quantity 合计 | 统计卡片 |
|
|
|
| 活跃告警数 | cnc_alert.is_resolved=0 计数 | 统计卡片 |
|
|
|
| 采集服务状态+运行时长+上次采集 | log_collector_heartbeat | 服务状态栏 |
|
|
|
| 机床产量排行TOP10 | cnc_daily_production + cnc_machine | 排行表 |
|
|
|
| 工人产量排行TOP10 | cnc_worker_daily_summary + cnc_worker | 排行表 |
|