| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | 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); |
| | |
| | | easyScore: null, |
| | | easyBankId: null, |
| | | easyMethod: 1, |
| | | easyBankName: '', |
| | | singleBankName:'', |
| | | multiBankName: '', |
| | | judgeBankName: '' |
| | | |
| | | }, |
| | | formRules: { |
| | |
| | | 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){ |
| | |
| | | } |
| | | 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 |
| | | } |
| | |
| | | easyScore: null, |
| | | easyBankId: null, |
| | | easyMethod: 1, |
| | | deadline: '' |
| | | deadline: '', |
| | | easyBankName: '', |
| | | singleBankName:'', |
| | | multiBankName: '', |
| | | judgeBankName: '' |
| | | |
| | | } |
| | | state.bankListSingle = []; |
| | | state.bankSinglePageNum = 1; |
| | |
| | | } |
| | | } |
| | | |
| | | 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) { |