|
@@ -1,196 +1,209 @@
|
|
|
<template>
|
|
|
- <el-dialog
|
|
|
- class="modify-mark-params"
|
|
|
- :visible.sync="modalIsShow"
|
|
|
- top="0"
|
|
|
- :close-on-click-modal="false"
|
|
|
- :close-on-press-escape="false"
|
|
|
- :show-close="false"
|
|
|
- append-to-body
|
|
|
- fullscreen
|
|
|
- @open="search"
|
|
|
- >
|
|
|
- <div slot="title">
|
|
|
- <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="学院">
|
|
|
- <el-input v-model.trim="filter.college" placeholder="学院" clearable>
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="专业">
|
|
|
- <el-input
|
|
|
- v-model.trim="filter.majorName"
|
|
|
- placeholder="专业"
|
|
|
- clearable
|
|
|
- >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="班级">
|
|
|
- <el-input
|
|
|
- v-model.trim="filter.className"
|
|
|
- placeholder="班级"
|
|
|
- clearable
|
|
|
- >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="姓名">
|
|
|
- <el-input
|
|
|
- v-model.trim="filter.studentName"
|
|
|
- placeholder="姓名"
|
|
|
- clearable
|
|
|
- >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="学号">
|
|
|
- <el-input
|
|
|
- v-model.trim="filter.studentCode"
|
|
|
- placeholder="学号"
|
|
|
- clearable
|
|
|
- >
|
|
|
- </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>
|
|
|
- </el-form>
|
|
|
- <div class="part-box-action">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- :disabled="downloading"
|
|
|
- @click="toExportScore"
|
|
|
- >
|
|
|
- 成绩导出
|
|
|
- </el-button>
|
|
|
+ <div>
|
|
|
+ <el-dialog
|
|
|
+ class="modify-mark-params"
|
|
|
+ :visible.sync="modalIsShow"
|
|
|
+ top="0"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :close-on-press-escape="false"
|
|
|
+ :show-close="false"
|
|
|
+ append-to-body
|
|
|
+ fullscreen
|
|
|
+ @open="search"
|
|
|
+ >
|
|
|
+ <div slot="title">
|
|
|
+ <h2 class="el-dialog__title">班级详情</h2>
|
|
|
+ <button class="el-dialog__headerbtn" @click="cancel"></button>
|
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
- <div class="part-box part-box-pad">
|
|
|
- <el-table ref="TableList" :data="dataList" @sort-change="sortChange">
|
|
|
- <el-table-column
|
|
|
- type="index"
|
|
|
- label="序号"
|
|
|
- width="70"
|
|
|
- :index="indexMethod"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column prop="studentName" label="姓名" min-width="100">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="studentCode"
|
|
|
- label="学号"
|
|
|
- width="180"
|
|
|
- sortable
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="college"
|
|
|
- label="院系"
|
|
|
- width="180"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="majorName"
|
|
|
- label="专业"
|
|
|
- width="180"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="className"
|
|
|
- label="班级"
|
|
|
- min-width="100"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column prop="checkTime" label="考试时间" width="180">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="courseName"
|
|
|
- label="课程名称"
|
|
|
- min-width="100"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="totalScore"
|
|
|
- label="成绩"
|
|
|
- width="80"
|
|
|
- sortable
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- class-name="action-column"
|
|
|
- label="操作"
|
|
|
- width="120"
|
|
|
- fixed="right"
|
|
|
+ <div class="part-box part-box-filter part-box-flex">
|
|
|
+ <el-form
|
|
|
+ ref="FilterForm"
|
|
|
+ label-position="left"
|
|
|
+ label-width="85px"
|
|
|
+ inline
|
|
|
>
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button
|
|
|
- class="btn-primary"
|
|
|
- type="text"
|
|
|
- @click="toViewSheetPaper(scope.row)"
|
|
|
- >原图</el-button
|
|
|
+ <el-form-item label="学院">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="filter.college"
|
|
|
+ placeholder="学院"
|
|
|
+ clearable
|
|
|
>
|
|
|
- <el-button
|
|
|
- class="btn-primary"
|
|
|
- type="text"
|
|
|
- @click="toViewTrack(scope.row)"
|
|
|
- >轨迹图</el-button
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="专业">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="filter.majorName"
|
|
|
+ placeholder="专业"
|
|
|
+ clearable
|
|
|
>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div class="part-page">
|
|
|
- <el-pagination
|
|
|
- background
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :pager-count="5"
|
|
|
- :current-page="current"
|
|
|
- :total="total"
|
|
|
- :page-size="size"
|
|
|
- @current-change="toPage"
|
|
|
- @size-change="pageSizeChange"
|
|
|
- >
|
|
|
- </el-pagination>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="班级">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="filter.className"
|
|
|
+ placeholder="班级"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="姓名">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="filter.studentName"
|
|
|
+ placeholder="姓名"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="学号">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="filter.studentCode"
|
|
|
+ placeholder="学号"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ </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>
|
|
|
+ </el-form>
|
|
|
+ <div class="part-box-action">
|
|
|
+ <el-button type="primary" @click="toReport">成绩报告</el-button>
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ :disabled="downloading"
|
|
|
+ @click="toExportScore"
|
|
|
+ >
|
|
|
+ 成绩导出
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
+ <div class="part-box part-box-pad">
|
|
|
+ <el-table ref="TableList" :data="dataList" @sort-change="sortChange">
|
|
|
+ <el-table-column
|
|
|
+ type="index"
|
|
|
+ label="序号"
|
|
|
+ width="70"
|
|
|
+ :index="indexMethod"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column prop="studentName" label="姓名" min-width="100">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="studentCode"
|
|
|
+ label="学号"
|
|
|
+ width="180"
|
|
|
+ sortable
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="college"
|
|
|
+ label="院系"
|
|
|
+ width="180"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="majorName"
|
|
|
+ label="专业"
|
|
|
+ width="180"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="className"
|
|
|
+ label="班级"
|
|
|
+ min-width="100"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column prop="checkTime" label="考试时间" width="180">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="courseName"
|
|
|
+ label="课程名称"
|
|
|
+ min-width="100"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="totalScore"
|
|
|
+ label="成绩"
|
|
|
+ width="80"
|
|
|
+ sortable
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ class-name="action-column"
|
|
|
+ label="操作"
|
|
|
+ width="120"
|
|
|
+ fixed="right"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ class="btn-primary"
|
|
|
+ type="text"
|
|
|
+ @click="toViewSheetPaper(scope.row)"
|
|
|
+ >原图</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ class="btn-primary"
|
|
|
+ type="text"
|
|
|
+ @click="toViewTrack(scope.row)"
|
|
|
+ >轨迹图</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="part-page">
|
|
|
+ <el-pagination
|
|
|
+ background
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :pager-count="5"
|
|
|
+ :current-page="current"
|
|
|
+ :total="total"
|
|
|
+ :page-size="size"
|
|
|
+ @current-change="toPage"
|
|
|
+ @size-change="pageSizeChange"
|
|
|
+ >
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div slot="footer"></div>
|
|
|
+ </el-dialog>
|
|
|
<!-- image-preview -->
|
|
|
<simple-image-preview
|
|
|
:cur-image="curImage"
|
|
@@ -198,21 +211,25 @@
|
|
|
@on-next="toNextImage"
|
|
|
ref="SimpleImagePreview"
|
|
|
></simple-image-preview>
|
|
|
-
|
|
|
- <div slot="footer"></div>
|
|
|
- </el-dialog>
|
|
|
+ <!-- ScoreReportPreview -->
|
|
|
+ <score-report-preview
|
|
|
+ ref="ScoreReportPreview"
|
|
|
+ :instance="reportParams"
|
|
|
+ ></score-report-preview>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { scoreClassDetailListPage, scoreClassDetailScoreExport } from "../api";
|
|
|
import SimpleImagePreview from "@/components/SimpleImagePreview";
|
|
|
+import ScoreReportPreview from "./ScoreReportPreview.vue";
|
|
|
import { downloadByApi } from "@/plugins/download";
|
|
|
import markMinxin from "../markMinxin";
|
|
|
import { parseTimeRangeDateAndTime } from "@/plugins/utils";
|
|
|
|
|
|
export default {
|
|
|
name: "score-class-detail",
|
|
|
- components: { SimpleImagePreview },
|
|
|
+ components: { SimpleImagePreview, ScoreReportPreview },
|
|
|
mixins: [markMinxin],
|
|
|
props: {
|
|
|
instance: {
|
|
@@ -243,6 +260,7 @@ export default {
|
|
|
total: 0,
|
|
|
dataList: [],
|
|
|
downloading: false,
|
|
|
+ reportParams: {},
|
|
|
// img view
|
|
|
curImage: {},
|
|
|
curImageIndex: 0,
|
|
@@ -306,6 +324,13 @@ export default {
|
|
|
}
|
|
|
this.getList();
|
|
|
},
|
|
|
+ toReport() {
|
|
|
+ this.reportParams = {
|
|
|
+ ...this.instance,
|
|
|
+ className: this.filter.className,
|
|
|
+ };
|
|
|
+ this.$refs.ScoreReportPreview.open();
|
|
|
+ },
|
|
|
async toExportScore() {
|
|
|
if (this.downloading) return;
|
|
|
this.downloading = true;
|