7.0 KiB
仪表盘页面
最后更新: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 统计卡片:
{ "code": 0, "data": { "onlineCount": 142, "totalMachines": 160, "todayProduction": 2847, "activeAlerts": 3 }}
GET /api/admin/collector/status 采集服务状态:
{ "code": 0, "data": { "status": "running", "uptimeSeconds": 316800, "lastCollectTime": "2026-04-25T17:36:38", "successCount": 1280, "failCount": 5 }}
GET /api/admin/dashboard/machine-rank 机床产量排行TOP10:
{ "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:
{ "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 | 排行表 |