|
@@ -11,38 +11,31 @@
|
|
|
@open="search"
|
|
|
>
|
|
|
<div slot="title">
|
|
|
- <h2 class="el-dialog__title">成绩详情</h2>
|
|
|
+ <h2 class="el-dialog__title">班级详情</h2>
|
|
|
<button class="el-dialog__headerbtn" @click="cancel"></button>
|
|
|
</div>
|
|
|
|
|
|
<div class="part-box part-box-filter part-box-flex">
|
|
|
<el-form ref="FilterForm" label-position="left" label-width="85px" inline>
|
|
|
<el-form-item label="学院">
|
|
|
- <college-select
|
|
|
- v-model="filter.collegeId"
|
|
|
- placeholder="学院"
|
|
|
- @change="collegeChange"
|
|
|
- ></college-select>
|
|
|
+ <el-input v-model.trim="filter.college" placeholder="学院" clearable>
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="专业">
|
|
|
- <major-select
|
|
|
- v-model="filter.majorId"
|
|
|
- :college-id="filter.collegeId"
|
|
|
- cascader
|
|
|
+ <el-input
|
|
|
+ v-model.trim="filter.majorName"
|
|
|
placeholder="专业"
|
|
|
clearable
|
|
|
- @change="majorChange"
|
|
|
>
|
|
|
- </major-select>
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="班级">
|
|
|
- <major-class-select
|
|
|
- v-model="filter.classId"
|
|
|
- :major-id="filter.majorId"
|
|
|
- cascader
|
|
|
+ <el-input
|
|
|
+ v-model.trim="filter.className"
|
|
|
placeholder="班级"
|
|
|
- @change="classChange"
|
|
|
- ></major-class-select>
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="姓名">
|
|
|
<el-input
|
|
@@ -60,6 +53,48 @@
|
|
|
>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="学号区间">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="filter.startStudentCode"
|
|
|
+ placeholder="起始学号"
|
|
|
+ clearable
|
|
|
+ class="width-200"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ <span class="mlr-1">-</span>
|
|
|
+ <el-input
|
|
|
+ v-model.trim="filter.endStudentCode"
|
|
|
+ placeholder="终止学号"
|
|
|
+ clearable
|
|
|
+ class="width-200"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="成绩区间">
|
|
|
+ <el-input-number
|
|
|
+ v-model.trim="filter.startScore"
|
|
|
+ placeholder="成绩最低分"
|
|
|
+ :min="0"
|
|
|
+ :max="9999"
|
|
|
+ :step="0.01"
|
|
|
+ step-strictly
|
|
|
+ :controls="false"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ </el-input-number>
|
|
|
+ <span class="mlr-1">-</span>
|
|
|
+ <el-input-number
|
|
|
+ v-model="filter.endScore"
|
|
|
+ placeholder="成绩最高分"
|
|
|
+ :min="0"
|
|
|
+ :max="9999"
|
|
|
+ :step="0.01"
|
|
|
+ step-strictly
|
|
|
+ :controls="false"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ </el-input-number>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label-width="0px">
|
|
|
<el-button type="primary" @click="search">查询</el-button>
|
|
|
</el-form-item>
|
|
@@ -76,7 +111,7 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="part-box part-box-pad">
|
|
|
- <el-table ref="TableList" :data="dataList">
|
|
|
+ <el-table ref="TableList" :data="dataList" @sort-change="sortChange">
|
|
|
<el-table-column
|
|
|
type="index"
|
|
|
label="序号"
|
|
@@ -89,6 +124,7 @@
|
|
|
prop="studentCode"
|
|
|
label="学号"
|
|
|
width="180"
|
|
|
+ sortable
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
prop="college"
|
|
@@ -116,6 +152,7 @@
|
|
|
prop="totalScore"
|
|
|
label="成绩"
|
|
|
width="80"
|
|
|
+ sortable
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
class-name="action-column"
|
|
@@ -189,14 +226,17 @@ export default {
|
|
|
return {
|
|
|
modalIsShow: false,
|
|
|
filter: {
|
|
|
- collegeId: "",
|
|
|
- majorId: "",
|
|
|
- classId: "",
|
|
|
- collegeName: "",
|
|
|
+ college: "",
|
|
|
majorName: "",
|
|
|
className: "",
|
|
|
studentName: "",
|
|
|
studentCode: "",
|
|
|
+ startStudentCode: "",
|
|
|
+ endStudentCode: "",
|
|
|
+ startScore: undefined,
|
|
|
+ endScore: undefined,
|
|
|
+ orderType: undefined,
|
|
|
+ orderField: undefined,
|
|
|
},
|
|
|
current: 1,
|
|
|
size: this.GLOBAL.pageSize,
|
|
@@ -229,6 +269,15 @@ export default {
|
|
|
if (datas.breach !== null && datas.breach !== "")
|
|
|
datas.breach = !!datas.breach;
|
|
|
|
|
|
+ if (
|
|
|
+ (datas.startScore || datas.startScore === 0) &&
|
|
|
+ (datas.endScore || datas.endScore === 0) &&
|
|
|
+ datas.startScore > datas.endScore
|
|
|
+ ) {
|
|
|
+ this.$message.error("成绩最低分大于成绩最高分");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
const data = await scoreClassDetailListPage(datas);
|
|
|
this.dataList = data.records.map((item) => {
|
|
|
const { date, time } = parseTimeRangeDateAndTime(
|
|
@@ -247,14 +296,15 @@ export default {
|
|
|
search() {
|
|
|
this.toPage(1);
|
|
|
},
|
|
|
- collegeChange(val) {
|
|
|
- this.filter.collegeName = val ? val.name : "";
|
|
|
- },
|
|
|
- majorChange(val) {
|
|
|
- this.filter.majorName = val ? val.name : "";
|
|
|
- },
|
|
|
- classChange(val) {
|
|
|
- this.filter.className = val ? val.name : "";
|
|
|
+ sortChange({ prop, order }) {
|
|
|
+ if (!order) {
|
|
|
+ this.filter.orderField = undefined;
|
|
|
+ this.filter.orderType = undefined;
|
|
|
+ } else {
|
|
|
+ this.filter.orderField = prop;
|
|
|
+ this.filter.orderType = order === "ascending" ? "ASC" : "DESC";
|
|
|
+ }
|
|
|
+ this.getList();
|
|
|
},
|
|
|
async toExportScore() {
|
|
|
if (this.downloading) return;
|