370 lines
12 KiB
Vue
370 lines
12 KiB
Vue
|
<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>
|