@if (workState$ | async; as state) {
@switch (state.status) {
@case ('loading') {
}
@case ('error') {
Не удалось загрузить работу.
}
@case ('ok') {
Работа #{{ workId() }}
@switch (activeTabIndex()) {
@case (0) {
@if (summaryState$ | async; as summaryState) {
@if (summaryState.status === 'ok') {
Сводка
Уровень риска
{{ summaryState.summary.presentation_summary?.risk_level | riskLevel }}
Индекс доверия
{{ summaryState.summary.presentation_summary?.trust_score ?? '—' }}
Доля заимствований
{{ summaryState.summary.presentation_summary?.plagiarism_rate ?? '—' }}
Совпадений
{{ summaryState.summary.presentation_summary?.counterparts_count ?? 0 }}
}
}
}
@case (1) {
Загрузка архива и запуск проверки
@if (isPolling()) {
Опрос статуса запущен...
}
@if (latestRun(); as run) {
Текущий статус: {{ run.status | analysisRunStatus }}
}
}
@case (2) {
Запуски проверки
@if (runsState$ | async; as runsState) {
@switch (runsState.status) {
@case ('loading') {
}
@case ('error') {}
@case ('ok') {
@if (runsState.runs.length === 0) {
Проверки пока не запускались.
} @else {
| ID |
Статус |
Обновлено |
Длительность |
|
@for (run of runsState.runs; track run.id) {
| #{{ run.id }} |
{{ run.status | analysisRunStatus }} |
{{ formatDateTime(run.updated_at) }} |
{{ getRunDuration(run) || '—' }} |
@if (run.status === 'Failed' || run.status === 'Completed') {
}
|
}
}
}
}
}
Совпадения выбранного запуска
@if (adoptionsState$ | async; as adoptState) {
@switch (adoptState.status) {
@case ('idle') {
Выберите run.
}
@case ('loading') {
}
@case ('error') {}
@case ('ok') {
Всего совпадений: {{ adoptState.adoptions.length }}
@if (adoptState.adoptions.length > 0) {
@for (adoption of adoptState.adoptions; track adoption.id) {
- ID
- {{ adoption.id }}
- Путь
{{ adoption.path ?? '—' }}
- Схожесть
- {{ adoption.similarity_score ?? '—' }}
@if (adoption.segment_excerpt) {
{{ adoption.segment_excerpt }}
}
}
}
}
}
}
}
@case (3) {
@if (summaryState$ | async; as ss) {
@if (ss.status === 'ok') {
} @else if (ss.status === 'loading') {
}
}
}
@case (4) {
}
}
}
}
}