Skip to content

Checkbox 复选框

复选框组件一般用于需要多个选择的场景,该组件功能完整,使用方便

平台兼容性

App(vue)App(nvue)H5小程序VUE2VUE3

基本使用

vue
<template>
    <view>
        <wu-checkbox-group
            v-model="checkboxValue1"
            placement="column"
            @change="checkboxChange"
        >
            <wu-checkbox
                :customStyle="{marginBottom: '8px'}"
                v-for="(item, index) in checkboxList1"
                :key="index"
                :label="item.name"
                :name="item.name"
            >
            </wu-checkbox>
        </wu-checkbox-group>
    </view>
</template>
<script>
export default {
    data() {
        return {
            checkboxValue1:[],
            // 基本案列数据
            checkboxList1: [{
                    name: '苹果',
                    disabled: false
                },
                {
                    name: '香蕉',
                    disabled: false
                },
                {
                    name: '橙子',
                    disabled: false
                }
            ],
        }

    },
    methods: {
        checkboxChange(n) {
            console.log('change', n);
        }
    }
}
</script>
<template>
    <view>
        <wu-checkbox-group
            v-model="checkboxValue1"
            placement="column"
            @change="checkboxChange"
        >
            <wu-checkbox
                :customStyle="{marginBottom: '8px'}"
                v-for="(item, index) in checkboxList1"
                :key="index"
                :label="item.name"
                :name="item.name"
            >
            </wu-checkbox>
        </wu-checkbox-group>
    </view>
</template>
<script>
export default {
    data() {
        return {
            checkboxValue1:[],
            // 基本案列数据
            checkboxList1: [{
                    name: '苹果',
                    disabled: false
                },
                {
                    name: '香蕉',
                    disabled: false
                },
                {
                    name: '橙子',
                    disabled: false
                }
            ],
        }

    },
    methods: {
        checkboxChange(n) {
            console.log('change', n);
        }
    }
}
</script>

自定义形状

  • 可以通过设置 shapesquare 或者 circle ,将复选框设置为方形或者圆形
vue
<template>
    <view>
        <wu-checkbox-group
            v-model="checkboxValue1"
            placement="column"
            shape="circle"
            @change="checkboxChange"
        >
            <wu-checkbox
                :customStyle="{marginBottom: '8px'}"
                v-for="(item, index) in checkboxList1"
                :key="index"
                :label="item.name"
                :name="item.name"
            >
            </wu-checkbox>
        </wu-checkbox-group>
    </view>
</template>
<script>
export default {
    data() {
        return {
            checkboxValue1:[],
            // 基本案列数据
            checkboxList1: [{
                    name: '苹果',
                    disabled: false
                },
                {
                    name: '香蕉',
                    disabled: false
                },
                {
                    name: '橙子',
                    disabled: false
                }
            ],
        }

    },
    methods: {
        checkboxChange(n) {
            console.log('change', n);
        }
    }
}
</script>
<template>
    <view>
        <wu-checkbox-group
            v-model="checkboxValue1"
            placement="column"
            shape="circle"
            @change="checkboxChange"
        >
            <wu-checkbox
                :customStyle="{marginBottom: '8px'}"
                v-for="(item, index) in checkboxList1"
                :key="index"
                :label="item.name"
                :name="item.name"
            >
            </wu-checkbox>
        </wu-checkbox-group>
    </view>
</template>
<script>
export default {
    data() {
        return {
            checkboxValue1:[],
            // 基本案列数据
            checkboxList1: [{
                    name: '苹果',
                    disabled: false
                },
                {
                    name: '香蕉',
                    disabled: false
                },
                {
                    name: '橙子',
                    disabled: false
                }
            ],
        }

    },
    methods: {
        checkboxChange(n) {
            console.log('change', n);
        }
    }
}
</script>

禁用checkbox

设置 disabledtrue ,即可禁用某个组件,让用户无法点击,禁用分为两种状态,一是未勾选前禁用,这时只显示一个灰色的区域。二是已勾选后 再禁用,会有灰色的已勾选的图标,但此时依然是不可操作的。

vue
<template>
    <view>
        <wu-checkbox-group
            v-model="checkboxValue1"
            placement="column"
            @change="checkboxChange"
        >
            <wu-checkbox
                :customStyle="{marginBottom: '8px'}"
                v-for="(item, index) in checkboxList1"
                :key="index"
                :label="item.name"
                :name="item.name"
                :disabled="item.disabled"
            >
            </wu-checkbox>
        </wu-checkbox-group>
    </view>
</template>
<script>
export default {
    data() {
        return {
            checkboxValue1:[],
            // 基本案列数据
            checkboxList1: [{
                    name: '苹果',
                    disabled: false
                },
                {
                    name: '香蕉',
                    disabled: false
                },
                {
                    name: '橙子',
                    disabled: true
                }
            ],
        }

    },
    methods: {
        checkboxChange(n) {
            console.log('change', n);
        }
    }
}
</script>
<template>
    <view>
        <wu-checkbox-group
            v-model="checkboxValue1"
            placement="column"
            @change="checkboxChange"
        >
            <wu-checkbox
                :customStyle="{marginBottom: '8px'}"
                v-for="(item, index) in checkboxList1"
                :key="index"
                :label="item.name"
                :name="item.name"
                :disabled="item.disabled"
            >
            </wu-checkbox>
        </wu-checkbox-group>
    </view>
</template>
<script>
export default {
    data() {
        return {
            checkboxValue1:[],
            // 基本案列数据
            checkboxList1: [{
                    name: '苹果',
                    disabled: false
                },
                {
                    name: '香蕉',
                    disabled: false
                },
                {
                    name: '橙子',
                    disabled: true
                }
            ],
        }

    },
    methods: {
        checkboxChange(n) {
            console.log('change', n);
        }
    }
}
</script>

自定义颜色

此处所指的颜色,为 checkbox 选中时的背景颜色,参数为 activeColor

html
<wu-checkbox-group v-model="checked">
	<wu-checkbox  activeColor="red" label="光影"></wu-checkbox>
</wu-checkbox-group>
<wu-checkbox-group v-model="checked">
	<wu-checkbox  activeColor="red" label="光影"></wu-checkbox>
</wu-checkbox-group>

横向排列形式

可以通过设置 placementrow 或者 column ,将复选框设置为横向排列或者竖向排列。

html
<wu-checkbox-group v-model="checked" placement="row">
	<wu-checkbox activeColor="red" label="红色"></wu-checkbox>
	<wu-checkbox activeColor="green" label="绿色"></wu-checkbox>
</wu-checkbox-group>
<wu-checkbox-group v-model="checked" placement="row">
	<wu-checkbox activeColor="red" label="红色"></wu-checkbox>
	<wu-checkbox activeColor="green" label="绿色"></wu-checkbox>
</wu-checkbox-group>

横向两端排列形式

可以通过设置 iconPlacementleft 或者 right ,将复选框勾选图标的对齐设置为左对齐或者右对齐

html
<wu-checkbox-group 
    v-model="checked"
    iconPlacement="right" 
    placement="row">
	<wu-checkbox activeColor="red" label="红色"></wu-checkbox>
	<wu-checkbox activeColor="green" label="绿色"></wu-checkbox>
</wu-checkbox-group>
<wu-checkbox-group 
    v-model="checked"
    iconPlacement="right" 
    placement="row">
	<wu-checkbox activeColor="red" label="红色"></wu-checkbox>
	<wu-checkbox activeColor="green" label="绿色"></wu-checkbox>
</wu-checkbox-group>

API

Checkbox Props

注意:radioradio-group 二者同名参数中,radio的参数优先级更高。

属性名说明类型默认值可选值
namecheckbox的名称String / Number--
shape形状,square为方形,circle为圆型Stringsquaresquare / circle
size整体的大小String / Number--
checked是否默认选中Booleanfalsetrue / false
disabled是否禁用Boolean--
activeColor选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值String--
inactiveColor未选中的颜色String--
iconSize图标的大小,单位pxString / Number--
iconColor图标颜色String--
labellabel提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式String / Number--
labelSizelabel的字体大小,px单位String / Number--
labelColorlabel的颜色String--
labelDisabled是否禁止点击提示语选中复选框String / Boolean--

CheckboxGroup Props

属性名说明类型默认值可选值
name标识符String--
value / modelValue绑定的值String / Number / Boolean''-
shape形状,circle-圆形,square-方形Stringcirclecircle / square
disabled是否禁用全部radioBooleanfalsetrue
activeColor选中状态下的颜色,如子组件设置此值,将会覆盖本值String#2979ff-
inactiveColor未选中的颜色String#c8c9cc-
size整个组件的尺寸,默认pxString / Number18-
placement布局方式,row-横向,column-纵向Stringrowcolumn
labelSizelabel的字体大小,px单位String / Number14-
labelColorlabel的字体颜色String#303133-
labelDisabled是否禁止点击文本操作Booleanfalsetrue / false
iconColor图标颜色String#ffffff-
iconSize图标的大小,单位pxString / Number12-
iconPlacement勾选图标的对齐方式,left-左边,right-右边Stringleftleft / right
borderBottom竖向配列时,是否显示下划线Booleanfalsetrue / false

CheckboxGroup Event

方法名说明回调参数
change任意一个 checkbox 状态发生变化时触发detail = array( [元素为被选中的 checkbox name] )
插槽名说明
default自定义内容
icon自定义选中图标