版本比较

标识

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

...

(b) parser的一般使用方式:

parser配合column_config使用

...

代码块
{
    。。。
    "fields": [{

...


        "comment": "员工姓名",

...


        "width":

...

 20,

...


        "require": true,

...


        "name": "员工姓名",

...


        "key": "employee_id",

...


        "parser":"emp_primary_key",

...


        "column_config":[

...


                {

...


                    "name": "姓名",

...


                    "key": "name"

...


                },

...


                {

...


                    "name": "编号",

...


                    "key": "number"

...


                }]

...


         
    },

...


    。。。
}



(c)注意:

(1)column_config会产生多的列。比如,如果不配置column_config,那么模板中只会有一列“员工姓名”;配置了column_config后会根据column_config里的配置产生多的列,如“员工姓名_姓名”,“员工姓名_编号”。但是,这些产生的列并不会导入进模型里,只是作为字段的校验补充数据(这个例子中“姓名”和“编号”是作为“员工姓名”这一字段的补充数据),辅助校验而已,最终导入进去的是校验后的员工的ID。

...



column_config

(默认name和number)


时间范围选择器组件

time_range

start&end

如:

"column_config": [{
            "key": "start",
            "name": "开始日期"
        }, {
            "key": "end",
            "name": "结束日期"
        }]


树型代码项

common_tree_item

 

name&number

【不建议使用】这个parser是古早版本,不区分代码项类别。
树型/列表代码项

common_basic_item

name&number

【推荐使用】当树形和列表的number重复时,能够根据实际关联的模型区分
树型/列表代码项

common_basic_item_cache

name&number

【推荐使用】(测试中,预计发版时间2.10)性能较好,能够区分实际关联的代码项模型
Employee

emp_primary_key

name&identity_card;

name&number;

name&mobile;

...

人员主键字段任意组合

校验数据,转换为人员id存入模型
PreEmployee

pre_emp_primary_key

待入职人员主键字段任意组合
Department(包括OrgPosition、OrgPositionHistory、DepartmentHistory、OrgDepartment、OrgUnit、OrgDepartmentHistory、OrgUnitHistory

cached_department_number

 

name&number根据名称和编号,校验数据。编号原则上不能重复(部门、岗位等都不能)

org_primary_key

 

name&number

部门主键字段任意组合



combination_path

 

[
{
"name": "一级组织",
"key": "name01",
"require": false
},
{
"name": "二级组织",
"key": "name02"
},
{
"name": "三级组织",
"key": "name03"
},
{
"name": "四级组织",
"key": "name04"
},
{
"name": "五级组织",
"key": "name05"
},
{
"name": "六级组织",
"key": "name06"
},
{
"name": "七级组织",
"key": "name07"
},
{
"name": "八级组织",
"key": "name08"
},
{
"name": "九级组织",
"key": "name09"
},
{
"name": "十级组织",
"key": "name10"
}
]

根据组织路径进行校验

DepartmentHistory

org_history_primary_key

 

主键字段任意组合


JobType

job_type_primary_key

 

主键字段任意组合


Job

job_primary_key

 

主键字段任意组合


JobStep

job_step_primary_key

 



JobStepType

job_step_type_primary_key

 




3、子表导入

(1)标准导入

在当前列表场景配置按钮

代码块
{

...


    "default":

...

 false,

...


    "action": "SUB_IMPORT",

...


    "left":

...

 true,

...


    "data": {

...


     
    },

...


    "key": "sub_import",

...


    "label": "导入"

...


}


(2)个性化导入

第一步:配置按钮

代码块
{

...


    "default":

...

 false,

...


    "action": "SUB_IMPORT",

...


    "left":

...

 true,

...


    "data": {

...


    "is_from_config":true,

...


    "category":"子表模型名称"

...


    },

...


    "key": "sub_import",

...


    "label": "导入"

...


}



第二步:配置个性化模板

注意:一定要去改下面的信息,不改肯定导入有问题,不要不看不改又提bug!!!

...

除了配置imp_type外,还需要配置business_key_list。这个参数填写主集的业务主键或者具有唯一性的字段,配置了这个参数之后,导入时子集的数据才能查找到对应的主集数据,才能关联上对应的主集数据来进行导入。同时,这个参数里配置的字段会展示在子集的导入模板中,要求填写。

代码块
{

...


    "label": "主子集导入",

...


    "key": "common_import",

...


    "action": "BASE_IMPORT",

...


    "data": {

...


        "imp_type": "MULTI_IMPORT",

...

  # 导入类型【必填】。可选项有COMMON_IMPORT, SUB_IMPORT, MULTI_IMPROT。MULTI_IMPROT即为主子集导入。

...


        "business_key_list": [

...

  # 主集的字段【必填】。填写要求:1.具有唯一性;2.能通过填写的字段锁定到具体某一条主集数据。

...


            "number",

...


            "name"

...


         ],

...


        "extend_property": {

...

  # 额外参数【选填】。但是如果要写导入场景,state参数必须写在其内。
            "extra_property": {

...


                "state": ""

...

  # 主集的导入场景【选填】。
            }

...


        },

...


        "childs":[

...

  # 自定义要下载的子集模板【选填】。要求与base元数据中的childs写法一致。
         {

...


            "key": "IconSales",

...

  # 【必填】。
            "model": "IconSales",

...

  # 子集对应的模型【必填】。
            "label": "专辑销量",

...

  # 作为模板文件名【必填】。
            "parent_id": "icon_id",

...

  # 子集存储主集id的字段【必填】。
            "meta_state": ""

...

  # 子集的导入场景【选填】。
        },

...


        {

...


            "key": "xxx",

...


            "model": "xxx",

...


            "label": "xxx",

...


            "parent_id": "icon_id"

...


        },

...


        ]

...


    }

...


}



若要配置子集的导入场景,除了在按钮的data中指定childs外,还可以在base元数据中相应子集配置里增加meta_state参数。

...

其中,business_list的填写要求:1. 需是业务主键字段;2. 关联字段需在导入导出元数据中额外配置(见下文);3. 文件名需与business_list中的字段顺序一致。

代码块
{

...


    "label": "附件导入",

...


    "key": "common_import",

...


    "action": "BASE_IMPORT",

...


    "data": {

...


        "imp_type": "UPLOAD_FILES",

...

  # 导入类型【必填】。UPLOAD_FILES为附件导入。

...


        "model_index": "u_file",

...

  # 附件字段的key【必填】。       
        "business_list": [

...

  # 主集的字段【必填】。
            "employee_id",

...


            "dept_id"

...


         ],

...


 

...


        "split_str": "-",

...

  # 文件名分隔符【选填】。如为"-",则文件名为"0001-张三"。不填默认为"-"。

...


        "file_convert": true,

...

  # 是否覆盖原有附件【选填】。覆盖原来的已有附件,配置后每次导入都会将原来的全部覆盖掉。不填默认每次追加附件。
        "is_insert": true,

...

  # 是否新增不存在数据【选填】。在找不到与业务主键对应的数据时,新增一条数据,并将附件导入改条数据。
        "state": "xxxx",

...

  # 导入导出元数据场景【选填】。选择是哪一个场景的导入导出元数据,不填用当前场景。导入导出元数据新建方式请看下文。
        "tips": "xxxxx"

...

  # 上传附件提示语【选填】。
    }

...


 }



(2)元数据配置

上述例子中,business_list中配置了关联字段主键employee_id和dept_id,且这两个关联字段需要用id和名字一起确定一条数据(如:人员编号0001和人员名字张三,编号和名字一起确定是哪一个张三,否则容易出现重名),故需在模型的导入导出元数据中配置parser和column_config。注意:文件名需与column_config中的配置顺序一致!

...

注意,导入导出元数据除了下例中提到的配置,上文导入导出元数据配置规则中必填项也应填上。

代码块
{

...


"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、标准导出

背景:标准的导出文件不符合用户需求,需要配置个性化的导出模板

...

3、子表导出

(1) 标准导出

在子表当前列表场景配置按钮即可。

代码块
{

...


    "hide":

...

 false,

...


    "action": "SUB_EXPORT",

...


    "data": {

...


        "celery_mode":

...

 true
            },

...


    "key": "sub_export",

...


    "label": "导出"

...


}


子表导出暂时不支持个性化模版,另外子表导出数据一定是要表单提交后的数据,刚导入的数据,主表单未提交,是无法导出数据的。子表导出数据如果不是按照主表分类,直接在子表的list层配置导出按钮即可,不用在配置子表导出。

...

流程单据页面子表导出比较特殊,在单据结束状态的子表操作按钮默认为不可见状态,需要在子表元数据的子表导出按钮options中添加如下配置



4、主子集导出

(1)按钮配置

代码块
{

...


    "label": "主子集导出",

...


    "key": "common_export",

...


    "action": "BASE_EXPORT",

...


    "data": {

...


        "exp_type": "MULTI_EXPORT",

...

  # 导出类型【必填】。可选项有COMMON_EXPORT, SUB_EXPORT, MULTI_EXPROT。MULTI_EXPROT即为主子集导出。

...


 

...


        "category": "BaseModel",

...

  # 导出主集【选填】。默认为当前模型。
        "celery_mode": false,

...

  # 是否需要异步【选填】。默认否。开启的话可以看到导出过程。
        "message": "send",

...

  # 导出完成后是否发消息【选填】。默认"send",即会发消息。"no send" 即不发消息。

...


        "is_from_config": false,

...

  # 是否使用imp_exp导入导出元数据的配置【选填】。默认否。

...


        "export_class": "",

...

  # 主集的导出类【选填】。默认框架导出。
        "file_name": "",

...

  # zip文件名【选填】。
 
        "extend_property": {

...

  # 额外参数【选填】。但是如果要写导入场景,state参数必须写在其内。
            "extra_property": {

...


                "state": ""

...

  # 主集的导出场景【选填】。
            }

...


        },

...


        "childs":[

...

  # 自定义要导出的子集【选填】。要求与base元数据中的childs写法一致。
         {

...


            "key": "IconSales",

...

  # 【必填】。
            "model": "IconSales",

...

  # 子集对应的模型【必填】。
            "label": "专辑销量",

...

  # 导出文件名【必填】。
            "parent_id": "icon_id",

...

  # 子集存储主集id的字段【必填】。
            "meta_state": "",

...

  # 子集的导出场景【选填】。
            "file_name": "",

...

  # 导出文件名【选填】。 配置file_name则不使用label。

...


            "extend_property": {

...


                "filter_dict": {

...


                    "xxx": ""

...

  # 自定义过滤条件【选填】
                }

...


            }

...


     

...

   },

...


        {

...


            "key": "xxx",

...


            "model": "xxx",

...


            "label": "xxx",

...


            "parent_id": "icon_id"

...


        },

...


        ]

...


    }

...


}



(2) 其他配置

主集需要base元数据(与主子集导入一样)。可以不指定childs,但一定要有base

...