快速筛选优化 增加公告

This commit is contained in:
yml
2026-06-08 22:25:15 +08:00
parent 9b802c1a5c
commit 870ea72996
6 changed files with 720 additions and 32 deletions
@@ -58,6 +58,7 @@ const searchValue = ref('')
const announcements = ref<string[]>(defaultHomeAnnouncements)
const bannerSlides = ref<HomeBannerSlide[]>(defaultHomeBanners)
const supportLoading = ref(false)
const showBackTop = ref(false)
const mobilePageSize = 10
let listingRequestSeq = 0
let searchDebounceTimer: ReturnType<typeof setTimeout> | null = null
@@ -442,10 +443,15 @@ function parseOptionalNumber(value: string) {
}
function handleWindowScroll() {
showBackTop.value = window.scrollY > 520
if (window.innerHeight + window.scrollY < document.documentElement.scrollHeight - 360) return
loadListings(false)
}
function scrollToTop() {
window.scrollTo({ top: 0, behavior: 'smooth' })
}
function isSkinGroupKey(key: string) {
return publishOptions.value.skin_groups.some(group => group.key === key)
}
@@ -523,7 +529,7 @@ function chipTone(label: string) {
/>
<!-- 防骗提示卡片不用 van-notice-bar -->
<div class="fraud-tip">
<RouterLink class="fraud-tip" to="/m/announcements">
<van-icon name="warning-o" :size="16" color="#b8860b" />
<span class="fraud-dot"></span>
<van-swipe
@@ -537,7 +543,8 @@ function chipTone(label: string) {
<span>{{ item }}</span>
</van-swipe-item>
</van-swipe>
</div>
<van-icon class="fraud-more" name="arrow" :size="14" />
</RouterLink>
</section>
<!-- ========== Content 区域 ========== -->
@@ -719,6 +726,16 @@ function chipTone(label: string) {
:range-presets="rangePresets"
/>
<button
v-if="showBackTop"
class="back-top-button"
type="button"
aria-label="回到顶部"
@click="scrollToTop"
>
<van-icon name="arrow-up" :size="20" />
</button>
<MobileBottomNav />
</main>
</template>