跳至主要內容

客户端动作ClientAction

Mr.Hope大约 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

  1. 在路径 views/demo_core/template 下添加一个名为 pet_shop_batch_update_form.xml 的文件。
  2. 通过数据库查看默认页面定义,定位到 base_view 表,设置过滤条件为 model ='demo.PetShopBatchUpdate',这样我们就能看到该模型下所有对应的视图。这些视图是系统根据该模型的 ViewAction 自动生成的默认视图。找到类型为【表单(type = FORM)】的记录,查看 template 字段,将其内容复制到 pet_shop_batch_update_form.xml 文件中。
  3. 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一般用于表格数据导出的actioninternal_GotoListImportDialog
$$internal_GotoListImportDialog一般用于表格数据导入的actioninternalGotoListImportDialog