# 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
第二种: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
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
无取消按钮

通过 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
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

# 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

# Events

事件名 类型 说明 回调参数
@onclick (event: FuiActionSheetItemParam) => void 点击上拉菜单按钮时触发 FuiActionSheetItemParam
@cancel () => void 点击遮罩层(maskClosable=true)或者取消按钮时触发 -
@update:visible (event: boolean) => void 点击遮罩层(maskClosable=true)或者取消按钮时触发,用于双向绑定 boolean:是否显示

# FuiActionSheetItemParam

同上。

示例预览

# 示例代码地址

FirstUIActionSheet 上拉菜单
Last Updated: 1/29/2024, 6:27:37 PM