--- title: Drawer 抽屉 description: type: 0 group: ⚙ 组件 menuName: Drawer 抽屉 icon: order: 43 --- ## 基本用法 ```schema:height="100" scope="body" { "label": "弹出", "type": "button", "actionType": "drawer", "drawer": { "title": "抽屉标题", "body": "这是一个抽屉" } } ``` ## 抽屉尺寸 ```schema:height="100" scope="body" { "type": "button-toolbar", "className": "block m-t", "buttons": [ { "type": "button", "label": "极小框", "actionType": "drawer", "drawer": { "position": "right", "size": "xs", "title": "提示", "body": "这是个简单的弹框" } }, { "type": "button", "label": "小框", "actionType": "drawer", "drawer": { "position": "right", "size": "sm", "title": "提示", "body": "这是个简单的弹框" } }, { "type": "button", "label": "中框", "actionType": "drawer", "drawer": { "position": "right", "size": "md", "title": "提示", "body": "这是个简单的弹框" } }, { "type": "button", "label": "大框", "actionType": "drawer", "drawer": { "position": "right", "size": "lg", "title": "提示", "body": "这是个简单的弹框" } }, { "type": "button", "label": "超大框", "actionType": "drawer", "drawer": { "size": "xl", "position": "right", "title": "提示", "body": "这是个简单的弹框" } } ] } ``` ## 指定弹出方向 ```schema:height="100" scope="body" { "type": "button-toolbar", "className": "block m-t", "buttons": [ { "type": "button", "label": "左侧弹出", "actionType": "drawer", "drawer": { "position": "left", "title": "提示", "body": "这是个简单的弹框" } }, { "type": "button", "label": "右侧弹出", "actionType": "drawer", "drawer": { "position": "right", "title": "提示", "body": "这是个简单的弹框" } }, { "type": "button", "label": "顶部弹出", "actionType": "drawer", "drawer": { "position": "top", "title": "提示", "body": "这是个简单的弹框" } }, { "type": "button", "label": "底部弹出", "actionType": "drawer", "drawer": { "position": "bottom", "title": "提示", "body": "这是个简单的弹框" } } ] } ``` ## 可拖拽抽屉大小 配置`"resizable": true`,可以拖拽调整`drawer`大小 ```schema:height="100" scope="body" { "type": "button", "label": "可拖拽调整大小", "actionType": "drawer", "drawer": { "position": "right", "resizable": true, "title": "提示", "body": "这是个简单的弹框" } } ``` ## 不显示蒙层 ```schema:height="100" scope="body" { "type": "button", "label": "不显示蒙层", "actionType": "drawer", "drawer": { "position": "right", "overlay": false, "title": "提示", "body": "这是个简单的弹框" } } ``` ## 点击抽屉外自动关闭 配置`"closeOnOutside":true` ### 显示蒙层 ```schema:height="100" scope="body" { "type": "button", "label": "点击抽屉外自动关闭", "actionType": "drawer", "drawer": { "position": "right", "closeOnOutside": true, "title": "提示", "body": "这是个简单的弹框" } } ``` ### 不显示蒙层 ```schema:height="100" scope="body" { "type": "button", "label": "点击抽屉外自动关闭", "actionType": "drawer", "drawer": { "position": "right", "overlay": false, "closeOnOutside": true, "title": "提示", "body": "这是个简单的弹框" } } ``` ## 属性表 | 属性名 | 类型 | 默认值 | 说明 | | -------------- | --------------------------------- | ------------------ | ----------------------------------------------------------------------------------------- | | type | `string` | | `"drawer"` 指定为 Drawer 渲染器 | | title | [SchemaNode](../types/schemanode) | | 弹出层标题 | | body | [SchemaNode](../types/schemanode) | | 往 Drawer 内容区加内容 | | size | `string` | | 指定 Drawer 大小,支持: `xs`、`sm`、`md`、`lg` | | bodyClassName | `string` | `modal-body` | Drawer body 区域的样式类名 | | closeOnEsc | `boolean` | `false` | 是否支持按 `Esc` 关闭 Drawer | | closeOnOutside | `boolean` | `false` | 点击内容区外是否关闭 Drawer | | overlay | `boolean` | `true` | 是否显示蒙层 | | resizable | `boolean` | `false` | 是否可通过拖拽改变 Drawer 大小 | | actions | Array<[Action](./action)> | 【确认】和【取消】 | 可以不设置,默认只有两个按钮。 | | data | `object` | | 支持 [数据映射](../concepts/data-mapping),如果不设定将默认将触发按钮的上下文中继承数据。 |