当前位置: 首页 > news >正文

uniapp组件实现省市区三级联动选择

1.导入插件

先将uni-data-picker组件导入我们的HBuilder项目中,在DCloud插件市场搜索uni-data-picker

点击下载插件并导入到我们的项目中

2.组件调用

curLocation :获取到的当前位置(省市区)

<uni-data-picker v-slot:default="{data, error, options}" :localdata="localData" popup-title="请选择省市区" @change="onchange" @nodeclick="onnodeclick"><view class="selectedAddress"><view v-if="data.length == 0 && curLocation">{{ curLocation }}</view><view v-if="data.length" class="selected"><view v-for="(item,index) in data" :key="index" class="selected-item"><text>{{item.text}} </text> </view></view><view class="addrlocation"><uni-icons type="location" color="#ec4149" size="24"></uni-icons></view></view></uni-data-picker>
data(){return {localData:[], //省市区地址curLocation: uni.getStorageSync('location_address'),}
}

3.处理我们需要的省市区数据

1)在https://gitee.com/dcloud/opendb下载省市区源数据,collection/opendb-city-china

2)下载后的数据是一组一维对象数组,接下来把这个数组处理成树形结构

在页面中引入:

const cityRows = require('@/common/opendb-master/collection/opendb-city-china/data.json')
// 省市区数据树生成get_city_tree () {let res = []if (cityRows.length) {// 递归生成res = this.handleTree(cityRows)}return res},handleTree (data, parent_code = null) {let res = []let keys = {id: 'code',pid: 'parent_code',children: 'children',text: 'name',value: 'code'}let oneItemDEMO = {text: '',value: '',children: []}let oneItem = {}// 循环for (let index in data) {// 判断if (parent_code === null) {// 顶级菜单 - 省if (!data[index].hasOwnProperty( keys.pid ) || data[index][keys.pid] == parent_code) {// 不存在parent_code,或者已匹配oneItem = JSON.parse(JSON.stringify(oneItemDEMO))oneItem.text = data[index][keys.text]oneItem.value = data[index][keys.value]// 递归下去oneItem.children = this.handleTree(data, data[index][keys.id])res.push(oneItem)} } else {// 非顶级菜单 - 市、区、街道if (data[index].hasOwnProperty( keys.pid ) && data[index][keys.pid] == parent_code) {// 已匹配oneItem = JSON.parse(JSON.stringify(oneItemDEMO))oneItem.text = data[index][keys.text]oneItem.value = data[index][keys.value]// 递归下去oneItem.children = this.handleTree(data, data[index][keys.id])res.push(oneItem)}}}return res},
onLoad(options){this.localData = this.get_city_tree()
}

最后的效果:

相关文章:

uniapp组件实现省市区三级联动选择

1.导入插件 先将uni-data-picker组件导入我们的HBuilder项目中&#xff0c;在DCloud插件市场搜索uni-data-picker 点击下载插件并导入到我们的项目中 2.组件调用 curLocation &#xff1a;获取到的当前位置&#xff08;省市区&#xff09; <uni-data-picker v-slot:defa…...

【C++】异常处理机制(对运行时错误的处理)

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》 ⛰️ 天高地阔&#xff0c;欲往观之。 目录 引言 1.编译器可以处理的错误 2.编译器不能处理的错误 3.传统的错误处理机制 assert终止程序 返回错误码 一、…...

C++ boost steady_timer使用介绍

文章目录 1. 引入必要的头文件2. 基本用法2.1 同步定时器解释:2.2 异步定时器解释:3. 异步定时器与回调函数4. 设置定时器的超时时间4.1 使用秒、毫秒、微秒4.2 修改定时器的到期时间5. 多次使用定时器6. 循环执行任务7. 错误处理总结:C++ Boost 库提供了 boost::asio::stea…...

JVM 由多个模块组成,每个模块负责特定的功能

Java虚拟机&#xff08;JVM, Java Virtual Machine&#xff09;是一个抽象的计算机&#xff0c;它提供了一个运行环境&#xff0c;使得Java字节码可以在不同的平台上执行。JVM 由多个模块组成&#xff0c;每个模块负责特定的功能。以下是 JVM 的主要模块及其功能&#xff1a; …...

ORACLE批量插入更新如何拆分大事务?

拆分大事务 一、批量插入更新二、拆分事务之前文章MYSQL批量插入更新如何拆分大事务?说明了Mysql如何拆分,本篇文章探讨Oracle或OceanBase批量插入更新拆分大事务的问题 一、批量插入更新 oracle批量插入更新可使用merge语法eg: merge test ausing test_tmp bon (a.id = b.id…...

kafka+zookeeper的搭建

kafka从2.8版本开始&#xff0c;就可以不用配置zookeeper了&#xff0c;但是也可以继续配置。我目前使用的kafka版本是kafka_2.12-3.0.0.tgz&#xff0c;其中前面的2.12表示是使用该版本的scala语言进行编写的&#xff0c;而后面的3.00才是kafka当前的版本。 通过百度网盘分享…...

Spark中的宽窄依赖

一、什么是依赖关系 这里通过一张图来解释&#xff1a; result_rdd是由tuple_rdd使用reduceByKey算子得到的&#xff0c; 而tuple_rdd是由word_rdd使用map算子得到的&#xff0c;word_rdd又是由input_rdd使用flatMap算子得到的。它们之间的关系就称为依赖关系&#xff01; 二…...

安装和运行开发微信小程序

下载HBuilder uniapp官网 uni-app官网 微信开发者工具 安装 微信小程序 微信小程序 官网 微信小程序 配置 运行 注意&#xff1a;运行前需要开启服务端口 如果运行看不到效果&#xff0c;设置下基础库选别的版本 配置...

地图框架之mapbox——(五)

今天主要学习mapbox中如何使用画笔&#xff01; 一、导入画笔依赖 <script src"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v1.2.2/mapbox-gl-draw.js"></script> <link rel"stylesheet" href"https://api.mapbox…...

Hive 的数据类型

基本类型 整型 TINYINT: 1字节整数&#xff0c;范围从 -128 到 127。SMALLINT: 2字节整数&#xff0c;范围从 -32,768 到 32,767。INT: 4字节整数&#xff0c;范围从 -2,147,483,648 到 2,147,483,647。BIGINT: 8字节整数&#xff0c;范围从 -9,223,372,036,854,775,808 到 9…...

2024下半年软考考后估分,快来预约!

2024下半年软考这周末就要开考了&#xff01;考后大家最关心的&#xff0c;莫过于考试成绩。届时会为家更新回忆版真题及答案&#xff0c;现在就可以开始预约啦~ 因为是回忆版&#xff0c;老师做题也需要时间&#xff0c;答案会慢慢更新&#xff0c;大家耐心等待片刻&#xff…...

第8章 利用CSS制作导航菜单作业

1.利用CSS技术&#xff0c;结合链接和列表&#xff0c;设计并实现“山水之间”页面。 浏览效果如下&#xff1a; HTML代码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>山水之间</title><…...

基于Spring Boot的船舶监造系统的设计与实现,LW+源码+讲解

摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定船舶监造系统的总体功能模块。然后&#xff0c;详…...

linux强制修改mysql的root账号密码

在Linux环境下&#xff0c;如果您忘记了MySQL的root密码&#xff0c;可以通过以下步骤来强制修改root密码&#xff1a; 在执行这些步骤之前&#xff0c;请确保您有足够的权限来执行这些命令。 停止MySQL服务&#xff1a; systemctl stop mysql 启动MySQL的安全模式&#xff0c…...

CentOS系统查看CPU、内存、操作系统等信息

Linux系统提供了一系列命令可以用来查看系统硬件信息&#xff0c;如CPU的物理个数、核数、逻辑CPU数量、内存信息和操作系统版本。 查看物理CPU、核数和逻辑CPU 在多核、多线程的系统中&#xff0c;了解物理CPU个数、每个物理CPU的核数和逻辑CPU个数至关重要。超线程技术进一步…...

针对解决前后端BUG的个人笔记

1-IDEA Q&#xff1a;Required Java version 17 is not supported by SDK 1.8. The maximum supported Java version is 8. A: 我们只知道IDEA页面创建Spring项目&#xff0c;其实是访问spring initializr去创建项目。故我们可以通过阿里云国服去间接创建Spring项目。将https…...

5G时代已来:我们该如何迎接超高速网络?

内容概要 随着5G技术的普及&#xff0c;我们的生活似乎变得更加“科幻”了。想象一下&#xff0c;未来的智能家居将不仅仅是能够听你说“开灯”&#xff1b;它们可能会主动询问你今天心情如何&#xff0c;甚至会推荐你一杯“维他命C芒果榨汁”&#xff0c;帮助你抵御夏天的炎热…...

企业级-实现Redis封装层

作者&#xff1a;fyupeng 技术专栏&#xff1a;☞ https://github.com/fyupeng 项目地址&#xff1a;☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 封装 Redis 客户端Dao层、分布式锁等。 一、介绍 二、代码 DataInitialLoadRunner.java /*** Clas…...

SpringBoot使用ApplicationContext.getBean启动报空指针处理记录

问题&#xff1a;项目启动报空指针 定位&#xff1a;新增filter中init方法使用getbean控制 解决&#xff1a;在新增filter上加注解 DependsOn({"applicationContextUtils"}) Component DependsOn({"applicationContextUtils"})//此处解决空指针问题 pu…...

MongoDB Shell 基本命令(三)聚合管道

管道含义 类似Linux中的管道&#xff0c;前一个命令的输出作为后一个命令的输入。 显示网络连接、路由表和网络接口统计信息 netstat -ano -netstat:network statistics 网络统计 -a:显示所有连接和监听端口&#xff0c;包括所有活动的TCP和UDP连接。 -n:以数字形式显示地址…...

FDTD Solutions 8.0 保姆级上手教程:从软件安装到第一个仿真结果

FDTD Solutions 8.0 零基础实战指南&#xff1a;从安装到首个完整仿真 当你第一次打开FDTD Solutions 8.0时&#xff0c;那些复杂的工具栏和陌生的术语可能会让你望而却步。作为一款专业的光学仿真软件&#xff0c;它确实有着陡峭的学习曲线——但别担心&#xff0c;这正是本文…...

SAP PP实战指南:从零到一掌握BOM创建、群组BOM配置与CS01核心操作

1. BOM基础概念与核心价值 物料清单&#xff08;Bill of Materials&#xff0c;简称BOM&#xff09;是制造业的DNA图谱&#xff0c;它用结构化数据描述产品从原材料到成品的完整演化路径。我第一次接触SAP PP模块时&#xff0c;项目经理指着屏幕上的BOM结构说&#xff1a;"…...

Apple Music断供后歌单全没?别慌!用iTunes导出的XML文件+Excel手动抢救歌单(保姆级图文教程)

Apple Music断供后歌单全没&#xff1f;别慌&#xff01;用iTunes导出的XML文件Excel手动抢救歌单&#xff08;保姆级图文教程&#xff09; 当你发现Apple Music因断供导致精心收藏的歌单全部消失时&#xff0c;那种心情就像突然失去了多年的音乐记忆。别担心&#xff0c;这份…...

网站导航设计全攻略:4种常见布局方式,教你打造极致用户体验

在浏览网站时&#xff0c;你是否曾因找不到入口而感到焦躁&#xff1f;优秀的导航设计&#xff0c;就像一座灯塔&#xff0c;能在瞬间为用户指明方向。它不仅是网站的骨架&#xff0c;决定了信息的流转效率&#xff0c;更是用户体验的基石。一个逻辑清晰的导航系统&#xff0c;…...

告别环境配置烦恼:用PHPStudy+VSCode搭建PHP调试环境(含XDebug配置避坑指南)

告别环境配置烦恼&#xff1a;用PHPStudyVSCode搭建PHP调试环境&#xff08;含XDebug配置避坑指南&#xff09; 刚接触PHP开发时&#xff0c;最令人头疼的莫过于环境配置。明明跟着教程一步步操作&#xff0c;却总是卡在某个环节无法继续。特别是XDebug调试器的配置&#xff0c…...

Claude规格说明书生成器:提升大模型任务执行效率的工程化方法

1. 项目概述&#xff1a;一个为Claude模型定制的“规格说明书”生成器如果你和我一样&#xff0c;经常与Anthropic的Claude系列大语言模型打交道&#xff0c;无论是Claude 3 Opus、Sonnet还是Haiku&#xff0c;那你肯定遇到过这样的场景&#xff1a;你有一个复杂的任务&#xf…...

从FLAN-T5到你的专属模型:如何用公司内部客服聊天记录做领域微调(附DialogSum实操对比)

从FLAN-T5到业务专属模型&#xff1a;领域微调实战指南 当通用大模型遇上垂直业务场景&#xff0c;性能落差往往令人沮丧。想象一个酒店预订客服场景&#xff1a;FLAN-T5可能把"我需要延迟入住"总结成"客户确认了入住时间"&#xff0c;这种"幻觉"…...

Docker 网络模式详解:bridge、host、overlay 和 macvlan

Docker 网络模式详解&#xff1a;bridge、host、overlay 和 macvlan Docker 提供了多种网络模式&#xff0c;让容器既能灵活通信&#xff0c;又能实现安全隔离。无论是单机多容器应用&#xff0c;还是跨主机的 Swarm 集群&#xff0c;亦或需要直接接入物理网络的 IoT 设备&…...

图像采集卡与相机内置采集:架构差异、性能对比与选型指南

1. 项目概述&#xff1a;从“外挂”到“内置”的采集路径之争在视觉系统集成或工业检测项目里&#xff0c;选型阶段总会遇到一个基础但关键的问题&#xff1a;图像采集卡和相机内置的采集功能&#xff0c;到底该用哪个&#xff1f;这可不是一个简单的“哪个更好”的问题&#x…...

华为od机试 新系统-麻将基本胡牌型判断(C/C++/Py/Java/Js/Go)

麻将基本胡牌型判断 华为OD新系统机试真题 华为OD新系统上机考试真题 5月17号 100分题型 华为OD机试新系统真题目录点击查看: 华为OD机试新系统真题题库目录|机考题库 + 算法考点详解 题目内容 给定 14 14 14张麻将牌,只包含三种花色:万(用 1 1 1表示)、条(用...