# ActionSheet 操作菜单 
本组件用于从底部弹出一个操作菜单,供用户选择并返回结果。
本组件功能类似于 QinJs 的 qin.showActionSheet API ,配置更加灵活,所有平台都表现一致。
# 基础用法
<template>
<view>
<qinui-action-sheet
ref="actionSheet"
:options="list"
/>
<button @click="onOpen">打开 ActionSheet</button>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{
label: '选项1',
},
{
label: '选项2',
},
{
label: '选项3',
},
]
}
},
methods: {
onOpen() {
this.$refs.actionSheet.open();
},
}
}
</script>
# 设置状态
每条数据中设置 disabled 控制。
<template>
<view>
<qinui-action-sheet
ref="actionSheet"
:options="list"
/>
<button @click="onOpen">打开ActionSheet</button>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{
label: '选项1',
},
{
loading: true,
},
{
label: '选项被禁用',
disabled: true,
},
]
}
},
methods: {
onOpen() {
this.$refs.actionSheet.open();
},
}
}
</script>
# 显示取消按钮
设置 cancelText 即可
<template>
<view>
<qinui-action-sheet
ref="actionSheet"
:options="list"
cancelText="取消"
/>
<button @click="onOpen">打开ActionSheet</button>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{
label: '选项1',
},
{
label: '选项2',
},
{
label: '选项3',
},
]
}
},
methods: {
onOpen() {
this.$refs.actionSheet.open();
},
}
}
</script>
# 描述内容
设置 desc 即可
<template>
<view>
<qinui-action-sheet
ref="actionSheet"
:options="list"
desc="这是一段描述文本,字号偏小,颜色偏淡"
>
</qinui-action-sheet>
<button @click="onOpen">打开ActionSheet</button>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{
label: '选项1',
},
{
label: '选项2',
},
{
label: '选项3',
},
]
}
},
methods: {
onOpen() {
this.$refs.actionSheet.open();
},
}
}
</script>
# 显示标题及自定义内容
<template>
<view>
<qinui-action-sheet
ref="actionSheet"
title="标题位置"
>
<text
style="margin: 10px 20px 30px 20px; color: #303133; font-size: 15px"
>这是一段通过slot传入的内容,您可以在此自定义操作面板</text
>
</qinui-action-sheet>
<button @click="onOpen">打开ActionSheet</button>
</view>
</template>
<script>
export default {
methods: {
onOpen() {
this.$refs.actionSheet.open();
},
}
}
</script>
# 小程序开放能力
<template>
<view>
<qinui-action-sheet
ref="actionSheet"
title="微信开放能力"
:options="list"
@getuserinfo="onGetUserInfo"
/>
<button @click="onOpen">打开ActionSheet</button>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{
label: '获取用户信息',
openType: 'getUserInfo',
color: '#5ac725',
},
]
}
},
methods: {
onOpen() {
this.$refs.actionSheet.open();
},
onGetUserInfo(res) {
qin.showToast({
title: `用户名:${res.userInfo.nickName}`,
icon: 'none',
});
},
}
}
</script>
# 每条数据的描述文本
<template>
<view>
<qinui-action-sheet
ref="actionSheet"
:options="list"
>
</qinui-action-sheet>
<button @click="onOpen">打开ActionSheet</button>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{
label: '选项1',
},
{
label: '选项2',
},
{
label: '选项3',
desc: '描述文本',
},
]
}
},
methods: {
onOpen() {
this.$refs.actionSheet.open();
},
}
}
</script>
# 定制字段
<template>
<view>
<qinui-action-sheet
ref="actionSheet"
:options="actionsb"
:fieldNames="{
label: 'name',
}"
>
</qinui-action-sheet>
<button @click="onOpen">打开ActionSheet</button>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{
name: '大秦1',
},
{
name: '大秦2',
},
{
name: '大秦3',
},
]
}
},
methods: {
onOpen() {
this.$refs.actionSheet.open();
},
}
}
</script>
# API
# Props
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|---|---|---|---|---|
| title | 设置标题 | String | - | - |
| desc | 选项上方的描述信息 | String | - | - |
| options | 按钮的文字数组,见上方文档示例 | Array<Object> | [ ] | - |
| fieldNames | 字段定制,参考 | Object | { label: 'label', desc: 'desc', diabled: 'diabled', loading: 'loading' } | - |
| cancelText | 取消按钮的文字,不为空时显示按钮 | String | - | - |
| safeAreaInsetBottom | 是否开启底部安全区适配 | Boolean | true | true | false |
| closeOnClickOverlay | 点击遮罩是否允许关闭组件 | Boolean | - | - |
| closeOnClickAction | 点击某个菜单项时是否关闭组件 | String | true | true | false |
| lang | 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文 | String | en | en | zh_CN | zh_TW | |
| sessionFrom | 会话来源,open-type="contact"时有效。只微信小程序有效 | String | - | - |
| sendMessageTitle | 会话内消息卡片标题,openType="contact"时有效 | String | - | - |
| sendMessagePath | 会话内消息卡片点击跳转小程序路径,openType="contact"时有效 | String | - | - |
| sendMessageImg | 会话内消息卡片图片,openType="contact"时有效 | String | - | - |
| showMessageCard | 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息,openType="contact"时有效 | Boolean | false | true | false |
| appParameter | 打开 APP 时,向 APP 传递的参数,openType=launchApp 时有效 | String | - | - |
# FieldNames Props
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|---|---|---|---|---|
| value | 提交给接口的 | String | value | - |
| label | 中文 | String | label | - |
| desc | 描述 | String | desc | - |
| diabled | 禁用 | String | diabled | - |
| loading | 加载 | String | loading | - |
# Option Props
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|---|---|---|---|---|
| openType | 小程序的打开方式 | String | '' | - |
| disabled | 该菜单是否禁用 | Boolean | false | true | false |
| loading | 该菜单是否处于加载状态 | Boolean | false | true | false |
| name | 该菜单的标题 | String | '' | - |
| desc | 该菜单的描述 | String | '' | - |
| fontSize | 该菜单name文字的大小,单位px(rpx) | String | 16px | - |
| color | 该菜单name文字的颜色 | String | #303133 | - |
# Methods
| 方法名 | 说明 |
|---|---|
| open | 弹出操作菜单组件 |
| close | 关闭操作菜单组件 |
# Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| @select | 点击ActionSheet列表项时触发 | (当前数据(theItem),当前数据中提交给接口的值(theItem[fieldName.value] |
| @close | 点击取消按钮时触发。点击遮罩触发该事件需要设置:closeOnClickOverlay="true" | - |
| @getuserinfo | 用户点击该按钮时,会返回获取到的用户信息,回调的 detail 数据与 wx.getUserInfo 返回的一致,openType="getUserInfo"时有效 | detail |
| @contact | 客服消息回调,openType="contact"时有效 | - |
| @getphonenumber | 获取用户手机号回调,openType="getPhoneNumber"时有效 | - |
| @error | 当使用开放能力时,发生错误的回调,openType="error"时有效 | - |
| @launchapp | 打开 APP 成功的回调,openType="launchApp"时有效 | - |
| @opensetting | 在打开授权设置页后回调,openType="openSetting"时有效 | - |