Files
Academic-Affairs-System/web/src/utils/academicTerms.ts
T
biss c91d826169 学年学期页面新增“设为当前”“归档”“撤销归档”,当前学期不能归档、删除或直接取消;已归档学期需先撤销才能重新设为当前。[BaseDataController.cs (line 286)](/E:/jiaowu/src/Jiaowu.Api/Controllers/BaseDataController.cs:286)
切换后,其他学期自动变为历史态;已归档学期进一步弱化。所有主要学期选择器统一默认当前,并显示“当前 / 历史 / 已归档”。[academicTerms.ts (line 1)](/E:/jiaowu/web/src/utils/academicTerms.ts:1)
桌面使用分层表格,390px 手机端改为独立学期卡片,操作不会再挤压表格。[BaseDataView.vue (line 211)](/E:/jiaowu/web/src/views/BaseDataView.vue:211)
归档定义为“历史显示状态”,不是成绩冻结:补考成绩仍可录入并回写,已发布成绩仍可走成绩更正审批。
已加入 SQLite 开发迁移、MySQL 正式迁移和切换/归档/撤销测试。[20260726143000_AcademicTermArchiving.cs (line 1)](/E:/jiaowu/src/Jiaowu.Api/Infrastructure/Persistence/Migrations/MySql/20260726143000_AcademicTermArchiving.cs:1)
2026-07-26 11:14:05 +08:00

42 lines
1.3 KiB
TypeScript

export interface AcademicTermLike {
id: string
name: string
isCurrent?: boolean
isArchived?: boolean
isEnabled?: boolean
hasPublishedTimetable?: boolean
}
export function academicTermLabel(term: AcademicTermLike): string {
if (term.isCurrent) return `${term.name} · 当前`
if (term.isArchived) return `${term.name} · 已归档`
return `${term.name} · 历史`
}
export function academicTermOptionClass(term: AcademicTermLike): string {
if (term.isCurrent) return 'academic-term-option academic-term-option--current'
if (term.isArchived) return 'academic-term-option academic-term-option--archived'
return 'academic-term-option academic-term-option--historical'
}
export function defaultAcademicTermId(
terms: AcademicTermLike[],
requirePublishedTimetable = false,
): string | undefined {
const usable = requirePublishedTimetable
? terms.filter((term) => term.hasPublishedTimetable)
: terms
return usable.find((term) => term.isCurrent)?.id
?? usable.find((term) => !term.isArchived)?.id
?? usable[0]?.id
}
export function academicTermRowClass(term: {
isCurrent?: boolean
isArchived?: boolean
}): string {
if (term.isCurrent) return 'academic-term-row academic-term-row--current'
if (term.isArchived) return 'academic-term-row academic-term-row--archived'
return 'academic-term-row academic-term-row--historical'
}