使用mint-ui实现省市区三级联动效果的示例代码


Posted in Javascript onFebruary 09, 2018

引用插件:饿了么的mint-ui组件中的picker功能,具体API可参照官网说明:http://mint-ui.github.io/docs/#/zh-cn2/picker

背景:项目需要做一个省份-城市-地区的选择级联效果,我从gayhub上找了一下,决定使用mint-ui的组件,因为各个功能都很全而且设计跟我们的项目风格类似。

具体实现:

通过阅读官网的实例,大概就能知道这个组件的用法:

在vue中写入组件:<mt-picker :slots="slots" @change="onValuesChange"></mt-picker>

我们可以看到,这个组件中传入的数据slots和当其改变是触发的事件:onValuesChange(),所以只要在使用该组件的父组件内注册slots和onValuesChange就可以实现了

以下是官网上的实例:

export default {
 methods: {
 onValuesChange(picker, values) {
 if (values[0] > values[1]) {
 picker.setSlotValue(1, values[0]);
 }
 }
 },
 data() {
 return {
 slots: [
 {
  flex: 1,
  values: ['2015-01', '2015-02', '2015-03', '2015-04', '2015-05', '2015-06'],
  className: 'slot1',
  textAlign: 'right'
 }, {
  divider: true,
  content: '-',
  className: 'slot2'
 }, {
  flex: 1,
  values: ['2015-01', '2015-02', '2015-03', '2015-04', '2015-05', '2015-06'],
  className: 'slot3',
  textAlign: 'left'
 }
 ]
 };
 }
};

在实际操作中当我想使用picker来进行省份、城市、地区的选择时,发现最大的问题是搞不到符合该插件数据格式的数据,于是从百度上扒了一份省份、城市、地区数据之后写了一个函数对其进行了处理,在这里,共享给大家:

使用mint-ui实现省市区三级联动效果的示例代码

onProvinceChange(picker, values) {
   
   this.province = picker.getValues()[0]
   var cityArr = [];
   for(var key in provinceCity[this.province]) {
   cityArr.push(key);
   }
   this.slots2[0].values = cityArr;
  },
  onCityChange(picker, values) {
   this.city = picker.getValues()[0]
   var countyArr = [];
   for(var key in provinceCity[this.province][this.city]) {
   countyArr.push(key);
   }
   this.slots3[0].values = countyArr;
  },
  onCountyChange(picker, values) {
   
   this.county = picker.getValues()[0]
  },

三组数据以及三个方法如上,当对省份进行选择时,动态匹配相应的城市,同理对城市进行选择时动态匹配相应的地区,如此就可以实现三级联动的效果了

以上这篇使用mint-ui实现省市区三级联动效果的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery选择器源码解读(二):select方法
Mar 31 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
快速学习JavaScript的6个思维技巧
Oct 13 Javascript
JS实现Fisheye效果动感放大菜单代码
Oct 21 Javascript
即将发布的jQuery 3 有哪些新特性
Apr 14 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
May 09 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
Nov 29 Javascript
Node.js爬取豆瓣数据实例分析
Mar 05 Javascript
Javascript实现一朵从含苞到绽放的玫瑰
Mar 30 Javascript
webpack4之如何编写loader的方法步骤
Jun 06 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
Jul 27 Javascript
JS实现公告上线滚动效果
Jan 10 Javascript
vue二级路由设置方法
Feb 09 #Javascript
从零开始搭建一个react项目开发
Feb 09 #Javascript
Vue-Router2.X多种路由实现方式总结
Feb 09 #Javascript
浅谈react受控组件与非受控组件(小结)
Feb 09 #Javascript
基于Vue2.X的路由和钩子函数详解
Feb 09 #Javascript
Vuejs 单文件组件实例详解
Feb 09 #Javascript
vue-lazyload图片延迟加载插件的实例讲解
Feb 09 #Javascript
You might like
PHP时间类完整实例(非常实用)
2015/12/25 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
webpack优化的深入理解
2018/12/10 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
python采用requests库模拟登录和抓取数据的简单示例
2014/07/05 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
机器学习实战之knn算法pandas
2019/06/22 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
纪念建党演讲稿范文
2014/01/13 职场文书
25岁生日感言
2014/01/13 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
商务日语专业自荐信
2014/04/17 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
2014年教学工作总结
2014/11/13 职场文书
步步惊心观后感
2015/06/12 职场文书
学校隐患排查制度
2015/08/05 职场文书
社区服务理念口号
2015/12/25 职场文书