项目说明

1. 项目定位

检测室数据可视化系统用于集中管理电池测试任务、测试柜与采集器、检测数据、异常、报表、待办和账号权限。界面采用“深蓝工业运维”方向,强调信息密度、状态辨识度和重复操作效率。

2. 核心业务概念与数据关系

2.1 核心概念

概念 定义 页面中的常用字段
电池组 一组具有共同型号、用途或实验归属的电池集合,是测试选择电池的上级范围。 电池组名称、电池组ID、型号、电池数量
电池 / 电池号 电池组下面的单个电池实体。电池号是单体电池在业务中的唯一识别名称或编号。 电池号、样品名、所属电池组
测试 一次完整的测试任务。创建测试时先选择一个电池组,再从该电池组中选择一个或多个电池号参与测试。 测试名称、测试类型、电池组、电池号
工步 测试过程中的单个步骤,表示一次具体操作,例如“恒流充电”“恒流放电”“静置”或“脉冲放电”。 工步名称、工步序号、工步参数
循环 按固定顺序组合的一组工步。例如“恒流充电 → 恒流放电”组成一个循环。循环不是单个工步,而是多个有顺序工步的组合。 循环序号、循环内工步
循环次数 循环组合被重复执行的次数。例如充电、放电两个工步组成一个循环,循环次数为 30,表示这两个工步按顺序重复执行 30 次。 循环次数、起止循环

2.2 关系与业务约束

电池组 1 ─── N 电池 / 电池号
  │
  └── 测试选择 1 个电池组,并从中选择 1 个或多个电池号
        │
        └── 测试流程由多个有序工步组成一个循环,再按循环次数重复执行
  • 电池号不能脱离所属电池组单独参与测试;测试中的电池选择必须来自当前测试所选电池组。
  • 一次测试至少选择一个电池号,也可以选择同一电池组下的多个电池号;不能混选其他电池组的电池。
  • 工步是最小执行单位,必须保留顺序和参数;“恒流充电”和“恒流放电”是两个不同工步。
  • 循环是工步组合的重复单元,循环次数描述该组合被重复执行的次数,不能把循环次数当作工步数量。
  • 任何数据记录应能够定位到测试、测试电池号、循环序号和工步序号,便于数据修订、异常追踪和对比报表引用。

2.3 页面联动约定

  • 新建测试:先选电池组,再加载该组电池号;选择一个或多个电池号后,再配置工步和循环。
  • 新建对比报表:先选择已有测试,再只展示该测试实际使用的电池号、循环和工步供选择;“选择工步”应显示“序号-工步名称”。
  • 对比报表中的“循环”选择的是第几个循环,“工步”选择的是该循环中的具体步骤,两者不可互换。
  • 文案统一使用“电池组”“电池号”“工步”“循环”“循环次数”,避免用“电池”同时指代电池组和单体电池。

3. 技术栈

分类 技术
框架 Vue 3 + TypeScript + <script setup>
构建 Vite
路由 Vue Router
组件 Element Plus
图表 ECharts + vue-echarts
状态 页面内 Composition API;当前未引入全局状态库
鉴权 JWT 请求鉴权;令牌和记住的用户名可保存在 localStorage,业务事实不依赖本地存储

4. 目录结构

web/
├─ docs/
│  ├─ PROJECT.md              # 项目结构、页面树、约定、开发记录
│  └─ pages/                  # 每个路由页面的功能说明
├─ public/                    # 静态图标与站点资源
├─ src/
│  ├─ assets/                 # 页面图片等打包资源
│  ├─ components/
│  │  ├─ ConsoleChartPanel.vue # 控制台工步详情、数据选择与五类曲线
│  │  ├─ ConsoleProjectChartPanel.vue # 控制台循环汇总项目图表
│  │  ├─ ConsoleDataListPanel.vue # 控制台测试数据查询、修订与导出
│  │  ├─ GlobalSearch.vue     # 全局页面、测试与报表搜索
│  │  └─ NotificationCenter.vue # 异常、待办与待测试消息中心
│  ├─ layout/
│  │  ├─ Layout.vue           # 应用框架、侧栏宽度与内容区联动
│  │  ├─ Header.vue           # 顶栏、系统状态条、菜单控制
│  │  └─ Sidebar.vue          # 导航、一级/二级收起、移动抽屉
│  ├─ router/index.ts         # 路由表、登录守卫、页面标题
│  ├─ utils/
│  │  ├─ auth.ts              # 演示登录态与用户信息
│  │  ├─ compareReportPrint.ts # 对比报表共享曲线定义与 PDF 打印模板
│  │  └─ formationReportPrint.ts # 化成报表共享曲线定义与分循环 PDF 模板
│  ├─ views/
│  │  ├─ Login.vue            # 登录
│  │  ├─ Dashboard.vue        # 工作台
│  │  ├─ TestList.vue         # 测试列表
│  │  ├─ TestCreate.vue       # 新建测试
│  │  ├─ BatteryGroup.vue     # 电池组管理
│  │  ├─ BatteryGroupForm.vue # 电池组新增与编辑
│  │  ├─ BatteryGroupField.vue # 电池组字段管理
│  │  ├─ TestType.vue         # 测试类型管理
│  │  ├─ TestConsole.vue      # 测试实时数据、工步、参数、异常和通道控制台
│  │  ├─ ConsoleDataEdit.vue  # 控制台单条测试数据修改与审计提交
│  │  ├─ ConsoleDataImport.vue # 控制台 Excel 数据校验、预览与导入结果
│  │  ├─ TestTypeForm.vue     # 测试类型新增与编辑
│  │  ├─ DataRevision.vue     # 数据修订记录列表
│  │  ├─ DataRevisionDetail.vue # 数据修订只读详情
│  │  ├─ Exception.vue        # 异常管理
│  │  ├─ DeviceCabinet.vue    # 检测柜列表
│  │  ├─ DeviceCabinetForm.vue # 检测柜新增与编辑
│  │  ├─ DeviceCollector.vue  # 采集器列表
│  │  ├─ DeviceCollectorForm.vue # 采集器新增与编辑
│  │  ├─ ReportCompare.vue    # 对比报表列表、编辑与修订记录
│  │  ├─ ReportCompareForm.vue # 新增对比报表配置与曲线
│  │  ├─ SpliceReport.vue     # 拼接报表查询、列表和删除
│  │  ├─ SpliceReportForm.vue # 拼接报表新增编辑、固定详情和横向拼接曲线
│  │  ├─ TodoList.vue         # 待办筛选、新增、处理和删除
│  │  ├─ Account.vue          # 账号查询、新增编辑、启停和密码重置
│  │  ├─ Role.vue             # 角色查询、关联账号数和删除约束
│  │  ├─ RoleForm.vue         # 角色新增编辑、详情和权限矩阵
│  │  ├─ OperationLog.vue     # 操作日志查询、只读列表与分页
│  │  └─ Placeholder.vue      # 尚未开发页面的统一占位
│  ├─ stores/
│  │  ├─ tests.ts             # 旧测试展示缓存;工作台/搜索/通知仍使用,待迁移
│  │  ├─ batteryGroups.ts     # 电池组页面展示缓存(事实来自 REST)
│  │  ├─ batteryGroupFields.ts # 字段页面展示缓存(事实来自 REST)
│  │  ├─ testTypes.ts         # 测试类型页面展示缓存(事实来自 REST)
│  │  ├─ dataRevisions.ts     # 数据修订页面展示缓存与详情查询
│  │  ├─ consoleTestData.ts   # 控制台数据列表与修改页共享状态
│  │  ├─ exceptions.ts        # 异常记录共享演示数据与本地持久化
│  │  ├─ deviceCabinets.ts    # 检测柜与发现设备展示缓存(事实来自 REST)
│  │  ├─ deviceCollectors.ts  # 采集器与发现设备展示缓存(事实来自 REST)
│  │  ├─ compareReports.ts    # 对比报表及修订记录演示数据
│  │  ├─ formationReports.ts  # 化成报表、循环明细和曲线配置演示数据
│  │  ├─ spliceReports.ts     # 拼接报表、测试段和详情配置演示数据
│  │  ├─ todos.ts             # 待办记录和处理状态演示数据
│  │  ├─ operationLogs.ts     # 操作审计只读演示数据
│  │  └─ accessControl.ts     # 账号、角色和页面权限共享数据
│  ├─ App.vue                 # 根组件
│  ├─ main.ts                 # 应用初始化、Element Plus 与图标注册
│  └─ style.css               # 全局设计变量和基础样式
├─ package.json
└─ vite.config.ts

dist/ 与 node_modules/ 为构建产物和依赖目录,不纳入业务结构说明。

5. 页面树

检测室数据可视化系统
├─ 登录 /login
└─ 主框架 /
   ├─ 首页
   │  └─ 工作台 /dashboard                         [已开发]
   ├─ 测试管理
   │  ├─ 测试列表 /test-list                      [已开发]
   │  │  ├─ 新建测试 /test-list/new               [已开发]
   │  │  └─ 测试控制台 /test-list/:id/console     [已开发]
   │  │     ├─ 修改测试数据 /test-list/:id/console/data/:recordId/edit [已开发]
   │  │     └─ 导入测试数据 /test-list/:id/console/data/import [已开发]
   │  ├─ 电池组管理 /battery-group                [已开发]
   │  │  ├─ 新建电池组 /battery-group/new         [已开发]
   │  │  ├─ 编辑电池组 /battery-group/:id/edit    [已开发]
   │  │  └─ 电池组字段管理 /battery-group/fields   [已开发]
   │  ├─ 测试类型管理 /test-type                  [已开发]
   │  │  ├─ 新建测试类型 /test-type/new           [已开发]
   │  │  └─ 编辑测试类型 /test-type/:id/edit      [已开发]
   │  ├─ 数据修订记录 /data-revision              [已开发]
   │  │  └─ 数据修订详情 /data-revision/:id        [已开发]
   │  └─ 异常管理 /exception                      [已开发]
   ├─ 设备管理
   │  ├─ 检测柜 /device-cabinet                   [已开发]
   │  │  ├─ 新增检测柜 /device-cabinet/new        [已开发]
   │  │  └─ 编辑检测柜 /device-cabinet/:id/edit   [已开发]
   │  └─ 采集器 /device-collector                 [已开发]
   │     ├─ 新增采集器 /device-collector/new      [已开发]
   │     └─ 编辑采集器 /device-collector/:id/edit [已开发]
   ├─ 数据分析
   │  ├─ 对比报表 /report-compare                 [已开发]
   │  │  ├─ 新增对比报表 /report-compare/new       [已开发]
   │  │  └─ 编辑/只读查看 /report-compare/:id/edit [已开发]
   │  ├─ 化成报表 /report-formation               [已开发]
   │  │  ├─ 新增化成报表 /report-formation/new    [已开发]
   │  │  └─ 编辑/只读查看 /report-formation/:id/edit [已开发]
   │  └─ 拼接报表 /report-splice                  [已开发]
   │     ├─ 新增拼接报表 /report-splice/new       [已开发]
   │     └─ 编辑/只读查看 /report-splice/:id/edit [已开发]
   ├─ 代办管理
   │  └─ 待办列表 /todo-list                      [已开发]
   └─ 角色与权限
      ├─ 账号管理 /account                        [已开发]
      ├─ 角色管理 /role                           [已开发]
         ├─ 新增角色 /role/new                    [已开发]
         ├─ 角色详情 /role/:id                    [已开发]
         └─ 编辑角色 /role/:id/edit               [已开发]
      └─ 操作日志 /operation-log                  [已开发]

每个页面的功能边界见 页面功能说明索引。

6. 框架与交互约定

  • 桌面侧栏展开宽度为 248px,收起宽度为 72px;移动端使用完整宽度抽屉。
  • 有子项的导航分组可独立展开或收起;当前路由所在分组自动展开并高亮。
  • 页面主体使用直角或小圆角、清晰边框、浅蓝表头和状态色,不使用装饰型大卡片。
  • 桌面业务表格优先完整呈现字段;窄屏使用横向滚动,不强行压缩列内容。
  • 业务列表字段过多产生横向滚动时,操作列固定在表格最右侧并使用阴影分隔。
  • 破坏性操作必须二次确认;查询、重置、下载等操作必须提供明确反馈。
  • 顶部页面搜索覆盖全部主菜单页面、测试任务和三类报表,业务数据结果直接进入对应控制台或只读报表。
  • 消息中心聚合待处理异常、待办和待测试任务;支持未读计数、全部已读和单条业务跳转,已读状态使用 localStorage 保存。
  • 测试、设备、电池组、共享字段和测试类型的核心事实已通过 REST 由后端提供;工作台、全局搜索、通知中心、异常、待办、权限和三类报表仍有本地演示数据,详见根目录 docs/KNOWN-GAPS.md。

7. 开发与质量检查

npm run dev
npm run build

本地开发服务默认使用 http://127.0.0.1:5173;Ticket04 隔离验收会使用独立端口,端口被占用时直接失败。

前端页面变更至少检查:桌面与移动视口、空数据、长文本、横向溢出、控制台错误和主要交互闭环。

8. 开发记录

日期 范围 记录
2026-08-10 工作台筛选 测试情况调整为按测试类型筛选;设备区更名为“测试柜使用情况”,并调整为按测试柜名称搜索。
2026-08-10 操作日志 新增只读操作日志页面,支持日志 ID、操作人和时间范围查询、重置、倒序列表及响应式分页,并接入侧栏与全局搜索。
2026-08-10 顶部交互 完成全局页面搜索和消息中心:支持页面/测试/报表实时检索、业务跳转、通知未读计数、全部已读和已读状态持久化。
2026-08-10 顶部栏 修正通知圆点样式误命中图标容器的问题,恢复消息铃铛并补充搜索、消息按钮提示。
2026-08-10 测试任务 新增共享测试数据 Store;新建测试保存后回显到列表,控制台暂停、继续和结束状态同步回列表与工作台。
2026-08-10 工作台 测试页签与数量接入共享数据,补齐测试/检测柜筛选、新建、查看全部、异常处理、设备详情和待办列表跳转闭环。
2026-08-10 报表查看 对比、化成和拼接报表列表新增只读查看入口;只读页隐藏编辑控件,对比与化成保留 PDF 导出。
2026-08-04 应用框架 按方案 H 重建深蓝运维框架,完成顶栏、系统状态条、侧栏和工作台布局。
2026-08-04 工作台 扩展内容宽度,调整菜单与表格字号,操作列标题和内容居中。
2026-08-04 导航 增加桌面侧栏 248px / 72px 收起切换,保留移动端抽屉。
2026-08-04 导航 增加二级菜单独立展开/收起、箭头状态、活动分组展开和折叠区域 inert。
2026-08-04 测试列表 参考原型实现组合查询、倒序列表、状态展示、分页、CSV 下载和删除确认。
2026-08-04 测试列表 启用 Element Plus 中文语言环境,调整电池号筛选位置并统一日期、分页中文文案。
2026-08-04 测试列表 移除列表页冗余系统状态与页面介绍,将新建测试入口下移到记录工具栏。
2026-08-04 新建测试 实现测试参数、电池与通道配置、预警阈值、业务校验和提交回跳。
2026-08-04 新建测试 增加采集器“添加项”,支持输入字段名并在电池通道表末尾生成动态通道选择列。
2026-08-04 新建测试 增加测试柜与采集器通道即时防重复,已占用通道禁选,设备切换冲突时自动清空。
2026-08-04 新建测试 增加设备与通道的选择依赖,先选择测试柜或采集器后才开放对应通道。
2026-08-04 新建测试 新增电池组选择弹窗,支持模糊搜索、组内电池批量勾选及已添加状态防重。
2026-08-04 开发环境 将 Vite 本地开发端口由默认值调整为 5174,并启用严格端口检查。
2026-08-04 电池组管理 实现组合查询、时间倒序列表、分页、列设置、新增编辑、启停和删除确认。
2026-08-05 电池组字段管理 增加全局字段列表、字段类型、启用/禁用、编辑和删除,并将电池组模板改为勾选启用字段。
2026-08-05 对比报表 电池组字段模板接入电池组管理保存的模板数据,支持字段显隐、保存和另存模板。
2026-08-06 对比报表 测试详情拆分电池组模板字段和特殊字段,手动添加项归入特殊字段,并支持特殊字段模板选择和另存。
2026-08-06 对比报表 图表区增加统一可编辑图例,点击色块可同步修改各指标图表的测试系列颜色。
2026-08-06 对比报表 统一列表下载与编辑页导出的 PDF 模板,打印内容同步对比信息、测试详情字段值、启用曲线和系列颜色。
2026-08-06 化成报表 统一列表下载与编辑页导出的 PDF 模板,按每个循环分别输出循环明细及五类曲线图。
2026-08-06 拼接报表 实现查询列表、新增编辑、固定电池详情、测试段追加和五类曲线累计时间轴横向拼接。
2026-08-06 待办管理 实现负责人、状态和操作时间筛选,新增待办、填写处理说明、状态更新、分页和删除确认。
2026-08-06 账号与角色 实现账号查询、新增编辑、启停、密码重置与删除,并增加角色列表和三级操作权限矩阵。
2026-08-06 导航 修正角色与权限二级菜单展开高度,确保账号管理和角色管理完整显示,并保留侧栏纵向滚动。
2026-08-07 弹窗规范 统一所有弹窗确认与取消按钮尺寸、间距和右对齐方式,并同步规范确认提示框按钮。
2026-08-07 测试控制台 实现多电池动态实时数据、运行计时、暂停/结束控制、工步、参数、异常和设备通道状态页面。
2026-08-07 测试控制台 修正项目参数与测试参数双栏收缩边界,宽工步/通道表仅在所属面板内横向滚动。
2026-08-07 测试控制台 增加实时数据、工步图表、项目图表和数据列表四个顶部页签;工步图表复用报表曲线模块,增加测试详情、电池筛选、五类指标、可编辑颜色图例及左右双纵坐标。
2026-08-07 测试控制台 按对比报表详情重新制作工步图表,统一横向详情表、数据选择、指标开关、方形颜色图例、两列五图和 h:mm 双纵轴曲线样式。
2026-08-07 测试控制台 将工步图表测试详情进一步对齐对比报表编辑页,补齐实验输入、对比项、可编辑字段、添加项、电池组字段模板、特殊字段模板及删除操作。
2026-08-07 测试控制台 放弃工步图表原型布局,移除工步/电池数据选择区,直接采用对比报表编辑页的测试详情、指标开关、对比图例及五图模块。
2026-08-07 测试控制台 补齐对比报表编辑页的对比信息模块;当前测试电池作为不可删除固定项,新增外部对比项支持删除并联动详情与曲线。
2026-08-07 测试控制台 移除工步图表对比信息、添加比较和外部测试数据,页面仅展示本次测试绑定的电池组、电池详情和对应曲线。
2026-08-07 测试控制台 在工步图表前增加数据选择模块,支持循环工步切换和电池多选,并联动电池图例及五类曲线数据。
2026-08-07 测试控制台 修复工步图表选项合并导致旧曲线残留的问题;电池取消后立即移除系列,充电、搁置和放电展示不同趋势。
2026-08-07 测试控制台 新增独立项目图表视图,移除循环筛选,纵向展示最终电压1、最终电压2和每循环放电末容量/F,并按本次测试全部电池生成 1~61 循环曲线。
2026-08-07 测试控制台 完成数据列表页签,增加电池、时间、循环和工步筛选,导入模板、批量修改、CSV 下载、分页、编辑删除及修订日志联动。
2026-08-07 测试数据修改 将单条编辑改为独立页面,自动带入工步概要与七项采集值;提交修改原因后更新共享列表数据并生成审计记录,返回时保持数据列表页签。
2026-08-07 测试数据导入 新增独立 Excel 导入页,支持 .xlsx/.xls 拖拽上传、60MB 限制、模板字段和数据格式校验、预览确认、导入结果统计及失败数据下载;仅已完成测试允许写入。
2026-08-04 电池组管理 将新增和编辑改为独立页面,增加样品参数、电池编号列表、动态模板字段编辑及本地持久化。
2026-08-04 电池组管理 固定模板编辑面板底部操作栏,仅模板字段列表区域滚动。
2026-08-04 测试类型管理 实现类型查询、时间倒序列表、分页、独立新增编辑页、启停和删除确认。
2026-08-04 列表查询 统一测试列表、电池组管理和测试类型管理的日期范围筛选宽度。
2026-08-04 测试类型管理 重排查询条件为稳定的两行网格,统一状态、时间与操作按钮的对齐关系。
2026-08-04 列表查询 统一三类列表为四列筛选网格,并按三列、两列、单列响应式换行。
2026-08-04 列表查询 查询和重置按钮跟随最后一排靠右,筛选维度满行时自动换到下一排。
2026-08-04 列表查询 筛选栏改用固定列网格,查询和重置按钮落在最后一列并与上方最右筛选项右边缘对齐。
2026-08-04 列表查询 测试列表、电池组管理和测试类型管理的下拉筛选统一增加可选“全部”项。
2026-08-04 列表查询 四个列表页的筛选列改为等分铺满可用宽度,并统一筛选区与结果工具栏右侧按钮的对齐线。
2026-08-04 数据修订记录 实现修订记录查询、时间筛选、修改时间倒序、分页、CSV 下载和只读详情入口。
2026-08-04 数据修订详情 实现工步概要、原始数据、修改后数据对比,以及删除记录的只读审计状态。
2026-08-04 数据修订详情 返回入口调整为与新增、编辑页面一致的顶部文字返回栏。
2026-08-04 文档 建立项目总说明、页面树、开发记录和逐页功能说明。
2026-08-05 异常管理 实现异常查询、状态/处理人筛选、分页、下载、处理说明、状态更新和删除确认。
2026-08-05 检测柜 实现设备组合查询、12 个业务字段列表、分页、启停、编辑和删除约束。
2026-08-05 检测柜 实现独立新增/编辑页和当前网段发现设备选择弹窗,保存结果本地持久化。
2026-08-05 检测柜 将“规格”统一调整为数字类型的“规格/容量”,并兼容转换已有本地演示数据。
2026-08-05 列表交互 测试、电池组、测试类型、数据修订、异常和检测柜列表统一固定右侧操作列。
2026-08-05 采集器 按检测柜模块实现查询、列表、分页、启停、删除约束以及独立新增/编辑页面。
2026-08-05 采集器 采集器字段与检测柜保持一致,但不包含“规格/容量”,数据使用独立本地存储。
2026-08-05 设备管理 检测柜与采集器的通道数统一调整为 1~99 连续数字选择,并增加保存范围校验。
2026-08-05 对比报表 实现报告查询、分页、新建编辑、打印 PDF、修订记录查看与下载以及删除确认。
2026-08-05 新增对比报表 实现对比测试配置、测试详情字段、指标开关、五类曲线图表、保存和导出 PDF。
2026-08-05 业务概念 明确电池组、电池号、测试、工步、循环和循环次数的定义、关系、选择依赖及对比报表联动约定。

9. 后续开发规则

  1. 新增路由时同步更新本文件的页面树。
  2. 新建或修改页面时同步更新 docs/pages/ 下对应说明。
  3. 完成可见功能后在开发记录追加日期、范围和行为变化。
  4. API 或后端事实边界变化时,同步更新对应页面文档和根目录 docs/KNOWN-GAPS.md。