feat: добавил svg иконки
🚀 Create and publish a Docker image / Detect changes in backend and frontend (push) Successful in 8s
🚀 Create and publish a Docker image / Build & publish backend image (push) Successful in 12s
🚀 Create and publish a Docker image / Build & publish frontend image (push) Successful in 25s
🚀 Create and publish a Docker image / Update stack on Portainer (push) Successful in 6s

This commit is contained in:
2026-05-11 14:43:14 +03:00
parent a0a0575a99
commit 3b0bbfc858
53 changed files with 1162 additions and 88 deletions
+25 -6
View File
@@ -1,6 +1,7 @@
<script setup lang="ts">
import type { Lecture } from '@/types'
import { useRouter } from 'vue-router'
import AppIcon from '@/components/ui/AppIcon.vue'
const props = defineProps<{
lecture: Lecture
@@ -28,7 +29,8 @@ function goDetail() {
<div class="lecture-card" @click="goDetail">
<div class="card-header">
<span class="badge" :class="lecture.format === 'online' ? 'badge-blue' : 'badge-green'">
{{ lecture.format === 'online' ? '🌐 Онлайн' : '📍 Офлайн' }}
<AppIcon class="badge-icon" :icon="lecture.format === 'online' ? 'world' : 'map-pin'" :size="14" />
{{ lecture.format === 'online' ? 'Онлайн' : 'Офлайн' }}
</span>
<span
class="seats"
@@ -47,16 +49,28 @@ function goDetail() {
<h3 class="card-title">{{ lecture.title }}</h3>
<div class="card-teacher">
<span>👤</span>
<AppIcon class="teacher-icon" icon="user" :size="16" />
<span>{{ lecture.teacher }}</span>
<span class="text-secondary">· {{ lecture.institute }}</span>
</div>
<div class="card-meta">
<span>📅 {{ formatDate(lecture.date) }}</span>
<span> {{ lecture.time }}</span>
<span v-if="lecture.room">🏛 {{ lecture.building }}, ауд. {{ lecture.room }}</span>
<span v-else>🏛 {{ lecture.building }}</span>
<span class="meta-item">
<AppIcon class="meta-icon" icon="calendar" :size="14" />
{{ formatDate(lecture.date) }}
</span>
<span class="meta-item">
<AppIcon class="meta-icon" icon="clock" :size="14" />
{{ lecture.time }}
</span>
<span v-if="lecture.room" class="meta-item">
<AppIcon class="meta-icon" icon="building" :size="14" />
{{ lecture.building }}, ауд. {{ lecture.room }}
</span>
<span v-else class="meta-item">
<AppIcon class="meta-icon" icon="building" :size="14" />
{{ lecture.building }}
</span>
</div>
<div class="card-tags">
@@ -117,6 +131,8 @@ function goDetail() {
justify-content: space-between;
gap: 8px;
}
.badge { display: inline-flex; align-items: center; gap: 4px; }
.badge-icon { color: currentColor; }
.seats {
font-size: 12px;
font-weight: 600;
@@ -141,6 +157,7 @@ function goDetail() {
font-size: 13px;
color: var(--color-text-secondary);
}
.teacher-icon { color: var(--color-text-secondary); }
.card-meta {
display: flex;
flex-wrap: wrap;
@@ -148,6 +165,8 @@ function goDetail() {
font-size: 12px;
color: var(--color-text-secondary);
}
.meta-item { display: inline-flex; align-items: center; gap: 4px; }
.meta-icon { color: var(--color-text-secondary); }
.card-tags {
display: flex;
flex-wrap: wrap;