diff --git a/panel/web/src/pages/Admin.tsx b/panel/web/src/pages/Admin.tsx index e5686b7..3c41979 100644 --- a/panel/web/src/pages/Admin.tsx +++ b/panel/web/src/pages/Admin.tsx @@ -92,13 +92,19 @@ function AboutSection({ isAdmin }: { isAdmin: boolean }) { api.getVersion().then(setInfo).catch(() => {}); }, []); + // 当前版本是否为正式发布版(语义化 vX.Y.Z)。dev / dev- 等本地构建无法与发布版比较, + // 既不显示「已是最新」也不显示红点,只把最新发布版作为信息展示。 + const isRelease = !!info && /^v?\d+\.\d+\.\d+$/.test(info.current); + const check = async () => { setChecking(true); try { const r = await api.checkUpdate(); setInfo(r); - if (r.hasUpdate) toast(`发现新版本 ${r.latest}`, 'ok'); - else if (r.error) toast('检查失败:' + r.error, 'error'); + const rel = /^v?\d+\.\d+\.\d+$/.test(r.current); + if (r.error) toast('检查失败:' + r.error, 'error'); + else if (r.hasUpdate) toast(`发现新版本 ${r.latest}`, 'ok'); + else if (!rel) toast(`最新发布 ${r.latest ?? '未知'}(当前为开发版)`, 'ok'); else toast('已是最新版本', 'ok'); } catch (e: any) { toast(e.message || '检查失败', 'error'); @@ -116,7 +122,7 @@ function AboutSection({ isAdmin }: { isAdmin: boolean }) {
云微 · WechatOnCloud - {info?.hasUpdate && 有新版} + {info?.hasUpdate ? 有新版 : info && !isRelease ? 开发版 : null}
当前版本 {info?.current ?? '…'} @@ -125,7 +131,12 @@ function AboutSection({ isAdmin }: { isAdmin: boolean }) { {' · '}最新 {info.latest} )} - {info && !info.hasUpdate && info.latest && !info.error && <>{' · '}已是最新} + {isRelease && info && !info.hasUpdate && info.latest && !info.error && <>{' · '}已是最新} + {!isRelease && info?.latest && !info.error && ( + <> + {' · '}最新发布 {info.latest} + + )}
{info?.hasUpdate && (
diff --git a/scripts/build-local.sh b/scripts/build-local.sh index 9649a58..75ba323 100755 --- a/scripts/build-local.sh +++ b/scripts/build-local.sh @@ -10,9 +10,10 @@ set -euo pipefail OWNER="${WOC_IMAGE_OWNER:-gloridust}" TAG="${WOC_VERSION:-latest}" -# 烤进面板镜像的版本号:设了 WOC_VERSION 就用它(如 v1.2.0),否则 dev(dev 不会触发「有新版」红点)。 -VER="${WOC_VERSION:-dev}" ROOT="$(cd "$(dirname "$0")/.." && pwd)" +# 烤进面板镜像的版本号:设了 WOC_VERSION 就用它(如 v1.2.0),否则用 dev-<短SHA>(本地构建标识)。 +# 开发版不是正式发布版,面板「关于」会标「开发版」、不会触发「有新版」红点。 +VER="${WOC_VERSION:-dev-$(git -C "$ROOT" rev-parse --short HEAD 2>/dev/null || echo local)}" PANEL_IMAGE="ghcr.io/${OWNER}/woc-panel:${TAG}" WECHAT_IMAGE="ghcr.io/${OWNER}/wechat-on-cloud:${TAG}"