mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-24 07:49:47 +08:00
fix(projects): 修复vertical-mix导航模式的二级菜单显示问题
This commit is contained in:
@ -27,7 +27,6 @@ export default function useReloadContext() {
|
||||
}
|
||||
|
||||
return {
|
||||
context,
|
||||
useReloadProvide,
|
||||
useReloadInject
|
||||
};
|
||||
|
@ -1 +1,3 @@
|
||||
export { setupAppContext, useReloadInject } from './app';
|
||||
|
||||
export { useVerticalMixSiderContext } from './part';
|
||||
|
@ -0,0 +1,3 @@
|
||||
import useVerticalMixSiderContext from './useVerticalMixSiderContext';
|
||||
|
||||
export { useVerticalMixSiderContext };
|
||||
|
54
src/context/part/useVerticalMixSiderContext.ts
Normal file
54
src/context/part/useVerticalMixSiderContext.ts
Normal file
@ -0,0 +1,54 @@
|
||||
import { ref } from 'vue';
|
||||
import type { Ref } from 'vue';
|
||||
import { useContext, useBoolean } from '@/hooks';
|
||||
|
||||
interface VerticalMixSiderContext {
|
||||
/** 子菜单可见性 */
|
||||
childMenuVisible: Ref<boolean>;
|
||||
/** 展示子菜单 */
|
||||
showChildMenu(): void;
|
||||
/** 隐藏子菜单 */
|
||||
hideChildMenu(): void;
|
||||
/** 鼠标悬浮的一级菜单对应的路由名称 */
|
||||
hoverRouteName: Ref<string>;
|
||||
/** 设置悬浮路由名称 */
|
||||
setHoverRouteName(name: string): void;
|
||||
isMouseEnterChildMenu: Ref<boolean>;
|
||||
setMouseEnterChildMenu(): void;
|
||||
setMouseLeaveChildMenu(): void;
|
||||
}
|
||||
|
||||
const { useProvide, useInject: useVerticalMixSiderInject } = useContext<VerticalMixSiderContext>();
|
||||
|
||||
export default function useVerticalMixSiderContext() {
|
||||
const { bool: childMenuVisible, setTrue: showChildMenu, setFalse: hideChildMenu } = useBoolean();
|
||||
const {
|
||||
bool: isMouseEnterChildMenu,
|
||||
setTrue: setMouseEnterChildMenu,
|
||||
setFalse: setMouseLeaveChildMenu
|
||||
} = useBoolean();
|
||||
|
||||
const hoverRouteName = ref('');
|
||||
function setHoverRouteName(name: string) {
|
||||
hoverRouteName.value = name;
|
||||
}
|
||||
|
||||
const context: VerticalMixSiderContext = {
|
||||
childMenuVisible,
|
||||
showChildMenu,
|
||||
hideChildMenu,
|
||||
hoverRouteName,
|
||||
setHoverRouteName,
|
||||
isMouseEnterChildMenu,
|
||||
setMouseEnterChildMenu,
|
||||
setMouseLeaveChildMenu
|
||||
};
|
||||
function useVerticalMixSiderProvide() {
|
||||
useProvide(context);
|
||||
}
|
||||
|
||||
return {
|
||||
useVerticalMixSiderProvide,
|
||||
useVerticalMixSiderInject
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user