更新时间:2024-08-20 GMT+08:00
分享

设置AstroZero标准页面下拉框组件属性

下拉框通过配置绑定选项内容,提供给用户进行下拉选择的操作,支持单选、多选、搜索,以及键盘快捷操作。

图1 下拉框组件

数据绑定

通过建立不同类型的视图模型,将各种数据源和组件的返回值或者属性值进行关联,实现动态数据效果。
  • 值绑定:值绑定类似vue中的v-model语法,组件上创建双向数据绑定。值绑定会根据组件类型,自动选取正确的方法来更新元素。同时,负责监视各类引起绑定数据变化的事件以更新数据。
    1. “数据绑定”中,单击“值(value)绑定”中的,进入选择模型页面。
    2. 单击“新增模型”,进入新增模型页面。
    3. 设置模型名称与来源,单击“下一步”。
      图2 定义模型

      AstroZero支持自定义、对象、服务和事件四类模型,每类模型都包含参数定义和方法定义。方法是在模型上定义的API,通常会在前台组件关联的事件脚本(例如页面加载事件、鼠标单击事件)中调用这些API,以实现某些功能。

      表1 模型来源说明

      分类

      模型说明

      模型参数的定义

      模型方法的定义

      API调用方法

      自定义

      开发者自行定义的模型。

      由开发者自定义,可以添加子节点。

      开发者自定义方法。

      $model.ref("modelName").actionName();

      对象

      由Object对象表映射生成,关于对象模型的详细介绍,请参见对象

      系统自动获取Object所有的字段,开发者可以从中选择部分字段作为参数。

      系统自动生成查询、保存、删除和统计四个方法。

      $model.ref("modelName").query(param);

      $model.ref("modelName").save();

      $model.ref("modelName").delete();

      $model.ref("modelName").count();

      服务

      服务模型由后台服务映射生成,当前支持与服务编排或脚本映射。关于服务模型的详细介绍,请参见服务编排脚本

      参数根据后台服务的入参、出参,映射生成为inputParam和outputParam节点。

      系统自动生成run方法 ,用于执行模型关联的服务编排或脚本。

      $model.ref("modelName").run();

      事件

      事件模型由后台事件的字段映射生成,并且支持websocket刷新模型数据。

      参数根据后台事件的字段映射生成。

      直接使用

      直接使用

      除了在模型中定义的方法,低代码平台还提供了如下标准API,适用于所有的模型。

      • 获取模型数据:$model.ref("modelName").getData();
      • 设置模型数据:$model.ref("modelName").setData();
      • 设置模型字段值:$model.ref("modelName").setValue(key,value);
    4. 在新建模型“设置”页面,执行如下操作。
      • 上一步来源选择“自定义”,需要添加子节点自定义参数及类型。
      • 上一步来源选择“对象”,需要配置模型关联的对象以及字段。
      • 上一步来源选择“服务”,需要配置模型关联的后台服务,可以是脚本、服务编排或者公共接口。
      • 上一步来源选择“事件”,需要配置模型关联的事件以及事件字段。
    5. 单击“下一步”,设置方法。

      方法一般无需添加,如需添加或修改,可参考对象和服务默认生成的方法。

    6. 设置完成后,单击“确定”。
  • 属性值绑定:将容器组件的某个属性,如隐藏、样式、弹性布局等与具体的模型字段相绑定,绑定后组件的属性随模型字段的值变化而变化,类似Vue的v-bind。
    1. “数据绑定”中,单击“属性值绑定”后的“+”
    2. “属性”下拉框中,选择容器的某个属性。
    3. 在模型字段中,单击,进入选择模型页面。
    4. 单击“新增模型”,进入新增模型页面。
    5. 设置模型名称与来源,单击“下一步”。
      AstroZero支持自定义、对象、服务和事件四类模型,每类模型都包含参数定义和方法定义。方法是在模型上定义的API,通常会在前台组件关联的事件脚本(例如页面加载事件、鼠标单击事件)中调用这些API,以实现某些功能。详细介绍,请参见表1
      图3 定义模型
    1. 在新建模型“设置”页面,执行如下操作。
      • 上一步来源选择“自定义”,需要添加子节点自定义参数及类型。
      • 上一步来源选择“对象”,需要配置模型关联的对象以及字段。
      • 上一步来源选择“服务”,需要配置模型关联的后台服务,可以是脚本、服务编排或者公共接口。
      • 上一步来源选择“事件”,需要配置模型关联的事件以及事件字段。
    2. 单击“下一步”,设置方法。

      方法一般无需添加,如需添加或修改,可参考对象和服务默认生成的方法。

    3. 设置完成后,单击“确定”。

基本属性

基本属性通过数据绑定后,在运行时以数据绑定的值为准。
  • 标签:下拉框的显示标签名称,只有下拉框放在表单form中才生效。
  • 占位符:下拉框未选择时,展示给用户的提示信息。
  • 选项:下拉框单击后,可选择的选项内容。如果“属性值绑定”中,设置了“选项”与模型字段绑定。预览页面时,优先以“属性值绑定”为准,显示选项内容。
    输入的数据必须为json格式,如:
    [{"value": "1","display": "男"},{"value": "0","display": "女"}]
  • 选项列表:单击,选择系统中配置的选项列表。选项和选项列表,只能配置其中一种。

    如果“属性值绑定”中,设置了“选项”与模型字段绑定。预览页面时,优先以“属性值绑定”为准,显示选项内容。

  • 选项值是否唯一:选项值是唯一标识,开启后提升渲染性能。
  • 是否多选:配置下拉框是否提供多选的能力。
  • 可清空:是否在选择下拉框,显示一个删除图标,来删除选择框的内容。
  • 弹层独立:选项值区域展示不全,部分内容隐藏时,开启后,可显示完整选项值。
  • 可过滤:下拉框是否提供过滤能力。
  • 远程搜索:是否根据输入的关键字,调用自定义的接口查询数据,和事件“on-remote-search”配合使用。
  • 是否初始加载:拉框是否初始加载。
  • AUI风格:启用后,下拉框的下拉图标风格会所有不同。
  • 最大宽度:组件的最大宽度。

表单校验

表单校验:当组件在表单中时,可对组件进行一些校验配置。当且仅当组件在表单中时,校验才生效。
  • 必填:是否设置为必须填入值。
  • 必填错误信息:在绑定了对象模型且下拉框放置于表单组件中,当设置必填时,输入值为空的情况下,提示的错误信息。
  • 自定义校验:是否进行自定义校验,打开后需要设置校验JS代码。当输入框在表单组件中,该设置才会生效。
  • 校验方法:输入JS代码定义校验规则,代码的返回值必须为布尔类型或者对象类型。
    • 布尔类型:返回为“false”表示未通过校验,即校验失败,如果需要配置错误提示信息,则直接设置界面上“校验错误信息”参数;返回值为“true”,表示通过校验。
    • 对象类型:返回为“{result:false, message:'对应错误提示信息'}”,表示未通过校验,message值为错误提示信息;返回为“{result:true}”,表示校验通过,一般不用带提示信息。

    示例如下:

    • 示例1:校验输入下拉框选项内容长度不能超过10个字符。
      return value.length <= 10

      其中,“value”变量为系统已定义好的,表示输入内容变量,可直接使用该变量。

    • 示例2:校验下拉框选项内容只能是大写的A-Z,或者小写的a-z。
      返回值类型为布尔:
      var reg = new RegExp("^[A-Za-z]+$");
      return reg.test(value);
      返回值类型为对象:
      var reg = new RegExp("^[A-Za-z]+$");
      if (reg.test(value)) {
       return true;
      } else {
        return {result: false, message:'内容不符合规则,只能是大写的A-Z,或者小写的a-z'};
      }
  • 校验错误信息:自定义校验失败时,提示的错误信息。

公共

  • 控件名称:当前组件的名称。
  • 隐藏:是否隐藏该组件,此方式为静态配置该组件的隐藏。还可以将该组件属性值“隐藏”配置为布尔类型模型字段,在自定义JS代码中来控制模型字段取值,从而设置该组件是否隐藏,这种动态设置优先级是最高的。
  • 禁用:是否禁用该组件。
  • 只读:值是否只读。

样式

样式 > 高级设置 > 样式类设置当前组件使用的CSS样式类名,可在CSS代码中进行引用。

相关文档