fix: небольшие фиксы фронта
This commit is contained in:
@@ -7,12 +7,6 @@ import StatusBadge from '@/components/ui/StatusBadge.vue'
|
||||
import { lecturesApi, reviewsApi, syncApi, usersApi } from '@/api'
|
||||
import type { LectureDto, ReviewDto, SyncStatusDto, UserDto } from '@/api/types'
|
||||
|
||||
const disciplines = [
|
||||
{ name: 'Информатика и ИИ', value: 80 },
|
||||
{ name: 'Экономика и маркетинг', value: 55 },
|
||||
{ name: 'Философия и этика', value: 42 },
|
||||
{ name: 'Право и политика', value: 36 },
|
||||
]
|
||||
const users = ref<UserDto[]>([])
|
||||
const lectures = ref<LectureDto[]>([])
|
||||
const reviews = ref<ReviewDto[]>([])
|
||||
@@ -50,34 +44,6 @@ onMounted(async () => {
|
||||
<StatsWidget label="Отзывов в LLM" :value="reviews.length" icon="message-circle" color="purple" />
|
||||
</div>
|
||||
|
||||
<div class="grid">
|
||||
<GlassCard>
|
||||
<div class="section-title">Популярные дисциплины</div>
|
||||
<div class="bars">
|
||||
<div class="bar-row" v-for="d in disciplines" :key="d.name">
|
||||
<span>{{ d.name }}</span>
|
||||
<div class="bar">
|
||||
<div class="bar-fill" :style="{ width: `${d.value}%` }"></div>
|
||||
</div>
|
||||
<span class="percent">{{ d.value }}%</span>
|
||||
</div>
|
||||
</div>
|
||||
</GlassCard>
|
||||
|
||||
<GlassCard>
|
||||
<div class="section-title">Межфакультетская вовлеченность</div>
|
||||
<div class="metric">46% студентов посещают лекции вне своего института</div>
|
||||
<ProgressBar :value="46" :max="100" />
|
||||
<div class="section-title">Активность студентов</div>
|
||||
<div class="activity">
|
||||
<div class="day" v-for="n in 7" :key="n">
|
||||
<div class="day-bar" :style="{ height: `${40 + n * 6}px` }"></div>
|
||||
<span>Д{{ n }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</GlassCard>
|
||||
</div>
|
||||
|
||||
<div class="grid">
|
||||
<GlassCard>
|
||||
<div class="section-title">Состояние синхронизации расписания</div>
|
||||
@@ -99,15 +65,6 @@ onMounted(async () => {
|
||||
.admin-dashboard { display: flex; flex-direction: column; gap: 18px; }
|
||||
.stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
|
||||
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; }
|
||||
.bars { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
|
||||
.bar-row { display: grid; grid-template-columns: 1fr 2fr auto; align-items: center; gap: 8px; font-size: 13px; }
|
||||
.bar { background: var(--color-black-a08); border-radius: 6px; height: 8px; overflow: hidden; }
|
||||
.bar-fill { background: var(--gradient-progress-success); height: 100%; }
|
||||
.percent { color: var(--color-text-secondary); font-size: 12px; }
|
||||
.metric { margin-bottom: 10px; color: var(--color-text-secondary); }
|
||||
.activity { display: flex; gap: 10px; margin-top: 12px; align-items: flex-end; }
|
||||
.day { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 11px; color: var(--color-text-secondary); }
|
||||
.day-bar { width: 16px; background: var(--gradient-bar-neutral-vertical); border-radius: 6px 6px 0 0; }
|
||||
.sync-meta { font-size: 12px; color: var(--color-text-secondary); margin-top: 6px; }
|
||||
.sync-error { font-size: 12px; color: var(--color-error); margin-top: 8px; }
|
||||
.queue-meta { font-size: 12px; color: var(--color-text-secondary); margin-bottom: 8px; }
|
||||
|
||||
Reference in New Issue
Block a user