Pre Merge pull request !50 from 小菜鸟儿/master
This commit is contained in:
commit
ea637e48de
|
|
@ -189,6 +189,13 @@ onMounted(() => {
|
|||
state.liOldIndex = null;
|
||||
state.liOldPath = null;
|
||||
});
|
||||
|
||||
/**
|
||||
* 监听分栏模式菜单更新
|
||||
*/
|
||||
mittBus.on('setSendColumns',() => {
|
||||
setFilterRoutes();
|
||||
});
|
||||
});
|
||||
// 页面卸载时
|
||||
onUnmounted(() => {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
};
|
||||
// 处理 url,地址栏链接有参数时,tagsview 右键菜单刷新功能失效问题,感谢 @ZzZz-RIPPER、@dejavuuuuu
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue