From ffa979ddc8e7ebccdd6a8cdd9c9a8cd2bcedd1b8 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 9 Aug 2025 18:02:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BE=9D=E8=B5=96=E7=89=88?= =?UTF-8?q?=E6=9C=AC=EF=BC=8C=E4=BC=98=E5=8C=96=E7=BB=84=E4=BB=B6=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 6 ++--- .../components/base/VirtualizedList.vue | 22 +++++++++++++++---- .../Setting/components/PlayTimeoutModal.vue | 4 ++-- .../Setting/components/SettingDownload.vue | 4 ++++ .../views/Setting/components/UserApiModal.vue | 10 ++++----- 5 files changed, 31 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2a75b637..f0890fa1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16752,9 +16752,9 @@ } }, "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", "dev": true, "license": "MIT", "engines": { diff --git a/src/renderer/components/base/VirtualizedList.vue b/src/renderer/components/base/VirtualizedList.vue index ee8b627d..964ecab0 100644 --- a/src/renderer/components/base/VirtualizedList.vue +++ b/src/renderer/components/base/VirtualizedList.vue @@ -270,9 +270,15 @@ export default { cachedList = Array(list.length) startIndex = -1 endIndex = -1 - void nextTick(() => { - updateView() - }) + if (cachedList.length) { + void nextTick(() => { + requestAnimationFrame(() => { + updateView() + }) + }) + } else { + views.value = [] + } } watch(() => props.itemHeight, () => { handleReset(props.list) @@ -289,7 +295,15 @@ export default { cachedList = Array(props.list.length) startIndex = -1 endIndex = -1 - updateView() + + if (props.list.length) { + void nextTick(() => { + requestAnimationFrame(() => { + console.log('updateView') + updateView() + }) + }) + } window.addEventListener('resize', handleResize) }) onBeforeUnmount(() => { diff --git a/src/renderer/views/Setting/components/PlayTimeoutModal.vue b/src/renderer/views/Setting/components/PlayTimeoutModal.vue index 7c89a25d..c221aa19 100644 --- a/src/renderer/views/Setting/components/PlayTimeoutModal.vue +++ b/src/renderer/views/Setting/components/PlayTimeoutModal.vue @@ -11,8 +11,8 @@ material-modal(:show="modelValue" teleport="#view" @close="handleCloseModal" @af div(:class="[$style.row, $style.tip, { [$style.show]: !!timeLabel }]") p {{ $t('play_timeout_tip', { time: timeLabel }) }} div(:class="$style.footer") - base-btn(:class="$style.footerBtn" @click="handleCancel") {{ $t(timeLabel ? 'play_timeout_stop' : 'play_timeout_close') }} - base-btn(:class="$style.footerBtn" @click="handleConfirm") {{ $t(timeLabel ? 'play_timeout_update' : 'play_timeout_confirm') }} + base-btn(:class="$style.footerBtn" @click="handleCancel") {{ $t(timeLabel ? 'play_timeout_stop' : 'play_timeout_close') }} + base-btn(:class="$style.footerBtn" @click="handleConfirm") {{ $t(timeLabel ? 'play_timeout_update' : 'play_timeout_confirm') }}