客户端动作ClientAction
大约 4 分钟
客户端动作ClientAction
动作注解属性
@UxClientButton
@UxClientButton(
action = @UxAction(name = "", label = "", contextType = ActionContextTypeEnum.SINGLE, bindingType = ViewTypeEnum.FORM),
value = @UxClient(value = "")
)
这段代码定义了一个名为 UxClientButton
的注解,它具有以下属性:
action
: 用于定义动作的基本配置,返回基本配置对象。value
: 用于定义客户端动作的配置,返回客户端动作配置对象。
作用范围:类型(Type)。
@UxAction
@UxAction(name = "",displayName = "",label = "",summary = "",contextType = ActionContextTypeEnum.SINGLE,bindingType = ViewTypeEnum.TABLE,invisible = "",rule = "",disable = "",bindingView = "",priority = 00,props = {})
这段代码定义了一个名为 UxAction
的注解,用于配置动作的基本信息。它具有以下属性:
name
: 定义动作的名称。displayName
: 用于指定动作的展示名称,默认为空字符串。label
: 用于指定动作的显示文字,默认为空字符串。summary
: 提供动作的描述信息,默认为空字符串。contextType
: 指定动作的上下文类型,默认为单个对象的上下文。bindingType
: 表示动作绑定在源模型的哪些视图上,默认为 TABLE 视图。invisible
: 定义客户端显隐表达式,默认为空字符串。rule
: 定义服务端过滤表达式,默认为空字符串。disable
: 定义禁用规则,默认为空字符串。bindingView
: 绑定视图名称,设置动作只出现在指定视图,默认为空字符串。priority
: 定义动作的优先级,默认为 99。props
: 扩展属性,用于定义动作的额外属性,默认为空数组。
该注解的作用范围为局部变量(Local Variable)。
@UxClient
@UxClient(value = "",fun = "",model = "",compute = "",mapping = {},context = {})
这段代码定义了一个名为 UxClient
的注解,用于配置链接动作的信息。它具有以下属性:
value
: 客户端函数编码,用于定义链接动作的具体行为,默认为空字符串。fun
: 客户端函数编码的别名,与value
含义相同,默认为空字符串。model
: 链接计算函数模型,用于指定链接动作的计算函数模型,默认为空字符串。compute
: 计算函数编码,用于定义链接动作的计算函数,默认为空字符串。mapping
: 数据传输映射DSL,用于定义链接动作的数据传输映射关系,默认为空数组。context
: 上下文配置,用于定义链接动作的上下文属性,默认为空数组。
该注解的作用范围为类(Type)。
基础客户端动作(举例)
给批量修改店铺状态弹出页面增加两个按钮:【自定义返回】和【自定义关闭】。这两个按钮的contextType应配置为“ActionContextTypeEnum.SINGLE”,因为Form默认只展示contextType为SINGLE的Action。 按照以下方式配置这两个按钮:
- 自定义返回按钮的Action的contextType设置为
ActionContextTypeEnum.SINGLE
。 - 自定义关闭按钮的Action的contextType也设置为
ActionContextTypeEnum.SINGLE
。
在PetShopBatchUpdateAction增加@UxClientButton注解
@Model.model(PetShopBatchUpdate.MODEL_MODEL)
@UxClientButton(action = @UxAction(name = "demo_back_test", label = "自定义返回", contextType = ActionContextTypeEnum.SINGLE, bindingType = ViewTypeEnum.FORM), value = @UxClient(value = "$$internal_GotoListTableRouter"))
@UxClientButton(action = @UxAction(name = "demo_close_test", label = "自定义关闭", contextType = ActionContextTypeEnum.SINGLE, bindingType = ViewTypeEnum.FORM), value = @UxClient(value = "$$internal_DialogCancel"))
@Component
public class PetShopBatchUpdateAction {
}
前端动作之组合动作(举例)
通过自定义视图的模板,我们可以设置组合动作按钮,以批量修改店铺状态弹出页面为例。这个按钮称为“组合动作”,它可以执行诸如表单校验、提交、关闭并刷新主视图等行为动作。
自定义弹出框View
- 在路径
views/demo_core/template
下添加一个名为pet_shop_batch_update_form.xml
的文件。 - 通过数据库查看默认页面定义,定位到
base_view
表,设置过滤条件为model ='demo.PetShopBatchUpdate'
,这样我们就能看到该模型下所有对应的视图。这些视图是系统根据该模型的 ViewAction 自动生成的默认视图。找到类型为【表单(type = FORM)】的记录,查看template
字段,将其内容复制到pet_shop_batch_update_form.xml
文件中。 - 将
pet_shop_batch_update_form.xml
文件中的【<template slot="actions" autoFill="true"/>】
替换为以下内容。
<template slot="actions" >
<action actionType="composition" label="组合动作">
<action actionType="client" name="$$internal_ValidateForm" />
<action name="conform" />
<action actionType="client" name="$$internal_GotoListTableRouter" />
</action>
</template>
平台默认前端动作:
<action name="$$internal_GotoListImportDialog" label="导入" />
name | 适用场景 | 功能描述 | 元数据定义名 |
---|---|---|---|
$$internal_GotoListTableRouter | 通用 | 返回上一个页面 | internalGotoListTableRouter |
$$internal_DeleteOne | 关系字段表格 | 删除绑定的表格的选中数据 | internalDeleteOne |
$$internal_DialogCancel | 弹窗 | 关闭当前弹窗 | |
$$internal_ReloadData | 弹窗 | 刷新当前主视图组件 | |
$$internal_ListInsertOneAndCloseDialog | 通用 | 打开一个创建弹窗 | |
$$internal_GotoM2MListDialog | 多对多关系 表格 | 打开M2M表格的创建弹窗 | |
$$internal_GotoO2MCreateDialog | 一对多关系 表格 | 打开O2M表格的创建弹窗 | |
$$internal_GotoO2MEditDialog | 一对多关系 表格 | 打开O2M表格的编辑弹窗 | |
$$internal_ListInsertOneAndBackToList | 表单 | 校验表单数据,提交到后端,返回表格(新建) | |
$$internal_ListUpdateOneAndBackToList | 表单 | 校验表单数据,提交到后端,返回表格(更新) | |
$$internal_ValidateForm | 表单 | 校验当前表单 | |
$$internal_GotoListExportDialog | 一般用于表格 | 数据导出的action | internal_GotoListImportDialog |
$$internal_GotoListImportDialog | 一般用于表格 | 数据导入的action | internalGotoListImportDialog |