修复更新日志弹窗显示

pull/1168/head
lyswhut 2023-02-01 12:50:38 +08:00
parent 165832e703
commit ba3b2f613a
4 changed files with 39 additions and 26 deletions

View File

@ -39,7 +39,7 @@ export const DATA_KEYS = {
songListSetting: 'songListSetting', songListSetting: 'songListSetting',
searchSetting: 'searchSetting', searchSetting: 'searchSetting',
lastLastStartInfo: 'lastLastStartInfo', lastStartInfo: 'lastStartInfo',
} as const } as const
export const DEFAULT_SETTING = { export const DEFAULT_SETTING = {

View File

@ -46,21 +46,27 @@ export default {
if (!versionInfo.newVersion || !versionInfo.newVersion?.history) return info if (!versionInfo.newVersion || !versionInfo.newVersion?.history) return info
info.isLatest = compareVer(currentVer, versionInfo.newVersion.version) >= 0 info.isLatest = compareVer(currentVer, versionInfo.newVersion.version) >= 0
for (const ver of versionInfo.newVersion.history) { const history = [{ version: versionInfo.newVersion.version, desc: versionInfo.newVersion.desc }, ...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)
}
}
if (!info.version) { if (lastStartVer) {
if (currentVer == versionInfo.newVersion.version) { for (const ver of history) {
info.version = versionInfo.newVersion.version switch (compareVer(ver.version, currentVer)) {
info.desc = versionInfo.newVersion.desc 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
} }
} }

View File

@ -46,14 +46,21 @@ export default () => {
void getLastStartInfo().then((version) => { void getLastStartInfo().then((version) => {
if (version == process.versions.app) return if (version == process.versions.app) return
saveLastStartInfo(process.versions.app) saveLastStartInfo(process.versions.app)
if (compareVer(process.versions.app, version) < 0) { if (version) {
void dialog({ if (compareVer(process.versions.app, version) < 0) {
message: window.i18n.t('update__downgrade_tip', { ver: `${version}${process.versions.app}` }), void dialog({
confirmButtonText: window.i18n.t('update__ignore_confirm_tip_confirm'), message: window.i18n.t('update__downgrade_tip', { ver: `${version}${process.versions.app}` }),
}) confirmButtonText: window.i18n.t('update__ignore_confirm_tip_confirm'),
return })
} return
if (compareVer(process.versions.app, versionInfo.newVersion!.version) > 0) 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 isShowChangeLog.value = true
}) })
} }

View File

@ -1,6 +1,6 @@
import { rendererSend, rendererInvoke, rendererOn, rendererOff } from '@common/rendererIpc' 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 { 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 { markRaw } from '@common/utils/vueTools'
import * as hotKeys from '@common/hotKey' import * as hotKeys from '@common/hotKey'
import { APP_EVENT_NAMES, DATA_KEYS, DEFAULT_SETTING } from '@common/constants' 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) => { export const saveLastStartInfo = (version: string) => {
rendererSend(WIN_MAIN_RENDERER_EVENT_NAME.save_data, { rendererSend(WIN_MAIN_RENDERER_EVENT_NAME.save_data, {
path: DATA_KEYS.lastLastStartInfo, path: DATA_KEYS.lastStartInfo,
data: version, data: version,
}) })
} }
// 获取最后一次启动时的版本号 // 获取最后一次启动时的版本号
export const getLastStartInfo = async() => { export const getLastStartInfo = async() => {
return rendererInvoke<string, string>(WIN_MAIN_RENDERER_EVENT_NAME.get_data, DATA_KEYS.lastLastStartInfo) return rendererInvoke<string, string | null>(WIN_MAIN_RENDERER_EVENT_NAME.get_data, DATA_KEYS.lastStartInfo)
} }
export const savePlayInfo = (playInfo: LX.Player.SavedPlayInfo) => { export const savePlayInfo = (playInfo: LX.Player.SavedPlayInfo) => {