成绩、学业分析

This commit is contained in:
biss committed 2026-08-10 10:36:37 +08:00
1 parent 104d63ace3
commit 20faea492b
2 files changed
+19

No files matched your search

+10
View File
@@ -102,6 +102,7 @@ const exams = ref<ExamItem[]>([])
const grades = ref<GradeItem[]>([])
const dashboardGreeting = ref<DashboardGreeting | null>(null)
const warnings = ref<WarningItem[]>([])
const graduation = ref<any>(null)
const now = ref(new Date())
const categoryLabels: Record<string, string> = {
@@ -311,6 +312,7 @@ async function loadOverview() {
http.get('/grades/student/transcript'),
http.get<DashboardGreeting>('/dashboard/greeting'),
http.get<WarningItem[]>('/warnings/my-warnings'),
http.get('/student/academic-planning'),
])
if (results[0].status === 'fulfilled') {
@@ -342,6 +344,7 @@ async function loadOverview() {
} else {
failedSections.value.push('学业风险雷达')
}
if (results[6].status === 'fulfilled') graduation.value = results[6].value.data
loading.value = false
}
@@ -391,6 +394,11 @@ onMounted(loadOverview)
</div>
</section>
<section v-if="graduation?.baseline" class="graduation-nav">
<div><span class="panel-kicker">GRADUATION NAVIGATION</span><h3>毕业导航</h3><p>已完成 {{ graduation.baseline.planCompletedCredits ?? 0 }} 学分,距离培养方案要求还差 {{ graduation.baseline.creditGap ?? 0 }} 学分。</p></div>
<button type="button" @click="router.push('/academic-planning')">查看毕业航线 <el-icon><ArrowRight /></el-icon></button>
</section>
<el-alert
v-if="failedSections.length"
type="warning"
@@ -648,6 +656,7 @@ onMounted(loadOverview)
border: 1px solid #dce6eb;
background: #fbfdfd;
}
.graduation-nav{padding:19px 22px;display:flex;justify-content:space-between;align-items:center;gap:18px;border:1px solid #dce6eb;background:#f7faf9}.graduation-nav h3{margin:7px 0;color:var(--ink);font-size:17px}.graduation-nav p{margin:0;color:#59677a;font-size:12px;line-height:1.6}.graduation-nav button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--indigo);font-size:12px;white-space:nowrap}
.student-risk-radar.attention { border-left: 3px solid #c4812a; background: #fffcf6; }
.student-risk-radar header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
@@ -1002,6 +1011,7 @@ onMounted(loadOverview)
@media (max-width: 600px) {
.student-greeting-insights { padding: 15px 18px; grid-template-columns: 1fr; }
.student-risk-radar { padding: 18px; }
.graduation-nav{padding:18px;align-items:flex-start;flex-direction:column}
.risk-list button { grid-template-columns: 1fr auto; }
.risk-list span { grid-column: 1 / -1; }
.student-overview {