vue实现省市区联动 element-china-area-data插件


Posted in Vue.js onApril 22, 2022

前言

前端开发的同学们应该都知道,省市区联动在日常开发中用的非常多,今天跟大家分享一款好用的插件 — element-china-area-data

安装

npm install element-china-area-data -S
cnpm install element-china-area-data -S

代码样例

<template>
  <div>
    <el-cascader size="large" :options="options" v-model="provinces" @change="handleChange" placeholder="请选择省市区"></el-cascader>
  </div>
</template>
 
<script>
import { regionData } from "element-china-area-data";//引入
export default {
  data() {
    return {
      options: regionData,//选择格式
      provinces: [], //省市区绑定数组
    };
  },

  methods: {
    // 事件触发
    handleChange(e) {
      console.log(e, "所选code值");
    },
  },
};
</script>

element-china-area-data 插件主要分成四种展示格式:

  • provinceAndCityData
  • provinceAndCityDataPlus
  • regionData
  • regionDataPlus

以下是设置不同属性时对应展示的格式:

1. provinceAndCityData 是省市两级联动数据且不带 "全部" 字样选项。当 options 的值为 provinceAndCityData 时,展示如下:

vue实现省市区联动 element-china-area-data插件

2. provinceAndCityDataPlus 是省市两级联动数据且显示 "全部" 字样选项。当 options 的值为 provinceAndCityDataPlus 时,展示如下:

vue实现省市区联动 element-china-area-data插件

3. regionData 是省市区三级联动数据且不带 "全部" 字样选项。当 options 的值为 regionData 时,展示如下:

vue实现省市区联动 element-china-area-data插件

4. regionDataPlus 是省市区三级联动数据且显示 "全部" 字样选项。当 options 的值为 regionDataPlus 时,展示如下:

vue实现省市区联动 element-china-area-data插件

注意: 当选择 “全部” 字样选项时,绑定的 value 值是空字符串。

vue实现省市区联动 element-china-area-data插件

案例

省市二级联动(不带“全部”选项):

<template>
  <div id="app">
    <el-cascader
      size="large"
      :options="options"
      v-model="selectedOptions"
      @change="handleChange">
    </el-cascader>
  </div>
</template>
 
<script>
  import { provinceAndCityData } from 'element-china-area-data'
  export default {
    data () {
      return {
        options: provinceAndCityData,
        selectedOptions: []
      }
    },
 
    methods: {
      handleChange (value) {
        console.log(value)
      }
    }
  }
</script>

省市二级联动(带“全部”选项):

<template>
  <div id="app">
    <el-cascader
      size="large"
      :options="options"
      v-model="selectedOptions"
      @change="handleChange">
    </el-cascader>
  </div>
</template>
 
<script>
  import { provinceAndCityDataPlus } from 'element-china-area-data'
  export default {
    data () {
      return {
        options: provinceAndCityDataPlus,
        selectedOptions: []
      }
    },
 
    methods: {
      handleChange (value) {
        console.log(value)
      }
    }
  }
</script>

省市三级联动(不带“全部”选项):

<template>
  <div id="app">
    <el-cascader
      size="large"
      :options="options"
      v-model="selectedOptions"
      @change="handleChange">
    </el-cascader>
  </div>
</template>
 
<script>
  import { regionData } from 'element-china-area-data'
  export default {
    data () {
      return {
        options: regionData,
        selectedOptions: []
      }
    },
 
    methods: {
      handleChange (value) {
        console.log(value)
      }
    }
  }
</script>

省市三级联动(带“全部”选项):

<template>
  <div id="app">
    <el-cascader
      size="large"
      :options="options"
      v-model="selectedOptions"
      @change="handleChange">
    </el-cascader>
  </div>
</template>
 
<script>
  import { regionDataPlus } from 'element-china-area-data'
  export default {
    data () {
      return {
        options: regionDataPlus,
        selectedOptions: []
      }
    },
 
    methods: {
      handleChange (value) {
        console.log(value)
      }
    }
  }
</script>

到此这篇关于vue基于element-china-area-data插件实现省市区联动的文章就介绍到这了!


Tags in this post...

Vue.js 相关文章推荐
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
Vue中computed和watch有哪些区别
Dec 19 Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
Vue使用Ref跨层级获取组件的步骤
Jan 25 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
vue-cli4.5.x快速搭建项目
May 30 Vue.js
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
vue ant design 封装弹窗表单的使用
Jun 01 Vue.js
vue修饰符.capture和.self的区别
Apr 22 #Vue.js
vue 自定义组件添加原生事件
Apr 21 #Vue.js
vue 自定义的组件绑定点击事件
Apr 21 #Vue.js
vue组件vue-esign实现电子签名
Apr 21 #Vue.js
vue动态绑定style样式
Apr 20 #Vue.js
Vue OpenLayer测距功能的实现
vue 给数组添加新对象并赋值
Apr 20 #Vue.js
You might like
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
原生实现一个react-redux的代码示例
2018/06/08 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
学习python (2)
2006/10/31 Python
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
Python内置函数之filter map reduce介绍
2014/11/30 Python
python登陆asp网站页面的实现代码
2015/01/14 Python
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
python学习笔记之多进程
2020/08/06 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
J2EE相关知识面试题
2013/08/26 面试题
写给学生的新学期寄语
2014/01/18 职场文书
校庆标语集锦
2014/06/25 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python