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 相关文章推荐
Auntion-TableSort国人写的一个javascript表格排序的东西
Nov 12 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
Dec 29 Javascript
js实现广告漂浮效果的小例子
Jul 02 Javascript
使用js解决由border属性引起的div宽度问题
Nov 26 Javascript
如何将网页表格内容导入excel
Feb 18 Javascript
深入探讨javascript中的数据类型
Mar 04 Javascript
jQuery实现图片文字淡入淡出效果
Dec 21 Javascript
JavaScript中的对象和原型(一)
Aug 12 Javascript
JavaScript队列函数和异步执行详解
Jun 19 Javascript
浅谈Vue的加载顺序探讨
Oct 25 Javascript
js事件触发操作实例分析
Jun 21 Javascript
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
浅谈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中文乱码
2009/11/26 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
php实现的支持断点续传的文件下载类
2014/09/23 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
python中wx模块的具体使用方法
2020/05/15 Python
golang/python实现归并排序实例代码
2020/08/30 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
介绍一下linux文件系统分配策略
2012/11/17 面试题
个人找工作自荐信格式
2013/09/21 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
安全月宣传标语
2014/10/07 职场文书
实验心得体会范文
2016/01/25 职场文书
导游词书写之黄山
2019/08/06 职场文书
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android