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

5.3 KiB

13-01 采集日志页面

_ 本文档按照20项模板撰写用于前端实现“采集日志页面”的设计与交互规范。页面在管理后台中放置于 /collect-log 路由下包含三个标签页分析记录、采集周期、原始数据。_

1. 页面基本信息

  • 模块:管理后台 -> 采集日志
  • 页面名称:采集日志页面
  • 路由:/collect-log
  • 版本v1.0
  • 作者:设计/前端团队
  • 依赖Element Plus、Vue 3、TypeScript

2. 布局结构

  • 顶部区域:查询条件区域(时间范围、地址、机床、分析类型、程序名等)
  • 中部区域Tabs 切换,包含三个 Tab分析记录、采集周期、原始数据
  • 各 Tab 之下为各自的表格 + 分页控件
  • 底部/弹窗区域:查看详情弹窗、关联跳转入口

3. 数据表格列定义

  • 分析记录Tab1时间、地址、机床、分析类型、前程序、当前程序、产量变化、摘要、操作
  • 采集周期Tab2时间、地址、总机床、成功、失败、异常、分布、摘要
  • 原始数据Tab3原始日志ID、时间、内容摘要、来源地址

4. 查询条件字段

  • 时间范围:日期时间范围选择器,格式 yyyy-MM-dd HH:mm:ss
  • 采集地址:下拉或文本输入,支持模糊匹配
  • 机床:下拉选择
  • 分析类型:多选过滤标签
  • 程序名:文本输入
  • 提交触发:查询按钮,重置按钮
  • 每页显示条数:分页组件控制

5. API端点定义

  • GET /api/admin/collect-log/analysis
  • GET /api/admin/collect-log/analysis/{id}
  • GET /api/admin/collect-log/analysis/by-raw/{rawLogId}
  • GET /api/admin/collect-log/cycle
  • GET /api/admin/collect-log/raw

6. Mock数据结构

  • 分析记录列表 Mock数组对象包含 time、address、machine、type、previousProgram、currentProgram、yieldDelta、summary
  • 分析详情 Mock含 detail 字段、difference 和对比数据
  • 周期数据 Mocktime、address、totalMachines、success、failure、anomaly、distribution、summary
  • 原始数据 MockrawId、logTime、contentPreview、sourceAddress

7. 交互行为

  • 标签页切换:切换时重新加载对应表格数据
  • 分页:点击页码、切换每页条数时加载对应页数据
  • 查看详情弹窗:选中行后弹出,展示分析详情或对比信息
  • 关联跳转:点击相关行的跳转按钮,跳转至对应的关联页面
  • 原始数据查看:点击原始数据行,弹出 JSON 原始数据预览

8. 组件树

  • 组件树示例CollectLogPage -> (QueryForm, ElTabs -> (AnalysisTab, CycleTab, RawTab) -> (ElTable, ElPagination)) -> DetailDialog
  • 表单控件QueryFormel-form、el-form-item、el-date-picker、el-input、el-select、el-tag
  • 表格与分页el-table、el-table-column、el-pagination
  • 弹窗el-dialog
  • 细化的子组件AnalysisTable、CycleTable、RawTable、DetailDialog可复用

9. 路由配置

  • 路由路径:/collect-log
  • 路由组件CollectLogPage
  • 路由守卫:同其他管理后台页面的权限控制
  • 嵌套路由(若有需要):/collect-log/analysis、/collect-log/cycle、/collect-log/raw

10. 数据校验与错误处理

  • 搜索条件必填项的格式校验:时间范围格式、文本字段长度等
  • API 请求失败时,展示友好错误信息并保留上一次有效数据展示
  • 弹窗中的对比信息若数据为空,显示空态提示

11. 性能与优化点

  • 分页按需加载,避免一次性加载所有数据
  • 表格列尽量避免使用复杂自定义渲染,必要时使用虚拟滚动
  • 原始数据区域对大文本使用内容摘要展示,点击展开查看全文

12. 国际化与无障碍

  • 暂定中文显示,未来支持多语言资源
  • 组件具备基础无障碍特性,表格可读性良好

13. 数据引用与结构(接口关联)

  • 参考后端 API 端点,数据结构需与后端返回字段严格对齐
  • 需在页面中以常量形式存放端点引用及字段映射,便于维护

14. 组件样式与风格

  • 遵循全局主题,表格列宽可自适应,必要时固定宽度以确保对齐
  • 按钮、标签、弹窗风格与全局规范保持一致

15. 版本与变更记录

  • 每次变更需记录版本号和变更摘要,便于回溯
  • 与模块索引、总览文档保持同步

16. 技术实现概要

  • 主要使用 Vue 3 + TypeScript + Element Plus按项目的前端全局规范实现
  • 数据获取走统一的 API 调用封装,错误统一处理
  • UI 组件具有可复用性,便于其他模块复用

17. 数据流与状态管理

  • 页面局部状态通过 Vue 的响应式系统管理
  • 表格数据、筛选条件和分页状态保持在组件状态中,必要时通过 Store/Pinia 共享

18. 测试用例设计

  • 基本渲染测试:页面渲染、表格列正确显示
  • 筛选与分页功能测试
  • 弹窗查看详情测试
  • 跳转与联动测试

19. 部署与运行

  • 本地调试:确保 /collect-log 路由可访问,接口 Mock/测试环境数据正常
  • 与后端联调时保持端点一致,返回字段映射不变

20. 变更记录

  • 记录本页面文档的变更时间、版本和修改内容,便于团队追踪

备注:本文档遵循文档结构规范,确保与其他模块文档风格一致,如需对齐请参考 docs/02-功能清单/02-文件夹创建规范.mddocs/02-界面变更执行规范.md