diff --git a/src/components/Drawer/src/BasicDrawer.vue b/src/components/Drawer/src/BasicDrawer.vue index 6ab326f7..a0752800 100644 --- a/src/components/Drawer/src/BasicDrawer.vue +++ b/src/components/Drawer/src/BasicDrawer.vue @@ -97,8 +97,7 @@ opt.rootClassName = wrapClassName ? `${wrapClassName} ${detailCls}` : detailCls; if (!getContainer) { - // TODO type error? - opt.getContainer = `.${prefixVar}-layout-content` as any; + opt.getContainer = `.${prefixVar}-layout-content`; } } return opt as DrawerProps; diff --git a/src/components/SimpleMenu/src/components/Menu.vue b/src/components/SimpleMenu/src/components/Menu.vue index 6a967ace..7616a7c3 100644 --- a/src/components/SimpleMenu/src/components/Menu.vue +++ b/src/components/SimpleMenu/src/components/Menu.vue @@ -21,7 +21,7 @@ import { useDesign } from '/@/hooks/web/useDesign'; import { propTypes } from '/@/utils/propTypes'; - import { createSimpleRootMenuContext } from './useSimpleMenuContext'; + import { createSimpleRootMenuContext, type MenuEmitterEvents } from './useSimpleMenuContext'; import { mitt } from '/@/utils/mitt'; export default defineComponent({ @@ -45,14 +45,7 @@ }, emits: ['select', 'open-change'], setup(props, { emit }) { - const rootMenuEmitter = mitt<{ - 'on-update-opened': (string | number)[]; - 'on-menu-item-select': string | number; - 'open-name-change': { - name: string; - opened: boolean; - }; - }>(); + const rootMenuEmitter = mitt(); const instance = getCurrentInstance(); const currentActiveName = ref(''); diff --git a/src/components/SimpleMenu/src/components/useMenu.ts b/src/components/SimpleMenu/src/components/useMenu.ts index 8830559d..89c71f09 100644 --- a/src/components/SimpleMenu/src/components/useMenu.ts +++ b/src/components/SimpleMenu/src/components/useMenu.ts @@ -49,7 +49,7 @@ export function useMenuItem(instance: ComponentInternalInstance | null) { uidList: [], list: [], }; - const ret: any[] = []; + const ret: ComponentInternalInstance[] = []; while (parent && parent.type.name !== 'Menu') { if (parent.type.name === 'SubMenu') { ret.push(parent); diff --git a/src/components/SimpleMenu/src/components/useSimpleMenuContext.ts b/src/components/SimpleMenu/src/components/useSimpleMenuContext.ts index f3d81003..4338ba3b 100644 --- a/src/components/SimpleMenu/src/components/useSimpleMenuContext.ts +++ b/src/components/SimpleMenu/src/components/useSimpleMenuContext.ts @@ -1,9 +1,25 @@ -import type { InjectionKey, Ref } from 'vue'; +import type { InjectionKey, Ref, ComponentInternalInstance } from 'vue'; import type { Emitter } from '/@/utils/mitt'; import { createContext, useContext } from '/@/hooks/core/useContext'; +export type MenuEmitterEvents = { + 'on-update-opened': + | (string | number)[] + | { + opend: boolean; + parent?: ComponentInternalInstance | null; + uidList: number[]; + }; + 'on-menu-item-select': string | number; + 'open-name-change': { + name: string | number; + opened: boolean; + }; + 'on-update-active-name:submenu': number[]; +}; + export interface SimpleRootMenuContextProps { - rootMenuEmitter: Emitter; + rootMenuEmitter: Emitter; activeName: Ref; }