<template> <div class="pb_content" style=" background: unset; overflow: auto; padding: 20px; margin: 0; box-sizing: border-box; " > <div style=" position: absolute; width: 95%; top: 0; height: 100%; overflow: auto; left: 50%; transform: translateX(-50%); " > <div class="pb_content_body" style=" background: #fff; padding: 0px 25px; box-sizing: border-box; border-radius: 5px; " > <div> <div class="pb_head" style=" display: flex; flex-direction: row; justify-content: space-between; align-items: center; " > <span class="sub_head">学生评价管理</span> <!-- <span>备注:教师可以根据课程、班级条件筛选学生并查看该学生信息</span> --> <div class="returnWorks" @click=" goTo('/works?userid=' + userid + '&oid=' + oid + '&org=' + org) " > <el-button>返回</el-button> </div> </div> <div class="student_head"> <div class="student_search"> <div>学生筛选</div> <el-select v-model="className" @change="search"> <el-option label="所有班级" value="">所有班级</el-option> <el-option v-for="item in classJuri" :key="item.id" :label="item.name" :value="item.id" > </el-option> </el-select> <el-input v-model="cn" placeholder="筛选学生名称" @input="search" ></el-input> </div> </div> </div> </div> <div class="pb_content_body"> <div> <div class="student_table"> <el-table ref="table" :data="tableData" border :height="tableHeight" :fit="true" v-loading="isLoading" style="width: 100%" :header-cell-style="{ background: '#f1f1f1', fontSize: '17px' }" :row-class-name="tableRowClassName" > <el-table-column prop="name" label="学生名称" min-width="30" align="center" ></el-table-column> <el-table-column prop="className" label="班级" min-width="40" align="center" ></el-table-column> <el-table-column label="操作" min-width="30"> <template slot-scope="scope"> <el-button type="primary" size="small" @click="getWorkData(scope.row)" >查看课程</el-button > </template> </el-table-column> </el-table> </div> <div class="student_page"> <el-pagination background layout="prev, pager, next" :page-size="10" :total="total" v-if="page" @current-change="handleCurrentChange" ></el-pagination> </div> </div> </div> </div> <div class="sdetailBox" v-if="dialogVisibleS"> <StudentWorksDetail :uid="dataJson.userid" :ooid="oid" :oorg="org" ></StudentWorksDetail> <div class="cancelbox" v-if="dialogVisibleS"> <el-button @click="cancel" type="primary" size="small" >返回</el-button > </div> </div> </div> </template> <script> import StudentWorksDetail from "./components/studentWorksDetail.vue"; export default { components: { StudentWorksDetail, }, data() { return { tableHeight: "500px", isLoading: false, formLabelWidth: "100px", page: 1, total: 0, userid: this.$route.query.userid, org: this.$route.query.org, oid: this.$route.query.oid, type: this.$route.query.type, dialogVisibleS: false, className: "", cn: "", classJuri: [], tableData: [], dataJson: [], pageType: 1, }; }, mounted() { this.$nextTick(function () { this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 200; if (this.tableHeight <= 530) { this.tableHeight = 530; } // 监听窗口大小变化 let self = this; window.onresize = function () { self.tableHeight = window.innerHeight - self.$refs.table.$el.offsetTop - 200; if (self.tableHeight <= 530) { self.tableHeight = 530; } }; }); }, methods: { goTo(path) { this.$router.push(path); }, tableRowClassName({ row, rowIndex }) { if ((rowIndex + 1) % 2 === 0) { return "even_row"; } else { return ""; } }, handleClose(done) { done(); }, handleCurrentChange(val) { this.page = val; this.getAllStudent(); }, search() { this.page = 1; this.getAllStudent(); }, cancel() { this.dataJson = []; this.dialogVisibleS = false; }, getWorkData(row) { this.dataJson = row; this.dialogVisibleS = true; }, //获取班级列表 getClass() { let params = { oid: this.oid, }; this.ajax .get(this.$store.state.api + "selectClassBySchool", params) .then((res) => { this.classJuri = res.data[0]; }) .catch((err) => { console.error(err); }); }, getAllStudent() { this.isLoading = true; let params = { oid: this.oid, cn: this.cn, cid: this.className, page: this.page, }; this.ajax .get(this.$store.state.api + "selectAllStudent", params) .then((res) => { this.isLoading = false; this.total = res.data[0].length > 0 ? res.data[0][0].num : 0; this.tableData = res.data[0]; }) .catch((err) => { this.isLoading = false; console.error(err); }); }, }, created() { this.page = 1; this.getClass(); this.getAllStudent(); }, }; </script> <style scoped> .pb_head > span:nth-child(2) { /* font-size: 16px; */ font-size: 26px; cursor: pointer; margin-left: 10px; /* color: #ab582f; */ /* color: #409eff; */ color: #999; } .pb_head > span:nth-child(2):hover { color: #000; } .pb_head { margin: 0 !important; width: 100% !important; } .student_page { margin-top: 10px; } .student_head { margin-top: 10px; padding-bottom: 15px; display: flex; justify-content: space-between; } .student_search { display: flex; flex-direction: row; align-items: center; } .student_search > div:nth-child(1) { line-height: 35px; font-size: 14px; min-width: 60px; } .student_search > div:nth-child(4) { min-width: 100px; margin-left: 10px; cursor: pointer; } .student_search >>> .el-input__inner { width: 190px; height: 35px; margin-left: 10px; } .student_table >>> .el-table--border td { border-right: 0px !important; } .student_page { margin-top: 10px; } .student_table >>> .el-table, .student_table >>> .el-table__body-wrapper { height: auto !important; } .el-table >>> .even_row { background-color: #f1f1f1 !important; } .returnWorks >>> .el-button { background-color: #409eff; border-color: #409eff; color: #fff; } .sdetailBox { height: 100%; position: absolute; top: 0; background: #fff; overflow: auto; z-index: 1; width: 95%; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); padding: 20px; -webkit-box-sizing: border-box; box-sizing: border-box; } .cancelbox { position: absolute; z-index: 2; left: 50%; top: 7%; width: 95%; transform: translateX(-50%); display: flex; justify-content: flex-end; padding: 0 90px 0px 0px; box-sizing: border-box; } </style>