diff --git a/apps/admin/src/components/StudentProfileContent/ExamScoresTab.tsx b/apps/admin/src/components/StudentProfileContent/ExamScoresTab.tsx index 527b5002..3c9e74eb 100644 --- a/apps/admin/src/components/StudentProfileContent/ExamScoresTab.tsx +++ b/apps/admin/src/components/StudentProfileContent/ExamScoresTab.tsx @@ -125,7 +125,7 @@ export const ExamScoresTab: React.FC< title: '成绩', dataIndex: 'score', render: (v: number | null, r) => ( - + {v ?? '-'} ), @@ -134,7 +134,7 @@ export const ExamScoresTab: React.FC< title: '班级均分', dataIndex: 'classAvg', render: (v: number | undefined, r) => ( - + {v !== undefined ? v : '-'} ), @@ -143,7 +143,7 @@ export const ExamScoresTab: React.FC< title: '排名', dataIndex: 'rank', render: (v: number | undefined, r) => ( - + {v !== undefined ? v : '-'} ), @@ -247,13 +247,13 @@ export const ExamScoresTab: React.FC< - + - + - + diff --git a/apps/server/src/archive/dto/archive.dto.ts b/apps/server/src/archive/dto/archive.dto.ts index 1cf84659..89b5341c 100644 --- a/apps/server/src/archive/dto/archive.dto.ts +++ b/apps/server/src/archive/dto/archive.dto.ts @@ -6,6 +6,7 @@ import { IsDateString, IsNotEmpty, Min, + Max, IsInt, } from 'class-validator'; @@ -38,9 +39,10 @@ export class CreateExamScoreDto { @IsString() @IsNotEmpty() examType: string; @IsOptional() @IsString() examName?: string; @IsString() @IsNotEmpty() subject: string; - @IsNumber() @Min(0) score: number; - @IsOptional() @IsNumber() @Min(0) classAvg?: number; - @IsOptional() @IsNumber() @Min(1) rank?: number; + // 列类型 decimal(5,2)/int:上限与列宽对齐,避免超范围写入 MySQL 报 500 + @IsNumber() @Min(0) @Max(999.99) score: number; + @IsOptional() @IsNumber() @Min(0) @Max(999.99) classAvg?: number; + @IsOptional() @IsNumber() @Min(1) @Max(2147483647) rank?: number; @IsOptional() @IsDateString() examDate?: string; @IsOptional() @IsNumber() enrollmentId?: number; }