版本比较

标识

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

...

代码块
{
    "alias": "考勤点",  #【选填】备注
    "category": "AttendLocation",  #【必填】注意,这个要写要导入的模型名,即按钮中配置的category是什么。
    "import_class": "core.base.imp_exp.services_dynamic_model.CommonDynamicImport",  #【必填】标准导入配置,不需要改直接复制
    "export_class": "core.base.imp_exp.services_dynamic_model.CommonDynamicExport",  #【必填】标准导出配置。注意,和导入的不一样。
    "filters": [],
    "orders": [],
    "fields": [{  # 【必填】模板中展示的列
        "key": "address",  #【必填】
        "name": "名称",  #【必填】
        "width": 20,  #【选填】旧版列宽,要使用的话需要特别配置,否则控制不了。
        "excel_width": 10,  #【选填】新版列宽,配置了就可以直接控制列宽。
        "comment": "请输入考勤点名称",  #【选填】描述行
        "require": true  #【选填】是否必填
    }, {
        "key": "number",
        "name": "编号",
        "width": 20,
        "comment": "请输入考勤点编号",
        "require": true
    }, {
        "key": "province",
        "name": "省份",
        "width": 20,
        "comment": "\n关联型,请选择考勤点所在省份",
        "drop_down_filter": {
            "enabled": true
        },
        "require": true
    }, {
        "key": "city",
        "name": "市(区)",
        "width": 20,
        "comment": "\n关联型,请选择考勤点所在市(区)",
        "require": true
    }, {
        "key": "address_note",
        "name": "详细地址",
        "width": 20,
        "comment": "请输入考勤点详细地址",
        "require": true
    }, {
        "key": "depart_id",
        "name": "所属组织",
        "width": 20,
        "comment": "文本型,请输入考勤点所属组织",
        "require": true
    }, {
        "key": "area_type",
        "name": "区域类型",
        "width": 20,
        "comment": "参照型,选择考勤点区域类型"
    }, {
        "key": "radius",
        "name": "有效打卡距离(米)",
        "width": 20,
        "comment": "文本型,请输入考勤点有效打卡距离(米)",
        "require": true
    }, {
        "key": "location_usable",
        "name": "可用范围",
        "width": 20,
        "comment": "参照型,选择考勤点可用范围(适用于哪个组织)"
    }, {
        "key": "enabled",
        "name": "是否启用",
        "width": 20,
        "comment": "请输入该考勤点是否可用",
        "require": true
    }],
    "charge_role": [{  #【选填】用于校验权限。
        "field": "dept_id",   # 需要校验部门权限的字段
        "role": "cm-org-emp",  # 权限范围
        "type": "dept"  # 类型(部门校验)
    }, {
        "field": "employee",  # 需要校验人员权限的字段
        "role": "cm-org-emp",  # 权限范围
        "type": "emp"  # 类型(人员校验)
    }],
    "check_items": {  #【选填】
        "imp": [],
        "exp": []
    },
    "data_plugins":[{  #【选填】
        "key": "before_imp_data_xxx",  // 【必填】注: 作为before_imp_data的插件须以before_imp_data开头,after_imp_data的插件则以after_imp_data开头。
        "name": "",  // 【必填】云函数名
        "plugin_type": "standard"  // 【选填】不填时使用云函数。填写为standard时为使用标准代码,上面的name也应为对应class路径。
    }]
}

我们的导入模板很多时候都需要导入人员、组织这样的字段,此类字段需要通过编码+名称或XX+名称双维度去共同确认唯一,则我们导入模板参数中则需要配置parser

(a) parser介绍:

parser是校验器,目的是防止出现重名的问题导致导入了错误的数据。目前,只有关联了人员、部门、职位、树型/列表代码项等业务特殊字段可以使用parser。同时,parser需要和column_config配合使用。

(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。

(2)column_config只能和parser一起用,parser也要求相对应的column_config。

Image Added

(4) parser汇总(持续更新,欢迎补充):

注意:当字段为多选时,需要在下列parser前加“multi_”,如人员字段多选,其parser为"multi_emp_primary_key",column_config不用变更。多个数据以英文逗号(,)分隔,column_config的两列输入的数据需要前后一一对应(如下图)。

Image Added

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、子表导入

4、主子集导入

5、附件导入

二、导出


1、标准导出

...