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 相关文章推荐
vue使用vant中的checkbox实现全选功能
Nov 17 Vue.js
Vue项目利用axios请求接口下载excel
Nov 17 Vue.js
如何使用 vue-cli 创建模板项目
Nov 19 Vue.js
Vue 的 v-model用法实例
Nov 23 Vue.js
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
vue常用高阶函数及综合实例
Feb 25 Vue.js
Vue多选列表组件深入详解
Mar 02 Vue.js
vue-element-admin项目导入和导出的实现
May 21 Vue.js
Vue3.0 手写放大镜效果
Jul 25 Vue.js
一定要知道的 25 个 Vue 技巧
Nov 02 Vue.js
vue使用echarts实现折线图
Mar 21 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处理大量表单字段的便捷方法
2015/02/07 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
js操作textarea 常用方法总结
2012/12/03 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
2017/09/23 jQuery
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
django的登录注册系统的示例代码
2018/05/14 Python
python与caffe改变通道顺序的方法
2018/08/04 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
Python实现壁纸下载与轮换
2020/10/19 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
计算机专业优秀大学生自我总结
2014/01/21 职场文书
项目建议书范文
2014/05/12 职场文书
股票投资建议书
2014/05/19 职场文书
国际会计专业求职信
2014/08/04 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
Python日志模块logging用法
2022/06/05 Python