@@ -29,7 +31,7 @@ import '@vueup/vue-quill/dist/vue-quill.snow.css';
import { QuillEditor, Quill } from '@vueup/vue-quill';
import { propTypes } from '@/utils/propTypes';
-import type { UploadRequestHandler, UploadRequestOptions } from 'element-plus';
+import { globalHeaders } from '@/utils/request';
defineEmits(['update:modelValue']);
@@ -45,11 +47,15 @@ const props = defineProps({
/* 上传文件大小限制(MB) */
fileSize: propTypes.number.def(5),
/* 类型(base64格式、url格式) */
- type: propTypes.string.def('base64')
+ type: propTypes.string.def('url')
});
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+const upload = reactive({
+ headers: globalHeaders(),
+ url: import.meta.env.VITE_APP_BASE_API + '/resource/oss/upload'
+});
const quillEditorRef = ref();
const uploadRef = ref();
@@ -110,9 +116,28 @@ watch(
{ immediate: true }
);
+// 图片上传成功返回图片地址
+const handleUploadSuccess = (res: any) => {
+ // 如果上传成功
+ if (res.code === 200) {
+ // 获取富文本实例
+ const quill = toRaw(quillEditorRef.value).getQuill();
+ // 获取光标位置
+ const length = quill.selection.savedRange.index;
+ // 插入图片,res为服务器返回的图片链接地址
+ quill.insertEmbed(length, 'image', res.data.url);
+ // 调整光标到最后
+ quill.setSelection(length + 1);
+ proxy?.$modal.closeLoading();
+ } else {
+ proxy?.$modal.msgError('图片插入失败');
+ proxy?.$modal.closeLoading();
+ }
+};
+
// 图片上传前拦截
const handleBeforeUpload = (file: any) => {
- const type = ['image/jpeg', 'image/jpg', 'image/png', 'image/svg', 'image/svg+xml'];
+ const type = ['image/jpeg', 'image/jpg', 'image/png', 'image/svg'];
const isJPG = type.includes(file.type);
//检验文件格式
if (!isJPG) {
@@ -131,41 +156,9 @@ const handleBeforeUpload = (file: any) => {
return true;
};
-// base64 模式插入图片
-const handleUploadRequest: UploadRequestHandler = (options: UploadRequestOptions) => {
- return new Promise((resolve, reject) => {
- const file = options.file as File;
- const quill = toRaw(quillEditorRef.value)?.getQuill();
- if (!quill) {
- proxy?.$modal.msgError('编辑器未就绪');
- proxy?.$modal.closeLoading();
- reject(new Error('editor not ready'));
- return;
- }
- const reader = new FileReader();
- reader.onload = () => {
- const base64 = reader.result as string;
- const range = quill.selection?.savedRange;
- const length = range ? range.index : quill.getLength();
- quill.insertEmbed(length, 'image', base64);
- quill.setSelection(length + 1);
- proxy?.$modal.closeLoading();
- options.onSuccess?.({ url: base64 });
- resolve();
- };
- reader.onerror = () => {
- proxy?.$modal.msgError('图片插入失败');
- proxy?.$modal.closeLoading();
- const err = Object.assign(new Error('read image failed'), {
- status: 0,
- method: 'POST',
- url: options.action || ''
- });
- options.onError?.(err as any);
- reject(err);
- };
- reader.readAsDataURL(file);
- });
+// 图片失败拦截
+const handleUploadError = (err: any) => {
+ proxy?.$modal.msgError('上传文件失败');
};
From 493d1131bffc68c052ba1bfd00fe8f347b0ce850 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Fri, 10 Apr 2026 09:49:15 +0800
Subject: [PATCH 4/9] =?UTF-8?q?update=20vite=207.3.2=20=E4=BF=AE=E5=A4=8D?=
=?UTF-8?q?=E6=BC=8F=E6=B4=9E=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index cf44b030..b591d1e5 100644
--- a/package.json
+++ b/package.json
@@ -73,7 +73,7 @@
"unplugin-icons": "23.0.1",
"unplugin-vue-components": "31.0.0",
"unplugin-vue-setup-extend-plus": "1.0.1",
- "vite": "7.3.1",
+ "vite": "7.3.2",
"vite-plugin-svg-icons-ng": "^1.5.2",
"vite-plugin-vue-devtools": "8.0.7",
"vitest": "4.0.18",
From e77fe0e618f1c58bebdcb95db0e8b095aee47ae6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Fri, 10 Apr 2026 11:32:16 +0800
Subject: [PATCH 5/9] =?UTF-8?q?update=20=E5=B8=83=E5=B1=80=E8=AE=BE?=
=?UTF-8?q?=E7=BD=AE=E5=A2=9E=E5=8A=A0=20=E9=A1=B5=E9=9D=A2=E5=9C=86?=
=?UTF-8?q?=E8=A7=92=E5=A4=A7=E5=B0=8F=20=E6=8E=A7=E5=88=B6=E5=99=A8=20?=
=?UTF-8?q?=E5=8F=AF=E4=BB=A5=E6=A0=B9=E6=8D=AE=E5=96=9C=E5=A5=BD=E8=87=AA?=
=?UTF-8?q?=E8=A1=8C=E8=AE=BE=E7=BD=AE=E9=A1=B5=E9=9D=A2=E5=9C=86=E8=A7=92?=
=?UTF-8?q?=E6=A0=B7=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/assets/styles/element-ui.scss | 8 ++++----
src/assets/styles/index.scss | 5 ++---
src/assets/styles/variables.module.scss | 7 ++++---
src/layout/components/Settings/index.vue | 16 ++++++++++++++++
src/layout/components/TopBar/search.vue | 4 ++--
src/settings.ts | 7 ++++++-
src/store/modules/settings.ts | 5 ++++-
src/types/global.d.ts | 4 ++++
8 files changed, 42 insertions(+), 14 deletions(-)
diff --git a/src/assets/styles/element-ui.scss b/src/assets/styles/element-ui.scss
index 106a6471..a69b89f1 100644
--- a/src/assets/styles/element-ui.scss
+++ b/src/assets/styles/element-ui.scss
@@ -74,7 +74,7 @@
.el-dialog {
margin: 0 auto !important;
- border-radius: var(--app-radius-lg);
+ border-radius: var(--app-radius-base);
box-shadow: var(--app-shadow-md);
overflow: hidden;
@@ -158,7 +158,7 @@
}
.el-message-box {
- border-radius: var(--app-radius-lg);
+ border-radius: var(--app-radius-base);
box-shadow: var(--app-shadow-md);
}
@@ -215,7 +215,7 @@
}
.el-drawer {
- border-radius: var(--app-radius-lg);
+ border-radius: var(--app-radius-base);
box-shadow: var(--app-shadow-md);
}
@@ -227,7 +227,7 @@
// Table polish
.el-table {
- border-radius: var(--app-radius-lg);
+ border-radius: var(--app-radius-base);
overflow: hidden;
box-shadow: var(--app-shadow-sm);
border: 1px solid var(--el-border-color-lighter);
diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss
index bd853d4e..819dd7c9 100644
--- a/src/assets/styles/index.scss
+++ b/src/assets/styles/index.scss
@@ -150,7 +150,7 @@ aside {
padding: 20px;
background: var(--app-surface-bg);
border: 1px solid var(--app-surface-border);
- border-radius: var(--app-radius-lg);
+ border-radius: var(--app-radius-base);
box-shadow: var(--app-shadow-sm);
}
@@ -158,9 +158,8 @@ aside {
.panel,
.search {
margin-bottom: 0.75rem;
- border-radius: var(--app-radius-lg);
+ border-radius: var(--app-radius-base);
border: 1px solid var(--el-border-color-light);
- background-color: var(--el-bg-color-overlay);
padding: 0.75rem;
box-shadow: 0 0 0 rgba(0, 0, 0, 0);
transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
diff --git a/src/assets/styles/variables.module.scss b/src/assets/styles/variables.module.scss
index 1c9db81b..cf5ae6ed 100644
--- a/src/assets/styles/variables.module.scss
+++ b/src/assets/styles/variables.module.scss
@@ -27,9 +27,10 @@
--tags-view-active-border-color: var(--el-color-primary);
// Modern rounded style + soft shadows
- --app-radius-sm: 6px;
- --app-radius-md: 10px;
- --app-radius-lg: 14px;
+ --app-radius-base: 14px;
+ --app-radius-sm: calc(var(--app-radius-base) - 8px);
+ --app-radius-md: calc(var(--app-radius-base) - 4px);
+ --app-radius-lg: var(--app-radius-base);
--app-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.08), 0 6px 16px rgba(15, 23, 42, 0.08);
--app-shadow-md: 0 8px 24px rgba(15, 23, 42, 0.12);
--app-shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.16);
diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue
index cfd6d7a9..04b624e9 100644
--- a/src/layout/components/Settings/index.vue
+++ b/src/layout/components/Settings/index.vue
@@ -75,6 +75,12 @@
+
+ 页面圆角
+
+
+
+
@@ -143,6 +149,7 @@ const sideTheme = ref(settingsStore.sideTheme);
const storeSettings = computed(() => settingsStore);
const predefineColors = ref(['#409EFF', '#ff4500', '#ff8c00', '#ffd700', '#90ee90', '#00ced1', '#1e90ff', '#c71585']);
const navType = ref(settingsStore.navType);
+const radiusBase = ref(settingsStore.radiusBase);
// 是否暗黑模式
const isDark = useDark({
storageKey: 'useDarkKey',
@@ -190,6 +197,10 @@ const themeChange = (val: string) => {
settingsStore.theme = val;
handleThemeStyle(val);
};
+const radiusBaseChange = (val: number) => {
+ settingsStore.radiusBase = val;
+ document.documentElement.style.setProperty('--app-radius-base', `${val}px`);
+};
const handleTheme = (val: string) => {
sideTheme.value = val;
if (isDark.value && val === SideThemeEnum.LIGHT) {
@@ -210,6 +221,7 @@ const saveSetting = () => {
settings.value.sideTheme = storeSettings.value.sideTheme;
settings.value.theme = storeSettings.value.theme;
settings.value.navType = storeSettings.value.navType;
+ settings.value.radiusBase = storeSettings.value.radiusBase;
setTimeout(() => {
proxy?.$modal.closeLoading();
}, 1000);
@@ -223,6 +235,10 @@ const openSetting = () => {
showSettings.value = true;
};
+onMounted(() => {
+ radiusBaseChange(storeSettings.value.radiusBase);
+});
+
defineExpose({
openSetting
});
diff --git a/src/layout/components/TopBar/search.vue b/src/layout/components/TopBar/search.vue
index 76bdd8f1..0c64a68e 100644
--- a/src/layout/components/TopBar/search.vue
+++ b/src/layout/components/TopBar/search.vue
@@ -134,7 +134,7 @@ defineExpose({
diff --git a/src/settings.ts b/src/settings.ts
index bf1c5363..5dd85995 100644
--- a/src/settings.ts
+++ b/src/settings.ts
@@ -71,6 +71,11 @@ const setting: DefaultSettings = {
/**
* 默认布局
*/
- layout: ''
+ layout: '',
+
+ /**
+ * 页面圆角大小
+ */
+ radiusBase: 14
};
export default setting;
diff --git a/src/store/modules/settings.ts b/src/store/modules/settings.ts
index ec52fcdf..06170cc4 100644
--- a/src/store/modules/settings.ts
+++ b/src/store/modules/settings.ts
@@ -15,7 +15,8 @@ export const useSettingsStore = defineStore('setting', () => {
dynamicTitle: defaultSettings.dynamicTitle,
sideTheme: defaultSettings.sideTheme,
theme: defaultSettings.theme,
- navType: defaultSettings.navType
+ navType: defaultSettings.navType,
+ radiusBase: defaultSettings.radiusBase
});
const title = ref(defaultSettings.title);
const theme = ref(storageSetting.value.theme);
@@ -29,6 +30,7 @@ export const useSettingsStore = defineStore('setting', () => {
const animationEnable = ref(defaultSettings.animationEnable);
const dark = ref(defaultSettings.dark);
const navType = ref(storageSetting.value.navType || NavTypeEnum.LEFT);
+ const radiusBase = ref(storageSetting.value.radiusBase ?? defaultSettings.radiusBase);
const setTitle = (value: string) => {
title.value = value;
@@ -47,6 +49,7 @@ export const useSettingsStore = defineStore('setting', () => {
animationEnable,
dark,
navType,
+ radiusBase,
setTitle
};
});
diff --git a/src/types/global.d.ts b/src/types/global.d.ts
index cd4a9f41..10dc8430 100644
--- a/src/types/global.d.ts
+++ b/src/types/global.d.ts
@@ -123,6 +123,10 @@ declare global {
* 主题模式
*/
theme: string;
+ /**
+ * 页面圆角大小
+ */
+ radiusBase: number;
}
declare interface DefaultSettings extends LayoutSetting {
From 38a15e6cd36026f666fb11acc09d62edf5ce310e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Tue, 14 Apr 2026 09:19:51 +0800
Subject: [PATCH 6/9] =?UTF-8?q?update=20=E9=A1=B5=E9=9D=A2=E5=9C=86?=
=?UTF-8?q?=E8=A7=92=E5=A4=A7=E5=B0=8F=20=E9=BB=98=E8=AE=A4=E8=B0=83?=
=?UTF-8?q?=E6=95=B4=E4=B8=BA10?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/settings.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/settings.ts b/src/settings.ts
index 5dd85995..2ce715b6 100644
--- a/src/settings.ts
+++ b/src/settings.ts
@@ -76,6 +76,6 @@ const setting: DefaultSettings = {
/**
* 页面圆角大小
*/
- radiusBase: 14
+ radiusBase: 10
};
export default setting;
From f599aba8909fa73daa962be399b6a2ccab6644c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Tue, 14 Apr 2026 10:11:43 +0800
Subject: [PATCH 7/9] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E8=B0=83?=
=?UTF-8?q?=E6=95=B4=E9=A1=B5=E9=9D=A2=E7=94=BB=E9=A3=8E=20=E4=B8=8D?=
=?UTF-8?q?=E8=A6=81=E8=BF=87=E4=BA=8E=E7=94=9F=E7=A1=AC=E5=9C=86=E6=BB=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/assets/styles/element-ui.scss | 2 +-
src/assets/styles/index.scss | 34 ++++++++++++------------
src/assets/styles/ruoyi.scss | 9 +++----
src/assets/styles/variables.module.scss | 9 ++++---
src/layout/components/Navbar.vue | 28 ++++++++++++-------
src/layout/components/Settings/index.vue | 8 +++++-
src/layout/components/TagsView/index.vue | 12 ++++-----
src/layout/index.vue | 1 +
src/settings.ts | 2 +-
9 files changed, 60 insertions(+), 45 deletions(-)
diff --git a/src/assets/styles/element-ui.scss b/src/assets/styles/element-ui.scss
index a69b89f1..d9a77110 100644
--- a/src/assets/styles/element-ui.scss
+++ b/src/assets/styles/element-ui.scss
@@ -192,7 +192,7 @@
// Buttons
.el-button {
- border-radius: var(--app-radius-md);
+ border-radius: var(--el-border-radius-base);
transition: transform 0.15s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}
diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss
index 819dd7c9..90685db2 100644
--- a/src/assets/styles/index.scss
+++ b/src/assets/styles/index.scss
@@ -115,7 +115,7 @@ div:focus {
}
aside {
- background: #eef1f6;
+ background: var(--el-fill-color-light);
padding: 8px 24px;
margin-bottom: 20px;
border-radius: var(--app-radius-md);
@@ -131,43 +131,43 @@ aside {
'Hiragino Sans GB',
'Microsoft YaHei',
sans-serif;
- color: #2c3e50;
+ color: var(--el-text-color-primary);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
a {
- color: #337ab7;
+ color: var(--el-color-primary);
cursor: pointer;
&:hover {
- color: rgb(32, 160, 255);
+ color: var(--el-color-primary-light-3);
}
}
}
//main-container全局样式
.app-container {
- padding: 20px;
- background: var(--app-surface-bg);
- border: 1px solid var(--app-surface-border);
- border-radius: var(--app-radius-base);
- box-shadow: var(--app-shadow-sm);
+ padding: 16px;
+ background: transparent;
+ border: none;
+ border-radius: 0;
+ box-shadow: none;
}
// search面板样式
.panel,
.search {
- margin-bottom: 0.75rem;
+ margin-bottom: 12px;
border-radius: var(--app-radius-base);
- border: 1px solid var(--el-border-color-light);
- padding: 0.75rem;
- box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
+ border: 1px solid var(--el-border-color-lighter);
+ padding: 16px;
+ background: var(--app-surface-bg);
+ box-shadow: var(--app-shadow-sm);
+ transition: box-shadow 0.2s ease, border-color 0.2s ease;
&:hover {
- box-shadow: var(--app-shadow-sm);
- border-color: var(--el-border-color);
- transform: translateY(-1px);
+ box-shadow: var(--app-shadow-md);
+ border-color: var(--el-border-color-light);
}
}
diff --git a/src/assets/styles/ruoyi.scss b/src/assets/styles/ruoyi.scss
index d50f46f8..c78b2c32 100644
--- a/src/assets/styles/ruoyi.scss
+++ b/src/assets/styles/ruoyi.scss
@@ -77,7 +77,7 @@ h6 {
font-weight: 600;
}
.el-dialog:not(.is-fullscreen) {
- margin-top: 6vh !important;
+ margin-top: 0 !important;
}
.el-dialog.scrollbar .el-dialog__body {
@@ -125,8 +125,8 @@ h6 {
/* tree border */
.tree-border {
margin-top: 5px;
- border: 1px solid #e5e6e7;
- background: #ffffff none;
+ border: 1px solid var(--el-border-color-light);
+ background: var(--el-bg-color);
border-radius: var(--app-radius-md);
width: 100%;
}
@@ -203,12 +203,11 @@ h6 {
box-shadow: var(--app-shadow-sm);
border-color: var(--el-border-color-lighter);
overflow: hidden;
- transition: box-shadow 0.2s ease, transform 0.2s ease;
+ transition: box-shadow 0.2s ease;
}
.el-card:hover {
box-shadow: var(--app-shadow-md);
- transform: translateY(-1px);
}
.card-box {
diff --git a/src/assets/styles/variables.module.scss b/src/assets/styles/variables.module.scss
index cf5ae6ed..004f1968 100644
--- a/src/assets/styles/variables.module.scss
+++ b/src/assets/styles/variables.module.scss
@@ -27,9 +27,10 @@
--tags-view-active-border-color: var(--el-color-primary);
// Modern rounded style + soft shadows
- --app-radius-base: 14px;
- --app-radius-sm: calc(var(--app-radius-base) - 8px);
- --app-radius-md: calc(var(--app-radius-base) - 4px);
+ --app-radius-base: 8px;
+ --app-radius-sm: calc(var(--app-radius-base) * 0.6);
+ --app-radius-md: var(--app-radius-base);
+ --app-radius-lg: calc(var(--app-radius-base) * 1.4);
--app-radius-lg: var(--app-radius-base);
--app-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.08), 0 6px 16px rgba(15, 23, 42, 0.08);
--app-shadow-md: 0 8px 24px rgba(15, 23, 42, 0.12);
@@ -53,7 +54,7 @@ html.dark {
--menuHover: #171819;
--subMenuBg: #1d1e1f;
- --subMenuActiveText: #1d1e1f;
+ --subMenuActiveText: #f4f4f5;
--subMenuHover: #171819;
--subMenuTitleHover: #171819;
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index d39c81ad..a862ded0 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -38,7 +38,7 @@
-
+
@@ -289,9 +289,7 @@ watch(
}
.right-menu {
- //float: right;
height: 100%;
- line-height: 50px;
display: flex;
align-items: center;
margin-left: auto;
@@ -300,20 +298,29 @@ watch(
outline: none;
}
+ // 消息等有包裹层的图标,确保中间层不破坏对齐
+ & > * {
+ display: flex;
+ align-items: center;
+ }
+
.right-menu-item {
- display: inline-block;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
padding: 0 8px;
- height: 100%;
+ height: 32px;
font-size: 18px;
color: var(--el-text-color-regular);
- vertical-align: text-bottom;
+ border-radius: var(--app-radius-md);
&.hover-effect {
cursor: pointer;
- transition: background 0.3s;
+ transition: background 0.2s ease, color 0.2s ease;
&:hover {
- background: var(--el-fill-color-lighter);
+ background: var(--el-fill-color-light);
+ color: var(--el-color-primary);
}
}
}
@@ -322,7 +329,7 @@ watch(
margin-right: 40px;
.avatar-wrapper {
- margin-top: 5px;
+ margin-top: 0;
position: relative;
.user-avatar {
@@ -330,7 +337,8 @@ watch(
width: 40px;
height: 40px;
border-radius: var(--app-radius-md);
- margin-top: 10px;
+ margin-top: 0;
+ display: block;
}
i {
diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue
index 04b624e9..7c6cb119 100644
--- a/src/layout/components/Settings/index.vue
+++ b/src/layout/components/Settings/index.vue
@@ -199,7 +199,13 @@ const themeChange = (val: string) => {
};
const radiusBaseChange = (val: number) => {
settingsStore.radiusBase = val;
- document.documentElement.style.setProperty('--app-radius-base', `${val}px`);
+ const el = document.documentElement;
+ el.style.setProperty('--app-radius-base', `${val}px`);
+ el.style.setProperty('--app-radius-sm', `${Math.round(val * 0.6)}px`);
+ el.style.setProperty('--app-radius-md', `${val}px`);
+ el.style.setProperty('--app-radius-lg', `${Math.round(val * 1.4)}px`);
+ el.style.setProperty('--el-border-radius-base', `${val}px`);
+ el.style.setProperty('--el-border-radius-small', `${Math.round(val * 0.6)}px`);
};
const handleTheme = (val: string) => {
sideTheme.value = val;
diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue
index 92c52a3a..2d74581f 100644
--- a/src/layout/components/TagsView/index.vue
+++ b/src/layout/components/TagsView/index.vue
@@ -243,9 +243,9 @@ onMounted(() => {
height: 34px;
width: 100%;
background-color: var(--el-bg-color);
- border: 1px solid var(--el-border-color-light);
- border-radius: var(--app-radius-md);
- box-shadow: var(--app-shadow-sm);
+ border-top: none;
+ border-bottom: 1px solid var(--el-border-color-lighter);
+ box-shadow: none;
.tags-view-wrapper {
.tags-view-item {
display: inline-block;
@@ -275,12 +275,12 @@ onMounted(() => {
margin-right: 15px;
}
&.active {
- background-color: #42b983;
+ background-color: var(--tags-view-active-bg);
color: #fff;
- border-color: #42b983;
+ border-color: var(--tags-view-active-border-color);
&::before {
content: '';
- background: #fff;
+ background: rgba(255, 255, 255, 0.7);
display: inline-block;
width: 8px;
height: 8px;
diff --git a/src/layout/index.vue b/src/layout/index.vue
index 51740322..00a1ae7d 100644
--- a/src/layout/index.vue
+++ b/src/layout/index.vue
@@ -127,6 +127,7 @@ const setLayout = () => {
width: calc(100% - #{$base-sidebar-width});
transition: width 0.28s;
background: $fixed-header-bg;
+ box-shadow: 0 2px 8px rgba(0, 21, 41, 0.10);
}
.hideSidebar .fixed-header {
diff --git a/src/settings.ts b/src/settings.ts
index 2ce715b6..564a9671 100644
--- a/src/settings.ts
+++ b/src/settings.ts
@@ -76,6 +76,6 @@ const setting: DefaultSettings = {
/**
* 页面圆角大小
*/
- radiusBase: 10
+ radiusBase: 8
};
export default setting;
From 0ddf391de30b403e08cb943d7eed2654ec387020 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Tue, 14 Apr 2026 10:32:46 +0800
Subject: [PATCH 8/9] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E7=A7=9F?=
=?UTF-8?q?=E6=88=B7=E9=80=89=E6=8B=A9=E6=A1=86=E6=A0=B7=E5=BC=8F=E9=97=AE?=
=?UTF-8?q?=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/layout/components/Navbar.vue | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index a862ded0..906ed6f3 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -14,7 +14,7 @@
-
+
@@ -298,12 +298,6 @@ watch(
outline: none;
}
- // 消息等有包裹层的图标,确保中间层不破坏对齐
- & > * {
- display: flex;
- align-items: center;
- }
-
.right-menu-item {
display: inline-flex;
align-items: center;
From 2a6c440593327c5f06bd4b17788f01ca083d78bb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Fri, 24 Apr 2026 09:45:41 +0800
Subject: [PATCH 9/9] =?UTF-8?q?=F0=9F=A6=81=F0=9F=A6=81=F0=9F=A6=81?=
=?UTF-8?q?=E5=8F=91=E5=B8=83=20v5.6.1-v2.6.1=20=E7=89=88=E6=9C=AC=20?=
=?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=8D=87=E7=BA=A7=E6=BC=8F=E6=B4=9E=E4=BF=AE?=
=?UTF-8?q?=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 2 +-
src/views/index.vue | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/package.json b/package.json
index b591d1e5..8bbeece2 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package",
"name": "ruoyi-vue-plus",
- "version": "5.6.0-2.6.0",
+ "version": "5.6.1-2.6.1",
"description": "RuoYi-Vue-Plus多租户管理系统",
"author": "LionLi",
"license": "MIT",
diff --git a/src/views/index.vue b/src/views/index.vue
index cf350cc1..d5033f1d 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -33,7 +33,7 @@
* 部署方式 Docker 容器编排 一键部署业务集群
* 国际化 SpringMessage Spring标准国际化方案
- 当前版本: v5.6.0
+ 当前版本: v5.6.1
¥免费开源
@@ -77,7 +77,7 @@
* 分布式监控 Prometheus、Grafana 全方位性能监控
* 其余与 Vue 版本一致
- 当前版本: v2.6.0
+ 当前版本: v2.6.1
¥免费开源