更新记录
1.0.1(2025-04-22)
增加菜单图标功能
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 4.0 app-vue |
× |
√ |
√ |
√ |
√ |
√ |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
√ |
√ |
√ |
√ |
√ |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
xt-bubble-menu 文档
- 支持数据绑定:给组件绑定一个localdata,会自动渲染一组菜单内容。
- 支持自定义三角箭头方向和位置偏移:菜单三角箭头可自定义设置top、bottom、left、right四个方向及位置偏移量设置。
- 支持$emit事件:菜单item点击事件、菜单显示时的遮罩点击事件。
- 支持菜单item图标样式:自定义启用和关闭带图标功能及样式设置。
- 兼容情况:开发版本为HBuilderX 4.24,在H5端和APP端能正常使用。
安装方式
将组件文件夹复制粘贴到你项目中的components目录,即可在页面template中直接使用,无需import和注册。
属性
属性名 |
类型 |
可选值 |
默认值 |
说明 |
localdata |
Array |
- |
- |
本地渲染数据,格式为数组,数组内每项是对象。数据格式:[{text:'',value:'',icon:''}] |
direction |
String |
direction-top、direction-bottom、direction-left、direction-right |
- |
三角箭头显示样式类名,对应上、下、左、右方向 |
top |
String |
- |
- |
相对父级顶部边缘偏移量,默认单位px |
bottom |
Number, String |
- |
- |
相对父级底部边缘偏移量,默认单位px |
left |
Number, String |
- |
- |
相对父级左侧边缘偏移量,默认单位px |
right |
Number, String |
- |
- |
相对父级右侧边缘偏移量,默认单位px |
width |
Number, String |
- |
100% |
菜单宽度,默认单位px |
flexDirection |
String |
row |
column |
菜单排列方向 |
offset |
String |
- |
- |
菜单三角箭头位置偏移量,默认单位px,箭头位置默认水平居中或垂直居中 |
enableIcons |
Boolean |
- |
false |
启用菜单图标 |
iconType |
String |
- |
right |
菜单图标类型,根据uni-icons组件有效值进行填写 |
iconColor |
String |
- |
#ccc |
菜单图标颜色 |
iconSize |
Number, String |
- |
20 |
菜单图标大小 |
maskCloseMenu |
Boolean |
- |
true |
启用点击遮罩关闭气泡菜单。若不启用,设置为:maskCloseMenu='false' ,此时点击遮罩不会关闭菜单。 |
事件
事件名 |
事件说明 |
返回参数 |
@maskClick |
菜单遮罩层点击事件,可在父页面中自定义对应的事件处理。根据maskCloseMenu属性值来设定是否关闭气泡菜单。 |
- |
@menuItemClick |
菜单列表项点击事件,可在父页面中自定义对应的事件处理。点击列表项,气泡菜单自动关闭。 |
- |
基本用法
<template>
<view style="position:relative;">
<text @click="showBubbleMenu">气泡菜单</text>
<!-- 气泡菜单,相对顶层定位 -->
<xt-bubble-menu :localdata="message.bubbleMenuData" direction="direction-right"
:top="show.bubbleMenuTop" right="70" width="100" offset="15"
@maskClick="onMaskClick" @menuItemClick="onMenuItemClick">
</xt-bubble-menu>
</view>
</template>
<script>
import {
loadtreeObj,
Request,
ShowToast,
SetStorage
} from '@/common/utils.js'
export default {
data() {
return {
//气泡菜单数据
bubbleMenuBaseData: [{
text: "上移",
value: 1,
icon:'arrow-up'
},
{
text: "下移",
value: 2,
icon:'arrow-down'
},
{
text: "修改",
value: 3,
icon:'compose'
},
{
text: "删除",
value: 4,
icon:'trash'
},
{
text: "新增",
value: 5,
icon:'plus'
}
],
}
},
methods: {
//气遮罩点击事件
onMaskClick() {
console.log("onMaskClick")
},
//菜单项单击事件
onMenuItemClick() {
console.log("onMenuItemClick")
}
}
}
</script>