mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-07 01:46:42 +08:00
267 lines
8.2 KiB
Vue
267 lines
8.2 KiB
Vue
<template>
|
|
<div style="padding: 12px 32px 10px 12px;">
|
|
<div style="display: flex;justify-content: flex-start;">
|
|
|
|
<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: 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 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: 0px 5px;"><el-button icon="el-icon-refresh-right" type="primary" size="small" round>导出学员信息</el-button></div> -->
|
|
</div>
|
|
<div style="margin-top:20px;">
|
|
<el-table :data="pageData" border stripe>
|
|
<el-table-column
|
|
label="序号"
|
|
prop="index"
|
|
width="100px">
|
|
<template v-slot="scope">
|
|
<span>{{ scope.$index + 1 }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="讲师工号"
|
|
prop="userNo"
|
|
width="100px">
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="讲师姓名"
|
|
prop="teacherName"
|
|
width="200px">
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="课程名称"
|
|
prop="courseName"
|
|
width="200px">
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="培训发生组织"
|
|
prop="trainOrgName"
|
|
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
|
|
label="授课/课程日期"
|
|
prop="teachingDate"
|
|
width="200px">
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
label="内容分类"
|
|
prop="courseTypeName"
|
|
width="200px">
|
|
</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="授课时长(分钟)"
|
|
prop="teaching"
|
|
width="120px"
|
|
></el-table-column>
|
|
<el-table-column
|
|
label="参训人数"
|
|
prop="studys"
|
|
width="120px"
|
|
></el-table-column>
|
|
<el-table-column
|
|
label="评分"
|
|
prop="score"
|
|
width="100px"
|
|
></el-table-column>
|
|
<el-table-column
|
|
label="是否生成讲师费"
|
|
prop="createdFee"
|
|
width="100px"
|
|
>
|
|
<template v-slot="scope">
|
|
<span>{{
|
|
{
|
|
"0": "否",
|
|
"1": "是",
|
|
}[scope.row.createdFee + '']
|
|
}}</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, scope.row.type)"
|
|
size="small">导出学员信息
|
|
</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
|
|
<div style="text-align: center; margin-top:57px">
|
|
<el-pagination
|
|
background
|
|
@size-change="handleSizeChange"
|
|
@current-change="handleCurrentChange"
|
|
:current-page="pageInfo.page"
|
|
:page-sizes="[10, 20, 30, 40]"
|
|
:page-size="pageInfo.pageSize"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
:total="pageInfo.total"
|
|
></el-pagination>
|
|
</div>
|
|
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import apiCourse from '../../api/boe/courseRecord.js';
|
|
import {mapGetters} from 'vuex';
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
pageData: [],
|
|
keyword: '',
|
|
pageInfo: {
|
|
pageIndex:1,
|
|
pageSize:10,
|
|
},
|
|
}
|
|
},
|
|
mounted() {
|
|
this.recordList();
|
|
},
|
|
computed: {
|
|
...mapGetters(['userInfo'])
|
|
},
|
|
methods: {
|
|
// 导出所有记录
|
|
exportFile() {
|
|
let req = {
|
|
userId: this.userInfo.sysId
|
|
}
|
|
apiCourse.courseRecordExport2(req).then(res => {
|
|
const link = document.createElement('a');// 创建a标签
|
|
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}); // 设置文件类型
|
|
link.style.display = "none";
|
|
link.href = URL.createObjectURL(blob); // 创建URL
|
|
link.setAttribute("download", "授课记录.xls");
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
document.body.removeChild(link);
|
|
})
|
|
},
|
|
|
|
// 导出课程下的学员信息
|
|
exportStudentOfCourse(courseId, courseType) {
|
|
apiCourse.exportStudentOfCourse2(courseId, courseType).then(res => {
|
|
const link = document.createElement('a');// 创建a标签
|
|
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}); // 设置文件类型
|
|
link.style.display = "none";
|
|
link.href = URL.createObjectURL(blob); // 创建URL
|
|
link.setAttribute("download", "授课记录.xls");
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
document.body.removeChild(link);
|
|
})
|
|
},
|
|
|
|
// 导出教师下的所有授课记录下的学员信息
|
|
exportStudentOfTearcher() {
|
|
let userId = this.userInfo.sysId;
|
|
apiCourse.exportStudentOfTearcher2(userId).then(res => {
|
|
const link = document.createElement('a');// 创建a标签
|
|
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'}); // 设置文件类型
|
|
link.style.display = "none";
|
|
link.href = URL.createObjectURL(blob); // 创建URL
|
|
link.setAttribute("download", "授课记录.xls");
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
document.body.removeChild(link);
|
|
})
|
|
},
|
|
|
|
recordList() {
|
|
let req = {
|
|
courseName: this.keyword,
|
|
pageNo: this.pageInfo.pageIndex,
|
|
pageSize: this.pageInfo.pageSize
|
|
}
|
|
apiCourse.getListByToken(req).then(res => {
|
|
if (res.status == 200) {
|
|
this.pageData = res.data.records;
|
|
this.pageInfo.pageSize = Number(res.data.size);
|
|
this.pageInfo.total = Number(res.data.total);
|
|
this.pageInfo.page = Number(res.data.current);
|
|
} else {
|
|
this.$message({
|
|
type: 'error',
|
|
message: res.message
|
|
});
|
|
}
|
|
})
|
|
},
|
|
|
|
// 每页显示的条数事件
|
|
handleSizeChange(val) {
|
|
this.pageInfo.pageIndex = 1;
|
|
this.pageInfo.pageSize = val;
|
|
this.recordList();
|
|
},
|
|
// 显示制定页的数据
|
|
handleCurrentChange(val) {
|
|
this.pageInfo.pageIndex = val;
|
|
this.recordList(this.pageInfo.pageIndex);
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.Export {
|
|
display: flex;
|
|
padding-top: 10px;
|
|
}
|
|
</style>
|