| | |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function studentCourseDetail(uuid) { |
| | | return request({ |
| | | url: '/th/course/student/' + uuid, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | |
| | | this.getList(); |
| | | }, |
| | | handleViewCourse(data){ |
| | | this.$refs.courseDialogRef.openDialog(data); |
| | | this.$refs.courseDialogRef.openDialog(data,'batch'); |
| | | }, |
| | | openStudent(data) { |
| | | this.$refs.studentDialog.openDialog(data); |
| | | this.$refs.studentDialog.openDialog(data,'batch'); |
| | | }, |
| | | openClassHour(data){ |
| | | this.$refs.classRef.openDialog(data) |
| | |
| | | :before-close="handleClose" |
| | | > |
| | | <el-table |
| | | height="250" |
| | | :data="learningTable" |
| | | style="width: 100%;"> |
| | | <el-table-column |
| | |
| | | prop="lessonTocal" |
| | | label="总学时" |
| | | > |
| | | <template #default="scope"> |
| | | {{type == 'batch' ? scope.row.batchLessonNum : scope.row.courseLessonNum}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="lessonNum" |
| | |
| | | |
| | | <script > |
| | | import lessonReport from '@/views/onlineEducation/studentSupervision/compontents/lessonReport.vue' |
| | | import { studentDetail } from '@/api/onlineEducation/student' |
| | | import { studentCourseDetail, studentDetail } from '@/api/onlineEducation/student' |
| | | import { listCourse } from '@/api/onlineEducation/course' |
| | | export default { |
| | | name: 'addUser', |
| | |
| | | dialogStatus: '', |
| | | dataForm: {}, |
| | | uuid: '', |
| | | total: 2, |
| | | total: 0, |
| | | type: '', |
| | | queryParams: { |
| | | |
| | | pageIndex: 1, |
| | | pageSize: 10 |
| | | }, |
| | | learningTable: [ |
| | | { |
| | |
| | | methods: { |
| | | getList() { |
| | | this.loading = true; |
| | | if(this.type === 'course'){ |
| | | studentCourseDetail( this.uuid).then((res) => { |
| | | if (res.code == 200) { |
| | | this.learningTable = res.data |
| | | this.loading = false; |
| | | // this.total = res.data.total |
| | | } |
| | | }) |
| | | }else { |
| | | studentDetail( this.uuid).then((res) => { |
| | | if (res.code == 200) { |
| | | this.learningTable = res.data |
| | | this.loading = false; |
| | | // this.total = res.data.total |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | openDialog (data) { |
| | | openDialog (data,type) { |
| | | this.type = type; |
| | | this.uuid = data.uuid; |
| | | this.getList(); |
| | | this.dialogVisible = true; |
| | |
| | | created() { |
| | | }, |
| | | methods: { |
| | | openDialog (data) { |
| | | openDialog (data,type) { |
| | | this.dialogVisible = true; |
| | | if(type === 'course'){ |
| | | this.courseList = data.outline |
| | | this.courseTable = this.recursion(data.outline) |
| | | }else { |
| | | this.courseList = data.chapterList |
| | | this.courseTable = this.recursion(data.chapterList) |
| | | } |
| | | |
| | | console.log('courseTable',this.courseTable) |
| | | }, |
| | | recursion (data) { |
| | |
| | | </div> |
| | | <el-table v-loading="loading" :data="expertList" style="margin-top: 10px"> |
| | | <el-table-column label="课程标识" align="center" prop="courseCode" /> |
| | | <el-table-column label="所属机构" align="center" prop="trainOrgName" /> |
| | | <el-table-column label="上报平台" align="center" prop="institutionName" /> |
| | | <el-table-column label="课程名称" align="center" prop="courseName" /> |
| | | <el-table-column label="课程章节数" align="center" prop="courseNum" > |
| | | <template #default="scope"> |
| | |
| | | this.getList(); |
| | | }, |
| | | handleViewCourse(data){ |
| | | this.$refs.courseDialogRef.openDialog(data); |
| | | this.$refs.courseDialogRef.openDialog(data,'course'); |
| | | }, |
| | | openStudent(data) { |
| | | // this.$refs.studentDialog.openDialog(data); |
| | | this.$refs.studentDialog.openDialog(data,'course'); |
| | | }, |
| | | check(val){ |
| | | this.$confirm('此操作将审核该条数据, 是否继续?', '提示', { |
| | |
| | | <el-table-column label="上报平台" align="center" prop="institutionName" /> |
| | | <el-table-column label="所属培训机构" align="center" prop="trainOrgName" /> |
| | | <el-table-column label="班级批次" align="center" prop="batchName" /> |
| | | <el-table-column label="课程名称" align="center" prop="courseName" /> |
| | | <!-- <el-table-column label="课程名称" align="center" prop="courseName" />--> |
| | | <el-table-column label="考试名称" align="center" prop="examName" /> |
| | | <el-table-column label="开考时间" align="center" prop="examStartTime" width="100" /> |
| | | <el-table-column label="结束时间" align="center" prop="examSubmitTime" width="100"/> |
| | |
| | | <span>{{scope.row.examIsPass == 1 ? '是' : '否'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="考试次数" align="center" prop="examNum" /> |
| | | <!-- <el-table-column label="考试次数" align="center" prop="examNum" />--> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total>0" |
| | |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | v-if="scope.row.status == 1" |
| | | @click="handleEnable(scope.row)" |
| | | >启用</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | v-if="scope.row.status == 0" |
| | | @click="handleDisable(scope.row)" |
| | | >监管禁用</el-button> |
| | | <!-- <el-button--> |
| | | <!-- size="mini"--> |
| | | <!-- type="text"--> |
| | | <!-- v-if="scope.row.status == 1"--> |
| | | <!-- @click="handleEnable(scope.row)"--> |
| | | <!-- >启用</el-button>--> |
| | | <!-- <el-button--> |
| | | <!-- size="mini"--> |
| | | <!-- type="text"--> |
| | | <!-- v-if="scope.row.status == 0"--> |
| | | <!-- @click="handleDisable(scope.row)"--> |
| | | <!-- >监管禁用</el-button>--> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | |
| | | @click="handleQuery()" |
| | | >查询实时进度</el-button> |
| | | <el-button |
| | | plain |
| | | size="small" |
| | | type="primary" |
| | | style="margin-bottom: 10px" |
| | |
| | | </div> |
| | | <!-- 查询数据--> |
| | | <div style="margin: 30px 20%" > |
| | | <div v-if="data"> |
| | | <div style="display: flex;align-items: center;margin-bottom: -15px" > |
| | | <span style="font-size: 20px;font-weight: 550">姓名:</span> |
| | | <span style="font-size: 18px;margin-right: 60px">{{dataList[0].name}}</span> |
| | | <span style="font-size: 20px;font-weight: 550">查询平台:</span> |
| | | <span style="font-size: 18px">{{dataList[0].institutionalName}}</span> |
| | | <span style="font-size: 18px;font-weight: 550">姓名:</span> |
| | | <span style="font-size: 17px;margin-right: 60px">{{data.name}}</span> |
| | | <span style="font-size: 18px;font-weight: 550">查询平台:</span> |
| | | <span style="font-size: 17px">{{data.institutionalName}}</span> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div v-for="(item,index) in dataList" :key="index" v-if="dataList && dataList.length>0"> |
| | | <div v-for="(batch,index) in item.batchList" :key="index"> |
| | | <div> |
| | | <div v-for="(batch,index) in data.batchList" :key="index" > |
| | | <div style="display: flex;align-items: center;margin-bottom: -15px" > |
| | | <span style="font-size: 20px">班级(批次):</span> |
| | | <span style="font-size: 18px;margin-right: 60px">{{batch.batchName}}</span> |
| | | <span style="font-size: 20px">创建时间:</span> |
| | | <span style="font-size: 18px">{{batch.createTime}}</span> |
| | | <span style="font-size: 18px">班级(批次):</span> |
| | | <span style="font-size: 16px;margin-right: 60px">{{batch.batchName}}</span> |
| | | <span style="font-size: 18px">创建时间:</span> |
| | | <span style="font-size: 16px">{{batch.createTime}}</span> |
| | | </div> |
| | | <div v-for="(course,index) in batch.courseList" :key="index" style="margin-top: 40px;margin-bottom: 50px"> |
| | | <div style="margin-bottom: -15px;display: flex;justify-content: space-between" > |
| | | <div style="display: flex;align-items: center;"> |
| | | <span style="font-size: 20px">课程名称:</span> |
| | | <span style="font-size: 18px;margin-right: 60px">{{course.courseName}}</span> |
| | | <span style="font-size: 20px">总学时:</span> |
| | | <span style="font-size: 18px;margin-right: 60px">{{course.lessonNum}}</span> |
| | | <span style="font-size: 20px">当前学时:</span> |
| | | <span style="font-size: 18px;margin-right: 60px">{{course.duration}}</span> |
| | | <span style="font-size: 18px">课程名称:</span> |
| | | <span style="font-size: 16px;margin-right: 60px">{{course.courseName}}</span> |
| | | <span style="font-size: 18px">总学时:</span> |
| | | <span style="font-size: 16px;margin-right: 60px">{{course.lessonNum}}</span> |
| | | <span style="font-size: 18px">当前学时:</span> |
| | | <span style="font-size: 16px;margin-right: 60px">{{course.duration}}</span> |
| | | </div> |
| | | <el-progress :percentage="course.durationRate" style="width: 250px" ></el-progress> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-empty description="暂无数据" style="margin-top: 10%" v-else></el-empty> |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :layout="layout" |
| | | :page.sync="queryParams.pageIndex" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | |
| | | return { |
| | | total: 2, |
| | | platformList: [], |
| | | dataList: [], |
| | | data: {}, |
| | | queryParams: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | pageSize: 2, |
| | | institutionId: '', |
| | | idcard: '' |
| | | }, |
| | | layout: 'total,prev, pager, next, jumper' |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | }, |
| | | methods: { |
| | | getList(){ |
| | | this.dataList = [ |
| | | console.log("111",this.queryParams) |
| | | this.data = |
| | | { |
| | | id: null, |
| | | idcard: '11111', |
| | |
| | | ] |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | batchName: 'xxxx', |
| | | createTime: 'xxxx', |
| | | courseList: [ |
| | | { |
| | | courseName: 'xx', |
| | | lessonNum: 100, |
| | | duration: 90, |
| | | durationRate: 90, |
| | | chapterList: [ |
| | | { |
| | | chapterName: '第5章:章节名称', |
| | | lessonTocal: 20, |
| | | lessonNum: 10 |
| | | }, |
| | | { |
| | | chapterName: '第1章:章节名称', |
| | | lessonTocal: 80, |
| | | lessonNum: 80 |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | courseName: 'xx', |
| | | lessonNum: 100, |
| | | duration: 90, |
| | | durationRate: 90, |
| | | chapterList: [ |
| | | { |
| | | chapterName: '第5章:章节名称', |
| | | lessonTocal: 20, |
| | | lessonNum: 10 |
| | | }, |
| | | { |
| | | chapterName: '第1章:章节名称', |
| | | lessonTocal: 80, |
| | | lessonNum: 80 |
| | | }, |
| | | ] |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: null, |
| | | idcard: '11111', |
| | | name: '李四', |
| | | institutionalName: '链工宝', |
| | | batchList: [ |
| | | batchName: 'xxxx', |
| | | createTime: 'xxxx', |
| | | courseList: [ |
| | | { |
| | | courseName: 'xx', |
| | | lessonNum: 100, |
| | | duration: 90, |
| | | durationRate: 90, |
| | | chapterList: [ |
| | | { |
| | | chapterName: '第5章:章节名称', |
| | | lessonTocal: 20, |
| | | lessonNum: 10 |
| | | }, |
| | | { |
| | | chapterName: '第1章:章节名称', |
| | | lessonTocal: 80, |
| | | lessonNum: 80 |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | courseName: 'xx', |
| | | lessonNum: 100, |
| | | duration: 90, |
| | | durationRate: 90, |
| | | chapterList: [ |
| | | { |
| | | chapterName: '第5章:章节名称', |
| | | lessonTocal: 20, |
| | | lessonNum: 10 |
| | | }, |
| | | { |
| | | chapterName: '第1章:章节名称', |
| | | lessonTocal: 80, |
| | | lessonNum: 80 |
| | | }, |
| | | ] |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | batchName: 'xxxx', |
| | | createTime: 'xxxx', |
| | |
| | | } |
| | | ] |
| | | } |
| | | |
| | | ] |
| | | } |
| | | ] |
| | | // { |
| | | // id: null, |
| | | // idcard: '11111', |
| | | // name: '李四', |
| | | // institutionalName: '链工宝', |
| | | // batchList: [ |
| | | // { |
| | | // batchName: 'xxxx', |
| | | // createTime: 'xxxx', |
| | | // courseList: [ |
| | | // { |
| | | // courseName: 'xx', |
| | | // lessonNum: 100, |
| | | // duration: 90, |
| | | // durationRate: 90, |
| | | // chapterList: [ |
| | | // { |
| | | // chapterName: '第5章:章节名称', |
| | | // lessonTocal: 20, |
| | | // lessonNum: 10 |
| | | // }, |
| | | // { |
| | | // chapterName: '第1章:章节名称', |
| | | // lessonTocal: 80, |
| | | // lessonNum: 80 |
| | | // }, |
| | | // ] |
| | | // }, |
| | | // { |
| | | // courseName: 'xx', |
| | | // lessonNum: 100, |
| | | // duration: 90, |
| | | // durationRate: 90, |
| | | // chapterList: [ |
| | | // { |
| | | // chapterName: '第5章:章节名称', |
| | | // lessonTocal: 20, |
| | | // lessonNum: 10 |
| | | // }, |
| | | // { |
| | | // chapterName: '第1章:章节名称', |
| | | // lessonTocal: 80, |
| | | // lessonNum: 80 |
| | | // }, |
| | | // ] |
| | | // } |
| | | // ] |
| | | // } |
| | | // ] |
| | | // } |
| | | this.total = 4; |
| | | // listCourse( this.queryParams).then((res) => { |
| | | // if (res.code == 200) { |
| | | // this.expertList = res.rows.map(item => { |
| | |
| | | // } |
| | | // }) |
| | | }, |
| | | openUrl(url) { |
| | | window.open(url,'_blank') |
| | | }, |
| | | getPlat() { |
| | | listPlatSelect().then((res) => { |
| | | if (res.code == 200) { |
| | |
| | | }) |
| | | |
| | | }, |
| | | handleChange(){ |
| | | |
| | | }, |
| | | handleQuery(){ |
| | | this.getList(); |
| | | |
| | |
| | | } |
| | | this.getList(); |
| | | }, |
| | | handleViewCourse(data){ |
| | | this.$refs.courseDialogRef.openDialog(data); |
| | | }, |
| | | openStudent(data) { |
| | | // this.$refs.studentDialog.openDialog(data); |
| | | }, |
| | | check(val){ |
| | | this.$confirm('此操作将审核该条数据, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(async () => { |
| | | }).catch(() => { |
| | | |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | </script> |