使用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 textarea的长度进行验证
May 06 Javascript
js触发asp.net的Button的Onclick事件应用
Feb 02 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
May 05 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
May 19 Javascript
js交换排序 冒泡排序算法(Javascript版)
Oct 04 Javascript
js简单实现调整网页字体大小的方法
Jul 23 Javascript
关于webuploader插件使用过程遇到的小问题
Nov 07 Javascript
实例浅析js的this
Dec 11 Javascript
vue2.x select2 指令封装详解
Oct 12 Javascript
详解开源的JavaScript插件化框架MinimaJS
Oct 26 Javascript
JS将网址url转化为JSON格式的方法
Jul 02 Javascript
详解webpack4之splitchunksPlugin代码包分拆
Dec 04 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/22 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
提高网站信任度的技巧
2008/10/17 Javascript
Javascript 事件流和事件绑定
2009/07/16 Javascript
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
修复ie8&amp;chrome下window的resize事件多次执行
2011/10/20 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
python机器学习之神经网络(二)
2017/12/20 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
python自动识别文本编码格式代码
2019/12/26 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
介绍Ibatis的核心类
2013/11/18 面试题
公司廉洁自律承诺书
2014/03/27 职场文书
银行求职自荐信
2014/06/30 职场文书
英文邀请函
2015/02/02 职场文书
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js