diff --git a/frontend-vue/src/pages/home/DesktopHomePage.vue b/frontend-vue/src/pages/home/DesktopHomePage.vue index 457017f4..c0a2a2bc 100644 --- a/frontend-vue/src/pages/home/DesktopHomePage.vue +++ b/frontend-vue/src/pages/home/DesktopHomePage.vue @@ -23,7 +23,7 @@
{{ hint }}
- +
@@ -92,6 +93,8 @@ const { checked, progress, changelog, + changelogEmptyText, + setSelectedVersion, versions, versionListLoading, versionListError, diff --git a/frontend-vue/src/pages/login/DesktopLoginPage.vue b/frontend-vue/src/pages/login/DesktopLoginPage.vue index 8c5da842..1db82ed5 100644 --- a/frontend-vue/src/pages/login/DesktopLoginPage.vue +++ b/frontend-vue/src/pages/login/DesktopLoginPage.vue @@ -31,7 +31,7 @@
{{ hint }}
- + @@ -148,6 +149,8 @@ const { checked, progress, changelog, + changelogEmptyText, + setSelectedVersion, versions, versionListLoading, versionListError, diff --git a/frontend-vue/src/shared/client-changelog.ts b/frontend-vue/src/shared/client-changelog.ts index 36353538..862aa0df 100644 --- a/frontend-vue/src/shared/client-changelog.ts +++ b/frontend-vue/src/shared/client-changelog.ts @@ -28,14 +28,14 @@ export const CLIENT_CHANGELOG: ClientChangelogEntry[] = [ version: '4.0.21', date: '2026-09-15', items: [ - '新增设备标识文件:客户端程序目录下会生成 code.txt,遇到问题时把文件里的标识发给客服,可快速查询本机日志', + '客户端目录会生成 code.txt,遇到问题时把它发给客服,可快速查本机日志', ], }, { version: '4.0.20', date: '2026-09-15', items: [ - '新增运行日志自动同步:本地日志会(压缩后)上传到云端后台,遇到问题客服可远程排查,不用再手动发日志文件(云端保留 7 天)', + '本地日志会自动上传到云端(保留 7 天),遇到问题客服可远程排查,不用手动发日志', ], }, { @@ -214,12 +214,15 @@ export function newestChangelogVersion(entries: ClientChangelogEntry[] = CLIENT_ * * - latestVersion 为空(检测未完成/失败)时按数据文件里最新版本兜底; * - currentVersion 为空(旧客户端无版本桥)时只给最新版本一条,不把整段历史倒给用户; - * - 本机版本已高于线上(灰度/回滚)时返回空数组,由调用方隐藏该区块。 + * - 本机版本已高于线上(灰度/回滚)时返回空数组,由调用方隐藏该区块; + * - includeCurrent 为 true(面板展示用)时,本机 == 线上(无更新可看)退回展示 + * 本机版本自身的条目——刚升级完的用户最想知道"这个版本改了什么"。 */ export function selectChangelogEntries(options: { currentVersion?: string latestVersion?: string entries?: ClientChangelogEntry[] + includeCurrent?: boolean } = {}): ClientChangelogEntry[] { const entries = options.entries ?? CLIENT_CHANGELOG if (!entries.length) return [] @@ -231,5 +234,21 @@ export function selectChangelogEntries(options: { const newest = inRange.find((entry) => compareVersions(entry.version, upper) === 0) return [newest ?? inRange[0]] } - return inRange.filter((entry) => compareVersions(entry.version, current) > 0) + const newer = inRange.filter((entry) => compareVersions(entry.version, current) > 0) + if (newer.length || !options.includeCurrent) return newer + // 本机 == 线上:展示本机版本条目;本机高于线上时 inRange 里没有它,仍为空(不展示低版本日志) + return inRange.filter((entry) => compareVersions(entry.version, current) === 0) +} + +/** + * 取指定版本自身的条目("指定版本更新"下拉选中时展示,升级/回退/同版统一语义)。 + * 版本未收录或版本号为空时返回空数组——不倒推相邻版本,避免张冠李戴。 + */ +export function selectVersionEntry( + version: string, + entries: ClientChangelogEntry[] = CLIENT_CHANGELOG, +): ClientChangelogEntry[] { + const target = normVersion(version) + if (!target) return [] + return entries.filter((entry) => compareVersions(entry.version, target) === 0) } diff --git a/frontend-vue/src/shared/components/UpdateLogList.vue b/frontend-vue/src/shared/components/UpdateLogList.vue index 471c8787..d4fbfd52 100644 --- a/frontend-vue/src/shared/components/UpdateLogList.vue +++ b/frontend-vue/src/shared/components/UpdateLogList.vue @@ -1,7 +1,8 @@