refacotr: 小修改
continuous-integration/drone/push Build is passing Details

This commit is contained in:
张哲铜 2025-11-26 23:12:07 +08:00
parent 8e05abbd2c
commit 28f847de75
7 changed files with 82 additions and 114 deletions

View File

@ -21,6 +21,7 @@ const task = computed(() => props.task as ExamMarkingTaskResponse)
// //
const { getDictOptionsAndGetLabel } = useDict() const { getDictOptionsAndGetLabel } = useDict()
const [taskStatusDict, getTaskStatusLabel] = getDictOptionsAndGetLabel('task_status') const [taskStatusDict, getTaskStatusLabel] = getDictOptionsAndGetLabel('task_status')
const [gradeDict, getGradeLabel] = getDictOptionsAndGetLabel('grade')
// //
function formatDate(date?: string): string { function formatDate(date?: string): string {
@ -29,6 +30,10 @@ function formatDate(date?: string): string {
return dayjs(date).format('MM-DD HH:mm') return dayjs(date).format('MM-DD HH:mm')
} }
const gradeLabel = computed(() => {
return getGradeLabel(task.value.exam_grade)
})
const statusText = computed(() => { const statusText = computed(() => {
return props.task.subjects.map(subject => getTaskStatusLabel(subject.marking_status)) 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) { function handleEnterMarking(subject: SubjectInfo) {
// if (subject.is_calculated) {
if (props.task.is_scored) {
uni.showToast({ uni.showToast({
title: '已完成,不能再进入', title: '已统分,不能进入阅卷',
icon: 'none', icon: 'none',
}) })
return return
@ -109,6 +113,7 @@ function navigateToQuality(subjectId: number) {
<text class="text-xs text-blue-600"> {{ task.exam_type }}</text> <text class="text-xs text-blue-600"> {{ task.exam_type }}</text>
</view> </view>
<text class="text-xs text-green-600">考试ID: {{ task.exam_id }}</text> <text class="text-xs text-green-600">考试ID: {{ task.exam_id }}</text>
<text class="text-xs text-green-600">年级: {{ gradeLabel }}</text>
</view> </view>
</view> </view>
@ -160,9 +165,8 @@ function navigateToQuality(subjectId: number) {
<view v-else class="flex space-x-2"> <view v-else class="flex space-x-2">
<view <view
class="rounded-md bg-orange-100 px-3 py-1" class="rounded-md bg-orange-100 px-3 py-1"
@click="handleEnterMarking(subject)"
> >
<text class="flex items-center text-xs text-orange-600"> <text class="flex items-center text-xs text-orange-600" @click="handleEnterMarking(subject)">
进入阅卷 进入阅卷
</text> </text>
</view> </view>

View File

@ -20,7 +20,7 @@ const {
isLoading, isLoading,
error, error,
} = useQuery({ } = useQuery({
queryKey: ['studentAnswerSheet', infoId.value, selectedSubjectId.value], queryKey: ['studentAnswerSheet', infoId, selectedSubjectId],
queryFn: async () => { queryFn: async () => {
return await teacherScoreAnalysisApi.teacherAnalysisDetail(infoId.value) return await teacherScoreAnalysisApi.teacherAnalysisDetail(infoId.value)
}, },

View File

@ -47,13 +47,5 @@ export function displayQueryModeEnum6(field: API.Query_modeEnum6) {
} }
export function displayQueryModeEnum7(field: API.Query_modeEnum7) { 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]; return { class: 'class', school: 'school' }[field];
} }
export function displayStatisticsModeEnum(field: API.Statistics_modeEnum) {
return { segmented: 'segmented', cumulative: 'cumulative' }[field];
}

View File

@ -327,7 +327,7 @@ export async function examStatisticsStatisConfigUsingGet({
}) { }) {
return request< return request<
API.Response & { API.Response & {
data?: unknown; data?: Record<string, unknown>;
} }
>('/exam-statistics/statis-config', { >('/exam-statistics/statis-config', {
method: 'GET', method: 'GET',

View File

@ -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({ export async function teacherAnalysisClassExamComparisonHorizontalUsingPost({
body, body,
options, options,

View File

@ -5,7 +5,7 @@ import { CustomRequestOptions } from '@/http/types';
import * as API from './types'; import * as API from './types';
/** 获取题目统计信息 获取某次考试的题目统计信息 POST /teacher-analysis/question-detail */ /** 获取某次考试的题目统计信息 获取某次考试的题目统计信息 POST /teacher-analysis/question-detail */
export async function teacherAnalysisQuestionDetailUsingPost({ export async function teacherAnalysisQuestionDetailUsingPost({
body, body,
options, 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({ export async function teacherAnalysisQuestionScoreDetailUsingPost({
body, body,
options, options,

View File

@ -278,10 +278,10 @@ export type ClassExamComparisonRequest = {
}; };
export type ClassExamComparisonRequestH = { export type ClassExamComparisonRequestH = {
/** 考试ID */
exam_id: number;
/** 班级 */ /** 班级 */
class_key: number; class_key: number;
/** 考试ID */
exam_id: number;
/** 年级 */ /** 年级 */
grade_key: number; grade_key: number;
/** 科目ID */ /** 科目ID */
@ -376,6 +376,14 @@ export type ClassTopNCountItem = {
exam_date?: string; 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 = { export type CodeLoginRequest = {
/** 验证码 */ /** 验证码 */
code: string; code: string;
@ -459,11 +467,10 @@ export type CreateSysUserRequest = {
export type CreateTeacherAttentionStudentRequest = { export type CreateTeacherAttentionStudentRequest = {
/** 备注 */ /** 备注 */
is_attention?: boolean;
remark?: string; remark?: string;
/** 学生学号 */ /** 学生学号 */
student_number: string; student_number: string;
/** 是否关注传入的学生 */
is_attention?: boolean;
}; };
export type CreateUploadSessionRequest = { export type CreateUploadSessionRequest = {
@ -598,16 +605,16 @@ export type ExamComparisonItem = {
}; };
export type ExamComparisonItemH = { export type ExamComparisonItemH = {
/** 班级平均分 */
class_average?: number;
/** 班级排名 */
class_rank?: number;
/** 年级平均分 */
grade_average?: number;
/** 科目ID */ /** 科目ID */
subject_id?: number; subject_id?: number;
/** 科目名称 */ /** 科目名称 */
subject_name?: string; subject_name?: string;
/** 班级平均分 */
class_average?: number;
/** 年级平均分 */
grade_average?: number;
/** 班级排名 */
class_rank?: number;
}; };
export type ExamMarkingTaskListResponse = { export type ExamMarkingTaskListResponse = {
@ -624,6 +631,8 @@ export type ExamMarkingTaskListResponse = {
export type ExamMarkingTaskResponse = { export type ExamMarkingTaskResponse = {
/** 考试时间 */ /** 考试时间 */
exam_date?: string; exam_date?: string;
/** 年级 */
exam_grade?: string;
/** 考试ID */ /** 考试ID */
exam_id?: number; exam_id?: number;
/** 考试名称 */ /** 考试名称 */
@ -1097,18 +1106,17 @@ export type GetPersonalReportResponse = {
}; };
export type GetQuestionDetailRequest = { export type GetQuestionDetailRequest = {
/** 查询本班级 */
class_key: number;
/** 考试ID */ /** 考试ID */
exam_id: number; exam_id: number;
/** 年级参数 */ /** 考试年级 */
grade_key: number; grade_key: number;
/** 查询班级 */
class_key: number;
/** 考试科目ID */ /** 考试科目ID */
subject_id: number; subject_id: number;
}; };
export type GetQuestionDetailResponse = { export type GetQuestionDetailResponse = {
/** 题目统计列表 */
question_detail_list?: QuestionStatInfo[]; question_detail_list?: QuestionStatInfo[];
}; };
@ -1136,20 +1144,19 @@ export type GetQuestionMarkingQualityResponse = {
}; };
export type GetQuestionStatRequest = { export type GetQuestionStatRequest = {
/** 年级参数 */ /** 查询本班级 */
grade_key: number;
/** 查询班级 */
class_key: number; class_key: number;
/** 考试年级 */
grade_key: number;
/** 页码 */ /** 页码 */
page: number; page: number;
/** 考试科目ID */
subject_id: number;
/** 每页大小 */ /** 每页大小 */
page_size: number; page_size: number;
/** 考试科目ID */
subject_id: number;
}; };
export type GetQuestionStatResponse = { export type GetQuestionStatResponse = {
/** 题目统计列表 */
exam_question_list?: ExamQuestionStat[]; exam_question_list?: ExamQuestionStat[];
}; };
@ -1315,18 +1322,17 @@ export type GetStudentMarkingQualityResponse = {
}; };
export type GetTrendRequest = { export type GetTrendRequest = {
/** 年级参数 */ /** 查询本班级 */
grade_key: number;
/** 查询班级 */
class_key: number; class_key: number;
/** 对比的年级 */ /** 查询对比班级 */
class_key_compare: number; class_key_compare: number;
/** 查询最近几次考试的成绩 */
exam_number?: number;
grade_key: number;
/** 考试科目ID */ /** 考试科目ID */
subject_id?: number; subject_id?: number;
/** 查看年级前N名人数 */ /** 查看年级前N名人数 */
top_n: number; top_n: number;
/** 查询最近几次考试的成绩 */
exam_number?: number;
}; };
export type GetTrendResponse = { export type GetTrendResponse = {
@ -1402,14 +1408,14 @@ export type KeyStudentInfo = {
grade_diff_rank?: number; grade_diff_rank?: number;
/** 年级排名 */ /** 年级排名 */
grade_rank?: number; grade_rank?: number;
/** 是否关注 */
is_attention?: boolean;
/** 学生考试号 */ /** 学生考试号 */
student_exam_number?: string; student_exam_number?: string;
/** 学生姓名 */ /** 学生姓名 */
student_name?: string; student_name?: string;
/** 学生学号 */ /** 学生学号 */
student_number?: string; student_number?: string;
/** 是否关注 */
is_attention?: boolean;
}; };
export type LearningSituationAnalysis = { export type LearningSituationAnalysis = {
@ -1915,19 +1921,12 @@ export enum Query_modeEnum6 {
export type IQuery_modeEnum6 = keyof typeof Query_modeEnum6; export type IQuery_modeEnum6 = keyof typeof Query_modeEnum6;
export enum Query_modeEnum7 { export enum Query_modeEnum7 {
'school' = 'school',
'class' = 'class', 'class' = 'class',
'school' = 'school',
} }
export type IQuery_modeEnum7 = keyof typeof Query_modeEnum7; 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 = { export type QuestionAnalysisExcelExportRequest = {
/** 分析类型 */ /** 分析类型 */
analysis_type: 'question' | 'major_question' | 'objective_subjective'; analysis_type: 'question' | 'major_question' | 'objective_subjective';
@ -2198,30 +2197,28 @@ export type QuestionRankingResponse = {
}; };
export type QuestionStatInfo = { 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 */ /** 题目ID */
question_id?: number; question_id?: number;
/** 题目名称 */ /** 题目名称 */
question_name?: string; question_name?: string;
/** 题目类型 */ /** 题目类型 */
question_type?: 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; rate_point_diff?: number;
/** 学生得分统计列表 */ /** 学生得分统计列表 */
student_score_list?: StudentScoreStat[]; student_score_list?: StudentScoreStat[];
/** 题目排序权重 */
order?: number;
}; };
export type RankStatDetail = { export type RankStatDetail = {
@ -2249,31 +2246,12 @@ export type RankStatisticsItem = {
}; };
export type RankStatisticsRequest = { export type RankStatisticsRequest = {
/** 考试ID必填 */ /** 班级字典key列表class模式时必填 */
class_id?: number;
/** 考试ID */
exam_id: number; exam_id: number;
/** 科目ID */ /** 科目ID0表示总分 */
subject_id?: number; 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 = { export type RankStatisticsResponse = {
@ -2602,18 +2580,18 @@ export type ScoreSheetInfo = {
full_score?: number; full_score?: number;
/** 年级排名 */ /** 年级排名 */
grade_rank?: number; grade_rank?: number;
/** 答题卡ID */
info_id?: number;
/** 成绩等级 */ /** 成绩等级 */
score_level?: string; score_level?: string;
/** 单科成绩 */
single_subject_score_list?: SingleSubjectScore[];
/** 学生考试号 */ /** 学生考试号 */
student_exam_number?: string; student_exam_number?: string;
/** 学生姓名 */ /** 学生姓名 */
student_name?: string; student_name?: string;
/** 学生学号 */ /** 学生学号 */
student_number?: string; student_number?: string;
/** 单科成绩 */
single_subject_score_list?: SingleSubjectScore[];
/** 答题卡ID */
info_id?: number;
}; };
export type ScoreTrendItem = { export type ScoreTrendItem = {
@ -2660,23 +2638,12 @@ export type SetProblemRecordResponse = {
}; };
export type SingleSubjectScore = { export type SingleSubjectScore = {
/** 科目ID */
subject_id?: number;
/** 科目名称 */
subject_name?: string;
/** 单科成绩 */
subject_score?: number;
/** 答题卡ID */
info_id?: number; 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 = { export type StatisticsAnalysisExcelExportRequest = {
/** 分析类型rank/score/percentile */ /** 分析类型rank/score/percentile */
analysis_type: string; analysis_type: string;
@ -2977,10 +2944,10 @@ export type StudentScoreStat = {
score?: number; score?: number;
/** 取得这分数的学生个数 */ /** 取得这分数的学生个数 */
student_count?: number; student_count?: number;
/** 获得这个分数的学生占比 */
student_rate?: number;
/** 获得这个分数的学生名单 */ /** 获得这个分数的学生名单 */
student_list?: StudentInfo[]; student_list?: StudentInfo[];
/** 获得这个分数的学生占比 */
student_rate?: number;
}; };
export type SubjectAnalysisDetail = { export type SubjectAnalysisDetail = {
@ -3091,8 +3058,12 @@ export type SubjectInfo = {
evaluate_method?: string; evaluate_method?: string;
/** 考试科目ID */ /** 考试科目ID */
exam_subject_id?: number; exam_subject_id?: number;
/** 是否已统分: 0-否, 1-是 */
is_calculated?: number;
/** 是否存在问题卷 */ /** 是否存在问题卷 */
is_problem_pending?: boolean; is_problem_pending?: boolean;
/** 是否已发布: 0-否, 1-是 */
is_published?: number;
/** 阅卷状态 */ /** 阅卷状态 */
marking_status?: string; marking_status?: string;
/** 题目数量 */ /** 题目数量 */
@ -3388,6 +3359,8 @@ export type TeacherMarkingDetail = {
export type TeacherMarkingTasksResponse = { export type TeacherMarkingTasksResponse = {
/** 当前任务(最近一次考试) */ /** 当前任务(最近一次考试) */
current_task?: ExamMarkingTaskResponse; current_task?: ExamMarkingTaskResponse;
/** 当前任务(当前考试) */
current_tasks?: ExamMarkingTaskListResponse;
/** 历次任务(历史考试) */ /** 历次任务(历史考试) */
history_tasks?: ExamMarkingTaskListResponse; history_tasks?: ExamMarkingTaskListResponse;
}; };
@ -3429,8 +3402,7 @@ export type TrendInfo = {
exam_id?: number; exam_id?: number;
/** 考试名称 */ /** 考试名称 */
exam_name?: string; exam_name?: string;
/** 年级走势数据 */ trend_data?: ClassTrendData[];
trend_data?: unknown[];
}; };
export type UnifiedConfigData = { export type UnifiedConfigData = {