fix: 公告优化

This commit is contained in:
Gsh
2025-11-16 22:39:42 +08:00
parent f875617de1
commit 3c5e575e9b
4 changed files with 38 additions and 66 deletions

View File

@@ -1,67 +1,8 @@
<script setup lang="ts">
import type { AnnouncementLogDto } from '@/api';
import { getSystemAnnouncements } from '@/api';
import SystemAnnouncementDialog from '@/components/SystemAnnouncementDialog/index.vue';
import { useAnnouncementStore } from '@/stores';
const announcementStore = useAnnouncementStore();
// 模拟数据(当后端接口未就绪时使用)
const mockData: AnnouncementLogDto[] = [
{
title: 'v2.3.0',
content: [
'重大更新',
'1优化整体',
'2: 还有谁',
],
imageUrl: 'https://ccnetcore.com/prod-api/wwwroot/logo.png',
startTime: '2025-11-10 14:58:58',
endTime: null,
type: 'System',
},
{
title: 'KFC翻牌活动',
content: [
'666',
'777',
'2: 还有谁',
],
imageUrl: 'https://ccnetcore.com/prod-api/wwwroot/logo.png',
startTime: '2025-11-10 14:58:58',
endTime: '2025-11-15 14:59:49',
type: 'Activity',
},
];
// 应用加载时检查是否需要显示公告弹窗
onMounted(async () => {
console.log('announcementStore.shouldShowDialog--', announcementStore.shouldShowDialog);
// 检查是否应该显示弹窗
if (announcementStore.shouldShowDialog) {
try {
// 获取公告数据
const res = await getSystemAnnouncements();
if (res && res.data && Array.isArray(res.data) && res.data.length > 0) {
announcementStore.setAnnouncementData(res.data);
// 显示弹窗
announcementStore.openDialog();
}
}
catch (error) {
console.error('获取系统公告失败,使用模拟数据:', error);
// 使用模拟数据作为降级方案
announcementStore.setAnnouncementData(mockData);
announcementStore.openDialog();
}
}
});
</script>
<template>
<router-view />
<!-- 系统公告弹窗 -->
<SystemAnnouncementDialog />
</template>
<style scoped lang="scss"></style>