# 仪表盘页面 > 最后更新: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 | 排行表 |