uniapp 省、市、区、乡镇 数据层级选择插件 Ba-DataPicker

news2024/10/17 16:22:59

Ba-DataPicker 是一款uniapp数据层级选择弹窗插件。支持省市区乡四级;支持自定义数据。

  • 支持省、市、区、乡镇四级
  • 支持自定义数据
  • 支持字母检索

截图展示

在这里插入图片描述


支持定制、本地包、源码等,有建议和需要,请点击文章结尾“Uniapp插件开发”联系我(如下图)
在这里插入图片描述
也可关注博客,实时更新最新插件

uniapp 常用原生插件大全


使用方法

script 中引入组件

	const dataPicker = uni.requireNativePlugin('Ba-DataPicker')
默认数据使用

script 中调用

	export default {
		data() {
			return {
				msgList: []
			}
		},
		methods: {
			onShowDataPicker() { //显示数据选择弹窗
				dataPicker.show({},
					(res) => {
						this.showResult(JSON.stringify(res))
						if (res.action) {
							if (res.action == "onChecked") { 
								//监听事件:点击选择
							} else if (res.action == "onClickOk") {
								//监听事件:点击确认
								//res.checkeds中是选中的数据
							} else if (res.action == "onClickCancel") {
								//监听事件:点击取消
							}
						}
					});
			},
			showResult(msg) {
				console.log(msg)
				this.msgList.unshift(msg)
				uni.showToast({
					title: msg,
					icon: "none",
					duration: 3000
				})
			}
		}
	}
自定义数据使用

script 中调用

	export default {
		data() {
			return {
				options: {//数据参数
					isDefaultData:false,//不使用默认数据
					list: [ //多级数据
						[{
							"name": "浙江省"
						}, {
							"name": "浙江省2"
						}], //第一级数据
						[{
							"name": "宁波市"
						}, {
							"name": "宁波市2"
						}], //第二级数据
						[{
							"name": "象山县"
						}, {
							"name": "象山县2"
						}], //第三级数据
						[{
							"name": "石浦镇"
						}, {
							"name": "石浦镇2"
						}] //第四级数据
					],
					checkedList: [0, 0, 0, 0]//各级已选中的下标
				},
				tabIndex: 0,//多层面板显示位置
				msgList: []
			}
		},
		methods: {
			onShowDataPicker() { //显示数据选择弹窗
				dataPicker.show(this.options,
					(res) => {
						this.showResult(JSON.stringify(res))
						if (res.action) {
							if (res.action == "onChecked") { //监听事件:点击选择
							//如下是根据需求调好的处理逻辑,也可根据情况自行更改
								try {
									let tabIndex = res.tabIndex;//操作的层级
									this.options.checkedList[tabIndex] = res.checkedPosition;//某一层级的选中(下标)
									if (tabIndex < this.options.list.length - 1) {//如果不是最后层级,处理下级数据,并自动跳转下一级
										for (var i = tabIndex + 1; i < this.options.list.length; i++) {
											//下级数据默认选择第一个
											this.options.checkedList[i] = 0;
											//模拟下级数据更新,可在这里调用接口(这里模拟的是添加一个)
											//设置i层级新的数据:this.options.list[i]=新的数据
											this.options.list[i].unshift({
												name: "新数据"
											})
										}
									}
									//自动显示下一级
									if (tabIndex < this.options.list.length - 1)
										this.tabIndex = tabIndex + 1
									//调用刷新数据
									this.onUpdateData(this.options)
								} catch (e) {
									this.showResult("error " + e.message)
								}
							} else if (res.action == "onClickOk") { //监听事件:点击确认
								//res.checkeds中是选中的数据
							} else if (res.action == "onClickCancel") { //监听事件:点击取消
						
							}
						}
					});
			},
			onUpdateData(options) {//更新数据
				options.tabIndex = this.tabIndex;
				dataPicker.update(options,
					(res) => {
						//this.showResult(JSON.stringify(res))
					});
			},
			showResult(msg) {
				console.log(msg)
				this.msgList.unshift(msg)
				uni.showToast({
					title: msg,
					icon: "none",
					duration: 3000
				})
			}
		}
	}

方法清单

名称说明
show加载并显示弹窗
update更新数据

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

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

相关文章

高级prompt工程技巧:如何引导模型生成更精确的输出

在人工智能领域&#xff0c;提示词工程&#xff08;Prompt Engineering&#xff09;是提升模型输出质量的关键技术之一。通过精心设计的提示词&#xff0c;我们可以引导模型生成更符合预期的结果。本文将深入探讨几种高级提示词工程技巧&#xff0c;并提供实际操作的示例&#…

SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)

场景 需对接海康威视交通产品中的交通违章检测功能&#xff0c;实现车辆闯红灯时获取抓拍数据(车牌号)并获取上传的抓拍图片。 根据其官方资料设备网络SDK使用手册中说明&#xff0c;此流程需要可以通过报警布防方式进行。 访问官方下载SDK文档等资料 海康威视-引领智能物联…

华三服务器R4900 G5在图形界面使用PMC阵列卡(P460-B4)创建RAID,并安装系统(中文教程)

环境以用户需求安装Centos7.9&#xff0c;服务器使用9块900G硬盘&#xff0c;创建RAID1和RAID6&#xff0c;留一块作为热备盘。 使用笔记本通过HDM管理口&#xff08;&#xff09;登录 使用VGA&#xff08;&#xff09;线连接显示器和使用usb线连接键盘鼠标&#xff0c;进行窗…

生成 Excel 表列名称

Excel 大家都用过&#xff0c;它的列名是用字母编号的&#xff0c;A 表示第一列&#xff0c;B 表示第二列&#xff0c;AA 表示第27列&#xff0c;AB 表示第28列等等。 现给定一个数字&#xff0c;如何得到列名称呢。比如输入28&#xff0c;输出 AB。 一开始以为就是一个简单的…

C++ 算法学习——1.9 Kruskal算法

Kruskal算法是一种用于解决最小生成树&#xff08;Minimum Spanning Tree&#xff09;问题的贪婪算法。 Kruskal算法步骤&#xff1a; 初始化&#xff1a;将图中的所有边按照权值从小到大进行排序。 创建并查集&#xff1a;为每个顶点创建一个集合&#xff0c;用于判断两个顶…

中国灌溉农田空间分布

针对全国灌溉农田空间分布数据缺失的现状&#xff0c;融合MODIS植被指数和统计数据生成MIrAD-GI临时灌溉数据集&#xff0c;再利用约束统计和协同绘图方法将其与中国区域现有灌溉数据进行集成、整合&#xff0c;生成了2000-2019年中国逐年灌溉农田分布数据集&#xff08;500米空…

5、JavaScript(四)

25.ajax : 前端向后端异步的取数据而无需刷新页面的技术 1 公司中的整体工作流程 1、项目开发的流程 每个职位该做的工作&#xff1a; 产品经理&#xff1a;提需求的 与客户沟通 画出原型图给程序员使用 UI设计师&#xff1a;美化 替换UI框架&#xff1a;antd element-ui e…

python将照片集导出成视频

shigen坚持更新文章的博客写手&#xff0c;记录成长&#xff0c;分享认知&#xff0c;留住感动。个人IP&#xff1a;shigen 背景 一个安静的下午&#xff0c;看着电脑里乱七八糟的照片&#xff0c;有大有小&#xff0c;宽高不一&#xff0c;突然想找个方式把他们统一起来&…

SketchUp Pro 2024 for Mac 3D建模 草图设计大师软件安装【保姆级教程,简单小白轻松上手】

Mac分享吧 文章目录 SketchUp Pro 3D建模 草图设计大师软件 安装完成&#xff0c;软件打开效果一、Mac中安装SketchUp Pro 3D建模 草图设计大师软件——v241️⃣&#xff1a;下载软件2️⃣&#xff1a;安装软件&#xff0c;将安装包从左侧拖入右侧文件夹中3️⃣&#xff1a;应…

【数据结构】7道经典链表面试题

目录 1.返回倒数第K个节点【链接】 代码实现 2.链表的回文结构【链接】 代码实现 3.相交链表【链接】 代码实现 4.判断链表中是否有环【链接】 代码实现 常见问题解析 5.寻找环的入口点【链接】 代码实现1 代码实现2 6.随机链表的复制【链接】 代码实现 7.顺序…

DS堆的特性和实现(9)

文章目录 前言一、堆的概念和结构二、堆的调整算法向下调整算法向上调整算法两种算法建堆的时间复杂度 三、堆的实现结构体定义初始化和销毁堆的插入堆的删除挪移数据覆盖删除首尾交换再删除 获取堆顶元素获取有效数据个数判断是否为空 总结 前言 继续&#xff0c;本篇较难   …

我的创作纪念日-365天的感悟

时光荏苒&#xff0c;岁月如梭。转眼间&#xff0c;自己在CSDN注册已经整整15个年头了。回想起当初&#xff0c;还是个满怀憧憬、对未来充满无限好奇的学生哥。如今&#xff0c;虽然身份和角色发生了诸多变化&#xff0c;但CSDN始终陪伴着我&#xff0c;见证了我的成长与蜕变。…

JavaWeb环境下的Spring Boot在线考试系统开发

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理基于JavaWeb技术的在线考试系统设计与实现…

深入探讨C++多线程性能优化

深入探讨C多线程性能优化 在现代软件开发中&#xff0c;多线程编程已成为提升应用程序性能和响应速度的关键技术之一。尤其在C领域&#xff0c;多线程编程不仅能充分利用多核处理器的优势&#xff0c;还能显著提高计算密集型任务的效率。然而&#xff0c;多线程编程也带来了诸…

OpenAI的新功能Canvas,效果还不错

时隔两年&#xff0c;ChatGPT终迎来界面全新升级&#xff01; 这一次&#xff0c;OpenAI官宣推出类似 Anthropic 的 Artifacts 的界面交互功能 canvas&#xff0c;并称这是一种使用 ChatGPT 写作和编程的新方式。不论是写作&#xff0c;还是编码&#xff0c;都可以开启全新的交…

什么!我上传的文件不见了?

什么&#xff01;我上传的文件不见了? 前言&#xff1a; 最近在实现一个文件上传功能时使用了异步处理&#xff0c;但是在异步处理文件时&#xff0c;却提示NoSuchFileException错误。简化代码如下&#xff1a; PostMapping("/upload")void testFileUpload(Reques…

Flume抽取数据(包含自定义拦截器和时间戳拦截器)

flume参考网址&#xff1a;Flume 1.9用户手册中文版 — 可能是目前翻译最完整的版本了https://flume.liyifeng.org/?flagfromDoc#要求&#xff1a; 使用Flume将日志抽取到hdfs上&#xff1a;通过java代码编写一个拦截器&#xff0c;将日志中不是json数据的数据过滤掉&#xf…

学习文档10/16

MySQL 字符集&#xff1a; MySQL 支持很多种字符集的方式&#xff0c;比如 GB2312、GBK、BIG5、多种 Unicode 字符集&#xff08;UTF-8 编码、UTF-16 编码、UCS-2 编码、UTF-32 编码等等&#xff09;。 查看支持的字符集 你可以通过 SHOW CHARSET 命令来查看&#xff0c;支持…

一次性理清Environment体系

在Spring中&#xff0c;我们可以通过配置文件等方式去进行一些属性值的配置&#xff0c;比如通过Value注解去获取到对应的属性值&#xff0c;又或者说是想在程序运行时获取系统环境变量&#xff0c;类似的这些操作其实都是去获取一些配置数据&#xff0c;所以在Spring中对这些数…

C++ | Leetcode C++题解之第486题预测赢家

题目&#xff1a; 题解&#xff1a; class Solution { public:bool PredictTheWinner(vector<int>& nums) {int length nums.size();auto dp vector<int>(length);for (int i 0; i < length; i) {dp[i] nums[i];}for (int i length - 2; i > 0; i-…