使用iview遇到问题记录总结

Posted lb0121

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用iview遇到问题记录总结相关的知识,希望对你有一定的参考价值。

1.iview设置日期不可用,设置开始开始时间早于结束时间

官网示例,设置今天之前不可选,但是不能识别this
disabledDate (date) {
return date && date.valueOf() < Date.now() - 86400000; }
绑定this,可设置定义好的变量 optionsEndTime: { disabledDate: (
function (date) { return date < new Date(this.formValidate.startTime).getTime() + 60000 }).bind(this) }

 

2.列表查询时分页下边回到第一页

this.$refs[‘pagesChannel‘].currentPage = 1;
分页的ref="pagesChannel"

 

3.使用表单校验是,会出现新增或者修改不能通过校验的问题,可给输入框设置type属性

可参考 https://blog.csdn.net/ztx114/article/details/92806695

 

4.如果一个form组件中只有一个input组件,当这个input获得焦点时,按enter键会刷新页面,多个input则不会

解决这个问题可在元素中添加 @submit.native.prevent

vue里面类似的问题都可以尝试

<Form 
    @submit.native.prevent>
<Form>
@submit.prevent="function"还可设置方法
方法中返回false则阻止调教
this.@refs.export.submit()继续默认提交

 

5.表格数据跨页操作,可设置变量缓存已选中数据,通过选中事件@on-select,取消选中事件@on-select-cancel,全选事件@on-select-all@on-select-all-cancel对数据进行操作

和取消全选事件@on-select-all-cancel对已选数据进行处理,官方文档取消全选事件返回参数为已选数据,所以需要通过 this.$refs.selection.data 获取全选取消数据

forEach有时候会不执行,所以暂时都用for循环

@on-select-cancel="cancelChange"
@on-select="onChange"
@on-select-all="checkAllChange"
@on-select-all-cancel="cancelAllChange"
// 取消选择事件
cancelChange(selection,val) {
for(let t=0;t<this.selectChangeList.length;t++){
if(this.selectChangeList[t] === val.uuid){
this.selectChangeList.splice(t,1)
}
}
for(let x=0;x<this.selectLists.length;x++){
if(this.selectLists[x].uuid === val.uuid){
this.selectLists.splice(x,1)
}
}
},
//全选事件
checkAllChange(val){
for(let t=0;t<val.length;t++){
if(this.selectChangeList.indexOf(val[t].uuid) === -1){
this.selectChangeList.push(val[t].uuid);
this.selectLists.push(val[t])
}
}
},
//取消全选事件
cancelAllChange(val){
let data = this.$refs.selection.data;
for(let t=0;t<data.length;t++){
for(let v=0;v<this.selectChangeList.length;v++){
if(this.selectChangeList[v] === data[t].uuid){
this.selectChangeList.splice(v,1)
}
}
}
for(let x=0;x<data.length;x++){
for(let d=0;d<this.selectLists.length;d++){
if( data[x].uuid === this.selectLists[d].uuid){
this.selectLists.splice(d,1)
}
}
}
},

 

6.跨页操作数据上一页已选数据反显,设置iview的 _checked 属性

for(let i=0;i<this.tableData.data.length;i++){
    for(let j=0;j<this.selectChangeList.length;j++){
        if(this.tableData.data[i].uuid === this.selectChangeList[j]){
             this.tableData.data[i][‘_checked‘] = true
         }
     }
}

以上是关于使用iview遇到问题记录总结的主要内容,如果未能解决你的问题,请参考以下文章

BootStrap实用代码片段(持续总结)

使用vue iview遇到的一些问题

记一次开发过程中,iview遇到的一些坑以及解决办法

关于vue使用iview遇到的控制台警告

iview+vue 使用中遇到的问题(表格selectradio)

非template/render模式下使用iview组件时标签需要转化