From c1823a7f91775fd157d4e4683b597d7e426cd2ed Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期三, 17 七月 2024 17:23:37 +0800 Subject: [PATCH] bug修改 --- src/views/onlineEducation/courseManage/courseChapters/index.vue | 16 ++++- src/views/onlineEducation/groupExams/components/examDialog.vue | 30 +++++++-- src/views/onlineEducation/classHourBatch/index.vue | 7 +- src/views/onlineEducation/classHourBatch/components/handleStudent.vue | 26 ++++++-- src/views/onlineEducation/groupExams/components/student.vue | 40 ++++++++++--- src/views/onlineEducation/classHourBatch/components/classHourChange.vue | 4 6 files changed, 91 insertions(+), 32 deletions(-) diff --git a/src/views/onlineEducation/classHourBatch/components/classHourChange.vue b/src/views/onlineEducation/classHourBatch/components/classHourChange.vue index dacbaa9..37c0b64 100644 --- a/src/views/onlineEducation/classHourBatch/components/classHourChange.vue +++ b/src/views/onlineEducation/classHourBatch/components/classHourChange.vue @@ -11,7 +11,7 @@ <el-table v-loading="state.loading" :data="state.dataList" :border="true"> <el-table-column label="创建时间" prop="createTime" align="center" width="180" /> <el-table-column label="变动来源" prop="origin" align="center" /> - <el-table-column label="变动情况" prop="modifyPeriodMin" align="center" /> + <el-table-column label="变动情况" prop="modifyPeriodMin" align="center" /> <el-table-column label="变动后剩余" prop="remainPeriodMin" align="center" /> <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">--> <!-- <template #default="scope">--> @@ -76,7 +76,7 @@ state.dataList = res.data.list.map(item => { return { ...item, - modifyPeriodMin: item.modifyPeriod ? (item.modifyPeriod /60).toFixed(2).replace(/\.00$/, '')+'分钟' : '', + modifyPeriodMin: item.modifyPeriod ? item.modifyPeriod >0 ?'新增 '+(item.modifyPeriod /60).toFixed(2).replace(/\.00$/, '')+'分钟':'减少 '+ (Math.abs(item.modifyPeriod /60)).toFixed(2).replace(/\.00$/, '')+'分钟' : '', remainPeriodMin: item.remainPeriod ? (item.remainPeriod /60).toFixed(2).replace(/\.00$/, '')+'分钟' : '' } }) diff --git a/src/views/onlineEducation/classHourBatch/components/handleStudent.vue b/src/views/onlineEducation/classHourBatch/components/handleStudent.vue index a937f6b..c9cd42e 100644 --- a/src/views/onlineEducation/classHourBatch/components/handleStudent.vue +++ b/src/views/onlineEducation/classHourBatch/components/handleStudent.vue @@ -1,12 +1,19 @@ <template> <div class="app-container"> <div style="margin-bottom: 10px;display: flex;align-items: center;justify-content: space-between"> - <el-button - type="primary" - plain - icon="Plus" - @click="openDialog()" - >选择学员</el-button> + <div> + <el-button + type="primary" + plain + icon="Plus" + @click="openDialog()" + >选择学员</el-button> + <el-button + type="primary" + plain + @click="back" + >返回</el-button> + </div> <el-button type="danger" plain @@ -49,7 +56,7 @@ import Cookies from "js-cookie"; import {delQuestionBank, getQuestionBank} from "@/api/onlineEducation/questionBank"; import {batchDelStudent, delBatchStu, getBatchStudent} from "@/api/onlineEducation/batch"; -import {useRoute} from 'vue-router' +import {useRoute, useRouter} from 'vue-router' const route = useRoute() @@ -57,6 +64,7 @@ const loading = ref(false); const dialogRef = ref(); const tableRef = ref(); +const router = useRouter(); const data = reactive({ queryParams: { pageId: null, @@ -164,5 +172,9 @@ } }) } +const back = () => { + router.push("/class"); +} + </script> diff --git a/src/views/onlineEducation/classHourBatch/index.vue b/src/views/onlineEducation/classHourBatch/index.vue index 13380d4..71bcabd 100644 --- a/src/views/onlineEducation/classHourBatch/index.vue +++ b/src/views/onlineEducation/classHourBatch/index.vue @@ -26,8 +26,8 @@ <el-table-column label="课程" prop="courseName" align="center" /> <el-table-column label="学习人数" prop="studentCount" align="center" /> <el-table-column label="总课时" prop="coursePeriodNum" align="center" /> - <el-table-column label="已完成人数" prop="" align="center" /> - <el-table-column label="完成率" prop="" align="center" /> + <el-table-column label="已完成人数" prop="finishCount" align="center" /> + <el-table-column label="完成率" prop="finishRate" align="center" /> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180"> <template #default="scope"> <el-button link type="primary" @click="toStuChoose(scope.row)">学生数据</el-button> @@ -105,7 +105,8 @@ data.dataList = res.data.list.map(item => { return { ...item, - coursePeriodNum: item.coursePeriod ? (item.coursePeriod /60).toFixed(2).replace(/\.00$/, '') + '分钟':'' + coursePeriodNum: item.coursePeriod ? (item.coursePeriod /60).toFixed(2).replace(/\.00$/, '') + '分钟':'', + finishRate: item.finishCount ? item.finishCount ===0 && item.studentCount ===0 ? '0%': (item.finishCount / item.studentCount).toFixed(2) *100 + '%' : '' } }) data.total = res.data.total diff --git a/src/views/onlineEducation/courseManage/courseChapters/index.vue b/src/views/onlineEducation/courseManage/courseChapters/index.vue index b938ed8..e9b499e 100644 --- a/src/views/onlineEducation/courseManage/courseChapters/index.vue +++ b/src/views/onlineEducation/courseManage/courseChapters/index.vue @@ -2,7 +2,7 @@ <div class="app-container"> <div style="margin-bottom: 10px"> <el-button type="success" plain @click="openDialog('addFirst',{courseId: data.courseId})">章添加</el-button> - + <el-button type="primary" plain @click="back">返回</el-button> </div> <!-- 表格数据 --> <el-table v-loading="loading" :data="dataList" :border="true" row-key="id" :tree-props="{ children: 'chapterPeriods' }"> @@ -33,11 +33,12 @@ import {delArea, getArea} from "@/api/backManage/area"; import {getDictList} from "@/api/backManage/evaluate"; import {delMonitor} from "@/api/sysUsers"; -import {useRoute} from 'vue-router' +import {useRoute,useRouter} from 'vue-router' import {delClassification, getClassification} from "@/api/onlineEducation/courseClass"; import {delChapter, delPeriod, getChapters} from "@/api/onlineEducation/chapters"; const { proxy } = getCurrentInstance(); const route = useRoute() +const router = useRouter(); const loading = ref(false); const areaRef = ref(); const cityList = ref([]) @@ -70,7 +71,13 @@ dataList.value = res.data.map(item => { return { ...item, - timeFormat: item.resourceType === 1 || item.resourceType === 2 ? secondsToTime(item.resourceLength) : item.docPage + '页' + chapterPeriods: item.chapterPeriods.map(r => { + return { + ...r, + timeFormat: r.resource.resourceType === 1 || r.resource.resourceType === 2 ? secondsToTime(r.resource.resourceLength) : r.resource.docPage + '页' + } + }) + } }) }else{ @@ -139,6 +146,9 @@ }) } +const back = () => { + router.push("/courseManage/course"); +} </script> diff --git a/src/views/onlineEducation/groupExams/components/examDialog.vue b/src/views/onlineEducation/groupExams/components/examDialog.vue index 6a49a22..ee5269f 100644 --- a/src/views/onlineEducation/groupExams/components/examDialog.vue +++ b/src/views/onlineEducation/groupExams/components/examDialog.vue @@ -62,8 +62,11 @@ </el-select> <el-radio-group v-model="state.form.singleMethod" > <el-radio :label="1" style="max-width: 30px">随机</el-radio> - <el-radio :label="2">顺序</el-radio> - </el-radio-group> + <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-group> </div> </div> <div style="display: flex"> @@ -100,7 +103,10 @@ </el-select> <el-radio-group v-model="state.form.multiMethod" > <el-radio :label="1" style="max-width: 30px">随机</el-radio> - <el-radio :label="2">顺序</el-radio> + <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-group> </div> </div> @@ -138,7 +144,10 @@ </el-select> <el-radio-group v-model="state.form.judgeMethod" > <el-radio :label="1" style="max-width: 30px">随机</el-radio> - <el-radio :label="2">顺序</el-radio> + <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-group> </div> </div> @@ -190,6 +199,7 @@ getQuestionBank } from "@/api/onlineEducation/questionBank"; import {addExam, checkExamName, editExam} from "@/api/onlineEducation/exam"; +import Student from "@/views/onlineEducation/groupExams/components/student.vue"; const dialogVisible = ref(false); const title = ref(""); @@ -249,7 +259,10 @@ singleScore: null, limited: 1, limitTime: null, - passScore: null + passScore: null, + judgeRebuild: null, + multiRebuild: null, + singleRebuild: null, }, formRules: { @@ -403,7 +416,10 @@ singleScore: null, limited: 0, limitTime: null, - passScore: null + passScore: null, + judgeRebuild: null, + multiRebuild: null, + singleRebuild: null, } } const handleScroll = () => { @@ -456,7 +472,7 @@ align-items:center; font-size: 15px; font-weight: 700; - margin: 20px 0 0 70px; + margin: 20px 0 0 35px; } } diff --git a/src/views/onlineEducation/groupExams/components/student.vue b/src/views/onlineEducation/groupExams/components/student.vue index 63b6e46..ba9af7d 100644 --- a/src/views/onlineEducation/groupExams/components/student.vue +++ b/src/views/onlineEducation/groupExams/components/student.vue @@ -1,12 +1,19 @@ <template> <div class="app-container"> <div style="margin-bottom: 10px;display: flex;align-items: center;justify-content: space-between"> - <el-button - type="primary" - plain - icon="Plus" - @click="openDialog()" - >选择学员</el-button> + <div> + <el-button + type="primary" + plain + icon="Plus" + @click="openDialog()" + >选择学员</el-button> + <el-button + type="primary" + plain + @click="back" + >返回</el-button> + </div> <el-button type="danger" plain @@ -33,10 +40,19 @@ <span>{{scope.row.student.phone}}</span> </template> </el-table-column> - <el-table-column label="成绩" prop="score" align="center" /> + <el-table-column label="考试是否完成" prop="completed" align="center" > + <template #default="scope"> + <span>{{scope.row.completed ===0 ? '未完成' : '已完成'}}</span> + </template> + </el-table-column> + <el-table-column label="成绩" prop="score" align="center" > + <template #default="scope"> + <span>{{scope.row.completed ===0 ? '--' : scope.row.score}}</span> + </template> + </el-table-column> <el-table-column label="是否合格" prop="passed" align="center" > <template #default="scope"> - <span>{{scope.row.passed === 0 ? '不合格' : '合格'}}</span> + <span>{{scope.row.completed ===0 ? '--' : scope.row.passed === 0 ? '不合格' : '合格'}}</span> </template> </el-table-column> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180"> @@ -64,11 +80,11 @@ import Cookies from "js-cookie"; import {delQuestionBank, getQuestionBank} from "@/api/onlineEducation/questionBank"; import {batchDelStudent, delBatchStu, getBatchStudent} from "@/api/onlineEducation/batch"; -import {useRoute} from 'vue-router' +import {useRoute, useRouter} from 'vue-router' import {delExamStu, examDelStudent, getExamStudent} from "@/api/onlineEducation/exam"; import ExamChooseStudent from "@/views/onlineEducation/groupExams/components/examChooseStudent.vue"; const route = useRoute() - +const router = useRouter(); const { proxy } = getCurrentInstance(); const loading = ref(false); @@ -109,6 +125,10 @@ const getRowKey = (row) => { return row.id } + +const back = () => { + router.push("/group"); +} const getList = async () => { loading.value = true const res = await getExamStudent(data.queryParams) -- Gitblit v1.9.2