From 3ffa64648831ceade32fba83047d0e99ff92c990 Mon Sep 17 00:00:00 2001 From: 张涛 <“2538313560@qq.com”> Date: 星期一, 18 十一月 2024 14:06:00 +0800 Subject: [PATCH] fix:改动 --- src/components/menu/index.vue | 61 ++++++++++++++++++++++++------ 1 files changed, 48 insertions(+), 13 deletions(-) diff --git a/src/components/menu/index.vue b/src/components/menu/index.vue index 0702897..d565cc7 100644 --- a/src/components/menu/index.vue +++ b/src/components/menu/index.vue @@ -2,12 +2,11 @@ import { defineComponent, ref, h, compile, computed } from 'vue'; import { useI18n } from 'vue-i18n'; import { useRoute, useRouter, RouteRecordRaw } from 'vue-router'; - import type { RouteMeta } from 'vue-router'; + import type, { RouteMeta } from 'vue-router'; import { useAppStore } from '@/store'; import { listenerRouteChange } from '@/utils/route-listener'; import { openWindow, regexUrl } from '@/utils'; import useMenuTree from './use-menu-tree'; - export default defineComponent({ emit: ['collapse'], setup() { @@ -29,9 +28,11 @@ const topMenu = computed(() => appStore.topMenu); const openKeys = ref<string[]>([]); const selectedKey = ref<string[]>([]); + const flog = ref(false); const goto = (item: RouteRecordRaw) => { // Open external link + if (regexUrl.test(item.path)) { openWindow(item.path); selectedKey.value = [item.name as string]; @@ -39,11 +40,25 @@ } // Eliminate external link side effects const { hideInMenu, activeMenu } = item.meta as RouteMeta; + if (route.name === item.name && !hideInMenu && !activeMenu) { selectedKey.value = [item.name as string]; return; } + + // const firstMenuNameArr=['model','knowledge','session','sessionRecords']; + // const suffix='Manager'; + // if(firstMenuNameArr.indexOf(item.name)!=-1){ + // router.push({ + // name: `${item.name}${suffix}`, + // }); + // } else{ + // router.push({ + // name: item.name, + // }); + // } // Trigger router change + router.push({ name: item.name, }); @@ -71,7 +86,8 @@ }; listenerRouteChange((newRoute) => { const { requiresAuth, activeMenu, hideInMenu } = newRoute.meta; - if (requiresAuth && (!hideInMenu || activeMenu)) { + // if (requiresAuth && (!hideInMenu || activeMenu)) {//闄ゅ幓杩欎袱涓垽鏂悗锛屽彲浠ユ甯稿睍寮�鑿滃崟 + if (requiresAuth) { const menuOpenKeys = findMenuOpenKeys( (activeMenu || newRoute.name) as string ); @@ -83,6 +99,7 @@ activeMenu || menuOpenKeys[menuOpenKeys.length - 1], ]; } + console.log(selectedKey.value, 48877); }, true); const setCollapse = (val: boolean) => { if (appStore.device === 'desktop') @@ -111,6 +128,12 @@ ) : ( <a-menu-item key={element?.name} + class={ + menuTree.value.length == 1 && + menuTree.value[0].name == 'sessionManager' + ? 'session-manager' + : '' + } v-slots={{ icon }} onClick={() => goto(element)} > @@ -125,6 +148,13 @@ return travel(menuTree.value); }; + // selected-keys={selectedKey.value} + // v-if={ + // menuTree.value.length == 1 && + // menuTree.value[0].name != 'sessionManager' + // } + console.log(menuTree.value, 68877); + return () => ( <a-menu mode={topMenu.value ? 'horizontal' : 'vertical'} @@ -132,8 +162,8 @@ v-model:open-keys={openKeys.value} show-collapse-button={appStore.device !== 'mobile'} auto-open={false} - selected-keys={selectedKey.value} auto-open-selected={true} + selected-keys={selectedKey.value} level-indent={34} style="height: 100%;width:100%;" onCollapse={setCollapse} @@ -146,15 +176,20 @@ </script> <style lang="less" scoped> - :deep(.arco-menu-inner) { - .arco-menu-inline-header { - display: flex; - align-items: center; - } - .arco-icon { - &:not(.arco-icon-down) { - font-size: 18px; - } +:deep(.arco-menu-inner) { + .arco-menu-inline-header { + display: flex; + align-items: center; + } + + .arco-icon { + &:not(.arco-icon-down) { + font-size: 18px; } } +} + +.session-manager { + display: none; +} </style> -- Gitblit v1.8.0