zhouwx
2024-08-09 1ea9066edc59ff1dbdc335519fe7ca6d46bb6199
bug修改
已修改3个文件
243 ■■■■ 文件已修改
src/views/onlineEducation/classHourBatch/components/batchDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/onlineEducation/groupExams/components/examDialog.vue 237 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/onlineEducation/groupExams/components/student.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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"
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,7 +444,9 @@
  }
  title.value = type === 'addFirst' || type === 'add' ? '新增' : type ==='edit' ? '编辑' : '' ;
  if(type === 'edit') {
    state.form = value
    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
@@ -370,6 +456,14 @@
    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) {
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">