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
🚀 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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user