使用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 相关文章推荐
Mootools 1.2教程 滑动效果(Slide)
Sep 15 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
Jul 11 Javascript
js/jQuery简单实现选项卡功能
Jan 02 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
Jan 14 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
微信小程序 密码输入(源码下载)
Jun 27 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
Jun 07 Javascript
微信小程序视图容器(swiper)组件创建轮播图
Jun 19 Javascript
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
详释JavaScript执行环境与执行栈
Apr 02 Javascript
js实现小星星游戏
Mar 23 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自定义函数返回多个值
2006/11/26 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
PHP 类与构造函数解析
2017/02/06 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
本地对象Array的原型扩展实现代码
2010/12/04 Javascript
JS的replace方法介绍
2012/10/20 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
Python类属性的延迟计算
2016/10/22 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
刚毕业大学生自荐信范文
2014/02/20 职场文书
自我鉴定总结
2014/03/24 职场文书
安全口号大全
2014/06/21 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
向女朋友道歉的话
2015/01/20 职场文书
仙境之桥观后感
2015/06/16 职场文书
催款函范文
2015/06/24 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
开学随笔
2015/08/15 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
react如何快速设置文件路径别名
2021/04/28 Javascript
教你利用python实现企业微信发送消息
2021/05/23 Python
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技