简体中文
fs-popup
约 1107 字大约 4 分钟
2026-06-25
简介
fs-popup 弹出层组件用于在当前页面显示一个弹窗,支持顶部、底部、左侧、右侧、居中等多种弹出方向,具备遮罩、动画、内容自定义、操作栏、关闭按钮等能力,适用于多种业务弹窗场景。
使用方法
局部引入,在需要引入的页面或组件的 index.json 中配置:
"usingComponents": {
"fs-popup": "ava-ui/fxui/fs-popup/index"
}代码演示
1. 头部内容(标题/搜索/操作/关闭)
2. 弹出方向
3. 内容超长滚动
4. 遮罩层配置
支持通过overlay属性自定义遮罩层的行为和样式:
API
属性
| 属性名 | 说明 | 类型 | 可选值/格式 | 默认值 |
|---|---|---|---|---|
| show | 是否显示弹窗 | boolean | true/false | false |
| position | 弹出方向 | string | bottom/top/left/right/center | bottom |
| slide | 滑动动画 | boolean | true/false | true |
| contentHeight | 内容高度 | number | — | 0 |
| contentWidth | 内容宽度 | number | — | 0 |
| isOptimize | 性能优化 | boolean | true/false | false |
| extStyle | 外部样式 | string | — | '' |
| headerStyle | 头部区域样式 | string | — | '' |
| topOffset | 顶部弹窗距离顶部 | number | — | 60 |
| title | 弹窗标题 | string | — | '' |
| showClose | 显示关闭按钮 | boolean | true/false | true |
| searchType | 搜索模式 | string | null/icon/input | null |
| searchProps | 搜索组件配置 | object | 见下方说明 | {} |
| actions | 操作栏按钮 | array | [{type:'text'/'icon',text,icon,...}] | [] |
| overlay | 遮罩层配置 | object | 透传给fs-overlay组件的属性 | {} |
searchType 说明:
null:无搜索框icon:actions 右侧显示搜索 icon,点击后弹出输入框+清除+取消input:直接显示输入框+清除+取消
searchProps 配置说明:
searchProps 对象用于配置 fs-search 组件的属性,支持以下配置:
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| type | string | 'bordered' | 搜索框类型:bordered/plain |
| size | string | 'mini' | 搜索框尺寸:small/normal/large/mini |
| value | string | '' | 输入框内容 |
| placeholder | string | '搜索...' | 占位符文本 |
| showCancel | boolean | - | 是否显示取消按钮,优先级高于默认逻辑 |
| cancelText | string | '取消' | 取消按钮文字 |
| focus | boolean | - | 是否自动聚焦,优先级高于默认逻辑 |
| disabled | boolean | false | 是否禁用 |
| readonly | boolean | false | 是否只读 |
| maxlength | number | 200 | 最大输入长度 |
| extStyle | string | '' | 外部样式 |
overlay 配置说明:
overlay 对象用于配置 fs-overlay 组件的属性,支持以下配置:
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| zIndex | number | 11000 | 遮罩层级 |
| backgroundColor | string | 'rgba(0, 0, 0, 0.7)' | 遮罩背景色 |
| duration | number | 300 | 动画时长(毫秒) |
| preventScrollThrough | boolean | true | 是否阻止穿透 |
| closeOnOverlayClick | boolean | true | 点击遮罩是否关闭 |
| customStyle | string | '' | 自定义样式 |
| customClass | string | '' | 自定义类名 |
headerStyle 说明:
- 用于自定义弹窗头部区域(标题/搜索/操作栏/关闭按钮所在区域)的内联样式,支持标准 style 语法
- 例如:
headerStyle="background: #f8f8f8; border-bottom: 1px solid #eee;"
actions 配置说明
- type: 'text'(默认)或 'icon',text 时渲染文字按钮,icon 时渲染 iconfont
- text: 按钮文本(type 为 text 时)
- icon: iconfont 名称(type 为 icon 时)
Slot
| 名称 | 说明 |
|---|---|
| 默认 | 弹窗内容区 |
| header | 头部自定义内容 |
| actions | 操作栏自定义 |
事件
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| onClose | 点击关闭按钮 | event |
| onBackClose | 物理返回键关闭 | event |
| onAction | 点击操作按钮 | |
| onSearchInput | 搜索框输入 | value |
| onSearchConfirm | 搜索框回车/搜索 | value |
| onSearchCancel | 搜索取消 | event |
| onSearchClear | 清除搜索输入 | event |
| onSearchFocus | 搜索框获得焦点 | event |
| onSearchBlur | 搜索框失去焦点 | event |
| overlayClick | 点击遮罩层 | event |
| overlayEnter | 遮罩层进入 | event |
| overlayLeave | 遮罩层离开 | event |
设计说明
- 支持顶部、底部、左/右、居中等多种弹出方向,样式与设计稿一致
- 头部内容(标题/搜索/操作/关闭)可灵活组合,支持 slot 扩展
- 搜索功能使用
fs-search组件实现,提供更好的用户体验和一致的样式 - 内容区最大高度自适应,超长内容自动滚动
- 支持 Android 物理返回键关闭弹窗
- 变量全部用 var.wxss,风格统一
