From ae43feac8c6b2372f5a061ead68e71027e8877e1 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Thu, 27 Jun 2024 09:25:10 +0800
Subject: [PATCH] 修改
---
src/api/onlineEducation/plat.js | 43 ++
src/views/onlineEducation/classBatch/index.vue | 104 ++--
src/views/onlineEducation/platformManage/index.vue | 69 +-
src/views/onlineEducation/studentSupervision/compontents/learningRecord.vue | 27 +
src/views/onlineEducation/platformManage/components/addDialog.vue | 111 ++---
src/views/onlineEducation/questionManage/index.vue | 67 +-
src/api/onlineEducation/student.js | 58 ++
src/views/onlineEducation/courseSupervision/index.vue | 129 ++---
src/views/onlineEducation/learnRecord/components/detailDialog.vue | 95 ++-
src/views/onlineEducation/classBatch/components/classHour.vue | 78 ++-
src/views/onlineEducation/learnRecord/index.vue | 63 +-
src/api/onlineEducation/course.js | 9
src/views/onlineEducation/courseSupervision/components/courseDialog.vue | 119 ++---
src/views/onlineEducation/examManage/index.vue | 84 +--
src/assets/images/none.png | 0
src/views/onlineEducation/count/components/studentList.vue | 53 +
src/views/onlineEducation/studentSupervision/compontents/lessonReport.vue | 13
src/views/onlineEducation/studentSupervision/index.vue | 110 ++--
18 files changed, 648 insertions(+), 584 deletions(-)
diff --git a/src/api/onlineEducation/course.js b/src/api/onlineEducation/course.js
new file mode 100644
index 0000000..95c9a0c
--- /dev/null
+++ b/src/api/onlineEducation/course.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function listCourse(query) {
+ return request({
+ url: '/th/course/list/page',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/src/api/onlineEducation/plat.js b/src/api/onlineEducation/plat.js
new file mode 100644
index 0000000..994653d
--- /dev/null
+++ b/src/api/onlineEducation/plat.js
@@ -0,0 +1,43 @@
+
+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'
+ })
+}
diff --git a/src/api/onlineEducation/student.js b/src/api/onlineEducation/student.js
new file mode 100644
index 0000000..b886145
--- /dev/null
+++ b/src/api/onlineEducation/student.js
@@ -0,0 +1,58 @@
+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'
+ })
+}
+
diff --git a/src/assets/images/none.png b/src/assets/images/none.png
new file mode 100644
index 0000000..c70a2cf
--- /dev/null
+++ b/src/assets/images/none.png
Binary files differ
diff --git a/src/views/onlineEducation/classBatch/components/classHour.vue b/src/views/onlineEducation/classBatch/components/classHour.vue
index c7d408d..6f3708f 100644
--- a/src/views/onlineEducation/classBatch/components/classHour.vue
+++ b/src/views/onlineEducation/classBatch/components/classHour.vue
@@ -8,9 +8,9 @@
: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"
@@ -19,14 +19,14 @@
</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">
@@ -42,7 +42,7 @@
<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"
@@ -52,22 +52,26 @@
</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: {
@@ -76,10 +80,10 @@
},
data() {
return {
+ learningDialog: false,
dialogVisible: false,
- dialogStatus: '',
dataForm: {},
- queryParams: {},
+ uuid: '',
classList: [
{
courseName:'课程一',
@@ -130,11 +134,36 @@
},
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() {
@@ -142,10 +171,13 @@
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)
}
}
diff --git a/src/views/onlineEducation/classBatch/index.vue b/src/views/onlineEducation/classBatch/index.vue
index c2cc228..b2214b8 100644
--- a/src/views/onlineEducation/classBatch/index.vue
+++ b/src/views/onlineEducation/classBatch/index.vue
@@ -1,12 +1,12 @@
<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
@@ -16,6 +16,7 @@
@click="handleQuery()"
>查询</el-button>
<el-button
+ plain
size="small"
type="primary"
style="margin-bottom: 10px"
@@ -23,27 +24,39 @@
>重置</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
@@ -73,6 +86,8 @@
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: [],
@@ -85,61 +100,36 @@
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(){
diff --git a/src/views/onlineEducation/count/components/studentList.vue b/src/views/onlineEducation/count/components/studentList.vue
index 7ab47c9..1875592 100644
--- a/src/views/onlineEducation/count/components/studentList.vue
+++ b/src/views/onlineEducation/count/components/studentList.vue
@@ -17,47 +17,54 @@
</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: {
@@ -68,8 +75,11 @@
dialogVisible: false,
dialogStatus: '',
dataForm: {},
+ uuid: '',
total: 2,
- queryParams: {},
+ queryParams: {
+
+ },
learningTable: [
{
name: '张三',
@@ -96,11 +106,18 @@
},
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() {
diff --git a/src/views/onlineEducation/courseSupervision/components/courseDialog.vue b/src/views/onlineEducation/courseSupervision/components/courseDialog.vue
index a45dcb5..d533f9f 100644
--- a/src/views/onlineEducation/courseSupervision/components/courseDialog.vue
+++ b/src/views/onlineEducation/courseSupervision/components/courseDialog.vue
@@ -14,7 +14,13 @@
</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>
@@ -25,11 +31,11 @@
: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
@@ -46,6 +52,7 @@
size="mini"
type="text"
style="color: #1890ff"
+ @click="openUrl(scope.row.url)"
>预览课程</el-button>
</template>
</el-table-column>
@@ -68,41 +75,45 @@
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
@@ -112,51 +123,13 @@
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 = {
- }
- },
+
}
}
diff --git a/src/views/onlineEducation/courseSupervision/index.vue b/src/views/onlineEducation/courseSupervision/index.vue
index c9fec5d..35b5794 100644
--- a/src/views/onlineEducation/courseSupervision/index.vue
+++ b/src/views/onlineEducation/courseSupervision/index.vue
@@ -2,12 +2,12 @@
<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
@@ -24,8 +24,8 @@
>重置</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">
@@ -33,31 +33,36 @@
</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"
@@ -75,6 +80,8 @@
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: [],
@@ -87,70 +94,44 @@
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(){
@@ -172,7 +153,7 @@
this.$refs.courseDialogRef.openDialog(data);
},
openStudent(data) {
- this.$refs.studentDialog.openDialog(data);
+ // this.$refs.studentDialog.openDialog(data);
},
check(val){
this.$confirm('此操作将审核该条数据, 是否继续?', '提示', {
diff --git a/src/views/onlineEducation/examManage/index.vue b/src/views/onlineEducation/examManage/index.vue
index 49b5092..6df2bac 100644
--- a/src/views/onlineEducation/examManage/index.vue
+++ b/src/views/onlineEducation/examManage/index.vue
@@ -3,18 +3,22 @@
<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
@@ -28,6 +32,8 @@
</template>
<script>
+import { listExam, listStudent } from '@/api/onlineEducation/student'
+
export default {
name: "nPeopleManage",
dicts: [],
@@ -44,55 +50,29 @@
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(){
diff --git a/src/views/onlineEducation/learnRecord/components/detailDialog.vue b/src/views/onlineEducation/learnRecord/components/detailDialog.vue
index 06262e5..f7f5e88 100644
--- a/src/views/onlineEducation/learnRecord/components/detailDialog.vue
+++ b/src/views/onlineEducation/learnRecord/components/detailDialog.vue
@@ -6,6 +6,7 @@
: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">
@@ -13,61 +14,68 @@
<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>
@@ -79,21 +87,21 @@
<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>
@@ -101,7 +109,11 @@
<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>
@@ -120,7 +132,9 @@
dialogVisible: false,
dialogStatus: '',
dataForm: {},
- examTable: []
+ tableData: [],
+ trackList: [],
+ authList: []
}
},
created() {
@@ -128,15 +142,20 @@
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;
@@ -152,6 +171,6 @@
margin-left: -85px
}
.columnFlex{
- display: flex;flex-direction: column
+ display: flex;flex-direction: column;
}
</style>
diff --git a/src/views/onlineEducation/learnRecord/index.vue b/src/views/onlineEducation/learnRecord/index.vue
index 0a89696..19878df 100644
--- a/src/views/onlineEducation/learnRecord/index.vue
+++ b/src/views/onlineEducation/learnRecord/index.vue
@@ -2,14 +2,18 @@
<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
@@ -34,6 +38,7 @@
<script>
import detailDialog from './components/detailDialog.vue'
+import { listRecord, listStudent } from '@/api/onlineEducation/student'
export default {
name: "nPeopleManage",
dicts: [],
@@ -55,38 +60,22 @@
};
},
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(){
diff --git a/src/views/onlineEducation/platformManage/components/addDialog.vue b/src/views/onlineEducation/platformManage/components/addDialog.vue
index 825e6c0..58342e1 100644
--- a/src/views/onlineEducation/platformManage/components/addDialog.vue
+++ b/src/views/onlineEducation/platformManage/components/addDialog.vue
@@ -8,17 +8,17 @@
: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" />
@@ -32,6 +32,8 @@
</template>
<script >
+import { addPlat, updatePlat } from '@/api/onlineEducation/plat'
+
export default {
name: 'addUser',
components: {
@@ -41,9 +43,10 @@
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'
@@ -54,8 +57,7 @@
}
},
created() {
- this.getArea();
- this.getTrain();
+
},
methods: {
openDialog (type, data) {
@@ -64,37 +66,13 @@
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");
@@ -103,39 +81,36 @@
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
+ })
+ }
}
}
})
diff --git a/src/views/onlineEducation/platformManage/index.vue b/src/views/onlineEducation/platformManage/index.vue
index 4c8f993..43d5f86 100644
--- a/src/views/onlineEducation/platformManage/index.vue
+++ b/src/views/onlineEducation/platformManage/index.vue
@@ -8,25 +8,29 @@
>新增</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
@@ -58,6 +62,7 @@
<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},
@@ -90,32 +95,14 @@
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('删除此条信息,是否继续', '提示', {
@@ -123,15 +110,15 @@
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){
diff --git a/src/views/onlineEducation/questionManage/index.vue b/src/views/onlineEducation/questionManage/index.vue
index 33e35a8..d45d056 100644
--- a/src/views/onlineEducation/questionManage/index.vue
+++ b/src/views/onlineEducation/questionManage/index.vue
@@ -2,20 +2,20 @@
<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>
@@ -23,7 +23,7 @@
<pagination
v-show="total>0"
:total="total"
- :page.sync="queryParams.pageIndex"
+ :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
@@ -31,6 +31,8 @@
</template>
<script>
+import { listQuestion } from '@/api/onlineEducation/student'
+
export default {
name: "nPeopleManage",
dicts: [],
@@ -46,8 +48,8 @@
expertTypes: [],
expertList: [],
queryParams: {
- pageIndex: 1,
- pageSize: 10
+ pageNum: 1,
+ pageSize: 10,
},
};
},
@@ -57,34 +59,19 @@
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(){
@@ -95,8 +82,8 @@
resetQuery(){
},
- handleView(){
-
+ handleView(url){
+ window.open(url,'_blank')
}
}
};
diff --git a/src/views/onlineEducation/studentSupervision/compontents/learningRecord.vue b/src/views/onlineEducation/studentSupervision/compontents/learningRecord.vue
index b58f0dc..3a9bed9 100644
--- a/src/views/onlineEducation/studentSupervision/compontents/learningRecord.vue
+++ b/src/views/onlineEducation/studentSupervision/compontents/learningRecord.vue
@@ -4,7 +4,7 @@
:visible.sync="dialogVisible"
:modal-append-to-body="false"
:close-on-click-modal="false"
- width="850px"
+ width="50%"
:before-close="handleClose"
append-to-body
>
@@ -64,6 +64,8 @@
</template>
<script >
+import { listRecord, listStudent } from '@/api/onlineEducation/student'
+
export default {
name: 'addUser',
components: {
@@ -74,7 +76,12 @@
dialogStatus: '',
dataForm: {},
total: 2,
- queryParams: {},
+ queryParams: {
+ pageIndex: 1,
+ pageSize: 10,
+ idcard: '',
+ name: ''
+ },
learningTable: [
{
startTime: '2024-6-11 10:33:00',
@@ -102,12 +109,20 @@
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() {
diff --git a/src/views/onlineEducation/studentSupervision/compontents/lessonReport.vue b/src/views/onlineEducation/studentSupervision/compontents/lessonReport.vue
index 85c8db9..d8c0107 100644
--- a/src/views/onlineEducation/studentSupervision/compontents/lessonReport.vue
+++ b/src/views/onlineEducation/studentSupervision/compontents/lessonReport.vue
@@ -4,12 +4,16 @@
: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>
@@ -23,14 +27,15 @@
return {
dialogVisible: false,
dialogStatus: '',
+ url: ''
}
},
created() {
},
methods: {
- openDialog (type, data) {
+ openDialog (data) {
+ this.url = data;
this.dialogVisible = true;
- this.dialogStatus = type;
},
handleClose() {
diff --git a/src/views/onlineEducation/studentSupervision/index.vue b/src/views/onlineEducation/studentSupervision/index.vue
index 031dcaa..99bb86d 100644
--- a/src/views/onlineEducation/studentSupervision/index.vue
+++ b/src/views/onlineEducation/studentSupervision/index.vue
@@ -1,7 +1,7 @@
<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"
@@ -18,25 +18,29 @@
</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
@@ -59,7 +63,17 @@
: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"
@@ -67,7 +81,7 @@
: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>
@@ -75,7 +89,9 @@
<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: [],
@@ -90,8 +106,14 @@
total: 0,
expertTypes: [],
expertList: [],
- queryParams: {},
- dialogVisible:false
+ queryParams: {
+ pageIndex: 1,
+ pageSize: 10,
+ idcard: '',
+ name: ''
+ },
+ dialogVisible:false,
+ learningDialog: false
};
},
created() {
@@ -101,42 +123,13 @@
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(){
@@ -154,14 +147,25 @@
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>
--
Gitblit v1.9.2