From 1ea9066edc59ff1dbdc335519fe7ca6d46bb6199 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期五, 09 八月 2024 08:48:34 +0800 Subject: [PATCH] bug修改 --- src/views/onlineEducation/groupExams/components/examDialog.vue | 255 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 214 insertions(+), 41 deletions(-) diff --git a/src/views/onlineEducation/groupExams/components/examDialog.vue b/src/views/onlineEducation/groupExams/components/examDialog.vue index 96a6fb0..8af519d 100644 --- a/src/views/onlineEducation/groupExams/components/examDialog.vue +++ b/src/views/onlineEducation/groupExams/components/examDialog.vue @@ -46,20 +46,39 @@ </div> <el-select clearable - v-model="state.form.singleBankId" + v-model="state.form.singleBankName" + filterable + remote + reserve-keyword + placeholder="请输入单选题库" + remote-show-suffix + :remote-method="getBankList" style="width: 160px;margin: 0 20px" - v-loadMoreNew:[reselectSingle]="handleScroll" - :popper-class="reselectSingle.name" - class="item-width" - placeholder="请选择单选题题库" + @change="selectSingleValue" > <el-option - v-for="item in state.bankListSingle" + v-for="item in state.bankList" :key="item.id" :label="item.name" - :value="item.id" + :value="item.name" /> </el-select> +<!-- <el-select--> +<!-- clearable--> +<!-- v-model="state.form.singleBankId"--> +<!-- 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.singleMethod" > <el-radio :label="1" style="max-width: 30px">随机</el-radio> <el-radio :label="2" style="max-width: 30px">顺序</el-radio> @@ -87,20 +106,39 @@ </div> <el-select clearable - v-model="state.form.multiBankId" + v-model="state.form.multiBankName" + filterable + remote + reserve-keyword + placeholder="请输入多选题库" + remote-show-suffix + :remote-method="getBankList" style="width: 160px;margin: 0 20px" - v-loadMoreNew:[reselectSingle]="handleScroll" - :popper-class="reselectSingle.name" - class="item-width" - placeholder="请选择多选题题库" + @change="selectMultiValue" > <el-option - v-for="item in state.bankListSingle" + v-for="item in state.bankList" :key="item.id" :label="item.name" - :value="item.id" + :value="item.name" /> </el-select> +<!-- <el-select--> +<!-- clearable--> +<!-- v-model="state.form.multiBankId"--> +<!-- 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.multiMethod" > <el-radio :label="1" style="max-width: 30px">随机</el-radio> <el-radio :label="2" style="max-width: 30px">顺序</el-radio> @@ -128,20 +166,39 @@ </div> <el-select clearable - v-model="state.form.judgeBankId" + v-model="state.form.judgeBankName" + filterable + remote + reserve-keyword + placeholder="请输入判断题库" + remote-show-suffix + :remote-method="getBankList" style="width: 160px;margin: 0 20px" - v-loadMoreNew:[reselectSingle]="handleScroll" - :popper-class="reselectSingle.name" - class="item-width" - placeholder="请选择判断题题库" + @change="selectJudgeValue" > <el-option - v-for="item in state.bankListSingle" + v-for="item in state.bankList" :key="item.id" :label="item.name" - :value="item.id" + :value="item.name" /> </el-select> +<!-- <el-select--> +<!-- clearable--> +<!-- v-model="state.form.judgeBankId"--> +<!-- 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.judgeMethod" > <el-radio :label="1" style="max-width: 30px">随机</el-radio> <el-radio :label="2" style="max-width: 30px">顺序</el-radio> @@ -169,20 +226,39 @@ </div> <el-select clearable - v-model="state.form.easyBankId" + v-model="state.form.easyBankName" + filterable + remote + reserve-keyword + placeholder="请输入简答题库" + remote-show-suffix + :remote-method="getBankList" style="width: 160px;margin: 0 20px" - v-loadMoreNew:[reselectSingle]="handleScroll" - :popper-class="reselectSingle.name" - class="item-width" - placeholder="请选择简答题题库" + @change="selectEasyValue" > <el-option - v-for="item in state.bankListSingle" + v-for="item in state.bankList" :key="item.id" :label="item.name" - :value="item.id" + :value="item.name" /> </el-select> +<!-- <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> @@ -252,7 +328,7 @@ editQuestionBank, getQuestionBank } from "@/api/onlineEducation/questionBank"; -import {addExam, checkExamName, editExam} from "@/api/onlineEducation/exam"; +import {addExam, checkExamName, editExam, getExamStudent, getPaper} from "@/api/onlineEducation/exam"; import Student from "@/views/onlineEducation/groupExams/components/student.vue"; const dialogVisible = ref(false); @@ -323,6 +399,10 @@ easyScore: null, easyBankId: null, easyMethod: 1, + easyBankName: '', + singleBankName:'', + multiBankName: '', + judgeBankName: '' }, formRules: { @@ -342,11 +422,15 @@ bankSinglePageNum: 1, // 当前页码 bankSinglePageSize: 10, // 每页显示的数量 hasMoreItemsSingle: null, // 是否还有更多选项 + initSingleBankName: '', + initMultiBankName: '', + initJudgeBankName: '', + initEasyBankName: '', }) const openDialog = async (type, value) => { await getClassifyList(); - await loadMoreBankData() + await getBankList(''); const userInfo = JSON.parse(Cookies.get('userInfo')) console.log("userInfo",userInfo) if(userInfo.userType === 0){ @@ -360,16 +444,26 @@ } 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; + const res = await getPaper(value.id) + if(res.code == 200){ + state.form = res.data + 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; + state.initSingleBankName = state.form.singleBankName; + state.initMultiBankName= state.form.multiBankName; + state.initJudgeBankName= state.form.judgeBankName; + state.initEasyBankName= state.form.easyBankName; + }else{ + ElMessage.warning(res.message) + } + }else if(type === 'add' && value ){ state.form.parentId = value.id } @@ -509,7 +603,12 @@ easyScore: null, easyBankId: null, easyMethod: 1, - deadline: '' + deadline: '', + easyBankName: '', + singleBankName:'', + multiBankName: '', + judgeBankName: '' + } state.bankListSingle = []; state.bankSinglePageNum = 1; @@ -537,6 +636,80 @@ } } +const getBankList = async (val)=>{ + if(val != ""){ + const queryParams = { + name: val + } + const res = await getQuestionBank(queryParams) + if (res.code == 200) { + state.bankList = res.data.list + + } else { + ElMessage.warning(res.message) + } + }else { + const queryParams = { + pageNum: 1, + pageSize: 10 + } + const res = await getQuestionBank(queryParams) + if (res.code == 200) { + state.bankList = res.data.list + } else { + ElMessage.warning(res.message) + } + } +} +const selectSingleValue = (val) => { + if(val != state.initSingleBankName){ + state.form.singleRebuild = 1; + }else { + state.form.singleRebuild = 0; + } + state.bankList.forEach(item => { + if(item.name === val){ + state.form.singleBankId = item.id + } + }) +} +const selectMultiValue = (val) => { + if(val != state.initMultiBankName){ + state.form.multiRebuild = 1; + }else { + state.form.multiRebuild = 0; + } + state.bankList.forEach(item => { + if(item.name === val){ + state.form.multiBankId = item.id + } + }) +} +const selectJudgeValue = (val) => { + if(val != state.initJudgeBankName){ + state.form.judgeRebuild = 1; + }else { + state.form.judgeRebuild = 0; + } + state.bankList.forEach(item => { + if(item.name === val){ + state.form.judgeBankId = item.id + } + }) +} +const selectEasyValue = (val) => { + if(val != state.initEasyBankName){ + state.form.easyRebuild = 1; + }else { + state.form.easyRebuild = 0; + } + state.bankList.forEach(item => { + if(item.name === val){ + state.form.easyBankId = item.id + } + }) +} + const changeLimit = (val) => { state.form.limitTime = null if(val === 0) { -- Gitblit v1.9.2