# 平台 CSV 导入模板及说明

关于 CSV 文件准备及导入的规则(文件名、查询字段、关联字段、(F) 文件列、DELETE_FLAG、OVERWRITE_FLAG 等),请参考 数据导入。

# 牧言低代码平台数据导入模板 适用版本: 1.0.0-beta18

提示

  • 以 ; 开头的行将被视为注释。下载的模板中只有标题行和注释,注释中的「示例」行形如 ;; 示例: [email protected],...,要导入时把开头的 ;; 示例: 整段删掉(只删 ;; 的话,示例: 会变成第一列值的一部分)。
  • 每个模板的标题行都已在 1.0.0-beta18 上实际导入验证过(验证的是标题行能被识别,数据行的已知问题见各节说明)。不需要的列可以删除,但 不能出现模型中不存在的列,否则整个文件导入失败。
  • 列名后缀 (*) 表示查询字段,.name 等表示按关联对象的字段查找,[:] 表示集合字段且用 : 分隔多个值,(F) 表示从文件读取内容。
  • 1.0 以前的 $ROOT_ORG$ 占位符、organization.name、enableRoles 等列 1.0 起已移除(组织模型已删除;权限改用 accessRequirement.name 等角色要求列)。

# 用户与权限

# User.csv

字段名 说明
username(*) 用户名(用于查找),建议使用电子邮件地址
password 初始密码,导入时加密保存到用户表;但 CSV 行原文(含明文密码)会保存在行导入成功记录中,DEVELOPER 可见,请只用临时密码并要求用户首次登录后修改
name 姓名
accountLocked 账号是否锁定
accountExpired 账号是否过期
passwordExpired 密码是否过期
avatar 头像图片文件路径(附件)
extInfo 扩展信息(JSON)
roles.name[:] 用户直接拥有的角色(引用 HierarchyRole.name)

下载 User.csv 模板

# Group.csv

字段名 说明
name(*) 用户组名称(用于查找)
roles.name[:] 用户组拥有的角色(引用 HierarchyRole.name)

下载 Group.csv 模板

# UserGroup.csv

字段名 说明
user.username(*) 用户名(用于查找,引用 User.username)
group.name(*) 组名(用于查找,引用 Group.name)

下载 UserGroup.csv 模板

# HierarchyRole.csv

字段名 说明
name(*) 角色名称(用于查找),一般以 ROLE_ 开头
implies.name[:] 该角色包含的其他角色(引用 HierarchyRole.name),可逐级继承

下载 HierarchyRole.csv 模板

平台内置 ROLE_USER、ROLE_DEVELOPER(包含 ROLE_USER)、ROLE_ADMIN(包含 ROLE_DEVELOPER)。

# RoleRequirement.csv

字段名 说明
name(*) 角色要求名称(用于查找)
hasPermissionRoles.name[:] 满足要求的角色列表(引用 HierarchyRole.name),拥有其中任一即可
customLogic.name 自定义判断逻辑(引用 DynamicLogic.name),设置后由该逻辑判断

下载 RoleRequirement.csv 模板

平台内置 USER、DEVELOPER、ADMIN 三个角色要求,分别对应 ROLE_USER、ROLE_DEVELOPER、ROLE_ADMIN。领域模型、表单、菜单、动作的权限列都引用角色要求的名称。

# 领域模型

# DomainClass.csv

字段名 说明
shortName(*) 领域模型短名称(用于查找);新建的都是动态模型
extInfo 扩展信息(JSON),见 动态领域模型
createRoleRequirement.name 新建权限(引用 RoleRequirement.name)
readRoleRequirement.name 查看权限(引用 RoleRequirement.name)
updateRoleRequirement.name 修改权限(引用 RoleRequirement.name)
deleteRoleRequirement.name 删除权限(引用 RoleRequirement.name)

下载 DomainClass.csv 模板

注意:权限列留空表示任何人都没有该项权限(包括管理员)。「开发定制 > 领域模型」页面不能新建模型,也不能编辑这四项权限,只能通过 CSV 设置。

# DomainClassField.csv

字段名 说明
domainClass.shortName(*) 模型名称(用于查找,引用 DomainClass.shortName)
name(*) 字段名(用于查找)
dataType 数据类型(参见附录 P),创建后不能修改
referenceDomain.shortName 关联模型(DOMAIN_OBJECT、DOMAIN_OBJECT_LIST 类型必填)
nullable 是否可为空
editable 是否可编辑
defaultValue 默认值
options 可选值,JSON 数组,例如 "[""VIP"",""普通客户""]"
extInfo 扩展信息(JSON)

下载 DomainClassField.csv 模板

注意:

  • 数据库列名由系统根据字段名自动生成,不需要填写。
  • 模型中还有 comment(备注)字段,1.0.0-beta18 中填写后该字段会创建失败,暂不要使用。

# DomainClassIndex.csv

字段名 说明
domainClass.shortName(*) 模型名称(用于查找,引用 DomainClass.shortName)
name(*) 索引名称(用于查找)
fields 索引包含的字段名,JSON 数组,例如 "[""code""]"
unique 是否唯一索引

下载 DomainClassIndex.csv 模板

用于为动态模型创建数据库索引。

1.0.0-beta18 已知问题

DomainClassIndex 本身是一个动态模型(在「开发定制 > 领域模型」中类型为 DYNAMIC),而当前版本向动态模型导入数据时每一行都会失败(ScopedValue not bound,见数据导入中的已知问题),所以这个模板的数据行目前无法导入成功。

# 动态逻辑

# DynamicLogicEngine.csv

字段名 说明
name(*) 动态逻辑引擎名称(用于查找)
description 描述
handlerClassName 处理器类名

下载 DynamicLogicEngine.csv 模板

注意:平台内置数据,除非您确切知道自己在做什么,否则请不要修改。

# DynamicLogicType.csv

字段名 说明
name(*) 动态逻辑类型名称(用于查找)
label 标签
description 描述
codeTemplate 代码模板

下载 DynamicLogicType.csv 模板

注意:平台内置数据,除非您确切知道自己在做什么,否则请不要修改。

# DynamicLogic.csv

字段名 说明
dynamicLogicEngine.name 动态逻辑引擎名称(引用 DynamicLogicEngine.name)
name(*) 动态逻辑名称(用于查找)
logicType.name 逻辑类型名称(引用 DynamicLogicType.name)
code(F) 源码文件路径,从种子数据根目录算起,一般以 groovy/ 开头
description 描述
isSystem 是否为系统逻辑
sourceFileName 源文件名(可选)
enableLog 是否记录执行日志
rateLimit 调用频率限制(可选)

下载 DynamicLogic.csv 模板

# DynamicObjectHook.csv

字段名 说明
objectType.shortName 对象类型短名称(引用 DomainClass.shortName)
name(*) 对象客制化名称(用于查找)
hookType 类型(参见附录 O)
coreLogic.name 核心逻辑名称(引用 DynamicLogic.name)
active 是否启用
isSystem 是否为系统对象客制化
description 描述

下载 DynamicObjectHook.csv 模板

# 表单与菜单

# DynamicFormType.csv

字段名 说明
name(*) 表单类型名称(参见附录 D)

下载 DynamicFormType.csv 模板

表单类型是平台内置数据,一般不需要导入。

# DynamicForm.csv

字段名 说明
name(*) 表单名称(用于查找),系统内唯一
label 显示名称
description 描述
objectType.shortName(*) 关联对象类型(引用 DomainClass.shortName)
type.name(*) 表单类型(引用 DynamicFormType.name,参见附录 D)
formHook.name 表单 Hook(引用 DynamicLogic.name)
formHookTriggerFields 触发表单 Hook 的字段
dataHook.name 数据 Hook(引用 DynamicLogic.name)
extInfo 扩展信息(JSON)
accessRequirement.name 访问权限(引用 RoleRequirement.name)

下载 DynamicForm.csv 模板

注意:没有设置 accessRequirement 的表单无法打开。「开发配置 > 表单 > 表单」的界面上没有这一项,只能通过 CSV 设置。表单 Hook 与数据 Hook 见 表单客制化。

# DynamicFormGroup.csv

字段名 说明
displaySequence 显示顺序
name(*) 字段组名称(用于查找)
label 显示名称
icon 图标
form.name(*) 表单名称(用于查找,引用 DynamicForm.name)
helpText 帮助文本

下载 DynamicFormGroup.csv 模板

# DynamicFormField.csv

字段名 说明
form.name(*) 表单名称(用于查找,引用 DynamicForm.name)
fieldName(*) 字段名称(用于查找)
displaySequence 显示顺序
label 显示名称
helpText 帮助文本
fieldType 字段类型(参见附录 E)
nullable 是否可为空
group.name 所属字段组(引用 DynamicFormGroup.name)
extInfo 扩展信息(JSON)
displayType 显示控件(参见附录 F)
editable 是否可编辑
decides 该字段变化时需要联动刷新的字段,多个字段名用逗号分隔(CSV 中整格要加双引号,例如 "customer,amount");@ALL@ 在 1.0.0-beta18 中不生效

下载 DynamicFormField.csv 模板

注意:表单只要定义了任意一个表单字段,就只显示已定义的字段。

# DynamicMenu.csv

字段名 说明
parent.name 上级菜单名称(引用 DynamicMenu.name)
label 显示名称
icon 图标
link 链接地址(内部链接、外部链接类型使用)
type 类型(参见附录 C)
displaySequence 显示顺序
name(*) 菜单名称(用于查找)
form.name 关联表单(引用 DynamicForm.name,FORM 类型使用)
accessRequirement.name 访问权限(引用 RoleRequirement.name)

下载 DynamicMenu.csv 模板

注意:MENU_GROUP 类型的菜单没有设置访问权限时对所有人隐藏;FORM 类型的菜单没有设置访问权限时,按关联表单的访问权限显示。

# 对象动作

# DynamicActionGroup.csv

字段名 说明
name(*) 动作组名称(用于查找)
label 显示名称
icon 图标
helpText 帮助文本
displaySequence 显示顺序

下载 DynamicActionGroup.csv 模板

# DynamicAction.csv

字段名 说明
name(*) 动作名称(用于查找)
mode 模式(参见附录 A)
form.name 参数表单(引用 DynamicForm.name,类型一般为 ACTION)
confirmMessage 执行前的确认消息
coreLogic.name 核心逻辑名称(引用 DynamicLogic.name)
enableLogic.name 启用逻辑名称(引用 DynamicLogic.name)
label 显示名称
icon 图标
helpText 帮助文本
enableAsync 是否异步执行
isSystem 是否为系统动作
extInfo 扩展信息(JSON)
active 是否启用
accessRequirement.name 执行权限(引用 RoleRequirement.name)

下载 DynamicAction.csv 模板

# DynamicActionDynamicForm.csv

字段名 说明
action.name(*) 动作名称(用于查找,引用 DynamicAction.name)
form.name(*) 表单名称(用于查找,引用 DynamicForm.name)
displaySequence 显示顺序
group.name 动作组(引用 DynamicActionGroup.name)

下载 DynamicActionDynamicForm.csv 模板

动作要绑定到表单上才会在界面中显示。1.0 以前按领域模型绑定的 DynamicActionDomainClass 1.0 起已移除(改为按表单绑定的 DynamicActionDynamicForm)。

# 仪表盘与过滤器

# DynamicDashboardWidget.csv

字段名 说明
name(*) 小组件名称(用于查找)
label 显示名称
displaySequence 显示顺序
description 描述
form.name 所属仪表盘(引用 DynamicForm.name,类型为 DASHBOARD)
enableLogic.name 启用逻辑名称(引用 DynamicLogic.name)
coreLogic.name 核心逻辑名称(引用 DynamicLogic.name)
type 类型(参见附录 G)
options 选项(JSON)
refreshInterval 自动刷新间隔,1.0.0-beta18 的前端没有读取该字段,填写后不生效

下载 DynamicDashboardWidget.csv 模板

# DynamicFilter.csv

字段名 说明
name(*) 过滤器名称(用于查找)
label 显示名称
displaySequence 显示顺序
conditions 过滤条件(JSON)
objectType.shortName 对象类型短名称(引用 DomainClass.shortName)
isDefault 是否默认
description 描述
icon 图标
isSystem 是否为系统过滤器

下载 DynamicFilter.csv 模板

# 系统配置与显示主题

# DynamicConfig.csv / DynamicConfig_withFile.csv

字段名 说明
name 名称
key(*) 键(用于查找)
value / value(F) 值 / 值(从文件读取)
parent.key 父级键(引用 DynamicConfig.key)
description 描述
modifyRemark 修改备注
displaySequence 显示顺序
allowPublicAccess 是否允许未登录访问
icon 图标
isSystem 是否为系统配置

下载 DynamicConfig.csv 模板 下载 DynamicConfig_withFile.csv 模板

注意:两个文件导入到同一个模型。DynamicConfig_withFile.csv 中的 value(F) 列是文件路径,系统从该文件读取配置值,路径从种子数据根目录算起。

# DynamicTheme.csv

字段名 说明
name(*) 主题名称(用于查找)
description 描述
css(F) 自定义 CSS 文件
active 是否激活
title 标题
squareLogo 方形徽标(附件文件路径)
favicon 网站图标(附件文件路径)
backgroundImage 背景图片(附件文件路径)
logo 徽标(附件文件路径)
themeSettings(F) 主题设置 JSON 文件
ssoEnableLogic 单点登录启用逻辑
landingPage.name 登录后的首页(引用 DynamicForm.name)

下载 DynamicTheme.csv 模板

注意:css(F)、themeSettings(F) 及各图片列中的文件路径从种子数据根目录算起。

# 定时任务与系统集成

# DynamicTask.csv

字段名 说明
name(*) 任务名称(用于查找)
helpText 说明
coreLogic.name 核心逻辑名称(引用 DynamicLogic.name)
active 是否启用
startDate 生效时间
expiryDate 失效时间
cronExpression Cron 表达式(CRON_TASK 使用)
dynamicTaskType 任务类型(参见附录 Q)
parameters 任务参数(JSON)
scheduleDate 执行时间(SCHEDULE_TASK 使用)
isSystem 是否为系统任务

下载 DynamicTask.csv 模板

详见 定时任务。

# DynamicService.csv

字段名 说明
name(*) 服务名称(用于查找),也是调用地址的一部分
active 是否启用
logic.name 核心逻辑名称(引用 DynamicLogic.name)
enableAnonymous 是否允许未登录调用
enableLog 是否记录调用日志
bodyType 请求体类型(参见附录 R)

下载 DynamicService.csv 模板

注意:enableAnonymous 为 Y 时无需登录即可调用该服务,1.0.0-beta18 修复了与该开关相关的安全问题,详见 动态服务。

# DynamicWebhook.csv

字段名 说明
name(*) Webhook 名称(用于查找)
description 描述
httpMethod HTTP 方法(参见附录 M)
url 调用地址,新建时由系统生成,一般留空
active 是否启用
coreLogic.name 核心逻辑名称(引用 DynamicLogic.name)
effectiveDate 生效时间
expiryDate 失效时间

下载 DynamicWebhook.csv 模板

1.0 以前的 DynamicIntegration、DynamicIntegrationDomainClass 1.0 起已移除(接收外部调用改用 Webhook 或动态服务)。

# 国际化

# I18nType.csv

字段名 说明
name(*) 翻译命名空间名称(用于查找)
description 描述

下载 I18nType.csv 模板

# I18n.csv

字段名 说明
type.name(*) 翻译命名空间(用于查找,引用 I18nType.name)
lang(*) 语言(用于查找),CHINESE 或 ENGLISH
entries(F) 翻译内容 JSON 文件路径
OVERWRITE_FLAG 是否强制覆盖界面上的修改

下载 I18n.csv 模板

# 平台与插件

# AppVersion.csv

字段名 说明
versionNumber(*) 版本号(用于查找)
codeName 版本代号
releaseNote(F) 发布说明文件
goLiveDate 上线时间

下载 AppVersion.csv 模板

# DynamicPlugin.csv

字段名 说明
name(*) 插件名称(用于查找)
pluginVersion(*) 插件版本(用于查找)
description 描述
storageFile 插件包文件(附件)
enabled 是否启用
dependsOnPlugins 依赖的插件(JSON)
isSystem 是否为系统插件
OVERWRITE_FLAG 是否强制覆盖

下载 DynamicPlugin.csv 模板

注意:插件一般通过插件包导入(见 数据导入 中的「插件数据导入」),不需要手工编写本文件。

# Tenant.csv

字段名 说明
name(*) 租户标识(用于查找)

下载 Tenant.csv 模板

注意:Tenant.csv 放在种子数据根目录下(不是 csv 子目录),只在没有通过系统属性 gorm.tenantId(docker 镜像中为环境变量 TENANT_ID)指定租户时使用。

# 已移除的模板

以下模型 1.0 起已移除,本页不再提供说明,站点上残留的同名旧模板也不要再使用:Organization、Role、GroupRole、RequestMap、DynamicPrompt、DynamicFormWizardStep、DynamicActionDomainClass、DynamicFieldDefinition、DynamicFieldInstance、DynamicFieldHook、DynamicIntegration、DynamicIntegrationDomainClass(替代方案:角色用 HierarchyRole,权限用 RoleRequirement,动作按表单绑定用 DynamicActionDynamicForm,字段级定制用表单 Hook,外部集成用 Webhook 或动态服务)。

# 附录:枚举值定义

# 附录A: DynamicAction.mode

  • OBJECT_SINGLE: 作用于单个对象
  • OBJECT_MULTIPLE: 作用于多个对象
  • CLASS_LEVEL: 不作用于特定对象,显示在对象列表页面

# 附录C: DynamicMenu.type

  • MENU_GROUP: 菜单组
  • EXTERNAL_LINK: 外部链接
  • INTERNAL_LINK: 内部链接
  • FORM: 表单

# 附录D: DynamicForm.type

平台内置了以下表单类型(DynamicFormType):

LIST、CREATE、UPDATE、DELETE、FINDER、WIZARD、DASHBOARD、MASTER_DETAIL_LIST、TREE_LIST、INLINE_FULL_TEXT_SEARCH_LIST、FULL_TEXT_SEARCH_LIST、INLINE_DISPLAY、RELATED_DETAIL_LIST、INLINE_EDITABLE_DISPLAY、CARD_LIST、GANTT、GANTT_TOOLTIP、SUB_TABLE、DYNAMIC_FRAME、AMIS、DEFAULT、DOMAIN、ACTION、IFRAME

其中当前前端有独立页面渲染器、可以作为菜单入口打开的是:

类型 说明
LIST 表格列表
CREATE 新建
UPDATE 编辑、查看
DOMAIN 对象表单
DEFAULT 默认表单
MASTER_DETAIL_LIST 主从列表
TREE_LIST 树形列表
FINDER 查找器
DASHBOARD 仪表盘
ACTION 动作参数表单
AMIS AMIS 表单
IFRAME 内嵌页面

其余类型(如 GANTT、CARD_LIST、WIZARD)在当前前端没有对应的页面渲染器。

# 附录E: DynamicFormField.fieldType

  • STATIC_FIELD: 模型中的字段
  • TRANSIENT_FIELD: 临时字段,不对应模型字段,一般用于动作参数表单

1.0 以前的 DYNAMIC_FIELD 1.0 起已移除。

# 附录F: displayType

DynamicFormField.displayType 是小写的控件名称,当前前端支持以下取值:

array、authentication、boolean、code、currency、date、dateRange、datetime、decimal、enum、file、fileList、functionEditor、genericObject、genericObjects、httpMethod、icon、id、image、int、integer、json、lineChart、link、long、markdown、object、objects、password、percentage、popOverSteps、progress、relativeSubTable、roles、stacktrace、string、subTable、tableChart、text、treeSelect、valueSelect、video、zonedDatetime

填写其他值时,界面上显示 Unsupported displayType: xxx。1.0 以前的大写 DisplayComponentType 枚举(如 TEXT_AREA、CURRENCY)1.0 起已移除。各控件的说明见 基础表单。

# 附录G: DynamicDashboardWidget.type

  • MARKDOWN: Markdown 内容
  • HTML: HTML 内容
  • PIE_CHART: 饼图
  • LINE_CHART: 线图
  • COLUMN_CHART: 柱状图
  • GAUGE_CHART: 仪表图
  • LIQUID_CHART: 水波图
  • DATA_TABLE: 数据表格
  • AREA_CHART: 面积图
  • BAR_CHART: 条形图
  • BULLET_CHART: 子弹图
  • PROGRESS_CHART: 进度图
  • RING_PROGRESS_CHART: 环形进度图
  • TINY_AREA_CHART: 迷你面积图
  • TINY_LINE_CHART: 迷你线图
  • TINY_COLUMN_CHART: 迷你柱状图
  • BI_DIRECTION_BAR: 双向条形图
  • STATISTIC: 统计数据
  • COUNTDOWN: 倒计时
  • HISTOGRAM: 直方图

# 附录M: httpMethod

  • GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE

# 附录O: DynamicObjectHook.hookType

  • CREATE: 是否可创建
  • UPDATE_DELETE: 是否可更新/删除 不生效
  • BEFORE_CREATE: 创建前
  • BEFORE_DELETE: 删除前
  • BEFORE_UPDATE: 更新前
  • AFTER_CREATE: 创建后
  • AFTER_DELETE: 删除后
  • AFTER_UPDATE: 更新后

注意:UPDATE_DELETE 仍可导入,但当前版本没有任何代码执行这类对象客制化,对象能否修改、删除只由领域模型的 updateRoleRequirement、deleteRoleRequirement 决定。

# 附录P: DomainClassField.dataType

  • STRING: 字符串
  • BOOLEAN: 布尔值
  • BIG_DECIMAL: 高精度小数
  • INTEGER: 整数
  • LONG: 长整数
  • DOUBLE: 双精度浮点数
  • LOCAL_DATE: 日期
  • ZONED_DATETIME: 带时区的日期时间
  • OFFSET_DATETIME: 带时区偏移的日期时间
  • JSON_STRING: JSON 字符串
  • DOMAIN_OBJECT: 关联单个对象
  • DOMAIN_OBJECT_LIST: 关联多个对象(一对多)
  • ENUM: 枚举
  • ENUM_LIST: 枚举列表
  • FILE: 单个附件
  • FILE_LIST: 多个附件
  • MAPPED_DOMAIN_OBJECT: 映射的关联对象
  • MAPPED_DOMAIN_OBJECT_COLLECTION: 映射的关联对象集合
  • GENERIC_OBJECT: 任意类型的单个对象
  • GENERIC_OBJECTS: 任意类型的多个对象

# 附录Q: DynamicTask.dynamicTaskType

  • CRON_TASK: 按 Cron 表达式周期执行
  • SCHEDULE_TASK: 在指定时间执行一次

# 附录R: DynamicService.bodyType

  • JSON
  • XML
  • INPUT_STREAM
Last Updated: 2026/9/24 14:27:35