From d53e107ebc5e4001b378b679a5a22edadf317570 Mon Sep 17 00:00:00 2001 From: yangsy Date: Mon, 2 Mar 2026 14:09:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AE=B0=E5=BD=95=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 changelog 类型定义和导出 - 新增更新记录页面组件,支持从 JSON 文件加载并展示版本变更信息 - 在路由中添加更新记录页面路径 - 在设置抽屉中为版本信息添加点击跳转功能,可查看完整更新记录 - 添加包含历史版本变更的 changelogs.json 数据文件 --- public/changelogs.json | 1 + src/apis/domain/version/changelog.ts | 13 +++++ src/apis/domain/version/index.ts | 1 + .../settings-drawer/settings-drawer.vue | 21 ++++++- src/pages/system/changelog/changelog-page.vue | 58 +++++++++++++++++++ src/router/index.ts | 4 ++ 6 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 public/changelogs.json create mode 100644 src/apis/domain/version/changelog.ts create mode 100644 src/pages/system/changelog/changelog-page.vue diff --git a/public/changelogs.json b/public/changelogs.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/public/changelogs.json @@ -0,0 +1 @@ +[] diff --git a/src/apis/domain/version/changelog.ts b/src/apis/domain/version/changelog.ts new file mode 100644 index 0000000..ea09f49 --- /dev/null +++ b/src/apis/domain/version/changelog.ts @@ -0,0 +1,13 @@ +export interface ChangeLogDescription { + content: string; +} + +export interface Changelog { + version: string; + date: string; + changes: { + breaks?: ChangeLogDescription[]; + fixes?: ChangeLogDescription[]; + feats?: ChangeLogDescription[]; + }; +} diff --git a/src/apis/domain/version/index.ts b/src/apis/domain/version/index.ts index bab4781..32f9380 100644 --- a/src/apis/domain/version/index.ts +++ b/src/apis/domain/version/index.ts @@ -1 +1,2 @@ +export * from './changelog'; export * from './version-info'; diff --git a/src/components/global/settings-drawer/settings-drawer.vue b/src/components/global/settings-drawer/settings-drawer.vue index 92608e3..36dbc45 100644 --- a/src/components/global/settings-drawer/settings-drawer.vue +++ b/src/components/global/settings-drawer/settings-drawer.vue @@ -13,9 +13,12 @@ import destr from 'destr'; import { isFunction } from 'es-toolkit'; import localforage from 'localforage'; import { DownloadIcon, Trash2Icon, UploadIcon } from 'lucide-vue-next'; -import { NButton, NButtonGroup, NDivider, NDrawer, NDrawerContent, NDropdown, NFlex, NFormItem, NIcon, NInput, NInputNumber, NModal, NSwitch, NText, type DropdownOption } from 'naive-ui'; +import { NButton, NButtonGroup, NDivider, NDrawer, NDrawerContent, NDropdown, NFlex, NFormItem, NIcon, NInput, NInputNumber, NModal, NSwitch, NText, NTooltip, type DropdownOption } from 'naive-ui'; import { storeToRefs } from 'pinia'; import { computed, ref, watch } from 'vue'; +import { useRouter } from 'vue-router'; + +const router = useRouter(); const show = defineModel('show', { default: false }); @@ -284,6 +287,11 @@ const onDrawerAfterLeave = () => { abortControllers.value.retentionDays.abort(); abortControllers.value.snapStatus.abort(); }; + +const onClickVersion = () => { + show.value = false; + router.push({ path: '/changelog' }); +};