更新记录
1.2.0(2025-08-18)
下载此版本
1.新增item右侧图标,并新增控制其显示的参数和逻辑
2.修复懒加载时,没有下一级过后还会tab还会出现子级选择的问题。
1.1.0(2025-08-11)
下载此版本
1.新增了右上角关闭按钮,可以通过closeBtn,控制是否显示按钮。
2.新增了样式自定义功能,采用css变量的形式,可自行覆盖部分样式。注意:样式的默认值使用的是uni.scss中的变量,如果删除里面的变量,会导致组件报错。
1.0(2025-08-08)
下载此版本
上传1.0版本
查看更多
平台兼容性
uni-app(4.07)
Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
使用说明
插件功能介绍
级联选择,可任意级别选择,不必非要选择到最后一级。
提供了禁用功能,可以控制每一项是否可选。
数据源
可以是本地数据,也支持懒加载,可以自行定义加载方法。
本地数据和懒加载任选一个,不能同时使用。
使用本地数据时,必须时树形结构,字段可以通过props自行配置。
API
属性
属性名 |
类型 |
可选值 |
默认值 |
说明 |
title |
String |
- |
请选择 |
标题,也可以使用slot插槽 |
data |
Array |
- |
- |
本地数据 |
loadData |
Function |
- |
null |
懒加载函数 |
props |
Object |
- |
- |
详细配置可以参考下面配置内容 |
tabDefaultLabel |
String |
- |
请选择 |
tab最后一项,没有选择时的默认提示文本 |
closeBtn |
Boolean |
true、false |
true |
是否显示关闭按钮 |
props属性
属性名 |
类型 |
可选值 |
默认值 |
说明 |
label |
String |
- |
label |
可选项的展示文本 |
value |
String |
- |
value |
可选项目的唯一标识 |
children |
String |
- |
children |
子项目数组 |
disabled |
Boolean、Function |
- |
- |
子项目禁用属性,也可以是一个函数,当该属性为函数时,会将子项目作为参数传给它 |
事件(Events)
事件名称 |
说明 |
参数 |
返回值 |
@confirm |
点击确定按钮时调用 |
选择的数组 |
- |
方法(Methods)
方法名称 |
说明 |
参数 |
返回值 |
show |
打开 |
- |
- |
close |
关闭 |
- |
- |
插槽(Slots)
名称 |
说明 |
参数 |
title |
标题 |
- |
item |
每一项 |
当前项数据 v-lost:item="{data}" |
自定义样式
名称 |
说明 |
默认值 |
--border-radius |
左上,右上两个圆角的大小 |
$uni-border-radius-lg |
--base-color |
字体颜色 |
$uni-text-color |
--header-border-bottom |
头部下边框样式 |
1px solid #eee |
--base-font-size |
字体大小 |
$uni-font-size-base |
--close-bg-color |
关闭按钮背景 |
$uni-bg-color-grey |
--background |
遮罩层背景色 |
$uni-bg-color-mask |
--background |
遮罩层背景色 |
$uni-bg-color-mask |
--container-background |
容器背景颜色 |
$uni-bg-color |
--container-height |
容器高度 |
50% |
--item-disabled-color |
禁用的字体颜色 |
$uni-text-color-disable |
--spacing-base |
间距 |
$uni-spacing-col-base |
使用样例
<view @click="show">
打开
</view>
<nianDataPickerVue ref="nianDataPickerVue" title="请选择区域" tabDefaultLabel="搞快点" @confirm="confirm" :loadData="loadData" :props="props">
<template v-slot:title>
请选择内容
</template>
<template v-slot:item="{ data }">
{{ data.text }}
</template>
</nianDataPickerVue>
<!-- 对于新增的css变量,可以自行写到style标签里面;也可以放到style属性中,放到属性中时,可以js更灵活的控制 -->
<nianDataPickerVue ref="nianDataPickerVue" @confirm="changeData" :data="list" :props="props"
style="--container-height: 60%;--base-color: #000;--border-radius: 20px;--container-background: #fff;--background: rgba(255,255,0,.5);--close-bg-color: rgba(222,0,0,.74);--header-border-bottom: 1px solid #eee;" />
/**
* 点击选中某一项过后,调用加载子集的回调,初始化时会自己调用该函数,data为null
* @param {Object} data 点击选中的项目
* @param {Object} list 选中的所有项目数组
*/
loadData(data, list) {
return new Promise(res => {
if (data) {
res([
{
id: data.id + 1,
text: data.id + 1 + '附加费凉快的',
disabled: data.id + 1 > 2
}
]);
} else {
res([{
id: 1,
text: '都看见'
}])
}
})
},
/**
* 打开
*/
show() {
this.$refs.nianDataPickerVue.show();
},
/**
* 点击确定的回调
* @param {Object} list 选择的数据
*/
confirm(list) {
console.log(list);
},