From bbb4550f106b2c8a7285f7e0d76cef6816c4b31d Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 11 Aug 2023 18:38:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B6=88=E6=81=AF=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=BF=87=E5=A4=A7=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/components/PreviewImage/state.vue | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/resources/assets/js/components/PreviewImage/state.vue b/resources/assets/js/components/PreviewImage/state.vue index b61b03401..147f09ef2 100644 --- a/resources/assets/js/components/PreviewImage/state.vue +++ b/resources/assets/js/components/PreviewImage/state.vue @@ -32,13 +32,31 @@ export default { previewImageList(l) { if (l.length > 0) { if ($A.isEEUiApp) { - const position = Math.min(Math.max(this.$store.state.previewImageIndex, 0), this.$store.state.previewImageList.length - 1) - const paths = l.map(item => { + let position = Math.min(Math.max(this.$store.state.previewImageIndex, 0), this.$store.state.previewImageList.length - 1) + let paths = l.map(item => { if ($A.isJson(item)) { return $A.thumbRestore(item.src); } return $A.thumbRestore(item) }) + let max = 50; + if (paths.length > max) { + const newPaths = []; + let i = 0; + while (newPaths.length < max && i < max) { + let front = position - i; + let behind = position + i + 1; + if (front >= 0) { + newPaths.unshift(paths[front]); + } + if (behind < paths.length) { + newPaths.push(paths[behind]); + } + i++; + } + position = newPaths.findIndex(item => item === paths[position]); + paths = newPaths; + } $A.eeuiAppSendMessage({ action: 'picturePreview', position,