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页面刷新,数据丢失的问题
Nov 24 Vue.js
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
vue实现简易计算器功能
Jan 20 Vue.js
解读Vue组件注册方式
May 15 Vue.js
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 Vue.js
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
关于Vue中的options选项
Mar 22 Vue.js
vue 数字翻牌器动态加载数据
Apr 20 Vue.js
vue动态绑定style样式
Apr 20 Vue.js
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 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
跟我学Laravel之路由
2014/10/15 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
jQuery()方法的第二个参数详解
2015/04/29 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
重构Python代码的六个实例
2020/11/25 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
大学生就业自荐书
2014/06/16 职场文书
cf战队收人口号
2014/06/21 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
工伤事故证明
2014/10/20 职场文书
师德先进个人材料
2014/12/20 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
vue+spring boot实现校验码功能
2021/05/27 Vue.js
SQL基础的查询语句
2021/11/11 MySQL