|
@@ -24,7 +24,7 @@
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
-<script setup lang="ts" name="SubjectProgress">
|
|
|
|
|
|
+<script setup lang="tsx" name="SubjectProgress">
|
|
/** 科目进度 */
|
|
/** 科目进度 */
|
|
import { reactive, ref, computed, watch } from 'vue'
|
|
import { reactive, ref, computed, watch } from 'vue'
|
|
import { minus } from '@/utils/common'
|
|
import { minus } from '@/utils/common'
|
|
@@ -36,12 +36,15 @@ import BaseForm from '@/components/element/BaseForm.vue'
|
|
import useForm from '@/hooks/useForm'
|
|
import useForm from '@/hooks/useForm'
|
|
import useOptions from '@/hooks/useOptions'
|
|
import useOptions from '@/hooks/useOptions'
|
|
import { ElButton } from 'element-plus'
|
|
import { ElButton } from 'element-plus'
|
|
|
|
+import { useRouter } from 'vue-router'
|
|
|
|
|
|
import type { EChartsOption } from 'echarts'
|
|
import type { EChartsOption } from 'echarts'
|
|
import type { ExtractApiResponse } from '@/api/api'
|
|
import type { ExtractApiResponse } from '@/api/api'
|
|
import type { EpTableColumn, InstanceTable } from 'global-type'
|
|
import type { EpTableColumn, InstanceTable } from 'global-type'
|
|
|
|
|
|
type SubjectProgress = ExtractArrayValue<ExtractApiResponse<'subjectProgressEnd'>>
|
|
type SubjectProgress = ExtractArrayValue<ExtractApiResponse<'subjectProgressEnd'>>
|
|
|
|
+
|
|
|
|
+const router = useRouter()
|
|
const subjectView = ref<any>({
|
|
const subjectView = ref<any>({
|
|
code: '',
|
|
code: '',
|
|
name: '',
|
|
name: '',
|
|
@@ -243,7 +246,9 @@ const totalChartsOption = computed<EChartsOption>(() => {
|
|
],
|
|
],
|
|
}
|
|
}
|
|
})
|
|
})
|
|
-
|
|
|
|
|
|
+const toOtherPage = (name: string) => {
|
|
|
|
+ router.push({ name })
|
|
|
|
+}
|
|
const columns: EpTableColumn<SubjectProgress>[] = [
|
|
const columns: EpTableColumn<SubjectProgress>[] = [
|
|
{
|
|
{
|
|
label: '科目',
|
|
label: '科目',
|
|
@@ -282,9 +287,48 @@ const columns: EpTableColumn<SubjectProgress>[] = [
|
|
return `${minus(100, row.finishRate)}%`
|
|
return `${minus(100, row.finishRate)}%`
|
|
},
|
|
},
|
|
},
|
|
},
|
|
- { label: '问题卷待处理', prop: 'todoProblemPaperCount', minWidth: 110 },
|
|
|
|
- { label: '雷同卷待处理', prop: 'todoSamePaperCount', minWidth: 110 },
|
|
|
|
- { label: '主观题校验待处理', prop: 'subjectiveUnVerifyPaperCount', minWidth: 140 },
|
|
|
|
|
|
+ {
|
|
|
|
+ label: '问题卷待处理',
|
|
|
|
+ prop: 'todoProblemPaperCount',
|
|
|
|
+ minWidth: 110,
|
|
|
|
+ formatter(row: any) {
|
|
|
|
+ return row.questionMainNumber == 0 ? (
|
|
|
|
+ <span>{row.todoProblemPaperCount}</span>
|
|
|
|
+ ) : (
|
|
|
|
+ <ElButton type="primary" link onClick={() => toOtherPage('MarkingProblem')}>
|
|
|
|
+ {row.todoProblemPaperCount}
|
|
|
|
+ </ElButton>
|
|
|
|
+ )
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '雷同卷待处理',
|
|
|
|
+ prop: 'todoSamePaperCount',
|
|
|
|
+ minWidth: 110,
|
|
|
|
+ formatter(row: any) {
|
|
|
|
+ return row.questionMainNumber == 0 ? (
|
|
|
|
+ <span>{row.todoSamePaperCount}</span>
|
|
|
|
+ ) : (
|
|
|
|
+ <ElButton type="primary" link onClick={() => toOtherPage('MarkingSimilar')}>
|
|
|
|
+ {row.todoSamePaperCount}
|
|
|
|
+ </ElButton>
|
|
|
|
+ )
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '主观题校验待处理',
|
|
|
|
+ prop: 'subjectiveUnVerifyPaperCount',
|
|
|
|
+ minWidth: 140,
|
|
|
|
+ formatter(row: any) {
|
|
|
|
+ return row.questionMainNumber == 0 ? (
|
|
|
|
+ <span>{row.subjectiveUnVerifyPaperCount}</span>
|
|
|
|
+ ) : (
|
|
|
|
+ <ElButton type="primary" link onClick={() => toOtherPage('QualitySubjectiveCheck')}>
|
|
|
|
+ {row.subjectiveUnVerifyPaperCount}
|
|
|
|
+ </ElButton>
|
|
|
|
+ )
|
|
|
|
+ },
|
|
|
|
+ },
|
|
{
|
|
{
|
|
label: '抽查比例',
|
|
label: '抽查比例',
|
|
prop: 'checkPaperRate',
|
|
prop: 'checkPaperRate',
|