From 2ce161e585ee16185ed0cddc9f6909422fa44af4 Mon Sep 17 00:00:00 2001 From: zouawen <846027729@qq.com> Date: Tue, 7 Oct 2025 06:15:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=201=E3=80=81=E6=96=B0=E5=A2=9E=E6=B0=B4?= =?UTF-8?q?=E5=8D=B0=E6=96=87=E6=A1=88=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=9B2=E3=80=81input-item=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E6=A1=86=E7=BB=84=E4=BB=B6=E6=96=B0=E5=A2=9E=E6=B8=85=E9=99=A4?= =?UTF-8?q?=E5=8A=9F=E8=83=BD(=E5=8F=AF=E7=94=A8=E4=BA=8E=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E6=B8=85=E9=99=A4=E6=B0=B4=E5=8D=B0=E6=96=87=E6=A1=88?= =?UTF-8?q?)=EF=BC=9B3=E3=80=81=E5=81=8F=E5=A5=BD=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E3=80=81=E4=B8=BB=E9=A2=98=E5=88=87=E6=8D=A2=E3=80=81=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E9=80=89=E6=8B=A9=E3=80=81=E6=98=AF=E5=90=A6=E5=85=A8?= =?UTF-8?q?=E5=B1=8F=E6=8C=89=E9=92=AE=E6=96=B0=E5=A2=9E=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E6=95=88=E6=9E=9C=20(#6800)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feature: 新增水印文案自定义功能; * chore: 偏好设置、主题切换、语言选择、是否全屏按钮新增动画效果 --- apps/web-antd/src/layouts/basic.vue | 11 ++++++++--- apps/web-ele/src/layouts/basic.vue | 11 ++++++++--- apps/web-naive/src/layouts/basic.vue | 11 ++++++++--- packages/@core/base/design/src/css/ui.css | 14 ++++++++++++++ packages/@core/preferences/src/config.ts | 1 + packages/@core/preferences/src/types.ts | 4 ++++ .../src/components/full-screen/full-screen.vue | 5 ++++- .../layouts/src/widgets/language-toggle.vue | 2 +- .../preferences/blocks/general/general.vue | 18 +++++++++++++++++- .../widgets/preferences/blocks/input-item.vue | 15 +++++++++++++-- .../widgets/preferences/preferences-button.vue | 2 +- .../widgets/preferences/preferences-drawer.vue | 2 ++ .../src/widgets/theme-toggle/theme-button.vue | 2 +- .../locales/src/langs/en-US/preferences.json | 1 + .../locales/src/langs/zh-CN/preferences.json | 1 + playground/src/layouts/basic.vue | 11 ++++++++--- 16 files changed, 92 insertions(+), 19 deletions(-) diff --git a/apps/web-antd/src/layouts/basic.vue b/apps/web-antd/src/layouts/basic.vue index 5608e39b..805b8a73 100644 --- a/apps/web-antd/src/layouts/basic.vue +++ b/apps/web-antd/src/layouts/basic.vue @@ -106,11 +106,16 @@ function handleMakeAll() { notifications.value.forEach((item) => (item.isRead = true)); } watch( - () => preferences.app.watermark, - async (enable) => { + () => ({ + enable: preferences.app.watermark, + content: preferences.app.watermarkContent, + }), + async ({ enable, content }) => { if (enable) { await updateWatermark({ - content: `${userStore.userInfo?.username} - ${userStore.userInfo?.realName}`, + content: + content || + `${userStore.userInfo?.username} - ${userStore.userInfo?.realName}`, }); } else { destroyWatermark(); diff --git a/apps/web-ele/src/layouts/basic.vue b/apps/web-ele/src/layouts/basic.vue index 5608e39b..805b8a73 100644 --- a/apps/web-ele/src/layouts/basic.vue +++ b/apps/web-ele/src/layouts/basic.vue @@ -106,11 +106,16 @@ function handleMakeAll() { notifications.value.forEach((item) => (item.isRead = true)); } watch( - () => preferences.app.watermark, - async (enable) => { + () => ({ + enable: preferences.app.watermark, + content: preferences.app.watermarkContent, + }), + async ({ enable, content }) => { if (enable) { await updateWatermark({ - content: `${userStore.userInfo?.username} - ${userStore.userInfo?.realName}`, + content: + content || + `${userStore.userInfo?.username} - ${userStore.userInfo?.realName}`, }); } else { destroyWatermark(); diff --git a/apps/web-naive/src/layouts/basic.vue b/apps/web-naive/src/layouts/basic.vue index c46d14f8..0e9747be 100644 --- a/apps/web-naive/src/layouts/basic.vue +++ b/apps/web-naive/src/layouts/basic.vue @@ -107,11 +107,16 @@ function handleMakeAll() { } watch( - () => preferences.app.watermark, - async (enable) => { + () => ({ + enable: preferences.app.watermark, + content: preferences.app.watermarkContent, + }), + async ({ enable, content }) => { if (enable) { await updateWatermark({ - content: `${userStore.userInfo?.username} - ${userStore.userInfo?.realName}`, + content: + content || + `${userStore.userInfo?.username} - ${userStore.userInfo?.realName}`, }); } else { destroyWatermark(); diff --git a/packages/@core/base/design/src/css/ui.css b/packages/@core/base/design/src/css/ui.css index f7119c8b..0cf842a0 100644 --- a/packages/@core/base/design/src/css/ui.css +++ b/packages/@core/base/design/src/css/ui.css @@ -85,3 +85,17 @@ .z-popup { z-index: var(--popup-z-index); } + +@keyframes shrink { + 0% { + transform: scale(1); + } + + 50% { + transform: scale(0.9); + } + + 100% { + transform: scale(1); + } +} diff --git a/packages/@core/preferences/src/config.ts b/packages/@core/preferences/src/config.ts index 835eed55..c5631af8 100644 --- a/packages/@core/preferences/src/config.ts +++ b/packages/@core/preferences/src/config.ts @@ -29,6 +29,7 @@ const defaultPreferences: Preferences = { name: 'Vben Admin', preferencesButtonPosition: 'auto', watermark: false, + watermarkContent: '', zIndex: 200, }, breadcrumb: { diff --git a/packages/@core/preferences/src/types.ts b/packages/@core/preferences/src/types.ts index e640edb5..e5495c48 100644 --- a/packages/@core/preferences/src/types.ts +++ b/packages/@core/preferences/src/types.ts @@ -75,6 +75,10 @@ interface AppPreferences { * @zh_CN 是否开启水印 */ watermark: boolean; + /** + * @zh_CN 水印文案 + */ + watermarkContent: string; /** z-index */ zIndex: number; } diff --git a/packages/@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue b/packages/@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue index 59f28978..80e469d3 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue +++ b/packages/@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue @@ -21,7 +21,10 @@ isFullscreen.value = !!( ); diff --git a/packages/effects/layouts/src/widgets/preferences/preferences-button.vue b/packages/effects/layouts/src/widgets/preferences/preferences-button.vue index 125ab816..8598bb27 100644 --- a/packages/effects/layouts/src/widgets/preferences/preferences-button.vue +++ b/packages/effects/layouts/src/widgets/preferences/preferences-button.vue @@ -13,7 +13,7 @@ function clearPreferencesAndLogout() {