员工排班查询列表隐藏列原创
金蝶云社区-大石头故事
大石头故事
2人赞赏了该文章 326次浏览 未经作者许可,禁止转载编辑于2022年12月30日 09:45:22

员工排班查询里面的列是非常多的。如果在员工排班查询列表里面显示太多的列就会显得很拥挤。同时有些客户公司是单业务组织架构,往往希望可以只显示业务组织或者行政组织,这样只看一个也不会太拥挤同时也能看到更多的信息。接下来我将演示如果在员工排班查询列表中如果隐藏列。 我们先打开员工排班查询列表的debug模式来调试js。我们就会来到第一个分水岭,根据展示的列表不同(横向排班,纵向排班,未排班列表),走到不同的代码中。

image.png


先看一下纵向列表,会调用

listWorkShift.renderListTable

来加载列表,而在这个方法里面我们需要重点关注

_resetColContainer(begin, end);

    image.png


    因为我们的列表都是基本colmodel来生成对应的列的。而该方法的语意就是设置col容器,有可能与设置列表中的列有关。进入该方法看到如下图所示:

    image.png

    现在关注的是纵向列表,明显就是这个方法_getVerShiftColModel()获取colmodel 的,因此进入该方法。果不其然,里面都是对应的一些列属性,此时如果我们需要隐藏业务组织的话,则要如下图所示添加一个hidden:true 上去,表示隐藏该列。

    image.png


    最后的结果:

    Image_20221230001039.png


    如果需要对未排班列表进行列隐藏,则需要关注_getNoShiftColModel()

    1672330378887.png

    对其中的colmodel添加hidden:true 即可。


    而对横向排班来说,他的代码执行则会走方法that.doVerticalRenderDataGrid(); 

    image.png

    进入该方法,则会看到如下图所示:

    image.png


    我们就需要关注colmodel对应的实现,看到是这个方法colModel_function()。点进去一看,也是有很多的colmodel,修改即可。

    Image_20221230001949.png


    我们可以通过在colmodel里面加入hidden:true来实现隐藏列,同时如果想实现冷冻列的效果的话,可以添加frozen : true。


    而colmodel里面列数据都是来源于请求的返回结果,返回的数据有什么,才能够去显示或者去隐藏什么。

    如图所示,纵向列表返回结果如下图:

    image.png

    说明纵向列表最多能够显示这些个列,而有一些列是我们列表中没有的,我们可以在对应的colmodel和colnames中添加对应的字段就可以显示出这个列了。如果希望显示除上图所示之外的字段的话,则需要重写后端代码(不建议操作)


    这里就是我介绍关于员工排班查询隐藏列的方法了,有需要探讨或者纠正的地方可以下方评论!

    图标赞 2
    2人点赞
    还没有人点赞,快来当第一个点赞的人吧!
    图标打赏
    0人打赏
    还没有人打赏,快来当第一个打赏的人吧!