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 相关文章推荐
tbody元素支持嵌套的注意方法
Mar 24 Javascript
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
Jan 16 Javascript
js实现单一html页面两套css切换代码
Apr 11 Javascript
我的Node.js学习之路(一)
Jul 06 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
May 15 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
May 16 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
Nov 25 Javascript
Boostrap模态窗口的学习小结
Mar 28 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
Jan 23 Javascript
vuex如何重置所有state(可定制)
Jan 17 Javascript
Vue.js计算机属性computed和methods方法详解
Oct 12 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中的escape函数
2013/06/29 PHP
php的dl函数用法实例
2014/11/06 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
CentOS安装php v8js教程
2015/02/26 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
CI(CodeIgniter)框架视图中加载视图的方法
2017/03/24 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
js 小数取整的函数
2010/05/10 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
微信小程序 数组中的push与concat的区别
2017/01/05 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
Python中的rjust()方法使用详解
2015/05/19 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
EJB与JAVA BEAN的区别
2016/08/29 面试题
医学院毕业生自荐信
2013/11/08 职场文书
优秀教师工作感言
2014/02/16 职场文书
不服从公司安排检讨书
2014/09/24 职场文书