学年学期页面新增“设为当前”“归档”“撤销归档”,当前学期不能归档、删除或直接取消;已归档学期需先撤销才能重新设为当前。[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)
This commit is contained in:
@@ -182,6 +182,160 @@ button { cursor: pointer; }
|
||||
.table-toolbar .el-input { width: min(340px, 60vw); }
|
||||
.table-toolbar > span { margin-left: auto; color: var(--muted); font-size: 11px; }
|
||||
.data-table { min-height: 360px; }
|
||||
|
||||
.el-select-dropdown__item.academic-term-option {
|
||||
transition: color 160ms ease, opacity 160ms ease, background-color 160ms ease;
|
||||
}
|
||||
|
||||
.el-select-dropdown__item.academic-term-option--current {
|
||||
color: #17694b;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.el-select-dropdown__item.academic-term-option--historical {
|
||||
color: #6f7d8c;
|
||||
opacity: .76;
|
||||
}
|
||||
|
||||
.el-select-dropdown__item.academic-term-option--archived {
|
||||
color: #98a2ad;
|
||||
opacity: .62;
|
||||
}
|
||||
|
||||
.el-select-dropdown__item.academic-term-option--historical.is-hovering,
|
||||
.el-select-dropdown__item.academic-term-option--archived.is-hovering {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.academic-term-row--historical > .el-table__cell {
|
||||
color: #73808e;
|
||||
opacity: .78;
|
||||
}
|
||||
|
||||
.academic-term-row--archived > .el-table__cell {
|
||||
color: #8e98a3;
|
||||
background: #f8fafc;
|
||||
opacity: .66;
|
||||
}
|
||||
|
||||
.academic-term-row--historical:hover > .el-table__cell,
|
||||
.academic-term-row--archived:hover > .el-table__cell {
|
||||
opacity: .94;
|
||||
}
|
||||
|
||||
.historical-record {
|
||||
opacity: .68;
|
||||
filter: saturate(.72);
|
||||
}
|
||||
|
||||
.historical-record:hover,
|
||||
.historical-record.active {
|
||||
opacity: 1;
|
||||
filter: none;
|
||||
}
|
||||
|
||||
.archived-record {
|
||||
opacity: .54;
|
||||
filter: grayscale(.18) saturate(.58);
|
||||
}
|
||||
|
||||
.archived-record:hover,
|
||||
.archived-record.active {
|
||||
opacity: .92;
|
||||
}
|
||||
|
||||
.term-policy-note {
|
||||
margin: 0 0 14px;
|
||||
}
|
||||
|
||||
.field-help {
|
||||
margin-left: 10px;
|
||||
color: #8994a1;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.term-mobile-list {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: 720px) {
|
||||
.term-desktop-table {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.term-mobile-list {
|
||||
display: grid;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.term-mobile-list article {
|
||||
border: 1px solid #e5e9ef;
|
||||
border-radius: 12px;
|
||||
background: #fff;
|
||||
padding: 14px;
|
||||
}
|
||||
|
||||
.term-mobile-list article.academic-term-row--historical {
|
||||
color: #73808e;
|
||||
opacity: .78;
|
||||
}
|
||||
|
||||
.term-mobile-list article.academic-term-row--archived {
|
||||
color: #8e98a3;
|
||||
background: #f8fafc;
|
||||
opacity: .66;
|
||||
}
|
||||
|
||||
.term-mobile-list article:focus-within,
|
||||
.term-mobile-list article:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.term-mobile-list header {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.term-mobile-list header span:first-child {
|
||||
color: #258779;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
letter-spacing: .06em;
|
||||
}
|
||||
|
||||
.term-mobile-list h3 {
|
||||
margin: 5px 0 3px;
|
||||
color: inherit;
|
||||
font-size: 15px;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.term-mobile-list p {
|
||||
margin: 0;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.term-history-label {
|
||||
white-space: nowrap;
|
||||
color: #7c8895;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.term-mobile-list footer {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-top: 12px;
|
||||
padding-top: 12px;
|
||||
border-top: 1px solid #edf0f4;
|
||||
}
|
||||
|
||||
.term-mobile-list footer .el-button {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
.el-table th.el-table__cell { color: #596274; background: #fafbfc; font-size: 12px; font-weight: 650; }
|
||||
.el-table .cell { font-size: 12px; }
|
||||
.table-status { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: var(--teal); }
|
||||
|
||||
Reference in New Issue
Block a user