|
@@ -19,49 +19,26 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="学院:">
|
|
|
- <el-select
|
|
|
+ <college-select
|
|
|
v-model="filter.collegeId"
|
|
|
placeholder="学院"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in colleges"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.name"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
+ ></college-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="专业:">
|
|
|
- <el-select
|
|
|
- v-model="filter.subjectId"
|
|
|
+ <major-select
|
|
|
+ v-model="filter.majorId"
|
|
|
+ :college-id="filter.collegeId"
|
|
|
+ cascader
|
|
|
placeholder="专业"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in subjects"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.name"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
+ ></major-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="班级:">
|
|
|
- <el-select
|
|
|
+ <class-select
|
|
|
v-model="filter.clazzId"
|
|
|
+ :major-id="filter.majorId"
|
|
|
+ cascader
|
|
|
placeholder="班级"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in clazzes"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.name"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
+ ></class-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="课程:">
|
|
|
<el-select
|
|
@@ -90,17 +67,25 @@
|
|
|
</el-form>
|
|
|
<div class="part-box-action">
|
|
|
<el-button
|
|
|
- v-if="checkPrivilege('button', 'BatchDownload')"
|
|
|
type="primary"
|
|
|
icon="el-icon-refresh"
|
|
|
:loading="loading"
|
|
|
+ @click="toSync"
|
|
|
+ >同步</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-if="checkPrivilege('button', 'BatchDownload')"
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-download"
|
|
|
+ :loading="loading"
|
|
|
@click="toDownloadAll"
|
|
|
>一键下载</el-button
|
|
|
>
|
|
|
<el-button
|
|
|
v-if="checkPrivilege('button', 'export')"
|
|
|
type="primary"
|
|
|
- icon="el-icon-circle-plus-outline"
|
|
|
+ icon="el-icon-download"
|
|
|
+ :loading="loading"
|
|
|
@click="toExport"
|
|
|
>成绩导出</el-button
|
|
|
>
|
|
@@ -117,16 +102,16 @@
|
|
|
></el-table-column>
|
|
|
<el-table-column prop="examTime" label="考试时间"></el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="realName"
|
|
|
+ prop="examStudentName"
|
|
|
label="姓名"
|
|
|
width="120"
|
|
|
></el-table-column>
|
|
|
- <el-table-column prop="studentNo" label="学号"></el-table-column>
|
|
|
- <el-table-column prop="college" label="院系"></el-table-column>
|
|
|
- <el-table-column prop="college" label="专业"></el-table-column>
|
|
|
- <el-table-column prop="college" label="班级"></el-table-column>
|
|
|
- <el-table-column prop="college" label="课程名"></el-table-column>
|
|
|
- <el-table-column prop="college" label="成绩"></el-table-column>
|
|
|
+ <el-table-column prop="studentCode" label="学号"></el-table-column>
|
|
|
+ <el-table-column prop="collegeName" label="院系"></el-table-column>
|
|
|
+ <el-table-column prop="majorName" label="专业"></el-table-column>
|
|
|
+ <el-table-column prop="clazzName" label="班级"></el-table-column>
|
|
|
+ <el-table-column prop="courseName" label="课程名"></el-table-column>
|
|
|
+ <el-table-column prop="totalScore" label="成绩"></el-table-column>
|
|
|
<el-table-column class-name="action-column" label="操作" width="160px">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button
|
|
@@ -159,25 +144,28 @@
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <PaperPreviewDialog ref="PaperPreviewDialog" :instance="curRow" />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { scoreListPage } from "../api";
|
|
|
-import PaperPreviewDialog from "../components/PaperPreviewDialog";
|
|
|
-import { downloadPaper } from "../components/downloadPaper";
|
|
|
+import {
|
|
|
+ scoreListPage,
|
|
|
+ scoreExport,
|
|
|
+ scoreBatchDownload,
|
|
|
+ scoreDownload,
|
|
|
+ scoreSync
|
|
|
+} from "../api";
|
|
|
+// import { downloadPaper } from "../components/downloadPaper";
|
|
|
+import { downloadByUrl } from "@/plugins/download";
|
|
|
|
|
|
export default {
|
|
|
name: "score-archive",
|
|
|
- components: { PaperPreviewDialog },
|
|
|
data() {
|
|
|
return {
|
|
|
filter: {
|
|
|
semester: "",
|
|
|
collegeId: "",
|
|
|
- subjectId: "",
|
|
|
+ majorId: "",
|
|
|
clazzId: "",
|
|
|
courseCode: ""
|
|
|
},
|
|
@@ -186,9 +174,6 @@ export default {
|
|
|
total: 0,
|
|
|
dataList: [],
|
|
|
semesters: [],
|
|
|
- colleges: [],
|
|
|
- subjects: [],
|
|
|
- clazzes: [],
|
|
|
courses: [],
|
|
|
curRow: {},
|
|
|
curPapers: [],
|
|
@@ -215,25 +200,48 @@ export default {
|
|
|
this.current = page;
|
|
|
this.getList();
|
|
|
},
|
|
|
- toDownloadAll() {},
|
|
|
- toExport() {
|
|
|
- this.$refs.PaperPreviewDialog.open();
|
|
|
+ async toSync() {
|
|
|
+ if (this.loading) return;
|
|
|
+ this.loading = true;
|
|
|
+ const res = await scoreSync({ examId: "" }).catch(() => {});
|
|
|
+ this.loading = false;
|
|
|
+ if (!res) return;
|
|
|
+ this.$message.success("同步任务已经提交");
|
|
|
+ },
|
|
|
+ async toDownloadAll() {
|
|
|
+ if (this.loading) return;
|
|
|
+ this.loading = true;
|
|
|
+ const res = await scoreBatchDownload(this.filter).catch(() => {});
|
|
|
+ this.loading = false;
|
|
|
+ if (!res) return;
|
|
|
+ this.$message.success("下载任务已经提交");
|
|
|
+ },
|
|
|
+ async toExport() {
|
|
|
+ if (this.loading) return;
|
|
|
+ this.loading = true;
|
|
|
+ const res = await scoreExport(this.filter).catch(() => {});
|
|
|
+ this.loading = false;
|
|
|
+ if (!res) return;
|
|
|
+ this.$message.success("导出任务已经提交");
|
|
|
},
|
|
|
toViewPaper(row) {
|
|
|
- this.curRow = row;
|
|
|
- this.$refs.PaperPreviewDialog.open();
|
|
|
+ if (!row.sheetUrl) {
|
|
|
+ this.$message.error("原卷缺失!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // window.open(row.sheetUrl);
|
|
|
+ downloadByUrl(row.sheetUrl);
|
|
|
},
|
|
|
async toDownload(row) {
|
|
|
if (!this.downloading) return;
|
|
|
this.downloading = true;
|
|
|
- const papers = row.papers;
|
|
|
- const filename = ``;
|
|
|
- const res = await downloadPaper(papers, filename).catch(() => {});
|
|
|
+ const res = await scoreDownload(row.studentCode).catch(() => {});
|
|
|
this.downloading = false;
|
|
|
if (!res) {
|
|
|
this.$message.error("下载失败,请重新尝试!");
|
|
|
return;
|
|
|
}
|
|
|
+ downloadByUrl(res.trajectoryUrls);
|
|
|
|
|
|
this.$message.success("下载成功!");
|
|
|
}
|