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-功能清单/管理后台/02-仪表盘/02-01-仪表盘页面.md

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 | 排行表 |