基础资料字段的编辑输入框,搜索返回重复数据原创
222次浏览
编辑于2023年11月06日 17:56:29
问题如图,输入搜索词出现重复结果,F12发现返回的每条数据一模一样。
其实本质还是数据问题,看了sql,这个人员基础资料有很多临时表,底层逻辑不好处理,可以在返回结果里做去重。
这里的搜索会触发QueryEdit的getLookUpList方法,其中getLookUpData方法最后会调用注册的BasedataFuzzySearchListener对象,修改返回值!!!
所以处理代码就是在表单插件里,给这个基础资料控件注册BasedataFuzzySearchListener用于去重:
@Override public void registerListener(EventObject e) { super.registerListener(e); BasedataEdit edit = this.getControl("person"); edit.addBasedataFuzzySearchListener(evt ->{ if (CollectionUtils.isEmpty(evt.getQueryData())){ return; } evt.setQueryData(new ArrayList<>(Sets.newHashSet(evt.getQueryData()))); }); }
推荐阅读