# ActionSheet 上拉菜单
概述
ActionSheet 上拉菜单,从底部弹出的模态框,提供和当前场景相关的操作菜单。
温馨提示
- 使用该组件 需要 同时引入
fui-types
类型文件。 - 该组件内置了国际化配置,使用该组件,必须同时引入
fui-lang
所有文件。
# 支持平台
目前开发小程序与H5推荐使用 FirstUI nvue版本 (opens new window)。
安卓系统版本 | 安卓uni-app | 安卓uniapp-x | iOS系统版本 | iOS uniapp | iOS uniapp-x | 小程序 | H5/Web |
---|---|---|---|---|---|---|---|
5.0 | × | ✓ | 9.0 | × | × | × | ✓ |
# 引入
以下介绍两种常用的引入方式。
第一种:在页面中引用、注册
import fuiActionsheet from "@/components/firstui/fui-actionsheet/fui-actionsheet.uvue"
export default {
components:{
fuiActionsheet
}
}
1
2
3
4
5
6
2
3
4
5
6
第二种:easycom组件规范
传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。easycom将其精简为一步。
First UI easycom配置请查看 快速上手。
如果不了解easycom,可先查看 官网文档 (opens new window)。
# 代码演示
部分示例演示,完整使用请参考示例程序以及文档API。
带提示信息
通过 show
属性控制是否显示上拉菜单,tips
属性设置提示信息,itemList
属性设置菜单按钮数据。
<fui-button type="gray" btn-size="medium" text="带提示" :bold="true" margin="24rpx"
@onclick="showActionSheet"></fui-button>
<fui-actionsheet v-model:visible="show" :tips="tips" :itemList="itemList" @onclick="itemClick"></fui-actionsheet>
1
2
3
2
3
import { FuiActionSheetItemParam } from '@/components/firstui/fui-types/index.uts'
export default {
data() {
return {
show: false,
tips: '退出后不会删除任何历史数据,下次登录依然可以使用本账号。',
itemList:[{
text: '退出登录',
color: '#FF2B2B'
}] as FuiActionSheetItemParam[]
}
},
methods: {
showActionSheet() {
this.show = true
},
itemClick(e : FuiActionSheetItemParam) {
console.log(JSON.stringify(e))
// this.fui.toast(e.text)
this.show = false
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
无取消按钮
通过 show
属性控制是否显示上拉菜单,tips
属性设置提示信息,isCancel
属性设置是否需要取消按钮,itemList
属性设置菜单按钮数据。
<fui-button type="gray" btn-size="medium" text="无取消按钮" :bold="true" margin="24rpx"
@onclick="showActionSheet"></fui-button>
<fui-actionsheet :show="show" :tips="tips" :isCancel="false" :itemList="itemList" @onclick="itemClick"></fui-actionsheet>
1
2
3
2
3
import { FuiActionSheetItemParam } from '@/components/firstui/fui-types/index.uts'
export default {
data() {
return {
show: false,
tips: '请选择性别',
itemList:[{
text: '男'
}, {
text: '女'
}, {
text: '未知'
}] as FuiActionSheetItemParam[]
}
},
methods: {
showActionSheet() {
this.show = true
},
itemClick(e : FuiActionSheetItemParam) {
console.log(JSON.stringify(e))
// this.fui.toast(e.text)
this.show = false
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Slots
插槽名称 | 说明 |
---|---|
- | - |
# Props
属性名 | 类型 | 说明 | 默认值 | 平台差异说明 |
---|---|---|---|---|
visible | Boolean | 是否显示上拉菜单 | false | - |
itemList | Array<FuiActionSheetItemParam> | 菜单按钮数组,类型见下方描述 | [ ] | - |
itemSize | Number | 菜单按钮字体大小,单位rpx | 32 | - |
tips | String | 提示信息 | - | - |
color | String | 提示信息文本颜色 | #7F7F7F | - |
size | Number | 提示信息字体大小,单位rpx | 26 | - |
radius | Boolean | 上拉菜单是否带圆角 | true | - |
isCancel | Boolean | 是否需要取消按钮 | true | - |
theme | String | 上拉菜单主题。可选值:light、dark。 | light | - |
maskClosable | Boolean | 点击遮罩是否可关闭上拉菜单 | false | - |
zIndex | Number | 上拉菜单层级z-index值 | 996 | - |
safeArea | Boolean | 是否适配底部安全区 | true | - |
# FuiActionSheetItemParam
/**
* fui-actionsheet 上拉菜单组件 itemList 属性 参数类型
* @description props itemList:Arrary:FuiActionSheetItemParam[]
* @param {string} text {string} 菜单按钮文本
* @param {string} color {string} 菜单按钮文本颜色(主题(theme)为 light 下使用)
* @param {string} darkColor {string} 菜单按钮文本颜色(主题(theme)为 dark 下使用)
* @param {string} param {string} 自定义参数
* @param {number} index {number} 按钮索引值,点击按钮时内部返回,无需传值
*/
export type FuiActionSheetItemParam = {
text : string;
color ?: string;
darkColor ?: string;
param ?: string;
index ?: number;
}
/*页面引入*/
import { FuiActionSheetItemParam } from '@/components/firstui/fui-types/index.uts'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Events
事件名 | 类型 | 说明 | 回调参数 |
---|---|---|---|
@onclick | (event: FuiActionSheetItemParam) => void | 点击上拉菜单按钮时触发 | FuiActionSheetItemParam |
@cancel | () => void | 点击遮罩层(maskClosable=true)或者取消按钮时触发 | - |
@update:visible | (event: boolean) => void | 点击遮罩层(maskClosable=true)或者取消按钮时触发,用于双向绑定 | boolean:是否显示 |
# FuiActionSheetItemParam
同上。