diff --git a/src/components/Container/src/LazyContainer.vue b/src/components/Container/src/LazyContainer.vue index af89295..bac1f7a 100644 --- a/src/components/Container/src/LazyContainer.vue +++ b/src/components/Container/src/LazyContainer.vue @@ -12,7 +12,7 @@ <script lang="ts" setup name="LazyContainer" inheritAttrs="false"> import { reactive, onMounted, ref, toRef } from 'vue' import { Skeleton } from 'ant-design-vue' -import { useTimeoutFn } from '@/hooks/core/useTimeout' +import { useTimeoutFn } from '@vueuse/core' import { useIntersectionObserver } from '@/hooks/event/useIntersectionObserver' interface State { diff --git a/src/components/Container/src/collapse/CollapseContainer.vue b/src/components/Container/src/collapse/CollapseContainer.vue index 28fc25d..50dc48e 100644 --- a/src/components/Container/src/collapse/CollapseContainer.vue +++ b/src/components/Container/src/collapse/CollapseContainer.vue @@ -5,7 +5,7 @@ import { Skeleton } from 'ant-design-vue' import { CollapseTransition } from '@/components/Transition' import CollapseHeader from './CollapseHeader.vue' import { triggerWindowResize } from '@/utils/event' -import { useTimeoutFn } from '@/hooks/core/useTimeout' +import { useTimeoutFn } from '@vueuse/core' import { useDesign } from '@/hooks/web/useDesign' const collapseContainerProps = { diff --git a/src/components/Menu/src/useOpenKeys.ts b/src/components/Menu/src/useOpenKeys.ts index 8c70d5f..abe21ea 100644 --- a/src/components/Menu/src/useOpenKeys.ts +++ b/src/components/Menu/src/useOpenKeys.ts @@ -8,7 +8,7 @@ import { unref } from 'vue' import { uniq } from 'lodash-es' import { useMenuSetting } from '@/hooks/setting/useMenuSetting' import { getAllParentPath } from '@/router/helper/menuHelper' -import { useTimeoutFn } from '@/hooks/core/useTimeout' +import { useTimeoutFn } from '@vueuse/core' export function useOpenKeys(menuState: MenuState, menus: Ref<MenuType[]>, mode: Ref<MenuModeEnum>, accordion: Ref<boolean>) { const { getCollapsed, getIsMixSidebar } = useMenuSetting() @@ -18,22 +18,23 @@ export function useOpenKeys(menuState: MenuState, menus: Ref<MenuType[]>, mode: return } const native = unref(getIsMixSidebar) - useTimeoutFn( - () => { - const menuList = toRaw(menus.value) - if (menuList?.length === 0) { - menuState.openKeys = [] - return - } - if (!unref(accordion)) { - menuState.openKeys = uniq([...menuState.openKeys, ...getAllParentPath(menuList, path)]) - } else { - menuState.openKeys = getAllParentPath(menuList, path) - } - }, - 16, - !native - ) + const handle = () => { + const menuList = toRaw(menus.value) + if (menuList?.length === 0) { + menuState.openKeys = [] + return + } + if (!unref(accordion)) { + menuState.openKeys = uniq([...menuState.openKeys, ...getAllParentPath(menuList, path)]) + } else { + menuState.openKeys = getAllParentPath(menuList, path) + } + } + if (native) { + handle() + } else { + useTimeoutFn(handle, 16) + } } const getOpenKeys = computed(() => { diff --git a/src/components/Modal/src/hooks/useModalDrag.ts b/src/components/Modal/src/hooks/useModalDrag.ts index 143e85d..66a02fb 100644 --- a/src/components/Modal/src/hooks/useModalDrag.ts +++ b/src/components/Modal/src/hooks/useModalDrag.ts @@ -1,5 +1,5 @@ import { Ref, unref, watchEffect } from 'vue' -import { useTimeoutFn } from '@/hooks/core/useTimeout' +import { useTimeoutFn } from '@vueuse/core' export interface UseModalDragMoveContext { draggable: Ref<boolean> diff --git a/src/components/SimpleMenu/src/useOpenKeys.ts b/src/components/SimpleMenu/src/useOpenKeys.ts index 85d32dd..722e188 100644 --- a/src/components/SimpleMenu/src/useOpenKeys.ts +++ b/src/components/SimpleMenu/src/useOpenKeys.ts @@ -7,8 +7,7 @@ import { unref } from 'vue' import { uniq } from 'lodash-es' import { getAllParentPath } from '@/router/helper/menuHelper' -import { useTimeoutFn } from '@/hooks/core/useTimeout' -import { useDebounceFn } from '@vueuse/core' +import { useTimeoutFn, useDebounceFn } from '@vueuse/core' export function useOpenKeys( menuState: MenuState, @@ -21,25 +20,26 @@ export function useOpenKeys( async function setOpenKeys(path: string) { const native = !mixSider.value const menuList = toRaw(menus.value) - useTimeoutFn( - () => { - if (menuList?.length === 0) { - menuState.activeSubMenuNames = [] - menuState.openNames = [] - return - } - const keys = getAllParentPath(menuList, path) + const handle = () => { + if (menuList?.length === 0) { + menuState.activeSubMenuNames = [] + menuState.openNames = [] + return + } + const keys = getAllParentPath(menuList, path) - if (!unref(accordion)) { - menuState.openNames = uniq([...menuState.openNames, ...keys]) - } else { - menuState.openNames = keys - } - menuState.activeSubMenuNames = menuState.openNames - }, - 30, - native - ) + if (!unref(accordion)) { + menuState.openNames = uniq([...menuState.openNames, ...keys]) + } else { + menuState.openNames = keys + } + menuState.activeSubMenuNames = menuState.openNames + } + if (native) { + handle() + } else { + useTimeoutFn(handle, 30) + } } const getOpenKeys = computed(() => { diff --git a/src/components/Table/src/hooks/useDataSource.ts b/src/components/Table/src/hooks/useDataSource.ts index 5060126..87a11f4 100644 --- a/src/components/Table/src/hooks/useDataSource.ts +++ b/src/components/Table/src/hooks/useDataSource.ts @@ -1,7 +1,7 @@ import type { BasicTableProps, FetchParams, SorterResult } from '../types/table' import type { PaginationProps } from '../types/pagination' import { ref, unref, ComputedRef, computed, onMounted, watch, reactive, Ref, watchEffect } from 'vue' -import { useTimeoutFn } from '@/hooks/core/useTimeout' +import { useTimeoutFn } from '@vueuse/core' import { buildUUID } from '@/utils/uuid' import { isFunction, isBoolean, isObject } from '@/utils/is' import { get, cloneDeep, merge } from 'lodash-es' diff --git a/src/hooks/core/useTimeout.ts b/src/hooks/core/useTimeout.ts deleted file mode 100644 index e7b386c..0000000 --- a/src/hooks/core/useTimeout.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { ref, watch } from 'vue' -import { tryOnUnmounted } from '@vueuse/core' -import { isFunction } from '@/utils/is' - -export function useTimeoutFn(handle: Fn<any>, wait: number, native = false) { - if (!isFunction(handle)) { - throw new Error('handle is not Function!') - } - - const { readyRef, stop, start } = useTimeoutRef(wait) - if (native) { - handle() - } else { - watch( - readyRef, - (maturity) => { - maturity && handle() - }, - { immediate: false } - ) - } - return { readyRef, stop, start } -} - -export function useTimeoutRef(wait: number) { - const readyRef = ref(false) - - let timer: TimeoutHandle - function stop(): void { - readyRef.value = false - timer && window.clearTimeout(timer) - } - function start(): void { - stop() - timer = setTimeout(() => { - readyRef.value = true - }, wait) - } - - start() - - tryOnUnmounted(stop) - - return { readyRef, stop, start } -} diff --git a/src/hooks/web/useECharts.ts b/src/hooks/web/useECharts.ts index ce2886f..6587e3c 100644 --- a/src/hooks/web/useECharts.ts +++ b/src/hooks/web/useECharts.ts @@ -1,7 +1,6 @@ import type { EChartsOption } from 'echarts' import type { Ref } from 'vue' -import { useTimeoutFn } from '@/hooks/core/useTimeout' -import { tryOnUnmounted } from '@vueuse/core' +import { useTimeoutFn, tryOnUnmounted } from '@vueuse/core' import { unref, nextTick, watch, computed, ref } from 'vue' import { useDebounceFn } from '@vueuse/core' import { useEventListener } from '@/hooks/event/useEventListener' diff --git a/src/views/bpm/definition/index.vue b/src/views/bpm/definition/index.vue new file mode 100644 index 0000000..3b64cfc --- /dev/null +++ b/src/views/bpm/definition/index.vue @@ -0,0 +1,3 @@ +<template> + <div>开发中</div> +</template>