---
id: "drawer"
title: "抽屉容器"
category: "浮层组件"
document_type: "component-specification"
spec_status: "local-current-draft"
element_ui: "2.15.6"
vue: "2.6.14"
page: "../index.html#spec-drawer"
source_data: "../component-data.json"
official_components: ["drawer"]
template_components: ["el-button"]
scenario_count: 4
verification: "scenario-checklist-not-full-test-pass"
---

# 抽屉容器

专题 `drawer` · 浮层组件 · Element UI 2.15.6

## 适用范围与组件映射

公共色板及字体基线适用于整个运营后台。本库整理基础组件、组件状态和可复用的组合模式；本轮补齐表单整体验证、页面布局和导航组合；具体业务字段与跨页流程仍在业务场景中说明。专题验收清单包含接入要求，不表示当前示例已实现或已验证全部场景。

官方条目映射：`drawer`。

本页模板直接使用的 Element UI 标签：`el-button`。

## 通用基线

- 组件库：Element UI **2.15.6**；运行样例 Vue **2.6.14**。
- 系统中文字体：macOS 优先苹方，Windows 通常微软雅黑；工程顺序固定为 `"PingFang SC", "Microsoft YaHei", sans-serif`。不要求安装或加载网络字体，兼容回退不是另一套可选样式。
- 后续仅采用经验证且固定版本的兼容 Element UI 2.x；Element Plus 属于独立迁移路线。
- 正文、数据值、输入及已选值：`14px / 400 / 21px`，`#303133`。
- 表头及组件分组标题：`14px / 600 / 21px`；弹窗标题：`16px / 600 / 24px`，均使用 `#303133`。
- 辅助说明：`12px / 400 / 18px`，`#595959`；错误、链接、状态、禁用与占位按各自语义处理。
- 适用组件的默认尺寸为 `small / 32px`；不得将这一高度机械应用于表格、文本域、浮层等全部组件。
- 规范正文与场景说明使用 `14px / 400 / 24px`、`#303133`，不降成灰蓝小字。
- 筛选文本输入占位统一“请输入”；未选择下拉统一“请选择”；默认全部的下拉显示“全部”。字段标签保留业务含义；日期保留开始/结束语义。
- 次级文字操作（查看更多、编辑、详情、数据中心、更多）：`12px / 400 / 18px`，`#3377BB`；保留点击热区。
- 本规范库的深色目录、蓝色展示区属于文档排版，不是业务组件颜色或业务导航规范。

## 本页用法与分类

默认用法：默认使用右侧进入、宽480px的模态抽屉保留页面上下文；本页只展示标题、可滚动内容和关闭入口。

| 区分什么 | 本页内容 | 选用或触发条件 |
| --- | --- | --- |
| 用途 | 抽屉用于侧向查看上下文内容，是容器选择。 | 需要在当前页面旁查看较长内容时使用；完整业务详情、编辑和保存需由相应场景定义。 |
| 方向与尺寸 | 方向与宽度属于布局配置。 | 当前采用右侧和480px参考宽，窄视口不超过视口减16px；其他方向不在本页采用。 |
| 内容与页脚 | 是否有编辑字段及操作页脚取决于业务功能。 | 本页无保存页脚；确有提交动作时才补固定页脚，并让内容区单独滚动。 |
| 自动状态 | 焦点、开关、提交中和失败分别由实际操作与请求驱动。 | 当前只处理模态打开、关闭和焦点恢复；没有请求时不增加加载、错误或危险确认外观。 |

使用边界：不要把抽屉方向、宽度、确认/取消和加载中列成几种可选样式；不能给当前只读容器套未实现的提交能力。

## 组件规则

- **DRAWER-R01**：抽屉适合保留上下文的侧向内容；本规范只定义容器，不增加详情页或编辑业务。
- **DRAWER-R02**：右侧进入、遮罩隔离背景，固定标题与中部滚动；需要操作页脚时由宿主补固定页脚。参考宽 480px，窄视口不超过视口减 16px。
- **DRAWER-R03**：与 对话框 共用焦点管理和关闭合同；避免模态层无限嵌套。
- **DRAWER-R04**：【公共用色】颜色仅从公共色值 引用：主色系 3 个基础色值、辅助功能色 3 个、中性色 10 个，共 16 个基础色值。角色可以多个，实际色值复用；不为每个组件、悬停 或不同字段再新增近似颜色。透明效果仅限遮罩 35% 与阴影 12%，从 外壳深色 派生。
- **DRAWER-R05**：【统一字体】统一系统中文字体：macOS 优先苹方（PingFang SC），Windows 通常使用微软雅黑（Microsoft YaHei）；工程顺序固定为 "PingFang SC", "Microsoft YaHei", sans-serif。使用设备已有字体，不要求安装或加载网络字体；最后一项仅作兼容回退，不是供页面作者任选的另一套样式。正文 14px/400/21px；表头与分组标题 14px/600/21px，弹窗标题 16px/600/24px；次级文字操作和辅助说明 12px/400/18px。正文与标题同用 #303133；不通过额外加粗或透明度改变正文轻重。
- **DRAWER-R06**：【默认】弹层 白底、正文深灰，标题 正文深灰、600字重，边框 边框灰；遮罩 外壳深色 的 35% 透明度，阴影 外壳深色 的 12%。
- **DRAWER-R07**：【操作 / 焦点】当前只读示例使用关闭入口及其键盘焦点；宿主确有提交时，普通确认用主题蓝、取消用普通按钮，危险确认引用确认框专题；次级操作为12px操作蓝。
- **DRAWER-R08**：【风险与执行反馈】仅在接入相应动作时适用：风险提醒用警告橙图标和正文深灰说明，实际执行失败才用错误红反馈；危险按钮按动作语义选择，提交中防重复，不给整个抽屉染功能色。
- **DRAWER-R09**：【关闭 / 禁用】关闭图标 辅助深灰、悬停 操作蓝、禁用 禁用灰；关闭后焦点回到触发点。
- **DRAWER-R10**：【组件边界】仅使用实际存在的组件状态；没有操作能力的内容不添加悬停、选中或禁用变色。
- **DRAWER-R11**：【叠加优先级】状态叠加规则：禁用阻断交互；输入类控件错误边框覆盖蓝色聚焦边框；输入框不叠加外圈或阴影，其他无边框操作保留键盘焦点提示；选中底覆盖悬停底；只读不等于禁用；加载不等于成功；业务启用/停用的文字结果不等于控件是否可点击。
- **DRAWER-R12**：当前示例为只读抽屉，只由抽屉正文区域承担纵向滚动，内部内容不再叠加第二套滚动条。业务若增加删除、移除或提交，引用按钮与确认框专题，不另维护危险操作样式。

## 场景与验收清单

以下为需核对的场景组；`[ ]` 不代表已经测试通过。

- [ ] **DRAWER-S01**：当前示例：右侧抽屉打开、关闭、标题和长内容滚动；基础样例使用参考宽480px。
- [ ] **DRAWER-S02**：接入验收：焦点限制在模态层，关闭回到入口；背景不可操作，窄屏不超出视口。
- [ ] **DRAWER-S03**：接入验收：需要操作页脚时保持固定，内容区单独滚动；关闭前有未保存草稿须明确处理。
- [ ] **DRAWER-S04**：当前采用右侧抽屉与480px参考宽；其他方向和宽度只有场景明确需要时才单独定义与验收，不因组件库支持就自动纳入本后台。避免多层嵌套编辑。

### 专题验收重点

短屏滚动、焦点约束、关闭恢复；背景不可点击。

## 当前示例模板

以下来自本专题的结构化示例，使用 Vue 2 模板语法。`v-model`、事件方法、数据列表等依赖 [components.js](../components.js)；完整样式文件及加载顺序见 [通用基线](FOUNDATIONS.md)。自定义组合标签的内部实现由下方依赖文件提供，不能仅复制标签作为完整组件。

```html
<el-button @click="drawerOpen=true">打开容器示例</el-button>
```

## 交付与使用边界

- 规范条款、示例代码与待验收场景分开理解；有示例不等于已覆盖所有样式、交互状态和使用场景。
- 业务接口、权限、时区、金额精度、数据规模等依赖应从实际项目读取，不使用演示值代替生产约定。
- 发生样式或文案变更时，同步专题数据、页面与 Markdown，避免规范和样例分离。

## 来源与关联

- 来源线索：本次补充。
- [打开本专题页面](../index.html#spec-drawer)
- [通用基线](FOUNDATIONS.md)
- [规范总索引](README.md)
- [结构化规范数据](../component-data.json)（记录 id：`drawer`）
- [原始历史样板](../original-20260621.html)
- [历史规范条目](../spec-notes.json)

## 本组件颜色状态表

| 状态 / 条件 | 统一规则 |
| --- | --- |
| 默认 | 弹层 白底、正文深灰，标题 正文深灰、600字重，边框 边框灰；遮罩 外壳深色 的 35% 透明度，阴影 外壳深色 的 12%。 |
| 操作 / 焦点 | 当前只读示例使用关闭入口及其键盘焦点；宿主确有提交时，普通确认用主题蓝、取消用普通按钮，危险确认引用确认框专题；次级操作为12px操作蓝。 |
| 风险与执行反馈 | 仅在接入相应动作时适用：风险提醒用警告橙图标和正文深灰说明，实际执行失败才用错误红反馈；危险按钮按动作语义选择，提交中防重复，不给整个抽屉染功能色。 |
| 关闭 / 禁用 | 关闭图标 辅助深灰、悬停 操作蓝、禁用 禁用灰；关闭后焦点回到触发点。 |
| 危险文字操作 | 查看、编辑、查看更多使用操作蓝；删除、移除使用危险红。字号同为12px/400，颜色表达动作类型，不通过加粗或更大字号表达危险。 |

当前抽屉只展示内容和关闭入口；确认、取消、危险动作、提交中与失败仅在宿主实际接入对应功能时适用，由行为或请求结果触发，不是抽屉可选样式。

[公共颜色与字体 token](../color-tokens.json) · [公共组件样式](../color-contract.css) · [系统字体合同（最后加载）](../font-contract.css)

## 业务落地场景

- [会员列表 · 账号或详情入口 · 会员详情抽屉](../../showcase/index.html#members) · [场景文档](../../showcase/docs/members.md)
- [会员详情 · 会员详情直达 · 既有会员详情抽屉](../../showcase/index.html#member-detail) · [场景文档](../../showcase/docs/member-detail.md)；落地范围：首次加载与已挂载后的 hash 切换均等内嵌页就绪后打开详情；保留 #member-detail，关闭该直达抽屉返回 #members。优先使用当前已选会员，否则使用首个现有会员，不创建会员或改写筛选草稿。
- [新增账号 · 账号行查看 · 只读详情抽屉](../../showcase/index.html#create-account) · [场景文档](../../showcase/docs/create-account.md)
- [取款审核 · 取款记录详情抽屉](../../showcase/index.html#withdrawals) · [场景文档](../../showcase/docs/withdrawals.md)
- [资料审核 · 资料审核 · 详情抽屉](../../showcase/index.html#profile-audit) · [场景文档](../../showcase/docs/profile-audit.md)

[竞品组件拆解](../../reference-review/竞品组件反推规范.html) · [业务场景分类](../../业务场景分类清单.md)
