修改教师端我的授课记录查询和导出

This commit is contained in:
sunhonglai
2025-04-29 11:23:45 +08:00
parent 213990a7b0
commit c3b5f1baf0
2 changed files with 260 additions and 182 deletions

View File

@@ -65,12 +65,59 @@ const getListByToken = function(data) {
return ajax2.get('/manageApi',`/admin/teacherRecord/getListByToken?courseName=${data.courseName}&page=${data.page}&pageSize=${data.pageSize}`); return ajax2.get('/manageApi',`/admin/teacherRecord/getListByToken?courseName=${data.courseName}&page=${data.page}&pageSize=${data.pageSize}`);
} }
/**
* 导出授课记录
*
* @param {Object} data
*/
const courseRecordExport2 = function(data) {
return axios.request({
baseURL,
url: '/manageApi/admin/export/exportInTeacherRecord',
method: 'post',
data:data,
headers:{'Content-Type':'application/json;charset=utf-8'},
responseType: 'blob'
})
}
/**
* 导出课程下的学员信息
*
*/
const exportStudentOfCourse2 = function(courseId,courseType) {
return axios.request({
baseURL,
url: '/manageApi/admin/export/exportTeacherRecordStudentInfo?courseId='+courseId+'&courseType='+courseType,
method: 'get'
// headers:{'Content-Type':'application/json;charset=utf-8'},
// responseType: 'blob'
})
}
/**
* 导出教师下的所有授课记录下的学员信息
*
*/
const exportStudentOfTearcher2 = function(userId) {
return axios.request({
baseURL,
url: '/b1/system/teacher/teacher-course-student-export?userId='+userId,
method: 'post',
headers:{'Content-Type':'application/json;charset=utf-8'},
responseType: 'blob'
})
}
export default { export default {
courseRecordExport, courseRecordExport,
courseRecordExport2,
courseRecordList, courseRecordList,
getListByToken, getListByToken,
exportStudentOfCourse, exportStudentOfCourse,
exportStudentOfTearcher exportStudentOfCourse2,
exportStudentOfTearcher,
exportStudentOfTearcher2,
} }

View File

@@ -2,11 +2,23 @@
<div style="padding: 12px 32px 10px 12px;"> <div style="padding: 12px 32px 10px 12px;">
<div style="display: flex;justify-content: flex-start;"> <div style="display: flex;justify-content: flex-start;">
<div><el-input v-model="keyword" placeholder="输入课程名称搜索" clearable></el-input></div> <div>
<div style="padding-left: 10px;"><el-button @click="recordList()" type="primary" icon="el-icon-search">搜索</el-button></div> <el-input v-model="keyword" placeholder="输入课程名称搜索" clearable></el-input>
<div style="padding: 0px 5px;"><el-button icon="el-icon-refresh-right" @click="keyword = ''" type="primary" >重置</el-button></div> </div>
<div style="padding: 0px 5px;"><el-button type="primary" @click="exportFile()" icon="el-icon-search" size="small" round>导出</el-button></div> <div style="padding-left: 10px;">
<div style="padding: 0px 5px;"><el-button type="primary" @click="exportStudentOfTearcher()" icon="el-icon-search" size="small" round>导出学员信息</el-button></div> <el-button @click="recordList()" type="primary" icon="el-icon-search">搜索</el-button>
</div>
<div style="padding: 0px 5px;">
<el-button icon="el-icon-refresh-right" @click="keyword = ''" type="primary">重置</el-button>
</div>
<div style="padding: 0px 5px;">
<el-button type="primary" @click="exportFile()" icon="el-icon-search" size="small" round>导出</el-button>
</div>
<div style="padding: 0px 5px;">
<el-button type="primary" @click="exportStudentOfTearcher()" icon="el-icon-search" size="small" round>
导出学员信息
</el-button>
</div>
</div> </div>
<div class="Export"> <div class="Export">
<!-- <div style="padding-left: 10px;"><el-button type="primary" @click="exportFile()" icon="el-icon-search" size="small" round>导出</el-button></div> --> <!-- <div style="padding-left: 10px;"><el-button type="primary" @click="exportFile()" icon="el-icon-search" size="small" round>导出</el-button></div> -->
@@ -15,9 +27,12 @@
<div style="margin-top:20px;"> <div style="margin-top:20px;">
<el-table :data="pageData" border stripe> <el-table :data="pageData" border stripe>
<el-table-column <el-table-column
label="课程时间" label="课程编号"
prop="courseTime" prop="index"
width="200px"> width="100px">
<template v-slot="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="课程名称" label="课程名称"
@@ -25,38 +40,57 @@
width="200px"> width="200px">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="开课场地" label="课程日期"
prop="address" prop="teachingDate"
width="240px"> width="200px">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="所属课程" label="内容分类"
prop="parentCourse" prop="courseTypeName"
width="120px"> width="200px">
</el-table-column>
<el-table-column label="课程类型" prop="type" width="120px">
<template v-slot="scope">
<span>{{
{
"0": "在线课",
"1": "面授课",
"2": "课程开发",
"3": "作业员入模培训",
"4": "其他",
}[scope.row.type + '']
}}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column
label="所属项目"
prop="parentProject"
></el-table-column>
<el-table-column
label="所属路径"
prop="parentRoute"
width="200px"
></el-table-column>
<el-table-column <el-table-column
label="学习总人数" label="学习总人数"
prop="studentNumber" prop="studys"
width="100px" width="120px"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="时长(分钟)" label="授课时长(分钟)"
width="100px" prop="teaching"
prop="period" width="120px"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="评分" label="评分"
width="100px"
prop="score" prop="score"
width="100px"
></el-table-column>
<el-table-column label="开课状态" width="100px" prop="courseStatus">
<template v-slot="scope">
<span>{{
{
"0": "未开课",
"1": "已开课",
}[scope.row.courseStatus + '']
}}</span>
</template>
</el-table-column>
<el-table-column
label="备注"
width="200px"
prop="remark"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="操作" label="操作"
@@ -66,7 +100,9 @@
fixed="right" fixed="right"
> >
<template v-slot="scope"> <template v-slot="scope">
<el-button type="text" @click="exportStudentOfCourse(scope.row.courseId)" size="small">导出学员信息</el-button> <el-button type="text" @click="exportStudentOfCourse(scope.row.courseId, scope.row.courseType)"
size="small">导出学员信息
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -91,6 +127,7 @@
<script> <script>
import apiCourse from '../../api/boe/courseRecord.js'; import apiCourse from '../../api/boe/courseRecord.js';
import {mapGetters} from 'vuex'; import {mapGetters} from 'vuex';
export default { export default {
data() { data() {
return { return {
@@ -99,24 +136,19 @@ data(){
pageInfo: {}, pageInfo: {},
} }
}, },
mounted() { mounted() {
this.recordList(1); this.recordList(1);
}, },
computed: { computed: {
...mapGetters(['userInfo']) ...mapGetters(['userInfo'])
}, },
methods: { methods: {
// 导出所有记录 // 导出所有记录
exportFile() { exportFile() {
let req = { let req = {
userId: this.userInfo.sysId userId: this.userInfo.sysId
// userId:"70F80F4E-34BA-10AB-894A-8FA812B19637"
} }
apiCourse.courseRecordExport(req).then(res=>{ apiCourse.courseRecordExport2(req).then(res => {
const link = document.createElement('a');// 创建a标签 const link = document.createElement('a');// 创建a标签
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}); // 设置文件类型 let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}); // 设置文件类型
link.style.display = "none"; link.style.display = "none";
@@ -128,11 +160,9 @@ methods: {
}) })
}, },
// 导出课程下的学员信息 // 导出课程下的学员信息
exportStudentOfCourse(courseId){ exportStudentOfCourse(courseId, courseType) {
let userId = this.userInfo.sysId; apiCourse.exportStudentOfCourse2(courseId, courseType).then(res => {
apiCourse.exportStudentOfCourse(userId,courseId).then(res=>{
const link = document.createElement('a');// 创建a标签 const link = document.createElement('a');// 创建a标签
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}); // 设置文件类型 let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}); // 设置文件类型
link.style.display = "none"; link.style.display = "none";
@@ -147,8 +177,7 @@ methods: {
// 导出教师下的所有授课记录下的学员信息 // 导出教师下的所有授课记录下的学员信息
exportStudentOfTearcher() { exportStudentOfTearcher() {
let userId = this.userInfo.sysId; let userId = this.userInfo.sysId;
// let userId = '5D36C207-64F4-C512-312D-C9598257695C'; apiCourse.exportStudentOfTearcher2(userId).then(res => {
apiCourse.exportStudentOfTearcher(userId).then(res=>{
const link = document.createElement('a');// 创建a标签 const link = document.createElement('a');// 创建a标签
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}); // 设置文件类型 let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}); // 设置文件类型
link.style.display = "none"; link.style.display = "none";
@@ -160,19 +189,21 @@ methods: {
}) })
}, },
recordList(pageIndex) { recordList(pageIndex) {
// 如果pageIndex未定义或未赋值则默认初始值
pageIndex = pageIndex || 1;
let req = { let req = {
//     userId:"6B049FAF-C314-7CCF-0D28-0D23F4C42531",
userId: this.userInfo.sysId, userId: this.userInfo.sysId,
keyword:this.keyword, courseName: this.keyword,
    page:pageIndex, page: pageIndex,
    pageSize:10 pageSize: 10
} }
apiCourse.courseRecordList(req).then(res=>{ apiCourse.getListByToken(req).then(res => {
if (res.status == 200) { if (res.status == 200) {
this.pageData = res.result.list; this.pageData = res.result.records;
this.pageInfo = res.result.pageInfo; // this.pageInfo = res.result.pageInfo;
// this.pageInfo.total = Number(20);
} else { } else {
this.$message({ this.$message({
type: 'error', type: 'error',