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 30 Vue.js
基于vue与element实现创建试卷相关功能(实例代码)
Dec 07 Vue.js
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
vue+element实现动态加载表单
Dec 13 Vue.js
vue动态设置路由权限的主要思路
Jan 13 Vue.js
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
vue实现可移动的悬浮按钮
Mar 04 Vue.js
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
关于vue-router-link选择样式设置
Apr 30 Vue.js
Vue深入理解插槽slot的使用
Aug 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
PHPMailer的主要功能特点和简单使用说明
2014/02/17 PHP
教大家制作简单的php日历
2015/11/17 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
Python threading多线程编程实例
2014/09/18 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
差生评语大全
2014/05/04 职场文书
电子商务专业自荐信
2014/06/02 职场文书
诚信考试标语
2014/06/24 职场文书
员工生日活动方案
2014/08/24 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
田径运动会通讯稿
2015/07/18 职场文书
趣味运动会口号
2015/12/24 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS