fix: fix keepAlive parameter error (#4194)

* fix: mock server deployment error

* chore: typo
This commit is contained in:
Vben
2024-08-19 23:28:14 +08:00
committed by GitHub
parent 01d60336a6
commit 1db87ff7ce
23 changed files with 115 additions and 101 deletions

View File

@@ -2,9 +2,6 @@
import type { CSSProperties } from 'vue';
import { computed, useSlots } from 'vue';
import { Menu } from '@vben-core/icons';
import { VbenIconButton } from '@vben-core/shadcn-ui';
interface Props {
/**
* 横屏
@@ -14,11 +11,6 @@ interface Props {
* 高度
*/
height: number;
/**
* 是否混合导航
* @default false
*/
isMixedNav: boolean;
/**
* 是否移动端
*/
@@ -27,11 +19,6 @@ interface Props {
* 是否显示
*/
show: boolean;
/**
* 是否显示关闭菜单按钮
*/
showToggleBtn: boolean;
/**
* 侧边菜单宽度
*/
@@ -52,8 +39,6 @@ interface Props {
const props = withDefaults(defineProps<Props>(), {});
const emit = defineEmits<{ openMenu: []; toggleSidebar: [] }>();
const slots = useSlots();
const style = computed((): CSSProperties => {
@@ -72,10 +57,6 @@ const logoStyle = computed((): CSSProperties => {
minWidth: `${props.isMobile ? 40 : props.sidebarWidth}px`,
};
});
function handleToggleMenu() {
props.isMobile ? emit('openMenu') : emit('toggleSidebar');
}
</script>
<template>
@@ -87,13 +68,9 @@ function handleToggleMenu() {
<div v-if="slots.logo" :style="logoStyle">
<slot name="logo"></slot>
</div>
<VbenIconButton
v-if="showToggleBtn || isMobile"
class="my-0 ml-2 mr-1 rounded-md"
@click="handleToggleMenu"
>
<Menu class="size-4" />
</VbenIconButton>
<slot name="toggle-button"> </slot>
<slot></slot>
</header>
</template>

View File

@@ -4,6 +4,9 @@ import type { VbenLayoutProps } from './vben-layout';
import type { CSSProperties } from 'vue';
import { computed, ref, watch } from 'vue';
import { Menu } from '@vben-core/icons';
import { VbenIconButton } from '@vben-core/shadcn-ui';
import { useMouse, useScroll, useThrottleFn } from '@vueuse/core';
import {
@@ -330,11 +333,12 @@ const maskStyle = computed((): CSSProperties => {
const showHeaderToggleButton = computed(() => {
return (
props.headerToggleSidebarButton &&
isSideMode.value &&
!isSidebarMixedNav.value &&
!isMixedNav.value &&
!props.isMobile
props.isMobile ||
(props.headerToggleSidebarButton &&
isSideMode.value &&
!isSidebarMixedNav.value &&
!isMixedNav.value &&
!props.isMobile)
);
});
@@ -421,8 +425,12 @@ function handleClickMask() {
sidebarCollapse.value = true;
}
function handleOpenMenu() {
sidebarCollapse.value = false;
function handleHeaderToggle() {
if (props.isMobile) {
sidebarCollapse.value = false;
} else {
emit('toggleSidebar');
}
}
</script>
@@ -473,27 +481,36 @@ function handleOpenMenu() {
class="flex flex-1 flex-col overflow-hidden transition-all duration-300 ease-in"
>
<div
:class="{
'shadow-[0_16px_24px_hsl(var(--background))]': scrollY > 20,
}"
:style="headerWrapperStyle"
class="overflow-hidden shadow-[0_16px_24px_hsl(var(--background))] transition-all duration-200"
class="overflow-hidden transition-all duration-200"
>
<LayoutHeader
v-if="headerVisible"
:full-width="!isSideMode"
:height="headerHeight"
:is-mixed-nav="isMixedNav"
:is-mobile="isMobile"
:show="!isFullContent && !headerHidden"
:show-toggle-btn="showHeaderToggleButton"
:sidebar-width="sidebarWidth"
:theme="headerTheme"
:width="mainStyle.width"
:z-index="headerZIndex"
@open-menu="handleOpenMenu"
@toggle-sidebar="() => emit('toggleSidebar')"
>
<template v-if="showHeaderLogo" #logo>
<slot name="logo"></slot>
</template>
<template #toggle-button>
<VbenIconButton
v-if="showHeaderToggleButton"
class="my-0 ml-2 mr-1 rounded-md"
@click="handleHeaderToggle"
>
<Menu class="size-4" />
</VbenIconButton>
</template>
<slot name="header"></slot>
</LayoutHeader>

View File

@@ -1,5 +1,5 @@
<script lang="ts" setup>
import type { MenuItemProps, MenuItemRegistered } from '../interface';
import type { MenuItemProps, MenuItemRegistered } from '../types';
import { computed, onBeforeUnmount, onMounted, reactive, useSlots } from 'vue';

View File

@@ -6,7 +6,7 @@ import type {
MenuItemRegistered,
MenuProps,
MenuProvider,
} from '../interface';
} from '../types';
import {
computed,

View File

@@ -1,5 +1,5 @@
<script lang="ts" setup>
import type { MenuItemProps } from '../interface';
import type { MenuItemProps } from '../types';
import { computed } from 'vue';

View File

@@ -1,11 +1,7 @@
<script lang="ts" setup>
import type { HoverCardContentProps } from '@vben-core/shadcn-ui';
import type {
MenuItemRegistered,
MenuProvider,
SubMenuProps,
} from '../interface';
import type { MenuItemRegistered, MenuProvider, SubMenuProps } from '../types';
import { computed, onBeforeUnmount, onMounted, reactive, ref } from 'vue';
@@ -74,7 +70,6 @@ const contentProps = computed((): HoverCardContentProps => {
collisionPadding: { top: 20 },
side,
sideOffset: isHorizontal ? 5 : 10,
// sideOffset: 10,
};
});
@@ -216,7 +211,7 @@ onBeforeUnmount(() => {
]"
:content-props="contentProps"
:open="true"
:open-delay="30"
:open-delay="0"
>
<template #trigger>
<SubMenuContent

View File

@@ -1,4 +1,4 @@
import type { MenuProvider, SubMenuProvider } from '../interface';
import type { MenuProvider, SubMenuProvider } from '../types';
import { getCurrentInstance, inject, provide } from 'vue';

View File

@@ -1,4 +1,4 @@
import type { SubMenuProvider } from '../interface';
import type { SubMenuProvider } from '../types';
import { computed, getCurrentInstance } from 'vue';

View File

@@ -1,3 +1,3 @@
export * from './components/normal-menu';
export type * from './interface';
export { default as Menu } from './menu.vue';
export type * from './types';

View File

@@ -1,7 +1,7 @@
<script setup lang="ts">
import type { MenuRecordRaw } from '@vben-core/typings';
import type { MenuProps } from './interface';
import type { MenuProps } from './types';
import { useForwardProps } from '@vben-core/composables';

View File

@@ -121,7 +121,7 @@ const tabsView = computed((): TabConfig[] => {
/>
<Pin
v-show="tab.affixTab && tabsView.length > 1 && tab.closable"
class="hover:text-accent-foreground text-accent-foreground/80 group-[.is-active]:text-accent-foreground mt-[2px] size-3.5 cursor-pointer rounded-full transition-all"
class="hover:text-accent-foreground text-accent-foreground/80 group-[.is-active]:text-accent-foreground mt-[1px] size-3.5 cursor-pointer rounded-full transition-all"
@click.stop="() => emit('unpin', tab)"
/>
</div>
@@ -150,18 +150,6 @@ const tabsView = computed((): TabConfig[] => {
<style scoped>
.tabs-chrome {
/* .dragging { */
/* .tabs-chrome__item-main {
@apply pr-0;
} */
/* .tabs-chrome__extra {
@apply hidden;
} */
/* } */
&__item:not(.dragging) {
@apply cursor-pointer;

View File

@@ -100,7 +100,7 @@ const tabsView = computed((): TabConfig[] => {
/>
<Pin
v-show="tab.affixTab && tabsView.length > 1 && tab.closable"
class="hover:bg-accent hover:stroke-accent-foreground group-[.is-active]:text-primary dark:group-[.is-active]:text-accent-foreground mt-[2px] size-3.5 cursor-pointer rounded-full transition-all"
class="hover:bg-accent hover:stroke-accent-foreground group-[.is-active]:text-primary dark:group-[.is-active]:text-accent-foreground mt-[1px] size-3.5 cursor-pointer rounded-full transition-all"
@click.stop="() => emit('unpin', tab)"
/>
</div>