diff --git a/src/design/transition/base.less b/src/design/transition/base.less index c5edb8c60ab..34786e77363 100644 --- a/src/design/transition/base.less +++ b/src/design/transition/base.less @@ -1,11 +1,11 @@ .transition-default() { &-enter-active, &-leave-active { - transition: 0.3s cubic-bezier(0.25, 0.8, 0.5, 1) !important; + transition: 0.2s cubic-bezier(0.25, 0.8, 0.5, 1) !important; } &-move { - transition: transform 0.6s; + transition: transform 0.5s; } } diff --git a/src/design/transition/breadcrumb.less b/src/design/transition/breadcrumb.less index 677f73057cb..5b75b1f2c0d 100644 --- a/src/design/transition/breadcrumb.less +++ b/src/design/transition/breadcrumb.less @@ -1,6 +1,6 @@ .breadcrumb-enter-active, .breadcrumb-leave-active { - transition: all 0.38s; + transition: all 0.24s; } .breadcrumb-enter-from, diff --git a/src/design/transition/fade.less b/src/design/transition/fade.less index f97589ca4ce..ebb0cec00e0 100644 --- a/src/design/transition/fade.less +++ b/src/design/transition/fade.less @@ -1,6 +1,6 @@ .fade-enter-active, .fade-leave-active { - transition: opacity 0.28s ease-in-out; + transition: opacity 0.2s ease-in-out; } .fade-enter-from, @@ -11,7 +11,7 @@ // side-fade .slide-fade-enter-active, .slide-fade-leave-active { - transition: opacity 0.35s, transform 0.4s; + transition: opacity 0.3s, transform 0.35s; } .slide-enter-from, @@ -32,7 +32,7 @@ // Speed: 1x .fade-bottom-enter-active, .fade-bottom-leave-active { - transition: opacity 0.3s, transform 0.35s; + transition: opacity 0.2s, transform 0.25s; } .fade-bottom-enter-from, @@ -53,7 +53,7 @@ // Speed: 1x .fade-top-enter-active, .fade-top-leave-active { - transition: opacity 0.3s, transform 0.35s; + transition: opacity 0.2s, transform 0.25s; } .fade-top-enter-from { diff --git a/src/design/transition/zoom.less b/src/design/transition/zoom.less index 38e5cb5a546..1fb7295d3b8 100644 --- a/src/design/transition/zoom.less +++ b/src/design/transition/zoom.less @@ -1,7 +1,7 @@ // zoom-out .zoom-out-enter-active, .zoom-out-leave-active { - transition: opacity 0.35s ease-in-out, transform 0.45s ease-out; + transition: opacity 0.2 ease-in-out, transform 0.2s ease-out; } .zoom-out-enter-from, @@ -13,7 +13,7 @@ // zoom-fade .zoom-fade-enter-active, .zoom-fade-leave-active { - transition: transform 0.35s, opacity 0.35s ease-out; + transition: transform 0.2s, opacity 0.2s ease-out; } .zoom-fade-enter-from { diff --git a/src/hooks/web/useTabs.ts b/src/hooks/web/useTabs.ts index a9d17e5ae3e..646bbbda8e6 100644 --- a/src/hooks/web/useTabs.ts +++ b/src/hooks/web/useTabs.ts @@ -1,5 +1,9 @@ +import { useTimeout } from '/@/hooks/core/useTimeout'; +import { PageEnum } from '/@/enums/pageEnum'; import { TabItem, tabStore } from '/@/store/modules/tab'; import { appStore } from '/@/store/modules/app'; +import router from '/@/router'; + type Fn = () => void; type RouteFn = (tabItem: TabItem) => void; @@ -66,5 +70,12 @@ export function useTabs() { closeOther: () => canIUseFn() && closeOther(tabStore.getCurrentTab), closeCurrent: () => canIUseFn() && closeCurrent(tabStore.getCurrentTab), resetCache: () => canIUseFn() && resetCache(), + addTab: (path: PageEnum, goTo = false) => { + useTimeout(() => { + tabStore.addTabByPathAction(path); + }, 0); + + goTo && router.push(path); + }, }; } diff --git a/src/layouts/default/LayoutMenu.tsx b/src/layouts/default/LayoutMenu.tsx index e323751c106..6e4c1df7127 100644 --- a/src/layouts/default/LayoutMenu.tsx +++ b/src/layouts/default/LayoutMenu.tsx @@ -5,7 +5,6 @@ import { computed, defineComponent, unref, ref, onMounted, watch } from 'vue'; import { BasicMenu } from '/@/components/Menu/index'; import Logo from '/@/layouts/Logo.vue'; -import { PageEnum } from '/@/enums/pageEnum'; import { MenuModeEnum, MenuSplitTyeEnum, MenuTypeEnum } from '/@/enums/menuEnum'; // store @@ -20,10 +19,11 @@ import { getFlatChildrenMenus, getCurrentParentPath, } from '/@/router/menus/index'; -import { useGo } from '/@/hooks/web/usePage'; import { useRouter } from 'vue-router'; import { useThrottle } from '/@/hooks/core/useThrottle'; import { permissionStore } from '/@/store/modules/permission'; +import { useTabs } from '/@/hooks/web/useTabs'; +import { PageEnum } from '/@/enums/pageEnum'; // import export default defineComponent({ @@ -54,6 +54,7 @@ export default defineComponent({ const menusRef = ref