...
export_class配置为:core.base.imp_exp.services_dynamic_model.CommonDynamicExport
4、主子集导入
1.配置按钮
除了配置imp_type外,还需要配置business_key_list。这个参数填写主集的业务主键或者具有唯一性的字段,配置了这个参数之后,导入时子集的数据才能查找到对应的主集数据,才能关联上对应的主集数据来进行导入。同时,这个参数里配置的字段会展示在子集的导入模板中,要求填写。
{
"label" : "主子集导入" ,
"key" : "common_import" ,
"action" : "BASE_IMPORT" ,
"data" : {
"imp_type" : "MULTI_IMPORT" ,
"business_key_list" : [
"number" ,
"name"
],
"extend_property" : {
"extra_property" : {
"state" : ""
}
},
"childs" :[
{
"key" : "IconSales" ,
"model" : "IconSales" ,
"label" : "专辑销量" ,
"parent_id" : "icon_id" ,
"meta_state" : ""
},
{
"key" : "xxx" ,
"model" : "xxx" ,
"label" : "xxx" ,
"parent_id" : "icon_id"
},
]
}
}
|
若要配置子集的导入场景,除了在按钮的data中指定childs外,还可以在base元数据中相应子集配置里增加meta_state参数。
Image Modified
2. 导入导出元数据配置
主模型的导入导出元数据与框架标准导入的配置方式一致,子模型的import_class有所区别。子模型的import_class应配置为:"core.base.imp_exp.services_dynamic_model.CommonMultiImport"
Image Modified
3.注意
请勿修改下载下来的主子集导入模板的文件名名称,文件名是系统用于判断属于哪一个模型的重要依据
5、附件导入
1.配置按钮
其中,business_list的填写要求:1. 需是业务主键字段;2. 关联字段需在导入导出元数据中额外配置(见下文);3. 文件名需与business_list中的字段顺序一致。
{
"label" : "附件导入" ,
"key" : "common_import" ,
"action" : "BASE_IMPORT" ,
"data" : {
"imp_type" : "UPLOAD_FILES" ,
"model_index" : "u_file" ,
"business_list" : [
"employee_id" ,
"dept_id"
],
"split_str" : "-" ,
"file_convert" : true,
"is_insert" : true,
"state" : "xxxx" ,
"tips" : "xxxxx"
}
}
|
2.元数据配置
上述例子中,business_list中配置了关联字段主键employee_id和dept_id,且这两个关联字段需要用id和名字一起确定一条数据(如:人员编号0001和人员名字张三,编号和名字一起确定是哪一个张三,否则容易出现重名),故需在模型的导入导出元数据中配置parser和column_config。注意:文件名需与column_config中的配置顺序一致!
导入导出元数据在对象管理器中找到,如下图:
Image Modified
parser和column_config与框架导入的个性化模板配置方式一致。具体配置如下:(文件名命名为:“人员编号-人员姓名-部门编号-部门名称”,人员和部门的顺序由按钮中business_list决定,但是编号和名称的顺序由column_config决定,若column_config中名称在前、编号在后,则文件名为"xx名称-xx编号")。
注意,导入导出元数据除了下例中提到的配置,上文导入导出元数据配置规则中必填项也应填上。
{
"fields" :[
...,
{
"name" : "employee_id" ,
"key" : "employee_id" ,
"parser" : "emp_primary_key" ,
"column_config" : [
{
"name" : "编号" ,
"key" : "number"
},
{
"name" : "姓名" ,
"key" : "name"
}
]
},
{
"name" : "所属组织" ,
"key" : "dept_id" ,
"parser" : "department_number" ,
"column_config" : [
{
"name" : "编号" ,
"key" : "number"
},
{
"name" : "名称" ,
"key" : "name"
}
]
},
...
}
|
二、导出
1、标准导出
背景:标准的导出文件不符合用户需求,需要配置个性化的导出模板
...
流程单据页面子表导出比较特殊,在单据结束状态的子表操作按钮默认为不可见状态,需要在子表元数据的子表导出按钮options中添加如下配置

4、主子集导出
(1)按钮配置
{
"label" : "主子集导出" ,
"key" : "common_export" ,
"action" : "BASE_EXPORT" ,
"data" : {
"exp_type" : "MULTI_EXPORT" ,
"category" : "BaseModel" ,
"celery_mode" : false,
"message" : "send" ,
"is_from_config" : false,
"export_class" : "",
"file_name" : "",
"extend_property" : {
"extra_property" : {
"state" : ""
}
},
"childs" :[
{
"key" : "IconSales" ,
"model" : "IconSales" ,
"label" : "专辑销量" ,
"parent_id" : "icon_id" ,
"meta_state" : "",
"file_name" : "",
"extend_property" : {
"filter_dict" : {
"xxx" : ""
}
}
},
{
"key" : "xxx" ,
"model" : "xxx" ,
"label" : "xxx" ,
"parent_id" : "icon_id"
},
]
}
}
|
(2) 其他配置
主集需要base元数据(与主子集导入一样)。可以不指定childs,但一定要有base
Image Modified
5、附件导出
(1)按钮配置
最终导出.zip文件将会发送到消息中,如果导出的最终压缩包数超过5个,那么会以每五个压缩包发一条消息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | {
"key" : "export_files" , # 按钮的属性完全符合元数据配置,params 是自定义部分
"label" : "批量导出" ,
"action" : "EXPORT_FILES" , #前端对应的函数名,固定
"left" : true ,
"params" : {
"model" : "ImpTest" , # 附件所存在的模型名
"template_name" : "批量附件导出.zip" # 附件导出包名字,自定义,不传使用系统默认的
"file_index" : "file_index" , #附件对应的字段,当前模型为ImpTest 1 的附件字段就是file_index
"datetime" : "%Y-%m-%d" , #时间格式,文件名需要加入时间时才传入,不需要可以不传,默认是到秒
"business_list" : [ "emp_id" , "emp_name" , "datetime" , "from.name" ] , # 文件名以列表顺序拼接,可以不是业务主键。注意datetime 不是业务主键 ,from.name 支持关来你的字段作为附件重命名内容,不存在数据则默认 "空"
"page_size" : 40 ,
"page_index" : 1 ,
"file_page_size" : 500 , #默认导出的压缩包内文件是 500 ,总文件超过 500 个,分成(总数/ 500 )个压缩包,发一条消息
"is_img" : false # 默认是 false ,如果导出的是图片并且是人员头像,设置为 true ,
"filter_dict" : {...} # 如果不希望用当前页面的过滤条件,可以传入。
}
}
|