菜单名称一致路由404问题
This commit is contained in:
@@ -11,11 +11,11 @@
|
|||||||
<el-breadcrumb-item v-for="(v, k) in state.breadcrumbList" :key="!v.meta.tagsViewName ? v.name : v.meta.tagsViewName">
|
<el-breadcrumb-item v-for="(v, k) in state.breadcrumbList" :key="!v.meta.tagsViewName ? v.name : v.meta.tagsViewName">
|
||||||
<span v-if="k === state.breadcrumbList.length - 1" class="layout-navbars-breadcrumb-span">
|
<span v-if="k === state.breadcrumbList.length - 1" class="layout-navbars-breadcrumb-span">
|
||||||
<SvgIcon :name="v.meta.icon" class="layout-navbars-breadcrumb-iconfont" v-if="themeConfig.isBreadcrumbIcon" />
|
<SvgIcon :name="v.meta.icon" class="layout-navbars-breadcrumb-iconfont" v-if="themeConfig.isBreadcrumbIcon" />
|
||||||
<div v-if="!v.meta.tagsViewName">{{ $t(v.name) }}</div>
|
<div v-if="!v.meta.tagsViewName">{{ $t(v.name.split("_")[0]) }}</div>
|
||||||
<div v-else>{{ v.meta.tagsViewName }}</div>
|
<div v-else>{{ v.meta.tagsViewName.split("_")[0] }}</div>
|
||||||
</span>
|
</span>
|
||||||
<a v-else @click.prevent="onBreadcrumbClick(v)">
|
<a v-else @click.prevent="onBreadcrumbClick(v)">
|
||||||
<SvgIcon :name="v.meta.icon" class="layout-navbars-breadcrumb-iconfont" v-if="themeConfig.isBreadcrumbIcon" />{{ $t(v.name) }}
|
<SvgIcon :name="v.meta.icon" class="layout-navbars-breadcrumb-iconfont" v-if="themeConfig.isBreadcrumbIcon" />{{ $t(v.name.split('_')[0]) }}
|
||||||
</a>
|
</a>
|
||||||
</el-breadcrumb-item>
|
</el-breadcrumb-item>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
|
|||||||
@@ -389,6 +389,9 @@ const onMousedownMenu = (v: RouteItem, e: MouseEvent) => {
|
|||||||
// 当前的 tagsView 项点击时
|
// 当前的 tagsView 项点击时
|
||||||
const onTagsClick = (v: RouteItem, k: number) => {
|
const onTagsClick = (v: RouteItem, k: number) => {
|
||||||
state.tagsRefsIndex = k;
|
state.tagsRefsIndex = k;
|
||||||
|
if(v.name.indexOf("router.home")!=0){
|
||||||
|
v.name=v.name.replaceAll("_","").replaceAll(v.id,"")+"_"+v.id
|
||||||
|
}
|
||||||
router.push(v);
|
router.push(v);
|
||||||
};
|
};
|
||||||
// 处理 url,地址栏链接有参数时,tagsview 右键菜单刷新功能失效问题,感谢 @ZzZz-RIPPER、@dejavuuuuu
|
// 处理 url,地址栏链接有参数时,tagsview 右键菜单刷新功能失效问题,感谢 @ZzZz-RIPPER、@dejavuuuuu
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<el-sub-menu :index="val.path" v-if="val.children && val.children.length > 0" :key="val.path">
|
<el-sub-menu :index="val.path" v-if="val.children && val.children.length > 0" :key="val.path">
|
||||||
<template #title>
|
<template #title>
|
||||||
<SvgIcon :name="val.meta.icon"/>
|
<SvgIcon :name="val.meta.icon"/>
|
||||||
<span class="font-semibold">{{ $t(val.name) }}</span>
|
<span class="font-semibold">{{ $t(val.name.split('_')[0]) }}</span>
|
||||||
</template>
|
</template>
|
||||||
<SubItem :chil="val.children"/>
|
<SubItem :chil="val.children"/>
|
||||||
</el-sub-menu>
|
</el-sub-menu>
|
||||||
@@ -16,12 +16,12 @@
|
|||||||
<template #title v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)">
|
<template #title v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)">
|
||||||
<!-- 此处可 指定 color='red' 等指定顶栏SVG颜色 -->
|
<!-- 此处可 指定 color='red' 等指定顶栏SVG颜色 -->
|
||||||
<SvgIcon :name="val.meta.icon"/>
|
<SvgIcon :name="val.meta.icon"/>
|
||||||
<p class="font-semibold">{{ $t(val.name) }}</p>
|
<p class="font-semibold">{{ $t(val.name.split('_')[0]) }}</p>
|
||||||
</template>
|
</template>
|
||||||
<template #title v-else>
|
<template #title v-else>
|
||||||
<a class="w100" @click.prevent="onALinkClick(val)">
|
<a class="w100" @click.prevent="onALinkClick(val)">
|
||||||
<SvgIcon :name="val.meta.icon"/>
|
<SvgIcon :name="val.meta.icon"/>
|
||||||
{{ $t(val.name) }}
|
{{ $t(val.name.split('_')[0]) }}
|
||||||
</a>
|
</a>
|
||||||
</template>
|
</template>
|
||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
<el-sub-menu :index="val.path" :key="val.path" v-if="val.children && val.children.length > 0">
|
<el-sub-menu :index="val.path" :key="val.path" v-if="val.children && val.children.length > 0">
|
||||||
<template #title>
|
<template #title>
|
||||||
<SvgIcon :name="val.meta.icon" />
|
<SvgIcon :name="val.meta.icon" />
|
||||||
<span>{{ $t(val.name) }}</span>
|
<!-- <span>{{ $t(val.name) }}</span>-->
|
||||||
|
<span>{{ $t(val.name.split('_')[0]) }}</span>
|
||||||
</template>
|
</template>
|
||||||
<sub-item :chil="val.children" />
|
<sub-item :chil="val.children" />
|
||||||
</el-sub-menu>
|
</el-sub-menu>
|
||||||
@@ -11,12 +12,14 @@
|
|||||||
<el-menu-item :index="val.path" :key="val.path">
|
<el-menu-item :index="val.path" :key="val.path">
|
||||||
<template v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)">
|
<template v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)">
|
||||||
<SvgIcon :name="val.meta.icon" />
|
<SvgIcon :name="val.meta.icon" />
|
||||||
<span>{{ $t(val.name) }}</span>
|
<!-- <span>{{ $t(val.name) }}</span>-->
|
||||||
|
<span>{{ $t(val.name.split('_')[0]) }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<a class="w100" @click.prevent="onALinkClick(val)">
|
<a class="w100" @click.prevent="onALinkClick(val)">
|
||||||
<SvgIcon :name="val.meta.icon" />
|
<SvgIcon :name="val.meta.icon" />
|
||||||
{{ $t(val.name) }}
|
<!-- {{ $t(val.name) }}-->
|
||||||
|
{{ $t(val.name.split('_')[0]) }}
|
||||||
</a>
|
</a>
|
||||||
</template>
|
</template>
|
||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<el-sub-menu :index="val.path" v-if="val.children && val.children.length > 0" :key="val.path">
|
<el-sub-menu :index="val.path" v-if="val.children && val.children.length > 0" :key="val.path">
|
||||||
<template #title>
|
<template #title>
|
||||||
<SvgIcon :name="val.meta.icon" />
|
<SvgIcon :name="val.meta.icon" />
|
||||||
<span>{{ $t(val.name) }}</span>
|
<span>{{ $t(val.name.split('_')[0]) }}</span>
|
||||||
</template>
|
</template>
|
||||||
<SubItem :chil="val.children" />
|
<SubItem :chil="val.children" />
|
||||||
</el-sub-menu>
|
</el-sub-menu>
|
||||||
@@ -21,10 +21,10 @@
|
|||||||
<el-menu-item :index="val.path" :key="val.path">
|
<el-menu-item :index="val.path" :key="val.path">
|
||||||
<SvgIcon :name="val.meta.icon" />
|
<SvgIcon :name="val.meta.icon" />
|
||||||
<template #title v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)">
|
<template #title v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)">
|
||||||
<span>{{ $t(val.name) }}</span>
|
<span>{{ $t(val.name.split('_')[0]) }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template #title v-else>
|
<template #title v-else>
|
||||||
<a class="w100" @click.prevent="onALinkClick(val)">{{ $t(val.name) }}</a>
|
<a class="w100" @click.prevent="onALinkClick(val)">{{ $t(val.name.split('_')[0]) }}</a>
|
||||||
</template>
|
</template>
|
||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -66,6 +66,9 @@ export function formatTwoStageRoutes(arr: any) {
|
|||||||
if (v.path === '/') {
|
if (v.path === '/') {
|
||||||
newArr.push({ component: v.component, name: v.name, path: v.path, redirect: v.redirect, meta: v.meta, children: [] });
|
newArr.push({ component: v.component, name: v.name, path: v.path, redirect: v.redirect, meta: v.meta, children: [] });
|
||||||
} else {
|
} else {
|
||||||
|
if (v.id) {
|
||||||
|
v.name=v.name+"_"+v.id;
|
||||||
|
}
|
||||||
// 判断是否是动态路由(xx/:id/:name),用于 tagsView 等中使用
|
// 判断是否是动态路由(xx/:id/:name),用于 tagsView 等中使用
|
||||||
if (v.path.indexOf('/:') > -1) {
|
if (v.path.indexOf('/:') > -1) {
|
||||||
v.meta['isDynamic'] = true;
|
v.meta['isDynamic'] = true;
|
||||||
|
|||||||
@@ -47,8 +47,14 @@ export function setTagsViewNameI18n(item: any) {
|
|||||||
tagsViewName = query?.tagsViewName || params?.tagsViewName;
|
tagsViewName = query?.tagsViewName || params?.tagsViewName;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
let name=''
|
||||||
|
if (item.name.indexOf("_") >= 0) {
|
||||||
|
name=item.name.split("_")[0]
|
||||||
|
}else{
|
||||||
|
name=item.name
|
||||||
|
}
|
||||||
// 非自定义 tagsView 名称
|
// 非自定义 tagsView 名称
|
||||||
tagsViewName = i18n.global.t(item.name);
|
tagsViewName = i18n.global.t(name);
|
||||||
}
|
}
|
||||||
return tagsViewName;
|
return tagsViewName;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user