版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

警告

平台主子模型功能升级,具体变动请移步-->主子模型升级 

平台在支持了主子模型之后,我通过项目中功能的实践了一下,熟悉和了解了弹性模型的一些相关的配置操作。主子模型配置属于Model元数据,子模型当中的一个字段与主模型的id进行关联,如图,info界面的显示为主模型中嵌套了一个子模型。与线下GS中的单据头单据体关系很类似。在Wiki的HCM Cloud 元数据规范中,李平老师在Model元数据中对主子模型进行讲解,大家可以去参考学习一下。Model元数据

Image Removed

2.主子模型配置

2.1 建立模型

 我在inspur3环境中建了一个主子模型的小demo。首先,建立两个弹性模型,这里我建立了gsz_model_test作为主模型,gsz_child作为子模型。这两个模型中简单建立了几个字段作为例子的说明。

Image Removed

Image Removed

2.2 在元数据配置

V2版弹性模型可以直接在info元数据中配置,需要注意的是,V2子模型除了要配置childrens之外,还有在fields中配置hc-field-list。元数据如下:

Image Removed

例如,下面主子模型保存时的代码,

Image Removed

这样,保存元数据之后,进入配置好的弹性模型界面,就可以看到子模型已经关联到了主模型当中。

Image Removed

这里建议配置的时候将主模型字段用groups属性进行分组。

Image Removed

2.3 主子模型的一些方法配置

主子模型当中,子模型支持导入导出方法的配置,

Image Removed

导入导出方法是SCOPE下的sub_import和sub_export,在list元数据中的actions属性中可以配置。

Image Removed

Image Removed

在项目的配置当中,有时候需要对新增删除等方法进行校验,这时候需要对新增等方法进行重写。在校验完成之后,需要调用SCOPE中的新增方法createListItem,删除方法removeListItem方法,这里需要注意的是调用这些方法时注意传入参数_list.

Image Removed

Image Removed

子模型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 配置


代码块
languagejson
themeRDark
linenumberstrue
{
 	"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"#场景
    }]
}

...




以上,谢谢阅读。