iview - 笔记

2019-01-18  本文已影响0人  于美美
1. table 序号分页后序号从1开始
{
    type: 'index2',
    width: 60,
    align: 'center',
    render: (h, params) => {
        return h('span', params.index + (this.pageIndex- 1) * this.pageSize + 1);
    }
}
//pageIndex 当前分页页码; pageSize 每页条数
//点击切换分页的时候,将点击的值赋值给pageIndex,这样保证点击分页的时候,序号也会跟着变化。
changePage (index) {
   this.pageIndex = index
   ..
}
2. table 前端分页
<Page
     :total="count"
     size="small"
     @on-change="changePage"
     show-total
     show-elevator
 />


请求数据后:
this.count = this.list.length
this.changePage(1)

changePage(page){
   this.tableData.splice(0, this.tableData.length);
   this.tableData=this.list.slice((page - 1) * 10,page * 10);
   this.pageIndex = page
}

3. table里面的按钮 ,需要用render函数处理

比较常用的是button跟switch

render: (h, params) => {
  return h('div', [
    h('Button', {
      props: {
        type: 'info',
        size: 'small'
      },
      style: {
        marginRight: '6px'
      },
      on: {
        click: () => {
          
        }

      }
    }, '详情'),
    h('i-switch', {
      props: {
        value: params.row.enable
      },
      on: {
        input: () => {
          params.row.enable = !params.row.enable
        },
        'on-change': (value) => { // 触发事件是on-change,用双引号括起来,
          this.scheduleData.monday[params.index].enable = value
        }
      }
    })
  ])
}
4.render函数创建组件点击事件无效的解决方法
render里面的on 换成 nativeOn
5. modal 关闭前验证

只要点击了确定按钮,无论怎样都会关闭,return也没办法阻止,可用插槽解决

<div slot="footer" style="margin-left: 120px;">
    <Button style="margin-right: 10px" @click="closeModel">取消</Button>
    <Button type="primary" @click="handleSubmit('formValidate')">确认</Button>
</div>
6.iview icon打包后不显示图标

webpack.prod.conf.js文件修改:

extract:true
7. DatePicker 返回本地时间

通过v-model方法进行绑定,返回的数据是UTC格式的时间,可以将v-model绑定值去掉,加上@on-change="changeDate"

changeDate(date){
    console.log(date) //date就是返回我们本地的时间
}
8. upload default-file-list动态赋值不显示

axios获取数据是一个异步的过程,所以default-file-list赋值不成功,所以我们要数据获取成功之后再赋值;

this.defaultList = this.picDefaulList; //将获取到的值赋值到 defaultList 中
this.$nextTick(()=> { //赋值后马上更新
    this.uploadList = this.$refs.upload.fileList;
});
9. form 多重验证

多重验证包括第一要验不能为空,第二要验证限制的一些长度,写正则表达式等

ruleValidate: {
    mobile: [
        { required: true, message: '手机号不能为空', trigger: 'blur' },
        { type: 'string',pattern:/^[1][3,4,5,7,8][0-9]{9}$/, message:'请填写正确的手机号格式', trigger:'blur'},
   ],
}

参考:
https://blog.csdn.net/qq_41727900/article/details/81305036
https://www.jianshu.com/p/034afd50ac21

上一篇下一篇

猜你喜欢

热点阅读