feat: 公告開關

This commit is contained in:
skytek_xinliang
2026-05-22 10:30:04 +08:00
parent 8cf5aacf21
commit 8378c44ad7
3 changed files with 55 additions and 47 deletions
+9 -1
View File
@@ -18,6 +18,7 @@
<LoginBrand :title="props.branding.title" />
</div>
<v-sheet
v-if="props.withAnnouncement"
class="board-wrapper pa-2 pa-lg-0"
color="rgba(var(--v-theme-surface), 0.8)"
elevation="0"
@@ -195,7 +196,11 @@
</v-card>
</v-row>
<v-bottom-sheet v-model="mobileAnnouncementSheetVisible" class="d-sm-none">
<v-bottom-sheet
v-if="props.withAnnouncement"
v-model="mobileAnnouncementSheetVisible"
class="d-sm-none"
>
<v-card rounded="t-xl">
<v-card-title class="text-subtitle-1 font-weight-bold">
{{ props.mobileAnnouncement.listTitle }}
@@ -330,6 +335,7 @@ interface ToolBarConfig {
interface Props {
layout: 'side-left' | 'side-right' | 'card'
withAnnouncement?: boolean
branding: BrandingConfig
illustration: IllustrationConfig
announcementBoard: AnnouncementBoardConfig
@@ -341,6 +347,7 @@ interface Props {
const props = withDefaults(defineProps<Props>(), {
layout: 'side-left',
withAnnouncement: true,
branding: () => ({
title: 'Skyteck Login',
organization: 'school',
@@ -430,6 +437,7 @@ const mobileAnnouncementSheetVisible = ref(false)
const mobileAnnouncementItems = computed(() => props.mobileAnnouncement.items ?? [])
const showMobileAnnouncementBanner = computed(() => {
if (!props.withAnnouncement) return false
if (props.mobileAnnouncement.show === false) return false
return mobileAnnouncementItems.value.length > 0
})