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下相关操作与插件
Oct 01 Javascript
表单验证的完整应用案例探讨
Mar 29 Javascript
Javascript对象属性方法汇总
Nov 21 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
Dec 29 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
Sep 15 Javascript
直接拿来用的15个jQuery代码片段
Sep 23 Javascript
解析javascript瀑布流原理实现图片滚动加载
Mar 10 Javascript
深入理解jquery中的each用法
Dec 14 Javascript
浅谈js中function的参数默认值
Feb 20 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
Nov 27 Javascript
JavaScript剩余操作符Rest Operator详解
Jul 20 Javascript
js 数组当前行添加数据方法详解
Jul 28 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使用类继承解决代码重复的问题
2015/02/11 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
js CSS操作方法集合
2008/10/31 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
jQuery创建自己的插件(自定义插件)的方法
2010/06/10 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
python实现查询IP地址所在地
2015/03/29 Python
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
Python3分析处理声音数据的例子
2019/08/27 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
关于python的缩进规则的知识点详解
2020/06/22 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
创业计划书的主要内容有哪些
2014/01/29 职场文书
劳动之星获奖感言
2014/02/01 职场文书
教师自我鉴定范文
2014/03/20 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
公司股东出资证明书
2014/11/01 职场文书
php 原生分页
2021/04/01 PHP
python调试工具Birdseye的使用教程
2021/05/25 Python
python Tkinter模块使用方法详解
2022/04/07 Python
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL