From c334c2d76c1b51d0fbe1531bf524e1b90f921a7c Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 20 五月 2025 15:16:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/layout/components/Sidebar/SidebarItem.vue | 32 +++++++++++++++++++------------- 1 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue index 52d210a..f395d95 100644 --- a/src/layout/components/Sidebar/SidebarItem.vue +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -4,20 +4,20 @@ <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)"> <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{ 'submenu-title-noDropdown': !isNest }"> <svg-icon :icon-class="onlyOneChild.meta.icon || (item.meta && item.meta.icon)"/> - <template #title>{{ onlyOneChild.meta.title }}</template> + <template #title><span class="menu-title" :title="hasTitle(onlyOneChild.meta.title)">{{ onlyOneChild.meta.title }}</span></template> </el-menu-item> </app-link> </template> - <el-sub-menu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body> + <el-sub-menu v-else ref="subMenu" :index="resolvePath(item.path)" teleported> <template v-if="item.meta" #title> <svg-icon :icon-class="item.meta && item.meta.icon" /> - <span>{{ item.meta.title }}</span> + <span class="menu-title" :title="hasTitle(item.meta.title)">{{ item.meta.title }}</span> </template> <sidebar-item - v-for="child in item.children" - :key="child.path" + v-for="(child, index) in item.children" + :key="child.path + index" :is-nest="true" :item="child" :base-path="resolvePath(child.path)" @@ -48,20 +48,18 @@ } }) -const onlyOneChild = ref({}); +const onlyOneChild = ref({}) function hasOneShowingChild(children = [], parent) { if (!children) { - children = []; + children = [] } const showingChildren = children.filter(item => { if (item.hidden) { return false - } else { - // Temp set(will be used if only has one showing child) - onlyOneChild.value = item - return true } + onlyOneChild.value = item + return true }) // When there is only one child router, the child router is displayed by default @@ -76,7 +74,7 @@ } return false -}; +} function resolvePath(routePath, routeQuery) { if (isExternal(routePath)) { @@ -86,9 +84,17 @@ return props.basePath } if (routeQuery) { - let query = JSON.parse(routeQuery); + let query = JSON.parse(routeQuery) return { path: getNormalPath(props.basePath + '/' + routePath), query: query } } return getNormalPath(props.basePath + '/' + routePath) } + +function hasTitle(title){ + if (title.length > 5) { + return title + } else { + return "" + } +} </script> -- Gitblit v1.9.3