封装了一个查询控件,如果没有输入查询条件的话,就清空对应的查询条件,如果输入查询条件,则生成对应的查询对象。
这里就需要判断一下用户是否输入。
可能你会说,这还容易,判断一下是不是 ‘’ 不就可以了吗?
但是没有那么简单,首先就是类型的问题。
不同的组件返回的类型是不一样的,比如 el-number返回的是number类型,就不能直接判断是不是 '' 。
el-cascader 控件返回的是一个数组。
那么首先就要判断类型,然后在做细节判断,于是有了下面的代码:
const _isEmpty = (val) => {
switch (typeName(val)) {
case 'null':
case 'undefined':
return true
break
case 'string':
return val.length === 0
break
case 'number':
case 'bigInt':
return isNaN(val)
break
case 'array':
return val.length === 0
break
default:
return false
break
}
}
首先要去掉 null 和 underfined。
然后 string 类型可以判断长度,
number 类型要用isNaN来判断,否则会出问题。
数组要用长度来判断。
对象嘛,目前好像不会传入对象。
好像还没有判断日期,日期被清空后好像返回null。
目前可以凑合用,以后发现问题再改进。