student-dx-intelligence-main/src/views/courseStatistics/courseStatistics.vue

370 lines
12 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<style lang="scss" scoped>
@import "../table.scss";
</style>
<template>
<div>
<el-card>
<!-- 检索区域 -->
<div class="seachbox">
<div class="seachbox">
<!-- 学期检索 --><!-- <el-select v-model="queryParams.Term" @change="getgetcourseListinfo()" filterable
placeholder="学期" clearable size="small" class="ml-5 seachbox_input">
<el-option v-for="item in TermList" :key="item.name" :label="item.name" :value="item.value" />
</el-select> -->
<!-- 学院检索 -->
<!-- <el-select v-model="queryParams.collegeId" filterable @change="getgetcourseListinfo()"
placeholder="学院" clearable size="small" class="ml-5 seachbox_input">
<el-option v-for="item in CollegeList" :key="item.value" :label="item.name"
:value="item.value" />
</el-select> -->
<!-- 教师检索 -->
<el-input v-model.trim="queryParams.nname" placeholder="教师姓名" clearable size="small"
style="width:200px; margin:0px 10px 0px 0px "></el-input>
<el-input v-model.trim="queryParams.num" placeholder="教师工号" clearable size="small"
style="width:200px; margin:0px 10px 0px 0px "></el-input>
<!-- 课程名检索 -->
<el-select v-model="queryParams.coursevalue" filterable placeholder="课程名" clearable size="small"
class="ml-5 seachbox_input">
<el-option v-for="item in courseList
" :key="item.CourceCode.toString()" :label="item.CourceName"
:value="item.CourceCode.toString()" />
</el-select>
<!-- 按钮——————搜索 -->
<el-button class="ml-5" style="margin-left: 10px;" type="primary"
@click="ClickSearch">搜索</el-button>
</div>
<!-- 状态检索 -->
<!-- <div class="status">
</div> -->
</div>
<!-- 检索结束 -->
<!-- table开始-->
<el-table :data="tableData" border stripe :header-cell-style="{ 'text-align': 'center' }"
:scrollbar-always-on="true">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column prop="CollegeName" align="center" label="学院">
</el-table-column>
<el-table-column prop="CourceName" label="课程" align="left">
</el-table-column>
<el-table-column prop="Teacher" align="center" label="教师" :show-overflow-tooltip="true">
<template v-slot="scope">
<span>{{ scope.row.TeacherName }}({{ scope.row.TeacherNumber }}) </span>
</template>
</el-table-column>
<el-table-column prop="ClassName" align="left" label="班级">
</el-table-column>
<el-table-column prop="ClassroomName" align="left" label="教室">
</el-table-column>
<el-table-column prop="weeksAndWeekday" align="center" label="节次">
<template v-slot="scope">
<span>{{ scope.row.ScheduleName }}({{ scope.row.AcademicNumber }})</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150" fixed="right">
<template v-slot="scope">
<Details-Button permission="courseStatisticsColumns:Details" v-if="scope.row.ReviewNumber != 0"
@clicknative="detailTableItem(scope.row)" content="详情"></Details-Button>
<span v-else>暂无考勤信息</span>
</template>
</el-table-column>
</el-table>
<!-- table结束 -->
<!-- 分页 -->
<div class="paginationbox">
<el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="pageobj.pageNum" :page-sizes="pageobj.pageSizeOptions" :page-size="pageobj.pageSize"
layout="total, sizes, prev, pager, next" :total="pageobj.Total">
</el-pagination>
</div>
</el-card>
</div>
</template>
<script>
import { nanoid } from 'nanoid'
import { getsplit } from "@/utils/common.js"
import { getTermList, getCollegeList, getcourseList, getTabledata } from "@/api/courseStatistics.js"
export default {
name: 'courseStatistics_index',
components: {
},
directives: {
},
data() {
return {
//检索部分
// 检索 ---数组列表 数组系列
TermList: [], //检索——学期
CollegeList: [], //检索——学院
courseList: [],
tableData: [], //检索——表格
allvalue: 0,
//检索 ----参数
queryParams: {
Term: '',
semesterNum: "全部学期",
collegeId: '',
nname: "",
num: "",
coursevalue: "", //日期
},
//新增 -----form数组列表
isedit: false,
//分页
pageobj: {
oldTotal: 0,
oldCurrent: 1,
Total: 0,
pageSize: 10,
pageNum: 1,
pageSizeOptions: [10, 20, 50, 100, 150, 200],
}
}
},
methods: {
//分页部分
//切换页码
handleCurrentChange(e) { //e---指代的是页码数
this.pageobj.pageNum = Math.ceil(e);
this.getTabledatainfo(this.pageobj.pageNum);
},
//切换每页条数
handleSizeChange(e) { //e--指代的是每页条数
this.pageobj.pageSize = Math.ceil(e);
this.pageobj.pageNum = 1; //这里是当我们位于每页十条的时候的第5页的时候 我们切换每页条数 页面跳转到第一页
this.getTabledatainfo(this.pageobj.pageNum);
},
// 检索部分
// 检索——Term学期
getTermListinfo() {
getTermList({ SelectTermList: '' })
.then((res) => {
this.TermList = res
})
},
//检索--课程名
getgetcourseListinfo() {
this.queryParams.semesterNum =
this.queryParams.semesterNum == "全部学期"
? ""
: this.queryParams.semesterNum;
getcourseList({ term: this.queryParams.semesterNum, collegeId: this.queryParams.collegeId || 0 })
.then((res) => {
this.courseList = res
})
},
//检索——College学院
getCollegeListinfo(params) {
const { collegeId, isAll } = params;
getCollegeList({ SelectCollegeList: collegeId, isAll: isAll })
.then((res) => {
this.CollegeList = res
})
},
//检索——Classroom教室
getClassroomListinfo() {
getClassroomList({
bName: '',
}).then((res) => {
this.ClassroomList = res
})
},
ClickSearch() {
//搜索
this.getTabledatainfo(1);
},
//All检索——表格
getTabledatainfo(pageNum) { //pageNum---当前页
let semesterNum1 = this.queryParams.Term;
let collegeId1 = this.queryParams.collegeId || 0;
let nname = this.queryParams.nname;
let num = this.queryParams.num;
let coursevalue = this.queryParams.coursevalue;
this.pageobj.pageNum = pageNum;
getTabledata({
oldTotal: this.pageobj.oldTotal,
oldCurrent: this.pageobj.oldCurrent,
pageSize: this.pageobj.pageSize,
pageNum: pageNum,
collegeId: collegeId1,
teaNum: num,
teaName: nname,
courceCode: coursevalue,
term: semesterNum1 === "全部学期" ? "" : semesterNum1,
}).then((res) => {
let data = res;
if (data.length > 0) {
this.pageobj.Total = data[0].total;
} else {
this.pageobj.Total = 0;
this.pageobj.pageNum = 1;
}
this.tableData = data;
// debugger
})
},
// 检索完成
detailTableItem(row) {
// debugger
let argu = {
courseId: row.CourceCode,
ClassroomCode: row.ClassroomCode,
TeacherNumber: row.TeacherNumber,
};
this.$router.push({
name: "courseInfos",
query: argu,
});
},
//初始化
Initialization() {
this.getTermListinfo(); //学期
this.getCollegeListinfo({
collegeId: "",
isAll: false,
}); //学院
this.getgetcourseListinfo()
this.getTabledatainfo(1) //桌面
},
// 添加页面
//获取学院信息 --这里获取学院信息有点重复
getNewCollegeListinfo() {
getNewCollegeList({
scSchoolCode: '',
}).then((res) => {
this.NewCollegeList = res
}).catch((err) => {
// console.log('学院信息请求错误');
})
},
CollegeChange() {
this.Form.Major = "";
this.Form.Grade = "";
this.Form.Class = "";
this.getNewMajorListinfo()
},
},
mounted() {
this.Initialization()
},
activated() {
},
created() {
},
}
</script>
<style lang="scss" scoped>
.status {
display: flex;
flex-direction: row;
}
.date {
margin: 0px 10px 0px 0px;
}
.el-form .el-select {
width: 80%;
}
.el-form .el-input {
width: 80%;
}
.demo-drawerchange__footer {
position: relative;
margin-top: 50px;
}
.card-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.box-card {
position: absolute;
width: 60%;
left: 20%;
top: 30%;
z-index: 3;
}
.Newfooter {
position: relative;
float: right;
margin: 10px 0px;
}
.btn_close {
box-shadow: none;
border: none;
background: none;
color: #606266;
}
.btn_cancel {
box-shadow: none;
border: none;
background: none;
}
.div_forshow {}
.div_show {
position: relative;
margin: 5px 0px;
border: 2px dotted rgba(113, 158, 243, 0.3);
display: flex;
flex-direction: row;
font-size: 13px;
}
.div_item {
width: 220px;
margin: 0px 20px;
}
.btn_semiselect {
margin: 2px 0px;
border: none;
border-radius: 50%;
width: 30px;
height: 30px;
box-shadow: none;
background: rgba(139, 139, 241, 0.5);
color: white;
}
.div_btn {
width: 60px;
}
</style>