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

vue 中国省市区级联数据 三级联动

vue 中国省市区级联数据 三级联动

  1. 安装插件 npm install element-china-area-data@5.0.2 -S 当前版本以测试,可用。
  2. 组件中使用了 element-ui, https://element.eleme.cn/#/zh-CN/component/installation 库 请注意安装。
  3. 插件文档 https://www.npmjs.com/package/element-china-area-data
  4. 先上图
    在这里插入图片描述
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b5a0ab5c8fdc4cadbd8061e8a791e7f6.png

在这里插入图片描述

  1. 在components文件夹下面新建 mpAreaSelect.vue
<template><el-cascader:options="options":disabled="disabled":placeholder="placeholder":value="selectedOptions"@change="handleChange":clearable="clearable"></el-cascader>
</template><script>
import  {provinceAndCityDataPlus,regionData,TextToCode,CodeToText,
} from 'element-china-area-data'
export default {name: 'mpAreaSelect',computed: {selectedOptions() {let selected = this.selected.filter((item) => item != '' && item != null)let len = selected.lengthlet textArr = []switch (len) {case 1:if(TextToCode[selected[0]]){textArr.push(TextToCode[selected[0]].code)}else{textArr = []}breakcase 2:if(TextToCode[selected[0]]){textArr.push(TextToCode[selected[0]].code)}else{textArr = []}if(TextToCode[selected[0]] && TextToCode[selected[0]][selected[1]]){textArr.push(TextToCode[selected[0]][selected[1]].code)}else{textArr = []}breakcase 3:if(TextToCode[selected[0]]){textArr.push(TextToCode[selected[0]].code)}else{textArr = []}if(TextToCode[selected[0]] && TextToCode[selected[0]][selected[1]]){textArr.push(TextToCode[selected[0]][selected[1]].code)}else{textArr = []}if(TextToCode[selected[0]] && TextToCode[selected[0]][selected[1]] && TextToCode[selected[0]][selected[1]][selected[2]]){textArr.push(TextToCode[selected[0]][selected[1]][selected[2]].code)}else{textArr = []}breakdefault:break}return textArr},options() {switch (this.level) {case 2:return provinceAndCityDataPluscase 3:return regionDatadefault:return regionData}},},props: {selected: {type: Array,default: [],},disabled: {type: Boolean,default: false,},placeholder: {type: String,default: '',},level: {type: Number,default: 3,},clearable:{type: Boolean,default: false,}},methods: {handleChange(value) {console.log(TextToCode)console.log(CodeToText)console.log(provinceAndCityDataPlus)console.log(regionData)console.log(value)this.$emit('change',value.map((item) => CodeToText[item]),value)},},
}
</script><style>
</style>
  1. 组件的使用
<template><div><div><div>请选择地区:</div><mp-area-selectstyle="width: 400px":selected="selected"placeholder="请选择地区"@change="changeAddress"></mp-area-select><div>回显地区:</div><mp-area-selectstyle="width: 400px":selected="selectedView"></mp-area-select></div></div>
</template>
<script>
import MpAreaSelect from '@/components/mpAreaSelect';
export default {components:{MpAreaSelect},data() {return {selected:[],selectedView:[],};},mounted(){this.$nextTick(()=>{this.selectedView = ["北京市", "市辖区", "朝阳区"]})},methods: {changeAddress(arr,code) {console.log(arr,77777777)console.log(code,88888888)},},
};
</script>
  1. 搞定!组件以及示例可直接复制使用!
  2. 另外 省市区JSON数据串 已经放在博客顶部,可自行下载后,自定义组件。

相关文章:

  • ASF-YOLO开源 | SSFF融合+TPE编码+CPAM注意力,精度提升!
  • Redis权限管理体系(一):客户端名及用户名
  • Javascript 前端分页——根据页面大小(pageSize)和总行数(total)计算总页面数(totalPage)
  • Java构建线程的方式
  • 基于ESP32的Blinker控制四路继电器连接RYG灯和白灯+蜂鸣器
  • vue3+vite4中使用svg,使用iconfont-svg图标
  • K8S(七)—污点、容忍
  • mysql的BIT数值类型
  • 微信小程序scroll-view的scroll-into-view和vanUI的tabs标签结合使用
  • 智能优化算法应用:基于共生生物算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • Nginx的stream配置
  • [足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-7欧拉公式的证明
  • 如何在Facebook Business Manager进行企业认证
  • 骨灰级程序员那些年曾经告诉我们的高效学习的态度
  • mysql 数据库
  • [Vue CLI 3] 配置解析之 css.extract
  • ES2017异步函数现已正式可用
  • extjs4学习之配置
  • js正则,这点儿就够用了
  • node学习系列之简单文件上传
  • Spring Boot MyBatis配置多种数据库
  • 阿里云Kubernetes容器服务上体验Knative
  • 关于List、List?、ListObject的区别
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 力扣(LeetCode)22
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端相关框架总和
  • 如何在 Tornado 中实现 Middleware
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 算法系列——算法入门之递归分而治之思想的实现
  • 学习笔记:对象,原型和继承(1)
  • 一个SAP顾问在美国的这些年
  • 一天一个设计模式之JS实现——适配器模式
  • 栈实现走出迷宫(C++)
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 昨天1024程序员节,我故意写了个死循环~
  • ​Linux·i2c驱动架构​
  • (2)Java 简介
  • (bean配置类的注解开发)学习Spring的第十三天
  • (八)Flask之app.route装饰器函数的参数
  • (搬运以学习)flask 上下文的实现
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (转)nsfocus-绿盟科技笔试题目
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • *Django中的Ajax 纯js的书写样式1
  • ./configure、make、make install 命令
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET 的程序集加载上下文
  • .net 后台导出excel ,word
  • .NET处理HTTP请求
  • ??javascript里的变量问题
  • [<事务专题>]
  • [2]十道算法题【Java实现】