From e99385c512f56191f0fec323b9c01d2b45936ac8 Mon Sep 17 00:00:00 2001 From: alger Date: Fri, 20 Jun 2025 23:17:16 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E6=B7=BB=E5=8A=A0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=E6=AF=94=E8=BE=83=E5=87=BD=E6=95=B0=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9B=B4=E6=96=B0=E6=A3=80=E6=9F=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/utils/update.ts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/renderer/utils/update.ts b/src/renderer/utils/update.ts index 1292244..43ae0b9 100644 --- a/src/renderer/utils/update.ts +++ b/src/renderer/utils/update.ts @@ -183,6 +183,27 @@ export const formatDate = (dateStr: string): string => { return useDateFormat(new Date(dateStr), 'YYYY-MM-DD HH:mm').value; }; +/** + * 比较两个版本号 + * @param v1 版本号1 + * @param v2 版本号2 + * @returns 如果v1大于v2返回1,如果v1小于v2返回-1,如果相等返回0 + */ +export const compareVersions = (v1: string, v2: string): number => { + const v1Parts = v1.split('.').map(Number); + const v2Parts = v2.split('.').map(Number); + + for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) { + const v1Part = v1Parts[i] || 0; + const v2Part = v2Parts[i] || 0; + + if (v1Part > v2Part) return 1; + if (v1Part < v2Part) return -1; + } + + return 0; +}; + /** * 检查更新 */ @@ -197,7 +218,8 @@ export const checkUpdate = async ( } const latestVersion = releaseInfo.tag_name.replace('v', ''); - if (latestVersion === currentVersion) { + // 比较版本号,只有当新版本大于当前版本时才返回更新信息 + if (compareVersions(latestVersion, currentVersion) <= 0) { return null; } console.log('latestVersion', latestVersion);