WebUI/插件库

Vue移动端UI库:Mint UI

2019-12-12  本文已影响0人  CodeMT

官网:https://mint-ui.github.io/#!/zh-cn
GitHub:https://github.com/ElemeFE/mint-ui

介绍一下mint-ui的特性

特性介绍

这个组件库,适合于基于vue的手机页面开发。

1.cell的使用

在做switch的时候,想做成文字和switch在列表的两侧。效果出不来,发现有很多人跟我一样死命的钻switch的文档,以及找switch的相关资料。然后实际上,应该用cell才对。

<mt-cell title="开关状态">
  <mt-switch v-model="openValue" @change="changeStatus"></mt-switch>
</mt-cell>

利用cell的布局,和switch相结合。产生下面的结果。

2.Infinite scroll 和 Navbar结合使用

Navbar 是这样的

Infinite scroll 是这样的

两个结合起来,就是把Infinite scroll嵌套在 <mt-tab-container-item id="1"></mt-tab-container-item>里面,然后效果就出来了。

<mt-navbar v-model="selected" >
  <mt-tab-item id="1">选项一</mt-tab-item>
  <mt-tab-item id="2">选项二</mt-tab-item>
</mt-navbar>

<mt-tab-container v-model="selected">
  <mt-tab-container-item id="1">
    <div v-infinite-scroll="loadMore"
      infinite-scroll-disabled="loading"
      infinite-scroll-distance="10"
      class="content">
    </div>
   </mt-tab-container-item>
   <mt-tab-container-item id="2">
    <div v-infinite-scroll="loadMoreReceive"
      infinite-scroll-disabled="loadingReceive"
      infinite-scroll-distance="10"
      class="content">
    </div>
  </mt-tab-container-item>
</mt-tab-container>

这样基本页面就出来了。

Infinite-Scroll的代码如下:

<div v-infinite-scroll="loadMore"
  infinite-scroll-disabled="loading"
  infinite-scroll-distance="10"
  class="content"
  v-if="selected == 1"
>

3.Picker,地址三级联动

首先获取地址

getRegion(){
  var root=this;
  // 通过/region 接口获取三级地址,然后存入regionArr 
  http.get("/region").then(function (data) {
    root.regionArr=data.data.data;
    // 存放省 
    for(var i=0;i<root.regionArr.length;i++){
      root.region_province[i]=root.regionArr[i].value;
    }
    // 存放市 
    for(var i=0;i<root.regionArr[0].children.length;i++){
      root.region_city[i]=root.regionArr[0].children[i].value;
    }
    // 存放区
    for(var i=0;i<root.regionArr[0].children[0].children.length;i++){
      root.region_zone[i]=root.regionArr[0].children[0].children[i].value;
    }
    root.region=[{
      flex: 1,
      values: root.region_province,
      textAlign: 'left',
      className:'picker_Slot'
    },{
      divider: true,
      content: '-',
      className: 'slot2'
    },{
      flex: 1,
      values: root.region_city,
      textAlign: 'center',
      className:'picker_Slot'
    },{
      divider: true,
      content: '-',
      className: 'slot2'
    },{
      flex: 1,
      values: root.region_zone,
      textAlign: 'right',
      className:'picker_Slot'
    }]
  });
},

然后设置三级地址

onValuesChange(picker, values) {
  var root=this;
  var str_1=[];
  var str_2=[];
  for(var i in root.regionArr){
    // 获取省,并重置市级名称
    if(root.regionArr[i].value == values[0]){
      for(var j in root.regionArr[i].children){
        str_1.push(root.regionArr[i].children[j].value);
        // 获取市级,并重置区级的名称
        if(root.regionArr[i].children[j].value == values[1]){
          // 当市级下不存在区名市,置空。
          if(root.regionArr[i].children[j].children != null){
            for(var k in root.regionArr[i].children[j].children){
              str_2.push(root.regionArr[i].children[j].children[k].value);
            }
          }else{
            str_2.push(" ");
          }
        }
      }
      picker.setSlotValues(1, str_1);
      picker.setSlotValues(2, str_2);
    }
  }
  // 赋值,初始时置为上一页返回的值
  root.$set(root.printerMessage,'province',values[0] == null ? root.printerMessage.province : values[0]);
  root.$set(root.printerMessage,'city',values[1] == null ? root.printerMessage.city : values[1]);
  root.$set(root.printerMessage,'area',values[2] == null ? root.printerMessage.area : values[2]);
}

上一篇 下一篇

猜你喜欢

热点阅读