Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

12 Zeilen
4.3 KiB

  1. import fs from 'node:fs';
  2. import assert from 'node:assert/strict';
  3. const dir='reports/bridge-3d-only-20260914';
  4. const acceptance=JSON.parse(fs.readFileSync(dir+'/acceptance.json','utf8'));
  5. const cleanup=JSON.parse(fs.readFileSync(dir+'/cleanup.json','utf8'));
  6. assert.equal(acceptance.pass,true);assert.equal(cleanup.pass,true);
  7. for(const stage of ['before-check','before-applied','after-check','after-applied','v1-history-check','v1-history-applied','legacy-v1-source-check','legacy-v1-source-applied'])fs.copyFileSync(`E:/work/edit_3d/.codex-tmp/bridge-3d-only-migration/${stage}.json`,`${dir}/migration-${stage}.json`);
  8. fs.copyFileSync('reports/bridge-scripted-tasks-20260913/registered.json',dir+'/registered.json');
  9. const registered=JSON.parse(fs.readFileSync(dir+'/registered.json','utf8'));
  10. const esc=s=>String(s).replaceAll('&','&amp;').replaceAll('<','&lt;').replaceAll('"','&quot;');
  11. fs.writeFileSync(dir+'/index.html',`<!doctype html><html lang="zh-CN"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>桥梁四流程三维版本生效验收</title><style>body{margin:0;background:#f1f6f5;color:#193c35;font:15px/1.7 system-ui,sans-serif}main{max-width:1200px;margin:28px auto;background:#fff;padding:30px}h1{font-size:26px}h2{font-size:20px;margin-top:32px}table{width:100%;border-collapse:collapse}td,th{padding:12px;border:1px solid #d2e0da;text-align:left}th,figcaption{background:#eef5f2}a{color:#007961}figure{margin:24px 0}img{width:100%;border:1px solid #d2e0da}figcaption{padding:10px}.pass{color:#007961;font-weight:bold}aside{padding:15px;background:#fff7e8;border-left:4px solid #d59d39}</style><main><h1>桥梁四流程 · 三维版本正式生效验收</h1><p>2026-09-14 · 开发环境 · 127.0.0.1:6180 / 192.168.31.168:6180 · 通过 6100 Gateway。</p><p class="pass">PASS:文字播放器及兼容分支已移除;四条原任务均进入 HTML+JS 三维工作区。</p><table><tr><th>任务</th><th>原入口 ID</th><th>脚本版本</th><th>内容版本</th><th>步骤</th></tr>${registered.map(t=>`<tr><td>${esc(t.code)} ${esc(t.name)}</td><td>${esc(t.id)}</td><td>${esc(t.scriptVersion)}</td><td>${esc(t.versionId)}</td><td>${t.steps}</td></tr>`).join('')}</table><p>005 的 v2 是原三维版本,保留。006–008 只接受 v3,不允许文字版降级。静态 JS 仅决定内容来源,学员训练照常保存进度、提交、评定成绩与统计。</p><h2>数据修复</h2><p>经负责人授权,042 软删除错误运行 102、103 及关联事实。006、007 保留原任务编号,通过正式接口发布并绑定新内容版本;无活动引用的错误文字内容版本软删除。005 有效运行保留。修复前备份位于工作区本地目录,未写入此报告。</p><ul>${['before-check','before-applied','after-check','after-applied','v1-history-applied','legacy-v1-source-applied'].map(s=>`<li><a href="migration-${s}.json">${s} 执行证据</a></li>`).join('')}</ul><h2>正式任务闭环验证</h2><p>管理员预览 + 临时学员直接领取四条原任务。39 步、94 次三维操作,提交后由教员示例评分 85 分,核验学员可见成绩与统计。临时账号、运行、成员及关联数据已清理,四条任务不残留验收成绩。</p><ul>${acceptance.checks.map(c=>`<li>${esc(c)}</li>`).join('')}</ul><p>后端 422 项测试、前端 6 项脚本/模型/路由检查与生产构建通过。</p><p><a href="acceptance.json">完整验收结果</a> · <a href="cleanup.json">测试数据清理</a> · <a href="final-state.json">Final database state</a> | <a href="registered.json">正式版本映射</a></p><aside>模型匹配边界仍按前轮验收:007 泵体和四颗螺栓来自原模型并在原位拆装;006 保障车接口、008 两腔平衡阀等缺失结构仍为明确标注的补充示意。版本生效不代表这些部件已达到实车工程精度。</aside><h2>正式入口截图</h2><figure><img src="task-list.png"><figcaption>任务列表仍为四条</figcaption></figure>${registered.map(t=>`<figure><img loading="lazy" src="${t.code}-original-preview.png"><figcaption>${esc(t.code)} 原任务三维预览</figcaption></figure><figure><img loading="lazy" src="${t.code}-reviewed.png"><figcaption>${esc(t.code)} 学员流程完成与成绩显示(验收数据已清理)</figcaption></figure>`).join('')}</main></html>`);