环境变量占位符
系统内置了部分特殊功能的默认值,会在执行时动态解析为相应的值。环境变量占位符可以在表单字段默认值、搜索条件、页面跳转参数等场景中使用。
概述
环境变量占位符使用 {类型.键名} 的格式,在运行时自动解析为对应的值。如果对数据来源没有明确限定,则直接使用 Env 模式即可,系统会从所有可能来源尝试替换。
占位符类型
URL 参数占位符
| 占位符 | 说明 | 作用范围 |
|---|---|---|
{Url.xxkey} | 自动从 URL 的参数中提取值并填充 | 新增、编辑表单字段,搜索表单 |
示例:
URL 为 https://example.com/form?type=order&status=pending
| 占位符 | 解析结果 |
|---|---|
{Url.type} | order |
{Url.status} | pending |
当前数据占位符
| 占位符 | 说明 | 作用范围 |
|---|---|---|
{Model.xxkey} | 从当前操作的数据行中获取字段值(Value 属性) | 列表行编辑表单字段 |
{Model.xxkey.Text} | 从当前操作的数据行中获取字段显示值(Text 属性) | 列表行编辑表单字段 |
示例:
当前数据行的字段:
customerId= "12345"(Value)customerName= "张三"(Text)
| 占位符 | 解析结果 |
|---|---|
{Model.customerId} | 12345 |
{Model.customerName.Text} | 张三 |
父级数据占位符
| 占位符 | 说明 | 作用范围 |
|---|---|---|
{Parent.xxkey} | 从当前页面的来源数据中获取字段值(Value 属性) | 新增、编辑表单字段,搜索表单 |
{Parent.xxkey.Text} | 从当前页面的来源数据中获取字段显示值(Text 属性) | 新增、编辑表单字段,搜索表单 |
来源数据说明:
- 如推屏查看详情,则来源字段为点击推屏时的父级页面的列表行数据
- 跳转新页面不支持该定义
示例:
在列表页点击某行打开推屏详情,列表行数据:
orderId= "ORD001"orderAmount= "1000"
| 占位符 | 解析结果 |
|---|---|
{Parent.orderId} | ORD001 |
{Parent.orderAmount} | 1000 |
通用环境占位符
| 占位符 | 说明 | 作用范围 |
|---|---|---|
{Env.xxkey} | 从上述所有来源中依次尝试获取(应用首个匹配项) | 新增、编辑表单字段,搜索表单 |
注意
如果要明确从某个来源获取,请使用具体的占位符类型(如 {Url.xxkey}、{Model.xxkey}),不要使用 {Env.xxkey} 这种粗粒度方式。
系统内置占位符
数据相关
| 占位符 | 说明 | 作用范围 |
|---|---|---|
{Env.dataId} | 当前操作数据行的数据 ID 或 URL 上的 id 参数 | 详情页面 |
{Env.workflowDataId} | 当前操作数据行的审批数据 ID | 详情页面 |
用户相关
| 占位符 | 说明 | 作用范围 |
|---|---|---|
{Env.LoginUserId} | 当前登录用户 ID | 全部 |
时间相关
| 占位符 | 说明 | 作用范围 |
|---|---|---|
{Env.CurrentDateTime} | 当前时间(格式:yyyyMMddHHmmss) | 全部 |
系统相关
| 占位符 | 说明 | 作用范围 |
|---|---|---|
{Env.BaseHost} | 当前网站的域名地址 | 全部 |
使用场景
表单字段默认值
在表单字段配置中,可以为字段设置动态默认值:
| 场景 | 占位符配置 |
|---|---|
| 新建时自动填充当前用户 | {Env.LoginUserId} |
| 新建时自动填充当前时间 | {Env.CurrentDateTime} |
| 从 URL 参数获取默认值 | {Url.categoryId} |
| 从父级页面获取关联值 | {Parent.projectId} |
搜索条件默认值
在视图列表的搜索条件中设置默认值:
| 场景 | 占位符配置 |
|---|---|
| 默认搜索当前用户的数据 | {Env.LoginUserId} |
| 从 URL 获取筛选条件 | {Url.status} |
页面跳转参数
在页面跳转配置中传递参数:
| 场景 | 参数配置 |
|---|---|
| 跳转到详情页并传递 ID | id={Env.dataId} |
| 跳转到编辑页并传递数据 | dataId={Model._id} |
数据源筛选条件
在数据源组件的筛选条件中使用:
| 场景 | 筛选条件 |
|---|---|
| 只显示当前用户的数据 | createdBy = {Env.LoginUserId} |
| 只显示当前组织的数据 | organization = {Env.LoginUserOrganization} |
解析优先级
当使用 {Env.xxkey} 时,系统按以下顺序依次尝试解析:
- 系统内置变量:如
LoginUserId、CurrentDateTime等 - 当前数据:
{Model.xxkey} - 父级数据:
{Parent.xxkey} - URL 参数:
{Url.xxkey}
系统会应用首个 匹配项,如果所有来源都没有匹配到,则保留原始占位符文本。
最佳实践
明确数据来源
推荐使用具体的占位符类型,避免使用 {Env.xxkey}:
// 推荐:明确从 URL 获取
{Url.categoryId}
// 推荐:明确从当前数据获取
{Model.orderId}
// 不推荐:来源不明确
{Env.categoryId}
合理使用 Text 属性
根据业务需求选择 Value 或 Text:
| 场景 | 推荐使用 |
|---|---|
| 需要存储或传递 ID 值 | {Model.fieldId} |
| 需要展示给用户看 | {Model.fieldName.Text} |
注意作用范围
不同占位符有不同的作用范围,使用时需注意:
{Model.xxkey}仅在列表行编辑时可用{Parent.xxkey}仅在推屏场景可用,跳转新页面不可用{Env.dataId}仅在详情页面可用