diff --git a/distribution-admin/src/pages/SiteSettings.tsx b/distribution-admin/src/pages/SiteSettings.tsx index efdb296..9a54231 100644 --- a/distribution-admin/src/pages/SiteSettings.tsx +++ b/distribution-admin/src/pages/SiteSettings.tsx @@ -1149,7 +1149,7 @@ export default function SiteSettings() { > - {announcements[0]?.title} + {announcements[0]?.title || announcements[0]?.content} )} diff --git a/frontend/src/features/listings/api/homeConfig.ts b/frontend/src/features/listings/api/homeConfig.ts index a08c724..6050163 100644 --- a/frontend/src/features/listings/api/homeConfig.ts +++ b/frontend/src/features/listings/api/homeConfig.ts @@ -1,5 +1,6 @@ import { apiClient } from '@/shared/api/client' import type { ApiResponse } from '@/shared/types/types' +import { normalizeAnnouncements } from '@/shared/utils/announcements' import { mergeListingPublishOptions, type ListingPublishOptions } from './listingOptions' export interface HomeBannerSlide { @@ -86,10 +87,8 @@ export async function fetchMobileHomeConfig() { } export function mergeHomeConfig(config?: Partial): MobileHomeConfig { - const announcements = - config?.announcements - ?.map(item => (typeof item === 'string' ? item.trim() : '')) - .filter(Boolean) || [] + // 公告可能是纯文本,也可能是 { title, content } 对象(分销站装修口径),统一归一化。 + const announcements = normalizeAnnouncements(config?.announcements) const banners = config?.banners ?.map(item => { diff --git a/frontend/src/features/listings/components/HomeAnnouncement.vue b/frontend/src/features/listings/components/HomeAnnouncement.vue index d03d27d..0d04dd1 100644 --- a/frontend/src/features/listings/components/HomeAnnouncement.vue +++ b/frontend/src/features/listings/components/HomeAnnouncement.vue @@ -1,11 +1,17 @@