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日历 推荐
Dec 03 Javascript
javascript 写类方式之十
Jul 05 Javascript
jQuery 处理表单元素的代码
Feb 15 Javascript
基于jquery自己写tab滑动门(通用版)
Oct 30 Javascript
用js实现trim()的解决办法
Apr 16 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
Mar 01 Javascript
JavaScript获取服务器时间的方法详解
Dec 11 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
Jun 27 Javascript
vue获取dom元素注意事项
Dec 28 Javascript
15个顶级开源JavaScript框架和库
Oct 10 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
Jun 10 jQuery
浅谈JS for循环中使用break和continue的区别
Jul 21 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加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
javascript折半查找详解
2015/01/26 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
在Windows8上的搭建Python和Django环境
2014/07/03 Python
详细介绍Python中的偏函数
2015/04/27 Python
django Model层常用验证器及自定义验证器详解
2020/07/15 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
一些.net面试题
2014/10/06 面试题
法雷奥SQA(electric)面试问题
2016/01/23 面试题
玩具公司的创业计划书
2013/12/31 职场文书
冬季施工防火方案
2014/05/17 职场文书
根叔历年演讲稿
2014/05/20 职场文书
企业年度评优方案
2014/06/02 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
三峡人家导游词
2015/01/31 职场文书
超市食品安全承诺书
2015/04/29 职场文书
公司员工培训管理制度
2015/08/04 职场文书
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android
正则表达式基础与常用验证表达式
2022/06/16 Javascript