Sheet上拉菜单
引入
在app.json或index.json中引入组件,默认为ES6版本
"usingComponents": {
"vtu-sheet": "/miniprogram_npm/vtuweapp/sheet/vtu-sheet"
}
代码演示
基础用法
<vtu-btn type="primary" bind:click="showSheet1">弹出菜单</vtu-btn>
<vtu-sheet show="{{show1}}" sheetList="{{sheetList1}}" bind:select="bindSelect1"></vtu-sheet>
Page({
data: {
show1: false,
sheetList1: [
{
label: '选项(异步)',
desc: '确定删除吗?删除后无法恢复哦~',
loading: false,
async: true
},
{
label: '禁用选项',
disabled: true
},
{
label: '删除',
color: 'red',
loading: false,
icon: 'iconfont icon-picture-delet'
}
]
},
showSheet1: function() {
this.setData({
show1: true
})
},
bindSelect1: function(e) {
let self = this
let index = e.detail.index;
switch (index) {
case 0:
setTimeout(function() {
self.setData({
show1: false
})
}, 1000)
break;
case 2:
setTimeout(function() {
self.setData({
show1: false
})
}, 1000)
break;
}
}
});
微信开放能力
<vtu-btn type="primary" bind:click="showSheet2">弹出菜单</vtu-btn>
<vtu-sheet show="{{show2}}" sheetList="{{sheetList2}}" bind:getuserinfo="getUserInfo" bind:getphonenumber="getPhoneNumber"></vtu-sheet>
Page({
data: {
show2: false,
sheetList2: [
{
label: '分享',
openType: 'share',
icon: 'iconfont icon-share'
},
{
label: '注册账号',
openType: 'getUserInfo'
},
{
label: '注册手机号',
openType: 'getPhoneNumber'
},
{
label: '打开客服',
openType: 'contact'
},
{
label: '打开授权设置页',
openType: 'openSetting'
},
{
label: '意见反馈',
openType: 'feedback'
}
]
},
showSheet2: function() {
this.setData({
show2: true
})
},
getUserInfo: function(e) {
wx.showToast({
title: "获取用户信息成功!",
icon: 'none',
duration: 2000
});
console.log("getUserInfo: ", e)
},
getPhoneNumber: function(e) {
wx.showToast({
title: "获取用户手机号成功!",
icon: 'none',
duration: 2000
});
console.log("getPhoneNumber: ", e)
}
});
组件参数
Props
参数 | 说明 | 类型 | 默认值 | 必填 |
---|
show | 下拉菜单是否显示 | Boolean | false | 否 |
closeOnClickOverlay | 点击遮罩是否关闭菜单 | Boolean | true | 否 |
show-overlay | 是否显示遮罩层 | Boolean | true | 否 |
show-cancel | 是否显示取消按钮 | Boolean | true | 否 |
cancel-label | 取消按钮文案 | String | 取消 | 否 |
sheet-list | 上拉菜单按钮列表 | Array | - | 否 |
SheetList Props
按钮属性参数
参数 | 说明 | 类型 | 默认值 | 必填 |
---|
label | 按钮文字 | String | - | 否 |
desc | 按钮描述 | String | - | 否 |
loading | 加载状态 | Boolean | false | 否 |
async | 是否异步 | Boolean | false | 否 |
disabled | 是否禁用 | Boolean | false | 否 |
color | 按钮文字颜色 | String | - | 否 |
openType | 开放能力,具体参考微信开放文档 | String | - | 否 |
Events
事件 | 说明 | 返回值 |
---|
bind:select | 菜单点击事件 | event.detail = {index},index为选择按钮索引 |
bind:getuserinfo | 用户点击该按钮时,会返回获取到的用户信息, 从返回参数的 detail 中获取到的值同 wx.getUserInfo | 同 wx.getUserInfo |
bind:getphonenumber | 获取用户手机号回调 | 同 wx.getphonenumber |
bind:contact | 客服消息回调 | 同 wx.contact |
bind:error | 当使用开放能力时,发生错误的回调 | 同 wx.error |
bind:opensetting | 在打开授权设置页后回调 | 同 wx.opensetting |
bind:launchapp | 打开 APP 成功的回调,open-type=launchApp时有效 | 同 wx.launchapp |
外部样式类
外部样式类名 | 说明 |
---|
v-class | 组件外部样式类 |