|
@@ -0,0 +1,311 @@
|
|
|
|
+<template>
|
|
|
|
+ <div>
|
|
|
|
+ <div class="part-box part-box-filter part-box-flex">
|
|
|
|
+ <el-form ref="FilterForm" label-position="left" label-width="90px" inline>
|
|
|
|
+ <el-form-item label="姓名/学号:">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model.trim="filter.param"
|
|
|
|
+ placeholder="姓名/学号"
|
|
|
|
+ clearable
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="起止成绩:">
|
|
|
|
+ <el-input-number
|
|
|
|
+ style="width: 80px"
|
|
|
|
+ v-model="filter.minScore"
|
|
|
|
+ :min="0"
|
|
|
|
+ :max="999"
|
|
|
|
+ :step="1"
|
|
|
|
+ step-strictly
|
|
|
|
+ :controls="false"
|
|
|
|
+ placeholder="成绩"
|
|
|
|
+ ></el-input-number>
|
|
|
|
+ <span class="el-input-split"></span>
|
|
|
|
+ <el-input-number
|
|
|
|
+ style="width: 80px"
|
|
|
|
+ v-model="filter.maxScore"
|
|
|
|
+ :min="0"
|
|
|
|
+ :max="999"
|
|
|
|
+ :step="1"
|
|
|
|
+ step-strictly
|
|
|
|
+ :controls="false"
|
|
|
|
+ placeholder="成绩"
|
|
|
|
+ ></el-input-number>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="学期:">
|
|
|
|
+ <semester-select
|
|
|
|
+ v-model.trim="filter.semesterId"
|
|
|
|
+ placeholder="学期"
|
|
|
|
+ ></semester-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="考试:">
|
|
|
|
+ <exam-select
|
|
|
|
+ v-model="filter.examId"
|
|
|
|
+ :semester-id="filter.semesterId"
|
|
|
|
+ ></exam-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="课程(代码):">
|
|
|
|
+ <course-select
|
|
|
|
+ v-model.trim="filter.courseCode"
|
|
|
|
+ :filter-data="{
|
|
|
|
+ semesterId: filter.semesterId,
|
|
|
|
+ examId: filter.examId,
|
|
|
|
+ }"
|
|
|
|
+ placeholder="课程(代码)"
|
|
|
|
+ clearable
|
|
|
|
+ ></course-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="任课老师:">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model.trim="filter.teacher"
|
|
|
|
+ placeholder="任课老师"
|
|
|
|
+ clearable
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item prop="collegeName" label="学院:">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model.trim="filter.collegeName"
|
|
|
|
+ placeholder="学院"
|
|
|
|
+ clearable
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item prop="majorName" label="专业:">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model.trim="filter.majorName"
|
|
|
|
+ placeholder="专业"
|
|
|
|
+ clearable
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item prop="clazzName" label="班级:">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model.trim="filter.clazzName"
|
|
|
|
+ placeholder="班级"
|
|
|
|
+ clearable
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="教学班:">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model.trim="filter.teachClass"
|
|
|
|
+ placeholder="教学班"
|
|
|
|
+ clearable
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ <el-form-item label="图片张数:">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="filter.pictureSymbol"
|
|
|
|
+ :clearable="false"
|
|
|
|
+ style="width: 100px"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="(val, key) in EQUAL_TYPE"
|
|
|
|
+ :key="key"
|
|
|
|
+ :value="key"
|
|
|
|
+ :label="val"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ <el-input-number
|
|
|
|
+ style="width: 100px; margin-left: 5px"
|
|
|
|
+ v-model="filter.pictureCount"
|
|
|
|
+ :min="0"
|
|
|
|
+ :max="9999"
|
|
|
|
+ :step="1"
|
|
|
|
+ step-strictly
|
|
|
|
+ :controls="false"
|
|
|
|
+ placeholder="图片张数"
|
|
|
|
+ ></el-input-number>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-button type="primary" @click="toPage(1)">查询</el-button>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <div class="part-box-action">
|
|
|
|
+ <el-button
|
|
|
|
+ type="success"
|
|
|
|
+ icon="el-icon-upload"
|
|
|
|
+ :loading="loading"
|
|
|
|
+ :disabled="!multipleSelection.length"
|
|
|
|
+ @click="toDownload"
|
|
|
|
+ >下载图片</el-button
|
|
|
|
+ >
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="part-box part-box-pad mb-0">
|
|
|
|
+ <el-table
|
|
|
|
+ ref="TableList"
|
|
|
|
+ :data="dataList"
|
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
|
+ >
|
|
|
|
+ <el-table-column
|
|
|
|
+ type="selection"
|
|
|
|
+ width="55"
|
|
|
|
+ align="center"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="studentName"
|
|
|
|
+ label="姓名"
|
|
|
|
+ :min-width="120"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="studentCode"
|
|
|
|
+ label="学号"
|
|
|
|
+ width="120"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="batchNo"
|
|
|
|
+ label="扫描批次号"
|
|
|
|
+ width="100"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="courseCodeName"
|
|
|
|
+ label="课程名称(代码)"
|
|
|
|
+ min-width="260"
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{ scope.row.courseName }}({{ scope.row.courseCode }})
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="teacher"
|
|
|
|
+ label="任课老师"
|
|
|
|
+ :min-width="120"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="teachClass"
|
|
|
|
+ label="教学班"
|
|
|
|
+ :min-width="120"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="collegeName"
|
|
|
|
+ label="学院"
|
|
|
|
+ :min-width="120"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="majorName"
|
|
|
|
+ label="专业"
|
|
|
|
+ :min-width="120"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="className"
|
|
|
|
+ label="班级"
|
|
|
|
+ :min-width="120"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="examRoom"
|
|
|
|
+ label="考场"
|
|
|
|
+ :min-width="120"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column prop="score" label="成绩" width="80"></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="remark"
|
|
|
|
+ label="备注"
|
|
|
|
+ width="120"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ class-name="action-column"
|
|
|
|
+ label="图片"
|
|
|
|
+ width="80"
|
|
|
|
+ fixed="right"
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-button
|
|
|
|
+ class="btn-primary"
|
|
|
|
+ type="text"
|
|
|
|
+ @click="toDetail(scope.row)"
|
|
|
|
+ >
|
|
|
|
+ <span class="cont-link">{{ scope.row.bindCount }}</span>
|
|
|
|
+ </el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ <div class="part-page">
|
|
|
|
+ <el-pagination
|
|
|
|
+ background
|
|
|
|
+ layout="total,prev, pager, next"
|
|
|
|
+ :current-page="current"
|
|
|
|
+ :total="total"
|
|
|
|
+ :page-size="size"
|
|
|
|
+ @current-change="toPage"
|
|
|
|
+ >
|
|
|
|
+ </el-pagination>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <!-- ArchivesDetailStudentDialog -->
|
|
|
|
+ <archives-detail-student-dialog
|
|
|
|
+ ref="ArchivesDetailStudentDialog"
|
|
|
|
+ :student="curRow"
|
|
|
|
+ :show-fix="false"
|
|
|
|
+ ></archives-detail-student-dialog>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+import { pictureListPage } from "../api";
|
|
|
|
+import { EQUAL_TYPE } from "@/constants/enumerate";
|
|
|
|
+import ArchivesDetailStudentDialog from "../components/ArchivesDetailStudentDialog.vue";
|
|
|
|
+
|
|
|
|
+export default {
|
|
|
|
+ name: "picture-manage",
|
|
|
|
+ components: { ArchivesDetailStudentDialog },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ filter: {
|
|
|
|
+ semesterId: "",
|
|
|
|
+ examId: "",
|
|
|
|
+ courseCode: "",
|
|
|
|
+ collegeName: "",
|
|
|
|
+ majorName: "",
|
|
|
|
+ clazzName: "",
|
|
|
|
+ teacher: "",
|
|
|
|
+ teachClass: "",
|
|
|
|
+ param: "",
|
|
|
|
+ minScore: undefined,
|
|
|
|
+ maxScore: undefined,
|
|
|
|
+ pictureSymbol: "EQUAL",
|
|
|
|
+ pictureCount: undefined,
|
|
|
|
+ },
|
|
|
|
+ current: 1,
|
|
|
|
+ size: this.GLOBAL.pageSize,
|
|
|
|
+ total: 0,
|
|
|
|
+ dataList: [],
|
|
|
|
+ curRow: {},
|
|
|
|
+ EQUAL_TYPE,
|
|
|
|
+ multipleSelection: [],
|
|
|
|
+ loading: false,
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ async getList() {
|
|
|
|
+ const datas = {
|
|
|
|
+ ...this.filter,
|
|
|
|
+ pageNumber: this.current,
|
|
|
|
+ pageSize: this.size,
|
|
|
|
+ };
|
|
|
|
+ const data = await pictureListPage(datas);
|
|
|
|
+ this.dataList = data.records;
|
|
|
|
+ this.total = data.total;
|
|
|
|
+ },
|
|
|
|
+ toPage(page) {
|
|
|
|
+ this.current = page;
|
|
|
|
+ this.getList();
|
|
|
|
+ },
|
|
|
|
+ handleSelectionChange(val) {
|
|
|
|
+ this.multipleSelection = val.map((item) => item.studentId);
|
|
|
|
+ },
|
|
|
|
+ toDownload() {},
|
|
|
|
+ toDetail(row) {
|
|
|
|
+ if (!row.bindCount) return;
|
|
|
|
+
|
|
|
|
+ this.curRow = {
|
|
|
|
+ ...row,
|
|
|
|
+ paperScanTaskId: this.task.paperScanTaskId,
|
|
|
|
+ semesterId: this.task.semesterId,
|
|
|
|
+ };
|
|
|
|
+ this.$refs.ArchivesDetailStudentDialog.open();
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+</script>
|