From ba3b2f613ae66a783586d091819408b797d24ab3 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Wed, 1 Feb 2023 12:50:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9B=B4=E6=96=B0=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=BC=B9=E7=AA=97=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/constants.ts | 2 +- .../components/layout/ChangeLogModal.vue | 34 +++++++++++-------- src/renderer/core/useApp/useUpdate.ts | 23 ++++++++----- src/renderer/utils/ipc.ts | 6 ++-- 4 files changed, 39 insertions(+), 26 deletions(-) diff --git a/src/common/constants.ts b/src/common/constants.ts index bdc4fc47..3607dbc1 100644 --- a/src/common/constants.ts +++ b/src/common/constants.ts @@ -39,7 +39,7 @@ export const DATA_KEYS = { songListSetting: 'songListSetting', searchSetting: 'searchSetting', - lastLastStartInfo: 'lastLastStartInfo', + lastStartInfo: 'lastStartInfo', } as const export const DEFAULT_SETTING = { diff --git a/src/renderer/components/layout/ChangeLogModal.vue b/src/renderer/components/layout/ChangeLogModal.vue index f712ca54..4a49ff5c 100644 --- a/src/renderer/components/layout/ChangeLogModal.vue +++ b/src/renderer/components/layout/ChangeLogModal.vue @@ -46,21 +46,27 @@ export default { if (!versionInfo.newVersion || !versionInfo.newVersion?.history) return info info.isLatest = compareVer(currentVer, versionInfo.newVersion.version) >= 0 - for (const ver of versionInfo.newVersion.history) { - switch (compareVer(ver.version, currentVer)) { - case 0: - info.version = ver.version - info.desc = ver.desc - break - case -1: - if (lastStartVer && compareVer(lastStartVer, ver.version) < 0) info.history.push(ver) - } - } + const history = [{ version: versionInfo.newVersion.version, desc: versionInfo.newVersion.desc }, ...versionInfo.newVersion.history] - if (!info.version) { - if (currentVer == versionInfo.newVersion.version) { - info.version = versionInfo.newVersion.version - info.desc = versionInfo.newVersion.desc + if (lastStartVer) { + for (const ver of history) { + switch (compareVer(ver.version, currentVer)) { + case 0: + info.version = ver.version + info.desc = ver.desc + break + case -1: + if (compareVer(lastStartVer, ver.version) < 0) info.history.push(ver) + } + } + } else { + const verInfo = history.find(v => v.version == currentVer) + if (verInfo) { + info.version = verInfo.version + info.desc = verInfo.desc + } else { + info.desc = '未找到当前版本的更新日志' + info.version = currentVer } } diff --git a/src/renderer/core/useApp/useUpdate.ts b/src/renderer/core/useApp/useUpdate.ts index 0401ec66..3df0168e 100644 --- a/src/renderer/core/useApp/useUpdate.ts +++ b/src/renderer/core/useApp/useUpdate.ts @@ -46,14 +46,21 @@ export default () => { void getLastStartInfo().then((version) => { if (version == process.versions.app) return saveLastStartInfo(process.versions.app) - if (compareVer(process.versions.app, version) < 0) { - void dialog({ - message: window.i18n.t('update__downgrade_tip', { ver: `${version} → ${process.versions.app}` }), - confirmButtonText: window.i18n.t('update__ignore_confirm_tip_confirm'), - }) - return - } - if (compareVer(process.versions.app, versionInfo.newVersion!.version) > 0) return + if (version) { + if (compareVer(process.versions.app, version) < 0) { + void dialog({ + message: window.i18n.t('update__downgrade_tip', { ver: `${version} → ${process.versions.app}` }), + confirmButtonText: window.i18n.t('update__ignore_confirm_tip_confirm'), + }) + return + } + + if (compareVer(version, versionInfo.newVersion!.version) >= 0) return + } else if ( + // 如果当前版本不在已发布的版本中,则不需要显示更新日志 + ![{ version: versionInfo.newVersion!.version, desc: '' }, ...(versionInfo.newVersion!.history ?? [])] + .some(i => i.version == process.versions.app) + ) return isShowChangeLog.value = true }) } diff --git a/src/renderer/utils/ipc.ts b/src/renderer/utils/ipc.ts index 7d944f18..c66e455e 100644 --- a/src/renderer/utils/ipc.ts +++ b/src/renderer/utils/ipc.ts @@ -1,6 +1,6 @@ import { rendererSend, rendererInvoke, rendererOn, rendererOff } from '@common/rendererIpc' import { HOTKEY_RENDERER_EVENT_NAME, WIN_MAIN_RENDERER_EVENT_NAME, CMMON_EVENT_NAME } from '@common/ipcNames' -import { ProgressInfo, UpdateDownloadedEvent, UpdateInfo } from 'electron-updater' +import { type ProgressInfo, type UpdateDownloadedEvent, type UpdateInfo } from 'electron-updater' import { markRaw } from '@common/utils/vueTools' import * as hotKeys from '@common/hotKey' import { APP_EVENT_NAMES, DATA_KEYS, DEFAULT_SETTING } from '@common/constants' @@ -172,13 +172,13 @@ export const setTaskBarProgress = (progress: number, mode?: Electron.ProgressBar export const saveLastStartInfo = (version: string) => { rendererSend(WIN_MAIN_RENDERER_EVENT_NAME.save_data, { - path: DATA_KEYS.lastLastStartInfo, + path: DATA_KEYS.lastStartInfo, data: version, }) } // 获取最后一次启动时的版本号 export const getLastStartInfo = async() => { - return rendererInvoke(WIN_MAIN_RENDERER_EVENT_NAME.get_data, DATA_KEYS.lastLastStartInfo) + return rendererInvoke(WIN_MAIN_RENDERER_EVENT_NAME.get_data, DATA_KEYS.lastStartInfo) } export const savePlayInfo = (playInfo: LX.Player.SavedPlayInfo) => {