基础资料字段的编辑输入框,搜索返回重复数据原创
金蝶云社区-丁梦洋
丁梦洋
0人赞赏了该文章 222次浏览 未经作者许可,禁止转载编辑于2023年11月06日 17:56:29

问题如图,输入搜索词出现重复结果,F12发现返回的每条数据一模一样。

image.png

其实本质还是数据问题,看了sql,这个人员基础资料有很多临时表,底层逻辑不好处理,可以在返回结果里做去重。


这里的搜索会触发QueryEdit的getLookUpList方法,其中getLookUpData方法最后会调用注册的BasedataFuzzySearchListener对象,修改返回值!!!

image.png


所以处理代码就是在表单插件里,给这个基础资料控件注册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())));
    });
}


赞 0