voc-validation-ch2-package.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // ==============================================================================
  2. // VOC 验证报告 · Ch2 包装调研 · 5 子章(快照模式)
  3. // ------------------------------------------------------------------------------
  4. // 原始模块因 PowerShell GBK 编码事故损坏后,改为从 _slides-snapshot.json 还原
  5. // 快照来源:reports/jiangzhong-liver-voc-validation-report.html(2026-04-19 生成)
  6. // 若需更新内容,请重跑 _extract-slides.js 重新抓取快照。
  7. // ==============================================================================
  8. const fs = require('fs');
  9. const path = require('path');
  10. let _snapshot = null;
  11. function getSnapshot() {
  12. if (!_snapshot) {
  13. _snapshot = JSON.parse(fs.readFileSync(
  14. path.join(__dirname, '..', '_slides-snapshot.json'), 'utf8',
  15. ));
  16. }
  17. return _snapshot;
  18. }
  19. function fromSnapshot(id, slideNum) {
  20. const sec = getSnapshot()[id];
  21. if (!sec) {
  22. return `<section class="report-section" id="${id}" data-slide-num="${slideNum}"><div class="section-inner"><h2 class="text-h1">[Missing] ${id}</h2></div></section>`;
  23. }
  24. return sec.html.replace(/data-slide-num="[^"]+"/, `data-slide-num="${slideNum}"`);
  25. }
  26. function renderPackage1Diagnosis({ slideNum } = {}) { return fromSnapshot('package-1', slideNum); }
  27. function renderPackage2Outer({ slideNum } = {}) { return fromSnapshot('package-2', slideNum); }
  28. function renderPackage3Inner({ slideNum } = {}) { return fromSnapshot('package-3', slideNum); }
  29. function renderPackage4Tablet({ slideNum } = {}) { return fromSnapshot('package-4', slideNum); }
  30. function renderPackage5SKU({ slideNum } = {}) { return fromSnapshot('package-5', slideNum); }
  31. module.exports = {
  32. renderPackage1Diagnosis,
  33. renderPackage2Outer,
  34. renderPackage3Inner,
  35. renderPackage4Tablet,
  36. renderPackage5SKU,
  37. };