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 判断undefined的实现代码
Nov 26 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
Jan 15 Javascript
JS中的this变量的使用介绍
Oct 21 Javascript
javascript在IE下trim函数无法使用的解决方法
Sep 12 Javascript
原生js实现打字动画游戏
Feb 04 Javascript
php输出全部gb2312编码内的汉字方法
Mar 04 Javascript
AngularJS ionic手势事件的使用总结
Aug 09 Javascript
vue小图标favicon不显示的解决方案
Sep 19 Javascript
vue.js配合$.post从后台获取数据简单demo分享
Aug 11 Javascript
详解vue-cli3 中跨域解决方案
Apr 10 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
Aug 03 Javascript
vue print.js打印支持Echarts图表操作
Nov 13 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定时自动生成静态HTML的实现代码
2010/06/20 PHP
php检查是否是ajax请求的方法
2015/04/16 PHP
提交表单后 PHP获取提交内容的实现方法
2016/05/25 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
vue中如何使用ztree
2018/02/06 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
医学生自我鉴定范文
2014/03/26 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
热血教师观后感
2015/06/10 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis