版本比较

标识

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

...

第一步:在导入按钮元数据配置的data中添加is_from_config:true,以使用个性化模板,若需要使用其他参数,参考上述标准按钮参数配置。

{
    "key": "common_import",
    "label": "标准导入按钮",
    "action": "COMMON_IMPORT",
    "data": {
        "is_from_config": true,
        "category": "可以不填,不填时默认取当前模型名。填的话想写啥就写啥,但是要记下来,下面要用。"
}

第二步:配置公司级模板

在扩展管理-公司级模板查询common_imp_setting.json

1)可以先过滤【是否全局模板】为否,直接可查询说明已新增过公司级模板

2)若查询不到,则切换过滤条件为是,再次查询,复制模板key后点击新增,将复制的key粘贴到新增的公司级模板key中,则会新增一个公司级非全局模板。公司级模板中一般会自动复制原全局模板已有参数内容,则只需要配置本次自定义模板参数,若新增公司级模板无参数内容,则需先将全局模板所有参数复制后,粘贴至公司级模板中,再配置本次自定义导入模板的参数。

Image Modified

第三步:在公司级模板中配置本次自定义模板参数,如

配置参数解析:(//双斜杠之后的是注释)

{
...
    "AttendLocation": {  // 冒号前面的东西,叫“映射名”或者“key”。按钮里的category没写的话,就用模型名,否则category写了啥就用啥。
        "name": "考勤点",  // 文件名
        "imp": "AttendLocation_import.json",  // 导入使用的个性化模板的公司级模板名(等会你要新建另一个公司级模板,名字就叫这个)
        "exp": "AttendLocation_import.json",  // 导出使用的个性化模板的公司级模板名(等会你要新建另一个公司级模板,名字就叫这个),导入导出可以用同一个。
        "role": "cm-org-emp"  // 下载模板所需的权限
    },
...
},

image-2024-2-27_15-31-16.png

第四步:根据上一步中配置的"imp"的公司级模板名,新建一个公司级模板。本例中是AttendLocation_import.json。

模板中配置的内容和释义:
个性化模板配置 

{
    "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路径。
    }]
}

...