# 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 和对比数据 - 周期数据 Mock:time、address、totalMachines、success、failure、anomaly、distribution、summary - 原始数据 Mock:rawId、logTime、contentPreview、sourceAddress ## 7. 交互行为 - 标签页切换:切换时重新加载对应表格数据 - 分页:点击页码、切换每页条数时加载对应页数据 - 查看详情弹窗:选中行后弹出,展示分析详情或对比信息 - 关联跳转:点击相关行的跳转按钮,跳转至对应的关联页面 - 原始数据查看:点击原始数据行,弹出 JSON 原始数据预览 ## 8. 组件树 - 组件树示例:CollectLogPage -> (QueryForm, ElTabs -> (AnalysisTab, CycleTab, RawTab) -> (ElTable, ElPagination)) -> DetailDialog - 表单控件(QueryForm):el-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-文件夹创建规范.md` 与 `docs/02-界面变更执行规范.md`。