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 组件注册
Nov 20 Vue.js
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue实现树状表格效果
Dec 29 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
vue3弹出层V3Popup实例详解
Jan 04 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
vue+django实现下载文件的示例
Mar 24 Vue.js
Vue如何实现组件间通信
May 15 Vue.js
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
May 25 Vue.js
Vue2.0搭建脚手架
Mar 13 Vue.js
Vue组件化(ref,props, mixin,.插件)详解
May 15 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 str_pad 函数使用详解
2009/01/13 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
2018/05/24 PHP
PHP中“=&gt;
2019/03/01 PHP
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
JavaScript 变量命名规则
2009/09/23 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
Python笔试面试题小结
2019/09/07 Python
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
数据库什么时候应该被重组
2012/11/02 面试题
会计电算化专业个人的自我评价
2013/11/24 职场文书
仓管员岗位责任制
2014/02/19 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
python基础详解之if循环语句
2021/04/24 Python
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js
宝塔更新Python及Flask项目的部署
2022/04/11 Python
python运算符之与用户交互
2022/04/13 Python
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS