码迷,mamicode.com
首页 > 其他好文 > 详细

vue 基于mint-ui 三级联动

时间:2018-12-18 12:09:37      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:默认   values   rip   timeout   admin   hang   github   bsp   配置   

一、基本配置

  https://github.com/modood/Administrative-divisions-of-China

  三级联动数据地址

二、vue基本配置

  1、cnpm install mint-ui --save-dev

  2、引入

    import MintUI from ‘mint-ui‘
    import ‘mint-ui/lib/style.css‘;
    Vue.use(MintUI);
 
<template>
    <div>
      <mt-picker :slots="myAddressSlots" @change="onMyAddressChange"></mt-picker>
      <p>地址3级联动:{{myAddressProvince}} {{myAddressCity}} {{myAddresscounty}}</p>
    </div>
</template>

<style>
</style>

<script>
import Vue from "vue";
import { Picker } from "mint-ui";
import myaddress from "../../data.json";
Vue.component(Picker.name, Picker);

export default {
  data() {
    return {
      myAddressSlots: [
        {
          flex: 1,//对应 slot CSS 的 flex 值
          defaultIndex: 1,//对应 slot 初始选中值,需传入其在 values 数组中的序号,默认为 0
          values: Object.keys(myaddress), //省份数组
          className: "slot1",//对应 slot 的类名
          textAlign: "center"//对应 slot 的对齐方式
        },
        {
          divider: true,//对应 slot 是否为分隔符
          content: "-",//分隔符 slot 的显示文本
          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];

        /*
            setSlotValues(index, values):设定给定 slot 的备选值数组
        
        */
      }
    }
  },
  mounted() {
    this.$nextTick(() => {
      //vue里面全部加载好了再执行的函数 (类似于setTimeout)
      this.myAddressSlots[0].defaultIndex = 0;
      // 这里的值需要和 data里面 defaultIndex 的值不一样才能够初始化
      //因为我没有看过源码(我猜测是因为数据没有改变,不会触发更新)
    });
  }
};
</script>

vue 基于mint-ui 三级联动

标签:默认   values   rip   timeout   admin   hang   github   bsp   配置   

原文地址:https://www.cnblogs.com/damowangM/p/10135975.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!