使用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 相关文章推荐
Notify - 基于jquery的消息通知插件
Oct 18 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
Nov 07 Javascript
js/jquery解析json和数组格式的方法详解
Jan 09 Javascript
最原始的jQuery注册验证方式
Oct 11 Javascript
简单实现js选项卡切换效果
Feb 09 Javascript
js前端实现图片懒加载(lazyload)的两种方式
Apr 24 Javascript
angular过滤器实现排序功能
Jun 27 Javascript
webpack4.0 入门实践教程
Oct 08 Javascript
微信小程序实现的日期午别医生排班表功能示例
Jan 09 Javascript
egg.js的基本使用和调用数据库的方法示例
May 18 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
Dec 10 Javascript
JS + HTML 罗盘式时钟的实现
May 21 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 无极分类(递归)实现代码
2010/01/05 PHP
PHP 循环列出目录内容的函数代码
2010/05/26 PHP
php设计模式 Singleton(单例模式)
2011/06/26 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2019/08/02 PHP
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
javascript弹出层输入框(示例代码)
2013/12/11 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
python opencv之SIFT算法示例
2018/02/24 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
Python常用数据分析模块原理解析
2020/07/20 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
制定岗位职责的原则
2013/11/08 职场文书
黄河象教学反思
2014/02/10 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
聚美优品的广告词
2014/03/14 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
小学捐书活动总结
2014/07/05 职场文书
高中社区服务活动报告
2015/02/05 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS