Site Tools


Hotfix release available: 2026-07-14c "Mort". upgrade now! [57.3] (what's this?)
测试管理系统h5:冷启动文件

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
测试管理系统h5:冷启动文件 [2026/10/23 07:04] – 4.69 电路类导出报告修复 172.17.0.1测试管理系统h5:冷启动文件 [2026/10/26 10:06] (current) – 4.71 开度4个手动槽位 172.17.0.1
Line 1450: Line 1450:
  
 ⚠️ 提醒:手机上导 Word/PDF,微信内置浏览器**不支持下载**,需点右上角「⋯」→「在浏览器打开」;Web 报告在微信里可直接看。 ⚠️ 提醒:手机上导 Word/PDF,微信内置浏览器**不支持下载**,需点右上角「⋯」→「在浏览器打开」;Web 报告在微信里可直接看。
 +
 +====== 4.70 气密性测试新增「第3步:全关」(2026-10-23) ======
 +
 +**需求**:气密性测试原来只有第1步(堵住A口)、第2步(堵住B口),**新增第3步 = 全关的情况**。
 +
 +===== 三步定义(阀门气密) =====
 +| 步骤 | 状态 | 说明 |
 +|---|---|---|
 +| 第1步 | 堵住A口 | 堵住A口,调节A口开度,调节水压 |
 +| 第2步 | 堵住B口 | 堵住B口,调节B口开度,调节水压 |
 +| **第3步** | **全关** | **阀门全部关闭,观察各部位渗漏** |
 +
 +⚠️ **表压气密性测试(表压测试分类)仍只有第1步**,不受影响。
 +
 +===== 实现要点(`test.html`) =====
 +<code>
 +function stepKeyOf(n){ return n===1?'step1':(n===2?'step2':'step3'); }
 +function stepNums(){ return isTPQItem()?[1]:[1,2,3]; }   // 表压气密只有第1步
 +function stepTitle(n){ n=1→堵住A口… ; n=2→堵住B口… ; n=3→全关(阀门全部关闭,观察各部位渗漏)}
 +function _mergeAllSteps(container){ … }                  // 跨步配置并集支持 3 步
 +</code>
 +- 管理员 `renderStruct` 与 **测试员 `wxStructTable`** 两套渲染都支持三步
 +- 默认 `t_struct` 增加 `step3:{opens,press,time,cells}`
 +- **全量**与**批量**两种记录方式都支持第3步(各自可配 开度/压力/时间)
 +- 第3步默认沿用第1/2步的开度压力(`_mergeAllSteps`),不会出现空表
 +
 +===== 报告(`test_api.py`) =====
 +<code>
 +def _step_list(st):   # 第1/2步始终输出(历史兼容);第3步仅在已配置时输出
 +</code>
 +Web / Word / PDF **三种报告**都包含第3步;批量报告的三处表格也补齐第3步。
 +
 +===== ★ 顺带修复的旧 bug =====
 +气密表格单元格的 `onchange` 行内**直接引用了函数局部变量** `o / p / j / bi2 / bi3`:
 +<code>
 +onchange="setCell(...);logAdd('更新 '+o+'开度/'+p+' 第'+(j+1)+'台 …')"
 +<!-- o/p/j 在事件触发时不存在 → Uncaught ReferenceError(步骤1/2 同样报错)-->
 +</code>
 +改为 **`logCell(this)`**:由函数从表格结构(首列"开度/压力" + 表头"第N台")推导日志文案。
 +现在三步任意单元格改数据都**零报错**。
 +
 +===== 验证 =====
 +| 项 | 结果 |
 +|---|---|
 +| 管理员视图(阀体气密)| ✅ 第1/2/3 步配置块与数据表齐全 |
 +| 测试员视图(`IS_WX`)| ✅ 三步齐全,第3步文案「全关」 |
 +| 第3步生成数据表 / 填值 / 保存 | ✅ cells 落库(如 `{"0%|1.0bar":{"1":"微漏"}}`)|
 +| 改任意步骤单元格 | ✅ 无 JS 错误(旧版三步都报 ReferenceError)|
 +| Web / Word / PDF 报告 | ✅ 均含「第3步:全关」(28KB / 18.5MB / 957KB)|
 +| 老文档(无 step3)报告 | ✅ 不出现第3步(`_step_list` 按需输出)|
 +| 表压气密性测试 | ✅ 仍只有第1步 |
 +| 数据安全 | 用「复制」副本验证,真实文档未改动;副本已删除 |
 +
 +====== 4.71 气密性测试:开度改为「4 个手动选择槽位」(2026-10-26) ======
 +
 +**需求**:开度选择提供 **4 个选项位置**,每个位置可手动选开度(**0%~100%,步进 10%**)。
 +
 +===== 改前 / 改后 =====
 +| | 改前 | 改后 |
 +|---|---|---|
 +| 控件 | 6 个固定勾选框(0/20/40/60/80/100%,可多选)| **4 个下拉**,每个可选 0%~100% 步进10%(含"空")|
 +| 组合 | 只能选那 6 个值 | 任意 4 个,如 0%/30%/60%/100% |
 +
 +===== 实现(`test.html`) =====
 +<code>
 +var OPEN_STEPS = 0%,10%,…,100%;               // 步进 10%
 +function openSlotSelects(step,curOpens,cls,attr) // 生成 4 个下拉
 +function openValSort(list)                      // 去重 + 按数值排序
 +function openExtraHint(opens)                   // 超出4个的历史开度提示"已保留"
 +</code>
 +- **全量模式**:`select.o-slot`(`stepBlock`)
 +- **批量模式**:三步都用 `select.bo-slot`(`batchBlock`)
 +- `buildTable()` / `batchGen()` 改为从下拉取值
 +
 +===== 历史兼容规则(重要) =====
 +<code>
 +· 打开老文档、四个槽位未被改动 → 保留原有【全部】开度(如原来 6 个,仍是 6 个表格)
 +· 一旦改动槽位 → 严格按这 4 个(或更少)生成
 +· 原有超出 4 个的开度会在界面上提示"原有额外开度(已保留)"
 +</code>
 +⚠️ 表压气密性测试(表压测试分类)**没有开度概念**,仍隐藏开度行、固定 100%/0.4MPa。
 +
 +===== 验证 =====
 +| 项 | 结果 |
 +|---|---|
 +| 全量:下拉数量/选项 | ✅ 每步 4 个下拉;选项 `—,0%,10%,…,100%`(12 项)|
 +| 全量:老值回填 | ✅ 原 0%/100% 自动填入前两个槽位 |
 +| 全量:改选 0/30/60/100 | ✅ `step1.opens` 准确写入,数据表 34 行 |
 +| 批量:三步下拉 | ✅ 12 个(3 步 × 4)|
 +| 批量:未改动 | ✅ 历史 6 个开度全部保留 |
 +| 批量:改选 0%/50% | ✅ 严格按 2 个生成 |
 +| 表压气密(回归)| ✅ 无开度下拉、无第2/3步、仍 0.4MPa |
 +| JS 错误 | ✅ 无 |
 +| 数据安全 | 全部用「复制副本」验证,真实文档未动;副本已删 |
 +
 +⚠️ 踩坑:`batchGen()` 里 `b[key]` 与 `st.batch[key]` 是**同一个对象引用**,
 +先 `b[key].opens=[]` 再取旧值 → 永远拿到空数组 → 必须**清空前先备份**。
  
 ====== 5. 测试项模板 ====== ====== 5. 测试项模板 ======
测试管理系统h5/冷启动文件.1792739087.txt.gz · Last modified: by 172.17.0.1 · Currently locked by: 216.73.216.247