Compare commits

..

No commits in common. "56056ec3d098a29ba08cbd9afabcf08f86938332" and "9dde50d61c33ae1e1fd8147ca756f1422f8d473a" have entirely different histories.

4 changed files with 27 additions and 27 deletions

2
components.d.ts vendored
View File

@ -60,7 +60,6 @@ declare module 'vue' {
TyFooter: typeof import('./src/components/ty-footer.vue')['default'] TyFooter: typeof import('./src/components/ty-footer.vue')['default']
TyForm: typeof import('./src/components/ty-form.vue')['default'] TyForm: typeof import('./src/components/ty-form.vue')['default']
TyHeader: typeof import('./src/components/ty-header.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'] TyMixbar: typeof import('./src/components/ty-mixbar.vue')['default']
TyNotice: typeof import('./src/components/ty-notice.vue')['default'] TyNotice: typeof import('./src/components/ty-notice.vue')['default']
TySearchForm: typeof import('./src/components/ty-search-form.vue')['default'] TySearchForm: typeof import('./src/components/ty-search-form.vue')['default']
@ -126,7 +125,6 @@ declare global {
const TyFooter: typeof import('./src/components/ty-footer.vue')['default'] const TyFooter: typeof import('./src/components/ty-footer.vue')['default']
const TyForm: typeof import('./src/components/ty-form.vue')['default'] const TyForm: typeof import('./src/components/ty-form.vue')['default']
const TyHeader: typeof import('./src/components/ty-header.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 TyMixbar: typeof import('./src/components/ty-mixbar.vue')['default']
const TyNotice: typeof import('./src/components/ty-notice.vue')['default'] const TyNotice: typeof import('./src/components/ty-notice.vue')['default']
const TySearchForm: typeof import('./src/components/ty-search-form.vue')['default'] const TySearchForm: typeof import('./src/components/ty-search-form.vue')['default']

View File

@ -20,9 +20,17 @@
@select="onNavSelect" @select="onNavSelect"
> >
<template v-for="item in menus" :key="item.code"> <template v-for="item in menus" :key="item.code">
<ty-menu-node v-if="layout === 'top'" :node="item" /> <el-sub-menu v-if="layout === 'top' && item.children?.length" :index="item.code">
<template #title>
<icon type="iconify" :icon="item.icon ?? 'mdi:menu'" class="menu-icon" />
<span>{{ item.name }}</span>
</template>
<el-menu-item v-for="child in item.children" :key="child.code" :index="child.path ?? child.code">
{{ child.name }}
</el-menu-item>
</el-sub-menu>
<el-menu-item v-else :index="item.code"> <el-menu-item v-else :index="item.code">
<icon type="iconify" :icon="item.icon ?? 'mdi:menu'" /> <icon type="iconify" :icon="item.icon ?? 'mdi:menu'" class="menu-icon" />
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
</el-menu-item> </el-menu-item>
</template> </template>
@ -211,7 +219,7 @@ function onUserCommand(command: string): void {
color: var(--el-color-primary); color: var(--el-color-primary);
} }
:deep(.icon) { :deep(.menu-icon) {
@apply mr-1 text-base; @apply mr-1 text-base;
} }
} }

View File

@ -1,21 +0,0 @@
<template>
<el-sub-menu v-if="node.children?.length" :index="node.code">
<template #title>
<icon type="iconify" :icon="node.icon ?? 'mdi:menu'" />
<span>{{ node.name }}</span>
</template>
<TyMenuNode v-for="child in node.children" :key="child.code" :node="child" />
</el-sub-menu>
<el-menu-item v-else :index="node.path ?? node.code">
<icon type="iconify" :icon="node.icon ?? 'mdi:menu'" />
<span>{{ node.name }}</span>
</el-menu-item>
</template>
<script setup lang="ts">
import type { ResourceNode } from '@/types/resource'
defineOptions({ name: 'TyMenuNode' })
defineProps<{ node: ResourceNode }>()
</script>

View File

@ -9,7 +9,22 @@
popper-class="ty-menu-popper" popper-class="ty-menu-popper"
@select="onSelect" @select="onSelect"
> >
<ty-menu-node v-for="item in menus" :key="item.code" :node="item" /> <template v-for="item in menus" :key="item.code">
<el-sub-menu v-if="item.children?.length" :index="item.code">
<template #title>
<icon type="iconify" :icon="item.icon ?? 'mdi:menu'" />
<span>{{ item.name }}</span>
</template>
<el-menu-item v-for="child in item.children" :key="child.code" :index="child.path ?? child.code">
<icon v-if="child.icon" type="iconify" :icon="child.icon" />
<span>{{ child.name }}</span>
</el-menu-item>
</el-sub-menu>
<el-menu-item v-else :index="item.path ?? item.code">
<icon type="iconify" :icon="item.icon ?? 'mdi:menu'" />
<span>{{ item.name }}</span>
</el-menu-item>
</template>
</el-menu> </el-menu>
</el-scrollbar> </el-scrollbar>
</aside> </aside>