1.主子模型的说明
警告 |
---|
平台主子模型功能升级,具体变动请移步-->主子模型升级 |
平台在支持了主子模型之后,我通过项目中功能的实践了一下,熟悉和了解了弹性模型的一些相关的配置操作。主子模型配置属于Model元数据,子模型当中的一个字段与主模型的id进行关联,如图,info界面的显示为主模型中嵌套了一个子模型。与线下GS中的单据头单据体关系很类似。在Wiki的HCM Cloud 元数据规范中,李平老师在Model元数据中对主子模型进行讲解,大家可以去参考学习一下。Model元数据
2.主子模型配置
2.1 建立模型
我在inspur3环境中建了一个主子模型的小demo。首先,建立两个弹性模型,这里我建立了gsz_model_test作为主模型,gsz_child作为子模型。这两个模型中简单建立了几个字段作为例子的说明。
2.2 在元数据配置
因为主子模型配置属于model元数据,所以去设置->扩展管理→元数据管理中找到主模型.json文件,这里的是gsz_model_test.json。在元数据配置childrens属性。
childrens中的parent_id为子模型与主模型id关联的字段,这里为header_id.model为子模型的模型名。name为子模型在info界面显示的名称,比如图1中的任务。key为主子模型保存时,子模型中所有数据的key键,例如,下面主子模型保存时的代码,
这样,保存元数据之后,进入配置好的弹性模型界面,就可以看到子模型已经关联到了主模型当中。
这里建议配置的时候将主模型字段用groups属性进行分组。
2.3 主子模型的一些方法配置
主子模型当中,子模型支持导入导出方法的配置,
导入导出方法是SCOPE下的sub_import和sub_export,在list元数据中的actions属性中可以配置。
在项目的配置当中,有时候需要对新增删除等方法进行校验,这时候需要对新增等方法进行重写。在校验完成之后,需要调用SCOPE中的新增方法createListItem,删除方法removeListItem方法,这里需要注意的是调用这些方法时注意传入参数_list.
子模型list元数据中配置跳转可以用方法STATE.go(),用法与SCOPE.super_go()相同,方法的参数都是('场景',{参数1,参数2....})
例如:STATE.go('common_model_tree_list',{"model":xxx","tree_id":xxxx})
2.4子模型中获取数据
在主子模型当中,有时候根据业务功能的需要,要在子模型当中获取主模型的值,或者操作子模型获取子模型中某一行的值。
在list元数据配置中获取主模型字段的值可以通过SCOPE.model.parent_data.字段名的方式获取。
在info元数据中可以通过SCOPE.params.alter.字段名获取。
配置主子模型关联,需要在 主模型key.meta.info.json 界面配置关联信息
案列:主模型:integration_emp_subset 子模型:control_fields 配置信息需在:integration_emp_subset.meta.info.json 配置
代码块 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"fields": [{ #展示子模型列表配置
"key": "control_fields",#下方 childrens 配置的key的值
"sequence": 100,
"label": "管控字段",
"component": "hc-field-list",
"options": {
"singleLine": false,
"width": "col-12",
"max_row": 8,#最大行数 超过出现滚动条
"btn_show_max": 3
}
}],
"childrens": [{#主子模型关联关系
"parent_id": "parent_id",# 子模型存储主模型ID的字段key值
"model": "control_fields",# 子模型key值
"name": "管控字段集",#子模型名称
"key": "control_fields",#自定义key
"is_form": true,#开启新版
"state": "inside"#场景
}]
} |
...
以上,谢谢阅读。