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+iview分页组件的封装
Nov 17 Vue.js
vue element-ul实现展开和收起功能的实例代码
Nov 25 Vue.js
详解Vue3 Teleport 的实践及原理
Dec 02 Vue.js
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
如何在vue 中使用柱状图 并自修改配置
Jan 21 Vue.js
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
Mar 01 Vue.js
原生JS封装vue Tab切换效果
Apr 28 Vue.js
vue-cli4.5.x快速搭建项目
May 30 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
关于vue-router-link选择样式设置
Apr 30 Vue.js
vue如何在data中引入图片的正确路径
Jun 05 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伪静态的实现详细介绍
2013/04/28 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
JS array 数组详解
2009/03/22 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
jQuery消息提示框插件Tipso
2015/05/04 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
使用vue自定义指令开发表单验证插件validate.js
2019/05/23 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
Python常用正则表达式符号浅析
2014/08/13 Python
python之PyMongo使用总结
2017/05/26 Python
python数据处理实战(必看篇)
2017/06/11 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
女大学生自我鉴定
2013/12/09 职场文书
社区服务活动小结
2014/07/08 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
违章停车检讨书
2014/10/21 职场文书
教师学期末个人总结
2015/02/13 职场文书
小学生安全保证书
2015/05/09 职场文书
金砖之国观后感
2015/06/11 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript