Skip to content

nax-checkbox / nax-checkbox-group

当前版本:0.1.5

uni-app x 复选框 / 复选框组。

安装

easycom 自动生效,页面直接使用 <nax-checkbox /> 即可。

建议同时安装主题包 uni_modules/nax-ui-theme 并在 App.uvue 引入主题变量,详见 主题接入

代码示例

基础用法

单独使用

uvue
<nax-checkbox v-model="checked" label="同意协议" @change="onChange"></nax-checkbox>

复选框组

uvue
<nax-checkbox-group v-model="values" @change="onGroupChange">
  <nax-checkbox name="apple" label="苹果"></nax-checkbox>
  <nax-checkbox name="banana" label="香蕉"></nax-checkbox>
  <nax-checkbox name="orange" label="橙子"></nax-checkbox>
</nax-checkbox-group>

组内用 name / value 作为选项标识(value 优先),不要再给子项绑 v-model

单独使用
uvue
<nax-checkbox v-model="alone" label="同意用户协议" @change="onAloneChange"></nax-checkbox>
uts
const alone = ref(true)

function onAloneChange(v : boolean) {
	// change:true / false
}
基础组
uvue
<nax-checkbox-group v-model="basic" @change="onGroupChange">
	<nax-checkbox name="apple" label="苹果"></nax-checkbox>
	<nax-checkbox name="banana" label="香蕉"></nax-checkbox>
	<nax-checkbox name="orange" label="橙子"></nax-checkbox>
</nax-checkbox-group>
uts
const basic = ref(['apple'] as string[])

function onGroupChange(v : string[]) {
	// v:当前选中值数组
}
形状 shape
uvue
<nax-checkbox-group v-model="shapeVals" shape="circle">
	<nax-checkbox name="a" label="圆形"></nax-checkbox>
	<nax-checkbox name="b" label="多选"></nax-checkbox>
</nax-checkbox-group>
uts
const shapeVals = ref(['a'] as string[])
尺寸 size
uvue
<nax-checkbox-group v-model="sizeSm" size="sm">
	<nax-checkbox name="s" label="sm"></nax-checkbox>
</nax-checkbox-group>

<nax-checkbox-group v-model="sizeMd" size="md">
	<nax-checkbox name="m" label="md"></nax-checkbox>
</nax-checkbox-group>

<nax-checkbox-group v-model="sizeLg" size="lg">
	<nax-checkbox name="l" label="lg"></nax-checkbox>
</nax-checkbox-group>
uts
const sizeSm = ref(['s'] as string[])
const sizeMd = ref(['m'] as string[])
const sizeLg = ref(['l'] as string[])
禁用 disabled
uvue
<nax-checkbox-group v-model="disabledVals">
	<nax-checkbox name="on" label="可选"></nax-checkbox>
	<nax-checkbox name="off" label="禁用项" disabled></nax-checkbox>
</nax-checkbox-group>

<nax-checkbox-group v-model="disabledGroup" disabled>
	<nax-checkbox name="g1" label="整组禁用"></nax-checkbox>
	<nax-checkbox name="g2" label="不可点"></nax-checkbox>
</nax-checkbox-group>
uts
const disabledVals = ref(['on'] as string[])
const disabledGroup = ref(['g1'] as string[])
文案不可点 labelDisabled
uvue
<nax-checkbox-group v-model="labelLock" label-disabled>
	<nax-checkbox name="x" label="只能点左侧方框"></nax-checkbox>
	<nax-checkbox name="y" label="点文字无效"></nax-checkbox>
</nax-checkbox-group>
uts
const labelLock = ref([] as string[])
最多选 2 项 max
uvue
<nax-checkbox-group v-model="maxVals" :max="2" wrap>
	<nax-checkbox name="1" label="选项一"></nax-checkbox>
	<nax-checkbox name="2" label="选项二"></nax-checkbox>
	<nax-checkbox name="3" label="选项三"></nax-checkbox>
	<nax-checkbox name="4" label="选项四"></nax-checkbox>
</nax-checkbox-group>
uts
const maxVals = ref(['1'] as string[])
自定义颜色 activeColor
uvue
<nax-checkbox-group v-model="colorVals" active-color="#2080f0">
	<nax-checkbox name="c1" label="信息色"></nax-checkbox>
	<nax-checkbox name="c2" label="多选"></nax-checkbox>
</nax-checkbox-group>
uts
const colorVals = ref(['c1'] as string[])
横向均分 width
uvue
<nax-checkbox-group v-model="widthVals" width="50%">
	<nax-checkbox name="w1" label="左侧 50%"></nax-checkbox>
	<nax-checkbox name="w2" label="右侧 50%"></nax-checkbox>
	<nax-checkbox name="w3" label="再一行左"></nax-checkbox>
	<nax-checkbox name="w4" label="再一行右"></nax-checkbox>
</nax-checkbox-group>
uts
const widthVals = ref(['w1', 'w2'] as string[])

主题

通过 CSS 变量覆盖:

Token用途
--nax-color-bg背景色
--nax-color-border-strong强调边框色
--nax-color-primary主题主色
--nax-color-text主文字色
--nax-color-text-disabled禁用文字色
--nax-color-text-inverse反白文字色
--nax-opacity-disabled禁用透明度

Props

属性类型默认值说明
modelValuebooleanfalse单独使用时的选中态(v-model)
namestring''选项标识(组内);value 优先
valuestring''选项标识,优先级高于 name
labelstring''右侧文案
shapestring'square'square 方形 | circle 圆形
disabledbooleanfalse禁用
labelDisabledbooleanfalse为 true 时点击文案不切换
activeColorstring''选中色
iconSizestring''勾选图标字号(数字字符串 px)
labelSizestring''文案字号(数字字符串 px)
sizestring'md'sm 小 | md 中 | lg
customClassstring''根节点扩展 class

nax-checkbox-group Props

属性类型默认说明
modelValuestring[][]选中标识数组(v-model
disabledbooleanfalse整组禁用
shapestringsquare统一子项形状
sizestringmd统一子项尺寸
activeColorstring''统一选中色
iconSizestring''统一图标字号
labelSizestring''统一文案字号
labelDisabledbooleanfalse统一:文案是否不可点选
maxnumber0最多可选数量;0 不限制
wrapbooleanfalse每个选项独占一行
widthstring''子项宽度(如 50% / 120px
customClassstring''根节点扩展 class

Events

事件说明
update:modelValue单独使用时的 v-model
change选中态变化(boolean)

nax-checkbox-group Events

事件说明
update:modelValuev-model
change选中数组变化

Slots

插槽说明
default自定义标签内容