@if (eventState$ | async; as state) {
@switch (state.status) {
@case ('loading') {
}
@case ('error') {
Не удалось загрузить мероприятие.
}
@case ('ok') {
{{ state.event.name }}
@switch (activeTabIndex()) {
@case (0) {
Сведения о мероприятии
- ID
- {{ state.event.id }}
- Название
- {{ state.event.name }}
- Описание
- {{ state.event.description ?? '—' }}
- Группа
- {{ state.event.group_id }}
- Дата загрузки
{{ formatDate(state.event.date) }}
}
@case (1) {
Работы мероприятия
@if (worksState$ | async; as ws) {
@switch (ws.status) {
@case ('loading') { }
@case ('error') { Ошибка загрузки.
}
@case ('ok') {
@if (ws.works.length === 0) {
Работ нет.
} @else {
@for (w of ws.works; track w.id) {
-
Работа {{ w.id }}
student={{ w.student_id }}, {{ formatDate(w.time) }}
}
}
}
}
}
}
@case (2) {
Дашборд мероприятия
@if (summaryState$ | async; as ss) {
@switch (ss.status) {
@case ('loading') { }
@case ('error') { Ошибка загрузки дашборда.
}
@case ('ok') {
@if (ss.dashboard.presentation_summary; as m) {
Всего работ{{ m.works_total ?? 0 }}
Проверено{{ m.works_checked ?? 0 }}
Plagiarism rate{{ m.plagiarism_rate ?? '—' }}
Risk{{ m.risk_level ?? '—' }}
} @else {
Метрики недоступны.
}
@if (ss.dashboard.works; as cards) {
@if (cards.length > 0) {
Карточки работ
@for (c of cards; track c.work_id) {
-
Работа {{ c.work_id }}
{{ c.risk_level ?? '—' }}
{{ c.student_name ?? '—' }}, score={{ c.trust_score ?? '—' }}
}
}
}
}
}
}
}
@case (3) {
Редактирование
}
}
}
}
}