1. 背景
流程表单设计——配置流程表单界面,都有哪些字段、字段属性(是否必填、是否只读、关联对象)等,可配置字段的自动带出、自动计算、业务关联关系等表单逻辑内容。
本节主要讲解流程中表单组件的常用用法、设置参数。
2.表单组件介绍
流程设置-字段设置-表单设置:即将左侧表单组件拖至中间框内,形成流程字段。
表单组件包括如下:
组件 | 说明 |
---|---|
单行文本 | 即单行文本框,设置字段key和名称、长度 |
多行文本 | 即多行文本框,适用于文本内容较多的情况,设置字段key和名称、长度 |
日期 | 设置字段key和名称,对应类型选择日期或时间,如果需要更改格式、在控件属性对应设置时间格式即可 |
系统通用下拉选择 | 设置字段key和名称,选择对应参照或者关联对象,关联对象字段类型为整数,存的是id,参照对象对应字段类型为字符串,存的是文本 |
左树右列表选择器 | 常规用法: 一般组织和人员都用这个选择器组件。1. 设置字段key和名称,设置关联对象,设置字段类型整数型 2.控件属性中一定要设置tree的权限,因为默认是经理人,但我们选择器使用人可能是人事专员,不设置的话可能配置完点开选择器是空白。 特殊用法:关联其他模型或者自定义的模型、比如关联JobInformation、按照上述配置后,1、此时点击出现: 此时需要在对应元数据里配置: { "tree": { "tree_key": { "org": "unit_id" }, "model": "Department", "params": { "extra_property": { "role": "cm-org-emp" }, "filter_dict": { "org_type": [10, 20] } } } } 这时组织树才会正常显示。意思是我左侧组织树是按照右侧数据unit_id来进行数据过滤的。 2. 但此时保存下来的依旧是一个JobInformation对象,如果我们想展示内容返回任职的员工姓名或者其他属性 要在hc-tree-list-selector组件options下继续加入 "individual_name": "=function(v){return v.employee.name}", 即返回的展示内容就是调动任职的员工姓名 数据库里面实际保存下来的是任职JobInformation下的id。 这种用法很广泛、比如我们的多任职终止、就需要选择任职进行终止,实际显示的就是调动人终止前单位,保存的是终止这条任职的id进行业务生效。 以上这些特殊设置都别忘记单独要建立state场景,即在extra_property里面配{"state":"xxxx"} |
表格(即流程子表) | 设置子模型key、子模型名称,点击设置子模型字段,与上述设置方式相同 |
附件 | 设置字段key和名称、长度,类型选择附件 |
评分 | 设置字段key和名称 |
签名 | 设置字段key和名称 |
关联流程 | 设置字段key和名称,字段类型选择关联流程,实际场景参考主子流程配置05 主流程发起子流程配置 |
关联报表 | 配置方式参看wiki:12.流程字段跳转链接配置 |
系统链接 | 配置方式参看wiki: 12.流程字段跳转链接配置 |
3.公共基本属性介绍
组件属性 | 介绍 |
---|---|
字段key | 1.表单组件的唯一标识,本流程业务字段key保持唯一不重复。2. 命名要规范,不要小于4个字母 3. 如果是关联对象、一般要以_id结尾。例如配置部门,key一般设置department_id(关联对象默认会去掉后三个字母变成对象,会把department_id:123变成department:{'name':'人力资源部'},为了让key不重复,请设置长些大于4个字母、然后以_id结尾) |
字段名称 | 字段的名称、按照业务实际含义自定义即可 |
字段类型 | 1.一般和组件类型相对应 2.通常如果是文本组件类型,一般选文本。如果组件是选择器的,且是关联对象的一般选整数 如果多选的组件,类型选多选。附件类型选附件。如果日期组件则选日期。关联报表选关联报表等等。 |
关联对象 | 一般选择器类型组件需要设置关联对象或者参照对象。比如性别字段,是个选择项,关联性别代码项(男和女) 如果流程表单这个字段结果想存男或者女的代码项id、那么就设置关联对象:common_basic_item_data.性别 如果流程表单这个字段结果想存男或者女的名称,那么就设置参照对象:common_basic_item_data.性别 常见的关联:单位:OrgDepartment、部门:OrgDepartment、岗位:OrgPosition、人员:Employee,其他模型关联则选择对应Model |
参照对象 | 同上描述 |
字段长度 | 按照实际字段情况设置即可 |
字段精度 | 一般浮点数类型会设置精度,按实际需求设置即可 |
关联表角色 | 待更新、一般不常用、不设置即可 |
是否List | 台账list层界面是否展示,也可在对应层点击元数据设置,进行可视化配置 |
是否info | 详情界面info层是否展示,也可在对应层点击元数据设置,进行可视化配置 |
是否模糊搜索 | list层界面此字段是否支持模糊搜索,一般调动人这些重要信息要设置支持模糊搜索 |
是否必录 | 填写流程表单,此字段是否必填,也可以在info层点击元数据,进行可视化配置 |
是否多选 | 只有字段类型是多选字段的这个属性才☑️、其他字段请填否或者不设置即可 |
是否业务主键 | 设置成业务主键,即list数据此字段值唯一 |
参与过滤 | 待更新、一般不常用、不设置即可 |
参与排序 | 待更新、一般不常用、不设置即可 |
参与统计 | 待更新、一般不常用、不设置即可 |
参与分组 | 待更新、一般不常用、不设置即可 |
顺序 | 字段排序,一般不在这里设置,用元数据可视化配置更方便些 |
如果没有关联码表或者模型,只是需要简单的固定的选项,此时配置Mask,即不再需要关联和参照码表。配置规则为 [{'key':0,'name':'未提交'},{'key':1,'name':'未提交'}] |
4.公共控件属性介绍
组织属性 | 介绍 |
---|---|
指的是字段名称和框是否单行显示 | |
是否只读 | 该字段是否只读状态,一般用元数据可视化配置更方便 |
宽度 | 一行总共col-12,按照设置长度对该行可控制能放几个字段。如果字段都设置col-4,则一行可以放12除以4等于3个字段 |
是否隐藏 | true隐藏、false显示,用元数据一般可视化配置更方便 |
默认值 | 填入默认值,也可以在form_relations中设置default来实现。详细见13 form_relations讲解 |
字段提示 | placeholder。默认还未填信息的时候,显示什么提示信息 |
后端的open_service | 待更新、一般不常用、不设置即可 |
1.模型过滤参数,一般关联对象时,会对模型里面内容进行二次过滤选择 2.比如我关联人员Employee,我选人时候只选择Employee表name是张三的人,即配置{"name":"张三"}、但是要注意filter_dict一定是结合自定义场景state,不要直接配置filter_dict会将标准场景污染 | |
extra_property | 一般传场景{'state':'xxxx'}即选择器读到场景下的参数 |
4.各组件最简单的配置示例
这里只讲这些组件在流程中最简单的配置方法、更多复杂的属性设置可以直接搜索组件名称、然后在元数据设置里面对应配置更复杂属性.
例如多行文本组件 hc-text-area
wiki搜索:hc-text-area参数说明中查看更多用法
对应环境示例地址:https://inspur6.hcmcloud.cn/#/ 业务ID: 14734
5.流程表单字段根据业务关联关系自动带出
流程发起界面,常常需要表单中默认带出相关信息,比如员工自助转正流程,要带出转正人的基本信息、单位部门组织信息等,就需要用到form_relations。它主要是用来处理表单字段值联动以及字段默认值。
参照wiki050204.form_relations讲解
6.根据表单另一个字段的值,隐藏/必填/只读本字段
流程表单界面,一个字段通常需要根据另一个字段的值,自动隐藏/必填/只读本字段,例如休假流程,想要控制当选择休假地点类型为市内时,具体休假地点非必填,当地点类型选择市外时,休假地点必填;或者是入职流程,当用工类型为实习生时,职级字段非必填,其他类型职级字段必填等,这种就是根据另一个字段的值来判断当前字段的属性。
通常的写法是在info界面,对应的字段fields中配置:
"hide": "=function(){return FORM().data.xxx=='市内'?false:true}"
"readOnly": "=function(){return FORM().data.xxx=='市内'?false:true}"
"required": "=function(){return FORM().data.xxx=='市内'?false:true}"
其中,FORM().data.xxx即为要获取的当前表单要判断的key。
如果存在多个判断条件,可参照写法:
"hide": "=function(){return FORM().data.salary_month && FORM().data.unit_id && FORM().data.salary_program_id?false:true}",
用&&隔开,则为并且的关系,若是或者的关系,可用||隔开