Commit e16de956 authored by guxukai's avatar guxukai

fix: 折叠菜单重复获取路由的bug

parent 6abd5d2b
<template> <template>
<g-query-wrapper :data="menuData" :loading="menuLoading" :error="menuError" :run="menuRun"> <g-query-wrapper :data="menuData" :loading="menuLoading" :error="menuError" :run="menuRun">
<aside-menu-item <el-menu
v-for="menu in $router.options.routes :default-active="currentActiveRoute"
.find(_ => _.name === 'default') :background-color="themeFlag === 'light' ? 'transparent' : isCollapse ? '#151930' : '#1f2a37'"
.children.filter(_ => _.meta.showInAsideMenu)" :text-color="themeFlag === 'light' ? '#374151' : '#ffffff'"
:key="menu.name" :active-text-color="themeFlag === 'light' ? '#047857' : '#6EE7B7'"
:menu="menu" :collapse="isCollapse"
/> :default-openeds="['home']"
class="border-none"
>
<aside-menu-item
v-for="menu in $router.options.routes
.find(_ => _.name === 'default')
.children.filter(_ => _.meta.showInAsideMenu)"
:key="menu.name"
:menu="menu"
/>
</el-menu>
</g-query-wrapper> </g-query-wrapper>
</template> </template>
<script lang="ts"> <script lang="ts">
...@@ -23,16 +33,25 @@ import { useRequest } from 'vue-request' ...@@ -23,16 +33,25 @@ import { useRequest } from 'vue-request'
import { AuthMenuInfo } from '@shared/models/auth-service/AuthMenuInfo' import { AuthMenuInfo } from '@shared/models/auth-service/AuthMenuInfo'
import { GATEWAY_CODE } from '@shared/http/constants' import { GATEWAY_CODE } from '@shared/http/constants'
import { filterAsyncRoutes, hasPermission } from '@shared/utils/route-utils' import { filterAsyncRoutes, hasPermission } from '@shared/utils/route-utils'
import { computed } from 'vue'
const props = defineProps({ const props = defineProps({
enableRouteFilter: { enableRouteFilter: {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
themeFlag: {
type: String,
},
isCollapse: {
type: Boolean,
default: false,
},
}) })
const $router = useRouter() const $router = useRouter()
const $route = useRoute() const $route = useRoute()
const userStore = useUser() const userStore = useUser()
const authStore = useAuth() const authStore = useAuth()
const currentActiveRoute = computed(() => $route.name as string)
const { const {
data: menuData, data: menuData,
loading: menuLoading, loading: menuLoading,
......
...@@ -29,17 +29,7 @@ ...@@ -29,17 +29,7 @@
:class="[isCollapse ? 'bg-[#151930]' : 'bg-[#1f2a37]']" :class="[isCollapse ? 'bg-[#151930]' : 'bg-[#1f2a37]']"
style="height: 1px" style="height: 1px"
></div> ></div>
<el-menu <aside-menu-list :enable-route-filter="enableRouteFilter" :theme-flag="themeFlag" :is-collapse="isCollapse" />
:default-active="currentActiveRoute"
:background-color="themeFlag === 'light' ? 'transparent' : isCollapse ? '#151930' : '#1f2a37'"
:text-color="themeFlag === 'light' ? '#374151' : '#ffffff'"
:active-text-color="themeFlag === 'light' ? '#047857' : '#6EE7B7'"
:collapse="isCollapse"
:default-openeds="['home']"
class="border-none"
>
<aside-menu-list :enable-route-filter="enableRouteFilter" />
</el-menu>
</div> </div>
</div> </div>
</el-aside> </el-aside>
...@@ -144,7 +134,6 @@ const layoutStore = useLayout() ...@@ -144,7 +134,6 @@ const layoutStore = useLayout()
const PROJECT_NAME = process.env.APP_NAME const PROJECT_NAME = process.env.APP_NAME
const $route = useRoute() const $route = useRoute()
const $router = useRouter() const $router = useRouter()
const currentActiveRoute = computed(() => $route.name as string)
const breadcrumbList = computed(() => layoutStore.breadcrumbList) const breadcrumbList = computed(() => layoutStore.breadcrumbList)
const localeList: { key: LocaleType; value: string }[] = [ const localeList: { key: LocaleType; value: string }[] = [
{ {
......
...@@ -19,4 +19,5 @@ export const i18n = createI18n({ ...@@ -19,4 +19,5 @@ export const i18n = createI18n({
...enLocale, ...enLocale,
}, },
}, },
silentTranslationWarn: true,
}) })
...@@ -4,5 +4,6 @@ declare module 'vue-router' { ...@@ -4,5 +4,6 @@ declare module 'vue-router' {
interface RouteMeta { interface RouteMeta {
title?: string title?: string
level?: number level?: number
showInAsideMenu?: boolean
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment