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 相关文章推荐
iframe窗口高度自适应的实现方法
Jan 08 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
Apr 29 Javascript
jQuery中index()的用法分析
Sep 05 Javascript
Javascript实现计算个人所得税
May 10 Javascript
动态加载js文件简单示例
Apr 21 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
Jan 13 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
Mar 14 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
vue中component组件的props使用详解
Sep 04 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
Dec 22 Javascript
layUI实现前端分页和后端分页
Jul 27 Javascript
JS实现网页烟花动画效果
Mar 10 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
smarty表格换行实例
2014/12/15 PHP
php类的定义与继承用法实例
2015/07/07 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
2010年最佳jQuery插件整理
2010/12/06 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
2016/10/13 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
Angular学习笔记之集成三方UI框架、控件的示例
2018/03/23 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
python模块之time模块(实例讲解)
2017/09/13 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
pandas参数设置的实用小技巧
2020/08/23 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
财务主管自我鉴定
2014/01/17 职场文书
小学英语课后反思
2014/04/26 职场文书
自我推荐信范文
2014/05/09 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
英语分层教学实施方案
2014/06/15 职场文书
卫生标语大全
2014/06/21 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
2014年公司工作总结
2014/11/22 职场文书
干部外出学习心得体会
2016/01/18 职场文书