Pre Merge pull request !50 from 小菜鸟儿/master

This commit is contained in:
小菜鸟儿 2024-03-17 14:54:17 +00:00 committed by Gitee
commit ea637e48de
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
6 changed files with 50 additions and 6 deletions

View File

@ -189,6 +189,13 @@ onMounted(() => {
state.liOldIndex = null;
state.liOldPath = null;
});
/**
* 监听分栏模式菜单更新
*/
mittBus.on('setSendColumns',() => {
setFilterRoutes();
});
});
//
onUnmounted(() => {

View File

@ -387,7 +387,13 @@ const onTagsClick = (v: RouteItem, k: number) => {
// /
if (getThemeConfig.value.layout === 'columns') {
const item: RouteItem = routesList.value.find((r: RouteItem) => r.path.indexOf(`/${v.path.split('/')[1]}`) > -1);
!item.children ? (getThemeConfig.value.isCollapse = true) : (getThemeConfig.value.isCollapse = false);
let child=[];
for(let i=0;i<item.children.length;i++){
if(item.children[i].meta.isHide) continue;
child.push(item.children[i]);
}
//
child.length<=1 ? (getThemeConfig.value.isCollapse = true) : (getThemeConfig.value.isCollapse = false);
}
};
// urltagsview @ZzZz-RIPPER@dejavuuuuu

View File

@ -44,7 +44,9 @@ const isLayoutTransverse = computed(() => {
// //
const setFilterRoutes = () => {
let { layout, isClassicSplitMenu } = themeConfig.value;
if (layout === 'classic' && isClassicSplitMenu) {
if (layout === 'columns') {
mittBus.emit('setSendColumns');
}else if (layout === 'classic' && isClassicSplitMenu) {
state.menuList = delClassicChildren(filterRoutesFun(routesList.value));
const resData = setSendClassicChildren(route.path);
mittBus.emit('setSendClassicChildren', resData);

View File

@ -64,8 +64,8 @@
</div>
<el-dropdown :show-timeout="70" :hide-timeout="50" @command="onHandleCommandClick">
<span class="layout-navbars-breadcrumb-user-link">
<img :src="userInfos.photo" class="layout-navbars-breadcrumb-user-link-photo mr5" />
{{ userInfos.userName === '' ? 'common' : userInfos.userName }}
<img :src="state.userInfo.photo" class="layout-navbars-breadcrumb-user-link-photo mr5" />
{{ state.userInfo.userName === '' ? 'common' : state.userInfo.userName }}
<el-icon class="el-icon--right">
<ele-ArrowDown />
</el-icon>
@ -113,6 +113,7 @@ const { userInfos } = storeToRefs(stores);
const { themeConfig } = storeToRefs(storesThemeConfig);
const searchRef = ref();
const state = reactive({
userInfo:userInfos,
isScreenfull: false,
disabledI18n: 'zh-cn',
disabledSize: 'large',
@ -218,6 +219,16 @@ onMounted(() => {
initI18nOrSize('globalComponentSize', 'disabledSize');
initI18nOrSize('globalI18n', 'disabledI18n');
}
//
mittBus.on("refreshUserInfo",(res?:any)=>{
if(res!=undefined){
state.userInfo=res;
return;
}
stores.getApiUserInfo().then((res:any)=>{
state.userInfo=res;
});
})
});
</script>

View File

@ -10,6 +10,7 @@ import { formatTwoStageRoutes, formatFlatteningRoutes, router } from '/@/router/
import { useRoutesList } from '/@/stores/routesList';
import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes';
import { useMenuApi } from '/@/api/menu/index';
import mittBus from '/@/utils/mitt';
// 后端控制路由
@ -119,11 +120,24 @@ export function getBackEndControlRoutes() {
/**
*
* @description
* @description
* @description /src/views/system/menu/component/addMenu.vue
*/
export async function setBackEndControlRefreshRoutes() {
await getBackEndControlRoutes();
//重新获取路由信息
const res=await getBackEndControlRoutes();
//后端路由转换
const menu_data=await backEndComponent(res.data);
// 处理路由component替换 dynamicRoutes/@/router/route第一个顶级 children 的路由
dynamicRoutes[0].children = menu_data;
// 添加动态路由
await setAddRoute();
// 设置路由到 pinia routesList 中(已处理成多级嵌套路由)及缓存多级嵌套数组处理后的一维数组
await setFilterMenuAndCacheTagsViewRoutes();
// 触发菜单更新监听
mittBus.emit('getBreadcrumbIndexSetFilterRoutes');
}
/**

4
src/types/mitt.d.ts vendored
View File

@ -3,6 +3,8 @@
*
* @method openSetingsDrawer
* @method restoreDefault
* @method refreshUserInfo
* @method setSendColumns
* @method setSendColumnsChildren navMenu
* @method setSendClassicChildren navMenu
* @method getBreadcrumbIndexSetFilterRoutes navMenu
@ -15,6 +17,8 @@
declare type MittType<T = any> = {
openSetingsDrawer?: string;
restoreDefault?: string;
refreshUserInfo: T;
setSendColumns: T;
setSendColumnsChildren: T;
setSendClassicChildren: T;
getBreadcrumbIndexSetFilterRoutes?: string;