对比新文件 |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | export function listCourse(query) { |
| | | return request({ |
| | | url: '/th/course/list/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
对比新文件 |
| | |
| | | |
| | | import request from '@/utils/request' |
| | | |
| | | export function listPlat(query) { |
| | | return request({ |
| | | url: '/th/institutional/manager/list/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function listPlatSelect() { |
| | | return request({ |
| | | url: '/th/institutional/manager/select', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 新增角色 |
| | | export function addPlat(data) { |
| | | return request({ |
| | | url: '/th/institutional/manager/add', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 修改角色 |
| | | export function updatePlat(data) { |
| | | return request({ |
| | | url: '/th/institutional/manager/mod', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 删除角色 |
| | | export function delPlat(id) { |
| | | return request({ |
| | | url: '/th/institutional/manager/del/' + id, |
| | | method: 'delete' |
| | | }) |
| | | } |
对比新文件 |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | export function listStudent(query) { |
| | | return request({ |
| | | url: '/th/student/list/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function listRecord(query) { |
| | | return request({ |
| | | url: '/th/study/record/list/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function listExam(query) { |
| | | return request({ |
| | | url: '/th/exam/record/list/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function listQuestion(query) { |
| | | return request({ |
| | | url: '/th/question/bank/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function listBatch(query) { |
| | | return request({ |
| | | url: 'th/batch/list/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function periodDetail(uuid) { |
| | | return request({ |
| | | url: '/th/batch/period/' + uuid, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | export function studentDetail(uuid) { |
| | | return request({ |
| | | url: '/th/batch/student/' + uuid, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | |
| | | :before-close="handleClose" |
| | | > |
| | | <div v-for="(item,index) in classList" :key="index"> |
| | | <span style="font-size: 16px;">{{item.courseName}}:总学时{{item.totalTime}}分钟</span> |
| | | <span style="font-size: 16px;">{{item.courseName}}:总学时 {{item.durationDesc}}</span> |
| | | <el-table |
| | | :data="item.userList" |
| | | :data="item.studentList" |
| | | style="width: 100%;margin-top: 10px"> |
| | | <el-table-column |
| | | prop="name" |
| | |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="身份证号" |
| | | prop="idCard" :show-overflow-tooltip="true"> |
| | | prop="idcard" :show-overflow-tooltip="true"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="progress" |
| | | prop="durationRate" |
| | | label="当前学时进度" |
| | | > |
| | | <template #default="scope"> |
| | | <el-progress :text-inside="true" :stroke-width="26" :percentage="scope.row.progressRate" :status="scope.row.progressStatus"></el-progress> |
| | | <el-progress :text-inside="true" :stroke-width="26" :percentage="scope.row.durationRate" :status="scope.row.progressStatus"></el-progress> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="关联上报记录" align="center" class-name="small-padding fixed-width"> |
| | |
| | | <el-table-column label="学时报告" align="center" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button |
| | | v-if="scope.row.progress == item.totalTime" |
| | | v-if="scope.row.duration == item.duration" |
| | | size="mini" |
| | | type="text" |
| | | style="color: #1890ff" |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="item.total>0" |
| | | :total="item.total" |
| | | :page.sync="queryParams.pageIndex" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </div> |
| | | <learningRecord ref="recordRef"></learningRecord> |
| | | <el-dialog |
| | | title="学习记录" |
| | | :visible.sync="learningDialog" |
| | | :modal-append-to-body="false" |
| | | :close-on-click-modal="false" |
| | | width="850px" |
| | | append-to-body |
| | | :before-close="handleCloseLearning"> |
| | | <learning-record ref="learnRef" ></learning-record> |
| | | </el-dialog> |
| | | <lessonReport ref="lessonRef"></lessonReport> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script > |
| | | import learningRecord from '@/views/onlineEducation/studentSupervision/compontents/learningRecord.vue' |
| | | import learningRecord from '@/views/onlineEducation/learnRecord/index.vue' |
| | | import lessonReport from '@/views/onlineEducation/studentSupervision/compontents/lessonReport.vue' |
| | | import { periodDetail } from '@/api/onlineEducation/student' |
| | | import { listPlatSelect } from '@/api/onlineEducation/plat' |
| | | export default { |
| | | name: 'addUser', |
| | | components: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | learningDialog: false, |
| | | dialogVisible: false, |
| | | dialogStatus: '', |
| | | dataForm: {}, |
| | | queryParams: {}, |
| | | uuid: '', |
| | | classList: [ |
| | | { |
| | | courseName:'课程一', |
| | |
| | | }, |
| | | methods: { |
| | | getList() { |
| | | |
| | | periodDetail(this.uuid).then((res) => { |
| | | if (res.code == 200) { |
| | | this.classList = res.data.map(item => { |
| | | return { |
| | | ...item, |
| | | studentList: item.studentList.map(stu => { |
| | | return { |
| | | ...stu, |
| | | durationRate: Math.round(stu.duration/item.duration * 10000) / 100.00, |
| | | progressStatus: Math.round(stu.duration/item.duration * 10000) / 100.00<=50 ? 'exception' |
| | | : Math.round(stu.duration/item.duration * 10000) / 100.00 >50 && Math.round(stu.duration/item.duration * 10000) / 100.00<=90 ? 'warning' |
| | | : 'success' |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | console.log("class",this.classList) |
| | | this.dialogVisible = true; |
| | | } |
| | | }) |
| | | }, |
| | | openDialog (type, data) { |
| | | this.dialogVisible = true; |
| | | this.dialogStatus = type; |
| | | handleCloseLearning() { |
| | | this.learningDialog = false; |
| | | }, |
| | | openDialog (data) { |
| | | this.uuid = data.uuid; |
| | | this.getList() |
| | | |
| | | |
| | | |
| | | }, |
| | | |
| | | handleClose() { |
| | |
| | | this.$emit("getList"); |
| | | }, |
| | | openClassHour(data){ |
| | | this.$refs.recordRef.openDialog(data); |
| | | this.learningDialog = true |
| | | setTimeout(() => { |
| | | this.$refs.learnRef.getList(data) |
| | | },10) |
| | | }, |
| | | viewLessonReport(data){ |
| | | this.$refs.lessonRef.openDialog(data) |
| | | this.$refs.lessonRef.openDialog(data.url) |
| | | } |
| | | |
| | | } |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div style="margin-left: -35px;margin-top: 15px"> |
| | | <el-select v-model="queryParams.platform" size="small" style="margin-left: 40px;" placeholder="请选择平台"> |
| | | <el-select v-model="queryParams.institutionId" size="small" style="margin-left: 40px;" placeholder="请选择平台"> |
| | | <el-option |
| | | v-for="item in platformList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | :key="item.id" |
| | | :label="item.institutionalName" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button |
| | |
| | | @click="handleQuery()" |
| | | >查询</el-button> |
| | | <el-button |
| | | plain |
| | | size="small" |
| | | type="primary" |
| | | style="margin-bottom: 10px" |
| | |
| | | >重置</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="expertList" style="margin-top: 10px"> |
| | | <el-table-column label="UUID" align="center" prop="UUID" /> |
| | | <el-table-column label="UUID" align="center" prop="uuid" /> |
| | | <el-table-column label="批次名称" align="center" prop="batchName" /> |
| | | <el-table-column label="推送平台" align="center" prop="platform" /> |
| | | <el-table-column label="上报时间" align="center" prop="reportTime" /> |
| | | <el-table-column label="所属培训机构" align="center" prop="trainingInstitution" /> |
| | | <el-table-column label="推送平台" align="center" prop="institutionName" /> |
| | | <el-table-column label="上报时间" align="center" prop="createTime" /> |
| | | <el-table-column label="所属培训机构" align="center" prop="trainOrgName" /> |
| | | <el-table-column label="课程" align="center" > |
| | | <template #default="scope"> |
| | | <div v-for="(item,index) in scope.row.course" :key="index" style="color: #1890ff;cursor: pointer"> |
| | | <span @click="handleViewCourse(item)">{{item}}</span> |
| | | <div v-for="(item,index) in scope.row.courseVOList" :key="index" style="color: #1890ff;cursor: pointer"> |
| | | <span @click="handleViewCourse(item)">{{item.courseName}}</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="学员人数" align="center" prop="student" > |
| | | <template #default="scope"> |
| | | <span style="color: #1890ff;cursor: pointer" @click="openStudent(scope.row)">{{scope.row.student}}</span> |
| | | <span style="color: #1890ff;cursor: pointer" @click="openStudent(scope.row)">{{scope.row.studentCount}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="是否有考试" align="center" prop="isExam" /> |
| | | <el-table-column label="已开班" align="center" prop="isOfferClass" /> |
| | | <el-table-column label="数据更新时间" align="center" prop="updateTime" /> |
| | | <el-table-column label="删除标记" align="center" prop="delFlag" /> |
| | | <el-table-column label="是否有考试" align="center" prop="haveExam" > |
| | | <template #default="scope"> |
| | | <span>{{scope.row.haveExam == 0 ? '否' : '是'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="已开班" align="center" prop="openStatus" > |
| | | <template #default="scope"> |
| | | <span>{{scope.row.openStatus == 0 ? '否' : '是'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="数据更新时间" align="center" prop="updateTime" width="100" /> |
| | | <el-table-column label="删除标记" align="center" prop="delFlag" > |
| | | <template #default="scope"> |
| | | <span>{{scope.row.delFlag == 0 ? '未删除' : '已删除'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="学时监管" align="center" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button |
| | |
| | | import studentList from '@/views/onlineEducation/count/components/studentList.vue' |
| | | import courseDialog from '@/views/onlineEducation/courseSupervision/components/courseDialog.vue' |
| | | import classHour from '@/views/onlineEducation/classBatch/components/classHour.vue' |
| | | import { listBatch, listQuestion } from '@/api/onlineEducation/student' |
| | | import { listPlatSelect } from '@/api/onlineEducation/plat' |
| | | export default { |
| | | name: "nPeopleManage", |
| | | dicts: [], |
| | |
| | | showSearch: true, |
| | | addForm: false, |
| | | total: 0, |
| | | platformList: [ |
| | | { |
| | | value: '1', |
| | | label: '平台1' |
| | | }, |
| | | { |
| | | value: '2', |
| | | label: '平台2' |
| | | }, |
| | | ], |
| | | platformList: [], |
| | | expertList: [], |
| | | queryParams: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | platform: '' |
| | | institutionId: '' |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getPlat(); |
| | | }, |
| | | methods: { |
| | | getList(){ |
| | | this.loading = true; |
| | | this.expertList = [ |
| | | { |
| | | UUID: '2024060600001', |
| | | batchName: '测试数据1', |
| | | platform:'平台1', |
| | | reportTime: '2024-6-11 10:32:00', |
| | | trainingInstitution: '培训机构1', |
| | | course: ['课程1','课程2'], |
| | | student:120, |
| | | isExam: '是', |
| | | isOfferClass: '是', |
| | | delFlag:'未删除', |
| | | updateTime: '2024-6-11 10:32:00' |
| | | }, |
| | | { |
| | | UUID: '2024060600002', |
| | | batchName: '测试数据2', |
| | | platform:'平台2', |
| | | reportTime: '2024-6-11 10:32:00', |
| | | trainingInstitution: '培训机构2', |
| | | course: ['课程2'], |
| | | student: 132, |
| | | isExam: '否', |
| | | isOfferClass: '否', |
| | | delFlag:'未删除', |
| | | updateTime: '2024-6-11 10:32:00' |
| | | }, |
| | | ] |
| | | this.total = 2 |
| | | this.loading = false; |
| | | |
| | | listBatch( this.queryParams).then((res) => { |
| | | if (res.code == 200) { |
| | | this.expertList = res.rows |
| | | this.total = res.total |
| | | this.loading = false; |
| | | } |
| | | }) |
| | | }, |
| | | getPlat() { |
| | | listPlatSelect().then((res) => { |
| | | if (res.code == 200) { |
| | | this.platformList = res.data |
| | | } |
| | | }) |
| | | }, |
| | | handleChange(){ |
| | | |
| | |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="身份证号" |
| | | prop="idCard" |
| | | prop="idcard" |
| | | width="160" :show-overflow-tooltip="true"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="totalTime" |
| | | prop="lessonTocal" |
| | | label="总学时" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="learnedTime" |
| | | prop="lessonNum" |
| | | label="已学学时" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="isEnd" |
| | | prop="finishStatus" |
| | | label="是否已结束培训" |
| | | ></el-table-column> |
| | | > |
| | | <template #default="scope"> |
| | | {{scope.row.finishStatus == 0 ? '未结束' : '已结束'}} |
| | | </template> |
| | | |
| | | </el-table-column> |
| | | <el-table-column label="学时报告" align="center" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button |
| | | v-if="scope.row.isEnd === '是'" |
| | | v-if="scope.row.finishStatus == 1" |
| | | size="mini" |
| | | type="text" |
| | | style="color: #1890ff" |
| | | @click="viewLessonReport" |
| | | @click="viewLessonReport(scope.row.url)" |
| | | >查看学时报告</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageIndex" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | <!-- <pagination--> |
| | | <!-- v-show="total>0"--> |
| | | <!-- :total="total"--> |
| | | <!-- :page.sync="queryParams.pageIndex"--> |
| | | <!-- :limit.sync="queryParams.pageSize"--> |
| | | <!-- @pagination="getList"--> |
| | | <!-- />--> |
| | | <lessonReport ref="lessonRef"></lessonReport> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script > |
| | | import lessonReport from '@/views/onlineEducation/studentSupervision/compontents/lessonReport.vue' |
| | | import { studentDetail } from '@/api/onlineEducation/student' |
| | | import { listCourse } from '@/api/onlineEducation/course' |
| | | export default { |
| | | name: 'addUser', |
| | | components: { |
| | |
| | | dialogVisible: false, |
| | | dialogStatus: '', |
| | | dataForm: {}, |
| | | uuid: '', |
| | | total: 2, |
| | | queryParams: {}, |
| | | queryParams: { |
| | | |
| | | }, |
| | | learningTable: [ |
| | | { |
| | | name: '张三', |
| | |
| | | }, |
| | | methods: { |
| | | getList() { |
| | | |
| | | this.loading = true; |
| | | studentDetail( this.uuid).then((res) => { |
| | | if (res.code == 200) { |
| | | this.learningTable = res.data |
| | | this.loading = false; |
| | | } |
| | | }) |
| | | }, |
| | | openDialog (type, data) { |
| | | openDialog (data) { |
| | | this.uuid = data.uuid; |
| | | this.getList(); |
| | | this.dialogVisible = true; |
| | | this.dialogStatus = type; |
| | | }, |
| | | |
| | | handleClose() { |
| | |
| | | </div> |
| | | <div :class="{'open':isClose}" style="overflow: hidden"> |
| | | <div v-for="(item,index) in courseList" :key="index" style="font-size: 16px;margin: 20px 35px"> |
| | | <span>{{item.name}}</span> |
| | | <span>{{item.chapterName}}</span> |
| | | <div v-if="item.children"> |
| | | <div v-for="(child,index) in item.children" :key="index" style="font-size: 16px;margin: 20px 8px"> |
| | | <span>{{child.chapterName}}</span> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | :data="courseTable" |
| | | style="width: 80%;margin: 20px 35px"> |
| | | <el-table-column |
| | | prop="catalogCode" |
| | | prop="chapterCode" |
| | | label="章节UUID"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="catalogName" |
| | | prop="chapterName" |
| | | label="章节名称"> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | size="mini" |
| | | type="text" |
| | | style="color: #1890ff" |
| | | @click="openUrl(scope.row.url)" |
| | | >预览课程</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | dialogVisible: false, |
| | | dialogStatus: '', |
| | | dataForm: {}, |
| | | courseTable: [ |
| | | { |
| | | catalogCode: '1', |
| | | catalogName: '测试', |
| | | resourceType: '视频', |
| | | lessonNum: '2h' |
| | | }, |
| | | { |
| | | catalogCode: '1', |
| | | catalogName: '测试3', |
| | | resourceType: '音频', |
| | | lessonNum: '45min' |
| | | } |
| | | ], |
| | | courseList: [ |
| | | { |
| | | name: '1.1 ……' |
| | | }, |
| | | { |
| | | name: '1.2 ……' |
| | | }, |
| | | { |
| | | name: '1.3 ……' |
| | | } |
| | | |
| | | ] |
| | | courseTable: [], |
| | | courseList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | openDialog (type, data) { |
| | | this.resetDataForm(); |
| | | openDialog (data) { |
| | | this.dialogVisible = true; |
| | | this.dialogStatus = type; |
| | | this.courseList = data.outline |
| | | this.courseTable = this.recursion(data.outline) |
| | | console.log('courseTable',this.courseTable) |
| | | }, |
| | | recursion (data) { |
| | | let tmp = [] |
| | | if(data && data.length > 0){ |
| | | for (let i = 0; i < data.length; i++) { |
| | | let item = data[i] |
| | | // children为空 |
| | | if (item.children && item.children.length==0) { |
| | | // 有children |
| | | } else { |
| | | item.children.forEach(child => { |
| | | tmp.push({ |
| | | chapterCode: child.chapterCode, |
| | | chapterName: child.chapterName, |
| | | resourceType: child.haveResource == 0 ? '视频' : '音频' , |
| | | lessonNum: child.lessonNum, |
| | | url: child.url, |
| | | children: this.recursion(child.children) |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | return tmp; |
| | | }, |
| | | openUrl(url) { |
| | | window.open(url,'_blank') |
| | | }, |
| | | clickOpen() { |
| | | this.isClose = !this.isClose |
| | |
| | | this.$emit("getList"); |
| | | }, |
| | | onSubmit() { |
| | | this.$refs["dataForm"].validate( async valid => { |
| | | if (valid) { |
| | | if(this.dialogStatus == 'add'){ |
| | | // this.dataForm.isCm = 1; |
| | | // console.log("this.dataForm",this.dataForm) |
| | | // const res = await addExam(this.dataForm); |
| | | // if(res.code == 200) { |
| | | |
| | | this.$emit("getList"); |
| | | this.dialogVisible = false; |
| | | // this.$message({ |
| | | // type:'success', |
| | | // message: '新增成功' |
| | | // }) |
| | | // }else{ |
| | | // this.$message({ |
| | | // type:'warning', |
| | | // message: res.msg |
| | | // }) |
| | | // } |
| | | }else { |
| | | // this.dataForm.isCm = 1; |
| | | // console.log("this.dataForm",this.dataForm) |
| | | // const res = await updateExam(this.dataForm); |
| | | // if(res.code == 200) { |
| | | this.$emit("getList"); |
| | | this.dialogVisible = false; |
| | | // this.$message({ |
| | | // type:'success', |
| | | // message: '编辑成功' |
| | | // }) |
| | | // }else{ |
| | | // this.$message({ |
| | | // type:'warning', |
| | | // message: res.msg |
| | | // }) |
| | | // } |
| | | } |
| | | } |
| | | }) |
| | | |
| | | |
| | | }, |
| | | resetDataForm() { |
| | | this.dataForm = { |
| | | } |
| | | }, |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | <div class="app-container"> |
| | | <span style="font-size: 20px;font-weight: 550">课程汲取与课程监管</span> |
| | | <div style="margin-left: -35px;margin-top: 15px"> |
| | | <el-select v-model="queryParams.platform" size="small" style="margin-left: 40px;" placeholder="请选择平台"> |
| | | <el-select v-model="queryParams.institutionId" size="small" style="margin-left: 40px;" placeholder="请选择平台"> |
| | | <el-option |
| | | v-for="item in platformList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | :key="item.id" |
| | | :label="item.institutionalName" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button |
| | |
| | | >重置</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="expertList" style="margin-top: 10px"> |
| | | <el-table-column label="课程标识UUID" align="center" prop="courseCode" /> |
| | | <el-table-column label="来源企业" align="center" prop="unit" /> |
| | | <el-table-column label="课程标识" align="center" prop="courseCode" /> |
| | | <el-table-column label="所属机构" align="center" prop="trainOrgName" /> |
| | | <el-table-column label="课程名称" align="center" prop="courseName" /> |
| | | <el-table-column label="课程章节数" align="center" prop="courseNum" > |
| | | <template #default="scope"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="总课时" align="center" prop="lessonNum" /> |
| | | <el-table-column label="查看已学学员" align="center" prop="student" > |
| | | <el-table-column label="查看已学学员" align="center" prop="studentCount" > |
| | | <template #default="scope"> |
| | | <span style="color: #1890ff;cursor: pointer" @click="openStudent(scope.row)">{{scope.row.student}}</span> |
| | | <span style="color: #1890ff;cursor: pointer" @click="openStudent(scope.row)">{{scope.row.studentCount}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="审核状态" align="center" prop="state" />--> |
| | | <el-table-column label="删除标识" align="center" prop="delFlag" /> |
| | | <el-table-column label="创建时间" align="center" prop="createTime" /> |
| | | <el-table-column label="最近修改时间" align="center" prop="updateTime" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <el-table-column label="删除标识" align="center" prop="delFlag" > |
| | | <template #default="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | style="color: #1890ff" |
| | | >预览课程</el-button> |
| | | <span>{{scope.row.delFlag == 0 ? '未删除' : '已删除'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="创建时间" align="center" prop="createTime" width="100"/> |
| | | <el-table-column label="最近修改时间" align="center" prop="updateTime" width="100" /> |
| | | <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">--> |
| | | <!-- <template #default="scope">--> |
| | | <!-- <el-button--> |
| | | <!-- v-if="scope.row.state == '未审核'"--> |
| | | <!-- size="mini"--> |
| | | <!-- type="text"--> |
| | | <!-- style="color: #1890ff"--> |
| | | <!-- @click="check(scope.row)"--> |
| | | <!-- >审核</el-button>--> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- @click="openUrl(scope.row)"--> |
| | | <!-- >预览课程</el-button>--> |
| | | <!--<!– <el-button–>--> |
| | | <!--<!– v-if="scope.row.state == '未审核'"–>--> |
| | | <!--<!– size="mini"–>--> |
| | | <!--<!– type="text"–>--> |
| | | <!--<!– style="color: #1890ff"–>--> |
| | | <!--<!– @click="check(scope.row)"–>--> |
| | | <!--<!– >审核</el-button>–>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total>0" |
| | |
| | | import courseDialog from '@/views/onlineEducation/courseSupervision/components/courseDialog.vue' |
| | | import studentList from '@/views/onlineEducation/count/components/studentList.vue' |
| | | import { delJobRegist } from '@/api/coalMine/jobRegist' |
| | | import { listPlat, listPlatSelect } from '@/api/onlineEducation/plat' |
| | | import { listCourse } from '@/api/onlineEducation/course' |
| | | export default { |
| | | name: "nPeopleManage", |
| | | dicts: [], |
| | |
| | | showSearch: true, |
| | | addForm: false, |
| | | total: 0, |
| | | platformList: [ |
| | | { |
| | | value: '1', |
| | | label: '平台1' |
| | | }, |
| | | { |
| | | value: '2', |
| | | label: '平台2' |
| | | }, |
| | | ], |
| | | platformList: [], |
| | | expertList: [], |
| | | queryParams: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | platform: '' |
| | | institutionId: '' |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getPlat(); |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | getList(){ |
| | | this.loading = true; |
| | | this.expertList = [ |
| | | { |
| | | courseCode: '2024060600001', |
| | | unit: '测试数据1', |
| | | courseName:'测试课程1', |
| | | courseNum: 12, |
| | | lessonNum: 300, |
| | | student: 600, |
| | | state:'未审核', |
| | | delFlag:'未删除', |
| | | createTime: '2024-6-11 10:32:00', |
| | | updateTime: '2024-6-11 10:32:00' |
| | | }, |
| | | { |
| | | courseCode: '2024060600002', |
| | | unit: '测试数据2', |
| | | courseName:'测试课程1', |
| | | courseNum: 12, |
| | | lessonNum: 300, |
| | | student: 120, |
| | | state:'已审核', |
| | | delFlag:'未删除', |
| | | createTime: '2024-6-11 10:32:00', |
| | | updateTime: '2024-6-11 10:32:00' |
| | | }, |
| | | { |
| | | courseCode: '2024060600003', |
| | | unit: '测试数据3', |
| | | courseName:'测试课程1', |
| | | courseNum: 12, |
| | | lessonNum: 100, |
| | | student: 600, |
| | | state:'审核不符合', |
| | | delFlag:'已删除', |
| | | createTime: '2024-6-11 10:32:00', |
| | | updateTime: '2024-6-11 10:32:00' |
| | | }, |
| | | ] |
| | | this.total = 2 |
| | | this.loading = false; |
| | | listCourse( this.queryParams).then((res) => { |
| | | if (res.code == 200) { |
| | | this.expertList = res.rows.map(item => { |
| | | return { |
| | | ...item, |
| | | courseNum: item.outline ? item.outline.length : '' |
| | | } |
| | | }) |
| | | this.total = res.total |
| | | this.loading = false; |
| | | } |
| | | }) |
| | | }, |
| | | openUrl(url) { |
| | | window.open(url,'_blank') |
| | | }, |
| | | getPlat() { |
| | | listPlatSelect().then((res) => { |
| | | if (res.code == 200) { |
| | | this.platformList = res.data |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | handleChange(){ |
| | |
| | | this.$refs.courseDialogRef.openDialog(data); |
| | | }, |
| | | openStudent(data) { |
| | | this.$refs.studentDialog.openDialog(data); |
| | | // this.$refs.studentDialog.openDialog(data); |
| | | }, |
| | | check(val){ |
| | | this.$confirm('此操作将审核该条数据, 是否继续?', '提示', { |
| | |
| | | <el-table v-loading="loading" :data="expertList"> |
| | | <el-table-column label="记录ID" align="center" prop="id" /> |
| | | <el-table-column label="姓名" align="center" prop="name" /> |
| | | <el-table-column label="身份证号" align="center" prop="idCard" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="上报平台" align="center" prop="platformName" /> |
| | | <el-table-column label="所属培训机构" align="center" prop="trainingInstitution" /> |
| | | <el-table-column label="班级批次" align="center" prop="classBatch" /> |
| | | <el-table-column label="身份证号" align="center" prop="idcard" :show-overflow-tooltip="true" /> |
| | | <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="examName" /> |
| | | <el-table-column label="开考时间" align="center" prop="startTime" /> |
| | | <el-table-column label="结束时间" align="center" prop="endTime" /> |
| | | <el-table-column label="学员成绩" align="center" prop="grade" /> |
| | | <el-table-column label="试卷总分" align="center" prop="examTotal" /> |
| | | <el-table-column label="合格分数" align="center" prop="qualifiedScore" /> |
| | | <el-table-column label="是否通过" align="center" prop="isPass" /> |
| | | <el-table-column label="开考时间" align="center" prop="examStartTime" width="100" /> |
| | | <el-table-column label="结束时间" align="center" prop="examSubmitTime" width="100"/> |
| | | <el-table-column label="学员成绩" align="center" prop="examUserScore" /> |
| | | <el-table-column label="试卷总分" align="center" prop="examTotalScore" /> |
| | | <el-table-column label="合格分数" align="center" prop="examPassScore" /> |
| | | <el-table-column label="是否通过" align="center" prop="examIsPass" > |
| | | <template #default="scope"> |
| | | <span>{{scope.row.examIsPass == 1 ? '是' : '否'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="考试次数" align="center" prop="examNum" /> |
| | | </el-table> |
| | | <pagination |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listExam, listStudent } from '@/api/onlineEducation/student' |
| | | |
| | | export default { |
| | | name: "nPeopleManage", |
| | | dicts: [], |
| | |
| | | expertList: [], |
| | | queryParams: { |
| | | pageIndex: 1, |
| | | pageSize: 10 |
| | | pageSize: 10, |
| | | name: '', |
| | | idcard: '' |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getList({}); |
| | | }, |
| | | methods: { |
| | | getList(){ |
| | | getList(data){ |
| | | if(data){ |
| | | this.queryParams.idcard = data.idcard |
| | | this.expertList = [] |
| | | } |
| | | this.loading = true; |
| | | this.expertList = [ |
| | | { |
| | | id: '2024060600001', |
| | | name: '张三', |
| | | idCard: '321154874512225541', |
| | | platformName:'测试数据1', |
| | | trainingInstitution:'测试机构1', |
| | | classBatch: '批次1', |
| | | courseName:'测试课程1', |
| | | examName:'测试考试1', |
| | | startTime:'2024-6-11 10:32:00', |
| | | endTime:'2024-6-11 12:32:00', |
| | | grade: 80, |
| | | examTotal: 100, |
| | | qualifiedScore: 60, |
| | | isPass: '是', |
| | | examNum: 1, |
| | | }, |
| | | { |
| | | id: '2024060600002', |
| | | name: '李四', |
| | | idCard: '32115487451215241', |
| | | platformName:'测试数据2', |
| | | trainingInstitution:'测试机构2', |
| | | classBatch: '批次2', |
| | | courseName:'测试课程2', |
| | | examName:'测试考试2', |
| | | startTime:'2024-6-11 10:32:00', |
| | | endTime:'2024-6-11 12:32:00', |
| | | grade: 55, |
| | | examTotal: 100, |
| | | qualifiedScore: 60, |
| | | isPass: '否', |
| | | examNum: 2, |
| | | }, |
| | | ] |
| | | this.total = 2 |
| | | this.loading = false; |
| | | |
| | | listExam( this.queryParams).then((res) => { |
| | | if (res.code == 200) { |
| | | this.expertList = res.rows |
| | | this.total = res.total |
| | | this.loading = false; |
| | | } |
| | | }) |
| | | }, |
| | | handleChange(){ |
| | | |
| | |
| | | :close-on-click-modal="false" |
| | | width="900px" |
| | | :before-close="handleClose" |
| | | append-to-body |
| | | > |
| | | <el-form ref="dataForm" :model="dataForm" label-position="right" label-width="150px" style="padding-right: 50px" > |
| | | <div class="flex"> |
| | |
| | | <span>{{dataForm.name}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号:" > |
| | | <span>{{dataForm.idCard}}</span> |
| | | <span>{{dataForm.idcard }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="学习平台:" > |
| | | <span>{{dataForm.platformName}}</span> |
| | | <span>{{dataForm.institutionName}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="所属机构:" > |
| | | <span>{{dataForm.trainingInstitution}}</span> |
| | | <span>{{dataForm.trainOrgName}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="当前班级(批次):"> |
| | | <span>{{dataForm.classBatch}}</span> |
| | | <span>{{dataForm.batchName}}</span> |
| | | </el-form-item> |
| | | |
| | | <div class="flex"> |
| | | <el-form-item label="课程:"> |
| | | <span>{{dataForm.course}}</span> |
| | | <span>{{dataForm.courseName}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="章节:"> |
| | | <span>{{dataForm.chapter}}</span> |
| | | <span>{{dataForm.catalogName}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <el-table |
| | | :data="examTable" |
| | | :data="tableData" |
| | | style="width: 80%;margin-left: 50px"> |
| | | <el-table-column |
| | | prop="learningTime" |
| | | label="学习时长"> |
| | | prop="durationDesc" |
| | | label="学习时长" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="startTime" |
| | | label="开始时间"> |
| | | label="开始时间" width="150" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="startTime" |
| | | label="开始位置"> |
| | | prop="startPositionDesc" |
| | | label="开始位置" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="结束时间" |
| | | prop="endTime"> |
| | | prop="finishTime" width="150" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="结束位置" |
| | | prop="endTime"> |
| | | prop="finishPositionDesc" align="center"> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="columnFlex" style="margin: 30px 20px "> |
| | | <div style="margin: 30px 20px "> |
| | | <span style="font-size: 20px;font-weight: 550">认证纪录集合</span> |
| | | <div class="columnFlex" style="margin-top: 15px"> |
| | | <img style="height: 130px;width: 130px;" src="../../../../assets/images/im.png"> |
| | | <div class="columnFlex" style="margin-top: 15px;font-size: 16px;line-height: 25px"> |
| | | <span>认证位置:xxxx</span> |
| | | <span>类别:签到</span> |
| | | <span>认证时间:2024-6-11 10:32:00</span> |
| | | <div style="display: flex;flex-wrap: wrap;"> |
| | | <div style="margin-top: 15px;margin-left: 30px" v-for="item in authList"> |
| | | <el-image |
| | | style="width: 150px; height: 150px" |
| | | :src="dataForm.approvePhoto" |
| | | :preview-src-list="[dataForm.approvePhoto]"> |
| | | </el-image> |
| | | <div class="columnFlex" style="margin-top: 15px;font-size: 16px;line-height: 25px"> |
| | | <span>认证位置:{{ item.authPostionDesc}}</span> |
| | | <span>类别:{{ item.faceType == 10 ? '签到' : '认证' }}</span> |
| | | <span>认证时间:{{item.authTime}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <div class="columnFlex" style="margin: 30px 20px "> |
| | | <span style="font-size: 20px;font-weight: 550">视频存档 (非必传)</span> |
| | |
| | | <span style="font-size: 20px;font-weight: 550">学习轨迹</span> |
| | | <div class="columnFlex" style="margin-top: 5px"> |
| | | <el-table |
| | | :data="examTable" |
| | | :data="trackList" |
| | | style="width: 80%;margin: 10px 25px"> |
| | | <el-table-column |
| | | prop="startTime" |
| | | label="开始时间" |
| | | width="180"> |
| | | width="180" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="结束时间" |
| | | prop="endTime"> |
| | | prop="endTime" align="center"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="learningTime" |
| | | prop="timeIntervalDesc" |
| | | label="时间间隔" |
| | | width="180"> |
| | | width="180" align="center"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | |
| | | <div class="columnFlex" style="margin: 30px 20px "> |
| | | <span style="font-size: 20px;font-weight: 550">学时报告</span> |
| | | <div class="columnFlex" style="margin-top: 10px"> |
| | | <img style="height: 130px;width: 150px;" src="../../../../assets/images/im.png"> |
| | | <el-image |
| | | style="width: 300px; height: 200px" |
| | | :src="dataForm.lessonReportUrl" |
| | | :preview-src-list="[dataForm.lessonReportUrl]"> |
| | | </el-image> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | dialogVisible: false, |
| | | dialogStatus: '', |
| | | dataForm: {}, |
| | | examTable: [] |
| | | tableData: [], |
| | | trackList: [], |
| | | authList: [] |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | methods: { |
| | | openDialog (data) { |
| | | this.dialogVisible = true; |
| | | this.dataForm = { |
| | | name: '张三', |
| | | idCard: '123456', |
| | | platformName: '链工宝', |
| | | trainingInstitution: '新疆水利水电学院', |
| | | classBatch: '2024第一批', |
| | | course: '测试课程1', |
| | | chapter: '测试章节1' |
| | | } |
| | | console.log('data',data) |
| | | this.dataForm = data |
| | | this.tableData.push( |
| | | { |
| | | durationDesc: data.durationDesc, |
| | | startTime: data.startTime, |
| | | finishTime: data.finishTime, |
| | | finishPositionDesc: data.finishPositionDesc, |
| | | startPositionDesc: data.startPositionDesc |
| | | }) |
| | | this.trackList = data.trackList |
| | | this.authList = data.authList |
| | | |
| | | |
| | | }, |
| | | handleClose() { |
| | | this.dialogVisible = false; |
| | |
| | | margin-left: -85px |
| | | } |
| | | .columnFlex{ |
| | | display: flex;flex-direction: column |
| | | display: flex;flex-direction: column; |
| | | } |
| | | </style> |
| | |
| | | <div class="app-container"> |
| | | <el-table v-loading="loading" :data="expertList"> |
| | | <el-table-column label="记录编号" align="center" prop="id" /> |
| | | <el-table-column label="身份证号" align="center" prop="idCard" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="上报平台" align="center" prop="platformName" /> |
| | | <el-table-column label="所属培训机构" align="center" prop="trainingInstitution" /> |
| | | <el-table-column label="班级批次" align="center" prop="classBatch" /> |
| | | <el-table-column label="课程" align="center" prop="course" /> |
| | | <el-table-column label="章节" align="center" prop="chapter" /> |
| | | <el-table-column label="学习时长" align="center" prop="learningTime" /> |
| | | <el-table-column label="是否彻底完成" align="center" prop="isComplete" /> |
| | | <el-table-column label="身份证号" align="center" prop="idcard" :show-overflow-tooltip="true" /> |
| | | <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="catalogName" /> |
| | | <el-table-column label="学习时长" align="center" prop="durationDesc" /> |
| | | <el-table-column label="是否彻底完成" align="center" prop="finishStatus" > |
| | | <template #default="scope"> |
| | | {{scope.row.finishStatus == 0 ? '未完成' : '已完成' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button |
| | |
| | | |
| | | <script> |
| | | import detailDialog from './components/detailDialog.vue' |
| | | import { listRecord, listStudent } from '@/api/onlineEducation/student' |
| | | export default { |
| | | name: "nPeopleManage", |
| | | dicts: [], |
| | |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getList({}); |
| | | }, |
| | | methods: { |
| | | getList(){ |
| | | getList(data){ |
| | | if(data){ |
| | | this.queryParams.idcard = data.idcard |
| | | this.expertList = [] |
| | | } |
| | | this.loading = true; |
| | | this.expertList = [ |
| | | { |
| | | id: '2024060600001', |
| | | idCard: '321154874512225541', |
| | | platformName:'测试数据1', |
| | | trainingInstitution:'测试机构1', |
| | | classBatch: '批次1', |
| | | course:'测试课程1', |
| | | chapter:'测试章节1', |
| | | learningTime:'2h', |
| | | isComplete: '是' |
| | | }, |
| | | { |
| | | id: '2024060600002', |
| | | idCard: '321154874512441141', |
| | | platformName:'测试数据2', |
| | | trainingInstitution:'测试机构2', |
| | | classBatch: '批次2', |
| | | course:'测试课程2', |
| | | chapter:'测试章节2', |
| | | learningTime:'2h', |
| | | isComplete: '否' |
| | | }, |
| | | ] |
| | | this.total = 2 |
| | | this.loading = false; |
| | | |
| | | listRecord( this.queryParams).then((res) => { |
| | | if (res.code == 200) { |
| | | this.expertList = res.rows |
| | | this.total = res.total |
| | | this.loading = false; |
| | | } |
| | | }) |
| | | }, |
| | | handleChange(){ |
| | | |
| | |
| | | :before-close="handleClose" |
| | | > |
| | | <el-form ref="dataForm" :model="dataForm" :rules="rules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中..."> |
| | | <el-form-item label="平台名称:" prop="name"> |
| | | <el-input v-model.trim="dataForm.name"/> |
| | | <el-form-item label="平台名称:" prop="institutionalName"> |
| | | <el-input v-model.trim="dataForm.institutionalName"/> |
| | | </el-form-item> |
| | | <el-form-item label="AccessKey:" prop="AccessKey"> |
| | | <el-input v-model.trim="dataForm.AccessKey"/> |
| | | </el-form-item> |
| | | <el-form-item label="SecretKey:" prop="SecretKey"> |
| | | <el-input v-model.trim="dataForm.SecretKey"/> |
| | | </el-form-item> |
| | | <el-form-item label="联系人:" prop="people"> |
| | | <el-input v-model.trim="dataForm.people"/> |
| | | <!-- <el-form-item label="AccessKey:" prop="AccessKey">--> |
| | | <!-- <el-input v-model.trim="dataForm.AccessKey"/>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="SecretKey:" prop="SecretKey">--> |
| | | <!-- <el-input v-model.trim="dataForm.SecretKey"/>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="联系人:" prop="contacts"> |
| | | <el-input v-model.trim="dataForm.contacts"/> |
| | | </el-form-item> |
| | | <el-form-item label="联系电话:" prop="phone"> |
| | | <el-input v-model.trim="dataForm.phone" :maxlength="11" /> |
| | |
| | | </template> |
| | | |
| | | <script > |
| | | import { addPlat, updatePlat } from '@/api/onlineEducation/plat' |
| | | |
| | | export default { |
| | | name: 'addUser', |
| | | components: { |
| | |
| | | dialogVisible: false, |
| | | dialogStatus: '', |
| | | rules: { |
| | | name: [{ required: true, message: '请输入平台名称', trigger: 'blur' }], |
| | | institutionalName: [{ required: true, message: '请输入平台名称', trigger: 'blur' }], |
| | | contacts: [{ required: true, message: '请输入联系人', trigger: 'blur' }], |
| | | phone: [ |
| | | { |
| | | { required: true, |
| | | pattern: /^1[0-9]{10}$/, |
| | | message: '手机号格式不正确', |
| | | trigger: 'blur' |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getArea(); |
| | | this.getTrain(); |
| | | |
| | | }, |
| | | methods: { |
| | | openDialog (type, data) { |
| | |
| | | this.dialogStatus = type; |
| | | if(this.dialogStatus == 'edit') { |
| | | this.dataForm = data; |
| | | this.dataForm.institutionId = data.institutionId.toString() |
| | | } |
| | | this.$nextTick(() => { |
| | | this.$refs['dataForm'].clearValidate() |
| | | }) |
| | | }, |
| | | async getTrain() { |
| | | const param = { |
| | | isCm: 1 |
| | | } |
| | | const res = await getTrainList(param); |
| | | if(res.code == 200) { |
| | | this.trainList = res.data; |
| | | }else{ |
| | | this.$message({ |
| | | type:'warning', |
| | | message: res.msg |
| | | }) |
| | | } |
| | | }, |
| | | async getArea() { |
| | | const res = await getAreaList(); |
| | | if(res.code == 200) { |
| | | this.areaList = res.data; |
| | | }else{ |
| | | this.$message({ |
| | | type:'warning', |
| | | message: res.msg |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | |
| | | handleClose() { |
| | | this.dialogVisible = false; |
| | | this.$emit("getList"); |
| | |
| | | this.$refs["dataForm"].validate( async valid => { |
| | | if (valid) { |
| | | if(this.dialogStatus == 'add'){ |
| | | // this.dataForm.isCm = 1; |
| | | // console.log("this.dataForm",this.dataForm) |
| | | // const res = await addExam(this.dataForm); |
| | | // if(res.code == 200) { |
| | | console.log("this.dataForm",this.dataForm) |
| | | const res = await addPlat(this.dataForm); |
| | | if(res.code == 200) { |
| | | this.$emit("getList"); |
| | | this.dialogVisible = false; |
| | | // this.$message({ |
| | | // type:'success', |
| | | // message: '新增成功' |
| | | // }) |
| | | // }else{ |
| | | // this.$message({ |
| | | // type:'warning', |
| | | // message: res.msg |
| | | // }) |
| | | // } |
| | | this.$message({ |
| | | type:'success', |
| | | message: '新增成功' |
| | | }) |
| | | }else{ |
| | | this.$message({ |
| | | type:'warning', |
| | | message: res.msg |
| | | }) |
| | | } |
| | | }else { |
| | | // this.dataForm.isCm = 1; |
| | | // console.log("this.dataForm",this.dataForm) |
| | | // const res = await updateExam(this.dataForm); |
| | | // if(res.code == 200) { |
| | | const res = await updatePlat(this.dataForm); |
| | | if(res.code == 200) { |
| | | this.$emit("getList"); |
| | | this.dialogVisible = false; |
| | | // this.$message({ |
| | | // type:'success', |
| | | // message: '编辑成功' |
| | | // }) |
| | | // }else{ |
| | | // this.$message({ |
| | | // type:'warning', |
| | | // message: res.msg |
| | | // }) |
| | | // } |
| | | this.$message({ |
| | | type:'success', |
| | | message: '编辑成功' |
| | | }) |
| | | }else{ |
| | | this.$message({ |
| | | type:'warning', |
| | | message: res.msg |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | }) |
| | |
| | | >新增</el-button> |
| | | <el-table v-loading="loading" :data="expertList"> |
| | | <el-table-column label="平台编号" align="center" type="index"width="80" /> |
| | | <el-table-column label="平台名称" align="center" prop="name" /> |
| | | <el-table-column label="AccessKey" align="center" prop="AccessKey" /> |
| | | <el-table-column label="SecretKey" align="center" prop="SecretKey" /> |
| | | <el-table-column label="联系人" align="center" prop="people" /> |
| | | <el-table-column label="平台名称" align="center" prop="institutionalName" /> |
| | | <el-table-column label="AccessKey" align="center" prop="accessKey" /> |
| | | <el-table-column label="SecretKey" align="center" prop="secretKey" /> |
| | | <el-table-column label="联系人" align="center" prop="contacts" /> |
| | | <el-table-column label="联系电话" align="center" prop="phone" /> |
| | | <el-table-column label="更新时间" align="center" prop="updateTime" /> |
| | | <el-table-column label="是否禁用" align="center" prop="isDisabled" /> |
| | | <el-table-column label="是否禁用" align="center" prop="isDisabled" > |
| | | <template #default="scope"> |
| | | {{scope.row.status == 0 ? '启用' : '禁用'}} |
| | | </template> |
| | | </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.isDisabled === '是'" |
| | | v-if="scope.row.status == 1" |
| | | @click="handleEnable(scope.row)" |
| | | >启用</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | v-if="scope.row.isDisabled === '否'" |
| | | v-if="scope.row.status == 0" |
| | | @click="handleDisable(scope.row)" |
| | | >监管禁用</el-button> |
| | | <el-button |
| | |
| | | <script> |
| | | import addDialog from '@/views/onlineEducation/platformManage/components/addDialog.vue' |
| | | import { delExam } from '@/api/coalMine/placeManage/exam' |
| | | import { delPlat, listPlat } from '@/api/onlineEducation/plat' |
| | | export default { |
| | | name: "platformManage", |
| | | components: {addDialog}, |
| | |
| | | methods: { |
| | | getList(){ |
| | | this.loading = true; |
| | | this.expertList = [ |
| | | { |
| | | id: 1, |
| | | name: '测试数据1', |
| | | AccessKey: '12345', |
| | | SecretKey: '12345', |
| | | people: '张三', |
| | | phone: '13453456456', |
| | | updateTime: '2024-6-11 10:32:00 ', |
| | | isDisabled: '是' |
| | | |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: '测试数据3', |
| | | AccessKey: '14564', |
| | | SecretKey: '16665', |
| | | people: '李四', |
| | | phone: '13453456456', |
| | | updateTime: '2024-6-11 10:33:00 ', |
| | | isDisabled: '否' |
| | | |
| | | listPlat( this.queryParams).then((res) => { |
| | | if (res.code == 200) { |
| | | this.expertList = res.rows |
| | | this.total = res.total |
| | | this.loading = false; |
| | | } |
| | | ] |
| | | this.total = 2 |
| | | this.loading = false; |
| | | }) |
| | | |
| | | }, |
| | | handleDelete(val) { |
| | | this.$confirm('删除此条信息,是否继续', '提示', { |
| | |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | // delExam( val.siteId).then((res) => { |
| | | // if (res.code == 200) { |
| | | // this.$message({ |
| | | // type:'success', |
| | | // message: '删除成功' |
| | | // }) |
| | | // this.getList() |
| | | // } |
| | | // }) |
| | | delPlat( val.id).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | type:'success', |
| | | message: '删除成功' |
| | | }) |
| | | this.getList() |
| | | } |
| | | }) |
| | | }) |
| | | }, |
| | | handleAdd(type,data){ |
| | |
| | | <div class="app-container"> |
| | | <el-table v-loading="loading" :data="expertList"> |
| | | <el-table-column label="月份" align="center" prop="month" /> |
| | | <el-table-column label="平台名称" align="center" prop="name" /> |
| | | <el-table-column label="上月题库总题目数" align="center" prop="totalNum" /> |
| | | <el-table-column label="新增题目数量" align="center" prop="addQuestionNum" /> |
| | | <el-table-column label="减少题目数" align="center" prop="reduceQuestionNum" /> |
| | | <el-table-column label="刷题应用率" align="center" prop="brushQuestionsRate" /> |
| | | <el-table-column label="组卷应用率" align="center" prop="testPaperRate" /> |
| | | <el-table-column label="上报时间" align="center" prop="time" /> |
| | | <el-table-column label="平台名称" align="center" prop="institutionName" /> |
| | | <el-table-column label="上月题库总题目数" align="center" prop="lastMonthCount" /> |
| | | <el-table-column label="新增题目数量" align="center" prop="addCount" /> |
| | | <el-table-column label="减少题目数" align="center" prop="reduceCount" /> |
| | | <el-table-column label="刷题应用率" align="center" prop="brushRate" /> |
| | | <el-table-column label="组卷应用率" align="center" prop="assemblyRate" /> |
| | | <el-table-column label="上报时间" align="center" prop="createTime" /> |
| | | <el-table-column label="组卷预览" align="center" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | style="color: #1890ff" |
| | | @click="handleView(scope.row)" |
| | | @click="handleView(scope.row.url)" |
| | | >点击预览</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageIndex" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listQuestion } from '@/api/onlineEducation/student' |
| | | |
| | | export default { |
| | | name: "nPeopleManage", |
| | | dicts: [], |
| | |
| | | expertTypes: [], |
| | | expertList: [], |
| | | queryParams: { |
| | | pageIndex: 1, |
| | | pageSize: 10 |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | methods: { |
| | | getList(){ |
| | | this.loading = true; |
| | | this.expertList = [ |
| | | { |
| | | id: 1, |
| | | month: '2024年6月', |
| | | name: '测试数据1', |
| | | totalNum: 120, |
| | | addQuestionNum: 20, |
| | | reduceQuestionNum: 10, |
| | | brushQuestionsRate: '80%', |
| | | testPaperRate: '75%', |
| | | time: '2024-6-11 10:32:00 ' |
| | | |
| | | }, |
| | | { |
| | | id: 2, |
| | | month: '2024年6月', |
| | | name: '测试数据2', |
| | | totalNum: 100, |
| | | addQuestionNum: 10, |
| | | reduceQuestionNum: 15, |
| | | brushQuestionsRate: '90%', |
| | | testPaperRate: '85%', |
| | | time: '2024-6-11 10:32:00 ' |
| | | listQuestion( this.queryParams).then((res) => { |
| | | if (res.code == 200) { |
| | | this.expertList = res.rows.map(item => { |
| | | return { |
| | | ...item, |
| | | brushRate: item.brushRate + '%', |
| | | assemblyRate: item.assemblyRate + '%' |
| | | } |
| | | }) |
| | | this.total = res.total |
| | | this.loading = false; |
| | | } |
| | | ] |
| | | this.total = 2 |
| | | this.loading = false; |
| | | |
| | | }) |
| | | }, |
| | | handleChange(){ |
| | | |
| | |
| | | resetQuery(){ |
| | | |
| | | }, |
| | | handleView(){ |
| | | |
| | | handleView(url){ |
| | | window.open(url,'_blank') |
| | | } |
| | | } |
| | | }; |
| | |
| | | :visible.sync="dialogVisible" |
| | | :modal-append-to-body="false" |
| | | :close-on-click-modal="false" |
| | | width="850px" |
| | | width="50%" |
| | | :before-close="handleClose" |
| | | append-to-body |
| | | > |
| | |
| | | </template> |
| | | |
| | | <script > |
| | | import { listRecord, listStudent } from '@/api/onlineEducation/student' |
| | | |
| | | export default { |
| | | name: 'addUser', |
| | | components: { |
| | |
| | | dialogStatus: '', |
| | | dataForm: {}, |
| | | total: 2, |
| | | queryParams: {}, |
| | | queryParams: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | idcard: '', |
| | | name: '' |
| | | }, |
| | | learningTable: [ |
| | | { |
| | | startTime: '2024-6-11 10:33:00', |
| | |
| | | created() { |
| | | }, |
| | | methods: { |
| | | getList() { |
| | | |
| | | getList(){ |
| | | this.loading = true; |
| | | listRecord( this.queryParams).then((res) => { |
| | | if (res.code == 200) { |
| | | this.learningTable = res.rows |
| | | this.total = res.total |
| | | this.loading = false; |
| | | } |
| | | }) |
| | | }, |
| | | openDialog (type, data) { |
| | | openDialog (data) { |
| | | this.dialogVisible = true; |
| | | this.dialogStatus = type; |
| | | this.queryParams.idcard = data.idcard |
| | | this.getList(); |
| | | }, |
| | | |
| | | handleClose() { |
| | |
| | | :visible.sync="dialogVisible" |
| | | :modal-append-to-body="false" |
| | | :close-on-click-modal="false" |
| | | width="850px" |
| | | width="600px" |
| | | :before-close="handleClose" |
| | | append-to-body |
| | | > |
| | | <div class="columnFlex" style="margin-top: 10px"> |
| | | <img style="height: 130px;width: 150px;" src="../../../../assets/images/im.png"> |
| | | <el-image |
| | | style="width: 500px;height: 300px" |
| | | :src="url" |
| | | :preview-src-list="[url]"> |
| | | </el-image> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | |
| | | return { |
| | | dialogVisible: false, |
| | | dialogStatus: '', |
| | | url: '' |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | openDialog (type, data) { |
| | | openDialog (data) { |
| | | this.url = data; |
| | | this.dialogVisible = true; |
| | | this.dialogStatus = type; |
| | | }, |
| | | |
| | | handleClose() { |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div style="display: flex"> |
| | | <el-input placeholder="请输入身份证号" v-model="queryParams.idCard" style="width: 250px"></el-input> |
| | | <el-input placeholder="请输入身份证号" v-model="queryParams.idcard" style="width: 250px"></el-input> |
| | | <el-input placeholder="请输入姓名" v-model="queryParams.name" style="width: 250px;margin-left: 20px"></el-input> |
| | | <el-button |
| | | size="small" |
| | |
| | | </div> |
| | | <el-table v-loading="loading" :data="expertList"> |
| | | <el-table-column label="姓名" align="center" prop="name" /> |
| | | <el-table-column label="身份证号" align="center" prop="idCard" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="性别" align="center" prop="sex" /> |
| | | <el-table-column label="身份证号" align="center" prop="idcard" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="性别" align="center" prop="sex" > |
| | | <template #default="scope"> |
| | | <span>{{scope.row.sex == 0 ? '男' : '女'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="手机号" align="center" prop="phone" /> |
| | | <el-table-column label="实名认证照" align="center" prop="photo" > |
| | | <template #default="scope"> |
| | | <el-image |
| | | style="width: 100px; height: 100px" |
| | | :src="scope.row.photo" |
| | | :preview-src-list="[scope.row.photo]"> |
| | | :src="scope.row.authPhoto" |
| | | :preview-src-list="[scope.row.authPhoto]"> |
| | | </el-image> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="当前归属单位" align="center" prop="unit" /> |
| | | <el-table-column label="当前归属单位" align="center" prop="trainOrgName" /> |
| | | <el-table-column label="行业" align="center" prop="industry" /> |
| | | <el-table-column label="工种" align="center" prop="job" /> |
| | | <el-table-column label="初次上报平台" align="center" prop="platform" /> |
| | | <el-table-column label="上报时间" align="center" prop="reportTime" /> |
| | | <el-table-column label="最近更新平台" align="center" prop="updatePlatform" /> |
| | | <el-table-column label="最新更新时间" align="center" prop="updateTime" /> |
| | | <el-table-column label="工种" align="center" prop="occupation" /> |
| | | <el-table-column label="初次上报平台" align="center" prop="createBy" /> |
| | | <el-table-column label="上报时间" align="center" prop="createTime" width="100" /> |
| | | <el-table-column label="最近更新平台" align="center" prop="updateBy" /> |
| | | <el-table-column label="最新更新时间" align="center" prop="updateTime" width="100" /> |
| | | <el-table-column label="历史记录" align="center" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button |
| | |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | <learning-record ref="learnRef" ></learning-record> |
| | | |
| | | <el-dialog |
| | | title="学习记录" |
| | | :visible.sync="learningDialog" |
| | | :modal-append-to-body="false" |
| | | :close-on-click-modal="false" |
| | | width="850px" |
| | | append-to-body |
| | | :before-close="handleCloseLearning"> |
| | | <learning-record ref="learnRef" ></learning-record> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="考试记录" |
| | | :visible.sync="dialogVisible" |
| | |
| | | :close-on-click-modal="false" |
| | | width="850px" |
| | | :before-close="handleClose"> |
| | | <exam-manage ref="examManageRef"></exam-manage> |
| | | <exam-manage ref="examRef" ></exam-manage> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | import examManage from '@/views/onlineEducation/examManage/index.vue' |
| | | import learningRecord from '@/views/onlineEducation/studentSupervision/compontents/learningRecord.vue' |
| | | import learningRecord from '@/views/onlineEducation/learnRecord/index.vue' |
| | | import { listStudent } from '@/api/onlineEducation/student' |
| | | import { listPlat } from '@/api/onlineEducation/plat' |
| | | export default { |
| | | name: "nPeopleManage", |
| | | dicts: [], |
| | |
| | | total: 0, |
| | | expertTypes: [], |
| | | expertList: [], |
| | | queryParams: {}, |
| | | dialogVisible:false |
| | | queryParams: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | idcard: '', |
| | | name: '' |
| | | }, |
| | | dialogVisible:false, |
| | | learningDialog: false |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | methods: { |
| | | getList(){ |
| | | this.loading = true; |
| | | this.expertList = [ |
| | | { |
| | | id: 1, |
| | | name: '张三', |
| | | sex: '男', |
| | | idCard: '321154874512225541', |
| | | phone:'13587452145', |
| | | photo: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg', |
| | | unit: '培训机构', |
| | | industry: 'xxx', |
| | | job: 'xxx', |
| | | platform: '测试平台1', |
| | | reportTime: '2024-6-11 10:32:00', |
| | | updatePlatform: '测试平台2', |
| | | updateTime: '2024-6-11 13:32:00' |
| | | |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: '李四', |
| | | sex: '女', |
| | | idCard: '321154874512225541', |
| | | phone:'13587452145', |
| | | photo: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg', |
| | | unit: '培训机构', |
| | | industry: 'xxx', |
| | | job: 'xxx', |
| | | platform: '测试平台1', |
| | | reportTime: '2024-6-11 10:32:00', |
| | | updatePlatform: '测试平台2', |
| | | updateTime: '2024-6-11 13:32:00' |
| | | |
| | | }, |
| | | ] |
| | | this.total = 2; |
| | | this.loading = false; |
| | | listStudent( this.queryParams).then((res) => { |
| | | if (res.code == 200) { |
| | | this.expertList = res.rows |
| | | this.total = res.total |
| | | this.loading = false; |
| | | } |
| | | }) |
| | | }, |
| | | handleChange(){ |
| | | |
| | |
| | | this.getList() |
| | | }, |
| | | viewLearnRecord(data){ |
| | | this.$refs.learnRef.openDialog(data) |
| | | this.learningDialog = true |
| | | setTimeout(() => { |
| | | this.$refs.learnRef.getList(data) |
| | | },10) |
| | | }, |
| | | viewExamRecord(data){ |
| | | this.dialogVisible = true |
| | | setTimeout(() => { |
| | | this.$refs.examRef.getList(data) |
| | | },10) |
| | | |
| | | }, |
| | | handleClose() { |
| | | this.dialogVisible = false; |
| | | }, |
| | | handleCloseLearning() { |
| | | this.learningDialog = false; |
| | | } |
| | | |
| | | } |
| | | }; |
| | | </script> |