From 1ea9066edc59ff1dbdc335519fe7ca6d46bb6199 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Fri, 09 Aug 2024 08:48:34 +0800
Subject: [PATCH] bug修改
---
src/views/onlineEducation/classHourBatch/components/batchDialog.vue | 2
src/views/onlineEducation/groupExams/components/examDialog.vue | 255 ++++++++++++++++++++++++++++++++++++++++++--------
src/views/onlineEducation/groupExams/components/student.vue | 4
3 files changed, 217 insertions(+), 44 deletions(-)
diff --git a/src/views/onlineEducation/classHourBatch/components/batchDialog.vue b/src/views/onlineEducation/classHourBatch/components/batchDialog.vue
index 0359406..ac2a8ee 100644
--- a/src/views/onlineEducation/classHourBatch/components/batchDialog.vue
+++ b/src/views/onlineEducation/classHourBatch/components/batchDialog.vue
@@ -34,7 +34,7 @@
:popper-class="reselect.name"
@change="selectValue"
class="item-width"
- placeholder="请选择题库"
+ placeholder="请选择课程"
>
<el-option
v-for="item in state.courseList"
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) {
diff --git a/src/views/onlineEducation/groupExams/components/student.vue b/src/views/onlineEducation/groupExams/components/student.vue
index 93b9743..e44bda8 100644
--- a/src/views/onlineEducation/groupExams/components/student.vue
+++ b/src/views/onlineEducation/groupExams/components/student.vue
@@ -82,12 +82,12 @@
<!-- </el-table-column>-->
<el-table-column label="成绩" prop="score" align="center" >
<template #default="scope">
- <span>{{scope.row.state ===0 ? '--' : scope.row.score}}</span>
+ <span>{{scope.row.state ===0 || scope.row.state ===1 ? '--' : scope.row.score}}</span>
</template>
</el-table-column>
<el-table-column label="是否合格" prop="passed" align="center" >
<template #default="scope">
- <span>{{scope.row.state ===0 ? '--' : scope.row.passed === 0 ? '不合格' : '合格'}}</span>
+ <span>{{scope.row.state ===0 || scope.row.state ===1 ? '--' : scope.row.passed === 0 ? '不合格' : '合格'}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
--
Gitblit v1.9.2