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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 ——笔记 (表单输入,监听器)

表单输入 在Vue 3中&#xff0c;v-model指令的用法稍有不同于Vue 2。在Vue 3中&#xff0c;v-model指令实际上是一个语法糖&#xff0c;它会自动将value属性和input事件绑定到组件或元素上&#xff0c;以实现双向数据绑定。 在自定义组件中使用v-model时&#xff0c;需要在组…

身份证号对应地区信息-MySQL

这里写自定义目录标题 MySQL表结构MySQL表对应数据 MySQL表结构 CREATE TABLE idcard_contrast (code varchar(2000) NOT NULL COMMENT 身份证前六位,value varchar(3000) DEFAULT NULL COMMENT 对应地址 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT身份证对照表;MySQL表对…

自编String类型(C++)

设计思路&#xff1a; 首先自己编写了左移运算符的重载&#xff0c;方便后续测试时输出该String类 对于to_lower_case函数&#xff0c;遍历字符串&#xff0c;并修改所有大写字母。对于to_int函数&#xff0c;从头向尾遍历字符串&#xff0c;将每个数字字符转化为数字&#xf…

从字符串到序列:Jinja2 过滤器的终极指南(Jinja2 filter过滤器的使用方法整理与总结)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 过滤器 📒📝 字符串过滤器📝 数字过滤器📝 列表和序列过滤器📝 字典过滤器📝 自定义过滤器🎈 演示示例🎈📝 字符串过滤器📝 数字过滤器📝 列表和序列过滤器📝 字典过滤器📝 自定义过滤器

数组的扩容与缩容

数组的扩容与缩容 文章目录 数组的扩容与缩容数组的扩容内存分析 数组的缩容内存分析内存分析 数组的扩容 数组扩容是指当原有数组的空间不足以容纳更多的元素时&#xff0c;创建一个新的、长度更大的数组&#xff0c;并将原数组中的元素复制到新数组中&#xff0c;然后更新原…

ubuntu 24.04 向日葵桌面版安装

向日葵桌面版 ubuntu24.04向日葵无法安装&#xff0c;缺少依赖。向日葵缺少依赖&#xff0c;“有未能满足的依赖关系”。解决方案。 1. 下载本体 mkdir oraysun && cd oraysun wget https://d.oray.com/sunlogin/linux/SunloginClient_15.2.0.63062_amd64.deb2. 下载…

iOS 创建开源库时如何使用图片和xib资源

参考文章 参考文章 使用xib的正确姿势 #define MAIN_BUNDLE [NSBundle bundleForClass:[self class]] //获取bundle [[MAIN_BUNDLE loadNibNamed:itemResuableStr owner:self options:nil] lastObject]; //加载xib [tempCollectionView registerNib:[UINib nibWithNibName…

Word文件后缀

Word文件后缀 .docx文件为Microsoft Word文档后缀名&#xff0c;基于XML文件格式 .dotm为Word启用了宏的模板 .dotx为Word模板 .doc为Word97-2003文档&#xff0c;二进制文件格式 参考链接 Word、Excel 和 PowerPoint 的文件格式参考 Learn Microsoft

类和对象【四】运算符重载

文章目录 运算符重载的概念运算符重载&#xff08;函数&#xff09;返回值类型&#xff1a;任意类型函数名&#xff1a;operator已有操作符 运算符重载&#xff08;函数&#xff09;的特点和注意点3个比较特殊的运算符重载赋值运算符&#xff08;&#xff09;重载返回值类型和返…

嵌入式开发四:STM32 基础知识入门

为方便更好的学习STM32单片机&#xff0c;本篇博客主要总结STM32的入门基础知识&#xff0c;重点在于理解寄存器以及存储器映射和寄存器映射&#xff0c;深刻体会STM32是如何组织和管理庞大的寄存器&#xff0c;从而提高开发效率的&#xff0c;为后面的基于标准库的开发做好铺垫…

基于SSM框架的个人博客系统设计与实现:技术总结

引言 在数字化时代&#xff0c;个人博客系统已成为展示个人技术见解、分享生活点滴的重要平台。本次博客介绍了一个基于Java的个人博客系统的设计与实现&#xff0c;采用了流行的SSM&#xff08;Spring、SpringMVC、MyBatis&#xff09;技术栈&#xff0c;以及MySQL数据库和JS…

宝兰德数据可视化软件顺应AI趋势,释放数据价值的无限可能

随着数字技术的持续创新和普及&#xff0c;社会治理方式、产业形态、生活方式高度数字化&#xff0c;由此催生海量数据&#xff0c; 这些数据不仅种类繁多&#xff0c;且具有很高的价值。当企业决策者认识到这些数量庞大、晦涩难懂的数据背后蕴含着巨大的商业价值时&#xff0c…

MySQL 8.4 版本(LTS) 发布,一睹为快

前言 Oracle 前几天发布了 MySQL 8.4 版本(LTS)&#xff0c; 该版本是创新版的第一个长期支持版本。详细规划&#xff0c;请移步 技术译文 | 一文了解 MySQL 全新版本模型 关于 MySQL 的版本发布规划 Oracle MySQL 官方开发团队推出的新版本将过渡到新的 MySQL 版本模型。MyS…

cefsharp实现资源替换如网页背景、移除替换标签、html标识、执行javascript脚本学习笔记(含源码说明)

(一)实现测试(仅供学习参考) 1.1 目标系统页面(登录页)和登录后首页面中2处(一个替换一个移除) 1.2 实现后效果(使用cefsharp自定义浏览器实现以上功能) 1.3 登录后页面替换和移除 系统名称和一个功能菜单li (二)通过分析代码实现脚本编写 2.1 分开处理,设置了…

IDEA 2022.1版本开始,可以直接运行Markdown里的命令行

参照这种格式&#xff1a; shell mvn clean install注意idea支持的版本&#xff1a;是从 2022.1版本开始的。 ps&#xff1a;之前有人写过了&#xff0c;感觉很实用但是蛮多开发者不一定会知道的功能。 参考资料&#xff1a; https://www.cnblogs.com/didispace/p/16144107.h…

pygame鼠标绘制

pygame鼠标绘制 Pygame鼠标绘制效果代码 Pygame Pygame是一个开源的Python库&#xff0c;专为电子游戏开发而设计。它建立在SDL&#xff08;Simple DirectMedia Layer&#xff09;的基础上&#xff0c;允许开发者使用Python这种高级语言来实时开发电子游戏&#xff0c;而无需被…

LeetCode刷题笔记第168题:Excel表列名称

LeetCode刷题笔记第168题&#xff1a;Excel表列名称 题目&#xff1a; 给你一个整数 columnNumber &#xff0c;返回它在 Excel 表中相对应的列名称。 例如&#xff1a; A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 想法&#xff1a; 类似十…

Spring Boot可以同时处理多少请求?

Spring Boot本身对并发请求的处理能力没有明确的限制。Spring Boot的并发处理能力通常受到以下因素影响&#xff1a; 服务器硬件&#xff1a;包括CPU核心数、内存大小等。JVM配置&#xff1a;堆内存、永久代或元空间大小等。Web服务器&#xff1a;Spring Boot 默认使用嵌入式的…

ES数据存储与查询基本原理

Elasticsearch&#xff08;ES&#xff09;简介 Elasticsearch&#xff08;ES&#xff09;是一个分布式、可扩展、近实时的搜索和分析引擎&#xff0c;它基于Lucene&#xff0c;设计用于云计算中&#xff0c;处理大规模文档检索和数据分析任务&#xff0c;常用于实现内部搜索引…

CMake:静态库链接其他动态库或静态库(九)

1、项目结构 对于下面这样一个项目 把calc模块做成静态或者动态库把sort模块做成静态库然后再sort模块中的*.cpp调用calc模块生成的库即可&#xff08;这样就制作了一个静态库引用动态或者静态库&#xff09;test模块用于测试sort模块中的内容 . ├── calc │ ├── ad…