|
@@ -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]) => {
|