From 4f6cdee3d3a9967b6955aacc354bf557430c0643 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期一, 05 八月 2024 17:05:16 +0800 Subject: [PATCH] 批改 --- src/views/onlineEducation/groupExams/components/examDialog.vue | 121 +++++++++++++++++++++++++++++++++++---- 1 files changed, 107 insertions(+), 14 deletions(-) diff --git a/src/views/onlineEducation/groupExams/components/examDialog.vue b/src/views/onlineEducation/groupExams/components/examDialog.vue index ee5269f..96a6fb0 100644 --- a/src/views/onlineEducation/groupExams/components/examDialog.vue +++ b/src/views/onlineEducation/groupExams/components/examDialog.vue @@ -65,7 +65,7 @@ <el-radio :label="2" style="max-width: 30px">顺序</el-radio> </el-radio-group > <el-radio-group v-model="state.form.singleRebuild" style="margin-left: 30px" > - <el-radio :label="3" v-if="title === '编辑'" style="max-width: 30px">重新出题</el-radio> + <el-radio :label="1" v-if="title === '编辑'" style="max-width: 30px">重新出题</el-radio> </el-radio-group> </div> </div> @@ -106,7 +106,7 @@ <el-radio :label="2" style="max-width: 30px">顺序</el-radio> </el-radio-group> <el-radio-group v-model="state.form.multiRebuild" style="margin-left: 30px" > - <el-radio :label="3" v-if="title === '编辑'" style="max-width: 30px">重新出题</el-radio> + <el-radio :label="1" v-if="title === '编辑'" style="max-width: 30px">重新出题</el-radio> </el-radio-group> </div> </div> @@ -147,12 +147,53 @@ <el-radio :label="2" style="max-width: 30px">顺序</el-radio> </el-radio-group> <el-radio-group v-model="state.form.judgeRebuild" style="margin-left: 30px" > - <el-radio :label="3" v-if="title === '编辑'" style="max-width: 30px">重新出题</el-radio> + <el-radio :label="1" v-if="title === '编辑'" style="max-width: 30px">重新出题</el-radio> + </el-radio-group> + </div> + </div> + <div style="display: flex"> + <div class="group"> + <div> + 简答:<el-input style="max-width: 40px" v-model="state.form.easyNum"></el-input> 题 + </div> + <div style="margin-left: 20px"> + 每题:<el-input style="max-width: 40px" v-model="state.form.easyScore"></el-input> 分 + </div> + </div> + <div class="group" > + <div> + 共 + <span style="max-width: 30px" v-show="state.form.easyNum && state.form.easyScore">{{state.form.easyNum * state.form.easyScore}}</span> + <!-- <span v-else></span>--> + 分 + </div> + <el-select + clearable + v-model="state.form.easyBankId" + style="width: 160px;margin: 0 20px" + v-loadMoreNew:[reselectSingle]="handleScroll" + :popper-class="reselectSingle.name" + class="item-width" + placeholder="请选择简答题题库" + > + <el-option + v-for="item in state.bankListSingle" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + <el-radio-group v-model="state.form.easyMethod" > + <el-radio :label="1" style="max-width: 30px">随机</el-radio> + <el-radio :label="2" style="max-width: 30px">顺序</el-radio> + </el-radio-group> + <el-radio-group v-model="state.form.easyRebuild" style="margin-left: 30px" > + <el-radio :label="1" v-if="title === '编辑'" style="max-width: 30px">重新出题</el-radio> </el-radio-group> </div> </div> <span class="group" style="margin-bottom: 20px">共计: - {{state.form.judgeNum * state.form.judgeScore+state.form.multiNum * state.form.multiScore+state.form.singleNum * state.form.singleScore}} + {{state.form.judgeNum * state.form.judgeScore+state.form.multiNum * state.form.multiScore+state.form.singleNum * state.form.singleScore+state.form.easyNum * state.form.easyScore}} 分</span> <div style="display: flex;justify-content: space-between;align-items: center"> <el-form-item label="合格分数:" prop="passScore"> @@ -162,15 +203,28 @@ <el-input v-model="state.form.limitTime" style="max-width: 200px" :disabled="state.form.limited === 0"> <template #append>分钟</template> </el-input> + </el-form-item> </div> - <el-form-item label="是否限制考试时长:" prop="limited" style="margin-left: 60px"> - <el-radio-group v-model="state.form.limited" @change="changeLimit" > - <el-radio :label="0" style="max-width: 30px">否</el-radio> - <el-radio :label="1">是</el-radio> - </el-radio-group> - </el-form-item> + <div style="display: flex;justify-content: space-between;align-items: center"> + <el-form-item label="是否限制考试时长:" prop="limited" style="margin-left: 60px"> + <el-radio-group v-model="state.form.limited" @change="changeLimit" > + <el-radio :label="0" style="max-width: 30px">否</el-radio> + <el-radio :label="1">是</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="考试截止时间:" prop="deadline" style="margin-left: 60px"> + <el-date-picker + v-model="state.form.deadline" + type="date" + placeholder="请选择截止时间" + format="YYYY-MM-DD" + value-format="YYYY-MM-DD 23:59:59" + /> + </el-form-item> + </div> + </el-form> <template #footer> <span class="dialog-footer"> @@ -263,14 +317,21 @@ judgeRebuild: null, multiRebuild: null, singleRebuild: null, + easyRebuild: null, + deadline: '', + easyNum: null, + easyScore: null, + easyBankId: null, + easyMethod: 1, }, formRules: { name: [{required: true, trigger: "blur", validator: validateName}], categoryId: [{required: true, message: '请选择课程分类', trigger: 'blur'}], - limited: [{required: true, message: '请选择课程分类', trigger: 'blur'}], - limitTime: [{required: true, message: '请选择课程分类', trigger: 'blur'}], - passScore: [{required: true, message: '请选择课程分类', trigger: 'blur'}] + limited: [{required: true, message: '请选择是否限制考试时长', trigger: 'blur'}], + limitTime: [{required: true, message: '请输入考试限制时长', trigger: 'blur'}], + passScore: [{required: true, message: '请输入合格分数', trigger: 'blur'}], + deadline: [{required: true, message: '请选择考试截止时间', trigger: 'blur'}] }, classifyList: [], isAdmin: false, @@ -300,6 +361,14 @@ title.value = type === 'addFirst' || type === 'add' ? '新增' : type ==='edit' ? '编辑' : '' ; if(type === 'edit') { state.form = value + state.form.easyNum = state.form.easyNum ? state.form.easyNum: null + state.form.easyScore = state.form.easyScore ? state.form.easyScore: null + state.form.singleNum = state.form.singleNum ? state.form.singleNum: null + state.form.singleScore = state.form.singleScore ? state.form.singleScore: null + state.form.multiNum = state.form.multiNum ? state.form.multiNum: null + state.form.multiScore = state.form.multiScore ? state.form.multiScore: null + state.form.judgeNum = state.form.judgeNum ? state.form.judgeNum: null + state.form.judgeScore = state.form.judgeScore ? state.form.judgeScore: null startUsername.value = value.name; }else if(type === 'add' && value ){ state.form.parentId = value.id @@ -314,6 +383,21 @@ // message: '管理员暂无权限' // }); // return; + // } + const total = state.form.judgeNum * state.form.judgeScore+state.form.multiNum * state.form.multiScore+state.form.singleNum * state.form.singleScore+state.form.easyNum * state.form.easyScore + if(state.form.passScore > total){ + ElMessage({ + type: 'warning', + message: '合格分数不能大于总分' + }); + return; + } + // if(!(state.form.judgeBankId || state.form.multiBankId || state.form.singleBankId)){ + // ElMessage({ + // type: 'warning', + // message: '请选择题库' + // }); + // return; // } const valid = await busRef.value.validate(); if(valid){ @@ -414,13 +498,22 @@ singleMethod: 1, singleNum: null, singleScore: null, - limited: 0, + limited: 1, limitTime: null, passScore: null, judgeRebuild: null, multiRebuild: null, singleRebuild: null, + easyRebuild: null, + easyNum: null, + easyScore: null, + easyBankId: null, + easyMethod: 1, + deadline: '' } + state.bankListSingle = []; + state.bankSinglePageNum = 1; + state.bankSinglePageSize = 10; } const handleScroll = () => { if(state.bankSinglePageNum >= state.hasMoreItemsSingle) return -- Gitblit v1.9.2