uniapp 异步加载级联选择器(Cascader,data-picke)

2024-05-03 06:04

本文主要是介绍uniapp 异步加载级联选择器(Cascader,data-picke),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

目录

Props

事件方法

inputChange事件回调参数说明:

completeChange事件回调参数说明:

temList 属性Object参数说明

defaultItemList 属性Object参数说明

在template中使用


由于uniapp uni-ui的data-picke 不支持异步作者自己写了一个 插件市场下载使用

插件市场地址级联数据选择 data-picker 自定义多级选择 多级联动选择、 - DCloud 插件市场

 

Props

属性名类型说明默认值
readonlyBoolean只读 |false
borderBoolean边框 | true
clearIconBoolean清除按钮 | true
placeholderString默认提示 |请选择
popupTitleString弹窗标题 |请选择
itemListArray级联数据, 如果下一级是请求返回,则为第一级数据,否则为所有数据[ ]
defaultItemListArray初始化默认选中数据,当一次性传入所有数据时,默认值可为字符串数组,如:['安徽省','阜阳市','颍上县'][ ]
defaultKeyV1.7.2+ String默认值字段key,可传值:text,value,仅当一次性传入所有数据时有效text
headerLineBoolean是否显示header底部细线true
headerBgColorStringheader背景颜色#FFFFFF
tabsHeightString顶部标签栏高度88rpx
textString默认显示文字请选择
sizeNumbertabs 文字大小28
colorStringtabs 文字颜色#555
activeColorString选中颜色#5677fc
boldBoolean选中后文字加粗true
showLineBoolean选中后是否显示底部线条true
lineColorString线条颜色#5677fc
checkMarkSizeNumbericon 大小15
checkMarkColorStringicon 颜色#5677fc
imgWidthStringitem 图片宽度40rpx
imgHeightStringitem 图片高度40rpx
radiusString图片圆角50%
textColorStringitem text颜色#333
textActiveColorStringitem text选中后颜色#333
textBoldBoolean选中后字体是否加粗true
textSizeNumberitem text字体大小28
nowrapBooleantext 是否不换行false
subTextColorStringitem subText颜色#999
subTextSizeNumberitem subText字体大小24
paddingStringitem padding20rpx 30rpx
firstItemTopString占位高度,第一条数据距离顶部距离20rpx
heightStringswiper 高度300px
backgroundColorStringitem swiper 内容部分背景颜色#FFFFFF
requestBoolean子级数据是否请求返回(默认false,一次性返回所有数据)false
receiveDataArray子级数据(当有改变时,默认为当前选中项新增子级数据,request为true时生效)[ ]
reset[Number, String]改变reset值则重置所有数据

事件方法

属性类型说明返回值
popupopenedEvents弹框打开时触发
popupclosedEvents弹框关闭时触发
completeChangeEvents选择器中item项点击时触发
inputChangeEvents选择结果数据

inputChange事件回调参数说明:

  • layer 当前所属层级
  • subIndex 当前层级点击项索引值
  • subItem项 当前层级点击项所有数据,由父组件传入的数据

completeChange事件回调参数说明:

  • result 当前选择的结果
  • text 所有层级选择的text值拼接数据,如:安徽省合肥市庐阳区
  • value 最后一级点击项的value值
  • subText 最后一级点击项的text值
  • src 最后一级点击项的src值

temList 属性Object参数说明

属性 receiveData 数据格式与 itemList中子集数据一致,数据为约定格式,尽量保持一致。

[{src: "", //图标地址text: "",//主文本subText: "",//副文本value: 0, //value值 children:[{text: "",//主文本subText: "",//副文本value: 0,//value值children:[] //子级数据 如果数据长度为0则表示没有下一级数据了}] //子级数据
}]

defaultItemList 属性Object参数说明

数据为约定格式,尽量保持一致,当一次性传入所有数据时,默认值可为字符串数组。

[{text: "", //选中的textsubText: '', //选中的subTextvalue: '', //选中的valuesrc: '', //选中的src,没有则传空或不传index: 0, //选中数据在当前layer索引list: [{src: "",//图标地址text: "", //主文本subText: "",//副文本value: 101 //value值 }] //当前layer下所有数据集合
}]

在template中使用


<template><view><jia-cascader request :itemList="itemList" :receiveData="receiveData" :defaultItemList="defaultItemList" @completeChange="complete" @inputChange="change"></jia-cascader></view>
</template><script>
// data 数据 及 方法
export default {data() {return {itemList: [],receiveData: [],defaultItemList: [{src: '',text: '高一(3)班',subText: '30人',value: 102,index: 1, //选中数据在当前layer索引list: [{src: '',text: '高一(1)班',subText: '30人',value: 101},{src: '',text: '高一(2)班',subText: '30人',value: 102},{src: '',text: '高一(3)班',subText: '30人',value: 103},{src: '',text: '高一(1)班',subText: '30人',value: 101},{src: '',text: '高一(2)班',subText: '30人',value: 102},{src: '',text: '高一(1)班',subText: '30人',value: 101},{src: '',text: '高一(2)班',subText: '30人',value: 102},{src: '',text: '高一(1)班',subText: '30人',value: 101},{src: '',text: '高一(2)班',subText: '30人',value: 102},{src: '',text: '高一(1)班',subText: '30人',value: 101},{src: '',text: '高一(2)班',subText: '30人',value: 102},{src: '',text: '高一(1)班',subText: '30人',value: 101},{src: '',text: '高一(2)班',subText: '30人',value: 102},{src: '',text: '高一(1)班',subText: '30人',value: 101},{src: '',text: '高一(2)班',subText: '30人',value: 102},{src: '',text: '高一(1)班',subText: '30人',value: 101}] //当前layer下所有数据集合},{text: '周小小', //选中的textsubText: '女', //选中的subTextvalue: 11103, //选中的valuesrc: '', //选中的src,没有则传空或不传index: 2, //选中数据在当前layer索引list: [{text: '张三',subText: '男',value: 11101},{text: '王五',subText: '男',value: 11102},{text: '周小小',subText: '女',value: 11103},{text: '周小小',subText: '女',value: 11103},{text: '周小小',subText: '女',value: 11103}] //当前layer下所有数据集合}]};},onLoad() {this.itemList = [{src: ' ',text: '高一(1)班',subText: '30人',value: 101},{src: ' ',text: '高一(2)班',subText: '30人',value: 102},{src: ' ',text: '高一(3)班',subText: '30人',value: 103},{src: ' ',text: '高一(4)班',subText: '28人',value: 104},{src: ' ',text: '高一(5)班',subText: '28人',value: 105},{src: ' ',text: '高一(6)班',subText: '28人',value: 106},{src: ' ',text: '高一(7)班',subText: '28人',value: 107},{src: ' ',text: '高一(8)班',subText: '38人',value: 108},{src: ' ',text: '高一(9)班',subText: '38人',value: 109},{src: ' ',text: '高一(10)班',subText: '38人',value: 110},{src: ' ',text: '高一(11)班',subText: '38人',value: 111},{src: ' ',text: '高一(12)班',subText: '38人',value: 112}];},methods: {change(e) {console.log(e);/***   layer: 0  第几级 indexsrc: '/static/images/basic/color.png'subIndex: 2   //当前层级下选中项indexsubText: '30人'  //选中项数据text: '高一(3)班'value: 103 //选中项value数据* */// 模拟请求let value = e.value;let layer = e.layer;if (layer === 7) {//实际中以请求数据为准,无下级数据则传空数组this.receiveData = [];} else {uni.showLoading({title: '请稍候...'});setTimeout(() => {uni.hideLoading();//请求完成后将数据处理成以下格式,传入,最后一级没有则传空数组switch (layer) {case 0:this.receiveData = [{text: '张三',subText: '男',value: 11101},{text: '王五',subText: '男',value: 11102},{text: '周小小',subText: '女',value: 11103},{text: '周小小',subText: '女',value: 11103},{text: '周小小',subText: '女',value: 11103}];break;case 1:this.receiveData = [{text: '他(她)说',value: 11101}];break;case 2:this.receiveData = [{text: '这是一个',value: 11101}];break;case 3:this.receiveData = [{text: '级联选择器',value: 11101}];break;case 4:this.receiveData = [{text: '测试例子',value: 11101}];break;case 5:this.receiveData = [{text: '总共',value: 11101}];break;case 6:this.receiveData = [{text: '8级数据',value: 11101}];break;default:break;}}, 800);}},complete(e) {console.log(e);console.log('您选择的数据为:' + e.text);}}
};
</script>

这篇关于uniapp 异步加载级联选择器(Cascader,data-picke)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/955984

相关文章

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

在 PyQt 加载 UI 三种常见方法

《在PyQt加载UI三种常见方法》在PyQt中,加载UI文件通常指的是使用QtDesigner设计的.ui文件,并将其转换为Python代码,以便在PyQt应用程序中使用,这篇文章给大家介绍在... 目录方法一:使用 uic 模块动态加载 (不推荐用于大型项目)方法二:将 UI 文件编译为 python 模

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

嵌入式Linux驱动中的异步通知机制详解

《嵌入式Linux驱动中的异步通知机制详解》:本文主要介绍嵌入式Linux驱动中的异步通知机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、异步通知的核心概念1. 什么是异步通知2. 异步通知的关键组件二、异步通知的实现原理三、代码示例分析1. 设备结构

SpringBoot中配置文件的加载顺序解读

《SpringBoot中配置文件的加载顺序解读》:本文主要介绍SpringBoot中配置文件的加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot配置文件的加载顺序1、命令⾏参数2、Java系统属性3、操作系统环境变量5、项目【外部】的ap

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio