achievement-exam-sprint-report-template.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8"/>
  5. <title>{{reportTitle}}</title>
  6. <style>
  7. @page {
  8. size: A4;
  9. margin: 0;
  10. }
  11. body {
  12. margin: 0;
  13. padding: 0;
  14. background: #f5f7fa;
  15. color: #263241;
  16. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  17. font-size: 14px;
  18. line-height: 1.72;
  19. }
  20. .report-container {
  21. max-width: 1200px;
  22. margin: 0 auto;
  23. background: #fff;
  24. border: 1px solid #e7edf5;
  25. border-radius: 14px;
  26. padding: 32px;
  27. }
  28. .report-title {
  29. margin: 0 0 8px;
  30. color: #233f76;
  31. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  32. font-size: 28px;
  33. font-weight: 700;
  34. text-align: center;
  35. }
  36. .report-subtitle {
  37. margin: 0 0 24px;
  38. color: #68768a;
  39. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  40. text-align: center;
  41. }
  42. .result-header {
  43. margin: 0 0 22px;
  44. padding: 22px 24px;
  45. background: #fff7ed;
  46. border: 1px solid #ffe1c2;
  47. border-radius: 14px;
  48. text-align: center;
  49. page-break-inside: avoid;
  50. }
  51. .completion-title {
  52. margin: 0 0 6px;
  53. color: #9a4f00;
  54. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  55. font-size: 22px;
  56. font-weight: 700;
  57. }
  58. .completion-subtitle {
  59. margin: 0;
  60. color: #7b5a2f;
  61. }
  62. .result-grid {
  63. width: 100%;
  64. table-layout: fixed;
  65. border-collapse: separate;
  66. border-spacing: 14px 0;
  67. margin-bottom: 26px;
  68. }
  69. .result-card {
  70. width: 25%;
  71. vertical-align: top;
  72. background: #f8fbff;
  73. border: 1px solid #e2eaf5;
  74. border-radius: 12px;
  75. padding: 14px;
  76. text-align: center;
  77. page-break-inside: avoid;
  78. }
  79. .result-value {
  80. color: #ff7d00;
  81. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  82. font-size: 24px;
  83. font-weight: 700;
  84. line-height: 1.2;
  85. }
  86. .result-label {
  87. margin-top: 6px;
  88. color: #56657a;
  89. font-size: 13px;
  90. }
  91. .section {
  92. margin-top: 24px;
  93. page-break-inside: avoid;
  94. }
  95. .section-title {
  96. margin: 0 0 14px;
  97. border-left: 6px solid #ff7d00;
  98. padding-left: 12px;
  99. color: #233f76;
  100. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  101. font-size: 20px;
  102. font-weight: 700;
  103. }
  104. .comparison-section {
  105. margin-top: 0;
  106. margin-bottom: 50px;
  107. }
  108. .comparison-section .section-title {
  109. margin: 0 0 25px;
  110. }
  111. .card {
  112. background: #fafbfc;
  113. border: 1px solid #eaeef5;
  114. border-radius: 10px;
  115. padding: 25px;
  116. page-break-inside: avoid;
  117. }
  118. .chart-box {
  119. width: 100%;
  120. height: 260px;
  121. margin: 10px 0;
  122. background: #f8fbff;
  123. border-radius: 10px;
  124. }
  125. .data-text {
  126. color: #444;
  127. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  128. font-size: 14px;
  129. line-height: 1.8;
  130. }
  131. .chart-box svg {
  132. display: block;
  133. width: 100%;
  134. height: 100%;
  135. }
  136. .chart-value {
  137. fill: #233f76;
  138. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  139. font-size: 13px;
  140. font-weight: 700;
  141. }
  142. .chart-label {
  143. fill: #56657a;
  144. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  145. font-size: 12px;
  146. }
  147. .chart-tick-label {
  148. fill: #68768a;
  149. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  150. font-size: 11px;
  151. }
  152. .detail-text {
  153. margin: 8px 0;
  154. color: #3d4a5d;
  155. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  156. }
  157. .highlight {
  158. color: #ff7d00;
  159. font-weight: 700;
  160. }
  161. .hit-panel {
  162. background: #f8fbff;
  163. border: 1px solid #e2eaf5;
  164. border-radius: 12px;
  165. padding: 18px;
  166. page-break-inside: avoid;
  167. }
  168. .hit-stats {
  169. width: 100%;
  170. table-layout: fixed;
  171. border-collapse: separate;
  172. border-spacing: 12px 0;
  173. margin-bottom: 14px;
  174. }
  175. .hit-stat {
  176. width: 25%;
  177. background: #fff;
  178. border: 1px solid #e7edf5;
  179. border-radius: 10px;
  180. padding: 12px;
  181. text-align: center;
  182. }
  183. .hit-stat-label {
  184. color: #68768a;
  185. font-size: 12px;
  186. }
  187. .hit-stat-value {
  188. color: #233f76;
  189. font-size: 18px;
  190. font-weight: 700;
  191. }
  192. .word-list {
  193. margin-top: 10px;
  194. }
  195. .word-item {
  196. display: inline-block;
  197. margin: 0 8px 8px 0;
  198. padding: 5px 12px;
  199. border-radius: 999px;
  200. background: #fff1e7;
  201. color: #9a4f00;
  202. font-family: 'MiSans VF', MiSans, ReportFont, sans-serif;
  203. font-weight: 600;
  204. }
  205. .word-empty {
  206. padding: 14px;
  207. border: 1px dashed #c6d2e3;
  208. border-radius: 10px;
  209. color: #68768a;
  210. text-align: center;
  211. }
  212. </style>
  213. </head>
  214. <body>
  215. <div class="report-container">
  216. <h1 class="report-title">{{reportTitle}}</h1>
  217. <p class="report-subtitle">{{reportSubtitle}}</p>
  218. <div class="result-header">
  219. <h2 class="completion-title">{{completionTitle}}</h2>
  220. <p class="completion-subtitle">{{completionSubtitle}}</p>
  221. </div>
  222. <table class="result-grid" role="presentation">
  223. <tr>
  224. <td class="result-card">
  225. <div class="result-value">{{vocabularyGrowthText}}</div>
  226. <div class="result-label">词汇量提升(个)</div>
  227. </td>
  228. <td class="result-card">
  229. <div class="result-value">{{paperKnownWordsGrowthText}}</div>
  230. <div class="result-label">试卷熟词提升(个)</div>
  231. </td>
  232. <td class="result-card">
  233. <div class="result-value">{{unknownWordHitRateText}}</div>
  234. <div class="result-label">试卷掌握度命中率</div>
  235. </td>
  236. <td class="result-card">
  237. <div class="result-value">{{learningEfficiencyText}}</div>
  238. <div class="result-label">学习效率提升</div>
  239. </td>
  240. </tr>
  241. </table>
  242. <div class="section comparison-section">
  243. <h2 class="section-title">模块一:词汇量对比</h2>
  244. <div class="card">
  245. <div class="chart-box">{{vocabularyComparisonChart}}</div>
  246. <div class="data-text">训练前词汇量:<span class="highlight">{{vocabularyBeforeText}}</span><br/>
  247. 训练后词汇量:<span class="highlight">{{vocabularyAfterText}}</span><br/>
  248. 本次提升:<span class="highlight">{{vocabularyGrowthDetailText}}</span><br/>
  249. {{stageVocabularyLabel}}:<span class="highlight">{{stageVocabularyText}}</span><br/>
  250. 掌握率:<span class="highlight">{{studentVocabMasteryBeforeText}} -&gt; {{studentVocabMasteryAfterText}}</span><br/>
  251. 掌握率提升:<span class="highlight">{{studentVocabMasteryImprovementText}}</span></div>
  252. </div>
  253. </div>
  254. <div class="section comparison-section">
  255. <h2 class="section-title">模块二:试卷熟词量对比</h2>
  256. <div class="card">
  257. <div class="chart-box">{{paperKnownWordsComparisonChart}}</div>
  258. <div class="data-text">训练前熟词量:<span class="highlight">{{paperKnownWordsBeforeText}}</span><br/>
  259. 训练后熟词量:<span class="highlight">{{paperKnownWordsAfterText}}</span><br/>
  260. 本次提升:<span class="highlight">{{paperKnownWordsGrowthDetailText}}</span><br/>
  261. 试卷标题:<span class="highlight">{{testPaperTitle}}</span><br/>
  262. 试卷总词量:<span class="highlight">{{testPaperWordCountText}}</span><br/>
  263. 训练前/后生词:<span class="highlight">{{testPaperUnknownWordsBeforeText}} -&gt; {{testPaperUnknownWordsAfterText}}</span><br/>
  264. 试卷熟词率:<span class="highlight">{{testPaperMasteryRateBeforeText}} -&gt; {{testPaperMasteryRateAfterText}}</span><br/>
  265. 试卷熟词率提升:<span class="highlight">{{testPaperMasteryRateImprovementText}}</span></div>
  266. </div>
  267. </div>
  268. <div class="section">
  269. <h2 class="section-title">模块三:实考生词命中状况</h2>
  270. <div class="hit-panel">
  271. <table class="hit-stats" role="presentation">
  272. <tr>
  273. <td class="hit-stat">
  274. <div class="hit-stat-value">{{hitStatusUnknownWordHitRateText}}</div>
  275. <div class="hit-stat-label">试卷掌握度命中率</div>
  276. </td>
  277. <td class="hit-stat">
  278. <div class="hit-stat-value">{{hitStatusLearningEfficiencyText}}</div>
  279. <div class="hit-stat-label">学习效率提升</div>
  280. </td>
  281. <td class="hit-stat">
  282. <div class="hit-stat-value">{{unknownWordsBeforeText}}</div>
  283. <div class="hit-stat-label">训练前生词</div>
  284. </td>
  285. <td class="hit-stat">
  286. <div class="hit-stat-value">{{unknownWordsAfterText}}</div>
  287. <div class="hit-stat-label">训练后生词</div>
  288. </td>
  289. </tr>
  290. </table>
  291. <p class="detail-text">成功减少生词:<span class="highlight">{{reducedUnknownWordsText}}</span></p>
  292. <div class="word-list">{{hitWords}}</div>
  293. </div>
  294. </div>
  295. </div>
  296. </body>
  297. </html>