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 相关文章推荐
PJBlog插件 防刷新的在线播放器
Oct 25 Javascript
jQuery 学习6 操纵元素显示效果的函数
Feb 07 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
js实现可拖动DIV的方法
Dec 17 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
Jan 03 Javascript
jquery增加和删除元素的方法
Jan 14 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
Apr 12 Javascript
纯JS焦点图特效实例(可一个页面多用)
Dec 07 Javascript
微信小程序 scroll-view隐藏滚动条详解
Jan 16 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
Jul 24 Javascript
Vue SPA 初次进入加载动画实现代码
Nov 14 Javascript
vue3使用vue-count-to组件的实现
Dec 25 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
Discuz! Passport 通行证整合
2008/03/27 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
php源码的使用方法讲解
2019/09/26 PHP
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
Python json转字典字符方法实例解析
2020/04/13 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
社区学习雷锋活动总结
2014/04/25 职场文书
公司委托书格式范本
2014/09/16 职场文书
长江三峡导游词
2015/01/31 职场文书
傲慢与偏见电影观后感
2015/06/10 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技