feat(distribution): 分站首页改为联名标题并同步手机轮播

首页主标题显示为站名×大锤商行,手机端使用与电脑端相同的分站自定义海报。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
yml2213
2026-10-05 14:46:28 +08:00
co-authored by Cursor
parent 1d21b3f548
commit 4f69657017
5 changed files with 96 additions and 28 deletions
@@ -60,7 +60,7 @@ import {
getListingResources,
} from '@/shared/utils/listingDisplay'
import { buildMobileHomeListSignature, useMobileHomeCacheStore } from '@/stores/mobileHomeCache'
import { useDistributionSiteStore } from '@/stores/distributionSite'
import { mapDistributionHomeBanners, useDistributionSiteStore } from '@/stores/distributionSite'
import { useSessionStore } from '@/stores/session'
const router = useRouter()
@@ -97,6 +97,12 @@ const displayAnnouncements = computed(() => {
return announcements.value
})
const bannerSlides = ref<HomeBannerSlide[]>(defaultHomeBanners)
const displayBanners = computed<HomeBannerSlide[]>(() => {
if (siteStore.isDistribution && siteStore.banners.length > 0) {
return mapDistributionHomeBanners(siteStore.banners, siteStore.siteName)
}
return bannerSlides.value
})
const awRecycle = ref<AWRecycleConfig>({ ...defaultAWRecycleConfig })
const awRecyclePreviewVisible = ref(false)
const cooperationFeedback = ref<CooperationFeedbackConfig>({ ...defaultCooperationFeedbackConfig })
@@ -507,7 +513,7 @@ function openCooperationFeedback() {
function openBannerPreview(slide: HomeBannerSlide) {
const url = slide.image_url?.trim()
if (!url) return
const images = bannerSlides.value
const images = displayBanners.value
.map(item => item.image_url?.trim() || '')
.filter((item): item is string => Boolean(item))
const startPosition = images.indexOf(url)
@@ -903,14 +909,14 @@ if (!restoreHomeConfigFromCache()) {
<div v-if="siteStore.isDistribution" class="mobile-dist-card">
<div class="dist-card-top">
<span class="dist-card-badge">{{ siteStore.storefrontText.hero_badge }}</span>
<strong class="dist-card-name">{{ siteStore.siteName }}</strong>
<strong class="dist-card-name">{{ siteStore.coBrandName }}</strong>
</div>
<p class="dist-card-sub">{{ siteStore.storefrontText.card_sub }}</p>
</div>
<!-- Banner 轮播 -->
<van-swipe class="banner-swipe" :autoplay="3600" lazy-render>
<van-swipe-item v-for="slide in bannerSlides" :key="slide.title || slide.image_url">
<van-swipe-item v-for="slide in displayBanners" :key="slide.image_url || slide.title">
<div
class="mobile-banner"
:class="[