diff --git a/src/components/home/ChangelogModal.vue b/src/components/home/ChangelogModal.vue index 10404fbe..da33ccd1 100644 --- a/src/components/home/ChangelogModal.vue +++ b/src/components/home/ChangelogModal.vue @@ -36,6 +36,8 @@ const hoveredVersion = ref(null) const currentAppVersion = ref(null) const CHANGELOG_READ_KEY = 'chatlab_changelog_read_version' +const CHANGELOG_AUTO_OPEN_DISABLED_KEY = 'chatlab_changelog_auto_open_disabled' +const autoOpenDisabled = ref(false) // summary 的白名单配置(可按需扩展) const SUMMARY_SANITIZE_OPTIONS = { @@ -132,6 +134,8 @@ function markVersionAsRead(version: string) { // 检查是否需要显示新版本日志(冷启动时自动检查) async function checkNewVersion() { try { + if (localStorage.getItem(CHANGELOG_AUTO_OPEN_DISABLED_KEY) === '1') return + // 1. 获取当前软件版本号 const rawVersion = await usePlatformService().getVersion() const currentVersion = normalizeChangelogVersion(rawVersion) @@ -188,6 +192,7 @@ async function checkNewVersion() { // 手动打开弹窗(用户点击时调用),会自动获取数据 async function open() { + autoOpenDisabled.value = localStorage.getItem(CHANGELOG_AUTO_OPEN_DISABLED_KEY) === '1' // 手动打开也标记当前版本,避免标签缺失 try { currentAppVersion.value = normalizeChangelogVersion(await usePlatformService().getVersion()) @@ -204,6 +209,7 @@ async function open() { // 使用预设数据打开弹窗(自动检查新版本时调用) function openWithData(data: ChangelogItem[], appVersion?: string) { + autoOpenDisabled.value = localStorage.getItem(CHANGELOG_AUTO_OPEN_DISABLED_KEY) === '1' changelogs.value = data currentAppVersion.value = appVersion || null expandedState.value.clear() // 重置展开状态 @@ -214,6 +220,12 @@ function close() { showModal.value = false } +function disableAutomaticOpen() { + localStorage.setItem(CHANGELOG_AUTO_OPEN_DISABLED_KEY, '1') + autoOpenDisabled.value = true + close() +} + // 获取最新版本号(供外部使用) function getLatestVersion() { return changelogs.value[0]?.version || null @@ -379,14 +391,19 @@ defineExpose({ open, openWithData, close, fetchChangelogs, getLatestVersion, che
-
+

{{ t('home.changelog.total', { count: changelogs.length }) }}

- - {{ t('home.changelog.close') }} - +
+ + {{ t('home.changelog.disableAutoOpen') }} + + + {{ t('home.changelog.close') }} + +
diff --git a/src/i18n/locales/en-US/home.json b/src/i18n/locales/en-US/home.json index a35078a8..dbdcf4a1 100644 --- a/src/i18n/locales/en-US/home.json +++ b/src/i18n/locales/en-US/home.json @@ -151,6 +151,7 @@ "current": "Current", "total": "{count} versions in total", "close": "Close", + "disableAutoOpen": "Don't open automatically after updates", "loadError": "Failed to load changelog", "retry": "Retry", "types": { diff --git a/src/i18n/locales/ja-JP/home.json b/src/i18n/locales/ja-JP/home.json index 6d4e9234..77e8a702 100644 --- a/src/i18n/locales/ja-JP/home.json +++ b/src/i18n/locales/ja-JP/home.json @@ -151,6 +151,7 @@ "current": "現在のバージョン", "total": "全 {count} バージョン", "close": "閉じる", + "disableAutoOpen": "アップデート後に自動表示しない", "loadError": "バージョン履歴の読み込みに失敗しました", "retry": "リトライ", "types": { diff --git a/src/i18n/locales/zh-CN/home.json b/src/i18n/locales/zh-CN/home.json index 40990ba0..90ebbf75 100644 --- a/src/i18n/locales/zh-CN/home.json +++ b/src/i18n/locales/zh-CN/home.json @@ -151,6 +151,7 @@ "current": "当前版本", "total": "共 {count} 个版本", "close": "关闭", + "disableAutoOpen": "更新后不再自动弹出", "loadError": "加载版本日志失败", "retry": "重试", "types": { diff --git a/src/i18n/locales/zh-TW/home.json b/src/i18n/locales/zh-TW/home.json index cc38eb2a..31ad4793 100644 --- a/src/i18n/locales/zh-TW/home.json +++ b/src/i18n/locales/zh-TW/home.json @@ -151,6 +151,7 @@ "current": "目前版本", "total": "共 {count} 個版本", "close": "關閉", + "disableAutoOpen": "更新後不再自動顯示", "loadError": "載入更新紀錄失敗", "retry": "重試", "types": {