更新记录
1.0.0(2025-02-10)
下载此版本
发布初版
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
app-vue |
× |
√ |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
× |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
Button 按钮
组件名: xt-button
适配情况需自行尝试,开发时只测试了H5、APP、微信小程序
安装方式
本组件符合 easycom 规范,HBuilderX 3.1.0 起,只需将本组件导入项目,在页面 template 中即可直接使用,无需在页面中 import 和注册 components
基本用法
<template>
<view class="xt">
<view>基础按钮</view>
<view class="xt-button">
<xt-button type="primary" :customStyle="style">primary</xt-button>
<xt-button type="success" :customStyle="style">success</xt-button>
<xt-button type="warning" :customStyle="style">warning</xt-button>
<xt-button type="danger" :customStyle="style">danger</xt-button>
<xt-button type="info" :customStyle="style">info</xt-button>
</view>
<view>圆角按钮</view>
<view class="xt-button">
<xt-button type="primary" :customStyle="style" round></xt-button>
<xt-button type="success" :customStyle="style" round></xt-button>
<xt-button type="warning" :customStyle="style" round></xt-button>
<xt-button type="danger" :customStyle="style" round></xt-button>
<xt-button type="info" :customStyle="style" round></xt-button>
</view>
<view>镂空按钮</view>
<view class="xt-button">
<xt-button type="primary" :customStyle="style" plain></xt-button>
<xt-button type="success" :customStyle="style" plain></xt-button>
<xt-button type="warning" :customStyle="style" plain></xt-button>
<xt-button type="danger" :customStyle="style" plain></xt-button>
<xt-button type="info" :customStyle="style" plain></xt-button>
</view>
<view>文字按钮</view>
<view class="xt-button">
<xt-button type="primary" :customStyle="style" text></xt-button>
<xt-button type="success" :customStyle="style" text></xt-button>
<xt-button type="warning" :customStyle="style" text></xt-button>
<xt-button type="danger" :customStyle="style" text></xt-button>
<xt-button type="info" :customStyle="style" text></xt-button>
</view>
<view>禁用状态和加载中状态</view>
<view class="xt-button">
<xt-button type="primary" :customStyle="style" disabled></xt-button>
<xt-button type="success" :customStyle="style" disabled></xt-button>
<xt-button type="warning" :customStyle="style" loading disabled></xt-button>
<xt-button type="danger" :customStyle="style" loading></xt-button>
<xt-button type="info" :customStyle="style" loading></xt-button>
</view>
<view>自定义颜色也可以渐变色,优先级大于 type</view>
<view class="xt-button">
<xt-button type="primary" :customStyle="style" color="#dd7694"></xt-button>
<xt-button type="success" :customStyle="style" color="#f3a694"></xt-button>
<xt-button type="warning" :customStyle="style" color="linear-gradient(135deg,#17ead9,#6078ea)"></xt-button>
<xt-button type="danger" :customStyle="style" color="linear-gradient(135deg,#f02fc2,#6094ea)"></xt-button>
<xt-button type="info" :customStyle="style" color="linear-gradient(135deg,#5efce8,#736efe)"></xt-button>
</view>
<view>按钮大小</view>
<view class="xt-button">
<xt-button type="primary" :customStyle="style" size='large'>超大</xt-button>
<xt-button type="success" :customStyle="style" size='default'>默认</xt-button>
<xt-button type="warning" :customStyle="style" size='small'>小</xt-button>
<xt-button type="danger" :customStyle="style" size='mini'>超小</xt-button>
</view>
<view>按钮插槽</view>
<view class="xt-button">
<xt-button type="primary" :customStyle="style" name="前置">
<template #prepend>
<view style="margin-right: 20rpx;">
<xt-icon size="20"></xt-icon>
</view>
</template>
</xt-button>
<xt-button type="success" :customStyle="style" name="后置">
<template #append>
<view style="margin-left: 10rpx;">
<xt-icon name="xt-icon-shanchu" size="30rpx"></xt-icon>
</view>
</template>
</xt-button>
<!-- 自定义加载中内容 -->
<xt-button type="warning" :customStyle="style" loading>
<template #loading>
<xt-icon name="xt-icon-xiaojuchang" size="30rpx"></xt-icon>
</template>
加载中
</xt-button>
<xt-button type="warning" :customStyle="style">
<xt-icon name="xt-icon-aixin" size="30rpx"></xt-icon>
</xt-button>
<xt-button type="danger" :customStyle="style">
<template #prepend>
<view style="margin-right: 10rpx;">
<xt-icon size="30rpx"></xt-icon>
</view>
</template>
<xt-icon name="xt-icon-aixin" size="30rpx"></xt-icon>
<template #append>
<view style="margin-left: 10rpx;">
<xt-icon name="xt-icon-shanchu" size="30rpx"></xt-icon>
</view>
</template>
</xt-button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
style: {
padding: '0 20rpx'
}
}
},
methods: {
onClick() {
uni.showToast({
title: '点击',
icon: 'none'
})
}
}
}
</script>
<style lang="scss">
.xt {
padding: 0 20rpx;
}
.xt-button {
display: flex;
align-items: center;
justify-content: space-around;
gap: 10rpx;
margin-top: 10rpx;
margin-bottom: 10rpx;
}
.prep {}
</style>
API
属性名 |
类型 |
描述 |
默认值 |
name |
String |
按钮名称 |
按钮 |
color |
String |
按钮颜色 |
- |
type |
String |
按钮内置颜色,primary,success,warning,danger,info |
primary |
disabled |
Boolean |
是否禁用 |
false |
loading |
Boolean |
是否显示加载状态 |
false |
text |
String |
是否为文字按钮 |
false |
size |
String |
按钮尺寸,large,default,small,mini |
default |
plain |
Boolean |
是否镂空 |
false |
round |
Boolean |
圆角按钮 |
false |
customStyle |
Object |
自定义样式 |
- |
throttleTime |
Number |
节流时间,单位ms |
0 |
hoverStopPropagation |
Boolean |
是否阻止祖先节点出现点击态,微信小程序有效 |
true |
hoverStartTime |
String | Number |
0 |
按住后多久出现点击态,单位毫秒 |
hoverStayTime |
String | Number |
200 |
松开后点击态保留时间,单位毫秒 |
formType |
String |
用于 <form> 组件,点击触发 <form> 组件的 submit/reset 事件 |
- |
openType |
String |
开放能力,同uniapp官网 |
- |
appParameter |
String |
打开 APP 时传递的参数,open-type=launchApp 时有效 |
- |
sendMessageTitle |
String |
会话内消息卡片标题,openType="contact" 时有效 |
- |
sendMessagePath |
String |
会话内消息卡片点击跳转小程序路径,openType="contact" 时有效 |
- |
sendMessageImg |
String |
会话内消息卡片图片,openType="contact" 时有效 |
- |
showMessageCard |
Boolean |
是否显示会话内消息卡片,用户进入客服会话时显示提示 |
false |
dataName |
String |
额外传参参数,用于小程序的 data-xxx 属性 |
- |
lang |
String |
指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文 |
en |
sessionFrom |
String |
会话来源,openType="contact" 时有效 |
- |
groupId |
String |
打开群资料卡时传递的群号 |
- |
guildId |
String |
打开频道页面时传递的频道号 |
- |
publicId |
String |
打开公众号资料卡时传递的号码 |
- |
dataImId |
String |
客服的抖音号 |
- |
dataImType |
String |
IM卡片类型 |
- |
dataGoodsId |
String |
商品的id,仅支持泛知识课程库和生活服务商品库中的商品 |
- |
dataOrderId |
String |
订单的id,仅支持交易2.0订单 |
- |
dataBizLine |
String |
商品类型,1 代表生活服务,2 代表泛知识 |
- |
Events
事件名 |
描述 |
click |
点击事件 |
getphonenumber |
获取用户手机号回调,open-type="getPhoneNumber" 时有效 |
getuserinfo |
获取用户信息,open-type="getUserInfo" 时有效 |
error |
发生错误时的回调 |
opensetting |
打开授权设置页并关闭后的回调 |
launchapp |
从小程序打开 App 成功的回调 |
agreeprivacyauthorization |
用户同意隐私协议事件回调,open-type="agreePrivacyAuthorization" 时有效 |
addgroupapp |
添加群应用的回调 |
chooseaddress |
调起用户编辑并选择收货地址的回调 |
chooseinvoicetitle |
用户选择发票抬头的回调 |
subscribe |
订阅消息授权回调 |
login |
登录回调 |
im |
跳转IM的成功回调 |
contact |
客服消息回调 |
chooseavatar |
获取用户头像回调 |