zhangjie 1 سال پیش
والد
کامیت
ce12fc1584

+ 4 - 8
src/api/paperAnalysisPage.ts

@@ -61,15 +61,11 @@ export function importQuestionGroups(projectId: number, file: File) {
   );
 }
 
-export function downloadPdfFromHtml(htmlContent) {
+export function downloadPdfFromHtml(datas) {
   return httpApp
-    .post(
-      `/api/ess/sasQuestionGroup/import`,
-      { htmlContent },
-      {
-        responseType: "blob",
-      }
-    )
+    .post(`/api/ess/report/task/pdf/create`, datas, {
+      responseType: "blob",
+    })
     .then((res) => {
       return responseToFile(res);
     });

+ 1 - 1
src/components/CommonRangeConfig.vue

@@ -122,7 +122,7 @@ const defaultFormData = {
 type FormDataType = typeof defaultFormData;
 const formRef = ref<FormInstance>();
 const formData = reactive<FormDataType>({ ...defaultFormData });
-const rules: Record<string, Rule[]> = {
+const rules: Partial<Record<keyof FormDataType, Rule[]>> = {
   type: [
     {
       required: true,

+ 1 - 1
src/features/courseManagement/ModifyCourse.vue

@@ -76,7 +76,7 @@ type FormDataType = typeof defaultFormData;
 
 const formRef = ref<FormInstance>();
 const formData = reactive<FormDataType>({ ...defaultFormData });
-const rules: Record<string, Rule[]> = {
+const rules: Partial<Record<keyof FormDataType, Rule[]>> = {
   rootOrgId: [
     {
       required: true,

+ 20 - 8
src/features/paperAnalysis/PaperReport.vue

@@ -25,13 +25,15 @@
     </a-form>
   </a-card>
   <a-card title="报告预览">
-    <ReportMain
-      ref="reportMainRef"
-      viewType="view"
-      :projectId="projectId"
-      :paperId="paperId"
-      :compareProjectId="compareProjectId"
-    />
+    <div class="report-content">
+      <ReportMain
+        ref="reportMainRef"
+        viewType="view"
+        :projectId="projectId"
+        :paperId="paperId"
+        :compareProjectId="compareProjectId"
+      />
+    </div>
   </a-card>
 </template>
 
@@ -64,7 +66,11 @@ async function toDownloadReport() {
   setLoading(true);
 
   let err = false;
-  await downloadPdfFromHtml(reportMainRef.value?.getPreviewTemp()).catch(() => {
+  await downloadPdfFromHtml({
+    courseName: store.paperAnalysisDetail.courseName,
+    courseCode: store.paperAnalysisDetail.courseCode,
+    html: reportMainRef.value?.getPreviewTemp(),
+  }).catch(() => {
     err = true;
   });
   setLoading(false);
@@ -73,3 +79,9 @@ async function toDownloadReport() {
   message.success("下载成功!");
 }
 </script>
+
+<style>
+.report-content .report {
+  padding: 5px 0;
+}
+</style>

+ 1 - 1
src/features/projectManagement/ModifyProject.vue

@@ -68,7 +68,7 @@ type FormDataType = typeof defaultFormData;
 
 const formRef = ref<FormInstance>();
 const formData = reactive<FormDataType>({ ...defaultFormData });
-const rules: Record<string, Rule[]> = {
+const rules: Partial<Record<keyof FormDataType, Rule[]>> = {
   name: [
     {
       required: true,

+ 1 - 1
src/features/projectParamsManagement/ProjectCourseLineSet.vue

@@ -91,7 +91,7 @@ type FormDataType = typeof defaultFormData;
 
 const formRef = ref<FormInstance>();
 const formData = reactive<FormDataType>({ ...defaultFormData });
-const rules: Record<string, Rule[]> = {
+const rules: Partial<Record<keyof FormDataType, Rule[]>> = {
   college: [
     {
       max: 30,

+ 12 - 3
src/features/report/ReportCover.vue

@@ -4,9 +4,18 @@
       <h1 class="cover-title">成绩分析研究报告</h1>
 
       <div class="cover-info">
-        <p>考试名称:{{ props.paper.projectName }}</p>
-        <p>学校:{{ props.paper.rootOrgName }}</p>
-        <p>科目:{{ props.paper.courseName }}</p>
+        <p>
+          <span>考</span><span>试</span><span>名</span><span>称</span>
+          <span>:{{ props.paper.projectName }}</span>
+        </p>
+        <p>
+          <span>学</span><span></span><span></span><span>校</span>
+          <span>:{{ props.paper.rootOrgName }}</span>
+        </p>
+        <p>
+          <span>科</span><span></span><span></span><span>目</span>
+          <span>:{{ props.paper.courseName }}</span>
+        </p>
       </div>
     </div>
   </div>

+ 5 - 1
src/features/report/ReportMain.vue

@@ -184,7 +184,11 @@ function emitFrameResult(success = true, errorMsg = "", htmlContent = "") {
 function getPreviewTemp() {
   // @ts-ignore
   // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
-  return reportTemp(reportRef.outerHTML || "");
+  let html = reportRef.outerHTML;
+  if (viewType === "view") {
+    html = html.replace(`class="report"`, `class="report is-print"`);
+  }
+  return reportTemp(html);
 }
 
 function commonInfoUpdate() {

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
src/features/report/assets/assets.ts


BIN
src/features/report/assets/bg-cover.jpg


BIN
src/features/report/assets/bg-cover.png


+ 16 - 13
src/features/report/assets/report.css

@@ -30,10 +30,6 @@
   page-break-after: always;
   background-color: #e1e9f5;
   margin: 10px auto;
-
-  background-image: url(./bg-page.png);
-  background-repeat: no-repeat;
-  background-size: 100% auto;
 }
 .report.is-print .report-page {
   margin: 0 auto;
@@ -153,31 +149,38 @@
 
 /* report cover */
 .report-cover {
-  background-color: #fff;
-  background-image: url(./bg-cover.png);
+  background-image: url(./bg-cover.jpg);
   background-repeat: no-repeat;
   background-size: 100% 100%;
-  color: #fff;
 }
 .report-cover .cover-title {
   position: absolute;
-  font-size: 59px;
+  top: 149px;
+  left: 163px;
+  height: 83px;
   font-weight: 600;
+  font-size: 59px;
+  color: #262626;
   line-height: 83px;
-  top: 149px;
-  left: 107px;
-  color: #fff;
 }
 .report-cover .cover-info {
   position: absolute;
   width: 580px;
-  left: 107px;
-  bottom: 107px;
+  left: 163px;
+  bottom: 149px;
+  font-size: 16px;
   font-weight: 400;
   line-height: 23px;
+  color: #000;
 }
 .report-cover .cover-info p {
   margin-top: 13px;
+  white-space: pre;
+}
+.report-cover .cover-info p span {
+  display: inline-block;
+  vertical-align: middle;
+  min-width: 18px;
 }
 
 .report-intro,

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
src/features/report/reportTemp.ts


+ 1 - 1
src/features/userManagement/ModifyUser.vue

@@ -88,7 +88,7 @@ type FormDataType = typeof defaultFormData;
 
 const formRef = ref<FormInstance>();
 const formData = reactive<FormDataType>({ ...defaultFormData });
-const rules: Record<string, Rule[]> = {
+const rules: Partial<Record<keyof FormDataType, Rule[]>> = {
   rootOrgId: [
     {
       required: true,

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است