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-功能清单/管理后台/11-操作日志/11-01-操作日志页面.md

9.1 KiB

操作日志页面

最后更新2026-04-26 状态:已设计


1. 基本信息

路由 /log
权限 admin
入口 侧边栏操作日志
面包屑 首页 / 操作日志

2. 界面布局

┌──────────────────────────────────────────────────────────┐
│ [面包屑] 首页 / 操作日志                                   │
├──────────────────────────────────────────────────────────┤
│ [Tab切换]  [产量修正日志]  [系统运行日志]                    │
├──────────────────────────────────────────────────────────┤
│                                                          │
│ ====== Tab1: 产量修正日志 ======                          │
│                                                          │
│ [查询条件区]                                              │
│ 时间范围[__________]  目标[▼全部]  关键字[________]         │
│                                    [查询] [重置] [导出]    │
│                                                          │
│ [列表区]                                                  │
│ 修正时间          | 目标表          | 目标ID | 修正前 | 修正后 | 原因          | 操作IP     │
│ 2026-04-25 15:30 | daily_production | 3    | 310   | 320  | 传感器计数偏差 | 192.168.1.5│
│ 2026-04-24 10:15 | worker_summary   | 12   | 850   | 900  | 漏计补录      | 192.168.1.5│
│                                                          │
│ [分页]  共80条  每页[20▼]  < 1 2 3 4 >                  │
│                                                          │
│ ====== Tab2: 系统运行日志 ======                          │
│                                                          │
│ [查询条件区]                                              │
│ 日志级别[▼全部]  来源[▼全部]  时间范围[__________]          │
│ 关键字[___________]                        [查询] [重置]    │
│                                                          │
│ [列表区]                                                  │
│ 时间              | 级别   | 来源         | 消息                │
│ 2026-04-25 17:36 | INFO  | CncCollector | 采集完成:32台成功    │
│ 2026-04-25 17:35 | WARN  | CncCollector | 采集失败:1台超时     │
│ 2026-04-25 17:00 | ERROR | CncCollector | 连接拒绝:10.1.2.5   │
│                                                          │
│ [分页]  共5600条  每页[20▼]  < 1 2 3 ... 280 >          │
└──────────────────────────────────────────────────────────┘

3. Tab1-产量修正日志

查询条件

字段 控件 必填 默认值 校验 联动
时间范围 el-date-picker type=daterange -
目标表 el-select(daily_production/worker_daily_summary/全部) 全部 -
关键字 el-input placeholder=原因/操作IP -

列表字段

字段名 列宽 排序 超长处理 对齐
修正时间 - y(默认倒序) - center
目标表 - - tooltip center
目标ID - - - center
修正前 - - - center
修正后 - - - center
修正原因 - - tooltip center
操作IP - - - center

列宽规则见 02-前端全局规范.md el-table列宽均分规则数据列不设width自动均分。

4. Tab2-系统运行日志

查询条件

字段 控件 必填 默认值 校验 联动
日志级别 el-select(ERROR/WARN/INFO/DEBUG/全部) 全部 -
来源 el-select(CncCollector/WebApi/Scheduler/全部) 全部 -
时间范围 el-date-picker type=daterange -
关键字 el-input placeholder=消息内容 -

列表字段

字段名 列宽 排序 超长处理 对齐
时间 - y(默认倒序) - center
级别 - - - center
来源 - - tooltip center
消息 - - tooltip+点击展开详情 center

列宽规则见 02-前端全局规范.md el-table列宽均分规则数据列不设width自动均分。

5. 操作按钮

名称 权限编码 位置 显示条件 点击行为
查询 - 查询区 始终 重置page=1->请求列表
重置 - 查询区 始终 清空条件->请求列表
导出 log:export 查询区 Tab1产量修正日志 按当前查询条件导出Excel
查看详情 - 行操作 Tab2系统运行日志 弹窗展示完整消息+堆栈

6. 弹窗规格

系统日志详情弹窗(只读):

  • 宽度700px标题=日志详情
展示字段 说明
时间 created_at
级别 log_level
来源 source
消息 message完整文本支持换行
堆栈信息 stack_trace代码格式化展示无则为空
附加数据 extra_dataJSON格式化展示

7. 状态机

日志级别(log_level)

  • ERROR: el-tag danger
  • WARN: el-tag warning
  • INFO: el-tag success
  • DEBUG: el-tag info

8. 交互流程

Tab1-产量修正日志:

  • 加载:请求修正日志列表->渲染
  • 查询:选条件->查询->重置page=1->请求列表
  • 重置:清空条件->请求
  • 导出调API下载Excel

Tab2-系统运行日志:

  • 加载:请求系统日志列表->渲染
  • 查询:选条件->查询->重置page=1->请求列表
  • 重置:清空条件->请求
  • 查看详情:弹窗(只读)->展示完整消息+堆栈+附加数据->关闭

9. 空状态

修正日志无数据el-empty 暂无产量修正记录 系统日志无数据el-empty 暂无系统日志 查询无结果el-empty 未找到匹配的日志,请调整查询条件

10. 接口引用与数据结构

Mock/正式API的URL、HTTP方法均定义在 03-API接口设计.md §3.10 端点清单,本节仅引用编号并定义返回数据结构。

接口引用

接口名称 端点编号 界面用途
产量修正日志 §3.10 #1 Tab1表格数据分页渲染
导出修正日志 §3.10 #2 Tab1导出Excel按钮
系统运行日志 §3.10 #3 Tab2表格数据分页渲染

数据结构

产量修正日志§3.10 #1

Response

{ "code": 0, "data": { "items": [
  { "id": 1, "createdAt": "2026-04-25T15:30:00", "targetTable": "daily_production", "targetId": 3, "oldValue": 310, "newValue": 320, "reason": "传感器计数偏差,手工校准", "operatorIp": "192.168.1.5" },
  { "id": 2, "createdAt": "2026-04-24T10:15:00", "targetTable": "worker_daily_summary", "targetId": 12, "oldValue": 850, "newValue": 900, "reason": "漏计补录,夜班产量未计入", "operatorIp": "192.168.1.5" }
], "total": 80, "page": 1, "pageSize": 20 }}

系统运行日志§3.10 #3

Response

{ "code": 0, "data": { "items": [
  { "id": 1, "createdAt": "2026-04-25T17:36:38", "logLevel": "INFO", "source": "CncCollector", "message": "采集完成: 32台成功, 0台失败", "stackTrace": null, "extraData": null },
  { "id": 2, "createdAt": "2026-04-25T17:35:38", "logLevel": "WARN", "source": "CncCollector", "message": "采集失败: 1台超时(fanake_2.5)", "stackTrace": null, "extraData": "{\"machineId\":4,\"addressId\":2,\"error\":\"timeout\"}" },
  { "id": 3, "createdAt": "2026-04-25T17:00:00", "logLevel": "ERROR", "source": "CncCollector", "message": "连接拒绝: 10.1.2.5", "stackTrace": "System.Net.Http.HttpRequestException: Connection refused\n  at CncCollector.HttpClientWrapper.SendAsync()", "extraData": null },
  { "id": 4, "createdAt": "2026-04-25T01:00:00", "logLevel": "INFO", "source": "Scheduler", "message": "日终汇总完成: 160台, 耗时12秒", "stackTrace": null, "extraData": null }
], "total": 5600, "page": 1, "pageSize": 20 }}

导出修正日志§3.10 #2

二进制Excel文件Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

11. 数据需求

以下为本页面需要的数据,数据库设计定稿时需覆盖。参考 01-数据库设计.md 草案。

数据需求 草案对应 说明
产量修正日志 cnc_production_adjustment 主表(业务库)
系统运行日志 log_system 主表(日志库),按月分区
导出修正日志 cnc_production_adjustment 导出Excel