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

136 lines
7.0 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. 基本信息
| 项 | 值 |
|----|-----|
| 路由 | /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 | 排行表 |