背景
流程审批,通常对应一个业务表单。这个表单一般有两种实现模式,一是不同的环节对应不同表单,二是做一张大表单,分为不同的区域,从业务角度考虑,前者通常对应复杂业务处理;后面一种则更常见和更常用,更友好和实用一些。
采用后一种方案,则需要对表单内的属性进行细粒度的权限控制,在不同的环节,对同一属性有不同的要求,可以细分为不可见、只读、编辑三种权限。
方案设计
若是直接对每个属性进行控制,则会过于繁琐,因此增加了属性分组来实现,即将一组属性打包成一个区域,对区域进行权限配置,会作用于其下的所有属性(注意,在实现的时候,并不是通过属性去继承区域的配置,而是区域的配置,如不可见,会令从属的属性也不可见)。
对表单的区域权限进行控制,不同的区域在不同环节下,有不可见、只读、编辑三种权限。
例如,同一张报销单:员工填写报销单时,只能填写报销单主体信息和明细部分,其它信息不可见;
经理审批时,只能填写审核结果和审核意见,报销单主体和明细部分只能查看;
财务审批时,报销单主体明细和经理审核信息都只能查看,只能设置是否领取费用的相关信息。
总结下,就是通过设置不同区域,通过区域对属性进行分组,简化权限控制(不分组直接到属性,是因为配置太繁琐),然后,通过区域标识,与环节标识匹配,权限预置为三种:不可见、只读、编辑。