From 3bc3b87ecce976014bc5d7203a5c7f4d18843315 Mon Sep 17 00:00:00 2001 From: AkiChase <1003019131@qq.com> Date: Tue, 14 May 2024 10:14:27 +0800 Subject: [PATCH] fix(update): compare version --- src/components/Mask.vue | 23 +++++++++++++++++++++-- src/i18n/en-US.json | 2 +- src/i18n/zh-CN.json | 2 +- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/components/Mask.vue b/src/components/Mask.vue index 4fab8a1..639ed5c 100644 --- a/src/components/Mask.vue +++ b/src/components/Mask.vue @@ -227,6 +227,23 @@ function renderUpdateInfo(content: string) { return h("div", { style: "margin: 20px 0" }, pList); } +function compareVersion(v1: string, v2: string) { + const [x1, y1, z1] = v1.split("."); + const [x2, y2, z2] = v2.split("."); + + if (x1 !== x2) { + return parseInt(x1) > parseInt(x2) ? 1 : -1; + } + if (y1 !== y2) { + return parseInt(y1) > parseInt(y2) ? 1 : -1; + } + if (z1 !== z2) { + return parseInt(z1) > parseInt(z2) ? 1 : -1; + } + + return 0; +} + async function checkUpdate() { try { const curVersion = await getVersion(); @@ -241,8 +258,10 @@ async function checkUpdate() { } else { const data = await res.json(); const latestVersion = (data.tag_name as string).slice(1); - if (latestVersion <= curVersion) { - message.success(t("pages.Mask.checkUpdate.isLatest", [latestVersion])); + if (compareVersion(curVersion, latestVersion) >= 0) { + message.success( + t("pages.Mask.checkUpdate.isLatest", [latestVersion, curVersion]) + ); return; } const body = data.body as string; diff --git a/src/i18n/en-US.json b/src/i18n/en-US.json index 888fedd..9d5ffda 100644 --- a/src/i18n/en-US.json +++ b/src/i18n/en-US.json @@ -43,7 +43,7 @@ "blankConfig": "Blank config", "checkUpdate": { "failed": "Check for updates failed", - "isLatest": "Latest version: {0}, currently the latest version", + "isLatest": "Latest version: {0}, currently the latest version: {1}", "notLatest": { "title": "Latest version: {0}", "positiveText": "Release page", diff --git a/src/i18n/zh-CN.json b/src/i18n/zh-CN.json index 008a1be..425e53c 100644 --- a/src/i18n/zh-CN.json +++ b/src/i18n/zh-CN.json @@ -42,7 +42,7 @@ "blankConfig": "空白方案", "checkUpdate": { "failed": "检查更新失败", - "isLatest": "最新版本: {0},当前已是最新版本", + "isLatest": "最新版本: {0},当前已是最新版本: {1}", "notLatest": { "title": "最新版本:{0}", "positiveText": "前往发布页",