mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-24 07:49:47 +08:00
feat(projects): 添加常用组件、composables函数
This commit is contained in:
@ -1,10 +0,0 @@
|
||||
import useReloadContext from './useReloadContext';
|
||||
|
||||
const { useReloadProvide, useReloadInject } = useReloadContext();
|
||||
|
||||
/** 从App组件注入provide */
|
||||
function setupAppContext() {
|
||||
useReloadProvide();
|
||||
}
|
||||
|
||||
export { setupAppContext, useReloadInject };
|
@ -1,33 +0,0 @@
|
||||
import { ref, nextTick } from 'vue';
|
||||
import type { Ref } from 'vue';
|
||||
import { useContext } from '@/hooks';
|
||||
|
||||
interface ReloadContext {
|
||||
reload: Ref<boolean>;
|
||||
handleReload(): void;
|
||||
}
|
||||
const { useProvide, useInject: useReloadInject } = useContext<ReloadContext>();
|
||||
|
||||
/** 重载上下文 */
|
||||
export default function useReloadContext() {
|
||||
const reload = ref(true);
|
||||
function handleReload() {
|
||||
reload.value = false;
|
||||
nextTick(() => {
|
||||
reload.value = true;
|
||||
});
|
||||
}
|
||||
|
||||
const context: ReloadContext = {
|
||||
reload,
|
||||
handleReload
|
||||
};
|
||||
function useReloadProvide() {
|
||||
useProvide(context);
|
||||
}
|
||||
|
||||
return {
|
||||
useReloadProvide,
|
||||
useReloadInject
|
||||
};
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
export * from './app';
|
||||
export * from './part';
|
@ -1,3 +0,0 @@
|
||||
import useVerticalMixSiderContext from './useVerticalMixSiderContext';
|
||||
|
||||
export { useVerticalMixSiderContext };
|
@ -1,54 +0,0 @@
|
||||
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