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

关于地址的级联选择器

相信大家在项目中经常要做关于地址的级联选择器:效果如下图
在这里插入图片描述
在常见的组件库,例如element-ui/element-plus等中就有关于级联选择器的使用,但该组件并没有封装好的关于中国省市区甚至更详细的关于地址的级联选择器,因此我尝试在网络中进行搜索

1.element-address

这个是类似一个二次封装的第三方包,它内部的组件是基于element-ui实现的,由于我自身项目是vue3用的是element-plus所以就没有用,如果你是安装了element-ui的vue2项目,可以用来试一试

https://gitee.com/asseek/element-address#%E6%8F%90%E4%BE%9B%E7%BB%84%E4%BB%B6
其中已经写了包括安装和使用的具体方法

注:该方法我在vue3的demo中试了不行一直报错可能是使用错误,希望后续有使用成功的小伙伴可以分享一下自己的成功经验

2.province-city-china

中华人民共和国行政区划代码,包含了中华人民共和国行政区划(五级):省级、地级、县级、乡级和村级,来自中华人民共和国行政部,用于查询中国省、市和区数据的网站

https://www.npmjs.com/package/province-city-china 更详细的信息查看该网站

这里我以图一的效果图为例

实现我想要的效果首先要拿到中国的省、市、区这样的层级数据
在这里插入图片描述
根据该包的讲解中看到该文件列表在level.json中
在要使用数据的页面vue组件中隐形引入

<script>
import data from 'province-city-china/dist/level.json'
//打印一下data我们可以看到拿到了我们需要的层级,
</script>

在这里插入图片描述
但如果想要在 el-cascader 级联选择器中使用该数据,我们需要对数据进行处理,因为级联选择器选项的数据源,显示默认是label,取值默认是value,但我们目前的数据并不符合,但可以自定义,这里我需要显示name,获取的值也要是name,所以我要给每个数据源加上label和value属性,且值都为name
在这里插入图片描述
由于需要处理的值是多层级的,因此封装了一个方法进行递归循环

<template><div><el-cascader v-model="value" :options="areaList" /></div>
</template>
<script>
import data from 'province-city-china/dist/level.json'
export default{data(){return {value:[]}},computed:{areaList(){return this.setLabelAndValue(data)}},methods:{setLabelAndValue(arr){for(let i=0;i<arr.length;i++){arr[i].label=arr[i].namearr[i].value=arr[i].nameif(arr[i].children){this.setLabelAndValue(arr[i].children)}}return arr}}
}
</script>

上述代码即可获得图一的效果

如果大家有别的写法,欢迎留言评论区,大家一起交流学习~

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 宝塔nginx安装geoip2
  • iOS弱引用
  • 【Apache Doris】周FAQ集锦:第 18 期
  • 正则表达式测试工具
  • 【环境】Rocky8使用gvm配置Go多版本管理的微服务开发环境(go-zero)
  • [Git][分支设计规范]详细讲解
  • VSCode在windows系统下的配置简单版
  • ArcGIS for js 缓冲(vue项目)
  • 代码”byte a = 0Xa1“为什么会报编译错误?
  • python游戏开发之五子棋游戏制作
  • Fast-DDS的依赖 foonathan_memory_vendor编译
  • ZICO2: 1【附代码】(权限提升)
  • 智算新风向丨趋动科技获中国信通院泰尔实验室首张智算资源池化能力泰尔测评证书
  • U2net论文复现-简单解读-以及奇奇怪怪的改进-测试roc以及pr
  • 机器学习用Python 还是 R语言?
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • AWS实战 - 利用IAM对S3做访问控制
  • IDEA 插件开发入门教程
  • IDEA常用插件整理
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript函数式编程(一)
  • MaxCompute访问TableStore(OTS) 数据
  • MySQL用户中的%到底包不包括localhost?
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • webpack4 一点通
  • 从零搭建Koa2 Server
  • 将回调地狱按在地上摩擦的Promise
  • 前言-如何学习区块链
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 线性表及其算法(java实现)
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​插件化DPI在商用WIFI中的价值
  • # Panda3d 碰撞检测系统介绍
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #100天计划# 2013年9月29日
  • #考研#计算机文化知识1(局域网及网络互联)
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (附源码)ssm高校实验室 毕业设计 800008
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (三)c52学习之旅-点亮LED灯
  • (三)uboot源码分析
  • (四)opengl函数加载和错误处理
  • (五)Python 垃圾回收机制
  • (一) springboot详细介绍
  • .ai域名是什么后缀?
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET Core 成都线下面基会拉开序幕
  • .net 反编译_.net反编译的相关问题
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .net连接oracle数据库
  • .NET企业级应用架构设计系列之结尾篇
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @RequestMapping-占位符映射