zx-button 按钮组件
zx-button
是一个扩展自 uni-app 官方 button 组件的增强型按钮组件,提供了更多的自定义样式和功能选项。
特性
- 完全兼容官方 button 组件的所有属性和事件
- 支持更多按钮类型:default、primary、warn、success、warning、danger、info
- 支持多种形式:普通按钮、镂空按钮、文本按钮、链接按钮
- 支持形状定制:方形、圆角、圆形
- 支持图标按钮
- 支持多种尺寸:大、中、小,以及自定义尺寸
- 支持命名插槽,更灵活的内容定制
使用方法
<template>
<zx-button type="primary">确认</zx-button>
</template>
<script>
import ZxButton from '@/components/zx-button/zx-button.vue'
export default {
components: {
ZxButton
}
}
</script>
属性说明
基础属性
属性名 | 类型 | 默认值 | 说明 |
---|
type | String | 'default' | 按钮类型,可选值:default、primary、warn、success、warning、danger、info |
size | String | 'default' | 按钮大小,可选值:default、mini、large,也可传入自定义高度值如 '90rpx' |
plain | Boolean | false | 按钮是否镂空,背景色透明 |
text | Boolean | false | 是否为文本按钮,无边框和背景色 |
link | Boolean | false | 是否为链接按钮,类似于文本按钮,但有链接样式 |
round | Boolean | false | 是否为圆角按钮 |
circle | Boolean | false | 是否为圆形按钮 |
disabled | Boolean | false | 是否禁用 |
loading | Boolean | false | 名称前是否带 loading 图标 |
样式相关属性
属性名 | 类型 | 默认值 | 说明 |
---|
shape | String | '' | 按钮形状,已弃用,请使用 round 和 circle 属性代替 |
color | String | '' | 文字颜色 |
backgroundColor | String | '' | 按钮背景色 |
bg | Boolean | false | 文本按钮是否显示背景色 |
图标相关属性
属性名 | 类型 | 默认值 | 说明 |
---|
icon | String | '' | 图标名称 |
iconColor | String | '' | 图标颜色 |
iconSize | String | '36rpx' | 图标大小 |
行为属性
属性名 | 类型 | 默认值 | 说明 |
---|
formType | String | '' | 用于 form 组件,可选值:submit、reset |
openType | String | '' | 开放能力,详见下方说明 |
hoverClass | String | 'button-hover' | 指定按钮按下去的样式类 |
hoverStartTime | Number | 20 | 按住后多久出现点击态,单位毫秒 |
hoverStayTime | Number | 70 | 手指松开后点击态保留时间,单位毫秒 |
hoverStopPropagation | Boolean | false | 是否阻止本节点的祖先节点出现点击态 |
开放能力相关属性
属性名 | 类型 | 默认值 | 说明 |
---|
appParameter | String | '' | 打开 APP 时,向 APP 传递的参数 |
lang | String | 'zh_CN' | 指定返回用户信息的语言,可选值:zh_CN、zh_TW、en |
sessionFrom | String | '' | 会话来源 |
sendMessageTitle | String | '' | 会话内消息卡片标题 |
sendMessagePath | String | '' | 会话内消息卡片点击跳转小程序路径 |
sendMessageImg | String | '' | 会话内消息卡片图片 |
showMessageCard | Boolean | false | 是否显示会话内消息卡片 |
groupId | String | '' | 打开群资料卡时,传递的群号 |
guildId | String | '' | 打开频道页面时,传递的频道号 |
publicId | String | '' | 打开公众号资料卡时,传递的号码 |
dataImId | String | '' | 客服的抖音号 |
dataImType | String | '' | IM卡片类型 |
dataGoodsId | String | '' | 商品的id |
dataOrderId | String | '' | 订单的id |
dataBizLine | String | '' | 商品类型,"1"代表生活服务,"2"代表泛知识 |
插槽
名称 | 说明 |
---|
默认插槽 | 按钮的文本内容 |
icon | 自定义图标区域内容 |
loading | 自定义加载中图标 |
事件
事件名 | 说明 | 回调参数 |
---|
click | 点击按钮时触发 | event |
getPhoneNumber | 获取用户手机号回调 | event |
getUserInfo | 获取用户信息回调 | event |
error | 当使用开放能力时,发生错误的回调 | event |
openSetting | 在打开授权设置页后回调 | event |
launchApp | 打开 APP 成功的回调 | event |
contact | 客服消息回调 | event |
chooseAvatar | 获取用户头像回调 | event |
agreePrivacyAuthorization | 用户同意隐私协议事件回调 | event |
addGroupApp | 添加群应用回调 | event |
chooseAddress | 选择收货地址回调 | event |
chooseInvoiceTitle | 选择发票抬头回调 | event |
subscribe | 订阅消息回调 | event |
login | 登录回调 | event |
im | IM事件回调 | event |
示例
基础用法
<zx-button>默认按钮</zx-button>
<zx-button type="primary">主要按钮</zx-button>
<zx-button type="warn">警告按钮</zx-button>
<zx-button type="success">成功按钮</zx-button>
<zx-button type="danger">危险按钮</zx-button>
<zx-button type="info">信息按钮</zx-button>
镂空按钮
<zx-button plain>镂空按钮</zx-button>
<zx-button type="primary" plain>镂空主要按钮</zx-button>
文本按钮和链接按钮
<zx-button text>文本按钮</zx-button>
<zx-button type="primary" text>主要文本按钮</zx-button>
<zx-button link>链接按钮</zx-button>
<zx-button type="primary" link>主要链接按钮</zx-button>
禁用状态
<zx-button disabled>禁用按钮</zx-button>
<zx-button type="primary" disabled>禁用主要按钮</zx-button>
<zx-button text disabled>禁用文本按钮</zx-button>
<zx-button link disabled>禁用链接按钮</zx-button>
加载状态
<zx-button loading>加载中</zx-button>
<zx-button type="primary" loading>加载中</zx-button>
<zx-button text loading>文本加载中</zx-button>
不同尺寸
<zx-button>默认尺寸</zx-button>
<zx-button size="mini">小尺寸</zx-button>
<zx-button size="large">大尺寸</zx-button>
<zx-button size="120rpx">自定义尺寸</zx-button>
不同形状
<zx-button type="primary">默认形状</zx-button>
<zx-button type="primary" round>圆角按钮</zx-button>
<zx-button type="primary" circle icon="plus"></zx-button>
带图标的按钮
<zx-button type="primary" icon="search">搜索</zx-button>
<zx-button type="success" icon="check">确认</zx-button>
<zx-button type="danger" icon="delete" circle></zx-button>
文本按钮背景
<zx-button text>普通文本按钮</zx-button>
<zx-button text bg>带背景文本按钮</zx-button>
<zx-button type="primary" text bg>带背景主要文本按钮</zx-button>
自定义颜色
<zx-button color="#8a2be2" backgroundColor="#f0f0f0">自定义颜色</zx-button>
<zx-button text color="#8a2be2">自定义文本按钮颜色</zx-button>
使用插槽
<zx-button type="primary">
<template #icon>
<view class="custom-icon">🔍</view>
</template>
自定义内容
</zx-button>
<zx-button type="primary" loading>
<template #loading>
<view class="custom-loading">🔄</view>
</template>
自定义加载图标
</zx-button>
表单提交按钮
<form @submit="submitForm">
<!-- 表单内容 -->
<zx-button form-type="submit" type="primary">提交</zx-button>
<zx-button form-type="reset">重置</zx-button>
</form>
使用开放能力
<zx-button
open-type="getPhoneNumber"
@getPhoneNumber="onGetPhoneNumber"
type="primary"
>获取手机号</zx-button>
<zx-button
open-type="contact"
type="success"
>联系客服</zx-button>