1. iview中表单验证中datepicker组件type为datetime验证
在进行校验时有时会有因为datepicker的验证问题在
this.$refs.xx.validate((flag) => {console.log(flag)})
如果其他的验证有问题会返回false 如果都通过验证 则flag没值,打印不出来, 逻辑简单的如下, 必填 + 大于当前时间 可以这么做
time: [
{
required: true,
message: '截止日期必填',
type: 'date',
trigger: 'blur'
},
{
validator: (rule, value, callback) => {
const TIMESTAMP = Date.parse(value)
const NOWDATE = Date.parse(new Date())
TIMESTAMP >= NOWDATE ? callback() : callback(new Error('不可早于当前时间!'))
}
}
]
如果逻辑复杂的话 还是写在datepicker组件的@on-change事件里进行判定
2.iview 中表格表头渲染filters/指定数据
在我们渲染表格的时候, 有时候后端返回的数据可能有的值为1/0,告诉你1显示"是", 0 显示"否", 这时候可以用
官方的方法 filters
还可以使用render方法,如下
columns: [
{
title: '是否办卡了',
key: 'is_card',
render: (h, params) => {
return h('div', {
}, params.row.is_card ? '是' : '否')
}
]
大体介绍一下render的用法
render: (h, params) => {
// 中间可以插入逻辑, 就比如刚才的那个逻辑
let val = params.row.is_card ? '是' : '否'
// 渲染的元素
// [] 为此标签为父元素 中间可以继续写需要渲染的元素
// {} 为该元素的属性, style(样式)/props(属性值)/on(事件)
return h('元素标签', []/{}, '元素标签显示的值val')
}
3.iview表单校验时InputNumber组件问题
InputNumber标签 首先由一个问题 他的默认值为0
在为InputNumber标签进行表单验证时做必填时触发方法'blur' 'change'都会有问题
number: {
required: true,
message: '数字必填哦',
trigger: 'blur' / 'change'
}
你改变了inputNumber的值的时候 他还是回提醒你没有必填, 这时把trigger这属性删了就ok
让他根据自己的逻辑去判断,就可以判断成功
4.iview中form表单重置问题resetFields
正常的使用环境, 就进行重置了 重置数据 重置报错
this.$refs.xxxform.resetFields()
resetFields这个方法是根据this.$refs.xxxform下fields属性通过循环来resetField()来实现的
如果我们要实现部分表单重置可以使用这个属性,(除了prop为name的都进行重置)
this.$refs.xxxform.fields.forEach(function (e) {
if (e.prop == 'name') {
e.resetField()
}
})
完事~