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 19 Vue.js
对vue生命周期的深入理解
Dec 03 Vue.js
vue 基于abstract 路由模式 实现页面内嵌的示例代码
Dec 14 Vue.js
vue3使用vue-count-to组件的实现
Dec 25 Vue.js
vue 动态生成拓扑图的示例
Jan 03 Vue.js
vue-quill-editor插入图片路径太长问题解决方法
Jan 08 Vue.js
Vue中避免滥用this去读取data中数据
Mar 02 Vue.js
如何理解Vue前后端数据交互与显示
May 10 Vue.js
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 18 Vue.js
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
Vue3中toRef与toRefs的区别
Mar 24 Vue.js
vue3种table表格选项个数的控制方法
Apr 14 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
dwr spring的集成实现代码
2009/03/22 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
2011/03/25 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
python二分查找算法的递归实现方法
2016/05/12 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
解决Mac下使用python的坑
2019/08/13 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
应征英语教师求职信
2013/11/27 职场文书
初中学校对照检查材料
2014/08/19 职场文书
2015年团支书工作总结
2015/04/03 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书