diff --git a/src/components/marking/TaskCard.vue b/src/components/marking/TaskCard.vue index 12ae21d..367056f 100644 --- a/src/components/marking/TaskCard.vue +++ b/src/components/marking/TaskCard.vue @@ -21,6 +21,7 @@ const task = computed(() => props.task as ExamMarkingTaskResponse) // 字典数据 const { getDictOptionsAndGetLabel } = useDict() const [taskStatusDict, getTaskStatusLabel] = getDictOptionsAndGetLabel('task_status') +const [gradeDict, getGradeLabel] = getDictOptionsAndGetLabel('grade') // 格式化时间 function formatDate(date?: string): string { @@ -29,6 +30,10 @@ function formatDate(date?: string): string { return dayjs(date).format('MM-DD HH:mm') } +const gradeLabel = computed(() => { + return getGradeLabel(task.value.exam_grade) +}) + const statusText = computed(() => { return props.task.subjects.map(subject => getTaskStatusLabel(subject.marking_status)) }) @@ -49,10 +54,9 @@ function getStatusTagType(status?: string): 'primary' | 'success' | 'warning' | // 进入阅卷 function handleEnterMarking(subject: SubjectInfo) { - // 已统分的考试不能进入 - if (props.task.is_scored) { + if (subject.is_calculated) { uni.showToast({ - title: '已完成,不能再进入', + title: '已统分,不能进入阅卷', icon: 'none', }) return @@ -109,6 +113,7 @@ function navigateToQuality(subjectId: number) { {{ task.exam_type }} 考试ID: {{ task.exam_id }} + 年级: {{ gradeLabel }} @@ -160,9 +165,8 @@ function navigateToQuality(subjectId: number) { - + 进入阅卷 diff --git a/src/pages/student/answer-sheet.vue b/src/pages/student/answer-sheet.vue index 0262915..76e93da 100644 --- a/src/pages/student/answer-sheet.vue +++ b/src/pages/student/answer-sheet.vue @@ -20,7 +20,7 @@ const { isLoading, error, } = useQuery({ - queryKey: ['studentAnswerSheet', infoId.value, selectedSubjectId.value], + queryKey: ['studentAnswerSheet', infoId, selectedSubjectId], queryFn: async () => { return await teacherScoreAnalysisApi.teacherAnalysisDetail(infoId.value) }, diff --git a/src/service/displayEnumLabel.ts b/src/service/displayEnumLabel.ts index fc7b8eb..e70e643 100644 --- a/src/service/displayEnumLabel.ts +++ b/src/service/displayEnumLabel.ts @@ -47,13 +47,5 @@ export function displayQueryModeEnum6(field: API.Query_modeEnum6) { } export function displayQueryModeEnum7(field: API.Query_modeEnum7) { - return { school: 'school', class: 'class' }[field]; -} - -export function displayQueryModeEnum8(field: API.Query_modeEnum8) { return { class: 'class', school: 'school' }[field]; } - -export function displayStatisticsModeEnum(field: API.Statistics_modeEnum) { - return { segmented: 'segmented', cumulative: 'cumulative' }[field]; -} diff --git a/src/service/kaoshitongji.ts b/src/service/kaoshitongji.ts index ea18511..b48ffdb 100644 --- a/src/service/kaoshitongji.ts +++ b/src/service/kaoshitongji.ts @@ -327,7 +327,7 @@ export async function examStatisticsStatisConfigUsingGet({ }) { return request< API.Response & { - data?: unknown; + data?: Record; } >('/exam-statistics/statis-config', { method: 'GET', diff --git a/src/service/laoshichengjifenxi.ts b/src/service/laoshichengjifenxi.ts index 00d27bd..ffdd8ca 100644 --- a/src/service/laoshichengjifenxi.ts +++ b/src/service/laoshichengjifenxi.ts @@ -71,7 +71,7 @@ export async function teacherAnalysisClassExamComparisonUsingPost({ }); } -/** 获取班级考试对比(横向对比) 获取指定班级的所有考试对比数据,包括班级平均分、年级平均分、班级排名、学科名字、学科ID POST /teacher-analysis/class-exam-comparison-horizontal */ +/** 获取班级考试对比(横向对比) 获取指定班级的所有考试对比数据 POST /teacher-analysis/class-exam-comparison-horizontal */ export async function teacherAnalysisClassExamComparisonHorizontalUsingPost({ body, options, diff --git a/src/service/laoshixiaotichengjifenxi.ts b/src/service/laoshixiaotichengjifenxi.ts index 1458fc5..7f90f2f 100644 --- a/src/service/laoshixiaotichengjifenxi.ts +++ b/src/service/laoshixiaotichengjifenxi.ts @@ -5,7 +5,7 @@ import { CustomRequestOptions } from '@/http/types'; import * as API from './types'; -/** 获取题目统计信息 获取某次考试的题目统计信息 POST /teacher-analysis/question-detail */ +/** 获取某次考试的题目统计信息 获取某次考试的题目统计信息 POST /teacher-analysis/question-detail */ export async function teacherAnalysisQuestionDetailUsingPost({ body, options, @@ -27,7 +27,7 @@ export async function teacherAnalysisQuestionDetailUsingPost({ }); } -/** 获取题目统计信息 获取某次考试的题目统计信息 POST /teacher-analysis/question-score-detail */ +/** 获取某次考试的题目得分学生清单 获取某次考试的题目得分学生清单 POST /teacher-analysis/question-score-detail */ export async function teacherAnalysisQuestionScoreDetailUsingPost({ body, options, @@ -49,7 +49,7 @@ export async function teacherAnalysisQuestionScoreDetailUsingPost({ }); } -/** 获取题目统计信息 获取最近几次的题目统计信息 POST /teacher-analysis/question-stat */ +/** 获取题目统计信息 获取最近几次的题目统计信息 POST /teacher-analysis/question-stat */ export async function teacherAnalysisQuestionStatUsingPost({ body, options, diff --git a/src/service/types.ts b/src/service/types.ts index 0fea05c..5ad0def 100644 --- a/src/service/types.ts +++ b/src/service/types.ts @@ -278,10 +278,10 @@ export type ClassExamComparisonRequest = { }; export type ClassExamComparisonRequestH = { - /** 考试ID */ - exam_id: number; /** 班级 */ class_key: number; + /** 考试ID */ + exam_id: number; /** 年级 */ grade_key: number; /** 科目ID */ @@ -376,6 +376,14 @@ export type ClassTopNCountItem = { exam_date?: string; }; +export type ClassTrendData = { + class_avg_score?: number; + class_key?: number; + class_name?: string; + class_rank?: number; + class_top_count?: number; +}; + export type CodeLoginRequest = { /** 验证码 */ code: string; @@ -459,11 +467,10 @@ export type CreateSysUserRequest = { export type CreateTeacherAttentionStudentRequest = { /** 备注 */ + is_attention?: boolean; remark?: string; /** 学生学号 */ student_number: string; - /** 是否关注传入的学生 */ - is_attention?: boolean; }; export type CreateUploadSessionRequest = { @@ -598,16 +605,16 @@ export type ExamComparisonItem = { }; export type ExamComparisonItemH = { + /** 班级平均分 */ + class_average?: number; + /** 班级排名 */ + class_rank?: number; + /** 年级平均分 */ + grade_average?: number; /** 科目ID */ subject_id?: number; /** 科目名称 */ subject_name?: string; - /** 班级平均分 */ - class_average?: number; - /** 年级平均分 */ - grade_average?: number; - /** 班级排名 */ - class_rank?: number; }; export type ExamMarkingTaskListResponse = { @@ -624,6 +631,8 @@ export type ExamMarkingTaskListResponse = { export type ExamMarkingTaskResponse = { /** 考试时间 */ exam_date?: string; + /** 年级 */ + exam_grade?: string; /** 考试ID */ exam_id?: number; /** 考试名称 */ @@ -1097,18 +1106,17 @@ export type GetPersonalReportResponse = { }; export type GetQuestionDetailRequest = { + /** 查询本班级 */ + class_key: number; /** 考试ID */ exam_id: number; - /** 年级参数 */ + /** 考试年级 */ grade_key: number; - /** 查询班级 */ - class_key: number; /** 考试科目ID */ subject_id: number; }; export type GetQuestionDetailResponse = { - /** 题目统计列表 */ question_detail_list?: QuestionStatInfo[]; }; @@ -1136,20 +1144,19 @@ export type GetQuestionMarkingQualityResponse = { }; export type GetQuestionStatRequest = { - /** 年级参数 */ - grade_key: number; - /** 查询班级 */ + /** 查询本班级 */ class_key: number; + /** 考试年级 */ + grade_key: number; /** 页码 */ page: number; - /** 考试科目ID */ - subject_id: number; /** 每页大小 */ page_size: number; + /** 考试科目ID */ + subject_id: number; }; export type GetQuestionStatResponse = { - /** 题目统计列表 */ exam_question_list?: ExamQuestionStat[]; }; @@ -1315,18 +1322,17 @@ export type GetStudentMarkingQualityResponse = { }; export type GetTrendRequest = { - /** 年级参数 */ - grade_key: number; - /** 查询班级 */ + /** 查询本班级 */ class_key: number; - /** 对比的年级 */ + /** 查询对比班级 */ class_key_compare: number; + /** 查询最近几次考试的成绩 */ + exam_number?: number; + grade_key: number; /** 考试科目ID */ subject_id?: number; /** 查看年级前N名人数 */ top_n: number; - /** 查询最近几次考试的成绩 */ - exam_number?: number; }; export type GetTrendResponse = { @@ -1402,14 +1408,14 @@ export type KeyStudentInfo = { grade_diff_rank?: number; /** 年级排名 */ grade_rank?: number; + /** 是否关注 */ + is_attention?: boolean; /** 学生考试号 */ student_exam_number?: string; /** 学生姓名 */ student_name?: string; /** 学生学号 */ student_number?: string; - /** 是否关注 */ - is_attention?: boolean; }; export type LearningSituationAnalysis = { @@ -1915,19 +1921,12 @@ export enum Query_modeEnum6 { export type IQuery_modeEnum6 = keyof typeof Query_modeEnum6; export enum Query_modeEnum7 { - 'school' = 'school', 'class' = 'class', + 'school' = 'school', } export type IQuery_modeEnum7 = keyof typeof Query_modeEnum7; -export enum Query_modeEnum8 { - 'class' = 'class', - 'school' = 'school', -} - -export type IQuery_modeEnum8 = keyof typeof Query_modeEnum8; - export type QuestionAnalysisExcelExportRequest = { /** 分析类型 */ analysis_type: 'question' | 'major_question' | 'objective_subjective'; @@ -2198,30 +2197,28 @@ export type QuestionRankingResponse = { }; export type QuestionStatInfo = { + /** 班级平均分 */ + class_avg_score?: number; + /** 班级得分率 */ + class_score_rate?: number; + /** 年级平均分 */ + grade_avg_score?: number; + /** 年级得分率 */ + grade_score_rate?: number; + /** 题目总个数 */ + question_count?: number; + /** 题目满分 */ + question_full_score?: number; /** 题目ID */ question_id?: number; /** 题目名称 */ question_name?: string; /** 题目类型 */ question_type?: string; - /** 题目满分 */ - question_full_score?: unknown; - /** 题目总个数 */ - question_count?: number; - /** 班级平均分 */ - class_avg_score?: number; - /** 年级平均分 */ - grade_avg_score?: number; - /** 班级得分率 */ - class_score_rate?: number; - /** 年级得分率 */ - grade_score_rate?: number; /** 得分率差 */ rate_point_diff?: number; /** 学生得分统计列表 */ student_score_list?: StudentScoreStat[]; - /** 题目排序权重 */ - order?: number; }; export type RankStatDetail = { @@ -2249,31 +2246,12 @@ export type RankStatisticsItem = { }; export type RankStatisticsRequest = { - /** 考试ID,必填 */ + /** 班级字典key列表(class模式时必填) */ + class_id?: number; + /** 考试ID */ exam_id: number; - /** 科目ID */ + /** 科目ID,0表示总分 */ subject_id?: number; - /** 查询模式:school/class */ - query_mode?: 'school' | 'class'; - /** 学校ID列表(school模式时必填) */ - school_ids?: number[]; - /** 班级ID列表(class模式时必填) */ - class_ids: number[]; - /** 名次段列表,如[{"name":"前10名","start":1,"end":10}] */ - rank_ranges: { - /** 名次段名称 */ - name?: string; - /** 起始名次 */ - start?: number; - /** 结束名次 */ - end?: number; - }[]; - /** 统计模式:segmented(分段)/cumulative(累计),默认cumulative */ - statistics_mode?: 'segmented' | 'cumulative'; - /** 教师ID,用于权限过滤 */ - teacher_id?: number; - /** 角色标识,用于权限过滤 */ - role_key?: number; }; export type RankStatisticsResponse = { @@ -2602,18 +2580,18 @@ export type ScoreSheetInfo = { full_score?: number; /** 年级排名 */ grade_rank?: number; + /** 答题卡ID */ + info_id?: number; /** 成绩等级 */ score_level?: string; + /** 单科成绩 */ + single_subject_score_list?: SingleSubjectScore[]; /** 学生考试号 */ student_exam_number?: string; /** 学生姓名 */ student_name?: string; /** 学生学号 */ student_number?: string; - /** 单科成绩 */ - single_subject_score_list?: SingleSubjectScore[]; - /** 答题卡ID */ - info_id?: number; }; export type ScoreTrendItem = { @@ -2660,23 +2638,12 @@ export type SetProblemRecordResponse = { }; export type SingleSubjectScore = { - /** 科目ID */ - subject_id?: number; - /** 科目名称 */ - subject_name?: string; - /** 单科成绩 */ - subject_score?: number; - /** 答题卡ID */ info_id?: number; + subject_id?: number; + subject_name?: string; + subject_score?: number; }; -export enum Statistics_modeEnum { - 'segmented' = 'segmented', - 'cumulative' = 'cumulative', -} - -export type IStatistics_modeEnum = keyof typeof Statistics_modeEnum; - export type StatisticsAnalysisExcelExportRequest = { /** 分析类型:rank/score/percentile */ analysis_type: string; @@ -2977,10 +2944,10 @@ export type StudentScoreStat = { score?: number; /** 取得这分数的学生个数 */ student_count?: number; - /** 获得这个分数的学生占比 */ - student_rate?: number; /** 获得这个分数的学生名单 */ student_list?: StudentInfo[]; + /** 获得这个分数的学生占比 */ + student_rate?: number; }; export type SubjectAnalysisDetail = { @@ -3091,8 +3058,12 @@ export type SubjectInfo = { evaluate_method?: string; /** 考试科目ID */ exam_subject_id?: number; + /** 是否已统分: 0-否, 1-是 */ + is_calculated?: number; /** 是否存在问题卷 */ is_problem_pending?: boolean; + /** 是否已发布: 0-否, 1-是 */ + is_published?: number; /** 阅卷状态 */ marking_status?: string; /** 题目数量 */ @@ -3388,6 +3359,8 @@ export type TeacherMarkingDetail = { export type TeacherMarkingTasksResponse = { /** 当前任务(最近一次考试) */ current_task?: ExamMarkingTaskResponse; + /** 当前任务(当前考试) */ + current_tasks?: ExamMarkingTaskListResponse; /** 历次任务(历史考试) */ history_tasks?: ExamMarkingTaskListResponse; }; @@ -3429,8 +3402,7 @@ export type TrendInfo = { exam_id?: number; /** 考试名称 */ exam_name?: string; - /** 年级走势数据 */ - trend_data?: unknown[]; + trend_data?: ClassTrendData[]; }; export type UnifiedConfigData = {