zhangjie 2 gadi atpakaļ
vecāks
revīzija
27307f001f

+ 10 - 1
src/modules/question/api.js

@@ -278,11 +278,20 @@ export function updateSourceDetailApi(data) {
 }
 
 // question-import-edit
-export function questionImportFileUpload(data, headData) {
+export function questionImportWordFileUpload(data, headData) {
   return $httpWithMsg.post(`${QUESTION_API}/word/parse/struct`, data, {
     headers: headData,
   });
 }
+export function questionImportExcelFileUpload(data, headData) {
+  return $httpWithMsg.post(
+    `${QUESTION_API}/word/parse/import_paper_by_excel`,
+    data,
+    {
+      headers: headData,
+    }
+  );
+}
 export function questionImportParseRichText(datas) {
   return $httpWithMsg.post(`${QUESTION_API}/word/parse/identify`, datas);
 }

+ 15 - 5
src/modules/question/components/QuestionImportDialog.vue

@@ -92,7 +92,11 @@
 
 <script>
 import ImportFile from "@/components/ImportFile.vue";
-import { questionImportFileUpload, importQuestionApi } from "../api";
+import {
+  questionImportWordFileUpload,
+  questionImportExcelFileUpload,
+  importQuestionApi,
+} from "../api";
 import { QUESTION_API } from "@/constants/constants";
 import { mapState } from "vuex";
 
@@ -199,13 +203,11 @@ export default {
       }
     },
   },
-  mounted() {
-    this.templateUrl = `${QUESTION_API}/import/paper/template?$key=${this.user.key}&$token=${this.user.token}`;
-  },
   methods: {
     visibleChange() {
       this.modalForm = { ...initModalForm };
       this.fileData = {};
+      this.importTypeChange();
     },
     cancel() {
       this.modalIsShow = false;
@@ -216,6 +218,11 @@ export default {
     importTypeChange() {
       this.modalForm.checkTotalScore = false;
       this.modalForm.useOriginalPaper = false;
+      const urlBody =
+        this.importType === "excel"
+          ? "word/parse/excel_template_download"
+          : "import/paper/template";
+      this.templateUrl = `${QUESTION_API}/${urlBody}?$key=${this.user.key}&$token=${this.user.token}`;
     },
     fileChange(fileData) {
       this.fileData = fileData;
@@ -247,7 +254,9 @@ export default {
       const uploadApi =
         this.importType === "zip"
           ? importQuestionApi
-          : questionImportFileUpload;
+          : this.importType === "word"
+          ? questionImportWordFileUpload
+          : questionImportExcelFileUpload;
 
       const res = await uploadApi(formData, {
         md5: this.fileData.md5,
@@ -262,6 +271,7 @@ export default {
         ...res.data,
         importData: this.modalForm,
         importType: this.importType,
+        importFileTypes: this.importFileTypes,
       });
       this.cancel();
     },

+ 11 - 2
src/modules/question/components/QuestionImportEdit.vue

@@ -183,6 +183,8 @@ export default {
       default() {
         return {
           richText: { sections: [] },
+          importType: "word",
+          importFileTypes: ["docx", "doc"],
           detailInfo: [],
           importData: {
             courseId: "",
@@ -215,9 +217,10 @@ export default {
       uploadAnswerUrl: `${QUESTION_API}/word/parse/import`,
       uploadAnswerData: {},
       // word upload
-      uploadData: {},
+      importType: "word",
       importFileTypes: ["docx", "doc"],
-      uploadUrl: `${QUESTION_API}/word/parse/struct`,
+      uploadData: {},
+      uploadUrl: ``,
     };
   },
   methods: {
@@ -228,6 +231,12 @@ export default {
       //   richText: paperRichTextJson,
       //   detailInfo: paperParseData,
       // });
+      this.importType = this.data.importType;
+      this.importFileTypes = this.data.importFileTypes;
+      this.uploadUrl =
+        this.importType === "word"
+          ? `${QUESTION_API}/word/parse/struct`
+          : `${QUESTION_API}/word/parse/import_paper_by_excel`;
       this.resetData(this.data);
 
       this.$nextTick(() => {