封装了一个查询控件,如果没有输入查询条件的话,就清空对应的查询条件,如果输入查询条件,则生成对应的查询对象。
这里就需要判断一下用户是否输入。
可能你会说,这还容易,判断一下是不是 ‘’ 不就可以了吗?
但是没有那么简单,首先就是类型的问题。
不同的组件返回的类型是不一样的,比如 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。
目前可以凑合用,以后发现问题再改进。