更新记录

1.0.5(2024-11-20) 下载此版本

说明文挡优化

1.0.4(2024-11-20) 下载此版本

双向绑定初始值不生效问题

1.0.3(2024-11-19) 下载此版本

提供双向绑定实现

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × ×

hbxw-radios组件

介绍

自定义默认Tag样式的单项选择器,内部由多个label包裹的radio组成

使用示例

推荐先直接复制示例代码到工程中看效果了解下使用方法再投入项目使用。


<template>
    <view class="test-container">
        <text class="test-title">tag版样式radios</text>
        <hbxw-radios :list="list" label="label" value="value" @change="listChange" v-model:radioVal="radiosTest"  />
        <hbxw-radios :list="list0" @change="listChange0"  />
        <hbxw-radios :list="list1" @change="listChange1" value="value"  />
        <text class="test-title">通过slot自定义样式的radios</text>
        <hbxw-radios :list="list1" @change="listChange2" value="value">
            <template v-slot="{isActive, item}">
                <view class="radio-item" :class="{active: isActive}">{{item['value']}}</view>
            </template>
        </hbxw-radios>

        <text class="test-title">支持再次点击取消的radios</text>
        <hbxw-radios isCanCancel :list="list" label="label" value="value" @change="listChange"  />

        <text class="test-title">调用实例的reset方法重置radios</text>
        <view class="reset-wrap">
            <hbxw-radios ref="radioReset" :list="list" label="label" value="value" @change="listChange"  />
            <button @click="resetTest">重置</button>
        </view>
    <text class="test-title">双向绑定</text>
    <hbxw-radios :list="list" label="label" value="value" isCanCancel v-model:modelVal="radiosTest"  />
    </view>
</template>

<script>
    export default {
        data() {
            return {
                list: [{
                    label: '用户',
                    value: 'user'
                },{
                    label: '商家',
                    value: 'business'
                }],
                list0: ['西瓜','苹果','梨子'],
                list1: [{
                    value: '男生'
                },{
                    value: '女生'
                },{
                    value: '所有'
                }],
        radiosTest: 'user',
            }
        },
    watch: {
      radiosTest(newVal, _) {
        console.log('---- radiosTest ----:双向绑定',  newVal);
      }
    },
        methods: {
            listChange(values) {
                console.log('---- listChange ----:', values);
            },
            listChange0(values) {
                console.log('---- listChange0 ----:', values);
            },
            listChange1(values) {
                console.log('---- listChange1 ----:', values);
            },
            listChange2(values) {
                console.log('---- listChange2 ----:', values);
            },
            // 调用实例方法重置单选器
            resetTest() {
                this.$refs.radioReset.reset();
            }
        }
    }
</script>

<style lang="scss" scoped>
.radio-item{
    width: 100rpx;
    height: 100rpx;
    overflow: hidden;
    border-radius: 50%;
    line-height: 100rpx;
    text-align: center;
    border:1px solid #F2F2F2;
    margin-right: 10rpx;
    &.active{
        border:1px solid red;
    }
}
.reset-wrap{
    display: flex;
    align-items: center;
}
</style>

注:默认为tag样式,支持配置文本和边框的选中和未选中颜色,如果你对选项样式有自定义需求,可以通过slot插槽自由定义样式

API

Props

属性名 类型 默认值 必填 说明
list Array [] 选项列表
value String '' 作为复选框选择项的值的key
label String '' 作为复选框选项文本展示的值的key
isShowRadio Boolean false 是否显示复选框,默认不显示
isCanCancel Boolean false 是否再次点击取消选择,默认不能取消
color String #111111 默认文本颜色
activeColor String #287EFF 选中高亮文本颜色
borderColor String #999999 默认边框颜色
activeBorderColor String #287EFF 选中高亮边框颜色
modelVal String/Number undefined 初始值or双向绑定,使用方式见示例

注:value/label如果没有传则直接以当前数组项的值作为选项的值和显示的文本的值

如果只传了value则以value为key对的值作为选项的值和显示的文本的值

Events

事件名 说明 返回值
change 单选器选择项发生变化触发的事件 举列:'西瓜'

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问