Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

13 строки
8.8 KiB

  1. <!doctype html><html lang="zh-CN"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>JS+HTML 虚拟训练完整流程验收</title><style>
  2. *{box-sizing:border-box}body{margin:0;background:#eef5f3;color:#193b35;font:15px/1.75 system-ui,"Microsoft YaHei",sans-serif}main{max-width:1320px;margin:28px auto;padding:0 24px}header,section{background:white;border:1px solid #c8ded7;border-radius:12px;padding:24px;margin-bottom:20px}h1{font-size:28px;margin:0 0 8px}h2{font-size:20px;margin:0 0 14px}p{margin:8px 0}.pass{color:#087c60;font-weight:700}.meta{color:#58786d}table{width:100%;border-collapse:collapse}td,th{border:1px solid #dce9e4;padding:10px 14px;text-align:left;vertical-align:top}th{background:#f1f7f4}.shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}figure{margin:0;border:1px solid #dce9e4;border-radius:8px;overflow:hidden}figure img{width:100%;display:block}figcaption{padding:10px 14px}a{color:#087c60}code{overflow-wrap:anywhere}details{margin:14px 0}pre{white-space:pre-wrap;max-height:300px;overflow:auto;background:#f4f8f6;padding:14px}@media(max-width:800px){.shots{grid-template-columns:1fr}main{padding:0 12px}section{padding:16px}}
  3. </style><main><header><h1>JS+HTML 虚拟训练完整流程验收</h1><p class="pass">15 项实测检查通过 · 111 项前端契约测试通过 · 552 项后端测试通过</p><p class="meta">时间:2026/9/12 23:50:03 · 环境:本机 6180 Web → 6100 Gateway → Tran/Auth · Edge 无头浏览器真实交互</p><p>本轮覆盖虚拟训练高级编排、虚拟通道正式考试、教员评定与数据中心,并回归既有 JS+HTML 运行/预览。所有训练进度、交卷、评定及编排状态由真实接口处理。</p></header>
  4. <section><h2>迁移结果</h2><table><tr><th>环节</th><th>实现与验证</th></tr>
  5. <tr><td>高级编排</td><td>服务端按发布连线执行开始、步骤、结束、条件、安全、事件等待、故障注入/清除、建议评分、相机及音频节点。等待与超时阻止推进;分支跳过记为 SKIPPED;刷新恢复;教员页面确认事件;相同命令重放不重复推进。</td></tr>
  6. <tr><td>正式考试</td><td>虚拟通道使用 JS+HTML 工作区,逐步获取 execution 安全投影;关闭帮助、数字人、答案高亮、爆炸和回放。三维选择后提交,交卷后关闭执行资源;到期关闭工作区并由服务端拒绝资源访问。非虚拟通道保留设备/岗位推进规则。</td></tr>
  7. <tr><td>评分与统计</td><td>服务端逐步保留考试操作证据;教员在评定弹窗查看并打分,学员不能自评或获取私有证据聚合。数据中心页面可查询成绩及详情。</td></tr>
  8. <tr><td>普通训练回归</td><td>桥梁结构树、聚焦、高亮、隐藏、标签、爆炸、复位、数字教员;卡车四类动画与复位;工具、安全和测量记录恢复;真实点击与拖动;网络失败不提前推进,恢复后重试;他人运行只读观察。</td></tr></table></section>
  9. <section><h2>真实流程检查</h2><table><tr><th>检查</th><th>结果</th></tr><tr><td>正式考试进入 JS+HTML,仅读取服务端当前步骤,关闭数字人和目标提示</td><td class="pass">通过</td></tr><tr><td>实际三维选择、逐步提交、重新获取下一安全投影、最终交卷</td><td class="pass">通过</td></tr><tr><td>学员不能自评;教员评分后学员可见,统计明细包含本次运行</td><td class="pass">通过</td></tr><tr><td>数据中心页面查询正式考核成绩与记录详情</td><td class="pass">通过</td></tr><tr><td>考试到期自动关闭工作区;服务端拒绝继续获取执行投影和资产,教员完成超时结算</td><td class="pass">通过</td></tr><tr><td>故障真值与编排游标在服务端;超时仍等待,刷新恢复;学员不能注入事件或提前交卷</td><td class="pass">通过</td></tr><tr><td>教员页面确认事件、服务端选择分支、明确跳过第一步、真实操作第二步、清除故障与提交</td><td class="pass">通过</td></tr><tr><td>编排训练交卷后由教员评分,真实统计包含本次运行</td><td class="pass">通过</td></tr><tr><td>桥梁:完整结构树、聚焦、高亮、隐藏、标签、爆炸、复位和数字教员</td><td class="pass">通过</td></tr><tr><td>卡车:正式工作区播放四种已编排动画轨道并保持末帧</td><td class="pass">通过</td></tr><tr><td>学员:工具、安全、测量记录通过真实接口保存并刷新恢复</td><td class="pass">通过</td></tr><tr><td>进度请求失败时不在本地提前完成步骤</td><td class="pass">通过</td></tr><tr><td>步骤完成服务器确认后推进,下一步动画按发布片段复位</td><td class="pass">通过</td></tr><tr><td>真实两步操作完成、服务端判定、提交结果闭环</td><td class="pass">通过</td></tr><tr><td>维护账号观察他人运行时只读,不修改学员进度</td><td class="pass">通过</td></tr></table></section>
  10. <section><h2>验证命令与证据</h2><p><code>pnpm run build</code>(含 vue-tsc 与正式资源构建校验);<code>node --test</code> 执行 teaching/virtual/training 的 *.test.mjs;Java 17 下 <code>mvn test</code>。</p><table><tr><th>后端模块</th><th>测试数</th><th>失败 / 错误</th></tr><tr><td>ut_gateway</td><td>1</td><td>0 / 0</td></tr><tr><td>ut_auth</td><td>134</td><td>0 / 0</td></tr><tr><td>ut_tran</td><td>417</td><td>0 / 0</td></tr></table><p>构建存在现有大分块提示。原型同步检查提示 upstream 与同步基线存在差异,本次未执行覆盖式原型同步。</p><p>脚本:<code>virtual-html-exam-live.mjs</code>、<code>virtual-html-workflow-live.mjs</code>、<code>virtual-html-live.mjs</code>。原始结果:<a href="exam-checks.json">考试</a>、<a href="workflow-checks.json">编排</a>、<a href="../virtual-html-workspace-20260912/checks.json">普通训练回归</a>。</p></section>
  11. <section><h2>数据库与使用边界</h2><p>已在开发库执行并重复验证两项增量:040 扩展 SKIPPED 步骤状态,041 扩展编排命令幂等回执类型。完整 SQL、数据库设计与接口文档同步更新;其他环境需先执行增量再更新服务。</p><p><a href="migration.json">040 执行记录与原约束</a> · <a href="migration-commands.json">041 执行记录与原约束</a></p><p>外部事件本轮通过教员页面及授权 HTTP 接口验证,未连接现场真实设备;故障状态用于服务端流程判定,不能据此宣称已完成真实设备故障模拟。普通教员预览沿用连续步骤预演接口,高级分支验收在真实学员运行中完成。</p></section>
  12. <section><h2>保留的验收数据</h2><p>最新正式考试:任务 84 / 运行 83(86 分);截止时间测试:任务 85 / 运行 84;高级编排:任务 81 / 运行 80(91 分)。</p><p>已停用 22 个不用的临时测试账号,保留最新 3 个验收账号。过程记录、失败重试记录与历史任务保留供审计和复查,未为了清理而补造评定。</p><p><a href="retained-fixtures.json">完整测试数据清单</a> · <a href="cleanup.json">账号清理结果</a></p></section>
  13. <section><h2>页面证据</h2><div class="shots"><figure><a href="01-exam-current-step.png" target="_blank"><img loading="lazy" src="01-exam-current-step.png" alt="正式考试:当前安全投影与实际三维选择"></a><figcaption>正式考试:当前安全投影与实际三维选择</figcaption></figure><figure><a href="03-workflow-waiting.png" target="_blank"><img loading="lazy" src="03-workflow-waiting.png" alt="高级编排:等待外部事件,超时保持阻断"></a><figcaption>高级编排:等待外部事件,超时保持阻断</figcaption></figure><figure><a href="04-teacher-workflow-event.png" target="_blank"><img loading="lazy" src="04-teacher-workflow-event.png" alt="教员页面确认外部事件"></a><figcaption>教员页面确认外部事件</figcaption></figure><figure><a href="05-workflow-submitted.png" target="_blank"><img loading="lazy" src="05-workflow-submitted.png" alt="高级编排路径完成并提交"></a><figcaption>高级编排路径完成并提交</figcaption></figure><figure><a href="06-teacher-exam-review.png" target="_blank"><img loading="lazy" src="06-teacher-exam-review.png" alt="教员查看逐步考试证据并评分"></a><figcaption>教员查看逐步考试证据并评分</figcaption></figure><figure><a href="07-exam-analytics.png" target="_blank"><img loading="lazy" src="07-exam-analytics.png" alt="数据中心查询成绩与记录详情"></a><figcaption>数据中心查询成绩与记录详情</figcaption></figure><figure><a href="08-exam-deadline.png" target="_blank"><img loading="lazy" src="08-exam-deadline.png" alt="考试到期关闭工作区"></a><figcaption>考试到期关闭工作区</figcaption></figure></div></section></main></html>