|
@@ -8,6 +8,7 @@ import AutoHeightDemo from './auto-height-demo.vue';
|
|
|
import BaseDemo from './base-demo.vue';
|
|
|
import DynamicDemo from './dynamic-demo.vue';
|
|
|
import FormDrawerDemo from './form-drawer-demo.vue';
|
|
|
+import inContentDemo from './in-content-demo.vue';
|
|
|
import SharedDataDemo from './shared-data-demo.vue';
|
|
|
|
|
|
const [BaseDrawer, baseDrawerApi] = useVbenDrawer({
|
|
@@ -16,6 +17,12 @@ const [BaseDrawer, baseDrawerApi] = useVbenDrawer({
|
|
|
// placement: 'left',
|
|
|
});
|
|
|
|
|
|
+const [InContentDrawer, inContentDrawerApi] = useVbenDrawer({
|
|
|
+ // 连接抽离的组件
|
|
|
+ connectedComponent: inContentDemo,
|
|
|
+ // placement: 'left',
|
|
|
+});
|
|
|
+
|
|
|
const [AutoHeightDrawer, autoHeightDrawerApi] = useVbenDrawer({
|
|
|
connectedComponent: AutoHeightDemo,
|
|
|
});
|
|
@@ -37,6 +44,23 @@ function openBaseDrawer(placement: DrawerPlacement = 'right') {
|
|
|
baseDrawerApi.open();
|
|
|
}
|
|
|
|
|
|
+function openInContentDrawer(placement: DrawerPlacement = 'right') {
|
|
|
+ inContentDrawerApi.setState({ class: '', placement });
|
|
|
+ if (placement === 'top') {
|
|
|
+ // 页面顶部区域的层级只有200,所以设置一个低于200的值,抽屉从顶部滑出来的时候才比较合适
|
|
|
+ inContentDrawerApi.setState({ zIndex: 199 });
|
|
|
+ } else {
|
|
|
+ inContentDrawerApi.setState({ zIndex: undefined });
|
|
|
+ }
|
|
|
+ inContentDrawerApi.open();
|
|
|
+}
|
|
|
+
|
|
|
+function openMaxContentDrawer() {
|
|
|
+ // 这里只是用来演示方便。实际上自己使用的时候可以直接将这些配置卸载Drawer的属性里
|
|
|
+ inContentDrawerApi.setState({ class: 'w-full', placement: 'right' });
|
|
|
+ inContentDrawerApi.open();
|
|
|
+}
|
|
|
+
|
|
|
function openAutoHeightDrawer() {
|
|
|
autoHeightDrawerApi.open();
|
|
|
}
|
|
@@ -69,6 +93,7 @@ function openFormDrawer() {
|
|
|
|
|
|
<template>
|
|
|
<Page
|
|
|
+ auto-content-height
|
|
|
description="抽屉组件通常用于在当前页面上显示一个覆盖层,用以展示重要信息或提供用户交互界面。"
|
|
|
title="抽屉组件示例"
|
|
|
>
|
|
@@ -76,6 +101,7 @@ function openFormDrawer() {
|
|
|
<DocButton path="/components/common-ui/vben-drawer" />
|
|
|
</template>
|
|
|
<BaseDrawer />
|
|
|
+ <InContentDrawer />
|
|
|
<AutoHeightDrawer />
|
|
|
<DynamicDrawer />
|
|
|
<SharedDataDrawer />
|
|
@@ -83,18 +109,55 @@ function openFormDrawer() {
|
|
|
|
|
|
<Card class="mb-4" title="基本使用">
|
|
|
<p class="mb-3">一个基础的抽屉示例</p>
|
|
|
- <Button type="primary" @click="openBaseDrawer('right')">右侧打开</Button>
|
|
|
- <Button class="ml-2" type="primary" @click="openBaseDrawer('bottom')">
|
|
|
+ <Button class="mb-2" type="primary" @click="openBaseDrawer('right')">
|
|
|
+ 右侧打开
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ class="mb-2 ml-2"
|
|
|
+ type="primary"
|
|
|
+ @click="openBaseDrawer('bottom')"
|
|
|
+ >
|
|
|
底部打开
|
|
|
</Button>
|
|
|
- <Button class="ml-2" type="primary" @click="openBaseDrawer('left')">
|
|
|
+ <Button class="mb-2 ml-2" type="primary" @click="openBaseDrawer('left')">
|
|
|
左侧打开
|
|
|
</Button>
|
|
|
- <Button class="ml-2" type="primary" @click="openBaseDrawer('top')">
|
|
|
+ <Button class="mb-2 ml-2" type="primary" @click="openBaseDrawer('top')">
|
|
|
顶部打开
|
|
|
</Button>
|
|
|
</Card>
|
|
|
|
|
|
+ <Card class="mb-4" title="在内容区域打开">
|
|
|
+ <p class="mb-3">指定抽屉在内容区域打开,不会覆盖顶部和左侧菜单等区域</p>
|
|
|
+ <Button class="mb-2" type="primary" @click="openInContentDrawer('right')">
|
|
|
+ 右侧打开
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ class="mb-2 ml-2"
|
|
|
+ type="primary"
|
|
|
+ @click="openInContentDrawer('bottom')"
|
|
|
+ >
|
|
|
+ 底部打开
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ class="mb-2 ml-2"
|
|
|
+ type="primary"
|
|
|
+ @click="openInContentDrawer('left')"
|
|
|
+ >
|
|
|
+ 左侧打开
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ class="mb-2 ml-2"
|
|
|
+ type="primary"
|
|
|
+ @click="openInContentDrawer('top')"
|
|
|
+ >
|
|
|
+ 顶部打开
|
|
|
+ </Button>
|
|
|
+ <Button class="mb-2 ml-2" type="primary" @click="openMaxContentDrawer">
|
|
|
+ 内容区域全屏打开
|
|
|
+ </Button>
|
|
|
+ </Card>
|
|
|
+
|
|
|
<Card class="mb-4" title="内容高度自适应滚动">
|
|
|
<p class="mb-3">可根据内容自动计算滚动高度</p>
|
|
|
<Button type="primary" @click="openAutoHeightDrawer">打开抽屉</Button>
|