vue基于mint-ui的城市选择3级联动的示例


Posted in Javascript onOctober 25, 2017

项目是基于 vue2 的移动端项目

1、实际效果

vue基于mint-ui的城市选择3级联动的示例

地址三级联动 mint-ui picker.png

2、首先你需要去下载一个包含中国省份,城市,区县的数据

如下:

https://github.com/artiely/Administrative-divisions-of-China(里面包含二级联动数据,三级联动数据,四级联动数据等,找到自己需要的)

3、具体代码
主要是用到了mint-ui的picker组件,关于mint-ui的使用就自行看官网

Ⅰ 、html组件

<div>
  <mt-picker :slots="myAddressSlots" @change="onMyAddressChange"></mt-picker>
  <p>地址3级联动:{{myAddressProvince}} {{myAddressCity}} {{myAddresscounty}}</p>
</div>

Ⅱ 、组件方法

<script>
  import { Picker } from 'mint-ui';
  import myaddress from '../../../static/address3.json'     //引入省市区数据
  export default {
    name: '',
    components: {
      'mt-picker': Picker
    },
    props: {},
    data () {
      return {
       myAddressSlots: [
          {
            flex: 1,
            defaultIndex: 1,    
            values: Object.keys(myaddress),  //省份数组
            className: 'slot1',
            textAlign: 'center'
          }, {
            divider: true,
            content: '-',
            className: 'slot2'
          }, {
            flex: 1,
            values: [],
            className: 'slot3',
            textAlign: 'center'
          },
          {
            divider: true,
            content: '-',
            className: 'slot4'
          },
          {
            flex: 1,
            values: [],
            className: 'slot5',
            textAlign: 'center'
          }
        ],
        myAddressProvince:'省',
        myAddressCity:'市',
        myAddresscounty:'区/县',
      }
    },
    created() {


    },
    methods: {
     onMyAddressChange(picker, values) {
       if(myaddress[values[0]]){  //这个判断类似于v-if的效果(可以不加,但是vue会报错,很不爽)
          picker.setSlotValues(1,Object.keys(myaddress[values[0]])); // Object.keys()会返回一个数组,当前省的数组
          picker.setSlotValues(2,myaddress[values[0]][values[1]]); // 区/县数据就是一个数组
          this.myAddressProvince = values[0];
          this.myAddressCity = values[1];
          this.myAddresscounty = values[2];
        }
      },
    },
    mounted(){
      this.$nextTick(() => { //vue里面全部加载好了再执行的函数  (类似于setTimeout)
        this.myAddressSlots[0].defaultIndex = 0    
        // 这里的值需要和 data里面 defaultIndex 的值不一样才能够初始化
        //因为我没有看过源码(我猜测是因为数据没有改变,不会触发更新)
      });
    }
  }
</script>

参考文章https://3water.com/article/125935.htm(mint-ui picker 的四级联动)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery Ajax文件上传(php)
Jun 16 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
Aug 16 Javascript
下载文件个别浏览器文件名乱码解决办法
Mar 19 Javascript
For循环中分号隔开的3部分的执行顺序探讨
May 27 Javascript
EasyUI中datagrid在ie下reload失败解决方案
Mar 09 Javascript
js实现跨域的方法实例详解
Jun 24 Javascript
javascript如何定义对象数组
Jun 07 Javascript
JavaScript省市级联下拉菜单实例
Feb 14 Javascript
Vuex提升学习篇
Jan 11 Javascript
解决layer弹出层中表单不起作用的问题
Sep 09 Javascript
JavaScript简易计算器制作
Jan 17 Javascript
类和原型的设计模式之复制与委托差异
Jul 07 Javascript
浅谈Vue的加载顺序探讨
Oct 25 #Javascript
JavaScript模块模式实例详解
Oct 25 #Javascript
vue生成token保存在客户端localStorage中的方法
Oct 25 #Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
Oct 25 #Javascript
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
Oct 25 #Javascript
vue语法之拼接字符串的示例代码
Oct 25 #Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 #Javascript
You might like
PHP图片库imagemagick安装方法
2014/09/23 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
js实现显示手机号码效果
2017/03/09 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
js中this对象用法分析
2018/01/05 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
Flask数据库迁移简单介绍
2017/10/24 Python
基于python绘制科赫雪花
2018/06/22 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
军训感想500字
2014/02/20 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
中小学生学籍证明
2014/10/25 职场文书
教师学期个人总结
2015/02/11 职场文书
自信主题班会
2015/08/14 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书