|
@@ -130,6 +130,13 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div class="part-box-action">
|
|
|
+ <el-button
|
|
|
+ class="mr-2"
|
|
|
+ type="primary"
|
|
|
+ :loading="loading"
|
|
|
+ @click="toCalcObjective"
|
|
|
+ >客观题统分</el-button
|
|
|
+ >
|
|
|
<el-dropdown
|
|
|
:disabled="!multipleSelection.length"
|
|
|
@command="toBatchCheck"
|
|
@@ -150,6 +157,7 @@
|
|
|
ref="TableList"
|
|
|
:data="dataList"
|
|
|
@selection-change="handleSelectionChange"
|
|
|
+ @sort-change="sortChange"
|
|
|
>
|
|
|
<el-table-column
|
|
|
type="selection"
|
|
@@ -162,6 +170,7 @@
|
|
|
prop="studentCode"
|
|
|
label="学号"
|
|
|
width="140"
|
|
|
+ sortable
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
prop="secretNumber"
|
|
@@ -172,28 +181,32 @@
|
|
|
prop="className"
|
|
|
label="班级"
|
|
|
min-width="160"
|
|
|
+ sortable
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
prop="objectiveScore"
|
|
|
label="客观分"
|
|
|
- width="80"
|
|
|
+ width="85"
|
|
|
+ sortable
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
prop="subjectiveScore"
|
|
|
label="主观分"
|
|
|
- width="80"
|
|
|
+ width="85"
|
|
|
+ sortable
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
prop="totalScore"
|
|
|
label="总分"
|
|
|
width="80"
|
|
|
+ sortable
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
prop="subjectiveScoreList"
|
|
|
label="主观题明细"
|
|
|
min-width="240"
|
|
|
></el-table-column>
|
|
|
- <el-table-column prop="checkUserName" label="检查人" width="140">
|
|
|
+ <el-table-column prop="checkUserName" label="检查人" min-width="140">
|
|
|
<span slot-scope="scope"
|
|
|
>{{ scope.row.checkUserName | defaultFieldFilter }}({{
|
|
|
scope.row.checkUserLoginName | defaultFieldFilter
|
|
@@ -208,7 +221,7 @@
|
|
|
<el-table-column
|
|
|
class-name="action-column"
|
|
|
label="操作"
|
|
|
- width="300"
|
|
|
+ width="260"
|
|
|
fixed="right"
|
|
|
>
|
|
|
<template slot-scope="scope">
|
|
@@ -269,7 +282,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { scoreDetailListPage } from "../api";
|
|
|
+import { scoreDetailListPage, objectiveScoreCalculate } from "../api";
|
|
|
import SimpleImagePreview from "@/components/SimpleImagePreview";
|
|
|
import markMinxin from "../markMinxin";
|
|
|
|
|
@@ -302,11 +315,14 @@ export default {
|
|
|
objectiveScoreRateLt: undefined,
|
|
|
studentName: "",
|
|
|
studentCode: "",
|
|
|
+ orderType: undefined,
|
|
|
+ orderField: undefined,
|
|
|
},
|
|
|
current: 1,
|
|
|
size: this.GLOBAL.pageSize,
|
|
|
total: 0,
|
|
|
dataList: [],
|
|
|
+ loading: false,
|
|
|
multipleSelection: [],
|
|
|
// img view
|
|
|
curImage: {},
|
|
@@ -354,6 +370,16 @@ export default {
|
|
|
handleSelectionChange(val) {
|
|
|
this.multipleSelection = val;
|
|
|
},
|
|
|
+ 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();
|
|
|
+ },
|
|
|
toBatchCheck(type) {
|
|
|
if (!this.multipleSelection.length) return;
|
|
|
const studentIds = this.multipleSelection.map((item) => item.studentId);
|
|
@@ -378,6 +404,20 @@ export default {
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
+ async toCalcObjective() {
|
|
|
+ if (this.loading) return;
|
|
|
+
|
|
|
+ this.loading = true;
|
|
|
+ const res = await objectiveScoreCalculate({
|
|
|
+ examId: this.instance.examId,
|
|
|
+ paperNumber: this.instance.paperNumber,
|
|
|
+ }).catch(() => {});
|
|
|
+ this.loading = false;
|
|
|
+
|
|
|
+ if (!res) return;
|
|
|
+ this.$message.success("操作成功!");
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
// img view
|
|
|
toViewSheetPaper(row) {
|
|
|
this.curImageIndex = 0;
|