zhangjie 2 jaren geleden
bovenliggende
commit
ef85ce577e
1 gewijzigde bestanden met toevoegingen van 34 en 9 verwijderingen
  1. 34 9
      src/modules/question/components/QuestionImportDialog.vue

+ 34 - 9
src/modules/question/components/QuestionImportDialog.vue

@@ -18,27 +18,31 @@
       label-width="120px"
     >
       <el-form-item label="导入类型">
-        <el-radio-group v-model="importType">
-          <el-radio label="docx">word</el-radio>
-          <el-radio label="zip">zip</el-radio>
+        <el-radio-group v-model="importType" @change="importTypeChange">
+          <el-radio
+            v-for="item in importTypeList"
+            :key="item.name"
+            :label="item.name"
+            >{{ item.name }}</el-radio
+          >
         </el-radio-group>
       </el-form-item>
       <el-form-item
-        v-if="importType === 'docx'"
+        v-if="importType !== 'zip'"
         prop="courseId"
         label="课程名称"
       >
         <course-select v-model="modalForm.courseId" @change="courseChange">
         </course-select>
       </el-form-item>
-      <el-form-item label="是否使用原卷">
+      <el-form-item v-if="importType !== 'excel'" label="是否使用原卷">
         <el-radio-group v-model="modalForm.useOriginalPaper">
           <el-radio :label="true">是</el-radio>
           <el-radio :label="false">否</el-radio>
         </el-radio-group>
       </el-form-item>
       <el-form-item
-        v-if="modalForm.useOriginalPaper && importType === 'docx'"
+        v-if="modalForm.useOriginalPaper && importType === 'word'"
         prop="name"
         label="试卷名称"
       >
@@ -107,7 +111,21 @@ export default {
   data() {
     return {
       modalIsShow: false,
-      importType: "docx",
+      importTypeList: [
+        {
+          name: "word",
+          format: ["docx", "doc"],
+        },
+        {
+          name: "excel",
+          format: ["xlsx", "xls"],
+        },
+        {
+          name: "zip",
+          format: ["zip"],
+        },
+      ],
+      importType: "word",
       modalForm: {
         ...initModalForm,
       },
@@ -153,7 +171,10 @@ export default {
   computed: {
     ...mapState({ user: (state) => state.user }),
     importFileTypes() {
-      return this.importType === "docx" ? ["docx", "doc"] : [this.importType];
+      const types = this.importTypeList.find(
+        (item) => item.name === this.importType
+      );
+      return types ? types.format : [];
     },
   },
   watch: {
@@ -192,6 +213,10 @@ export default {
     open() {
       this.modalIsShow = true;
     },
+    importTypeChange() {
+      this.modalForm.checkTotalScore = false;
+      this.modalForm.useOriginalPaper = false;
+    },
     fileChange(fileData) {
       this.fileData = fileData;
       this.$refs.modalFormComp.validateField("file", (err) => {
@@ -211,7 +236,7 @@ export default {
 
       let formData = new FormData();
       formData.append("file", this.fileData.file);
-      if (this.importType === "docx") {
+      if (this.importType !== "zip") {
         formData.append("courseId", this.modalForm.courseId);
       } else {
         Object.entries(this.modalForm).forEach(([key, val]) => {