|
@@ -18,42 +18,57 @@
|
|
|
label-width="120px"
|
|
|
>
|
|
|
<el-form-item label="导入类型">
|
|
|
- <el-radio-group v-model="modalForm.importType">
|
|
|
- <el-radio :label="['docx']">word</el-radio>
|
|
|
- <el-radio :label="['zip']">zip</el-radio>
|
|
|
+ <el-radio-group v-model="importType">
|
|
|
+ <el-radio label="docx">word</el-radio>
|
|
|
+ <el-radio label="zip">zip</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="courseId" label="导入类型">
|
|
|
+ <el-form-item
|
|
|
+ v-if="importType === 'docx'"
|
|
|
+ prop="courseId"
|
|
|
+ label="课程名称"
|
|
|
+ >
|
|
|
<course-select v-model="modalForm.courseId"> </course-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="是否使用原卷">
|
|
|
- <el-radio-group v-model="modalForm.userPaper">
|
|
|
+ <el-form-item v-if="importType === 'docx'" 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.userPaper"
|
|
|
- prop="paperName"
|
|
|
+ v-if="modalForm.useOriginalPaper && importType === 'docx'"
|
|
|
+ prop="name"
|
|
|
label="试卷名称"
|
|
|
>
|
|
|
<el-input
|
|
|
- v-model="modalForm.paperName"
|
|
|
+ v-model="modalForm.name"
|
|
|
placeholder="请输入试卷名称"
|
|
|
clearable
|
|
|
>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="modalForm.userPaper" label="总分校验">
|
|
|
- <el-radio-group v-model="modalForm.scoreCheck">
|
|
|
+ <el-form-item label="总分校验">
|
|
|
+ <el-radio-group v-model="scoreCheck">
|
|
|
<el-radio :label="true">开启</el-radio>
|
|
|
<el-radio :label="false">关闭</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item v-if="scoreCheck" label="试卷总分" prop="totalScore">
|
|
|
+ <el-input-number
|
|
|
+ v-model="modalForm.totalScore"
|
|
|
+ style="width: 125px"
|
|
|
+ :min="1"
|
|
|
+ :max="1000"
|
|
|
+ :step="1"
|
|
|
+ step-strictly
|
|
|
+ :controls="false"
|
|
|
+ ></el-input-number
|
|
|
+ ></el-form-item>
|
|
|
<el-form-item prop="file">
|
|
|
<import-file
|
|
|
ref="ImportFile"
|
|
|
- :format="modalForm.importType"
|
|
|
+ :format="[importType]"
|
|
|
:template-url="templateUrl"
|
|
|
only-fetch-file
|
|
|
@file-change="fileChange"
|
|
@@ -73,10 +88,10 @@ import { QUESTION_API } from "@/constants/constants";
|
|
|
import { mapState } from "vuex";
|
|
|
|
|
|
const initModalForm = {
|
|
|
- importType: ["docx"],
|
|
|
- courseId: "",
|
|
|
- userPaper: false,
|
|
|
- scoreCheck: false,
|
|
|
+ courseId: null,
|
|
|
+ name: "",
|
|
|
+ useOriginalPaper: false,
|
|
|
+ totalScore: undefined,
|
|
|
};
|
|
|
|
|
|
export default {
|
|
@@ -85,6 +100,8 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
modalIsShow: false,
|
|
|
+ scoreCheck: false,
|
|
|
+ importType: "docx",
|
|
|
modalForm: {
|
|
|
...initModalForm,
|
|
|
},
|
|
@@ -96,13 +113,20 @@ export default {
|
|
|
trigger: "change",
|
|
|
},
|
|
|
],
|
|
|
- paperName: [
|
|
|
+ name: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请输入试卷名称",
|
|
|
trigger: "change",
|
|
|
},
|
|
|
],
|
|
|
+ totalScore: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请输入试卷总分",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
file: [
|
|
|
{
|
|
|
validate: (rule, value, callback) => {
|
|
@@ -123,8 +147,27 @@ export default {
|
|
|
computed: {
|
|
|
...mapState({ user: (state) => state.user }),
|
|
|
},
|
|
|
+ watch: {
|
|
|
+ "modalForm.useOriginalPaper": {
|
|
|
+ handler(val) {
|
|
|
+ if (!val) {
|
|
|
+ this.modalForm.name = "";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ scoreCheck(val) {
|
|
|
+ if (!val) {
|
|
|
+ this.modalForm.totalScore = undefined;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ importType(val) {
|
|
|
+ if (val === "zip") {
|
|
|
+ this.modalForm.courseId = null;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
mounted() {
|
|
|
- this.templateUrl = `${QUESTION_API}/import/paper?$key=${this.user.key}&$token=${this.user.token}`;
|
|
|
+ this.templateUrl = `${QUESTION_API}/import/paper/template?$key=${this.user.key}&$token=${this.user.token}`;
|
|
|
},
|
|
|
methods: {
|
|
|
visibleChange() {
|