From b06f6a316b6a8293bb8aba6bfff33336b66c032a Mon Sep 17 00:00:00 2001 From: ahaos <8406649+lhailgl@user.noreply.gitee.com> Date: 星期三, 13 十二月 2023 09:01:52 +0800 Subject: [PATCH] !64 版本升级 * Merge branch 'dev' of gitee.com:JavaLionLi/plus-ui into ts * 升级依赖 * !61 fix: 删除重复环境变量ElUploadInstance * fix: 删除重复环境变量ElUploadInstance --- src/components/TopNav/index.vue | 98 +++++++++++++++++++++++++------------------------ 1 files changed, 50 insertions(+), 48 deletions(-) diff --git a/src/components/TopNav/index.vue b/src/components/TopNav/index.vue index 227fccc..6b416d4 100644 --- a/src/components/TopNav/index.vue +++ b/src/components/TopNav/index.vue @@ -1,19 +1,18 @@ <template> - <el-menu :default-active="activeMenu" mode="horizontal" @select="handleSelect" :ellipsis="false"> + <el-menu :default-active="activeMenu" mode="horizontal" :ellipsis="false" @select="handleSelect"> <template v-for="(item, index) in topMenus"> - <el-menu-item :style="{'--theme': theme}" :index="item.path" :key="index" v-if="index < visibleNumber" - ><svg-icon - v-if="item.meta && item.meta.icon && item.meta.icon !== '#'" - :icon-class="item.meta ? item.meta.icon : '' " /> {{ item.meta?.title }}</el-menu-item + <el-menu-item v-if="index < visibleNumber" :key="index" :style="{ '--theme': theme }" :index="item.path" + ><svg-icon v-if="item.meta && item.meta.icon && item.meta.icon !== '#'" :icon-class="item.meta ? item.meta.icon : ''" /> + {{ item.meta?.title }}</el-menu-item > </template> <!-- 椤堕儴鑿滃崟瓒呭嚭鏁伴噺鎶樺彔 --> - <el-sub-menu :style="{'--theme': theme}" index="more" v-if="topMenus.length > visibleNumber"> + <el-sub-menu v-if="topMenus.length > visibleNumber" :style="{ '--theme': theme }" index="more"> <template #title>鏇村鑿滃崟</template> <template v-for="(item, index) in topMenus"> - <el-menu-item :index="item.path" :key="index" v-if="index >= visibleNumber" - ><svg-icon :icon-class="item.meta ? item.meta.icon : '' " /> {{ item.meta?.title }}</el-menu-item + <el-menu-item v-if="index >= visibleNumber" :key="index" :index="item.path" + ><svg-icon :icon-class="item.meta ? item.meta.icon : ''" /> {{ item.meta?.title }}</el-menu-item > </template> </el-sub-menu> @@ -26,7 +25,7 @@ import useAppStore from '@/store/modules/app'; import useSettingsStore from '@/store/modules/settings'; import usePermissionStore from '@/store/modules/permission'; -import { RouteOption } from 'vue-router'; +import { RouteRecordRaw } from 'vue-router'; // 椤堕儴鏍忓垵濮嬫暟 const visibleNumber = ref<number>(-1); @@ -35,9 +34,9 @@ // 闅愯棌渚ц竟鏍忚矾鐢� const hideList = ['/index', '/user/profile']; -const appStore = useAppStore() -const settingsStore = useSettingsStore() -const permissionStore = usePermissionStore() +const appStore = useAppStore(); +const settingsStore = useSettingsStore(); +const permissionStore = usePermissionStore(); const route = useRoute(); const router = useRouter(); @@ -48,73 +47,73 @@ // 椤堕儴鏄剧ず鑿滃崟 const topMenus = computed(() => { - let topMenus:RouteOption[] = []; + let topMenus: RouteRecordRaw[] = []; routers.value.map((menu) => { if (menu.hidden !== true) { // 鍏煎椤堕儴鏍忎竴绾ц彍鍗曞唴閮ㄨ烦杞� - if (menu.path === "/") { - topMenus.push(menu.children? menu.children[0] : menu); + if (menu.path === '/') { + topMenus.push(menu.children ? menu.children[0] : menu); } else { - topMenus.push(menu); + topMenus.push(menu); } } - }) + }); return topMenus; -}) +}); // 璁剧疆瀛愯矾鐢� const childrenMenus = computed(() => { - let childrenMenus:RouteOption[] = []; + let childrenMenus: RouteRecordRaw[] = []; routers.value.map((router) => { router.children?.forEach((item) => { if (item.parentPath === undefined) { - if(router.path === "/") { - item.path = "/" + item.path; + if (router.path === '/') { + item.path = '/' + item.path; } else { - if(!isHttp(item.path)) { - item.path = router.path + "/" + item.path; + if (!isHttp(item.path)) { + item.path = router.path + '/' + item.path; } } item.parentPath = router.path; } childrenMenus.push(item); - }) - }) + }); + }); return constantRoutes.concat(childrenMenus); -}) +}); // 榛樿婵�娲荤殑鑿滃崟 const activeMenu = computed(() => { const path = route.path; let activePath = path; - if (path !== undefined && path.lastIndexOf("/") > 0 && hideList.indexOf(path) === -1) { + if (path !== undefined && path.lastIndexOf('/') > 0 && hideList.indexOf(path) === -1) { const tmpPath = path.substring(1, path.length); - activePath = "/" + tmpPath.substring(0, tmpPath.indexOf("/")); + activePath = '/' + tmpPath.substring(0, tmpPath.indexOf('/')); if (!route.meta.link) { - appStore.toggleSideBarHide(false); + appStore.toggleSideBarHide(false); } - } else if(!route.children) { + } else if (!route.children) { activePath = path; appStore.toggleSideBarHide(true); } activeRoutes(activePath); return activePath; -}) +}); const setVisibleNumber = () => { const width = document.body.getBoundingClientRect().width / 3; visibleNumber.value = parseInt(String(width / 85)); -} +}; const handleSelect = (key: string) => { currentIndex.value = key; - const route = routers.value.find(item => item.path === key); + const route = routers.value.find((item) => item.path === key); if (isHttp(key)) { // http(s):// 璺緞鏂扮獥鍙f墦寮� - window.open(key, "_blank"); + window.open(key, '_blank'); } else if (!route || !route.children) { // 娌℃湁瀛愯矾鐢辫矾寰勫唴閮ㄦ墦寮� - const routeMenu = childrenMenus.value.find(item => item.path === key); + const routeMenu = childrenMenus.value.find((item) => item.path === key); if (routeMenu && routeMenu.query) { let query = JSON.parse(routeMenu.query); router.push({ path: key, query: query }); @@ -127,35 +126,35 @@ activeRoutes(key); appStore.toggleSideBarHide(false); } -} +}; const activeRoutes = (key: string) => { - let routes:RouteOption[] = []; + let routes: RouteRecordRaw[] = []; if (childrenMenus.value && childrenMenus.value.length > 0) { childrenMenus.value.map((item) => { - if (key == item.parentPath || (key == "index" && "" == item.path)) { + if (key == item.parentPath || (key == 'index' && '' == item.path)) { routes.push(item); } }); } - if(routes.length > 0) { + if (routes.length > 0) { permissionStore.setSidebarRouters(routes); } else { appStore.toggleSideBarHide(true); } return routes; -} +}; onMounted(() => { - window.addEventListener('resize', setVisibleNumber) -}) + window.addEventListener('resize', setVisibleNumber); +}); onBeforeUnmount(() => { - window.removeEventListener('resize', setVisibleNumber) -}) + window.removeEventListener('resize', setVisibleNumber); +}); onMounted(() => { - setVisibleNumber() -}) + setVisibleNumber(); +}); </script> <style lang="scss"> @@ -168,7 +167,8 @@ margin: 0 10px !important; } -.topmenu-container.el-menu--horizontal > .el-menu-item.is-active, .el-menu--horizontal > .el-sub-menu.is-active .el-submenu__title { +.topmenu-container.el-menu--horizontal > .el-menu-item.is-active, +.el-menu--horizontal > .el-sub-menu.is-active .el-submenu__title { border-bottom: 2px solid #{'var(--theme)'} !important; color: #303133; } @@ -184,7 +184,9 @@ } /* 鑳屾櫙鑹查殣钘� */ -.topmenu-container.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus, .topmenu-container.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover, .topmenu-container.el-menu--horizontal>.el-submenu .el-submenu__title:hover { +.topmenu-container.el-menu--horizontal > .el-menu-item:not(.is-disabled):focus, +.topmenu-container.el-menu--horizontal > .el-menu-item:not(.is-disabled):hover, +.topmenu-container.el-menu--horizontal > .el-submenu .el-submenu__title:hover { background-color: #ffffff !important; } -- Gitblit v1.9.3