---
id: "dialog"
title: "对话框：标题、滚动与焦点"
category: "浮层组件"
document_type: "component-specification"
spec_status: "local-current-draft"
element_ui: "2.15.6"
vue: "2.6.14"
page: "../index.html#spec-dialog"
source_data: "../component-data.json"
official_components: ["dialog"]
template_components: ["el-button"]
scenario_count: 10
verification: "scenario-checklist-not-full-test-pass"
---

# 对话框：标题、滚动与焦点

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

## 适用范围与组件映射

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

官方条目映射：`dialog`。

本页模板直接使用的 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`；保留点击热区。
- 本规范库的深色目录、蓝色展示区属于文档排版，不是业务组件颜色或业务导航规范。

## 本页用法与分类

默认用法：默认使用带标题、内容和页脚的模态对话框；本页分别演示普通内容、长内容滚动和只读字段历史。

| 区分什么 | 本页内容 | 选用或触发条件 |
| --- | --- | --- |
| 内容用途 | 普通内容、长说明与只读历史是内容场景，沿用同一种对话框结构。 | 只读历史只显示记录并关闭；需要编辑或提交时由宿主提供对应表单与保存规则。 |
| 尺寸与滚动 | 宽度根据内容选取，长内容在中间区域滚动。 | 参考520/620/920px并限制在视口内；这些是宽度建议，不是三套样式，本页不提供全屏配置。 |
| 交互配置 | 遮罩、关闭入口、退出键与关闭前草稿处理构成模态交互规则。 | 按当前真实内容规定能否关闭；模态期间限制焦点、关闭回入口，避免层层嵌套。 |
| 风险与反馈 | 普通确认或危险动作由实际行为决定；加载/失败由提交结果触发。 | 只有确有危险动作才用危险按钮和风险说明；当前只读内容不凭空增加保存、错误或加载状态。 |

使用边界：不要把内容长短、宽度、全屏、提交中和危险动作当成可任意互换的对话框样式。

## 组件规则

- **DIALOG-R01**：对话框由标题、内容及按需配置的页脚组成；标题16px/600/24px，右上关闭热区36px。确认类页脚“取消 / 确认”靠右；只读字段历史使用“关闭”，不为只读内容添加虚构的保存动作。
- **DIALOG-R02**：宽度按内容选择，参考 520 / 620 / 920px，并限制为视口减 32px；高度不超过视口减 48px，长内容只滚动中间区域。
- **DIALOG-R03**：打开聚焦首个合理控件，模态期间背景不可操作、制表键 留在弹窗；关闭恢复触发器。退出键 关闭与未保存处理由宿主合同决定。
- **DIALOG-R04**：【公共用色】颜色仅从公共色值 引用：主色系 3 个基础色值、辅助功能色 3 个、中性色 10 个，共 16 个基础色值。角色可以多个，实际色值复用；不为每个组件、悬停 或不同字段再新增近似颜色。透明效果仅限遮罩 35% 与阴影 12%，从 外壳深色 派生。
- **DIALOG-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；不通过额外加粗或透明度改变正文轻重。
- **DIALOG-R06**：【默认】弹层 白底、正文深灰，标题 正文深灰、600字重，边框 边框灰；遮罩 外壳深色 的 35% 透明度，阴影 外壳深色 的 12%。
- **DIALOG-R07**：【操作 / 焦点】确认用 主题蓝 按钮；取消用普通按钮；次级操作 操作蓝 12px；焦点 操作蓝 轮廓。
- **DIALOG-R08**：【风险与执行反馈】仅在接入相应动作时适用：风险提醒用警告橙图标和正文深灰说明，实际执行失败才用错误红反馈；危险按钮按动作语义选择，提交中防重复，不给整个弹层染功能色。
- **DIALOG-R09**：【关闭 / 禁用】关闭图标 辅助深灰、悬停 操作蓝、禁用 禁用灰；关闭后焦点回到触发点。
- **DIALOG-R10**：【组件边界】仅使用实际存在的组件状态；没有操作能力的内容不添加悬停、选中或禁用变色。
- **DIALOG-R11**：【叠加优先级】状态叠加规则：禁用阻断交互；输入类控件错误边框覆盖蓝色聚焦边框；输入框不叠加外圈或阴影，其他无边框操作保留键盘焦点提示；选中底覆盖悬停底；只读不等于禁用；加载不等于成功；业务启用/停用的文字结果不等于控件是否可点击。
- **DIALOG-R12**：对话框中的文字动作复用按钮专题（#spec-buttons）的普通与危险文字操作；删除确认复用确认框专题（#spec-confirm）。本页不另维护一套危险文字字号、颜色和状态。
- **DIALOG-R13**：删除、移除统一先打开居中确认弹窗，明确对象、数量和后果；确认按钮统一写“确认”，取消不改变数据。未保存项、待上传附件、已保存记录和批量删除都沿用这一入口规则；失败保留原内容和重试入口。普通清空输入、取消筛选或关闭弹层不是删除，不自动标红。
- **DIALOG-R14**：字段历史入口紧邻字段，使用12px蓝字；弹窗标题说明对象和字段，内容为变更前/后、时间、操作人；只读信息保持正文色。
- **DIALOG-R15**：历史记录正式接入需覆盖读取中、空记录、读取失败与重试，错误不能伪装成无记录。本地历史示例仅切换有记录与空记录，不发起真实请求；关闭返回原入口，不修改当前字段。
- **DIALOG-R16**：多行提示的状态图标对齐第一行文字，不按整段文字垂直居中。确认框正文行高24px，图标24px；普通消息和区域提示沿用21px正文行高，图标居中于第一行。文字自然换行，图标和正文保留稳定间距。
- **DIALOG-R17**：表单与弹窗的主要操作区统一右侧对齐，次要动作在左、主动作在右，按钮间距10px。常规文案使用“确认、取消、保存、删除、重置”等两字动作；取消不保存并退出，重置恢复初始值，两者不能互相替换。涉及特殊业务时以准确表达为先。
- **DIALOG-R18**：【关闭事件】确认、用户取消和程序关闭分别处理：确认后关闭不能再触发取消或回滚；用户一次取消只处理一次。关闭生命周期回调不等于用户取消。提交期间能否关闭及草稿去留按实际组件约定执行。

## 场景与验收清单

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

- [ ] **DIALOG-S01**：当前示例采用普通模态对话框，核对标题、正文、页脚及长内容滚动。宽度按内容与视口选择；全屏等库能力未在本页采用，确需时由宿主单独定义和验收。挂载位置用于保证层级，不是可选外观。
- [ ] **DIALOG-S02**：遮罩、退出键、关闭按钮、关闭前校验、取消条件、长内容滚动及嵌套限制。
- [ ] **DIALOG-S03**：焦点限制在弹窗内、关闭后回到入口、关闭时销毁或保留内容、加载中及防止重复提交。
- [ ] **DIALOG-S04**：当前普通、长内容和只读历史对话框核对白底、正文、标题、关闭入口和焦点；仅宿主实际包含表单或选择控件时，再按其组件检查错误/选中等状态，弹窗容器本身不套这些状态。
- [ ] **DIALOG-S05**：当前对话框标题核对16px/600/24px，正文14px/400/21px，次级操作及说明12px/400/18px；标题和正文均#303133，检查实际弹出层与内部子节点。
- [ ] **DIALOG-S06**：关联验收：宿主对话框确有危险文字操作时，按按钮专题核对红字、无框无底、12px/400及适用交互状态；当前只读示例不增加删除入口。
- [ ] **DIALOG-S07**：本页普通内容、长内容和只读历史不执行删除。宿主在对话框中增加删除/移除时，引用确认框专题的居中确认、取消保留及失败处理；草稿和附件撤销能力须按实际实现另验。
- [ ] **DIALOG-S08**：有历史与空历史切换；关闭回到入口；记录只读；业务接入后另测加载/失败/重试。
- [ ] **DIALOG-S09**：关联验收：多行风险说明的状态图标到确认框专题检查首行对齐、24px图标与24px正文行高；本页普通内容和只读历史没有此状态图标，不标为本页交互。
- [ ] **DIALOG-S10**：接入验收：分别检查确认、取消、叉号、Esc、遮罩及父级程序关闭；一次动作只产生一次对应业务结果，确认后不误发取消，禁用的关闭入口不能执行。

### 专题验收重点

制表键 / 上档键+制表键、退出键、关闭恢复焦点、短屏内容滚动。

## 当前示例模板

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

```html
<div class="demo-line">
<el-button @click="infoOpen=true">打开弹窗样例</el-button>
<el-button @click="longOpen=true">查看长内容滚动</el-button>
</div>
<!-- reference-pattern-field-history-pattern -->
<section class="reference-supplement">
<h4>字段历史：只读列表弹窗</h4>
<field-history-pattern>
</field-history-pattern>
<p class="reference-note">参考截图用于提取场景结构；切换、校验、撤销等演示行为按本规范定义。<a href="https://resycb.axshare.com/#id=1dqetq&amp;p=会员列表a&amp;g=1" target="_blank" rel="noopener noreferrer">查看参考页</a>
</p>
</section>
```

## 交付与使用边界

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

## 来源与关联

- 来源线索：历史样板规范 40 / 41；本次焦点及滚动补全；2026-09-15 参考抽样：https://resycb.axshare.com/#id=1dqetq&p=会员列表a&g=1。
- [打开本专题页面](../index.html#spec-dialog)
- [通用基线](FOUNDATIONS.md)
- [规范总索引](README.md)
- [结构化规范数据](../component-data.json)（记录 id：`dialog`）
- [原始历史样板](../original-20260621.html)
- [历史规范条目](../spec-notes.json)

自定义示例 `field-history-pattern` 的实现：[reference-patterns.js](../reference-patterns.js)。

组合样式见 [reference-patterns.css](../reference-patterns.css)；来源及扩展范围见 [参考补充记录](../reference-supplements.md)。

## 本组件颜色状态表

| 状态 / 条件 | 统一规则 |
| --- | --- |
| 默认 | 弹层 白底、正文深灰，标题 正文深灰、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)
- [新增账号 · 新增会员 / 新增代理 · 创建弹窗](../../showcase/index.html#create-account) · [场景文档](../../showcase/docs/create-account.md)
- [存款记录 · 存款详情、列设置与导出确认](../../showcase/index.html#deposits) · [场景文档](../../showcase/docs/deposits.md)
- [账户调整审核 · 审核详情与单条/批量审核弹窗](../../showcase/index.html#account-audit) · [场景文档](../../showcase/docs/account-audit.md)
- [活动管理 · 编辑、详情和内容预览弹窗](../../showcase/index.html#campaigns) · [场景文档](../../showcase/docs/campaigns.md)
- [广告管理 · 新增/编辑广告与素材预览弹窗](../../showcase/index.html#adverts) · [场景文档](../../showcase/docs/adverts.md)
- [公告管理 · 编辑公告、内容预览与弹窗设置](../../showcase/index.html#notifications) · [场景文档](../../showcase/docs/notifications.md)
- [通知管理 · 新增/编辑通知与详情预览](../../showcase/index.html#site-messages) · [场景文档](../../showcase/docs/site-messages.md)
- [操作日志 · 日志行 · 请求/响应参数查看](../../showcase/index.html#logs) · [场景文档](../../showcase/docs/logs.md)
- [个人中心 · 修改密码等安全设置弹窗](../../showcase/index.html#personal-center) · [场景文档](../../showcase/docs/personal-center.md)
- [客服工单管理 · 新增工单与详情弹窗](../../showcase/index.html#tickets) · [场景文档](../../showcase/docs/tickets.md)

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