修复更新日志弹窗显示

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',
searchSetting: 'searchSetting',
lastLastStartInfo: 'lastLastStartInfo',
lastStartInfo: 'lastStartInfo',
} as const
export const DEFAULT_SETTING = {

View File

@ -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) {
const history = [{ version: versionInfo.newVersion.version, desc: versionInfo.newVersion.desc }, ...versionInfo.newVersion.history]
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 (lastStartVer && compareVer(lastStartVer, ver.version) < 0) info.history.push(ver)
if (compareVer(lastStartVer, ver.version) < 0) info.history.push(ver)
}
}
if (!info.version) {
if (currentVer == versionInfo.newVersion.version) {
info.version = versionInfo.newVersion.version
info.desc = versionInfo.newVersion.desc
} 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,6 +46,7 @@ export default () => {
void getLastStartInfo().then((version) => {
if (version == process.versions.app) return
saveLastStartInfo(process.versions.app)
if (version) {
if (compareVer(process.versions.app, version) < 0) {
void dialog({
message: window.i18n.t('update__downgrade_tip', { ver: `${version}${process.versions.app}` }),
@ -53,7 +54,13 @@ export default () => {
})
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
})
}

View File

@ -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<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) => {