diff --git a/.env b/.env
index b702f2e9..ea089275 100644
--- a/.env
+++ b/.env
@@ -15,3 +15,7 @@ VUE_APP_I18N_FALLBACK_LOCALE=en
# element 颜色
VUE_APP_ELEMENT_COLOR=#409EFF
+
+# 后台接口地址(代理目标)
+VUE_APP_BASE_URL=http://127.0.0.1:8787/background/
+
diff --git a/docs/功能测试-BOM物料清单.md b/docs/功能测试-BOM物料清单.md
deleted file mode 100644
index 7526945c..00000000
--- a/docs/功能测试-BOM物料清单.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# 功能测试任务列表 - BOM物料清单
-
-> 路由:`/production_configuration/matetial_model/bom`
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 | 结果 |
-|---|---|---|---|---|
-| 1 | 页面入口 | 从菜单进入“BOM物料清单”,或直接访问路由 | 页面正常打开,表格展示 BOM 编码、名称、产品型号、状态、创建人、创建时间和备注 | ☐ |
-| 2 | 条件查询 | 输入 BOM 编码、名称或选择产品型号后点击“查询” | 列表按条件刷新,分页回到第一页 | ☐ |
-| 3 | 重置查询 | 点击“重置” | 查询条件清空,列表恢复默认数据 | ☐ |
-| 4 | 新增校验 | 点击“新增”,不填写编码、名称或产品型号直接确认 | 表单提示必填校验,不提交请求 | ☐ |
-| 5 | 新增 BOM | 填写 BOM 编码、名称、产品型号、状态和备注后确认 | 弹窗关闭,提示操作成功,列表出现新增 BOM | ☐ |
-| 6 | 编辑 BOM | 点击“编辑”,修改名称、状态或备注后确认 | 表单回显旧值,保存后列表展示新值 | ☐ |
-| 7 | 删除 BOM | 点击“删除”并确认 | 提示操作成功,记录被删除,分页刷新正确 | ☐ |
-| 8 | 打开 BOM 关系 | 点击“设置BOM” | 全屏关系弹窗打开,左侧显示工序单元,右侧显示当前工序 IN/OUT 关系 | ☐ |
-| 9 | 切换工序 | 在左侧选择不同工序单元 | IN/OUT 列表按工序刷新 | ☐ |
-| 10 | 添加 IN 物料 | 在 IN 区域点击“新增”,选择一个或多个物料后确认 | 物料加入 IN 列表,重复物料提示不可重复选择 | ☐ |
-| 11 | 编辑 IN 投入数量 | 修改 IN 列表的投入数量并移出输入框 | 数量保存成功,刷新后仍保持新值 | ☐ |
-| 12 | 添加 OUT 物料限制 | 在 OUT 区域尝试选择多个物料或已有 OUT 后继续新增 | 系统提示 OUT 结构只允许 1 个半成品 | ☐ |
-| 13 | 删除 BOM 关系 | 勾选 IN/OUT 关系后点击删除,或点击行内删除 | 关系删除成功,列表刷新 | ☐ |
-| 14 | 权限按钮 | 使用缺少新增/编辑/删除/设置BOM权限的账号进入页面 | 对应按钮不显示或不可操作 | ☐ |
diff --git a/docs/功能测试-SPC采集配置.md b/docs/功能测试-SPC采集配置.md
deleted file mode 100644
index 970a63cf..00000000
--- a/docs/功能测试-SPC采集配置.md
+++ /dev/null
@@ -1,648 +0,0 @@
-# SPC采集配置功能测试流程文档
-
-> **测试对象**:生产配置 → SPC采集模型 → SPC采集配置(Data Collection Configuration)
-> **迁移日期**:2026-06-02
-> **对应页面**:[`src/views/production-master-data/spc-configuration/data-collection-configuration/index.vue`](file:///c:/code/compony/mes-ui-d2/src/views/production-master-data/spc-configuration/data-collection-configuration/index.vue)
-> **API 文件**:[`src/api/production-master-data/data-collection-configuration.js`](file:///c:/code/compony/mes-ui-d2/src/api/production-master-data/data-collection-configuration.js)
-> **路由路径**:`/production_configuration/spc_configuration/binding_scada_node`(旧值暂留,后续批量替换)
-> **i18n 前缀**:`page.production_master_data.spc_configuration.data_collection_configuration`
-
----
-
-## 一、测试环境配置
-
-| 配置项 | 要求 |
-|--------|------|
-| 浏览器 | Chrome 最新版、Edge 最新版(兼容 IE 11+) |
-| 屏幕分辨率 | ≥ 1920×1080 |
-| Node.js | ≥ 16.x |
-| 包管理器 | pnpm ≥ 7.x |
-| 后端服务 | Webman 已启动,且 SPC采集配置相关 API 可正常访问(`production_configuration/spc_configuration/binding_scada_node/*`) |
-| 测试账号 | 具有「生产配置 → SPC采集模型 → SPC采集配置」菜单权限的管理员账号(含 create / edit / delete 权限) |
-| 测试数据 | 准备至少 5 条测试用 SPC采集配置(采集编码唯一),覆盖不同采集类型(实时、周期、触发)、不同状态(启用、禁用) |
-| SCADA节点依赖 | 系统中至少配置 1 个可用的 SCADA 节点,便于绑定 |
-| 语言切换 | 先测中文(简体中文),再切到英文验证 i18n 是否正常 |
-| 权限分配 | 系统管理 → 菜单管理中确认 SPC采集配置按钮权限(新增、编辑、删除)已正确配置 |
-
----
-
-## 二、测试前置条件
-
-1. 后端服务(Webman)已启动,`production_configuration/spc_configuration/binding_scada_node/` 模块的 API 可正常访问
-2. 前端项目已执行 `pnpm install` 且 `pnpm dev` 正常启动,可访问登录页
-3. 使用具有「生产配置 → SPC采集模型 → SPC采集配置」菜单权限的管理员账号登录
-4. 侧边栏菜单 **生产配置 → SPC采集模型** 下可见 **SPC采集配置** 子菜单
-5. 浏览器控制台无 Vue 警告或 i18n key 缺失报错
-6. 确认 `src/locales/zh-chs.json` 和 `src/locales/en.json` 中存在 `page.production_master_data.spc_configuration.data_collection_configuration` 配置
-7. 数据库中 SPC采集配置表为空或仅有少量测试数据,便于验证
-8. 系统中至少存在 1 个已配置的 SCADA 节点
-
----
-
-## 三、功能测试用例
-
-### 3.1 页面加载与数据展示
-
-#### TC-SCC-001:菜单导航与页面加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击侧边栏菜单「生产配置 → SPC采集模型 → SPC采集配置」 |
-| **预期结果** | 页面正常加载,URL 显示 `/production_configuration/spc_configuration/binding_scada_node`;页面顶部显示搜索栏(采集编码、采集名称、SCADA节点、状态、查询、重置按钮);中部显示 SPC采集配置 列表表格;底部分页组件显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-002:列表表格列头与数据展示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看 SPC采集配置 列表的表头列与各行数据 |
-| **预期结果** | 表格列依次为:序号、采集编码、采集名称、SCADA节点、采集类型、采集间隔(秒)、状态(tag 标签展示)、备注、操作;操作列包含「编辑」「删除」两个按钮(带图标);当数据为空时显示空数据占位提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-003:状态列 Tag 展示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看列表中状态列的不同取值 |
-| **预期结果** | 启用状态显示绿色 tag(success 类型),禁用状态显示红色 tag(danger 类型) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-004:工具栏按钮显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看表格上方的工具栏 |
-| **预期结果** | 显示蓝色「新增」按钮(含加号图标),右上角显示问号「帮助」按钮(点击跳转 `/help/data-collection-configuration`) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-005:表格自适应高度
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 加载页面后查看表格高度 2. 缩小/放大浏览器窗口 3. 折叠/展开侧边栏 |
-| **预期结果** | 表格高度自动填满 d2-container 剩余空间,窗口变化时无空白或滚动条异常 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.2 搜索功能
-
-#### TC-SCC-006:按采集编码精确搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「采集编码」输入框输入完整的采集编码(如 `SCC_001`) 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示编码匹配的数据行;分页总数更新为匹配条数;输入框右侧 X 按钮可清空内容 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-007:按采集编码模糊搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「采集编码」输入框输入编码的片段(如 `SCC_`) 2. 点击「查询」按钮 |
-| **预期结果** | 表格显示所有编码包含 `SCC_` 的数据行 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-008:按采集名称搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「采集名称」输入框输入关键字(如「温度」) 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示名称包含关键字的 SPC采集配置 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-009:按 SCADA 节点搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「SCADA节点」输入框输入节点关键字 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示 SCADA 节点字段匹配的数据行 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-010:按状态筛选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「状态」下拉中选择「启用」 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示状态为启用的数据行;下拉中可选择「启用」「禁用」或留空(全部) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-011:组合条件搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 同时输入「采集编码」「采集名称」「SCADA节点」「状态」搜索条件 2. 点击「查询」按钮 |
-| **预期结果** | 表格显示同时满足所有条件的数据行(AND 关系) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-012:回车键触发搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在搜索输入框中输入关键字 2. 按下键盘回车键 |
-| **预期结果** | 等同于点击「查询」按钮,表格按搜索条件刷新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-013:重置搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入搜索条件并点击「查询」 2. 点击「重置」按钮 |
-| **预期结果** | 搜索输入框和状态下拉清空,表格恢复显示全部 SPC采集配置 数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-014:搜索无结果
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入不存在的编码或名称 2. 点击「查询」 |
-| **预期结果** | 表格显示空数据占位提示,分页总数显示 0 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.3 分页功能
-
-#### TC-SCC-015:分页默认显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 加载页面后查看分页组件 |
-| **预期结果** | 分页默认显示第 1 页,每页 10 条记录,总条数显示当前数据库 SPC采集配置 总数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-016:切换每页条数
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在分页组件的「每页显示」下拉中切换为 20、50、100 2. 观察表格变化 |
-| **预期结果** | 表格按新条数加载数据,分页组件正确显示总页数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-017:翻页功能
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 准备至少 25 条测试数据 2. 点击「下一页」「上一页」「首页」「末页」按钮 3. 输入页码跳转 |
-| **预期结果** | 表格按页加载数据,翻页流畅无报错 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.4 新增 SPC采集配置
-
-#### TC-SCC-018:打开新增弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击表格上方「新增」按钮 |
-| **预期结果** | 弹出新增 SPC采集配置 对话框,标题显示"新增SPC采集配置",包含采集编码、采集名称、SCADA节点、采集类型、采集间隔(秒)、状态、备注共 7 个表单项;「确定」「取消」按钮位于底部;弹框宽度约 50% |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-019:新增表单必填校验 - 采集编码
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写「采集编码」直接点击「确定」 |
-| **预期结果** | 「采集编码」输入框下方显示红色校验提示"请输入采集编码" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-020:新增表单必填校验 - 采集名称
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写「采集名称」直接点击「确定」 |
-| **预期结果** | 「采集名称」输入框下方显示红色校验提示"请输入采集名称" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-021:新增表单必填校验 - SCADA 节点
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写「SCADA节点」直接点击「确定」 |
-| **预期结果** | 「SCADA节点」输入框下方显示红色校验提示"请输入SCADA节点" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-022:新增表单必填校验 - 采集类型
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不选择「采集类型」直接点击「确定」 |
-| **预期结果** | 「采集类型」下拉框下方显示红色校验提示"请选择采集类型" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-023:新增表单必填校验 - 状态
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 清空「状态」下拉框 3. 点击「确定」 |
-| **预期结果** | 「状态」下拉框下方显示红色校验提示"请选择状态" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-024:新增成功 - 实时采集类型
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 采集编码输入 `SCC_TEST_001` 3. 采集名称输入「温度实时采集」 4. SCADA节点输入 `SCADA_NODE_01` 5. 采集类型选择「实时」 6. 采集间隔输入 `1` 7. 状态选择「启用」 8. 备注输入「测试用」 9. 点击「确定」 |
-| **预期结果** | 弹框关闭,页面右上角显示绿色成功提示"操作成功";表格自动刷新并显示新增的 SPC采集配置 行 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-025:新增成功 - 周期采集类型
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 采集编码输入 `SCC_TEST_002` 3. 采集名称输入「压力周期采集」 4. SCADA节点输入 `SCADA_NODE_02` 5. 采集类型选择「周期」 6. 采集间隔输入 `60` 7. 状态选择「启用」 8. 备注留空 9. 点击「确定」 |
-| **预期结果** | 新增成功,备注字段允许为空,表格中可见新增行(采集类型显示为"周期",采集间隔 60) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-026:新增成功 - 触发采集类型
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 采集编码输入 `SCC_TEST_003` 3. 采集名称输入「流量触发采集」 4. SCADA节点输入 `SCADA_NODE_03` 5. 采集类型选择「触发」 6. 状态选择「禁用」 7. 点击「确定」 |
-| **预期结果** | 新增成功,表格中状态列 tag 显示为红色(禁用) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-027:新增 - 编码长度校验
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在采集编码输入框输入超过 100 个字符 3. 失焦后观察 |
-| **预期结果** | 输入框下方显示校验提示"长度在 1 到 100 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-028:新增 - 编码重复
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入已存在的 SPC采集配置 编码 3. 点击「确定」 |
-| **预期结果** | 提示后端返回的"编码已存在"等错误信息,新增失败,弹框不关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-029:取消新增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写部分内容 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,表格数据无变化,无任何提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-030:新增 - 备注多行输入
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在备注框中输入多行文字(超过 2 行) 3. 观察文本框是否自动扩展 |
-| **预期结果** | 备注为 textarea 类型,输入多行内容后自动扩展(最少 2 行,最多 6 行) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.5 编辑 SPC采集配置
-
-#### TC-SCC-031:打开编辑弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击某一 SPC采集配置 行操作列的「编辑」按钮 |
-| **预期结果** | 弹出编辑 SPC采集配置 对话框,标题显示"编辑SPC采集配置",采集编码、采集名称、SCADA节点、采集类型、采集间隔(秒)、状态、备注共 7 个字段正确回填该行的数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-032:编辑成功 - 修改名称
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框(选择名称为"温度实时采集"的行) 2. 修改采集名称为"温度实时采集-改" 3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格对应行的名称列更新为新值 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-033:编辑成功 - 修改状态
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框(选择状态为启用的行) 2. 修改状态为「禁用」 3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格对应行的状态 tag 由绿色变为红色 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-034:编辑成功 - 修改采集间隔
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改采集间隔为 `120` 3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格对应行的采集间隔列更新为 `120` |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-035:编辑后清空必填项 - 采集名称
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 清空「采集名称」输入框 3. 点击「确定」 |
-| **预期结果** | 「采集名称」下方显示红色校验提示,无法提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-036:编辑后清空必填项 - SCADA 节点
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 清空「SCADA节点」输入框 3. 点击「确定」 |
-| **预期结果** | 「SCADA节点」下方显示红色校验提示,无法提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-037:取消编辑
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改部分字段 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,表格数据无变化,无任何提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.6 删除 SPC采集配置
-
-#### TC-SCC-038:删除确认弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击某一 SPC采集配置 行操作列的「删除」按钮 |
-| **预期结果** | 弹出确认对话框,标题显示"提示",内容为"确定要删除该SPC采集配置吗?",按钮为"确定""取消" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-039:取消删除
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「删除」按钮 2. 在确认弹框中点击「取消」 |
-| **预期结果** | 确认弹框关闭,表格数据无变化,无任何提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-040:删除成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「删除」按钮 2. 在确认弹框中点击「确定」 |
-| **预期结果** | 确认弹框关闭,提示"操作成功",表格对应行被移除;分页组件总数减 1;如删除的是当前页最后一行则自动跳到上一页 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-041:删除最后一行后页码修正
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 确保当前页只有 1 条数据 2. 删除该行 |
-| **预期结果** | 删除成功后自动跳转到上一页(如当前已是第 1 页则停留在第 1 页),不会出现空页或无数据错误 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.7 国际化(i18n)
-
-#### TC-SCC-042:中文显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 系统语言切换为简体中文,查看 SPC采集配置 页面 |
-| **预期结果** | 所有列头、表单 label、按钮、提示、状态枚举均显示中文(采集编码、采集名称、SCADA节点、采集类型、采集间隔(秒)、状态、备注、新增、编辑、删除、确定、取消、提示、操作成功、实时、周期、触发、启用、禁用 等) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-043:英文显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 系统语言切换为英文,查看 SPC采集配置 页面 |
-| **预期结果** | 所有列头、表单 label、按钮、提示、状态枚举均显示英文(Collection Code、Collection Name、SCADA Node、Collection Type、Interval (s)、Status、Remark、Add、Edit、Delete、Confirm、Cancel、Tip、Operation succeeded、Real-time、Periodic、Trigger、Enable、Disable 等) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-044:弹框 i18n 自动响应
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在中文状态下打开新增弹框 2. 不关闭弹框,将语言切换为英文 3. 观察弹框标题、按钮文字、表单 label 是否自动翻译为英文 |
-| **预期结果** | 弹框中的所有文案(包括 title、label、placeholder、按钮文字、校验提示)跟随语言切换自动更新为对应英文,无需关闭重开 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-045:缺失 key 校验
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 打开浏览器开发者工具,切换页面、打开弹框、切换语言 |
-| **预期结果** | 控制台无 i18n key 缺失警告(如 `[vue-i18n] Value of key 'xxx' is not a string`) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.8 权限控制
-
-#### TC-SCC-046:无 create 权限时隐藏新增按钮
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 使用没有 `create` 权限的账号登录,访问 SPC采集配置 页面 |
-| **预期结果** | 工具栏不显示「新增」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-047:无 edit 权限时隐藏编辑按钮
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 使用没有 `edit` 权限的账号登录,访问 SPC采集配置 页面 |
-| **预期结果** | 行内操作列不显示「编辑」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-048:无 delete 权限时隐藏删除按钮
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 使用没有 `delete` 权限的账号登录,访问 SPC采集配置 页面 |
-| **预期结果** | 行内操作列不显示「删除」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.9 错误处理
-
-#### TC-SCC-049:网络异常 - 列表加载失败
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 关闭后端服务或断开网络 2. 刷新 SPC采集配置 页面 |
-| **预期结果** | 表格 loading 状态结束,显示空数据占位;页面顶部弹出红色错误提示(来自全局拦截器);表格不卡死 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-SCC-050:网络异常 - 提交失败
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写完整数据 3. 在点击「确定」之前断开网络 4. 点击「确定」 |
-| **预期结果** | 弹框不关闭,loading 状态结束;弹出红色错误提示;用户可修改后重试 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-## 四、测试结果汇总
-
-| 用例编号 | 测试项 | 结果 | 问题摘要 |
-|:--------:|--------|:----:|---------|
-| TC-SCC-001 | 菜单导航与页面加载 | ⬜ | |
-| TC-SCC-002 | 列表表格列头与数据展示 | ⬜ | |
-| TC-SCC-003 | 状态列 Tag 展示 | ⬜ | |
-| TC-SCC-004 | 工具栏按钮显示 | ⬜ | |
-| TC-SCC-005 | 表格自适应高度 | ⬜ | |
-| TC-SCC-006 | 按采集编码精确搜索 | ⬜ | |
-| TC-SCC-007 | 按采集编码模糊搜索 | ⬜ | |
-| TC-SCC-008 | 按采集名称搜索 | ⬜ | |
-| TC-SCC-009 | 按 SCADA 节点搜索 | ⬜ | |
-| TC-SCC-010 | 按状态筛选 | ⬜ | |
-| TC-SCC-011 | 组合条件搜索 | ⬜ | |
-| TC-SCC-012 | 回车键触发搜索 | ⬜ | |
-| TC-SCC-013 | 重置搜索 | ⬜ | |
-| TC-SCC-014 | 搜索无结果 | ⬜ | |
-| TC-SCC-015 | 分页默认显示 | ⬜ | |
-| TC-SCC-016 | 切换每页条数 | ⬜ | |
-| TC-SCC-017 | 翻页功能 | ⬜ | |
-| TC-SCC-018 | 打开新增弹框 | ⬜ | |
-| TC-SCC-019 | 新增表单必填校验 - 采集编码 | ⬜ | |
-| TC-SCC-020 | 新增表单必填校验 - 采集名称 | ⬜ | |
-| TC-SCC-021 | 新增表单必填校验 - SCADA 节点 | ⬜ | |
-| TC-SCC-022 | 新增表单必填校验 - 采集类型 | ⬜ | |
-| TC-SCC-023 | 新增表单必填校验 - 状态 | ⬜ | |
-| TC-SCC-024 | 新增成功 - 实时采集类型 | ⬜ | |
-| TC-SCC-025 | 新增成功 - 周期采集类型 | ⬜ | |
-| TC-SCC-026 | 新增成功 - 触发采集类型 | ⬜ | |
-| TC-SCC-027 | 新增 - 编码长度校验 | ⬜ | |
-| TC-SCC-028 | 新增 - 编码重复 | ⬜ | |
-| TC-SCC-029 | 取消新增 | ⬜ | |
-| TC-SCC-030 | 新增 - 备注多行输入 | ⬜ | |
-| TC-SCC-031 | 打开编辑弹框 | ⬜ | |
-| TC-SCC-032 | 编辑成功 - 修改名称 | ⬜ | |
-| TC-SCC-033 | 编辑成功 - 修改状态 | ⬜ | |
-| TC-SCC-034 | 编辑成功 - 修改采集间隔 | ⬜ | |
-| TC-SCC-035 | 编辑后清空必填项 - 采集名称 | ⬜ | |
-| TC-SCC-036 | 编辑后清空必填项 - SCADA 节点 | ⬜ | |
-| TC-SCC-037 | 取消编辑 | ⬜ | |
-| TC-SCC-038 | 删除确认弹框 | ⬜ | |
-| TC-SCC-039 | 取消删除 | ⬜ | |
-| TC-SCC-040 | 删除成功 | ⬜ | |
-| TC-SCC-041 | 删除最后一行后页码修正 | ⬜ | |
-| TC-SCC-042 | 中文显示 | ⬜ | |
-| TC-SCC-043 | 英文显示 | ⬜ | |
-| TC-SCC-044 | 弹框 i18n 自动响应 | ⬜ | |
-| TC-SCC-045 | 缺失 key 校验 | ⬜ | |
-| TC-SCC-046 | 无 create 权限时隐藏新增按钮 | ⬜ | |
-| TC-SCC-047 | 无 edit 权限时隐藏编辑按钮 | ⬜ | |
-| TC-SCC-048 | 无 delete 权限时隐藏删除按钮 | ⬜ | |
-| TC-SCC-049 | 网络异常 - 列表加载失败 | ⬜ | |
-| TC-SCC-050 | 网络异常 - 提交失败 | ⬜ | |
-
----
-
-## 五、问题记录
-
-| 序号 | 用例编号 | 问题描述 | 复现步骤 | 严重程度 | 截图 | 处理状态 | 责任人 |
-|:----:|:--------:|---------|---------|:--------:|:----:|:--------:|--------|
-| 1 | | | | | | | |
-| 2 | | | | | | | |
-| 3 | | | | | | | |
-
----
-
-## 六、测试结论
-
-| 项目 | 描述 |
-|------|------|
-| 测试用例总数 | 50 |
-| 通过用例数 | |
-| 未通过用例数 | |
-| 通过率 | |
-| 是否达到上线标准 | ⬜ 是 / ⬜ 否 |
-| 备注 | |
-
-**测试人员**:________________
-
-**测试日期**:________________
-
-**审核人员**:________________
-
-**审核日期**:________________
diff --git a/docs/功能测试-反向追溯.md b/docs/功能测试-反向追溯.md
deleted file mode 100644
index e68862d3..00000000
--- a/docs/功能测试-反向追溯.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# 功能测试 - 反向追溯
-
-> 模块:数据中台 / 基础追溯 / 反向追溯 (Backward Traceability)
-> 路由:`/data_middleground/basic_traceability/reverse_direction_traceability`
-
-## 测试前置条件
-
-- 测试账号具备访问“反向追溯”的菜单权限。
-- 准备至少 2 个电池条码:
- - 一个存在完整反向追溯关系图的电池条码。
- - 一个不存在追溯数据或数据为空的电池条码。
-- 后端接口 `data_middleground/basic_traceability/reverse_direction_traceability/get_data` 和 `export_tree` 可正常访问。
-
-## 测试任务列表
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 |
-|---:|---|---|---|
-| 1 | 页面入口 | 从菜单进入“反向追溯”,或直接访问 `/data_middleground/basic_traceability/reverse_direction_traceability` | 页面正常打开,显示电池条码输入框、查询、导出、重置按钮和空态区域 |
-| 2 | 空输入查询 | 不输入电池条码,点击“查询” | 页面提示请输入电池条码,不发起有效查询 |
-| 3 | 有效条码查询 | 输入存在追溯数据的电池条码,点击“查询” | 页面通过 relation-graph 展示追溯图谱,节点包含物料名称、编码、批次、工序、时间、设备等信息 |
-| 4 | 无数据条码查询 | 输入不存在追溯数据的电池条码,点击“查询” | 页面保持空态或显示无节点,不出现脚本错误 |
-| 5 | 横向/纵向切换 | 查询出数据后,切换“横向图谱”和“纵向图谱” | 追溯节点展示方向切换,页面不丢失数据 |
-| 6 | 图谱拖拽与缩放 | 查询出数据后,在图谱空白区域拖拽,并使用鼠标滚轮缩放 | 图谱内容可以平移和缩放,节点不会被页面容器裁切 |
-| 7 | 节点内容完整性 | 查看包含较多字段的节点,滚动节点内容区域 | 节点卡片外框完整显示,字段内容可在节点内部滚动查看 |
-| 8 | 物料编码定位 | 查询出数据后,输入某个节点的物料编码,点击定位确认 | 匹配节点高亮并居中聚焦到可视区域 |
-| 9 | 物料批次定位 | 输入某个节点的物料批次,点击定位确认 | 匹配节点高亮并居中聚焦到可视区域 |
-| 10 | 工序单元定位 | 输入某个制成品节点的工序单元编码,点击定位确认 | 匹配节点高亮并居中聚焦到可视区域;不存在时提示未找到匹配节点 |
-| 11 | 导出前校验 | 未输入电池条码时点击“导出” | 页面提示请输入电池条码 |
-| 12 | 查询前导出 | 输入电池条码但未查询出追溯树,点击“导出” | 页面提示请先查询追溯数据后再导出 |
-| 13 | 正常导出 | 查询出追溯树后点击“导出” | 调用导出接口,浏览器开始下载或打开导出文件 |
-| 14 | 重置功能 | 查询出追溯树后点击“重置” | 输入框、追溯树、定位输入和高亮状态全部清空 |
-| 15 | 国际化检查 | 切换中英文语言后重新进入页面 | 页面按钮、节点字段和提示文案随语言切换显示 |
-
-## 回归关注点
-
-- 接口返回 `relation_graph.nodes` 或 `relation_graph.lines` 为空时页面不能报错。
-- 图谱必须使用 `relation-graph` 渲染,支持拖拽、缩放和定位聚焦。
-- 节点字段较多时,节点卡片外框不应被裁切,内容应可在卡片内部滚动查看。
-- 导出接口参数中的 `tree_list` 应为当前追溯树节点数组 JSON。
-- 路由参数携带 `battery_id` 时,页面应能自动查询对应追溯数据。
diff --git a/docs/功能测试-托盘追溯.md b/docs/功能测试-托盘追溯.md
deleted file mode 100644
index e2f05822..00000000
--- a/docs/功能测试-托盘追溯.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# 功能测试 - 托盘追溯
-
-> 模块:数据中台 / 基础追溯 / 托盘追溯 (Tray Traceability)
-> 路由:`/data_middleground/produce/traceability/tray`
-
-## 测试前置条件
-
-- 测试账号具备访问“托盘追溯”和“电池追溯”的菜单权限。
-- 准备至少 1 个存在电池明细和工序时间线的托盘号。
-- 后端接口 `tray`、`traydetail`、`batteryactive` 可正常访问。
-
-## 测试任务列表
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 |
-|---:|---|---|---|
-| 1 | 页面入口 | 进入“托盘追溯”页面 | 页面显示托盘号输入框、查询、重置按钮和托盘列表 |
-| 2 | 托盘查询 | 输入有效托盘号并查询 | 表格展示托盘、批次、LOT、激活状态、投入电池数和时间信息 |
-| 3 | 空数据查询 | 输入无数据托盘号并查询 | 表格显示空态,页面不报错 |
-| 4 | 打开电池明细 | 点击某行“电池明细” | 打开全屏抽屉,展示左侧工序时间线和右侧电池明细表 |
-| 5 | 明细搜索 | 在抽屉内输入电池条码关键字 | 明细表按电池条码过滤 |
-| 6 | 取消激活校验 | 不选择电池,点击取消电池激活 | 页面提示请至少选择一个电池 |
-| 7 | 取消激活 | 选择一个或多个电池后点击取消电池激活 | 调用取消激活接口,成功后刷新明细 |
-| 8 | 跳转电池追溯 | 点击明细中的电池条码 | 跳转到电池追溯页面并携带 battery_id 查询参数 |
-| 9 | 重置功能 | 查询后点击重置 | 托盘号、列表和分页状态清空 |
-| 10 | 国际化检查 | 切换中英文语言后重新进入页面 | 页面按钮、表格列和抽屉文案随语言切换显示 |
-
-## 回归关注点
-
-- 电池明细过滤需要排除空电池条码和 0。
-- 取消激活接口参数 `batterData` 必须是已选择电池数组的 JSON 字符串。
-- 电池条码跳转需保留 `battery_id` 查询参数。
diff --git a/docs/功能测试-排班日历.md b/docs/功能测试-排班日历.md
deleted file mode 100644
index 3daac6a0..00000000
--- a/docs/功能测试-排班日历.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# 功能测试任务列表 - 排班日历
-
-> 路由:`/system_settings/organization/production_shift_calender`
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 | 结果 |
-|---|---|---|---|---|
-| 1 | 页面入口 | 从菜单进入“排班日历” | 页面正常打开,展示当前月份日历 | ☐ |
-| 2 | 初始数据加载 | 打开页面后观察日历单元格 | 系统请求当前日历可视范围的排班数据,并在日期下显示班次计划标签 | ☐ |
-| 3 | 休息日展示 | 查看包含休息日的日期 | 休息日以灰色标签显示“休” | ☐ |
-| 4 | 工作日展示 | 查看包含排班的日期 | 日期下展示班次计划标签 | ☐ |
-| 5 | 明细悬浮 | 鼠标悬浮工作日班次计划标签 | 弹出层展示班次名称、开始/结束时间、绑定班组和跨天标识 | ☐ |
-| 6 | 跨月切换 | 点击日历上一月/下一月 | 日历切换月份并重新加载新可视范围数据 | ☐ |
-| 7 | 选择日期 | 点击任意日期 | 日期高亮状态正常,不影响排班数据显示 | ☐ |
-| 8 | 空数据展示 | 切换到无排班数据的月份 | 日历正常显示,无错误提示或残留旧数据 | ☐ |
diff --git a/docs/功能测试-正向追溯.md b/docs/功能测试-正向追溯.md
deleted file mode 100644
index 93bbcb56..00000000
--- a/docs/功能测试-正向追溯.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# 功能测试 - 正向追溯
-
-> 模块:数据中台 / 基础追溯 / 正向追溯 (Forward Traceability)
-> 路由:`/data_middleground/basic_traceability/positive_direction_traceability`
-
-## 测试前置条件
-
-- 测试账号具备访问“正向追溯”和“反向追溯”的菜单权限。
-- 准备至少一组可查询到数据的物料编码和物料批次。
-- 准备至少一个可查询到数据的半成品码。
-- 后端接口 `data_middleground/basic_traceability/positive_direction_traceability/list` 和 `export_task` 可正常访问。
-
-## 测试任务列表
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 |
-|---:|---|---|---|
-| 1 | 页面入口 | 从菜单进入“正向追溯”,或直接访问路由 | 页面正常打开,显示物料编码、物料批次、半成品码筛选项和查询、导出、重置按钮 |
-| 2 | 初始查询 | 进入页面后等待默认查询完成 | 表格正常渲染,空数据时显示空态,不出现脚本错误 |
-| 3 | 物料编码校验 | 只输入物料编码,不输入物料批次,点击查询 | 页面提示请输入物料批次,不发起有效查询 |
-| 4 | 物料批次查询 | 输入物料编码和物料批次,点击查询 | 表格展示匹配数据,包含电池条码、批次号、物料、设备、工序和完成时间 |
-| 5 | 半成品码查询 | 输入半成品码,点击查询 | 表格展示匹配数据或空态,页面不报错 |
-| 6 | 分页切换 | 查询出多条数据后切换分页 | 当前页数据正确变化,总数显示正确 |
-| 7 | 跳转反向追溯 | 点击某行“反向追溯” | 跳转到反向追溯页面,并携带当前行电池条码自动查询 |
-| 8 | 导出前校验 | 不输入任何筛选条件时点击导出 | 页面提示请选择筛选条件 |
-| 9 | 创建导出任务 | 输入筛选条件后点击导出并确认 | 调用导出任务接口,提示创建下载任务成功,并跳转任务页面 |
-| 10 | 重置功能 | 输入筛选条件并查询后点击重置 | 筛选项清空,分页回到第一页并重新加载数据 |
-| 11 | 国际化检查 | 切换中英文语言后重新进入页面 | 页面按钮、表格列名和提示文案随语言切换显示 |
-
-## 回归关注点
-
-- 物料编码存在时必须同时输入物料批次。
-- 导出任务必须携带当前筛选条件、总数和 `action=download`。
-- 反向追溯跳转必须使用行数据中的 `battery_id`。
diff --git a/docs/功能测试-班次管理.md b/docs/功能测试-班次管理.md
deleted file mode 100644
index c420c8e5..00000000
--- a/docs/功能测试-班次管理.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# 功能测试任务列表 - 班次管理
-
-> 路由:`/system_settings/organization/production_shift_management`
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 | 结果 |
-|---|---|---|---|---|
-| 1 | 页面入口 | 从菜单进入“班次管理” | 页面正常打开,展示班次计划名称、编码、起止时间、状态、创建/更新时间 | ☐ |
-| 2 | 条件查询 | 输入计划名称、编码或创建时间后查询 | 列表按条件刷新 | ☐ |
-| 3 | 新增校验 | 点击新增,不填名称、编码或时间范围直接确认 | 显示必填校验 | ☐ |
-| 4 | 新增班次计划 | 填写计划信息、选择班组、添加班次明细后确认 | 保存成功,列表出现新计划 | ☐ |
-| 5 | 班组绑定唯一性 | 两条班次明细绑定同一个班组 | 第二次绑定被阻止并提示 | ☐ |
-| 6 | 明细必填校验 | 添加班次明细但缺少名称、开始时间或结束时间 | 提示对应行缺失字段 | ☐ |
-| 7 | 编辑班次计划 | 点击编辑,修改状态、休息日、明细后确认 | 保存成功,重新打开可回显新数据 | ☐ |
-| 8 | 单条删除 | 点击删除并确认 | 计划删除成功 | ☐ |
-| 9 | 批量删除 | 勾选多条计划后批量删除 | 所选计划删除成功 | ☐ |
-| 10 | 导入模板 | 点击导入后下载模板 | 浏览器下载班次计划导入模板 | ☐ |
-| 11 | 导入数据 | 选择合法 xls/xlsx 文件并确认导入 | 预览展示后提交成功,列表刷新 | ☐ |
-| 12 | 导出任务 | 点击导出并确认 | 提示下载任务创建成功 | ☐ |
-| 13 | 权限按钮 | 使用缺少权限账号进入页面 | 对应新增/编辑/删除/导入/导出按钮隐藏或不可操作 | ☐ |
diff --git a/docs/功能测试-班组管理.md b/docs/功能测试-班组管理.md
deleted file mode 100644
index 79930d69..00000000
--- a/docs/功能测试-班组管理.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# 功能测试任务列表 - 班组管理
-
-> 路由:`/system_settings/organization/production_team_manage`
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 | 结果 |
-|---|---|---|---|---|
-| 1 | 页面入口 | 从菜单进入“班组管理” | 页面正常打开,展示班组名称、所属厂区、所属产线、创建/更新时间 | ☐ |
-| 2 | 条件查询 | 输入班组名称、选择厂区/产线或创建时间后查询 | 列表按条件刷新 | ☐ |
-| 3 | 新增校验 | 点击新增,不填班组名称、厂区或产线直接确认 | 显示必填校验,不提交 | ☐ |
-| 4 | 新增班组 | 填写班组信息,添加成员并设置班组长后确认 | 提示操作成功,列表出现新班组 | ☐ |
-| 5 | 班组长唯一性 | 添加多个成员并尝试设置两个班组长 | 第二个班组长被拦截,提示只允许一个班组长 | ☐ |
-| 6 | 编辑班组 | 点击编辑,修改成员或班组信息后确认 | 保存成功,重新打开可看到新数据 | ☐ |
-| 7 | 删除成员 | 编辑已有班组,删除已有成员 | 成员删除成功,列表刷新 | ☐ |
-| 8 | 单条删除 | 点击行内删除并确认 | 班组删除成功 | ☐ |
-| 9 | 批量删除 | 勾选多条数据后点击批量删除并确认 | 所选班组删除成功 | ☐ |
-| 10 | 导入模板 | 点击导入后下载模板 | 浏览器下载班组导入模板 | ☐ |
-| 11 | 导入数据 | 选择合法 xls/xlsx 文件并确认导入 | 预览数据正确,提交后提示成功并刷新列表 | ☐ |
-| 12 | 导出任务 | 点击导出并确认 | 提示下载任务创建成功 | ☐ |
-| 13 | 权限按钮 | 使用缺少权限账号进入页面 | 对应新增/编辑/删除/导入/导出按钮隐藏或不可操作 | ☐ |
diff --git a/docs/功能测试-电池复投管理.md b/docs/功能测试-电池复投管理.md
deleted file mode 100644
index 4c8e579b..00000000
--- a/docs/功能测试-电池复投管理.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# 功能测试 - 电池复投管理
-
-> 模块:计划与生产 / 生产监控 / 电池复投管理 (Rework Management)
-> 路由:`/planning_production/produce/monitor/set_battery_rebatch`
-
-## 测试前置条件
-
-- 测试账号具备访问“电池复投管理”的菜单权限。
-- 准备至少 3 个可用于验证的电池条码,其中包含:
- - 允许复投的电池条码。
- - 不允许复投或不存在的电池条码。
- - 已激活和未激活状态各一条。
-- 后端 Workerman 服务可用,接口 `production_configuration/workerman/send` 可正常响应。
-
-## 测试任务列表
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 |
-|---:|---|---|---|
-| 1 | 页面入口 | 从菜单进入“电池复投管理”页面,或直接访问 `/planning_production/produce/monitor/set_battery_rebatch` | 页面正常打开,显示电池条码输入框、验证数据、重置、复投激活按钮和空表格 |
-| 2 | 单个电池验证 | 在电池条码输入框输入一条有效电池条码,点击“验证数据” | 表格展示该电池的批次、托盘、流水号、激活状态、档位、上一工序和当前工序 |
-| 3 | 多电池粘贴验证 | 在输入框输入多个条码,使用逗号、空格或换行分隔,点击“验证数据” | 系统可自动规范化输入并返回多行电池数据 |
-| 4 | 多电池弹窗输入 | 点击输入框右侧导入按钮,在弹窗中每行输入一个电池条码,点击“确定”后再点击“验证数据” | 输入框自动填入逗号分隔条码,表格展示对应验证数据 |
-| 5 | 空输入校验 | 清空电池条码,点击“验证数据” | 页面提示“请输入电池条码数据”,不发起有效验证 |
-| 6 | 重置功能 | 输入条码并验证出表格数据后,点击“重置” | 输入框、表格数据和已选行清空 |
-| 7 | 全部复投激活 | 验证出多条可复投电池数据,不勾选表格行,点击“复投激活”并确认 | 请求提交表格内全部电池条码,成功后提示复投激活操作成功 |
-| 8 | 选中行复投激活 | 验证出多条电池数据,勾选其中一部分,点击“复投激活”并确认 | 仅提交被勾选的电池条码,成功后提示复投激活操作成功 |
-| 9 | 未验证直接复投 | 输入电池条码但不点击“验证数据”,直接点击“复投激活” | 页面提示需要先验证电池数据,不提交 Workerman 复投请求 |
-| 10 | 复投取消 | 验证出表格数据,点击“复投激活”,在确认框点击取消 | 不提交复投请求,页面数据保持不变 |
-| 11 | 后端失败提示 | 使用后端会返回失败的电池数据执行复投 | 页面显示后端错误信息或“复投激活失败”提示 |
-| 12 | 国际化检查 | 切换中英文语言后重新进入页面 | 页面按钮、表格列和提示文案随语言切换显示 |
-
-## 回归关注点
-
-- 验证接口返回空数据时,表格应显示空态且页面不报错。
-- 表格行勾选后再重置,已选状态应同步清空。
-- 复投激活接口调用参数中的 `action` 应为 `set_battery_rebatch`,`battery_ids` 应与测试输入或勾选行一致。
diff --git a/docs/功能测试-电池曲线.md b/docs/功能测试-电池曲线.md
deleted file mode 100644
index 5f68996c..00000000
--- a/docs/功能测试-电池曲线.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# 功能测试 - 电池曲线
-
-> 模块:数据中台 / 基础追溯 / 电池曲线 (Battery Curve)
-> 路由:`/data_middleground/produce/traceability/curve`
-
-## 测试前置条件
-
-- 测试账号具备访问“电池曲线”的菜单权限。
-- 准备至少 1 个存在曲线记录的电池条码。
-- 后端接口 `planning_production/produce/traceability/batterytraceability`、`curveread`、`export` 可正常访问。
-
-## 测试任务列表
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 |
-|---:|---|---|---|
-| 1 | 页面入口 | 从菜单进入“电池曲线”,或直接访问路由 | 页面正常打开,显示电池条码输入框、查询、重置按钮、左侧记录区和右侧图表区 |
-| 2 | 有效条码查询 | 输入存在曲线记录的电池条码,点击查询 | 左侧展示批次、工序、上传时间记录,默认选中第一条记录 |
-| 3 | 曲线渲染 | 查询成功后查看右侧图表 | 图表显示电流、电压、容量三组数据,支持 tooltip、图例和图片保存 |
-| 4 | 记录切换 | 点击左侧不同曲线记录 | 右侧设备编码、电池通道和曲线数据随选中记录刷新 |
-| 5 | 图表缩放 | 在图表上使用鼠标滚轮或触控板缩放 | 曲线支持局部缩放,不影响页面布局 |
-| 6 | 整盘曲线 | 选中带有 URL 的记录,点击“查看整盘曲线” | 浏览器跳转或打开整盘曲线页面 |
-| 7 | 导出所有数据 | 选中记录后点击“导出所有数据” | 调用导出接口并触发文件下载或新窗口打开 |
-| 8 | 无数据查询 | 输入不存在曲线记录的条码并查询 | 左侧显示暂无曲线记录,右侧图表清空,页面不报错 |
-| 9 | 重置功能 | 查询后点击重置 | 输入框、记录列表、选中记录和图表数据清空 |
-| 10 | 国际化检查 | 切换中英文语言后重新进入页面 | 页面按钮、字段和图表标题随语言切换显示 |
-
-## 回归关注点
-
-- 曲线读取必须使用选中记录的 `id`。
-- 后端返回空数组时图表应清空,不应抛出异常。
-- 导出链接需要兼容相对路径和完整 URL。
diff --git a/docs/功能测试-电池详情报表.md b/docs/功能测试-电池详情报表.md
deleted file mode 100644
index 50f406fb..00000000
--- a/docs/功能测试-电池详情报表.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 功能测试 - 电池详情报表
-
-> 模块:数据中台 / 生产报表 / 电池详情报表 (Battery Detail Report)
-> 路由:`/data_middleground/produce/report/battery-detail`
-
-## 测试任务列表
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 |
-|---:|---|---|---|
-| 1 | 页面入口 | 进入电池详情报表页面 | 页面显示工艺流程、批次、工序、托盘、时间筛选项 |
-| 2 | 工艺选择 | 选择工艺流程 | 批次和工序下拉数据按工艺刷新 |
-| 3 | 批次必填校验 | 不选批次点击查询 | 页面提示请选择批次 |
-| 4 | 查询报表 | 选择批次和筛选条件后查询 | 表格按动态表头展示电池详情数据 |
-| 5 | 分页切换 | 查询出多页数据后切换分页 | 当前页数据刷新,总数正确 |
-| 6 | 导出任务 | 选择批次后点击导出并确认 | 创建导出任务成功并跳转任务页面 |
-| 7 | 重置功能 | 点击重置 | 筛选项、动态表头、表格和分页清空 |
-| 8 | 国际化检查 | 切换中英文语言 | 页面文案随语言切换 |
-
-## 回归关注点
-
-- 查询前必须先获取动态表头。
-- 导出任务 action 必须为 `download`。
-- 后端返回嵌套表头时需要展开为可展示列。
diff --git a/docs/功能测试-电池追溯.md b/docs/功能测试-电池追溯.md
deleted file mode 100644
index ac1e86c4..00000000
--- a/docs/功能测试-电池追溯.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# 功能测试 - 电池追溯
-
-> 模块:数据中台 / 基础追溯 / 电池追溯 (Battery Traceability)
-> 路由:`/data_middleground/produce/traceability/battery`
-
-## 测试前置条件
-
-- 测试账号具备访问“电池追溯”的菜单权限。
-- 准备至少 1 个存在工序过程数据的电池条码。
-- 准备 1 个已激活电池和 1 个 NG 且未激活电池,用于验证操作按钮。
-
-## 测试任务列表
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 |
-|---:|---|---|---|
-| 1 | 页面入口 | 进入“电池追溯”页面 | 页面显示电池条码输入框、查询、重置按钮和列表区域 |
-| 2 | 电池查询 | 输入有效电池条码并查询 | 表格展示批次、托盘、LOT、激活状态、GOOD/NG、等级、不良信息、当前工序 |
-| 3 | URL 参数查询 | 访问路由并携带 `?battery_id=xxx` | 页面自动按该电池条码查询 |
-| 4 | 打开电池详情 | 点击某行“电池详情” | 弹出全屏详情,左侧展示工序列表,右侧展示默认工序数据 |
-| 5 | 切换工序 | 在详情中点击不同工序 | 右侧工序数据按选中工序刷新 |
-| 6 | 工序数据搜索 | 在详情中输入项目名称关键字 | 工序数据表按项目名称过滤 |
-| 7 | 取消激活 | 对已激活电池点击取消激活并确认 | 调用取消激活接口,行状态更新为停止 |
-| 8 | 复投激活 | 对 NG 且未激活电池点击复投激活并确认 | 调用 Workerman 复投接口,成功后刷新该电池数据 |
-| 9 | 重置功能 | 查询后点击重置 | 电池条码、列表和分页状态清空 |
-| 10 | 国际化检查 | 切换中英文语言后重新进入页面 | 页面按钮、表格列和弹窗文案随语言切换显示 |
-
-## 回归关注点
-
-- 工序详情接口必须携带当前行的批次、电池条码、托盘、LOT 和工序信息。
-- 取消激活接口参数 `batterData` 必须是数组 JSON。
-- 复投激活必须发送 `set_battery_rebatch` action。
diff --git a/docs/功能测试-监控设置.md b/docs/功能测试-监控设置.md
deleted file mode 100644
index 5f855637..00000000
--- a/docs/功能测试-监控设置.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# 功能测试任务列表 - 监控设置
-
-> 路由:`/system_settings/system_monitoring/setting`
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 | 结果 |
-|---|---|---|---|---|
-| 1 | 页面入口 | 从菜单进入“监控设置”,或直接访问路由 | 页面正常打开,表格展示监控编码、名称、IP、端口、版本和预警阈值字段 | ☐ |
-| 2 | 条件查询 | 输入监控编码或监控名称后点击“查询” | 列表按条件刷新,分页回到第一页 | ☐ |
-| 3 | 重置查询 | 输入查询条件后点击“重置” | 查询条件清空,列表恢复默认数据 | ☐ |
-| 4 | 新增必填校验 | 点击“新增”,不填写编码、名称、IP 或端口直接确认 | 表单提示对应必填校验,不提交请求 | ☐ |
-| 5 | 新增监控配置 | 填写编码、名称、IP、端口、刷新间隔、CPU/磁盘/内存阈值和 Python 版本后确认 | 弹窗关闭,提示操作成功,列表出现新增记录 | ☐ |
-| 6 | 编辑监控配置 | 点击某条记录“编辑”,修改名称或阈值后确认 | 弹窗回显旧值,保存后列表展示新值 | ☐ |
-| 7 | 删除取消 | 点击“删除”后在确认框选择取消 | 数据不删除,列表保持不变 | ☐ |
-| 8 | 删除确认 | 点击“删除”后确认 | 提示操作成功,记录从列表移除,分页数量正确刷新 | ☐ |
-| 9 | 权限按钮 | 使用无新增/编辑/删除权限的账号进入页面 | 对应按钮不显示或不可操作 | ☐ |
diff --git a/docs/功能测试-设备保养日志.md b/docs/功能测试-设备保养日志.md
deleted file mode 100644
index 0d31d88e..00000000
--- a/docs/功能测试-设备保养日志.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# 设备保养日志功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备保养 / 设备保养日志`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击导出,系统可创建导出任务或返回成功提示。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备保养详情.md b/docs/功能测试-设备保养详情.md
deleted file mode 100644
index f9f991f8..00000000
--- a/docs/功能测试-设备保养详情.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# 设备保养详情功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备保养 / 设备保养详情`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击删除,确认后记录删除并刷新列表。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备保养项目.md b/docs/功能测试-设备保养项目.md
deleted file mode 100644
index 7021bbca..00000000
--- a/docs/功能测试-设备保养项目.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# 设备保养项目功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备保养 / 设备保养项目`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击删除,确认后记录删除并刷新列表。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备信息.md b/docs/功能测试-设备信息.md
deleted file mode 100644
index 027996b5..00000000
--- a/docs/功能测试-设备信息.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 设备信息功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备信息 / 设备信息`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击删除,确认后记录删除并刷新列表。
-- [ ] 如当前账号有导出权限,点击导出可创建导出任务。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备履历报表.md b/docs/功能测试-设备履历报表.md
deleted file mode 100644
index 923ba142..00000000
--- a/docs/功能测试-设备履历报表.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# 功能测试 - 设备履历报表
-
-> 模块:数据中台 / 生产报表 / 设备履历报表 (Equipment History Report)
-> 路由:`/data_middleground/produce/report/equipment-history`
-
-## 测试任务列表
-
-| 序号 | 测试项 | 操作步骤 | 预期结果 |
-|---:|---|---|---|
-| 1 | 页面入口 | 进入设备履历报表页面 | 页面显示设备编码、状态、时间范围筛选项和列表 |
-| 2 | 设备编码查询 | 输入有效设备编码并查询 | 表格展示设备履历记录 |
-| 3 | 状态筛选 | 选择运行/空闲/异常状态查询 | 表格仅展示匹配状态数据 |
-| 4 | 时间范围筛选 | 选择开始结束时间后查询 | 表格展示时间范围内履历 |
-| 5 | 分页切换 | 查询出多页数据后切换分页 | 当前页数据刷新,总数正确 |
-| 6 | 重置功能 | 点击重置 | 筛选项、表格和分页状态清空 |
-| 7 | 空数据 | 输入无匹配条件查询 | 显示空态,不出现脚本错误 |
-| 8 | 国际化检查 | 切换中英文语言 | 页面文案随语言切换 |
-
-## 回归关注点
-
-- 接口必须调用 `report/device/log`,method 为 `get.device.status.log`。
-- 时间范围需要拆分为 `start_time` 和 `end_time`。
diff --git a/docs/功能测试-设备损耗品寿命管理.md b/docs/功能测试-设备损耗品寿命管理.md
deleted file mode 100644
index 0c9f905a..00000000
--- a/docs/功能测试-设备损耗品寿命管理.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 设备损耗品寿命管理功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备损耗品 / 设备损耗品寿命管理`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击删除,确认后记录删除并刷新列表。
-- [ ] 点击导出,系统可创建导出任务或返回成功提示。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备损耗品更换日志.md b/docs/功能测试-设备损耗品更换日志.md
deleted file mode 100644
index 8ccb697f..00000000
--- a/docs/功能测试-设备损耗品更换日志.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 设备损耗品更换日志功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备损耗品 / 设备损耗品更换日志`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击删除,确认后记录删除并刷新列表。
-- [ ] 点击导出,系统可创建导出任务或返回成功提示。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备损耗品类别.md b/docs/功能测试-设备损耗品类别.md
deleted file mode 100644
index b7857642..00000000
--- a/docs/功能测试-设备损耗品类别.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 设备损耗品类别功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备损耗品 / 设备损耗品类别`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击删除,确认后记录删除并刷新列表。
-- [ ] 点击导出,系统可创建导出任务或返回成功提示。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备损耗品项目.md b/docs/功能测试-设备损耗品项目.md
deleted file mode 100644
index 7c4a0586..00000000
--- a/docs/功能测试-设备损耗品项目.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 设备损耗品项目功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备损耗品 / 设备损耗品项目`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击删除,确认后记录删除并刷新列表。
-- [ ] 点击导出,系统可创建导出任务或返回成功提示。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备点检日志.md b/docs/功能测试-设备点检日志.md
deleted file mode 100644
index 01f31b16..00000000
--- a/docs/功能测试-设备点检日志.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# 设备点检日志功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备点检 / 设备点检日志`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击导出,系统可创建导出任务或返回成功提示。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备点检记录.md b/docs/功能测试-设备点检记录.md
deleted file mode 100644
index 22a9d65f..00000000
--- a/docs/功能测试-设备点检记录.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# 设备点检记录功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备点检 / 设备点检记录`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备点检项目.md b/docs/功能测试-设备点检项目.md
deleted file mode 100644
index cd57df8a..00000000
--- a/docs/功能测试-设备点检项目.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# 设备点检项目功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备点检 / 设备点检项目`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击删除,确认后记录删除并刷新列表。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备类别.md b/docs/功能测试-设备类别.md
deleted file mode 100644
index 01eccaef..00000000
--- a/docs/功能测试-设备类别.md
+++ /dev/null
@@ -1,698 +0,0 @@
-# 设备类别功能测试流程文档
-
-> **测试对象**:设备管理 → 设备模型 → 设备类别(Equipment Category)
-> **迁移日期**:2026-06-02
-> **对应页面**:`src/views/equipment-management/equipment-model/equipment-category/index.vue`
-> **API 文件**:`src/api/equipment-management/equipment-category.js`
-> **路由路径**:`/device_management/equipment_model/equipment_category`(旧值暂留)
-> **i18n 前缀**:`page.equipment_management.equipment_model.equipment_category`
-
----
-
-## 一、测试环境配置
-
-| 配置项 | 要求 |
-|--------|------|
-| 浏览器 | Chrome 最新版、Edge 最新版(兼容 IE 11+) |
-| 屏幕分辨率 | ≥ 1920×1080 |
-| Node.js | ≥ 16.x |
-| 包管理器 | pnpm ≥ 7.x |
-| 后端服务 | 设备类别相关 API 正常运行(`device_management/equipment_model/equipment_category/*`) |
-| 测试账号 | 具有设备管理 → 设备类别菜单权限的账号(含 create/edit/delete 权限) |
-| 测试数据 | 准备至少 5 条测试用设备类别(编码唯一) |
-| 语言切换 | 先测中文(简体中文),再切到英文验证 i18n |
-| 权限分配 | 系统管理 → 菜单管理中确认设备类别按钮权限(新增、编辑、删除)已正确配置 |
-
----
-
-## 二、测试前置条件
-
-1. 后端服务(Webman)已启动,`device_management` 模块的 API 可正常访问
-2. 前端项目已执行 `pnpm install` 且 `pnpm dev` 正常启动,可访问登录页
-3. 使用具有「设备管理 → 设备类别」菜单权限的管理员账号登录
-4. 侧边栏菜单 **设备管理 → 设备模型** 下可见 **设备类别** 子菜单
-5. 浏览器控制台无 Vue 警告或 i18n key 缺失报错
-6. 确认 `src/locales/zh-chs.json` 和 `src/locales/en.json` 中存在 `page.equipment_management.equipment_model.equipment_category` 配置
-7. 数据库中设备类别表为空或仅有少量测试数据,便于验证
-
----
-
-## 三、功能测试用例
-
-### 3.1 页面加载与数据展示
-
-#### TC-EC-001:菜单导航与页面加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击侧边栏菜单「设备管理 → 设备模型 → 设备类别」 |
-| **预期结果** | 页面正常加载,URL 显示 `/device_management/equipment_model/equipment_category`;页面顶部显示搜索栏(设备类别编码、设备类别名称、查询、重置按钮);中部显示设备类别列表表格;底部分页组件显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-002:列表表格列头与数据展示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看设备类别列表的表头列与各行数据 |
-| **预期结果** | 表格列依次为:序号、设备类别编码、设备类别名称、备注、操作;操作列包含「编辑」「删除」两个按钮(带图标);当数据为空时显示空数据占位提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-003:工具栏按钮显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看表格上方的工具栏 |
-| **预期结果** | 显示蓝色「新增」按钮(含加号图标),右上角显示问号「帮助」按钮(点击跳转 `/help/equipment-category`) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-004:表格自适应高度
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 加载页面后查看表格高度 2. 缩小/放大浏览器窗口 3. 折叠/展开侧边栏 |
-| **预期结果** | 表格高度自动填满 d2-container 剩余空间,窗口变化时无空白或滚动条异常 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.2 搜索功能
-
-#### TC-EC-005:按编码精确搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「设备类别编码」输入框输入完整的类别编码(如 `EQ_CAT_001`) 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示编码匹配的数据行;分页总数更新为匹配条数;输入框右侧 X 按钮可清空内容 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-006:按编码模糊搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「设备类别编码」输入框输入编码的片段(如 `EQ_`) 2. 点击「查询」按钮 |
-| **预期结果** | 表格显示所有编码包含 `EQ_` 的数据行 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-007:按名称搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「设备类别名称」输入框输入关键字(如「自动化」) 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示名称包含关键字的设备类别 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-008:组合条件搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 同时输入「设备类别编码」和「设备类别名称」搜索条件 2. 点击「查询」按钮 |
-| **预期结果** | 表格显示同时满足两个条件的数据行(AND 关系) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-009:回车键触发搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在搜索输入框中输入关键字 2. 按下键盘回车键 |
-| **预期结果** | 等同于点击「查询」按钮,表格按搜索条件刷新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-010:重置搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入搜索条件并点击「查询」 2. 点击「重置」按钮 |
-| **预期结果** | 搜索输入框清空,表格恢复显示全部设备类别数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-011:搜索无结果
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入不存在的编码或名称 2. 点击「查询」 |
-| **预期结果** | 表格显示空数据占位提示,分页总数显示 0 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.3 分页功能
-
-#### TC-EC-012:分页默认显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 加载页面后查看分页组件 |
-| **预期结果** | 分页默认显示第 1 页,每页 10 条记录,总条数显示当前数据库设备类别总数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-013:切换每页条数
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在分页组件的「每页显示」下拉中切换为 20、50、100 2. 观察表格变化 |
-| **预期结果** | 表格按新条数加载数据,分页组件正确显示总页数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-014:翻页功能
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 准备至少 25 条测试数据 2. 点击「下一页」「上一页」「首页」「末页」按钮 3. 输入页码跳转 |
-| **预期结果** | 表格按页加载数据,翻页流畅无报错 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.4 新增设备类别
-
-#### TC-EC-015:打开新增弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击表格上方「新增」按钮 |
-| **预期结果** | 弹出新增设备类别对话框,标题显示"新增设备类别",包含设备类别编码、设备类别名称、备注三个表单项;「确定」「取消」按钮位于底部 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-016:新增表单必填校验
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写任何内容直接点击「确定」 |
-| **预期结果** | 设备类别编码、设备类别名称输入框下方显示红色校验提示"请输入设备类别编码"、"请输入设备类别名称" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-017:新增成功 - 正常数据
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入编码 `EQ_CAT_TEST_001` 3. 输入名称「测试设备类别001」 4. 输入备注「测试用」 5. 点击「确定」 |
-| **预期结果** | 弹框关闭,页面右上角显示绿色成功提示"操作成功";表格自动刷新并显示新增的设备类别行 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-018:新增成功 - 仅必填
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 仅填写编码和名称,备注留空 3. 点击「确定」 |
-| **预期结果** | 新增成功,备注字段允许为空 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-019:新增 - 编码长度校验
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在编码输入框输入超过 100 个字符 3. 失焦后观察 |
-| **预期结果** | 输入框下方显示校验提示"长度在 1 到 100 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-020:新增 - 编码重复
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入已存在的设备类别编码 3. 点击「确定」 |
-| **预期结果** | 提示后端返回的"编码已存在"等错误信息,新增失败 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-021:取消新增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写部分内容 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,表格数据无变化,无任何提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-022:新增 - 备注多行输入
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在备注框中输入多行文字(超过 2 行) 3. 观察文本框是否自动扩展 |
-| **预期结果** | 备注为 textarea 类型,输入多行内容后自动扩展(最少 2 行,最多 6 行) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.5 编辑设备类别
-
-#### TC-EC-023:打开编辑弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击某一设备类别行操作列的「编辑」按钮 |
-| **预期结果** | 弹出编辑设备类别对话框,标题显示"编辑设备类别",设备类别编码、设备类别名称、备注三个字段正确回填该行的数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-024:编辑成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改设备类别名称为"测试设备类别001-改" 3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格对应行的名称列更新为新值 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-025:编辑后清空必填项
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 清空设备类别名称输入框 3. 点击「确定」 |
-| **预期结果** | 设备类别名称下方显示红色校验提示,无法提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-026:取消编辑
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改部分字段 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,表格数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.6 删除设备类别
-
-#### TC-EC-027:删除确认弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击某一设备类别行操作列的「删除」按钮 |
-| **预期结果** | 弹出 Element UI 确认提示框,内容为"确定要删除该设备类别吗?",包含「确定」和「取消」按钮,图标为警告三角 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-028:删除成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「删除」按钮 2. 在确认框中点击「确定」 |
-| **预期结果** | 确认框关闭,提示"操作成功",该设备类别从列表中消失,分页总数减 1 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-029:取消删除
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「删除」按钮 2. 在确认框中点击「取消」 |
-| **预期结果** | 确认框关闭,设备类别数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-030:删除最后一页最后一条
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 翻到最后一页且只剩 1 条数据 2. 删除该数据 3. 观察分页跳转 |
-| **预期结果** | 删除成功后自动跳转到新的最后一页,无空白页 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.7 权限控制
-
-#### TC-EC-031:无新增权限 - 按钮隐藏
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录无新增权限(`/device_management/equipment_model/equipment_category/create`)的账号 2. 进入设备类别页面 |
-| **预期结果** | 工具栏「新增」按钮不显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-032:无编辑权限 - 按钮隐藏
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录无编辑权限(`/device_management/equipment_model/equipment_category/edit`)的账号 2. 进入设备类别页面 |
-| **预期结果** | 行操作列「编辑」按钮不显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-033:无删除权限 - 按钮隐藏
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录无删除权限(`/device_management/equipment_model/equipment_category/delete`)的账号 2. 进入设备类别页面 |
-| **预期结果** | 行操作列「删除」按钮不显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-034:完全无权限 - 仅可查看
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录仅有查看权限的账号 2. 进入设备类别页面 |
-| **预期结果** | 表格正常加载数据;工具栏无「新增」按钮;行操作列无「编辑」「删除」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.8 国际化(i18n)
-
-#### TC-EC-035:简体中文 - 页面显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换系统语言为简体中文 2. 进入设备类别页面 |
-| **预期结果** | 所有列头、按钮、表单标签、提示信息均显示中文("设备类别编码"、"设备类别名称"、"备注"、"操作"、"新增"、"编辑"、"删除"等) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-036:英文 - 页面显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换系统语言为 English 2. 进入设备类别页面 |
-| **预期结果** | 所有列头、按钮、表单标签、提示信息均显示英文("Equipment Category Code"、"Equipment Category Name"、"Remark"、"Actions"、"Add"、"Edit"、"Delete"等) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-037:英文 - 弹框显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击「新增」按钮 |
-| **预期结果** | 弹框标题显示"Add Equipment Category",表单标签显示"Equipment Category Code"、"Equipment Category Name"、"Remark";底部按钮显示"Confirm"、"Cancel" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-038:英文 - 删除确认
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击某行的「Delete」按钮 |
-| **预期结果** | 确认框内容显示"Are you sure to delete this equipment category?",按钮显示"Confirm"、"Cancel" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-039:语言切换实时响应
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在中文下打开新增弹框 2. 不关闭弹框,直接切换系统语言到英文 |
-| **预期结果** | 弹框内所有文字立即切换为英文,无需刷新页面 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.9 异常与边界场景
-
-#### TC-EC-040:网络异常 - 列表加载失败
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 停止后端服务 2. 刷新设备类别页面 |
-| **预期结果** | 页面显示 loading 结束后,弹出错误提示(如"请求失败"或"数据请求异常"),表格显示空数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-041:网络异常 - 新增失败
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 停止后端服务 3. 填写表单并点击「确定」 |
-| **预期结果** | 提示网络错误信息,弹框不关闭,确定按钮恢复可点击 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-042:特殊字符输入
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在设备类别名称中输入特殊字符(如 `!@#$%^&*()_+-=[]{}|;':",./<>?`) 3. 点击「确定」 |
-| **预期结果** | 后端允许特殊字符时新增成功;不允许时显示后端错误提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-043:超长备注输入
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在备注中输入超过 500 字符的文本 3. 点击「确定」 |
-| **预期结果** | textarea 自动扩展(最多 6 行出现滚动条),新增/编辑成功 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-044:备注包含换行符
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增/编辑弹框 2. 在备注中输入多行文字(含回车换行) 3. 提交后再次编辑查看 |
-| **预期结果** | 备注正确保存换行符,再次打开编辑时能正确显示多行内容 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-045:浏览器刷新页面
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在搜索栏输入条件后查询 2. 按 F5 或点击浏览器刷新按钮 |
-| **预期结果** | 页面重新加载,搜索条件清空,表格显示全部数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.10 UI 与交互细节
-
-#### TC-EC-047:搜索区 - 标签文本正确
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看搜索区的标签(label) |
-| **预期结果** | 显示"设备类别编码"、"设备类别名称";输入框 placeholder 显示"请输入设备类别编码"、"请输入设备类别名称" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-048:搜索区 - 按钮图标正确
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看搜索区的按钮 |
-| **预期结果** | 「查询」按钮为蓝色 primary 样式,左侧带放大镜图标;「重置」按钮为默认样式,左侧带刷新图标 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-049:操作列 - 按钮样式
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看行操作列 |
-| **预期结果** | 「编辑」按钮为蓝色文字带编辑图标;「删除」按钮为红色文字带删除图标;按钮间有一定间距;操作列固定在右侧 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-050:弹框 - 表单交互
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 观察表单布局 |
-| **预期结果** | 表单 label 宽度 110px;输入框占 90% 宽度;备注为 textarea,可自适应高度(2-6 行);所有表单项垂直排列;弹框宽度为 35% |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-051:弹框 - 确定按钮 loading
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写表单 3. 在网络较慢情况下点击「确定」 |
-| **预期结果** | 「确定」按钮显示 loading 状态,无法重复点击;接口返回后自动关闭弹框 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-052:空数据占位
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 清空设备类别表(或筛选不存在的条件) 2. 查看表格 |
-| **预期结果** | 表格区域显示 Element UI 默认的空数据占位("暂无数据" 或类似提示) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### 3.11 数据一致性
-
-#### TC-EC-053:新增后分页正确
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在有 10 条数据时(每页 10 条) 2. 新增 1 条数据 |
-| **预期结果** | 新增后分页总数变为 11,自动跳转到第 1 页并显示新数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-054:编辑后数据刷新
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 编辑某行数据并保存 2. 重新搜索该数据 |
-| **预期结果** | 搜索结果显示编辑后的最新数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-#### TC-EC-055:删除后数据不残留
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 删除某条数据 2. 重新搜索该编码或刷新页面 |
-| **预期结果** | 搜索结果显示无此数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-## 四、兼容性测试
-
-### TC-EC-056:Chrome 浏览器
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 使用 Chrome 最新版执行 TC-EC-001 ~ TC-EC-055 全部用例 |
-| **预期结果** | 全部通过 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-EC-057:Edge 浏览器
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 使用 Edge 最新版执行核心用例 TC-EC-001/015/023/027/035/036 |
-| **预期结果** | 全部通过 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-EC-058:不同分辨率适配
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换浏览器窗口分辨率为 1920×1080、1366×768 2. 验证页面布局 |
-| **预期结果** | 表格、分页、弹框等元素无错位,按钮可正常点击 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-## 五、回归测试
-
-### TC-EC-059:菜单切换不卡顿
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「设备类别」页面停留 5 秒 2. 切换到「设备管理」其他子页面 3. 再切回「设备类别」 |
-| **预期结果** | 页面切换流畅,无报错,数据正确加载 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-EC-060:浏览器标签页切换
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开「设备类别」页面 2. 切换到其他浏览器标签页 3. 30 秒后切回 |
-| **预期结果** | 页面数据无丢失,Token 未过期情况下正常显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-## 六、测试通过标准
-
-| 类别 | 描述 |
-|------|------|
-| ✅ 全部通过 | 全部测试用例均通过 |
-| ⚠️ 部分通过 | 个别非核心用例未通过,但不影响主要功能使用 |
-| ❌ 未通过 | 存在阻塞性缺陷(页面无法加载、核心 CRUD 失败、权限绕过等) |
-
----
-
-## 七、问题记录汇总
-
-| 问题编号 | 关联测试用例 | 问题描述 | 严重程度 | 处理状态 | 处理人 |
-|---------|------------|---------|---------|---------|-------|
-| | | | | | |
-| | | | | | |
-
----
-
-## 八、测试结论
-
-| 项目 | 内容 |
-|------|------|
-| **测试人员** | |
-| **测试日期** | |
-| **测试用例总数** | 60 |
-| **通过用例数** | |
-| **未通过用例数** | |
-| **遗留问题数** | |
-| **整体结论** | ⬜ 通过 ⬜ 有条件通过 ⬜ 未通过 |
-| **备注说明** | |
-
----
-
-> **文档维护说明**:本测试文档为设备类别功能独立测试文档。后续该功能代码变更(Bug 修复、新增功能、需求变更)时,需同步更新本测试文档并重新执行相关测试用例。
diff --git a/docs/功能测试-设备维修日志.md b/docs/功能测试-设备维修日志.md
deleted file mode 100644
index eb489300..00000000
--- a/docs/功能测试-设备维修日志.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 设备维修日志功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备维修 / 设备维修日志`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击删除,确认后记录删除并刷新列表。
-- [ ] 点击导出,系统可创建导出任务或返回成功提示。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-设备维修管理.md b/docs/功能测试-设备维修管理.md
deleted file mode 100644
index 8bd783c5..00000000
--- a/docs/功能测试-设备维修管理.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 设备维修管理功能测试任务列表
-
-- [ ] 进入 `设备模型 / 设备维修 / 设备维修管理`,页面正常加载,无控制台报错。
-- [ ] 点击查询,列表按分页加载数据,表格字段显示完整。
-- [ ] 输入关键字后点击查询,列表按条件刷新。
-- [ ] 点击重置,查询条件清空并重新加载列表。
-- [ ] 点击新增,填写表单并保存,保存成功后列表刷新。
-- [ ] 点击编辑,表单带出当前行数据,修改后保存成功。
-- [ ] 点击删除,确认后记录删除并刷新列表。
-- [ ] 点击导出,系统可创建导出任务或返回成功提示。
-- [ ] 分页切换页码和每页条数时,列表数据刷新正常。
diff --git a/docs/功能测试-鹰眼.md b/docs/功能测试-鹰眼.md
deleted file mode 100644
index e0f05ada..00000000
--- a/docs/功能测试-鹰眼.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# 鹰眼功能测试任务列表
-
-## 基础入口
-
-- [ ] 进入 `数据中台 / 相关性分析 / 鹰眼`,页面正常加载,无控制台报错。
-- [ ] 左侧分析条件区域显示生产批次、工序、NG 码三个筛选项和分析按钮。
-- [ ] 页面右侧显示分析详情区域,未查询时为空状态。
-
-## 查询条件
-
-- [ ] 选择生产批次后,工序下拉框自动加载该批次下的不良工序列。
-- [ ] 选择工序后,NG 码下拉框自动切换为该工序对应的不良代码。
-- [ ] 点击重置后,批次、工序、NG 码、相关性结果和图表全部清空。
-
-## 相关性分析
-
-- [ ] 未选择生产批次时点击分析,系统提示需要选择批次。
-- [ ] 未选择工序时点击分析,系统提示需要选择工序。
-- [ ] 选择有效批次、工序和 NG 码后点击分析,Pearson 相关性散点图正常渲染。
-- [ ] PCC 表格显示工序参数、样本量、相关系数、P 值和相关性判断。
-- [ ] 卡方表格显示工序参数、样本量、卡方值、P 值和相关性判断。
-- [ ] 有不能参与分析的数据列时,顶部折叠区域展示对应参数名称。
-
-## 图表与交互
-
-- [ ] 散点图鼠标悬停时显示参数名称、相关系数和 P 值。
-- [ ] P 值大于 0.05 的记录以蓝色相关状态显示。
-- [ ] P 值小于或等于 0.05 的记录以红色不相关状态显示。
-- [ ] 已选择 NG 码时点击表格中的相关性文字,弹出分析报告弹窗。
-- [ ] 分析报告弹窗内按分类展示折线分布图,关闭后再次打开能正常刷新。
-
-## 兼容性
-
-- [ ] 页面在 1366px 宽度下表格和图表不重叠。
-- [ ] 浏览器窗口缩放后图表能自动适配。
-- [ ] 切换不同批次再次分析,旧批次结果不会残留。
diff --git a/docs/功能测试流程-工艺流程.md b/docs/功能测试流程-工艺流程.md
deleted file mode 100644
index 27a3ea44..00000000
--- a/docs/功能测试流程-工艺流程.md
+++ /dev/null
@@ -1,140 +0,0 @@
-# 功能测试流程文档 ——【工艺流程】
-
-> 本文档为【工艺流程】功能补齐后的独立测试文档。测试人员请按以下流程逐步执行,对通过的用例在“通过”列打勾(`[x]`),未通过的用例在“问题记录”列描述具体现象。
-
-| 项目名称 | MES-UI(生产主数据 → 工艺模型 → 工艺流程) |
-| --- | --- |
-| 文档版本 | v1.0 |
-| 适用版本 | mes-ui 本次迁移版本 |
-| 编写日期 | 2026-06-22 |
-| 测试入口 | 菜单:生产主数据 → 工艺模型 → 工艺流程 |
-| 关联文件 | `src/views/production-master-data/process-model/process-routing/index.vue`、`src/views/production-master-data/process-model/process-routing-card/index.vue`、`src/api/production-master-data/process-routing-card.js`、`src/api/production-master-data/calculation-script.js` |
-
----
-
-## 一、测试环境配置要求
-
-| 项 | 要求 |
-| --- | --- |
-| 后台环境 | Webman 已部署 `production_configuration/technology_model/technology_flow`、`technology_flow_process`、`calculation_script` 相关接口 |
-| 前端环境 | 使用 Node 18.16.0,执行 `pnpm run serve` 启动 V2 项目 |
-| 登录账号 | 拥有工艺流程、流程卡、设定值、结果参数、温度补偿、计算脚本相关权限点 |
-| 数据准备 | 至少 1 个流程类别、1 个产品型号、多个工序单元;至少 1 个未绑定批次的工艺流程 |
-| 浏览器工具 | 打开 DevTools → Network 与 Console,便于核对接口参数和异常 |
-
----
-
-## 二、测试前置条件
-
-1. 已成功登录系统,侧边栏可进入 **生产主数据 → 工艺模型 → 工艺流程**。
-2. 工艺流程列表能正常加载,且存在可进入“设置工序”的流程。
-3. 测试账号拥有以下权限点:新增、编辑、删除、复制、设置工序、排序、设定值、结果参数、温度补偿、计算脚本、查看日志。
-4. 浏览器语言分别切换为简体中文 / English 时页面无 i18n key 缺失。
-
----
-
-## 三、测试用例
-
-### 3.1 工艺流程主列表
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.1.1 | 进入“工艺流程”菜单 | 列表加载成功,展示编码、名称、流程类别、产品、备注、创建人、创建时间、操作 | | [ ] | |
-| 3.1.2 | 按编码、名称、流程类别、产品分别查询 | 请求参数正确,列表按条件刷新 | | [ ] | |
-| 3.1.3 | 点击重置 | 查询条件清空,列表恢复第一页 | | [ ] | |
-| 3.1.4 | 新增工艺流程并保存 | 调用 `technology_flow/create`,保存成功后列表刷新 | | [ ] | |
-| 3.1.5 | 编辑工艺流程 | 表单回显正确,编码禁用,保存后列表更新 | | [ ] | |
-| 3.1.6 | 复制工艺流程 | 弹出确认框;确认后调用 `technology_flow/copy` 并刷新列表 | | [ ] | |
-| 3.1.7 | 删除未绑定批次流程 | 弹出确认框;确认后调用删除接口并刷新 | | [ ] | |
-| 3.1.8 | 删除已绑定批次流程 | 页面提示已绑定批次不可删除,不发删除请求 | | [ ] | |
-
-### 3.2 流程卡工序维护
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.2.1 | 点击列表行“设置工序” | 进入流程卡页面,展示工艺信息和工序明细 | | [ ] | |
-| 3.2.2 | 点击“新增”选择工序单元 | 自动生成工序编码/名称,并按工序单元编码自动设置通道检测 | | [ ] | |
-| 3.2.3 | 新增工序保存 | 调用 `technology_flow_process/create`,参数包含 `flow_id`、`workingsubclass_id`、`code`、`name`、`pin_check` | | [ ] | |
-| 3.2.4 | 编辑工序 | 工序单元、编码、名称禁用,通道检测可回显;保存调用 `edit` | | [ ] | |
-| 3.2.5 | 删除工序 | 调用 `technology_flow_process/delete`,参数包含 `id: []`、`flow_id` | | [ ] | |
-| 3.2.6 | 上移/下移工序 | 调用 `move_up` / `move_down`,排序刷新正确 | | [ ] | |
-| 3.2.7 | 已绑定批次流程 | 新增、删除、排序被限制或提示不可操作 | | [ ] | |
-
-### 3.3 设定值
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.3.1 | 点击有 `setting_plugin` 的工序“设定值” | 弹出设定值窗口,显示插件类型、工序编码和现有 JSON | | [ ] | |
-| 3.3.2 | 输入合法 JSON 并保存 | 调用 `technology_flow_process/set_setting`,`setting` 为 JSON 字符串 | | [ ] | |
-| 3.3.3 | 输入非法 JSON | 页面提示 JSON 格式不正确,不提交接口 | | [ ] | |
-
-### 3.4 结果参数
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.4.1 | 点击任一工序“结果参数” | 弹窗按当前 `flow_process_id` 调用 `get_optional_params_details` | | [ ] | |
-| 3.4.2 | 按名称/参数查询 | 请求包含 `process_id`、`name`、`code`,列表刷新 | | [ ] | |
-| 3.4.3 | 点击“添加结果参数” | 调用 `get_all_workingsubclass_params`,左侧显示全部参数,右侧显示已选参数 | | [ ] | |
-| 3.4.4 | 勾选参数并同步到右侧后提交 | 调用 `add_optional_params`,`optional_params` 为 JSON 字符串,列表刷新 | | [ ] | |
-| 3.4.5 | 未变更直接提交 | 页面提示请选择结果参数,不提交保存 | | [ ] | |
-
-### 3.5 温度补偿
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.5.1 | 对化成/分容类工序点击“温度补偿” | 打开抽屉,调用 `get_step` 和 `get_temperature_list` | | [ ] | |
-| 3.5.2 | 选择开始/结束工步 | 开始大于结束时出现提示 | | [ ] | |
-| 3.5.3 | 新增温度补偿行并保存 | 调用 `create_temperature`,包含 `process_id`、工步范围、`temp_data` | | [ ] | |
-| 3.5.4 | 输入非数字温度或补偿值 | 页面提示必须为数字,不提交 | | [ ] | |
-| 3.5.5 | 输入重复温度 | 页面提示重复温度,不提交 | | [ ] | |
-| 3.5.6 | 下载模板 | 调用 `get_temperature_template`,浏览器下载 xlsx 文件 | | [ ] | |
-| 3.5.7 | 导入含“温度 / 温度补偿值”列的 Excel | 数据追加到表格并按温度升序排列 | | [ ] | |
-
-### 3.6 计算脚本
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.6.1 | 点击工序“计算脚本” | 打开弹窗并调用 `calculation_script/all` | | [ ] | |
-| 3.6.2 | 新增计算脚本 | 必填编码、名称、接口、接口位置、脚本内容;保存调用 `create` | | [ ] | |
-| 3.6.3 | 编辑计算脚本 | 表单和脚本内容回显,保存调用 `edit` | | [ ] | |
-| 3.6.4 | 删除计算脚本 | 弹出确认框,确认后调用 `delete` 并刷新列表 | | [ ] | |
-| 3.6.5 | 脚本内容为空时保存 | 页面提示请输入脚本内容,不提交 | | [ ] | |
-
-### 3.7 日志、权限与异常
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.7.1 | 点击“查看日志” | 打开日志抽屉并展示 `technology_flow_operate_log` | | [ ] | |
-| 3.7.2 | 使用只读账号访问 | 新增/编辑/删除/排序/插件按钮按权限隐藏 | | [ ] | |
-| 3.7.3 | 切换英文 | 主列表、流程卡、结果参数、温度补偿、计算脚本文案显示英文 | | [ ] | |
-| 3.7.4 | 后端返回 500 或字段缺失 | 页面不白屏,Console 无未捕获异常 | | [ ] | |
-
----
-
-## 四、测试结果汇总
-
-| 用例总数 | 通过 | 失败 | 阻塞 | 通过率 |
-| --- | --- | --- | --- | --- |
-| | | | | |
-
----
-
-## 五、问题记录区
-
-| 编号 | 用例编号 | 复现步骤 | 实际结果 | 严重程度 | 处理人 | 状态 | 备注 |
-| --- | --- | --- | --- | --- | --- | --- | --- |
-| 1 | | | | | | | |
-| 2 | | | | | | | | |
-
----
-
-## 六、测试结论
-
-| 项目 | 结论 |
-| --- | --- |
-| 功能完整性 | ☐ 满足 ☐ 部分缺失 ☐ 不满足 |
-| 权限控制 | ☐ 正确 ☐ 存在漏洞 |
-| 国际化 | ☐ 完整 ☐ 部分缺失 ☐ 缺失 |
-| 是否可发布 | ☐ 是 ☐ 否(请说明阻塞问题) |
-
-测试人员签字:__________________ 日期:__________
diff --git a/docs/功能测试流程-异常不良管理.md b/docs/功能测试流程-异常不良管理.md
deleted file mode 100644
index 6c63d6e0..00000000
--- a/docs/功能测试流程-异常不良管理.md
+++ /dev/null
@@ -1,210 +0,0 @@
-# 功能测试流程文档 ——【异常不良管理】
-
-> 本文档为【异常不良管理】功能迁移后的独立测试文档。测试人员请按以下流程逐步执行,对通过的用例在"通过"列打勾(`[x]`),未通过的用例在"问题记录"列描述具体现象(包括错误截图编号、操作步骤、实际/预期差异等)。
-
-| 项目名称 | MES-UI(生产主数据 → 产品模型 → 异常不良管理) |
-| --- | --- |
-| 文档版本 | v1.0 |
-| 适用版本 | mes-ui 本次迁移版本 |
-| 编写日期 | 2026-06-02 |
-| 测试入口 | 菜单:生产主数据 → 产品模型 → 异常不良管理 |
-| 关联文件 | [主页面](file:///d:/code/mes/mes-ui/src/views/production-master-data/product-model/product-ng-info/index.vue) · [导入组件](file:///d:/code/mes/mes-ui/src/views/production-master-data/product-model/product-ng-info/components/ImportDialog/index.vue) · [API](file:///d:/code/mes/mes-ui/src/api/production-master-data/product-ng-info.js) · [路由](file:///d:/code/mes/mes-ui/src/router/modules/production-master-data.js) · [文件工具](file:///d:/code/mes/mes-ui/src/utils/file.js) |
-
----
-
-## 一、测试环境配置要求
-
-| 项 | 要求 |
-| --- | --- |
-| 后台环境 | Webman + 已部署 `production_configuration/product_model/product_ng_info/` 路由接口;数据库中已创建 `product_ng_info` 与 `device_category` 数据表 |
-| 前端环境 | `npm run serve` / `pnpm run serve` 启动 mes-ui 工程;浏览器推荐 Chrome 110+ |
-| 登录账号 | 拥有「生产主数据 / 异常不良管理」菜单访问权限,且分配以下权限点:
· `…/product_ng_info/create`(新增 / 导入)
· `…/product_ng_info/edit`(编辑)
· `…/product_ng_info/delete`(删除 / 批量删除)
· `…/product_ng_info/export`(导出) |
-| 网络要求 | 前后端网络互通;浏览器可访问 `VUE_APP_API` 环境变量对应域名 |
-| 数据准备 | · 至少 3 条设备类别(device_category)数据
· 至少 5 条异常不良类别记录
· 准备一份合法格式的 Excel 导入文件(含 3 行导入数据)和一份缺少列的非法文件 |
-| 浏览器工具 | 打开 DevTools(F12)→ Network 与 Console,便于抓取接口与异常 |
-| 第三方库 | `xlsx` 已安装(Excel 读写支持),确认 `node_modules/xlsx/` 目录存在 |
-
----
-
-## 二、测试前置条件
-
-1. 已成功登录系统,登录账号具备上述所有权限点。
-2. 侧边栏显示 **生产主数据 → 产品模型 → 异常不良管理** 菜单可点击进入。
-3. 浏览器语言切换为「简体中文」,界面文字全部为中文,无 `key is not defined` 或英文缺失。
-4. 列表默认展示至少 5 条记录(通过 `product_ng_info/list` 接口返回)。
-5. 浏览器缩放比例 100%;分辨率建议 1440×900 及以上。
-6. DevTools 关闭缓存(Network → Disable cache),确保加载最新前端资源。
-
----
-
-## 三、测试用例
-
-> **字段说明**:
-> - 设备类别 `device_category_id`:必选,从设备类别 API 动态加载
-> - 类别 `type`:必选,下拉值「异常(ERR)/不良(NG)」
-> - 异常不良编码 `number`:必填,长度 1~100
-> - 异常不良名称 `explain`:必填,长度 1~100
-> - 备注 `note`:选填,多行文本
-> - 列表展示字段:复选框 / 设备类别 / 异常不良类别 / 异常不良编码 / 异常不良名称 / 备注 / 操作
-
-### 3.1 列表展示与加载
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.1.1 | 进入「异常不良管理」菜单 | 列表正常加载,无 JS 报错;表头依次为:复选框、设备类别、异常不良类别、异常不良编码、异常不良名称、备注、操作 | | [ ] | |
-| 3.1.2 | 观察列表加载过程 | 列表加载期间显示 loading 遮罩动画,加载完成后消失 | | [ ] | |
-| 3.1.3 | 列表为空时(搜索条件无匹配结果) | 表格区域显示空状态占位(如"暂无数据"),无 JavaScript 报错 | | [ ] | |
-| 3.1.4 | 分页组件:跳转到第 2 页 | 请求参数 `page_no=2` 正确,数据刷新 | | [ ] | |
-| 3.1.5 | 修改每页条数(如从 10 改为 20) | `page_size=20`,列表重载 | | [ ] | |
-| 3.1.6 | 列表行内操作列固定在右侧,横向滚动查看 | 操作列不随滚动条消失,固定可见 | | [ ] | |
-
-### 3.2 搜索功能
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.2.1 | 点击「设备类别」下拉框 → 从列表中选择一项 → 点击「查询」 | 列表仅展示所选设备类别的记录 | | [ ] | |
-| 3.2.2 | 在「查询类型」下拉框中选择「异常」→ 点击「查询」 | 列表仅展示 `type=ERR` 的记录 | | [ ] | |
-| 3.2.3 | 在「查询类型」下拉框中选择「不良」→ 点击「查询」 | 列表仅展示 `type=NG` 的记录 | | [ ] | |
-| 3.2.4 | 在「异常不良编码」输入框输入关键字 → 点击「查询」 | 列表仅展示编码包含该关键字的记录 | | [ ] | |
-| 3.2.5 | 在「异常不良名称」输入框输入关键字 → 点击「查询」 | 列表仅展示名称包含该关键字的记录 | | [ ] | |
-| 3.2.6 | 设备类别 + 类型 + 编码同时填写 → 点击「查询」 | 列表为三条件 AND 过滤结果 | | [ ] | |
-| 3.2.7 | 输入查询条件后点击「重置」 | 所有输入框、下拉框恢复初始状态,列表恢复为全量数据 | | [ ] | |
-| 3.2.8 | 在搜索输入框中按回车键 | 等同于点击「查询」,触发列表刷新 | | [ ] | |
-| 3.2.9 | 设备类别下拉框首次展开时(即 focus 事件) | 自动调用 `/device_category/all` 加载选项;未展开时不再重复请求 | | [ ] | |
-
-### 3.3 新增
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.3.1 | 点击工具栏「新增」按钮 | 弹出标题为「新增异常不良类别」的对话框,表单为空 | | [ ] | |
-| 3.3.2 | 新增弹框打开时,设备类别下拉框自动加载可选项 | 设备类别下拉列表有数据,与搜索时的下拉来源一致 | | [ ] | |
-| 3.3.3 | 不填任何字段,点击「确定」 | 表单校验:设备类别、类别、编码、名称四个字段下方均红字提示必填 | | [ ] | |
-| 3.3.4 | 仅选择设备类别与类别,不填编码 → 点击「确定」 | 仅编码字段提示必填;名称字段提示必填 | | [ ] | |
-| 3.3.5 | 编码输入 101 字符 → 点击「确定」 | 编码字段下方提示「长度在1到100个字符」 | | [ ] | |
-| 3.3.6 | 名称输入 101 字符 → 点击「确定」 | 名称字段下方提示「长度在1到100个字符」 | | [ ] | |
-| 3.3.7 | 正常填写:设备类别=任意、类别=异常、编码=ERR-01、名称=设备宕机、备注=生产设备意外停机 → 点击「确定」 | 弹出"操作成功"提示,对话框自动关闭,列表自动刷新并出现该条记录 | | [ ] | |
-| 3.3.8 | 新增弹框点击「取消」或右上角 × | 对话框关闭,列表未新增任何记录 | | [ ] | |
-| 3.3.9 | 使用无 `product_ng_info/create` 权限的账号访问 | 工具栏不显示「新增」按钮 | | [ ] | |
-| 3.3.10 | 后端返回「编码已存在」业务错误 | 页面友好提示错误原因,弹框不关闭(可修正后重试) | | [ ] | |
-
-### 3.4 编辑
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.4.1 | 列表行点击「编辑」 | 弹出标题为「编辑异常不良类别」的对话框,表单字段回显该行当前数据 | | [ ] | |
-| 3.4.2 | 清空编码后「确定」 | 提示编码必填 | | [ ] | |
-| 3.4.3 | 修改名称为新值,备注保留为空 → 「确定」 | 操作成功,列表对应行名称更新,备注为空 | | [ ] | |
-| 3.4.4 | 修改编码(与已有数据重复)→ 「确定」 | 后端返回重复提示,页面友好显示不崩溃 | | [ ] | |
-| 3.4.5 | 编辑对话中点击「取消」 | 对话框关闭,列表数据未变化 | | [ ] | |
-| 3.4.6 | 无 `product_ng_info/edit` 权限的账号 | 行内不显示「编辑」按钮 | | [ ] | |
-| 3.4.7 | 两个标签页同时打开同一条编辑 → A 保存后 B 再次保存 | 后端返回最新数据的验证结果,不产生脏写 | | [ ] | |
-
-### 3.5 删除(行内删除)
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.5.1 | 列表行点击「删除」 | 弹出确认框,提示「确定要执行该操作吗?」 | | [ ] | |
-| 3.5.2 | 确认框点击「取消」 | 关闭确认框,数据未删除 | | [ ] | |
-| 3.5.3 | 确认框点击「确定」 | 操作成功,列表自动移除该记录 | | [ ] | |
-| 3.5.4 | 删除最后一页唯一一条数据 | 列表自动回退到上一页(或空状态),不出现空白页 | | [ ] | |
-| 3.5.5 | 删除已被其他业务引用的记录 | 后端返回业务级错误提示,数据保留,页面不崩溃 | | [ ] | |
-| 3.5.6 | 无 `product_ng_info/delete` 权限的账号 | 行内不显示「删除」按钮 | | [ ] | |
-| 3.5.7 | 网络断开时点击「删除」 | 提示网络异常,数据未被误删 | | [ ] | |
-
-### 3.6 批量删除
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.6.1 | 不勾选任何复选框,点击「批量删除」 | 提示"请先选择数据" | | [ ] | |
-| 3.6.2 | 勾选 2~3 行记录 → 点击「批量删除」 | 弹出确认框「确定要删除所选异常不良类别吗?」 | | [ ] | |
-| 3.6.3 | 确认框点击「确定」 | 选中的记录全部从列表消失,操作成功提示 | | [ ] | |
-| 3.6.4 | 确认框点击「取消」 | 数据保留,勾选状态保留 | | [ ] | |
-| 3.6.5 | 选中的行中包含已被引用的数据 | 后端返回针对性的业务错误提示,未删除任何数据 | | [ ] | |
-| 3.6.6 | 勾选全选(表头复选框)→ 批量删除 | 所有可见页数据被选中并删除 | | [ ] | |
-
-### 3.7 Excel 导入
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.7.1 | 点击工具栏「导入」按钮 | 弹出标题为「导入异常不良数据」的对话框,上方显示黄色警告提示 | | [ ] | |
-| 3.7.2 | 点击「下载模板」按钮 | 浏览器下载 Excel 文件(文件名为「异常不良数据导入模版.xlsx」),内容包含表头 | | [ ] | |
-| 3.7.3 | 点击「选择文件」→ 选择非 Excel 文件(如 .txt) | 提示"上传文件格式错误" | | [ ] | |
-| 3.7.4 | 点击「选择文件」→ 选择列缺失的 Excel(缺少"异常不良编码"列) | 提示"文件列缺失: 异常不良编码" | | [ ] | |
-| 3.7.5 | 选择合法 Excel 文件(含 3 行数据) | 预览表格展示 3 行数据,列与 Excel 内容一致 | | [ ] | |
-| 3.7.6 | 选择合法 Excel 后,再次选择另一个文件 | 上一个文件被替换,预览表格刷新为新文件数据 | | [ ] | |
-| 3.7.7 | 预览数据无误后点击「确定」 | 提示"操作成功",弹框关闭,列表刷新,新数据出现在列表中 | | [ ] | |
-| 3.7.8 | 未选择文件(预览表格为空)点击「确定」 | 提示"请先导入数据" | | [ ] | |
-| 3.7.9 | 导入过程中点击「取消」或关闭弹框 | 操作中断,已读取的预览数据被清空 | | [ ] | |
-| 3.7.10 | 无 `product_ng_info/create` 权限的账号 | 工具栏不显示「导入」按钮 | | [ ] | |
-| 3.7.11 | 导入的 Excel 中设备类别名称在后端无法匹配 | 后端返回相应错误提示,列表不新增 | | [ ] | |
-
-### 3.8 Excel 导出
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.8.1 | 点击工具栏「导出」按钮 | 弹出确认框「确定要导出当前查询结果吗?」 | | [ ] | |
-| 3.8.2 | 确认框点击「取消」 | 提示"操作已取消",未触发任何请求 | | [ ] | |
-| 3.8.3 | 确认框点击「确定」 | 提示"创建导出任务成功",自动跳转至任务管理页面 | | [ ] | |
-| 3.8.4 | 在查询条件中筛选后再点击「导出」 | 后端收到的请求包含当前搜索条件 `device_category_id` / `type` / `number` / `explain` | | [ ] | |
-| 3.8.5 | 无 `product_ng_info/export` 权限的账号 | 工具栏不显示「导出」按钮 | | [ ] | |
-
-### 3.9 权限与国际化
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.9.1 | 切换为仅有「查询」权限的账号 | 仅能查看列表与查询,无新增/编辑/删除/导入/导出按钮 | | [ ] | |
-| 3.9.2 | 切换为中文环境 → 英文环境 → 刷新页面 | 表头、按钮、弹框标题、验证提示语全部为英文 | | [ ] | |
-| 3.9.3 | 中文下打开新增弹框 → 切换至英文 | 弹框标题、表单 label 立即切换为英文(无需关闭弹框) | | [ ] | |
-| 3.9.4 | 英文环境下切换回中文 | 所有文案恢复中文 | | [ ] | |
-| 3.9.5 | 英文下执行新增/编辑/导入功能,成功/失败提示 | 提示语为英文,含义正确 | | [ ] | |
-
-### 3.10 异常与边界
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.10.1 | 后端 `/list` 接口返回 500 错误 | 列表显示空状态或错误提示用 Message 弹窗展示,页面不白屏 | | [ ] | |
-| 3.10.2 | 后端返回字段缺失(如某行缺少 `device_category`) | 缺失字段列显示为空,不抛 JS 异常 | | [ ] | |
-| 3.10.3 | 备注字段输入 5000 字符并保存 | 提交成功,列表备注列可滚动展示(建议使用省略号截断) | | [ ] | |
-| 3.10.4 | 新增/编辑弹框打开后按 ESC 键 | 弹框关闭,表单状态被重置 | | [ ] | |
-| 3.10.5 | 列表横向宽度超过浏览器视口 | 操作列固定在右侧,表格支持横向滚动 | | [ ] | |
-| 3.10.6 | DevTools Console 全程监控 | 无 `Vue warn`、无未捕获 Promise 异常、无 i18n key 缺失警告 | | [ ] | |
-| 3.10.7 | 快速连续点击「新增」→ 「确定」 | 提交按钮 loading 状态阻止重复提交 | | [ ] | |
-| 3.10.8 | 设备类别 API 请求失败时展开搜索下拉 | 下拉框为空,页面不崩溃;重试正常 | | [ ] | |
-
----
-
-## 四、测试结果汇总
-
-| 用例总数 | 通过 | 失败 | 阻塞 | 通过率 |
-| --- | --- | --- | --- | --- |
-| | | | | |
-
----
-
-## 五、问题记录区
-
-| 编号 | 用例编号 | 复现步骤 | 实际结果 | 严重程度 | 处理人 | 状态 | 备注 |
-| --- | --- | --- | --- | --- | --- | --- | --- |
-| 1 | | | | | | | |
-| 2 | | | | | | | |
-| 3 | | | | | | | |
-| 4 | | | | | | | |
-| 5 | | | | | | | |
-
----
-
-## 六、测试结论
-
-| 项目 | 结论 |
-| --- | --- |
-| 功能完整性 | ☐ 满足 ☐ 部分缺失 ☐ 不满足 |
-| 性能表现 | ☐ 良好 ☐ 一般 ☐ 差 |
-| 权限控制 | ☐ 正确 ☐ 存在漏洞 |
-| 国际化 | ☐ 完整 ☐ 部分缺失 ☐ 缺失 |
-| 导入导出 | ☐ 正常 ☐ 部分异常 ☐ 不可用 |
-| 是否可发布 | ☐ 是 ☐ 否(请说明阻塞问题) |
-
-测试人员签字:__________________ 日期:__________
-
----
-*本测试流程文档为【异常不良管理】功能迁移版本专用,请独立归档保存。*
diff --git a/docs/功能测试流程-计量单位.md b/docs/功能测试流程-计量单位.md
deleted file mode 100644
index fac9c6ae..00000000
--- a/docs/功能测试流程-计量单位.md
+++ /dev/null
@@ -1,153 +0,0 @@
-# 功能测试流程文档 ——【计量单位】
-
-> 本文档为【计量单位】功能迁移后的独立测试文档。测试人员请按以下流程逐步执行,对通过的用例在"通过"列打勾(`[x]`),未通过的用例在"问题记录"列描述具体现象(包括错误截图编号、操作步骤、实际/预期差异等)。
-
-| 项目名称 | MES-UI(生产主数据 → 物料模型 → 计量单位) |
-| --- | --- |
-| 文档版本 | v1.0 |
-| 适用版本 | mes-ui 本次迁移版本 |
-| 编写日期 | 2026-06-02 |
-| 测试入口 | 菜单:生产主数据 → 物料模型 → 计量单位 |
-| 关联文件 | [`src/views/production-master-data/material-model/material-unit/index.vue`](file:///d:/code/mes/mes-ui/src/views/production-master-data/material-model/material-unit/index.vue) [`src/api/production-master-data/material-unit.js`](file:///d:/code/mes/mes-ui/src/api/production-master-data/material-unit.js) [`src/router/modules/production-master-data.js`](file:///d:/code/mes/mes-ui/src/router/modules/production-master-data.js) |
-
----
-
-## 一、测试环境配置要求
-
-| 项 | 要求 |
-| --- | --- |
-| 后台环境 | Webman + 已部署 `production_configuration/matetial_model/unit` 路由接口;数据库中存在 `unit` 数据表 |
-| 前端环境 | `npm run serve` 启动 mes-ui 工程;浏览器推荐 Chrome 110+ |
-| 登录账号 | 拥有 `生产主数据 / 计量单位` 菜单访问权限,且分配以下权限点:
· `…/unit/create`(新增)
· `…/unit/edit`(编辑)
· `…/unit/delete`(删除) |
-| 网络要求 | 前后端网络互通;浏览器可访问 `VUE_APP_API` 域名 |
-| 数据准备 | 至少 1 条已存在的单位数据;至少 1 个物料已引用本表(用于验证删除联动提示) |
-| 浏览器工具 | 打开 DevTools(F12)→ Network 与 Console,方便抓取接口与异常 |
-
----
-
-## 二、测试前置条件
-
-1. 已成功登录系统,且侧边栏显示 **生产主数据 → 物料模型 → 计量单位** 菜单。
-2. 浏览器语言分别切换为「简体中文 / English」时,界面文字均能正确翻译,无 `key is not defined` / 英文缺失等情况。
-3. 列表默认展示接口 `production_configuration/matetial_model/unit/list` 返回的记录。
-4. 浏览器缩放比例为 100%;分辨率建议 1440×900 及以上。
-5. DevTools 关闭缓存(Network → Disable cache),避免旧 JS 资源影响测试。
-
----
-
-## 三、测试用例
-
-> **字段说明(数据库与表单共用)**:
-> - 编码 `code`:必填,长度 1~100,文本
-> - 名称 `name`:必填,长度 1~100,文本
-> - 备注 `remark`:选填,文本域(多行)
-> - 列表展示字段:序号 / 编码 / 名称 / 备注 / 创建时间 / 操作
-
-### 3.1 列表与搜索
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.1.1 | 进入"计量单位"菜单 | 列表正常加载,无报错;表头依次为:序号、单位编码、单位名称、备注、创建时间、操作 | | [ ] | |
-| 3.1.2 | 在"单位编码"输入框输入关键字 → 点击「查询」 | 列表仅展示编码包含该关键字的记录 | | [ ] | |
-| 3.1.3 | 在"单位名称"输入框输入关键字 → 点击「查询」 | 列表仅展示名称包含该关键字的记录 | | [ ] | |
-| 3.1.4 | 编码 + 名称同时输入关键字 → 点击「查询」 | 列表为两条件 AND 过滤结果 | | [ ] | |
-| 3.1.5 | 输入查询条件后点击「重置」 | 输入框清空,列表恢复为全量数据 | | [ ] | |
-| 3.1.6 | 在搜索输入框按回车键 | 等同于点击「查询」,触发列表刷新 | | [ ] | |
-| 3.1.7 | 列表分页:跳转到第 2 页 / 修改每页条数 | 列表请求参数 `page_no` / `page_size` 正确变化,数据正常刷新 | | [ ] | |
-| 3.1.8 | 列表为空时(无数据) | 显示空状态占位(如"暂无数据"),不报错 | | [ ] | |
-| 3.1.9 | 列表加载中 | 表格区域显示 loading 遮罩 | | [ ] | |
-| 3.1.10 | 切换浏览器语言为 English 后刷新 | 表头、操作按钮、占位文字均显示英文 | | [ ] | |
-
-### 3.2 新增
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.2.1 | 点击工具栏「新增」按钮 | 弹出标题为「新增单位」的对话框,显示空表单 | | [ ] | |
-| 3.2.2 | 不填任何字段,点击「确定」 | 触发表单校验:「单位编码」「单位名称」下方红字提示必填 | | [ ] | |
-| 3.2.3 | 仅填写编码(不填名称),点击「确定」 | 仅名称字段提示必填 | | [ ] | |
-| 3.2.4 | 输入 101 字符的编码,点击「确定」 | 提示「长度在 1 到 100 个字符」 | | [ ] | |
-| 3.2.5 | 正常填写:编码 `PCS`、名称 `个`、备注 `基本计数单位` → 点击「确定」 | 弹出"操作成功"提示,对话框自动关闭,列表自动刷新并出现该条记录 | | [ ] | |
-| 3.2.6 | 必填项后存在前后空格时点击「确定」 | 提交数据带空格(视业务策略决定是否 trim),列表正常展示 | | [ ] | |
-| 3.2.7 | 新增弹框点击「取消」 | 对话框关闭,未提交任何数据 | | [ ] | |
-| 3.2.8 | 新增弹框点击右上角 × | 对话框关闭,未提交任何数据 | | [ ] | |
-| 3.2.9 | 在无 `unit/create` 权限的账号下访问 | 工具栏不显示「新增」按钮 | | [ ] | |
-| 3.2.10 | 后端返回 `code 已存在` 错误 | 页面提示后端错误信息(如 `code 重复`),不崩溃 | | [ ] | |
-
-### 3.3 编辑
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.3.1 | 在列表行点击「编辑」 | 弹出标题为「编辑单位」的对话框,且表单字段回显当前行数据 | | [ ] | |
-| 3.3.2 | 清空编码,点击「确定」 | 提示编码必填 | | [ ] | |
-| 3.3.3 | 修改名称为新值,备注保留为空,点击「确定」 | 提示操作成功,列表对应行的名称更新 | | [ ] | |
-| 3.3.4 | 修改编码(与已有数据重复),点击「确定」 | 后端返回重复提示,页面友好显示 | | [ ] | |
-| 3.3.5 | 编辑过程中点击「取消」 | 对话框关闭,原数据未发生变化 | | [ ] | |
-| 3.3.6 | 无 `unit/edit` 权限的账号 | 行内不显示「编辑」按钮 | | [ ] | |
-| 3.3.7 | 同时打开两个浏览器标签 A、B,均进入编辑 | B 保存后 A 再次保存时数据为 B 已提交后的最新值(避免脏写) | | [ ] | |
-
-### 3.4 删除
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.4.1 | 在列表行点击「删除」 | 弹出确认框,提示「确定要执行该操作吗?」 | | [ ] | |
-| 3.4.2 | 确认框点击「取消」 | 关闭确认框,未删除 | | [ ] | |
-| 3.4.3 | 确认框点击「确定」 | 提示操作成功,列表自动移除该记录 | | [ ] | |
-| 3.4.4 | 删除被物料引用的单位 | 后端返回业务级提示,页面正确展示且不崩溃 | | [ ] | |
-| 3.4.5 | 删除最后一页唯一一条记录后 | 列表自动回退到上一页(或显示空状态),无空白页 | | [ ] | |
-| 3.4.6 | 无 `unit/delete` 权限的账号 | 行内不显示「删除」按钮 | | [ ] | |
-| 3.4.7 | 网络断开时点击「删除」 | 提示网络异常,未误删数据 | | [ ] | |
-
-### 3.5 权限与国际化
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.5.1 | 切换为仅有「查询」权限的账号 | 仅能查看列表与查询,无新增/编辑/删除按钮 | | [ ] | |
-| 3.5.2 | 切换语言为 English,刷新页面 | 表头、按钮、弹框标题、提示语全部为英文 | | [ ] | |
-| 3.5.3 | 在中文下打开新增 → 切换为英文 | 弹框标题、表单 label 立即切换为英文(无需关闭弹框) | | [ ] | |
-| 3.5.4 | 切换语言后,校验提示(如"长度在 1 到 100 个字符") | 同步显示对应语言 | | [ ] | |
-
-### 3.6 异常与边界
-
-| 用例编号 | 操作步骤 | 预期结果 | 实际结果 | 通过 | 问题记录 |
-| --- | --- | --- | --- | --- | --- |
-| 3.6.1 | 后端返回 500 错误 | 列表显示空状态或错误提示,不白屏 | | [ ] | |
-| 3.6.2 | 后端返回字段缺失 | 缺失字段列显示为空,不抛 JS 异常 | | [ ] | |
-| 3.6.3 | 备注字段输入 5000 字符 | 提交成功,列表中可滚动展示(可截断) | | [ ] | |
-| 3.6.4 | 在表单输入过程中按 ESC | 弹框关闭,表单状态重置 | | [ ] | |
-| 3.6.5 | 列表行内操作按钮溢出 | 操作列固定在右侧且可滚动查看 | | [ ] | |
-| 3.6.6 | DevTools Console 检查 | 全程无 `Vue warn`、未捕获 Promise 异常、key 缺失警告 | | [ ] | |
-
----
-
-## 四、测试结果汇总
-
-| 用例总数 | 通过 | 失败 | 阻塞 | 通过率 |
-| --- | --- | --- | --- | --- |
-| | | | | |
-
----
-
-## 五、问题记录区
-
-| 编号 | 用例编号 | 复现步骤 | 实际结果 | 严重程度 | 处理人 | 状态 | 备注 |
-| --- | --- | --- | --- | --- | --- | --- | --- |
-| 1 | | | | | | | |
-| 2 | | | | | | | |
-| 3 | | | | | | | |
-
----
-
-## 六、测试结论
-
-| 项目 | 结论 |
-| --- | --- |
-| 功能完整性 | ☐ 满足 ☐ 部分缺失 ☐ 不满足 |
-| 性能表现 | ☐ 良好 ☐ 一般 ☐ 差 |
-| 权限控制 | ☐ 正确 ☐ 存在漏洞 |
-| 国际化 | ☐ 完整 ☐ 部分缺失 ☐ 缺失 |
-| 是否可发布 | ☐ 是 ☐ 否(请说明阻塞问题) |
-
-测试人员签字:__________________ 日期:__________
-
----
-*本测试流程文档为【计量单位】功能迁移版本专用,请独立归档保存。*
diff --git a/docs/功能测试流程文档.md b/docs/功能测试流程文档.md
deleted file mode 100644
index eb148e4a..00000000
--- a/docs/功能测试流程文档.md
+++ /dev/null
@@ -1,3792 +0,0 @@
-# 功能测试流程文档
-
-> **累积追加模式**:每次完成功能迁移后,将新功能的测试内容追加至本文档末尾。
-> 测试人员按章节执行,通过项打 ✅,未通过项记录具体问题。
-
----
-
-## 测试环境配置
-
-| 配置项 | 要求 |
-|--------|------|
-| 浏览器 | Chrome 最新版、Edge 最新版 |
-| 屏幕分辨率 | ≥ 1920×1080 |
-| 后端服务 | 测试环境 API 正常运行 |
-| 测试账号 | 具有系统管理员权限(含用户管理、角色管理菜单权限) |
-| 语言 | 先测中文,再切换到英文验证 i18n |
-
----
-
-## 测试前置条件
-
-1. 后端 API 服务已启动并正常运行
-2. 前端项目 `pnpm dev` 正常启动,可访问登录页
-3. 使用管理员账号登录系统
-4. 侧边栏菜单 **系统设置 → 用户管理** 下可见 **角色** 和 **用户** 两个子菜单
-
----
-
----
-
-# 一、角色管理功能测试
-
-> **迁移日期**:2026-05-28
-> **对应页面**:`src/views/system-administration/user-management/role/index.vue`
-> **API 文件**:`src/api/system-administration/role.js`
-> **路由路径**:`/system_settings/user_management/role`
-
-## 1.1 页面加载与数据展示
-
-### TC-ROLE-001:角色列表正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击菜单「系统设置 → 用户管理 → 角色」 |
-| **预期结果** | 页面正常加载,显示角色列表表格,包含序号、角色名称、状态、描述、操作列;底部分页组件显示总条数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-002:状态列显示正确
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看角色列表中各行的状态列 |
-| **预期结果** | 状态为 1 时显示绿色 ✅ 图标 + "启用" 文字;状态为 0 时显示灰色 ❌ 图标 + "禁用" 文字 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-003:搜索功能
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在角色名称输入框输入关键字 2. 选择状态下拉为"启用" 3. 点击「查询」按钮 |
-| **预期结果** | 表格数据按搜索条件过滤,仅显示匹配的角色 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-004:重置搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入搜索条件并查询 2. 点击「重置」按钮 |
-| **预期结果** | 搜索条件清空,表格恢复显示全部数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-005:分页功能
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换每页显示条数 2. 点击下一页/上一页 3. 输入页码跳转 |
-| **预期结果** | 分页切换正常,表格数据按分页加载,总条数正确显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 1.2 新增角色
-
-### TC-ROLE-006:打开新增弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击表格上方工具栏「新增」按钮 |
-| **预期结果** | 弹出新增角色弹框,标题显示"新增角色",表单为空(名称、描述为空,状态默认"启用") |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-007:新增表单校验
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写任何内容直接点击「确定」 |
-| **预期结果** | 角色名称输入框下方显示红色校验提示"请输入角色名称" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-008:新增角色成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入角色名称(如"测试角色001")3. 输入描述 4. 选择状态为"启用" 5. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格刷新并显示新增的角色 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-009:取消新增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写部分内容 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,表格数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 1.3 编辑角色
-
-### TC-ROLE-010:打开编辑弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击非系统角色(非超级管理员等)行操作列的「编辑」按钮 |
-| **预期结果** | 弹出编辑角色弹框,标题显示"编辑角色",表单回填该角色的名称、描述、状态 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-011:编辑角色成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改角色名称 3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格数据更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 1.4 删除角色
-
-### TC-ROLE-012:删除角色确认
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击非系统角色行操作列的「删除」按钮 |
-| **预期结果** | 弹出确认提示框,内容为"确定要删除该角色吗?",有「确定」和「取消」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-013:删除角色成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击删除按钮 2. 在确认框中点击「确定」 |
-| **预期结果** | 提示"操作成功",该角色从列表中消失,分页总数减 1 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-014:取消删除
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击删除按钮 2. 在确认框中点击「取消」 |
-| **预期结果** | 确认框关闭,角色数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 1.5 启用/禁用角色
-
-### TC-ROLE-015:启用角色
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 勾选一个或多个状态为"禁用"的非系统角色 2. 点击工具栏「启用」按钮 |
-| **预期结果** | 所选角色状态变为"启用" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-016:禁用角色
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 勾选一个或多个状态为"启用"的非系统角色 2. 点击工具栏「禁用」按钮 |
-| **预期结果** | 所选角色状态变为"禁用" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-017:未选中时点击启用/禁用
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 不勾选任何行,直接点击工具栏「启用」或「禁用」按钮 |
-| **预期结果** | 提示"请先勾选要操作的数据" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 1.6 系统角色保护
-
-### TC-ROLE-018:系统角色不可勾选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 尝试勾选 system=1 的系统角色(如超级管理员) |
-| **预期结果** | 复选框不可勾选(灰色禁用状态) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-019:系统角色不显示编辑/删除/分配权限按钮
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看系统角色(system=1)行操作列 |
-| **预期结果** | 操作列不显示「编辑」「分配权限」「删除」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 1.7 权限分配抽屉
-
-### TC-ROLE-020:打开权限分配抽屉
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击非系统角色行操作列的「分配权限」按钮 |
-| **预期结果** | 从右侧滑出抽屉面板,标题显示"分配权限",内含加载中的菜单树,底部有「取消」「确定」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-021:权限树正确加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 等待权限树加载完成 |
-| **预期结果** | 显示完整菜单树(含多层级),该角色已拥有的权限节点处于勾选状态 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-022:勾选/取消权限节点
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 勾选一个未勾选的菜单节点 2. 取消一个已勾选的菜单节点 |
-| **预期结果** | 勾选状态正常切换,父子节点独立勾选(check-strictly 模式) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-023:保存权限分配
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 修改权限勾选 2. 点击抽屉底部「确定」按钮 |
-| **预期结果** | 提交成功提示"操作成功",抽屉关闭,表格刷新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-ROLE-024:取消权限分配
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 修改权限勾选 2. 点击抽屉底部「取消」按钮 |
-| **预期结果** | 抽屉关闭,勾选修改不生效 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
----
-
-# 二、用户管理功能测试
-
-> **迁移日期**:2026-05-28
-> **对应页面**:`src/views/system-administration/user-management/user/index.vue`
-> **API 文件**:`src/api/system-administration/user.js`
-> **路由路径**:`/system_settings/user_management/user`
-
-## 2.1 页面加载与数据展示
-
-### TC-USER-001:用户列表正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击菜单「系统设置 → 用户管理 → 用户」 |
-| **预期结果** | 页面正常加载,显示用户列表表格,包含序号、账号、姓名、出入证编号、状态、用户组、上次登录IP、上次登录时间、操作列;底部分页组件显示总条数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-002:状态列显示正确
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看用户列表中各行的状态列 |
-| **预期结果** | 状态为 1 时显示绿色 ✅ 图标 + "启用" 文字;状态为 0 时显示灰色 ❌ 图标 + "禁用" 文字 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-003:搜索功能—按账号
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在账号输入框输入关键字 2. 点击「查询」 |
-| **预期结果** | 表格数据按账号关键字过滤 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-004:搜索功能—按姓名
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在姓名输入框输入关键字 2. 点击「查询」 |
-| **预期结果** | 表格数据按姓名关键字过滤 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-005:搜索功能—组合条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 同时输入账号和姓名关键字 2. 点击「查询」 |
-| **预期结果** | 表格数据按两个条件同时过滤(AND 逻辑) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-006:重置搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入搜索条件并查询 2. 点击「重置」按钮 |
-| **预期结果** | 搜索条件清空,表格恢复显示全部数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-007:分页功能
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换每页显示条数(10/25/50/100)2. 点击下一页/上一页 3. 输入页码跳转 |
-| **预期结果** | 分页切换正常,表格数据按分页加载,总条数正确显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 2.2 新增用户
-
-### TC-USER-008:打开新增弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击表格上方工具栏「新增」按钮 |
-| **预期结果** | 弹出新增用户弹框,标题显示"新增用户",表单包含:账号、密码、确认密码、用户组(下拉)、姓名、出入证编号、状态(默认"启用") |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-009:新增表单校验—必填项
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写任何内容直接点击「确定」 |
-| **预期结果** | 账号、密码、确认密码、用户组字段下方分别显示红色校验提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-010:新增表单校验—账号长度
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入账号为 2 个字符(如"ab")3. 点击「确定」 |
-| **预期结果** | 账号字段下方提示"长度在 3 到 20 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-011:新增表单校验—密码长度
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入密码为 5 个字符 3. 点击「确定」 |
-| **预期结果** | 密码字段下方提示"长度在 6 到 64 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-012:新增表单校验—两次密码不一致
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 密码输入"123456",确认密码输入"654321" 3. 填写其他必填项 4. 点击「确定」 |
-| **预期结果** | 提示"两次输入的密码不一致",弹框不关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-013:新增用户成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入账号(如"testuser001")3. 输入密码和确认密码 4. 选择用户组 5. 输入姓名 6. 选择状态为"启用" 7. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格刷新并显示新增的用户 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-014:取消新增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写部分内容 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,表格数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 2.3 编辑用户
-
-### TC-USER-015:打开编辑弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击任意用户行操作列的「编辑」按钮 |
-| **预期结果** | 弹出编辑用户弹框,标题显示"编辑用户",表单回填该用户的账号、用户组、姓名、出入证编号、状态;密码和确认密码字段不显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-016:编辑用户成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改用户组 3. 修改姓名 4. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格数据更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 2.4 删除用户
-
-### TC-USER-017:删除其他用户确认
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击非当前登录用户行操作列的「删除」按钮 |
-| **预期结果** | 弹出确认提示框"确定要删除该用户吗?",有「确定」和「取消」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-018:删除用户成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击非当前用户的删除按钮 2. 在确认框中点击「确定」 |
-| **预期结果** | 提示"操作成功",该用户从列表中消失 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-019:不能删除自己
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 找到当前登录用户所在行,点击「删除」按钮 |
-| **预期结果** | 提示"不能删除自己的账号",不弹出确认框 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 2.5 批量删除
-
-### TC-USER-020:批量删除—正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 勾选多个非当前用户的用户行 2. 点击工具栏「批量删除」按钮 3. 确认框中点击「确定」 |
-| **预期结果** | 提示"操作成功",勾选的用户从列表中消失 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-021:批量删除—包含自己
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 勾选自己 + 其他用户 2. 点击工具栏「批量删除」按钮 |
-| **预期结果** | 自己的账号自动从勾选列表中排除,仅删除其他用户 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-022:批量删除—未勾选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 不勾选任何行,直接点击「批量删除」按钮 |
-| **预期结果** | 提示"请先勾选要操作的数据" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 2.6 启用/禁用用户
-
-### TC-USER-023:启用用户
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 勾选一个或多个状态为"禁用"的其他用户 2. 点击工具栏「启用」按钮 3. 确认框中点击「确定」 |
-| **预期结果** | 所选用户状态变为"启用" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-024:禁用用户
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 勾选一个或多个状态为"启用"的其他用户 2. 点击工具栏「禁用」按钮 3. 确认框中点击「确定」 |
-| **预期结果** | 所选用户状态变为"禁用" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-025:不能禁用自己
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 勾选自己的账号 2. 点击工具栏「禁用」按钮 |
-| **预期结果** | 提示"不能操作自己的账号",操作不执行 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-026:未勾选时点击启用/禁用
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 不勾选任何行,直接点击「启用」或「禁用」按钮 |
-| **预期结果** | 提示"请先勾选要操作的数据" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 2.7 重置密码
-
-### TC-USER-027:重置密码确认
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击任意用户行操作列的「重置密码」按钮 |
-| **预期结果** | 弹出确认提示框"确定要重置该用户密码吗?" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-028:重置密码成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「重置密码」按钮 2. 在确认框中点击「确定」 |
-| **预期结果** | 提示"操作成功",该用户密码被重置 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-029:取消重置密码
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「重置密码」按钮 2. 在确认框中点击「取消」 |
-| **预期结果** | 确认框关闭,密码不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 2.8 用户组下拉数据
-
-### TC-USER-030:新增时用户组下拉有数据
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 打开新增用户弹框,点击用户组下拉框 |
-| **预期结果** | 下拉框显示所有角色列表(从角色管理页创建的角色应全部出现) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-031:编辑时用户组下拉有数据
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 打开编辑用户弹框,点击用户组下拉框 |
-| **预期结果** | 下拉框显示所有角色列表,当前用户所属角色为选中状态 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 2.9 多语言切换
-
-### TC-USER-032:切换到英文
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文语言 2. 查看用户管理页面 |
-| **预期结果** | 所有标签、按钮、表头、弹框标题均切换为英文显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-USER-033:英文下操作正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在英文界面下执行:查询、新增、编辑、删除操作 |
-| **预期结果** | 所有功能正常运行,提示信息为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-# 三、菜单配置功能测试
-
-> **迁移日期**:2026-05-29
-> **对应页面**:`src/views/system-administration/menu-management/menu-configuration/index.vue`
-> **API 文件**:`src/api/system-administration/menu-configuration.js`
-> **路由路径**:`/system_settings/menu_configuration/menu`
-> **页面结构**:左侧树形菜单 + 右侧表单卡片 + 顶部筛选栏
-
-## 3.1 页面加载与树形展示
-
-### TC-MENU-001:菜单配置页面正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击菜单「系统设置 → 菜单管理 → 菜单配置」 |
-| **预期结果** | 页面正常加载,左侧显示后台菜单树形结构(含文件夹/文档图标和菜单名称),右侧默认显示表单卡片(标题为"新增菜单") |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-002:树节点图标正确显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看左侧树形结构的各级节点图标 |
-| **预期结果** | 有子节点的菜单展开时显示「打开的文件夹」图标,收起时显示「关闭的文件夹」图标;叶子节点显示「文档」图标;如果菜单配置了 FontAwesome 图标,则显示对应图标 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-003:点击树节点加载表单
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击左侧树形结构中任意菜单节点 |
-| **预期结果** | 右侧表单卡片标题变为"编辑菜单",表单回填该菜单的所有信息(上级菜单、名称、别名、图标、排序、导航开关、链接类型、打开方式、URL、参数、备注) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-004:禁用菜单节点差异化显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 找到状态为"禁用"的菜单节点(如有),查看其显示样式 |
-| **预期结果** | 禁用的菜单节点文字颜色为灰色,并带有删除线样式(`text-decoration: line-through`),与其他正常节点明显区分 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 3.2 模块切换筛选
-
-### TC-MENU-005:切换到 PDA 模块
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在顶部筛选栏,点击「PDA」单选按钮 |
-| **预期结果** | 树形结构自动刷新,切换到 PDA 模块的菜单数据(与后台模块菜单不同) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-006:按状态筛选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在状态下拉框选择"启用" 2. 点击「查询」按钮 |
-| **预期结果** | 树形结构仅显示状态为启用的菜单节点 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-007:按导航属性筛选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在导航属性下拉框选择"可见" 2. 点击「查询」按钮 |
-| **预期结果** | 树形结构仅显示导航属性为可见的菜单节点 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-008:按菜单深度筛选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 设置菜单深度为 1 2. 点击「查询」按钮 |
-| **预期结果** | 树形结构仅显示深度为 1(一级菜单)的节点 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-009:重置搜索条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 设置多个筛选条件并查询 2. 点击「重置」按钮 |
-| **预期结果** | 筛选条件恢复默认(模块=后台,其他清空),树形结构恢复加载全部后台菜单数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 3.3 树的展开/收起/过滤
-
-### TC-MENU-010:一键展开所有节点
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击工具栏「展开」按钮 |
-| **预期结果** | 树形结构所有节点全部展开,显示完整的层级结构 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-011:一键收起所有节点
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 先点击「展开」使所有节点展开 2. 再点击「收起」按钮 |
-| **预期结果** | 所有子节点收起,仅显示一级根节点 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-012:过滤树节点
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在过滤输入框输入某个菜单名称的关键字(如"用户")2. 观察树形结构变化 |
-| **预期结果** | 树形结构仅显示名称包含关键字的节点及其父/子路径节点 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-013:清除过滤
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入过滤关键字使树节点被过滤 2. 清除过滤输入框内容(点击清空按钮或手动删除) |
-| **预期结果** | 树形结构恢复显示所有菜单节点 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 3.4 新增菜单(顶层)
-
-### TC-MENU-014:新增顶层菜单—点击按钮
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击工具栏「新增顶层菜单」按钮 |
-| **预期结果** | 右侧表单标题变为"新增菜单",表单所有字段清空为默认值,上级菜单为空(顶层) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-015:新增顶层菜单—成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「新增顶层菜单」2. 填写名称(如"测试菜单")3. 选择图标 4. 设置排序号 5. 设置导航开关 6. 点击「确定」 |
-| **预期结果** | 提示"操作成功",左侧树形结构根级新增该菜单节点,表单恢复为新增状态 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-016:新增顶层菜单—名称必填校验
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「新增顶层菜单」2. 不填写名称,点击「确定」 |
-| **预期结果** | 名称字段下方提示"名称不能为空",表单不提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-017:新增顶层菜单—名称长度校验
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「新增顶层菜单」2. 名称输入超过 32 个字符 3. 点击「确定」 |
-| **预期结果** | 名称字段下方提示"长度不能大于 32 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 3.5 新增子菜单
-
-### TC-MENU-018:新增子菜单—通过行按钮
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 将鼠标悬停到某个树节点上,点击出现的「新增」按钮 |
-| **预期结果** | 右侧表单标题变为"新增菜单",上级菜单自动设置为当前悬停的节点,表单其他字段为空 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-019:新增子菜单—成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 悬停到某个树节点上点击「新增」2. 填写名称 3. 选择链接类型为"模块" 4. 填写 URL 5. 点击「确定」 |
-| **预期结果** | 提示"操作成功",左侧树形结构中该节点下出现新增的子菜单节点,表单恢复为新增状态 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-020:上级菜单级联选择器搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「新增顶层菜单」2. 在上级菜单级联选择器中输入关键字搜索(如"首页") |
-| **预期结果** | 级联选择器按关键字过滤,可从中选择任意节点作为上级菜单 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 3.6 编辑菜单
-
-### TC-MENU-021:编辑菜单—修改基本信息
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击树中某个菜单节点加载编辑表单 2. 修改名称、别名 3. 修改排序号 4. 点击「修改」按钮 |
-| **预期结果** | 提示"操作成功",树中该节点的名称和排序立即更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-022:编辑菜单—切换链接类型
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击树中某个模块菜单节点 2. 切换链接类型为"外链" 3. 输入外部 URL 4. 点击「修改」 |
-| **预期结果** | 提示"操作成功",菜单链接类型和外链 URL 保存成功 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-023:编辑菜单—设置导航属性
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击树中某个菜单节点 2. 切换导航开关(开启→关闭 或 关闭→开启)3. 点击「修改」 |
-| **预期结果** | 提示"操作成功",导航属性更新(在侧边栏菜单渲染时相应生效) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-024:编辑菜单—修改打开方式
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击树中某个外链菜单 2. 切换打开方式为"新窗口" 3. 点击「修改」 |
-| **预期结果** | 提示"操作成功",打开方式更新为在新标签页打开 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 3.7 删除菜单
-
-### TC-MENU-025:删除菜单—确认弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 鼠标悬停到某个菜单节点上,点击出现的「删除」按钮 |
-| **预期结果** | 弹出确认提示框"确定要执行该操作吗?",有「确定」和「取消」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-026:删除菜单—成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 悬停到叶子菜单节点上点击「删除」2. 在确认框中点击「确定」 |
-| **预期结果** | 提示"操作成功",该菜单节点从树中消失 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-027:删除菜单—取消
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「删除」按钮 2. 在确认框中点击「取消」 |
-| **预期结果** | 确认框关闭,菜单节点未被删除 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 3.8 启用/禁用菜单
-
-### TC-MENU-028:禁用菜单—确认弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 鼠标悬停到某个状态为启用的菜单节点上,点击出现的「禁用」按钮 |
-| **预期结果** | 弹出确认提示框"状态的切换会影响上下级菜单,是否确认操作?" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-029:禁用菜单—成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击启用菜单的「禁用」按钮 2. 在确认框中点击「确定」 |
-| **预期结果** | 提示"操作成功",树刷新后该节点显示为灰色+删除线的禁用样式 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-030:启用菜单—成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击禁用菜单的「启用」按钮 2. 在确认框中点击「确定」 |
-| **预期结果** | 提示"操作成功",树刷新后该节点恢复正常显示样式 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 3.9 拖拽排序
-
-### TC-MENU-031:拖拽调整同级顺序
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在同级菜单中,拖拽某个节点到另一个同级节点的上方或下方 |
-| **预期结果** | 松手后触发排序 API,同级节点的排序号自动更新,页面刷新后顺序保持 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-032:拖拽移动到其他父级
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 拖拽某个菜单节点到另一个非同级父节点内部 |
-| **预期结果** | 菜单移动到新父级下,页面刷新后位置保持 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 3.10 表单校验
-
-### TC-MENU-033:别名长度校验
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 新增或编辑菜单 2. 别名输入超过 16 个字符 3. 点击提交 |
-| **预期结果** | 别名字段下方提示"长度不能大于 16 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-034:URL 长度校验
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 新增外链菜单 2. URL 输入超过 255 个字符 3. 点击提交 |
-| **预期结果** | URL 字段下方提示"长度不能大于 255 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-035:排序号数字校验
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 新增或编辑菜单 2. 排序号输入非数字字符 3. 点击提交 |
-| **预期结果** | 排序号字段下方提示"必须为数字值" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 3.11 多语言切换
-
-### TC-MENU-036:切换到英文
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文语言 2. 查看菜单配置页面 |
-| **预期结果** | 所有标签、按钮、表单字段名、提示信息均切换为英文显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-MENU-037:英文下操作正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在英文界面下执行:切换模块、新增顶层菜单、新增子菜单、编辑菜单、删除菜单、启用/禁用、拖拽排序 |
-| **预期结果** | 所有功能正常运行,提示信息为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-# 四、接口日志功能测试
-
-> **迁移日期**:2026-05-29
-> **对应页面**:`src/views/system-administration/system-utilities/api-logs/index.vue`
-> **API 文件**:`src/api/system-administration/api-logs.js`
-> **路由路径**:`/system_settings/system_assistant/interface_log`
-> **页面结构**:顶部搜索区域 + 数据表格 + 查看响应弹框组件
-
-## 4.1 页面加载与数据展示
-
-### TC-API-001:接口日志页面正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击菜单「系统设置 → 系统工具 → 接口日志」 |
-| **预期结果** | 页面正常加载,显示接口日志列表表格,包含 ID、IP、请求方法、响应状态、响应时长、工序编码、托盘号、电池条码、批次号、进程ID、创建日期、操作列;底部分页组件显示总条数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-002:响应状态列显示正确
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看接口日志列表中各行的响应状态列 |
-| **预期结果** | 状态为 0 时显示绿色 ✅ 图标 + "成功"文字;状态非 0 时显示红色 ❌ 图标 + "失败"文字 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-003:表格列完整显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 观察表格列头 2. 横向滚动查看所有列 |
-| **预期结果** | 表格包含以下列:ID、IP、请求方法、响应状态、响应时长(毫秒)、工序编码、托盘号、电池条码、批次号、进程ID、创建日期、操作(共 12 列),操作列固定在右侧 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 4.2 搜索筛选
-
-### TC-API-004:按 IP 搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在 IP 输入框输入已知 IP 地址 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示该 IP 来源的接口日志 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-005:按接口名称搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在接口名称输入框输入关键字 2. 点击「查询」按钮 |
-| **预期结果** | 表格按接口名称过滤,仅显示匹配的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-006:按状态筛选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在状态下拉框选择"成功" 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示响应状态为成功的日志记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-007:按批次搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在批次输入框输入已知批次号 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示该批次的日志记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-008:按时间范围筛选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在创建时间选择器中设置一个时间范围 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示该时间范围内的日志记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-009:组合搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 同时设置多个搜索条件(如 IP + 状态 + 时间范围)2. 点击「查询」按钮 |
-| **预期结果** | 表格按照所有条件的交集进行过滤显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-010:重置搜索条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 设置多个搜索条件并查询 2. 点击「重置」按钮 |
-| **预期结果** | 所有搜索条件清空,表格恢复显示全部数据(第一页) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 4.3 分页功能
-
-### TC-API-011:分页切换
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换每页显示条数(10 → 20 → 50)2. 点击下一页/上一页 |
-| **预期结果** | 分页切换正常,表格数据按分页加载,总条数正确显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 4.4 查看响应
-
-### TC-API-012:打开查看响应弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击任一接口日志行操作列的「查看响应」按钮 |
-| **预期结果** | 弹出"响应"弹框,显示两段内容:请求体和响应内容,均为 JSON 树形结构展示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-013:复制请求内容
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开查看响应弹框 2. 点击「复制请求内容」按钮 |
-| **预期结果** | 请求体的 JSON 内容被复制到剪贴板,提示"操作成功" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-014:复制响应内容
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开查看响应弹框 2. 点击「复制响应内容」按钮 |
-| **预期结果** | 响应内容的 JSON 被复制到剪贴板,提示"操作成功" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-015:关闭响应弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开查看响应弹框 2. 点击弹框右上角 X 按钮或弹框遮罩层 |
-| **预期结果** | 弹框关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-016:响应弹框 JSON 树形展开/折叠
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开查看响应弹框 2. 点击请求体或响应内容 JSON 树中的展开/折叠箭头 |
-| **预期结果** | JSON 节点可正常展开/折叠,嵌套数据层级清晰可见 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-017:切换不同行的响应数据
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击第 1 行「查看响应」→ 记下内容后关闭 2. 点击第 3 行「查看响应」 |
-| **预期结果** | 每次打开的弹框显示对应行的请求体和响应内容,数据不混淆 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 4.5 多语言切换
-
-### TC-API-018:切换到英文
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文语言 2. 查看接口日志页面 |
-| **预期结果** | 所有标签、按钮、表头、弹框标题均切换为英文显示;状态列显示 "Success" / "Failure" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-019:英文下搜索功能正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在英文界面下执行:按 IP 搜索、按状态筛选、查看响应、复制请求/响应内容 |
-| **预期结果** | 所有功能正常运行,提示信息为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-API-020:英文下查看响应弹框正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击「View Response」打开弹框 |
-| **预期结果** | 弹框标题为 "Response",分隔标题为 "Request Body" / "Response Body",按钮文字为 "Copy Request" / "Copy Response" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-# 五、操作日志功能测试
-
-> **迁移日期**:2026-05-29
-> **对应页面**:`src/views/system-administration/system-utilities/operation-logs/index.vue`
-> **API 文件**:`src/api/system-administration/operation-logs.js`
-> **路由路径**:`/system_settings/system_assistant/operate_log`
-> **页面结构**:折叠式搜索区 + 数据表格 + 查看响应弹框(复用)
-
-## 5.1 页面加载与数据展示
-
-### TC-OPL-001:操作日志页面正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击菜单「系统设置 → 系统工具 → 操作日志」 |
-| **预期结果** | 页面正常加载,显示操作日志列表表格,包含 ID、操作人、IP、状态、操作动作名称、操作动作编码、请求路径、批次、托盘号、创建日期、操作列;底部显示分页组件和总条数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-002:响应状态列显示正确
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看操作日志列表中各行的状态列 |
-| **预期结果** | 状态为 0 时显示绿色 ✅ + "成功"文字;状态非 0 时显示红色 ❌ + "失败"文字 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-003:表格列完整显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 观察表格列头 2. 横向滚动查看所有列 |
-| **预期结果** | 表格包含以下列:ID、操作人、IP、状态、操作动作名称、操作动作编码、请求路径、批次、托盘号、创建日期、操作(共 11 列),操作列固定在右侧 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 5.2 搜索筛选
-
-### TC-OPL-004:按 IP 搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在 IP 输入框输入已知 IP 地址 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示该 IP 来源的操作日志 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-005:按操作人搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在操作人下拉框选择一个用户 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示该操作人的日志;下拉框支持输入关键字搜索过滤 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-006:展开更多搜索条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「展开更多」按钮 2. 观察搜索区 |
-| **预期结果** | 搜索区展开显示额外条件:批次、托盘号、创建时间(时间范围选择器);按钮变为「收起」图标向上 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-007:折叠搜索条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 先展开搜索区 2. 点击「收起」按钮 |
-| **预期结果** | 额外搜索条件隐藏,搜索区恢复为单行;按钮变回「展开更多」图标向下 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-008:组合搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 同时设置多个搜索条件(如 IP + 操作人 + 时间范围)2. 点击「查询」按钮 |
-| **预期结果** | 表格按照所有条件的交集进行过滤显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-009:重置搜索条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 设置搜索条件并查询 2. 点击「重置」按钮 |
-| **预期结果** | 所有搜索条件清空,下拉框恢复默认,表格恢复显示全部数据(第一页) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 5.3 分页功能
-
-### TC-OPL-010:分页切换
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换每页显示条数(10 → 20 → 50)2. 点击下一页/上一页 |
-| **预期结果** | 分页切换正常,表格数据按分页加载,总条数正确显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 5.4 查看响应
-
-### TC-OPL-011:打开查看响应弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击任一操作日志行操作列的「查看响应」按钮 |
-| **预期结果** | 弹出"响应"弹框,显示两段 JSON 树形结构:请求体和响应内容 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-012:复制请求内容
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开查看响应弹框 2. 点击「复制请求内容」按钮 |
-| **预期结果** | 请求体的 JSON 被复制到剪贴板,提示"操作成功" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-013:复制响应内容
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开查看响应弹框 2. 点击「复制响应内容」按钮 |
-| **预期结果** | 响应内容的 JSON 被复制到剪贴板,提示"操作成功" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-014:关闭响应弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开查看响应弹框 2. 点击弹框右上角 X 或遮罩层 |
-| **预期结果** | 弹框关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 5.5 多语言切换
-
-### TC-OPL-015:切换到英文
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文语言 2. 查看操作日志页面 |
-| **预期结果** | 所有标签、按钮、表头、弹框均切换为英文;状态列显示 "Success" / "Failure" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-016:英文下搜索功能正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在英文界面下执行:按 IP 搜索、按操作人筛选、展开/收起搜索区 |
-| **预期结果** | 所有功能正常运行,提示信息为英文;操作人下拉框显示英文用户名 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-017:英文下查看响应弹框正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击「View Response」打开弹框 |
-| **预期结果** | 弹框标题 "Response",分隔标题 "Request Body" / "Response Content",按钮 "Copy Request Content" / "Copy Response Content" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-OPL-018:表格无选中框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看操作日志表格的左侧 |
-| **预期结果** | 表格左侧无复选框选中列(只读页面,无需批量操作) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-# 六、问题帮助功能测试
-
-> **迁移日期**:2026-05-29
-> **对应页面**:`src/views/system-administration/system-utilities/problem-help/index.vue`
-> **API 文件**:`src/api/system-administration/problem-help.js`
-> **路由路径**:`/system_settings/system_assistant/problem_help`
-> **页面结构**:搜索区 + 左侧树形菜单 + 右侧 Markdown 预览 + 分类弹框 + 文档编辑抽屉
-
-## 6.1 页面加载与数据展示
-
-### TC-PHP-001:问题帮助页面正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 系统中已存在问题帮助的分类目录和文档数据 |
-| **测试步骤** | 1. 登录系统 2. 点击菜单「系统设置 → 系统工具 → 问题帮助」 |
-| **预期结果** | 页面正常加载,左侧显示树形分类菜单,右侧显示空白提示"请从左侧菜单选择文档查看" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-002:树形菜单展示完整
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 观察左侧树形菜单 |
-| **预期结果** | 菜单以树形层级结构展示所有分类目录和文档节点;md 类型文档显示文件夹图标 📁,file 类型文档显示文件图标 📄 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-003:点击文档查看内容
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 树形菜单中存在 md 类型的文档 |
-| **测试步骤** | 1. 展开树形菜单的分类目录 2. 点击一个 md 文档节点 |
-| **预期结果** | 右侧区域显示 Markdown 渲染后的文档内容,包含标题、提交人、创建时间信息 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-004:树菜单展开/折叠
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击一个分类目录展开其子节点 2. 点击另一个分类目录 |
-| **预期结果** | 树形菜单支持唯一展开(展开新分类时旧分类自动收起),子节点列表正常显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 6.2 搜索功能
-
-### TC-PHP-005:搜索文档
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 系统中存在包含搜索关键字的文档 |
-| **测试步骤** | 1. 在顶部搜索框输入文档标题关键字 2. 点击搜索按钮或按 Enter |
-| **预期结果** | 如果查找结果存在数据,左侧树形菜单上方出现搜索结果卡片区域,显示匹配的文档标题和描述;如果没有匹配数据,无结果展示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-006:清除搜索结果
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 执行搜索出现结果后 2. 点击搜索输入框的清除按钮 |
-| **预期结果** | 搜索结果区域消失,恢复显示树形菜单 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-007:搜索空内容
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 不输入任何内容,直接点击搜索按钮 |
-| **预期结果** | 搜索结果区域清空 / 不出现搜索结果 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 6.3 分类目录管理
-
-### TC-PHP-008:新增分类目录
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击搜索框旁的「新增目录」按钮 2. 在弹框中填写分类名称 3. 选择上级菜单(可选)4. 选择查看权限角色 5. 设置序号 6. 点击「确定」 |
-| **预期结果** | 提示"添加成功",弹框关闭,树形菜单中显示新分类 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-009:编辑分类目录
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 先在树形菜单上选中一个分类目录 |
-| **测试步骤** | 1. 点击树形菜单中的一个分类节点使其被选中 2. 点击左侧工具栏的「编辑」按钮 3. 修改分类名称 4. 点击「修改」 |
-| **预期结果** | 提示"修改成功",弹框关闭,树形菜单中的分类名称更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-010:删除分类目录
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 先在树形菜单上选中一个分类目录 |
-| **测试步骤** | 1. 点击分类节点使其选中 2. 点击「删除」按钮 3. 确认删除弹框 |
-| **预期结果** | 删除确认弹框出现,确认后提示"删除成功",树形菜单刷新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-011:未选中分类时编辑/删除提示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 不选中任何树节点 2. 直接点击「编辑」或「删除」按钮 |
-| **预期结果** | 弹出提示"请先选择需要编辑的目录"或"请先选择需要删除的目录" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-012:取消删除操作
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 选中分类后点击「删除」2. 在确认弹框中点击「取消」 |
-| **预期结果** | 删除操作取消,分类不丢失 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 6.4 文档管理
-
-### TC-PHP-013:新增文档
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击左侧工具栏「新增文档」2. 在抽屉中填写标题、描述 3. 选择上级分类菜单 4. 选择权限角色 5. 设置序号 6. 在 Markdown 编辑器中输入内容 7. 点击「新增」 |
-| **预期结果** | 提示"新增成功",抽屉关闭,树形菜单中显示新文档 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-014:编辑文档
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在树形菜单中找到 md 文档节点 2. 点击文档右侧的「编辑」按钮 |
-| **预期结果** | 打开编辑抽屉,回填该文档的标题、描述、分类、内容等数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-015:删除文档
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在树形菜单中文档节点右侧点击「删除」2. 确认删除 |
-| **预期结果** | 弹出确认框,确认后提示"删除成功",树形菜单刷新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-016:编辑抽屉关闭确认
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增文档抽屉并填写部分内容 2. 直接点击抽屉遮罩层或右上角 X 关闭 |
-| **预期结果** | 弹出"确认关闭?"确认框,确认后抽屉关闭,表单重置 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-017:文档表单验证
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增文档抽屉 2. 不填写标题直接点击「新增」 |
-| **预期结果** | 表单验证提示"请输入标题"和"请输入描述",阻止提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 6.5 多语言切换
-
-### TC-PHP-018:切换到英文
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文语言 2. 查看问题帮助页面 |
-| **预期结果** | 所有标签、按钮、弹框标题均切换为英文;工具栏显示 "Add Directory"、"Add Document"、"Edit"、"Delete" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-019:英文下搜索功能正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在英文界面下执行:搜索文档、查看搜索结果、清除搜索 |
-| **预期结果** | 所有功能正常运行,提示信息为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-020:英文下分类弹框正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击「Add Directory」打开分类弹框 |
-| **预期结果** | 弹框标题为 "Add Category" 或 "Edit Category",表单字段标签为英文,底部按钮为 "Confirm" / "Cancel" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PHP-021:英文下Markdown编辑器正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击「Add Document」打开编辑器抽屉 |
-| **预期结果** | 抽屉标题和表单标签为英文;验证提示信息为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-## 测试结果汇总
-
-| 功能模块 | 测试用例数 | 通过 | 未通过 | 通过率 |
-|----------|-----------|------|--------|--------|
-| 角色管理 | 24 | | | |
-| 用户管理 | 33 | | | |
-| 菜单配置 | 37 | | | |
-| 接口日志 | 20 | | | |
-| 操作日志 | 18 | | | |
-| 问题帮助 | 21 | | | |
-| **合计** | **153** | | | |
-
----
-
----
----
-
-# 七、产品列表功能测试
-
-> **迁移日期**:2026-06-01
-> **对应页面**:`src/views/production-master-data/product-management/product-list/index.vue`
-> **API 文件**:`src/api/production-master-data/product-management.js`
-> **路由路径**:`/production_configuration/product_management/product_list`
-> **页面结构**:搜索区(产品代号搜索)+ 数据表格 + 新增/编辑弹框
-
-## 7.1 页面加载与数据展示
-
-### TC-PROD-001:产品列表页面正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击菜单「生产配置 → 产品管理 → 产品列表」 |
-| **预期结果** | 页面正常加载,显示产品列表表格,包含序号、产品代号、产品名称、备注、操作列;底部分页组件显示总条数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-002:表格列完整显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 观察表格列头 2. 横向滚动查看所有列 |
-| **预期结果** | 表格包含以下列:序号、产品代号、产品名称、备注、操作(共 5 列),操作列固定在右侧 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-003:空数据状态展示
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 确保数据库中没有产品数据(或清空搜索条件后无匹配数据) |
-| **测试步骤** | 1. 在搜索框中输入一个不存在产品代号 2. 点击「查询」 |
-| **预期结果** | 表格显示空状态提示(如"暂无数据"),分页显示总数为 0 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-004:表格序号正确递增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 加载产品列表 2. 观察序号列 |
-| **预期结果** | 序号从 1 开始递增,翻页后序号接续正确 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 7.2 搜索与分页
-
-### TC-PROD-005:按产品代号搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在产品代号输入框中输入已知存在的产品代号(如"P001")2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示产品代号匹配的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-006:模糊搜索产品代号
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在产品代号输入框中输入部分关键字(如"P")2. 点击「查询」按钮 |
-| **预期结果** | 表格显示所有产品代号包含关键字的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-007:搜索无匹配结果
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在产品代号输入框中输入不存在的代号(如"ZZZ999")2. 点击「查询」按钮 |
-| **预期结果** | 表格显示空状态,分页总数显示为 0 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-008:回车键触发搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在产品代号输入框中输入关键字 2. 按键盘 Enter 键 |
-| **预期结果** | 触发表格搜索,效果与点击「查询」按钮一致 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-009:重置搜索条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入搜索条件并查询 2. 点击「重置」按钮 |
-| **预期结果** | 搜索输入框内容清空,表格恢复显示全部数据(回到第一页) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-010:输入框清空按钮
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在产品代号输入框输入内容 2. 点击输入框右侧的清空(×)图标 |
-| **预期结果** | 输入框内容被清空 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-011:分页切换—切换每页条数
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击分页组件的每页条数下拉框 2. 依次切换为 10、25、50、100 |
-| **预期结果** | 每种条数下表格显示正确数量的数据,总页数相应变化 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-012:分页切换—翻页
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击分页组件的「下一页」按钮 2. 点击「上一页」按钮 3. 直接输入页码跳转(如跳到第 3 页) |
-| **预期结果** | 页码切换后表格数据显示对应页的数据,当前页码高亮正确 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 7.3 新增产品
-
-### TC-PROD-013:打开新增弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击表格上方工具栏「新增」按钮 |
-| **预期结果** | 弹出新增产品弹框,标题显示"新增产品",表单字段为空:产品代号(输入框)、产品名称(输入框)、备注(多行文本域) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-014:新增产品成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入产品代号(如"P-TEST-001")3. 输入产品名称(如"测试产品001")4. 输入备注(如"用于测试")5. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格刷新并显示新增的产品 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-015:新增产品—仅填写必填项
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 必填:产品代号和产品名称 3. 备注留空 4. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",备注字段在表格中显示为空 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-016:取消新增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写部分内容 3. 点击「取消」按钮或弹框右上角 X |
-| **预期结果** | 弹框关闭,表格数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-017:连续新增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 新增产品 A 成功后 2. 再次点击「新增」按钮 3. 新增产品 B |
-| **预期结果** | 弹框表单每次打开时均为空状态,上次填写的内容不残留;两次新增均成功 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 7.4 编辑产品
-
-### TC-PROD-018:打开编辑弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击产品列表中任一产品行操作列的「编辑」按钮 |
-| **预期结果** | 弹出编辑产品弹框,标题显示"编辑产品",表单回填该产品的产品代号、产品名称、备注 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-019:编辑产品—修改产品名称
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改产品名称(如改为"测试产品-已修改")3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格中该行产品名称更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-020:编辑产品—修改备注
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改备注内容 3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",备注更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-021:编辑产品—产品代号不可修改(如适用)
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 查看产品代号输入框 |
-| **预期结果** | 产品代号字段显示为禁用状态(灰色不可编辑),仅产品名称和备注可修改 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-022:取消编辑
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改内容 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,原数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 7.5 删除产品
-
-### TC-PROD-023:删除产品确认弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击产品列表中任一产品行操作列的「删除」按钮 |
-| **预期结果** | 弹出确认提示框,内容为"确定要执行该操作吗?",有「确定」和「取消」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-024:删除产品成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击产品行的「删除」按钮 2. 在确认框中点击「确定」 |
-| **预期结果** | 提示"操作成功",该产品从列表中消失,分页总数减 1 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-025:取消删除
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「删除」按钮 2. 在确认框中点击「取消」 |
-| **预期结果** | 确认框关闭,产品数据保持不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-026:删除最后一页唯一数据后的分页处理
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 存在数据,且最后一页只有一条记录 |
-| **测试步骤** | 1. 翻到最后一页 2. 删除该页唯一的产品 |
-| **预期结果** | 提示"操作成功",自动跳转到前一页,分页总数减 1 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 7.6 表单校验
-
-### TC-PROD-027:新增表单校验—产品代号必填
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写产品代号 3. 填写产品名称 4. 点击「确定」 |
-| **预期结果** | 产品代号输入框下方显示红色校验提示"请输入产品代号",弹框不关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-028:新增表单校验—产品名称必填
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写产品代号 3. 不填写产品名称 4. 点击「确定」 |
-| **预期结果** | 产品名称输入框下方显示红色校验提示"请输入产品名称",弹框不关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-029:新增表单校验—产品代号长度上限
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在产品代号输入框中输入超过 100 个字符的字符串 3. 点击「确定」 |
-| **预期结果** | 产品代号输入框下方显示红色校验提示"长度在 1 到 100 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-030:新增表单校验—产品名称长度上限
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在产品名称输入框中输入超过 100 个字符的字符串 3. 点击「确定」 |
-| **预期结果** | 产品名称输入框下方显示红色校验提示"长度在 1 到 100 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-031:新增表单校验—中文字符正常输入
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 产品名称输入中文字符 3. 点击「确定」 |
-| **预期结果** | 表单正常提交,中文内容正确保存 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-032:编辑表单校验—修改后清空必填项
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开已存在产品的编辑弹框 2. 清空产品名称 3. 点击「确定」 |
-| **预期结果** | 产品名称输入框下方显示红色校验提示"请输入产品名称" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 7.7 多语言切换
-
-### TC-PROD-033:切换到英文—页面标签
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文语言 2. 点击菜单进入产品列表页面 |
-| **预期结果** | 搜索区标签显示"Product Code"、"Search"、"Reset";表格列头显示"No."、"Product Code"、"Product Name"、"Remark"、"Actions";工具栏按钮显示"Add" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-034:切换到英文—弹框标签
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击新增按钮 3. 查看弹框 |
-| **预期结果** | 弹框标题为"Add Product";表单标签为"Product Code"、"Product Name"、"Remark";底部按钮为"Confirm"、"Cancel" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-035:切换到英文—编辑弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击某行的编辑按钮 |
-| **预期结果** | 弹框标题为"Edit Product",表单回填正确,所有标签为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-036:切换到英文—提示信息
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 执行新增/编辑/删除操作 |
-| **预期结果** | 操作成功提示为"Operation succeeded";删除确认框内容为"Are you sure to delete?";校验提示为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PROD-037:英文下所有操作功能正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在英文界面下执行:搜索、新增产品、编辑产品、删除产品、分页切换 |
-| **预期结果** | 所有功能正常运行,交互逻辑与中文界面一致 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
----
-
-# 八、工艺流程类别功能测试
-
-> **迁移日期**:2026-06-01
-> **对应页面**:`src/views/production-master-data/process-model/process-category/index.vue`
-> **API 文件**:`src/api/production-master-data/process-category.js`
-> **路由路径**:`/production_configuration/technology_model/technology_flow_category`
-> **页面结构**:搜索区(编码+名称搜索)+ 数据表格 + 新增/编辑弹框
-
-## 8.1 页面加载与数据展示
-
-### TC-PCAT-001:工艺流程类别页面正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击菜单「生产配置 → 工艺模型 → 工艺流程类别」 |
-| **预期结果** | 页面正常加载,显示工艺流程类别列表表格,包含序号、流程类别编码、流程类别名称、备注、操作列;底部分页组件显示总条数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-002:表格列完整显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 观察表格列头 2. 横向滚动查看所有列 |
-| **预期结果** | 表格包含以下列:序号、流程类别编码、流程类别名称、备注、操作(共 5 列),操作列固定在右侧 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-003:空数据状态展示
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 确保数据库中没有工艺流程类别数据(或清空搜索条件后无匹配数据) |
-| **测试步骤** | 1. 在搜索框中输入一个不存在的编码 2. 点击「查询」 |
-| **预期结果** | 表格显示空状态提示(如"暂无数据"),分页显示总数为 0 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-004:表格序号正确递增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 加载工艺流程类别列表 2. 观察序号列 3. 翻页后观察序号 |
-| **预期结果** | 序号从 1 开始递增,翻页后序号接续正确 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 8.2 搜索与分页
-
-### TC-PCAT-005:按流程类别编码搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在流程类别编码输入框中输入已知存在的编码 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示编码匹配的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-006:按流程类别名称搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在流程类别名称输入框中输入已知存在的名称 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示名称匹配的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-007:组合搜索(编码+名称)
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 同时输入流程类别编码和名称关键字 2. 点击「查询」按钮 |
-| **预期结果** | 表格按照两个条件同时过滤(AND 逻辑),显示匹配的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-008:回车键触发搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在编码或名称输入框中输入关键字 2. 按键盘 Enter 键 |
-| **预期结果** | 触发表格搜索,效果与点击「查询」按钮一致 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-009:重置搜索条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入搜索条件并查询 2. 点击「重置」按钮 |
-| **预期结果** | 搜索输入框内容清空,表格恢复显示全部数据(回到第一页) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-010:输入框清空按钮
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在编码输入框输入内容 2. 点击输入框右侧的清空(×)图标 |
-| **预期结果** | 输入框内容被清空 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-011:分页切换—每页条数
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击分页组件的每页条数下拉框,依次切换为 10、25、50、100 |
-| **预期结果** | 每种条数下表格显示正确数量的数据,总页数相应变化 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-012:分页切换—翻页
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击分页组件的「下一页」按钮 2. 点击「上一页」按钮 3. 直接输入页码跳转(如跳到第 3 页) |
-| **预期结果** | 页码切换后表格数据显示对应页的数据,当前页码高亮正确 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 8.3 新增工艺流程类别
-
-### TC-PCAT-013:打开新增弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击表格上方工具栏「新增」按钮 |
-| **预期结果** | 弹出新增工艺流程类别弹框,标题显示"新增工艺流程类别",表单字段为空:流程类别编码(输入框)、流程类别名称(输入框)、备注(多行文本域) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-014:新增工艺流程类别成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入流程类别编码(如"PC-001")3. 输入流程类别名称(如"测试流程类别001")4. 输入备注(如"用于测试")5. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格刷新并显示新增的流程类别 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-015:新增工艺流程类别—仅填写必填项
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写编流程类别码和名称 3. 备注留空 4. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",备注字段在表格中显示为空 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-016:取消新增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写部分内容 3. 点击「取消」按钮或弹框右上角 X |
-| **预期结果** | 弹框关闭,表格数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-017:连续新增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 新增流程类别 A 成功后 2. 再次点击「新增」按钮 3. 新增流程类别 B |
-| **预期结果** | 弹框表单每次打开时均为空状态,上次填写的内容不残留;两次新增均成功 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 8.4 编辑工艺流程类别
-
-### TC-PCAT-018:打开编辑弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击工艺流程类别列表中任一类别行操作列的「编辑」按钮 |
-| **预期结果** | 弹出编辑工艺流程类别弹框,标题显示"编辑工艺流程类别",表单回填该流程类别的编码、名称、备注 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-019:编辑工艺流程类别—修改名称
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改流程类别名称(如改为"测试流程类别-已修改")3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格中该行名称更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-020:编辑工艺流程类别—修改备注
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改备注内容 3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",备注更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-021:取消编辑
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改内容 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,原数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 8.5 删除工艺流程类别
-
-### TC-PCAT-022:删除确认弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击工艺流程类别列表中任一类别行操作列的「删除」按钮 |
-| **预期结果** | 弹出确认提示框,内容为"确定要执行该操作吗?",有「确定」和「取消」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-023:删除工艺流程类别成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击类别行的「删除」按钮 2. 在确认框中点击「确定」 |
-| **预期结果** | 提示"操作成功",该工艺流程类别从列表中消失,分页总数减 1 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-024:取消删除
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「删除」按钮 2. 在确认框中点击「取消」 |
-| **预期结果** | 确认框关闭,工艺流程类别数据保持不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-025:删除最后一页唯一数据后的分页处理
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 存在数据,且最后一页只有一条记录 |
-| **测试步骤** | 1. 翻到最后一页 2. 删除该页唯一的工艺流程类别 |
-| **预期结果** | 提示"操作成功",自动跳转到前一页,分页总数减 1 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 8.6 表单校验
-
-### TC-PCAT-026:新增表单校验—编码必填
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写流程类别编码 3. 填写流程类别名称 4. 点击「确定」 |
-| **预期结果** | 编码输入框下方显示红色校验提示"请输入流程类别编码",弹框不关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-027:新增表单校验—名称必填
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写流程类别编码 3. 不填写流程类别名称 4. 点击「确定」 |
-| **预期结果** | 名称输入框下方显示红色校验提示"请输入流程类别名称",弹框不关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-028:新增表单校验—编码长度上限
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在编码输入框中输入超过 100 个字符的字符串 3. 点击「确定」 |
-| **预期结果** | 编码输入框下方显示红色校验提示"长度在 1 到 100 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-029:新增表单校验—名称长度上限
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在名称输入框中输入超过 100 个字符的字符串 3. 点击「确定」 |
-| **预期结果** | 名称输入框下方显示红色校验提示"长度在 1 到 100 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-030:新增表单校验—中文字符正常输入
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 流程类别名称输入中文字符 3. 点击「确定」 |
-| **预期结果** | 表单正常提交,中文内容正确保存 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-031:编辑表单校验—修改后清空必填项
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开已存在流程类别的编辑弹框 2. 清空流程类别名称 3. 点击「确定」 |
-| **预期结果** | 名称输入框下方显示红色校验提示"请输入流程类别名称" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 8.7 多语言切换
-
-### TC-PCAT-032:切换到英文—页面标签
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文语言 2. 点击菜单进入工艺流程类别页面 |
-| **预期结果** | 搜索区标签显示"Category Code"、"Category Name"、"Search"、"Reset";表格列头显示"No."、"Category Code"、"Category Name"、"Remark"、"Actions";工具栏按钮显示"Add" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-033:切换到英文—新增弹框标签
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击新增按钮 3. 查看弹框 |
-| **预期结果** | 弹框标题为"Add Process Category";表单标签为"Category Code"、"Category Name"、"Remark";底部按钮为"Confirm"、"Cancel" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-034:切换到英文—编辑弹框标签
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击某行的编辑按钮 |
-| **预期结果** | 弹框标题为"Edit Process Category",表单回填正确,所有标签为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-035:切换到英文—提示信息
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 执行新增/编辑/删除操作 |
-| **预期结果** | 操作成功提示为"Operation succeeded";删除确认框内容为"Are you sure to delete?";校验提示为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PCAT-036:英文下所有操作功能正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在英文界面下执行:搜索、新增流程类别、编辑流程类别、删除流程类别、分页切换 |
-| **预期结果** | 所有功能正常运行,交互逻辑与中文界面一致 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
----
-
-# 九、产线设置功能测试
-
-> **迁移日期**:2026-06-01
-> **对应页面**:`src/views/production-master-data/factory-model/production-line/index.vue`
-> **API 文件**:`src/api/production-master-data/production-line.js`
-> **路由路径**:`/production_configuration/factory_model/factory_line`
-> **页面结构**:搜索区(产线编码 + 产线名称 + 所区下拉 + 查询/重置按钮)+ 数据表格 + 新增/编辑弹框(含所区下拉选择)
-
-## 9.1 页面加载与数据展示
-
-### TC-PL-001:产线设置页面正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击菜单「生产配置 → 工厂模型 → 产线设置」 |
-| **预期结果** | 页面正常加载,显示产线列表表格,包含序号、产线编码、产线名称、所属所区、备注、操作列;搜索区包含产线编码输入框、产线名称输入框、所区下拉选择器;底部有分页组件显示总条数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-002:表格列完整显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看产线列表表格的列头 |
-| **预期结果** | 表格列依次为:序号、产线编码、产线名称、所属所区、备注、操作。各列宽度合理,内容不重叠 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-003:工具栏按钮显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看表格上方的工具栏 |
-| **预期结果** | 工具栏左侧显示「新 增」按钮,带加号图标,类型为蓝色主按钮;右侧显示帮助按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-004:行内操作按钮显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看表格每行的操作列 |
-| **预期结果** | 每行操作列显示「编 辑」按钮(带编辑图标)和「删 除」按钮(红色危险按钮,带删除图标) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 9.2 查询与搜索
-
-### TC-PL-005:按产线编码搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「产线编码」输入框输入一个已知的产线编码 2. 点击「查询」按钮或按 Enter 键 |
-| **预期结果** | 表格数据按产线编码模糊匹配过滤,仅显示匹配的产线记录;分页回到第 1 页 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-006:按产线名称搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「产线名称」输入框输入关键字 2. 点击「查询」按钮 |
-| **预期结果** | 表格数据按产线名称模糊匹配过滤,仅显示匹配的产线记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-007:按所区下拉筛选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击搜索区「所区」下拉框 2. 选择一个具体所区 3. 点击「查询」按钮 |
-| **预期结果** | 下拉框显示所有已存在的所区选项;选择某个所区后查询,表格仅显示属于该所区的产线记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-008:组合条件搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入产线编码关键字 2. 同时选择一个所区 3. 点击「查询」按钮 |
-| **预期结果** | 表格数据按多个条件 AND 逻辑过滤,显示同时满足所有条件的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-009:重置搜索条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入搜索条件并查询 2. 点击「重置」按钮 |
-| **预期结果** | 产线编码、产线名称输入框清空,所区下拉恢复为空;表格恢复显示全部数据;分页回到第 1 页 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-010:空关键字搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 不输入任何条件直接点击「查询」按钮 |
-| **预期结果** | 显示全部产线数据,无过滤效果 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 9.3 分页功能
-
-### TC-PL-011:分页切换
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换每页显示条数(10/20/50/100) 2. 点击下一页/上一页 3. 输入页码直接跳转 |
-| **预期结果** | 分页切换正常,表格数据按分页正确加载;总条数显示正确;切换每页条数后当前页重置为第 1 页 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 9.4 新增产线
-
-### TC-PL-012:打开新增弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击表格上方工具栏「新 增」按钮 |
-| **预期结果** | 弹出新增产线弹框,标题显示"新增产线";表单包含 4 个字段:产线编码(输入框)、产线名称(输入框)、所区(下拉选择器)、备注(文本域);所有字段为空;底部有「确定」和「取消」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-013:所区下拉框正常加载选项
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 点击「所区」下拉选择器 |
-| **预期结果** | 下拉框正常显示所有已存在的所区列表选项,选项格式为"所区名称";支持 filterable 筛选 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-014:新增产线—正常提交
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入产线编码(如"PL-001") 3. 输入产线名称(如"测试产线") 4. 选择一个所区 5. 输入备注(可选) 6. 点击「确定」按钮 |
-| **预期结果** | 弹框关闭,显示"操作成功"提示消息;表格自动刷新,新增的产线出现在列表中 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-015:新增产线—表单验证(必填项为空)
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写任何内容直接点击「确定」按钮 |
-| **预期结果** | 产线编码字段提示"请输入产线编码";产线名称字段提示"请输入产线名称";所区字段提示"请选择所区";表单阻止提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-016:新增产线—编码/名称超长验证
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在产线编码输入框输入 101 个字符 3. 在产线名称输入框输入 101 个字符 4. 选择所区 5. 点击「确定」按钮 |
-| **预期结果** | 提示"长度在 1 到 100 个字符",表单阻止提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-017:新增产线—取消操作
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写部分内容 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,表格数据不变;再次打开新增弹框时表单已重置为空 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 9.5 编辑产线
-
-### TC-PL-018:打开编辑弹框并数据回填
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在表格中找到一条产线记录 2. 点击该行的「编 辑」按钮 |
-| **预期结果** | 弹出编辑产线弹框,标题显示"编辑产线";表单自动回填该产线的编码、名称、所区、备注数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-019:编辑产线—修改名称后提交
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 编辑一条产线 2. 修改产线名称为新值 3. 点击「确定」按钮 |
-| **预期结果** | 弹框关闭,显示"操作成功"提示;表格自动刷新,该行显示更新后的产线名称 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-020:编辑产线—修改所属所区后提交
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 编辑一条产线 2. 切换选择另一个所区 3. 点击「确定」按钮 |
-| **预期结果** | 弹框关闭,操作成功;表格刷新后该行的「所属所区」列显示更新后的所区名称 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-021:编辑产线—验证必填项
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 编辑一条产线 2. 清空产线编码或产线名称 3. 清空所区选择 4. 点击「确定」按钮 |
-| **预期结果** | 对应字段出现必填验证提示,表单阻止提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 9.6 删除产线
-
-### TC-PL-022:删除产线—确认删除
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在表格中找到一条产线记录 2. 点击该行的「删 除」按钮 3. 在弹出的确认框中点击「确定」 |
-| **预期结果** | 弹出确认框,标题为"提示",内容为"确定要执行该操作吗?";点击确定后显示"操作成功"提示;表格自动刷新,该产线不再出现在列表中;分页正确调整 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-023:删除产线—取消删除
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击某条产线记录的「删 除」按钮 2. 在弹出的确认框中点击「取消」 |
-| **预期结果** | 确认框关闭,该产线记录仍然保留在表格中,数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 9.7 多语言切换
-
-### TC-PL-024:切换到英文—页面标签
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文语言 2. 查看产线设置页面 |
-| **预期结果** | 所有标签、按钮、表头均切换为英文:搜索区标签 "Production Line Code" / "Production Line Name" / "Plant Area";表格列头 "No." / "Production Line Code" / "Production Line Name" / "Plant Area" / "Remark" / "Actions";工具栏 "Add";行按钮 "Edit" / "Delete" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-025:切换到英文—弹框标题与表单
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击「Add」按钮打开新增弹框 3. 查看弹框内容 |
-| **预期结果** | 弹框标题为 "Add Production Line";表单字段标签为英文;底部按钮为 "Confirm" / "Cancel";所区下拉 placeholder 为 "Please select plant area" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-026:切换到英文—提示信息
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 执行新增/编辑/删除操作 |
-| **预期结果** | 操作成功提示为 "Operation succeeded";删除确认框内容为 "Are you sure to delete?",按钮为 "Confirm" / "Cancel";校验提示为英文(如 "Please enter production line code") |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-027:英文下所有核心功能正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在英文界面下执行完整操作流程:按编码搜索 → 按所区筛选 → 新增产线 → 编辑产线 → 删除产线 → 分页切换 |
-| **预期结果** | 所有功能正常运行,交互逻辑与中文界面一致,无 i18n key 缺失导致的未翻译文本 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 9.8 边界与异常场景
-
-### TC-PL-028:搜索关键词无匹配结果
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在产线编码输入框输入一个不存在的编码(如"ZZZZZZZ") 2. 点击「查询」按钮 |
-| **预期结果** | 表格显示空数据,分页显示总条数为 0;页面无报错 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-029:新增产线—编码重复
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 新增一条产线,编码与已有产线编码完全相同 2. 点击「确定」按钮 |
-| **预期结果** | 后端返回编码重复错误,前端以错误提示形式展示;弹框不关闭,允许用户修改后重新提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-PL-030:删除后分页自动调整
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 翻到最后一页 2. 如果该页只有 1 条数据,将其删除 |
-| **预期结果** | 删除成功后自动跳转到上一页(当前页页码正确调整),不会停留在空页面 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-## 测试结果汇总
-
-| 功能模块 | 测试用例数 | 通过 | 未通过 | 通过率 |
-|----------|-----------|------|--------|--------|
-| 角色管理 | 24 | | | |
-| 用户管理 | 33 | | | |
-| 菜单配置 | 37 | | | |
-| 接口日志 | 20 | | | |
-| 操作日志 | 18 | | | |
-| 问题帮助 | 21 | | | |
-| 产品列表 | 37 | | | |
-| 工艺流程类别 | 36 | | | |
-| 产线设置 | 30 | | | |
-| 工序单元 | 36 | | | |
-| 班组管理 | 35 | | | |
-| **合计** | **327** | | | |
-
----
-
-# 十、班组管理功能测试
-
-> **迁移日期**:2026-06-01
-> **对应页面**:`src/views/production-master-data/team-model/team-management/index.vue`
-> **API 文件**:`src/api/production-master-data/team-management.js`
-> **路由路径**:`/production_configuration/team_model/team_management`
-> **页面结构**:搜索区(班组名称 + 所区下拉 + 产线下拉 + 创建时间范围 + 查询/重置/导出按钮)+ 数据表格 + 新增/编辑弹框(含班组信息和成员管理)+ 导入弹框
-
-## 10.1 页面加载与数据展示
-
-### TC-TM-001:班组管理页面正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击菜单「生产配置 → 班组模型 → 班组管理」 |
-| **预期结果** | 页面正常加载,显示班组列表表格,包含序号、班组名称、所属厂区、所属产线、创建时间、修改时间、操作列;搜索区包含班组名称输入框、所区下拉选择器、产线下拉选择器、创建时间范围选择器;底部有分页组件显示总条数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-002:表格列完整显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看班组列表表格的列头 |
-| **预期结果** | 表格列依次为:序号、班组名称、所属厂区、所属产线、创建时间、修改时间、操作。各列宽度合理,内容不重叠 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-003:工具栏按钮显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看表格上方的工具栏 |
-| **预期结果** | 工具栏左侧显示「新增」、「批量删除」、「导入」按钮,右侧显示「导出」下拉按钮;各按钮类型和颜色符合设计规范 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-004:行内操作按钮显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 查看表格每行的操作列 |
-| **预期结果** | 每行操作列显示「编辑」按钮(带编辑图标)和「删除」按钮(红色危险按钮,带删除图标) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.2 查询与搜索
-
-### TC-TM-005:按班组名称搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在「班组名称」输入框输入一个已知的班组名称 2. 点击「查询」按钮或按 Enter 键 |
-| **预期结果** | 表格数据按班组名称模糊匹配过滤,仅显示匹配的班组记录;分页回到第 1 页 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-006:按所区下拉筛选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击搜索区「所区」下拉框 2. 选择一个具体所区 3. 点击「查询」按钮 |
-| **预期结果** | 下拉框显示所有已存在的所区选项;选择某个所区后查询,表格仅显示属于该所区的班组记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-007:按产线下拉筛选
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 先选择一个所区 2. 点击「所属产线」下拉框 3. 选择一个具体产线 4. 点击「查询」按钮 |
-| **预期结果** | 产线下拉框显示所选所区下的所有产线选项;选择产线后查询,表格仅显示属于该产线的班组记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-008:按创建时间范围搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「最后创建时间」日期范围选择器 2. 选择一个时间范围 3. 点击「查询」按钮 |
-| **预期结果** | 表格数据按创建时间范围过滤,仅显示在指定时间范围内创建的班组记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-009:组合条件搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入班组名称关键字 2. 同时选择一个所区和产线 3. 设置时间范围 4. 点击「查询」按钮 |
-| **预期结果** | 表格数据按多个条件 AND 逻辑过滤,显示同时满足所有条件的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-010:重置搜索条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入搜索条件并查询 2. 点击「重置」按钮 |
-| **预期结果** | 所有搜索条件清空(班组名称、所区、产线、时间范围);表格恢复显示全部数据;分页回到第 1 页 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.3 分页功能
-
-### TC-TM-011:分页切换
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换每页显示条数(10/20/50/100) 2. 点击下一页/上一页 3. 输入页码直接跳转 |
-| **预期结果** | 分页切换正常,表格数据按分页正确加载;总条数显示正确;切换每页条数后当前页重置为第 1 页 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.4 新增班组
-
-### TC-TM-012:打开新增弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击表格上方工具栏「新增」按钮 |
-| **预期结果** | 弹出新增班组弹框,标题显示"新增班组";表单包含班组名称输入框、所属厂区下拉选择器、所属产线下拉选择器;成员管理区域显示"班组成员"标题和"添加成员"按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-013:新增班组—正常提交
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入班组名称(如"测试班组A") 3. 选择所属厂区 4. 选择所属产线 5. 点击"添加成员"按钮 6. 选择成员并设置负责人 7. 点击「确定」按钮 |
-| **预期结果** | 弹框关闭,显示"操作成功"提示消息;表格自动刷新,新增的班组出现在列表中 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-014:新增班组—表单验证(必填项为空)
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写任何内容直接点击「确定」按钮 |
-| **预期结果** | 班组名称字段提示"请输入班组名称";所属厂区字段提示"请选择所属厂区";所属产线字段提示"请选择所属产线";表单阻止提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-015:新增班组—名称长度验证
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在班组名称输入框输入 1 个字符或 21 个字符 3. 点击「确定」按钮 |
-| **预期结果** | 提示"长度在 2 到 20 个字符",表单阻止提交 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-016:新增班组—取消操作
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写部分内容 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,表格数据不变;再次打开新增弹框时表单已重置为空 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.5 编辑班组
-
-### TC-TM-017:打开编辑弹框并数据回填
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在表格中找到一条班组记录 2. 点击该行的「编辑」按钮 |
-| **预期结果** | 弹出编辑班组弹框,标题显示"编辑班组";表单自动回填该班组的名称、所属厂区、所属产线数据;成员管理区域显示该班组的成员列表 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-018:编辑班组—修改名称后提交
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 编辑一条班组 2. 修改班组名称为新值 3. 点击「确定」按钮 |
-| **预期结果** | 弹框关闭,显示"操作成功"提示;表格自动刷新,该行显示更新后的班组名称 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-019:编辑班组—修改所属厂区和产线后提交
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 编辑一条班组 2. 切换选择另一个厂区和产线 3. 点击「确定」按钮 |
-| **预期结果** | 弹框关闭,操作成功;表格刷新后该行的「所属厂区」和「所属产线」列显示更新后的值 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-020:编辑班组—修改成员信息
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 编辑一条班组 2. 在成员管理区域添加/删除成员 3. 设置负责人 4. 点击「确定」按钮 |
-| **预期结果** | 弹框关闭,操作成功;表格刷新后班组成员信息更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.6 删除班组
-
-### TC-TM-021:删除班组—确认删除
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在表格中找到一条班组记录 2. 点击该行的「删除」按钮 3. 在弹出的确认框中点击「确定」 |
-| **预期结果** | 弹出确认框,标题为"提示",内容为"确定要执行该操作吗?";点击确定后显示"操作成功"提示;表格自动刷新,该班组不再出现在列表中;分页正确调整 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-022:删除班组—取消删除
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击某条班组记录的「删除」按钮 2. 在弹出的确认框中点击「取消」 |
-| **预期结果** | 确认框关闭,该班组记录仍然保留在表格中,数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-023:批量删除班组
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 勾选多条班组记录的复选框 2. 点击「批量删除」按钮 3. 在确认框中点击「确定」 |
-| **预期结果** | 弹出确认框询问"确定要删除所选数据吗?";点击确定后显示"操作成功"提示;表格自动刷新,所选班组不再出现在列表中 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.7 导入功能
-
-### TC-TM-024:打开导入弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击「导入」按钮 |
-| **预期结果** | 弹出"生产班组数据导入"弹框,包含文件上传区域、下载模板按钮、预览表格等组件 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-025:下载导入模板
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开导入弹框 2. 点击"下载模板"按钮 |
-| **预期结果** | 成功下载Excel格式的导入模板文件,文件包含正确的列标题(班组名称、所属厂区、所属产线、成员名称、是否负责人等) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-026:上传文件并预览
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开导入弹框 2. 选择符合模板格式的Excel文件 3. 查看预览表格 |
-| **预期结果** | 文件成功上传,预览表格正确显示Excel中的数据内容 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-027:执行数据导入
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 上传有效数据文件 2. 点击「确定」按钮执行导入 |
-| **预期结果** | 显示"导入成功"提示;表格自动刷新,导入的班组数据出现在列表中 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.8 导出功能
-
-### TC-TM-028:直接导出数据
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「导出」下拉箭头 2. 选择"导出"选项 |
-| **预期结果** | 成功下载Excel格式的班组数据文件,包含当前页面显示的所有数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-029:创建下载任务
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「导出」下拉箭头 2. 选择"创建下载任务"选项 |
-| **预期结果** | 显示"创建下载任务成功"提示;自动跳转到下载任务页面 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.9 多语言切换
-
-### TC-TM-030:切换到英文—页面标签
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文语言 2. 查看班组管理页面 |
-| **预期结果** | 所有标签、按钮、表头均切换为英文:搜索区标签 "Team Name" / "Area" / "Production Line";表格列头 "No." / "Team Name" / "Plant Area" / "Production Line" / "Create Time" / "Update Time" / "Actions";工具栏 "Add" / "Batch Delete" / "Import" / "Export";行按钮 "Edit" / "Delete" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-031:切换到英文—弹框标题与表单
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击「Add」按钮打开新增弹框 3. 查看弹框内容 |
-| **预期结果** | 弹框标题为 "Add Team";表单字段标签为英文;底部按钮为 "Cancel" / "Confirm";成员管理区域标签为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-032:切换到英文—提示信息
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 执行新增/编辑/删除操作 |
-| **预期结果** | 操作成功提示为 "Operation succeeded";删除确认框内容为 "Are you sure to delete?",按钮为 "Confirm" / "Cancel";校验提示为英文(如 "Please enter team name") |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-033:英文下所有核心功能正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在英文界面下执行完整操作流程:按名称搜索 → 按所区筛选 → 新增班组 → 编辑班组 → 删除班组 → 分页切换 → 导入导出 |
-| **预期结果** | 所有功能正常运行,交互逻辑与中文界面一致,无 i18n key 缺失导致的未翻译文本 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.10 边界与异常场景
-
-### TC-TM-034:搜索关键词无匹配结果
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在班组名称输入框输入一个不存在的名称(如"ZZZZZZZ") 2. 点击「查询」按钮 |
-| **预期结果** | 表格显示空数据,分页显示总条数为 0;页面无报错 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-TM-035:删除后分页自动调整
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 翻到最后一页 2. 如果该页只有 1 条数据,将其删除 |
-| **预期结果** | 删除成功后自动跳转到上一页(当前页页码正确调整),不会停留在空页面 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-# 十一、工序单元功能测试
-
-> **迁移日期**:2026-06-01
-> **对应页面**:`src/views/production-master-data/process-model/process-step/index.vue`
-> **API 文件**:`src/api/production-master-data/process-step.js`
-> **路由路径**:`/production_configuration/technology_model/technology_flow_workingsubclass`
-> **页面结构**:搜索区(工序单元编码 + 工序单元名称 + 查询/重置按钮)+ 数据表格 + 新增/编辑弹框(含设备类别下拉选择)
-
-## 10.1 页面加载与数据展示
-
-### TC-STEP-001:工序单元页面正常加载
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 点击菜单「生产配置 → 工艺模型 → 工序单元」 |
-| **预期结果** | 页面正常加载,显示工序单元列表表格,包含序号、工序单元编码、工序单元名称、设备类别、备注、操作列;底部分页组件显示总条数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-002:表格列完整显示
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 观察表格列头 2. 横向滚动查看所有列 |
-| **预期结果** | 表格包含以下列:序号、工序单元编码、工序单元名称、设备类别、备注、操作(共 6 列),操作列固定在右侧 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-003:空数据状态展示
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 确保数据库中没有工序单元数据(或清空搜索条件后无匹配数据) |
-| **测试步骤** | 1. 在搜索框中输入一个不存在的工序单元编码 2. 点击「查询」 |
-| **预期结果** | 表格显示空状态提示(如"暂无数据"),分页显示总数为 0 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-004:表格序号正确递增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 加载工序单元列表 2. 观察序号列 |
-| **预期结果** | 序号从 1 开始递增,翻页后序号接续正确 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.2 搜索与分页
-
-### TC-STEP-005:按工序单元编码搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在工序单元编码输入框中输入已知存在的编码 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示编码匹配的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-006:按工序单元名称搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 在工序单元名称输入框中输入已知存在的名称 2. 点击「查询」按钮 |
-| **预期结果** | 表格仅显示名称匹配的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-007:组合搜索
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 同时填写工序单元编码和名称搜索条件 2. 点击「查询」按钮 |
-| **预期结果** | 表格显示同时满足编码和名称条件的记录 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-008:重置搜索条件
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 输入搜索条件并查询 2. 点击「重置」按钮 |
-| **预期结果** | 搜索条件清空,表格恢复显示全部数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-009:分页功能
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换每页显示条数 2. 点击下一页/上一页 3. 输入页码跳转 |
-| **预期结果** | 分页切换正常,表格数据按分页加载,总条数正确显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.3 新增工序单元
-
-### TC-STEP-010:打开新增弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击表格上方工具栏「新增」按钮 |
-| **预期结果** | 弹出新增工序单元弹框,标题显示"新增工序单元",表单字段为空:工序单元编码(输入框)、工序单元名称(输入框)、设备类别(下拉选择)、备注(多行文本域) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-011:新增工序单元成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 输入工序单元编码(如"PS-001")3. 输入工序单元名称(如"测试工序单元001")4. 选择设备类别 5. 输入备注(如"用于测试")6. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格刷新并显示新增的工序单元 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-012:新增工序单元—仅填写必填项
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写编码、名称,选择设备类别 3. 备注留空 4. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",备注字段在表格中显示为空 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-013:新增工序单元—设备类别下拉选择
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 点击设备类别下拉框 |
-| **预期结果** | 下拉列表显示所有设备类别选项,可搜索过滤 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-014:取消新增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写部分内容 3. 点击「取消」按钮或弹框右上角 X |
-| **预期结果** | 弹框关闭,表格数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-015:连续新增
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 新增工序单元 A 成功后 2. 再次点击「新增」按钮 3. 新增工序单元 B |
-| **预期结果** | 弹框表单每次打开时均为空状态,上次填写的内容不残留;两次新增均成功 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.4 编辑工序单元
-
-### TC-STEP-016:打开编辑弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击工序单元列表中任一工序单元行操作列的「编辑」按钮 |
-| **预期结果** | 弹出编辑工序单元弹框,标题显示"编辑工序单元",表单回填该工序单元的编码、名称、设备类别、备注 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-017:编辑工序单元—修改名称
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改工序单元名称(如改为"测试工序单元-已修改")3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格中该行名称更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-018:编辑工序单元—修改设备类别
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 切换选择另一个设备类别 3. 点击「确定」 |
-| **预期结果** | 弹框关闭,提示"操作成功",表格中该行设备类别列更新 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-019:编辑工序单元—工序单元编码不可修改
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 查看工序单元编码输入框 |
-| **预期结果** | 工序单元编码字段显示为禁用状态(灰色不可编辑) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-020:取消编辑
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开编辑弹框 2. 修改内容 3. 点击「取消」按钮 |
-| **预期结果** | 弹框关闭,原数据不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.5 删除工序单元
-
-### TC-STEP-021:删除确认弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 点击工序单元列表中任一工序单元行操作列的「删除」按钮 |
-| **预期结果** | 弹出确认提示框,内容为"确定要执行该操作吗?",有「确定」和「取消」按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-022:删除工序单元成功
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击工序单元行的「删除」按钮 2. 在确认框中点击「确定」 |
-| **预期结果** | 提示"操作成功",该工序单元从列表中消失,分页总数减 1 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-023:取消删除
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 点击「删除」按钮 2. 在确认框中点击「取消」 |
-| **预期结果** | 确认框关闭,工序单元数据保持不变 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-024:删除最后一页唯一数据后的分页处理
-
-| 项目 | 内容 |
-|------|------|
-| **测试前置条件** | 存在数据,且最后一页只有一条记录 |
-| **测试步骤** | 1. 翻到最后一页 2. 删除该页唯一的工序单元 |
-| **预期结果** | 提示"操作成功",自动跳转到前一页,分页总数减 1 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.6 表单校验
-
-### TC-STEP-025:新增表单校验—编码必填
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 不填写工序单元编码 3. 填写其他必填项 4. 点击「确定」 |
-| **预期结果** | 编码输入框下方显示红色校验提示,弹框不关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-026:新增表单校验—名称必填
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写编码 3. 不填写工序单元名称 4. 选择设备类别 5. 点击「确定」 |
-| **预期结果** | 名称输入框下方显示红色校验提示,弹框不关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-027:新增表单校验—设备类别必填
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 填写编码和名称 3. 不选择设备类别 4. 点击「确定」 |
-| **预期结果** | 设备类别下方显示红色校验提示"请选择设备类别",弹框不关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-028:新增表单校验—编码长度上限
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 在编码输入框中输入超过 100 个字符 3. 点击「确定」 |
-| **预期结果** | 编码输入框下方显示红色校验提示"长度在 1 到 100 个字符" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-029:新增表单校验—中文字符正常输入
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开新增弹框 2. 工序单元名称输入中文字符 3. 点击「确定」 |
-| **预期结果** | 表单正常提交,中文内容正确保存 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-030:编辑表单校验—清空必填项
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开已存在工序单元的编辑弹框 2. 清空工序单元名称 3. 点击「确定」 |
-| **预期结果** | 名称输入框下方显示红色校验提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-## 10.7 多语言切换
-
-### TC-STEP-031:切换到英文—页面标签
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文语言 2. 点击菜单进入工序单元页面 |
-| **预期结果** | 搜索区标签显示"Process Unit Code"、"Process Unit Name"、"Search"、"Reset";表格列头显示"No."、"Process Unit Code"、"Process Unit Name"、"Device Category"、"Remark"、"Actions";工具栏按钮显示"Add" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-032:切换到英文—新增弹框标签
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击新增按钮 3. 查看弹框 |
-| **预期结果** | 弹框标题为"Add Process Unit";表单标签为"Process Unit Code"、"Process Unit Name"、"Device Category"、"Remark";底部按钮为"Confirm"、"Cancel" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-033:切换到英文—编辑弹框标签
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 点击某行的编辑按钮 |
-| **预期结果** | 弹框标题为"Edit Process Unit",表单回填正确,所有标签为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-034:切换到英文—提示信息
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 执行新增/编辑/删除操作 |
-| **预期结果** | 操作成功提示为"Operation succeeded";删除确认框内容为"Proceed with this action?";校验提示为英文 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-035:切换到英文—设备类别下拉
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 打开新增弹框 3. 点击设备类别下拉框 |
-| **预期结果** | 下拉 placeholder 为"Please select device category" |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-036:英文下所有操作功能正常
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 在英文界面下执行:搜索、新增工序单元、编辑工序单元、删除工序单元、分页切换 |
-| **预期结果** | 所有功能正常运行,交互逻辑与中文界面一致 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-037:预设设定值按钮权限控制
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 登录系统 2. 进入工序单元页面 3. 查看某行数据的操作列 |
-| **预期结果** | 操作列显示:编辑(黄色)、预设设定值(橙色)、预设结果参数(绿色)、删除(红色)四个按钮 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-038:打开预设设定值弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 进入工序单元页面 2. 点击某行的"预设设定值"按钮 |
-| **预期结果** | 弹出"预设设定值"对话框,标题正确,显示配置区域占位符和提示信息 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-039:预设设定值弹框关闭
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开预设设定值弹框 2. 点击取消按钮 |
-| **预期结果** | 弹框关闭,无错误 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-040:预设设定值提交
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开预设设定值弹框 2. 点击确定按钮 |
-| **预期结果** | 显示"操作成功"提示,弹框关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-041:预设结果参数按钮存在
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 进入工序单元页面,查看操作列按钮 |
-| **预期结果** | 显示"预设结果参数"按钮(绿色图标) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-042:打开预设结果参数弹框
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 进入工序单元页面 2. 点击某行的"预设结果参数"按钮 |
-| **预期结果** | 弹出"预设结果参数"对话框,显示可选参数列表表格(名称、参数、类别、备注、是否唯一、是否上传) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-043:预设结果参数搜索功能
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开预设结果参数弹框 2. 输入名称和参数进行搜索 |
-| **预期结果** | 点击查询按钮后,表格数据根据搜索条件过滤 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-044:新增可选参数
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开预设结果参数弹框 2. 点击"新增一行"按钮 3. 填写参数信息 4. 点击确定 |
-| **预期结果** | 新增成功,列表刷新显示新数据,弹出成功提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-045:编辑可选参数
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开预设结果参数弹框 2. 点击某行的编辑图标 3. 修改信息 4. 点击确定 |
-| **预期结果** | 编辑成功,列表刷新显示更新后的数据 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-046:删除可选参数
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开预设结果参数弹框 2. 点击某行的删除图标 3. 确认删除 |
-| **预期结果** | 删除成功,列表刷新,该数据不再显示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-047:预设结果参数分页
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开预设结果参数弹框 2. 当数据较多时切换分页 |
-| **预期结果** | 分页切换正常,显示正确的页码和总条数 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-048:预设结果参数关闭
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开预设结果参数弹框 2. 点击关闭按钮 |
-| **预期结果** | 弹框正常关闭 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-049:预设结果参数导入功能入口
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 打开预设结果参数弹框 2. 点击"导入"按钮 |
-| **预期结果** | 显示"导入功能开发中"提示 |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
-### TC-STEP-050:预设结果参数英文界面
-
-| 项目 | 内容 |
-|------|------|
-| **测试步骤** | 1. 切换到英文 2. 打开预设结果参数弹框 |
-| **预期结果** | 弹框标题显示"Preset Result Parameters",表格列头显示英文(Name、Parameter、Category等) |
-| **实际结果** | |
-| **测试状态** | ⬜ 通过 / ⬜ 未通过 |
-| **问题描述** | |
-
----
-
-## 测试结果汇总
-
-| 功能模块 | 测试用例数 | 通过 | 未通过 | 通过率 |
-|----------|-----------|------|--------|--------|
-| 角色管理 | 24 | | | |
-| 用户管理 | 33 | | | |
-| 菜单配置 | 37 | | | |
-| 接口日志 | 20 | | | |
-| 操作日志 | 18 | | | |
-| 问题帮助 | 21 | | | |
-| 产品列表 | 37 | | | |
-| 工艺流程类别 | 36 | | | |
-| 产线设置 | 30 | | | |
-| 工序单元 | 50 | | | |
-| **合计** | **306** | | | |
-
----
-
-> **版本记录**:
-> - v1.0 (2026-05-28):初始版本,包含角色管理功能(24 条用例)
-> - v1.1 (2026-05-28):追加用户管理功能(33 条用例)
-> - v1.2 (2026-05-29):追加菜单配置功能(37 条用例)
-> - v1.3 (2026-05-29):追加接口日志功能(20 条用例)
-> - v1.4 (2026-05-29):追加操作日志功能(18 条用例)
-> - v1.5 (2026-05-29):追加问题帮助功能(21 条用例)
-> - v1.6 (2026-06-01):追加产品列表功能(37 条用例)
-> - v1.7 (2026-06-01):追加工艺流程类别功能(36 条用例)
-> - v1.8 (2026-06-01):追加产线设置功能(30 条用例)
-> - v1.9 (2026-06-01):追加工序单元功能(36 条用例)
-> - v1.10 (2026-06-01):追加工序单元预设设定值和预设结果参数功能(14 条用例)
-> - v1.11 (2026-06-01):追加班组管理功能(35 条用例)
diff --git a/docs/迁移任务列表.md b/docs/迁移任务列表.md
index 3d6b726f..6e710d23 100644
--- a/docs/迁移任务列表.md
+++ b/docs/迁移任务列表.md
@@ -2,9 +2,9 @@
> 根据 `后台Webman界面截图对照表.md` 生成。状态以当前 V2 项目中已落地的页面目录为准。
-- 总功能数:79
+- 总功能数:91
- 已迁移:79
-- 未迁移:0
+- 未迁移:12
| 状态 | 一级模块 | 二级模块 | 三级模块 | 功能说明 | V2 目标路径 |
|:---:|---|---|---|---|---|
@@ -87,6 +87,17 @@
| ✅ | 数据中台 (Data Platform) | 生产报表 (Production Reports) | 设备履历报表 (Equipment History Report) | 设备履历报表 | `src/views/data-platform/production-reports/equipment-history/` |
| ✅ | 数据中台 (Data Platform) | 生产报表 (Production Reports) | 电池详情报表 (Battery Detail Report) | 电池详情报表 | `src/views/data-platform/production-reports/battery-detail/` |
| ✅ | 数据中台 (Data Platform) | 相关性分析 (Correlation Analysis) | 鹰眼 (Hawkeye) | 鹰眼 | `src/views/data-platform/correlation-analysis/hawkeye/` |
+| ⬜ | SCADA管理 (SCADA Management) | SCADA管理 (SCADA Management) | SCADA节点配置 (SCADA Node Configuration) | SCADA节点配置功能 | `src/views/scada_manage/basic_configuration/scada_configure` |
+| ⬜ | SCADA管理 (SCADA Management) | SCADA管理 (SCADA Management) | SCADA数据查询 (SCADA Data Query) | SCADA数据查询功能 | `src/views/scada_manage/basic_configuration/scada_query` |
+| ⬜ | SCADA管理 (SCADA Management) | SCADA管理 (SCADA Management) | 节点设备映射 (Node Device Mapping) | 节点设备映射功能 | `src/views/scada_manage/basic_configuration/node_mapping_device_code` |
+| ⬜ | SCADA管理 (SCADA Management) | 环控管理 (Environmental Control Management) | 环控节点配置 (Environmental Control Node Configuration) | 环控节点配置功能 | `src/views/scada_manage/basic_configuration/ems_configure` |
+| ⬜ | SCADA管理 (SCADA Management) | 环控管理 (Environmental Control Management) | 环控数据查询 (Environmental Control Data Query) | 环控数据查询功能 | `src/views/scada_manage/basic_configuration/ems_query` |
+| ⬜ | SCADA管理 (SCADA Management) | 环控管理 (Environmental Control Management) | 车间配置 (Workshop Configuration) | 车间配置功能 | `src/views/scada_manage/workshop_manage/workshop_config` |
+| ⬜ | SCADA管理 (SCADA Management) | 环控管理 (Environmental Control Management) | 车间点位管理 (Workshop Point Management) | 车间点位管理功能 | `src/views/scada_manage/workshop_manage/workshop_point` |
+| ⬜ | SCADA管理 (SCADA Management) | 前置采集管理 (Pre-acquisition Management) | 服务配置 (Service Configuration) | 服务配置功能 | `src/views/scada_manage/lecpserver/edgeserverconfigure` |
+| ⬜ | SCADA管理 (SCADA Management) | 前置采集管理 (Pre-acquisition Management) | 服务监控 (Service Monitoring) | 服务监控功能 | `src/views/scada_manage/lecpserver/edgeservermonitor` |
+| ⬜ | SCADA管理 (SCADA Management) | 前置采集管理 (Pre-acquisition Management) | 前置服务日志 (Pre-service Logs) | 前置服务日志功能 | `src/views/scada_manage/lecpserver/edgeserver_log` |
+| ⬜ | SCADA管理 (SCADA Management) | 前置采集管理 (Pre-acquisition Management) | 实时采集监控 (Real-time Gathering Monitoring) | 实时采集监控功能 | `src/views/scada_manage/device_gather/battery_device_gather_monitor` |
## 状态说明
diff --git a/docs/运行提示词.md b/docs/运行提示词.md
deleted file mode 100644
index 5d550e51..00000000
--- a/docs/运行提示词.md
+++ /dev/null
@@ -1,25 +0,0 @@
-ṩļ Ǩʾ.md ʹ˵.md ̨Webmanͼձ.md еϢִС Ϣ ǨƹǨƺһϸĹܲĵĵΪԱIJָϡԱ谴ĵִвԣԲͨĿйѡǣδͨĿ¼⡣
-
-ҪҪ
-
-1. ˲ĵĵķʽÿɹǨƺ¹ܵIJݷŵÿܵĵ
-
-2. ݱϸҪأ
-
-- ԻҪ
-
-- ǰ
-
-- ϸIJԲ裨ÿȷ˵
-
-- Ԥڽ塢֤
-
-- ʵʽ¼
-
-- ͨ/ʧ״̬
-
-- ¼
-
-3. ȷ̸ûܵкIJûѯ༭ɾȨ
-
-4. ĵʽӦڲԱִв¼
\ No newline at end of file