|
@@ -2,27 +2,15 @@
|
|
<div class="part-box is-border">
|
|
<div class="part-box is-border">
|
|
<el-form inline>
|
|
<el-form inline>
|
|
<el-form-item label="科目">
|
|
<el-form-item label="科目">
|
|
- <select-subject v-model="searchModel.subject"></select-subject>
|
|
|
|
|
|
+ <select-subject v-model="searchModel.code"></select-subject>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="层次">
|
|
<el-form-item label="层次">
|
|
- <el-select
|
|
|
|
- v-model="searchModel.level"
|
|
|
|
- placeholder="请选择"
|
|
|
|
- clearable
|
|
|
|
- style="width: 120px"
|
|
|
|
- >
|
|
|
|
- <el-option label="请选择" value="" />
|
|
|
|
- </el-select>
|
|
|
|
|
|
+ <select-option v-model="searchModel.level" type="subjectLevel">
|
|
|
|
+ </select-option>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="专业类型">
|
|
<el-form-item label="专业类型">
|
|
- <el-select
|
|
|
|
- v-model="searchModel.majorType"
|
|
|
|
- placeholder="请选择"
|
|
|
|
- clearable
|
|
|
|
- style="width: 120px"
|
|
|
|
- >
|
|
|
|
- <el-option label="请选择" value="" />
|
|
|
|
- </el-select>
|
|
|
|
|
|
+ <select-option v-model="searchModel.category" type="subjectCategory">
|
|
|
|
+ </select-option>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
<el-space wrap>
|
|
<el-space wrap>
|
|
@@ -44,35 +32,32 @@
|
|
>
|
|
>
|
|
<el-table-column prop="name" label="考试名称" min-width="200" sortable />
|
|
<el-table-column prop="name" label="考试名称" min-width="200" sortable />
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="totalStudents"
|
|
|
|
|
|
+ prop="totalCount"
|
|
label="考生总数"
|
|
label="考生总数"
|
|
min-width="100"
|
|
min-width="100"
|
|
sortable
|
|
sortable
|
|
/>
|
|
/>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="scannedSheets"
|
|
|
|
|
|
+ prop="scanSheetCount"
|
|
label="已扫张数"
|
|
label="已扫张数"
|
|
min-width="100"
|
|
min-width="100"
|
|
sortable
|
|
sortable
|
|
/>
|
|
/>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="scannedStudents"
|
|
|
|
|
|
+ prop="scanCount"
|
|
label="已扫人数"
|
|
label="已扫人数"
|
|
min-width="100"
|
|
min-width="100"
|
|
sortable
|
|
sortable
|
|
/>
|
|
/>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="manualAbsent"
|
|
|
|
|
|
+ prop="manualAbsentCount"
|
|
label="人工指定缺考"
|
|
label="人工指定缺考"
|
|
min-width="100"
|
|
min-width="100"
|
|
sortable
|
|
sortable
|
|
/>
|
|
/>
|
|
<el-table-column label="进度" width="100">
|
|
<el-table-column label="进度" width="100">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
- <el-progress
|
|
|
|
- :percentage="scope.row.progress"
|
|
|
|
- :color="getProgressColor(scope.row.progress)"
|
|
|
|
- />
|
|
|
|
|
|
+ {{ getProgress(scope.row) }}
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -98,9 +83,9 @@
|
|
});
|
|
});
|
|
|
|
|
|
const searchModel = reactive<ScanCourseListFilter>({
|
|
const searchModel = reactive<ScanCourseListFilter>({
|
|
- subject: null,
|
|
|
|
|
|
+ code: null,
|
|
level: '',
|
|
level: '',
|
|
- majorType: '',
|
|
|
|
|
|
+ category: '',
|
|
});
|
|
});
|
|
|
|
|
|
const {
|
|
const {
|
|
@@ -112,10 +97,12 @@
|
|
handleSortChange,
|
|
handleSortChange,
|
|
} = useTable<ScanItem>(getScanCourseList, searchModel, false);
|
|
} = useTable<ScanItem>(getScanCourseList, searchModel, false);
|
|
|
|
|
|
- function getProgressColor(progress: number) {
|
|
|
|
- if (progress < 30) return '#f56c6c';
|
|
|
|
- if (progress < 70) return '#e6a23c';
|
|
|
|
- return '#67c23a';
|
|
|
|
|
|
+ function getProgress(row: ScanItem) {
|
|
|
|
+ if (!row.totalCount) return '0%';
|
|
|
|
+ return `${(
|
|
|
|
+ ((row.scanCount + row.manualAbsentCount) / row.totalCount) *
|
|
|
|
+ 100
|
|
|
|
+ ).toFixed(2)}%`;
|
|
}
|
|
}
|
|
|
|
|
|
function exportData() {
|
|
function exportData() {
|