Merge branch 'zcwy_1127_teacher' into master_1202

This commit is contained in:
joshen
2024-12-12 16:46:44 +08:00

View File

@@ -1,230 +1,206 @@
<template> <template>
<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><el-input v-model="keyword" placeholder="输入课程名称搜索" clearable></el-input></div>
<div style="padding-left: 10px;"><el-button @click="recordList()" type="primary" icon="el-icon-search">搜索</el-button></div> <div style="padding-left: 10px;"><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 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="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 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> -->
<!-- <div style="padding: 0px 5px;"><el-button icon="el-icon-refresh-right" type="primary" size="small" round>导出学员信息</el-button></div> --> <!-- <div style="padding: 0px 5px;"><el-button icon="el-icon-refresh-right" type="primary" size="small" round>导出学员信息</el-button></div> -->
</div> </div>
<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="index" prop="courseTime"
width="100px"> width="200px">
<template v-slot="scope"> </el-table-column>
<span>{{scope.$index+1}}</span> <el-table-column
</template> label="课程名称"
</el-table-column> prop="courseName"
<el-table-column width="200px">
label="课程名称" </el-table-column>
prop="courseName" <el-table-column
width="200px"> label="开课场地"
</el-table-column> prop="address"
<el-table-column width="240px">
label="课程日期" </el-table-column>
prop="teachingDate" <el-table-column
width="200px"> label="所属课程"
</el-table-column> prop="parentCourse"
<el-table-column width="120px">
label="内容分类" </el-table-column>
prop="courseTypeName" <el-table-column
width="200px"> label="所属项目"
</el-table-column> prop="parentProject"
<el-table-column label="课程类型" prop="type" width="120px"> ></el-table-column>
<template v-slot="scope"> <el-table-column
<span>{{ label="所属路径"
{ prop="parentRoute"
"0": "在线课", width="200px"
"1": "面授课", ></el-table-column>
"2": "课程开发", <el-table-column
"3": "作业员入模培训", label="学习总人数"
"4": "其他", prop="studentNumber"
}[scope.row.type+''] width="100px"
}}</span> ></el-table-column>
</template> <el-table-column
</el-table-column> label="时长(分钟)"
<el-table-column width="100px"
label="学习总人数" prop="period"
prop="studys" ></el-table-column>
width="120px" <el-table-column
></el-table-column> label="评分"
<el-table-column width="100px"
label="授课时长(分钟)" prop="score"
prop="teaching" ></el-table-column>
width="120px" <el-table-column
></el-table-column> label="操作"
<el-table-column align="center"
label="评分" width="150px"
prop="score" prop="cz"
width="100px" fixed="right"
></el-table-column> >
<el-table-column label="开课状态" width="100px" prop="courseStatus"> <template v-slot="scope">
<template v-slot="scope"> <el-button type="text" @click="exportStudentOfCourse(scope.row.courseId)" size="small">导出学员信息</el-button>
<span>{{ </template>
{ </el-table-column>
"0": "未开课", </el-table>
"1": "已开课", </div>
}[scope.row.courseStatus+'']
}}</span>
</template>
</el-table-column>
<el-table-column
label="备注"
width="200px"
prop="remark"
></el-table-column>
<el-table-column
label="操作"
align="center"
width="150px"
prop="cz"
fixed="right"
>
<template v-slot="scope">
<el-button type="text" @click="exportStudentOfCourse(scope.row.courseId)" size="small">导出学员信息</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div style="text-align: center; margin-top:57px"> <div style="text-align: center; margin-top:57px">
<el-pagination <el-pagination
background background
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page="pageInfo.page" :current-page="pageInfo.page"
:page-sizes="[10, 20, 30, 40]" :page-sizes="[10, 20, 30, 40]"
:page-size="pageInfo.pageSize" :page-size="pageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="pageInfo.total" :total="pageInfo.total"
></el-pagination> ></el-pagination>
</div> </div>
</div> </div>
</template> </template>
<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 {
pageData:[], pageData:[],
keyword:'', keyword:'',
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" // userId:"70F80F4E-34BA-10AB-894A-8FA812B19637"
} }
apiCourse.courseRecordExport(req).then(res=>{ apiCourse.courseRecordExport(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";
link.href = URL.createObjectURL(blob); // 创建URL link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", "授课记录.xls"); link.setAttribute("download", "授课记录.xls");
document.body.appendChild(link); document.body.appendChild(link);
link.click(); link.click();
document.body.removeChild(link); document.body.removeChild(link);
}) })
}, },
// 导出课程下的学员信息 // 导出课程下的学员信息
exportStudentOfCourse(courseId){ exportStudentOfCourse(courseId){
let userId = this.userInfo.sysId; let userId = this.userInfo.sysId;
apiCourse.exportStudentOfCourse(userId,courseId).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";
link.href = URL.createObjectURL(blob); // 创建URL link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", "授课记录.xls"); link.setAttribute("download", "授课记录.xls");
document.body.appendChild(link); document.body.appendChild(link);
link.click(); link.click();
document.body.removeChild(link); document.body.removeChild(link);
}) })
}, },
// 导出教师下的所有授课记录下的学员信息 // 导出教师下的所有授课记录下的学员信息
exportStudentOfTearcher(){ exportStudentOfTearcher(){
let userId = this.userInfo.sysId; let userId = this.userInfo.sysId;
// let userId = '5D36C207-64F4-C512-312D-C9598257695C'; // let userId = '5D36C207-64F4-C512-312D-C9598257695C';
apiCourse.exportStudentOfTearcher(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";
link.href = URL.createObjectURL(blob); // 创建URL link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", "授课记录.xls"); link.setAttribute("download", "授课记录.xls");
document.body.appendChild(link); document.body.appendChild(link);
link.click(); link.click();
document.body.removeChild(link); document.body.removeChild(link);
}) })
}, },
recordList(pageIndex){ recordList(pageIndex){
let req = { let req = {
//     userId:"6B049FAF-C314-7CCF-0D28-0D23F4C42531", //     userId:"6B049FAF-C314-7CCF-0D28-0D23F4C42531",
userId: this.userInfo.sysId, userId: this.userInfo.sysId,
courseName:this.keyword, keyword:this.keyword,
    page:pageIndex,     page:pageIndex,
    pageSize:10     pageSize:10
} }
apiCourse.getListByToken(req).then(res=>{ apiCourse.courseRecordList(req).then(res=>{
console.log(res,'resssssssssssss') if(res.status == 200) {
if(res.code == 200) { this.pageData = res.result.list;
this.pageData = res.data.records; this.pageInfo = res.result.pageInfo;
console.log(this.pageData,'pageData') } else {
this.pageInfo.total = Number(20); this.$message({
} else { type: 'error',
this.$message({ message: res.message
type: 'error', });
message: res.message }
}); })
} },
})
},
// 每页显示的条数事件 // 每页显示的条数事件
handleSizeChange(val){ handleSizeChange(val){
this.pageInfo.pageSize = val; this.pageInfo.pageSize = val;
this.recordList(1); this.recordList(1);
}, },
// 显示制定页的数据 // 显示制定页的数据
handleCurrentChange(val){ handleCurrentChange(val){
this.pageInfo.pageIndex = val; this.pageInfo.pageIndex = val;
this.recordList(this.pageInfo.pageIndex); this.recordList(this.pageInfo.pageIndex);
}, },
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.Export{ .Export{
display: flex; display: flex;
padding-top: 10px; padding-top: 10px;
} }
</style> </style>