From 2cb8f16ccc5d0825779856f9d875cb8d7ee6cc9d Mon Sep 17 00:00:00 2001 From: Timi Date: Thu, 11 Dec 2025 00:27:58 +0800 Subject: [PATCH] fix preview overflow --- .../components/journal-detail-panel/index.ts | 31 ++++++++++++------- .../journal-detail-panel/index.wxml | 4 +-- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/miniprogram/components/journal-detail-panel/index.ts b/miniprogram/components/journal-detail-panel/index.ts index eefb080..4ecea9a 100644 --- a/miniprogram/components/journal-detail-panel/index.ts +++ b/miniprogram/components/journal-detail-panel/index.ts @@ -96,21 +96,28 @@ Component({ /** 预览媒体 */ previewMedia(e: WechatMiniprogram.BaseEvent) { - const { mediaIndex } = e.currentTarget.dataset; const journals = this.properties.journals as JournalInfo[]; - if (!journals || journals.length === 0) return; - - // 使用当前 swiper 的索引 - const journal = journals[this.data.currentJournalIndex]; - const sources = journal.items.map((item: any) => ({ - url: item.sourceURL, - type: item.type === 0 ? "image" : "video" - })); + if (!journals || journals.length === 0) { + return; + } + const { itemIndex } = e.currentTarget.dataset; + const items = journals[this.data.currentJournalIndex].items; + const total = items.length; + + const startIndex = Math.max(0, itemIndex - 25); + const endIndex = Math.min(total, startIndex + 50); + const newCurrentIndex = itemIndex - startIndex; + const sources = items.slice(startIndex, endIndex).map((item) => { + return { + url: item.sourceURL, + type: item.type === 0 ? "image" : "video" + } + }) as any; wx.previewMedia({ - current: mediaIndex, - sources: sources as WechatMiniprogram.MediaSource[] - }); + current: newCurrentIndex, + sources + }) } } }); diff --git a/miniprogram/components/journal-detail-panel/index.wxml b/miniprogram/components/journal-detail-panel/index.wxml index 7e64eec..7d6d85d 100644 --- a/miniprogram/components/journal-detail-panel/index.wxml +++ b/miniprogram/components/journal-detail-panel/index.wxml @@ -41,13 +41,13 @@ - +