From 4874a23a616725c932053f7912f7cf861e785137 Mon Sep 17 00:00:00 2001 From: liuyun Date: Wed, 14 Oct 2026 13:56:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(layout):=20=E5=B7=A6=E4=BE=A7=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=94=AF=E6=8C=81=E6=97=A0=E9=99=90=E7=BA=A7=EF=BC=88?= =?UTF-8?q?=E9=80=92=E5=BD=92=E8=8F=9C=E5=8D=95=E8=8A=82=E7=82=B9=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 ty-menu-node 自引用递归组件 - ty-sidebar 改递归渲染,不再限于两层 Co-Authored-By: Claude Opus 4.8 --- components.d.ts | 2 ++ src/components/ty-menu-node.vue | 21 +++++++++++++++++++++ src/components/ty-sidebar.vue | 17 +---------------- 3 files changed, 24 insertions(+), 16 deletions(-) create mode 100644 src/components/ty-menu-node.vue diff --git a/components.d.ts b/components.d.ts index 71a433d..b792c67 100644 --- a/components.d.ts +++ b/components.d.ts @@ -60,6 +60,7 @@ declare module 'vue' { TyFooter: typeof import('./src/components/ty-footer.vue')['default'] TyForm: typeof import('./src/components/ty-form.vue')['default'] TyHeader: typeof import('./src/components/ty-header.vue')['default'] + TyMenuNode: typeof import('./src/components/ty-menu-node.vue')['default'] TyMixbar: typeof import('./src/components/ty-mixbar.vue')['default'] TyNotice: typeof import('./src/components/ty-notice.vue')['default'] TySearchForm: typeof import('./src/components/ty-search-form.vue')['default'] @@ -125,6 +126,7 @@ declare global { const TyFooter: typeof import('./src/components/ty-footer.vue')['default'] const TyForm: typeof import('./src/components/ty-form.vue')['default'] const TyHeader: typeof import('./src/components/ty-header.vue')['default'] + const TyMenuNode: typeof import('./src/components/ty-menu-node.vue')['default'] const TyMixbar: typeof import('./src/components/ty-mixbar.vue')['default'] const TyNotice: typeof import('./src/components/ty-notice.vue')['default'] const TySearchForm: typeof import('./src/components/ty-search-form.vue')['default'] diff --git a/src/components/ty-menu-node.vue b/src/components/ty-menu-node.vue new file mode 100644 index 0000000..93d3c80 --- /dev/null +++ b/src/components/ty-menu-node.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/components/ty-sidebar.vue b/src/components/ty-sidebar.vue index 120e3b3..0fde2bd 100644 --- a/src/components/ty-sidebar.vue +++ b/src/components/ty-sidebar.vue @@ -9,22 +9,7 @@ popper-class="ty-menu-popper" @select="onSelect" > - + From 06e5ba45154ac4b6c21ec35bb1cc8d102cb4b792 Mon Sep 17 00:00:00 2001 From: liuyun Date: Wed, 14 Oct 2026 13:59:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(layout):=20=E9=A1=B6=E9=83=A8=E5=AF=BC?= =?UTF-8?q?=E8=88=AA=20top=20=E5=B8=83=E5=B1=80=E8=8F=9C=E5=8D=95=E4=B9=9F?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=97=A0=E9=99=90=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - top 布局横向菜单改用 ty-menu-node 递归渲染 - 统一 icon 间距样式(:deep(.icon) 替代 .menu-icon) Co-Authored-By: Claude Opus 4.8 --- src/components/ty-header.vue | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/components/ty-header.vue b/src/components/ty-header.vue index 880fa86..26801a5 100644 --- a/src/components/ty-header.vue +++ b/src/components/ty-header.vue @@ -20,17 +20,9 @@ @select="onNavSelect" > @@ -219,7 +211,7 @@ function onUserCommand(command: string): void { color: var(--el-color-primary); } - :deep(.menu-icon) { + :deep(.icon) { @apply mr-1 text-base; } }