exam-answer-detail.blade.php 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. @php
  2. $gradingCode = $pdfMeta['exam_code'] ?? ($paper->paper_id ?? 'unknown');
  3. $studentName = $pdfMeta['student_name'] ?? ($student['name'] ?? ($paper->student_id ?? '________'));
  4. $paperHeaderTitle = $pdfMeta['header_title'] ?? ($studentName . '|' . $gradingCode . '|未知类型');
  5. $generateDateTime = now()->format('Y年m月d日 H:i:s');
  6. $appendScanSheet = config('exam.pdf_grading_append_scan_sheet', false);
  7. @endphp
  8. <!DOCTYPE html>
  9. <html lang="zh-CN">
  10. <head>
  11. <meta charset="UTF-8">
  12. <title>{{ $pdfMeta['grading_pdf_title'] ?? ($paper->paper_name ?? '答案详解预览') }}</title>
  13. <link rel="stylesheet" href="/css/katex/katex.min.css">
  14. <style>
  15. @page {
  16. size: A4;
  17. margin: 2.2cm 2cm 2.3cm 2cm;
  18. @top-left { content: "知了数学·{{ $generateDateTime }}"; font-size: 13px; color: #666; }
  19. @top-center { content: "{{ $studentName }}"; font-size: 13px; color: #666; }
  20. @top-right {
  21. content: "{{ $gradingCode }}";
  22. font-size: 19px;
  23. font-weight: 600;
  24. font-family: "Noto Sans", "Liberation Sans", "Nimbus Sans", sans-serif;
  25. color: #222;
  26. }
  27. @bottom-left { content: "{{ $paperHeaderTitle }}"; font-size: 11px; color: #666; }
  28. @bottom-right { content: counter(page) "/" counter(pages); font-size: 13px; color: #666; }
  29. }
  30. body {
  31. font-family: "Noto Serif", "Noto Serif CJK SC", "Noto Sans CJK SC", "Noto Sans", "STSongti-SC", "PingFang SC", "Songti SC", serif;
  32. line-height: 1.65;
  33. color: #000;
  34. background: #fff;
  35. font-size: 14px;
  36. }
  37. .page { max-width: 720px; margin: 0 auto; padding: 0 12px; }
  38. .header { text-align: center; margin-bottom: 1.1rem; border-bottom: 2px solid #000; padding-bottom: 0.8rem; }
  39. @include('pdf.partials.answer-detail-styles')
  40. @include('pdf.partials.grading-scan-sheet-styles')
  41. </style>
  42. </head>
  43. <body style="page-break-before: always;">
  44. <div class="page">
  45. <div class="header">
  46. <div style="font-size:22px;font-weight:bold;">答案详解</div>
  47. <div style="display:flex;justify-content:space-between;font-size:14px;margin-top:8px;">
  48. <span>老师:{{ $teacher['name'] ?? '________' }}</span>
  49. <span>年级:@formatGrade($student['grade'] ?? '________')</span>
  50. @if(!empty($pdfMeta['assemble_type_label']) && $pdfMeta['assemble_type_label'] !== '未知类型')
  51. <span>类型:{{ $pdfMeta['assemble_type_label'] }}</span>
  52. @endif
  53. <span>姓名:{{ $student['name'] ?? '________' }}</span>
  54. <span>得分:________</span>
  55. </div>
  56. </div>
  57. @include('pdf.partials.answer-detail-page', ['questions' => $questions])
  58. </div>
  59. @if($appendScanSheet)
  60. @include('pdf.partials.grading-scan-sheet', [
  61. 'questions' => $questions,
  62. 'gradingCode' => $gradingCode,
  63. 'teacher' => $teacher,
  64. 'student' => $student,
  65. 'pdfMeta' => $pdfMeta ?? [],
  66. ])
  67. @endif
  68. <script src="/js/katex.min.js"></script>
  69. <script src="/js/auto-render.min.js"></script>
  70. <script>
  71. document.addEventListener('DOMContentLoaded', function() {
  72. try {
  73. renderMathInElement(document.body, {
  74. delimiters: [
  75. {left: '$$', right: '$$', display: true},
  76. {left: '$', right: '$', display: false},
  77. {left: '\\(', right: '\\)', display: false},
  78. {left: '\\[', right: '\\]', display: true}
  79. ],
  80. throwOnError: false,
  81. strict: false,
  82. trust: true
  83. });
  84. } catch (e) {}
  85. });
  86. </script>
  87. </body>
  88. </html>