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中使用CSS3实现内容无缝滚动的示例代码
Nov 27 Vue.js
Vue用mixin合并重复代码的实现
Nov 27 Vue.js
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
解决vue下载后台传过来的乱码流的问题
Dec 05 Vue.js
vue自定义组件实现双向绑定
Jan 13 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
vue前端工程的搭建
Mar 31 Vue.js
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 Vue.js
vue使用echarts实现折线图
Mar 21 Vue.js
Vue3中toRef与toRefs的区别
Mar 24 Vue.js
vue实现可以快进后退的跑马灯组件
Apr 08 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
Protoss兵种介绍
2020/03/14 星际争霸
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
javascript 定义新对象方法
2010/02/20 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
JS实现鼠标滑过显示边框的菜单效果
2016/09/21 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
node.js连接mysql与基本用法示例
2019/01/05 Javascript
微信小程序模板消息推送的两种实现方式
2019/08/27 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
python传递参数方式小结
2015/04/17 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
简单了解Django ContentType内置组件
2019/07/23 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
怎么处理XML的中文问题
2015/03/26 面试题
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
一道输出判断型Java面试题
2014/10/01 面试题
《走一步再走一步》教学反思
2014/02/15 职场文书
信用卡工作证明模板
2014/09/14 职场文书
三方股东合作协议书
2014/10/28 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android