相关文章推荐
乖乖的绿豆  ·  SAP CDS ...·  1 年前    · 

想要完成的效果是:a选项和b选项,至少录入一个筛选条件。
如果前端没有加判断的话,也就是ab选项都没有选,就会请求接口,后端接口报错提示“至少录入一个筛选条件”,这样属于不好的做法。应该在前端加一个拦截判断。

a是月份moth,b是姓名userList(可多选)。

if( ! moth &&  (!userList)){
	message.warn(" moth和名字,至少录入一个筛选条件")

这样在单选的时无影响可以拦截,因为单选的时userList为undefined的。但是在用户多选了后,又删除了刚刚的选项,userList就成了[] 空数组了。这个判断逻辑就不行
修改后的代码

if( ! moth &&  ( !userList || userList.length === 0 )){
	message.warn(" moth和名字,至少录入一个筛选条件")
//或者用 .? 
if( ! moth &&   !( userList?.length > 0 )){
	message.warn(" moth和名字,至少录入一个筛选条件")

总结下就是:select 去除了多选后,该对象不是undefinded(空,啥的都没有),而是一个[] 空数组,在后端做判断的时候要注意。