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 相关文章推荐
JS 控制小数位数的实现代码
Aug 02 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
Jun 20 Javascript
script标签属性type与language使用选择
Dec 02 Javascript
JavaScript中的onerror事件概述及使用
Apr 01 Javascript
jQuery获取和设置表单元素的方法
Feb 14 Javascript
技术男用来对妹子表白的百度首页
Jul 23 Javascript
js实现超简单的展开、折叠目录代码
Aug 28 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
Oct 20 Javascript
jquery  实现轮播图详解及实例代码
Oct 12 Javascript
AngularJs实现聊天列表实时刷新功能
Jun 15 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
Jan 18 Javascript
JS实现打字游戏
Dec 17 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
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
PHP安全之register_globals的on和off的区别
2020/07/23 PHP
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
JavaScript 函数模式详解及示例
2016/09/07 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
Python sorted对list和dict排序
2020/06/09 Python
python制作抽奖程序代码详解
2021/01/15 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
Linux操作面试题
2015/02/11 面试题
优纳科技软件测试面试题
2012/05/15 面试题
有关爱国演讲稿
2014/05/07 职场文书
专科应届毕业生求职信
2014/06/04 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
批评与自我批评范文
2014/10/15 职场文书
同意落户证明
2015/06/19 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers