
# 设置华为云Astro轻应用标准页面表格组件属性
表格是一个组合组件，与模型绑定之后，可以提供快速构建基本表单能力，包括查询、保存、重置能力。同时，支持用户根据实际业务需求，进行二次修改编排。
图1表格组件   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911124796.png "点击放大")
 #### 数据绑定
标准页面中的组件，通过建立不同类型的视图模型，将各种数据源和组件的返回值或者属性值进行关联，实现动态数据效果。
- 值绑定：值绑定类似Vue中的v-model语法，组件上创建双向数据绑定。值绑定会根据组件类型自动选取正确的方法来更新元素。同时，负责检测各类引起绑定数据变化的事件以更新数据。
  1. 在"数据绑定"中，单击"值（value）绑定"中的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910981938.png)，进入选择模型页面。
  
  2. 单击"新增模型"，进入新增模型页面。
  
  3. 设置"模型名称"与"来源"，单击"下一步"。
     图2定义模型   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911143054.png "点击放大")
     华为云Astro轻应用支持自定义、对象、服务和事件四类模型，每类模型都包含参数定义和方法定义。方法是在模型上定义的API，通常会在前台组件关联的事件脚本（例如页面加载事件、鼠标单击事件）中调用这些API，以实现某些功能。
      表1模型来源说明 
     | 分类  | 模型说明                                                                                                                                                                                                                  | 模型参数的定义                                       | 模型方法的定义                        | API调用方法                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
     |:---|:---|:---|:---|:---|
     | 自定义 | 开发者自行定义的模型。                                                                                                                                                                                                           | 由开发者自定义，可以添加子节点。                              | 开发者自定义方法。                      | *$model.ref("modelName").actionName();*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
     | 对象  | 由Object对象表映射生成，关于对象模型的详细介绍，请参见[对象](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9024.html)。                                                                                                      | 系统自动获取Object所有的字段，开发者可以从中选择部分字段作为参数。          | 系统自动生成查询、保存、删除和统计四个方法。         | - 查询：*$model.ref("modelName").query(param);*  - 保存：*$model.ref("modelName").save();*  - 删除：*$model.ref("modelName").delete();*  - 统计：*$model.ref("modelName").count();*   |
     | 服务  | 服务模型由后台服务映射生成，当前仅支持与服务编排、脚本进行映射。关于服务模型的详细介绍，请参见[服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9129.html)和[脚本](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9159.html)。 | 参数根据后台服务的入参、出参，映射生成为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. 在模型字段中，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911145882.png)，进入选择模型页面。
  
  4. 单击"新增模型"，进入新增模型页面。
  
  5. 设置模型名称与来源，单击"下一步"。
     华为云Astro轻应用支持自定义、对象、服务和事件四类模型，每类模型都包含参数定义和方法定义。方法是在模型上定义的API，通常会在前台组件关联的事件脚本（例如页面加载事件、鼠标单击事件）中调用这些API，以实现某些功能。详细介绍，请参见[表1]。
     图3定义模型   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944465069.png "点击放大") 
  
  
  
  6. 在新建模型"设置"页面，执行如下操作。
     - 上一步来源选择"自定义"，需要添加子节点自定义参数及类型。
     
     - 上一步来源选择"对象"，需要配置模型关联的对象以及字段。
     
     - 上一步来源选择"服务"，需要配置模型关联的后台服务，可以是脚本、服务编排或者公共接口。
     
     - 上一步来源选择"事件"，需要配置模型关联的事件以及事件字段。
      
  
  7. 单击"下一步"，设置方法。 方法一般无需添加，如需添加或修改，可参考对象和服务默认生成的方法。
     
  
  8. 设置完成后，单击"确定"。
   
 
#### 表格列
- ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301512.png)合并：在已添加列中，选择了某几列，再单击"合并"，即可合并为一个大列，选中的列将作为大列的子列显示。
- ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141548.png)分解：在已添加列中，选中某个包含多个子列的大列，再单击"分解"，即可分解此大列。
- ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101049.png)添加字段：表格的列，当表格组件绑定了数据模型后，可选择绑定的模型中的字段成为表格的列，以及表格的查询条件。
- ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141592.png)添加操作列：表格的列，在表格中添加可操作列，即在操作列中通过添加图标，并为图标添加onclick事件代码，实现某些功能，如删除、编辑等。
- ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301528.png)添加空白列：表格的列，可添加表格空白列。
 
#### 表格区块
- 工具栏用于扩展表格能力，为表格添加工具栏，提供增删改查以及保存的功能按钮。
  图4添加工具栏   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001955330729.png "点击放大") 

- 表格组件绑定数据后，可基于表格中的字段，添加数据表格查询栏。
  图5添加查询条件   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000002132459409.png "点击放大")
  图6设置后效果   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001928211430.png "点击放大") 
 
#### 扩展属性
- 自动加载数据：仅当模型为对象模型时有效，启用后，预览或加载页面时，将自动加载数据，不需要通过事件触发。
- 可编辑：启用后，表格中每行的内容是否能进行编辑操作，不启用则内容为只读。
- 单选：启用后，显示单选按钮。
- 多选：启用后，显示多选按钮。
- 行号：启用后，表格首列显示当前行号。分页时行号重新从1依次开始，不累加。
- 累加行号：和"行号"只能启用其中一个，启用后，表格首列显示当前行号，分页时行号累加上前一页依次显示。
- 最小列宽：设置最小列宽值。
- 加载中状态：是否显示表格加载中状态。
- 空数据提示：数据为空时，显示的提示内容。
- 筛选为空提示：筛选数据为空时，显示的提示内容，仅当列筛选时生效。
- 树形数据：当表格中的数据有父子关系，可开启树形数据，并指定关联字段后，可展示出树形结构。
  - 默认展开：开启树形数据时，子数据是否默认展开。
  
  - 可选择：开启树形数据时，是否启用父子关联选择。
  
  - 图标显示字段：开启树形数据时，图标所在位置显示的字段。不配置，就是第一列的字段。
  
  - 父节点字段：开启树形数据时，关联的父节点字段。
  
  - 子节点字段：开启树形数据时，关联的子节点字段。
  
  - 根节点字段值：开启树形数据时，根节点的字段值。不配置默认为空。
  
  - 子节点缩进：子节点缩进，单位px。
  
  - 行拖拽：开启树形数据时，是否启用行拖拽，拖拽行可改变数据的父子结构。
   
- 风格
  - 尺寸：设置表格的尺寸。
  
  - 显示表头：启用后，表格显示标题行。
  
  - 斑马纹：启用后，表格会间隔显示不同颜色，用于区分不同行数据。
  
  - 纵向边框：启用后，显示一个纵向的选择框。
  
  - 高度跟随内容：表格行高度是否跟随内容多少变化。
  
  - AUI风格：是否开启AUI风格。
  
  - 表头样式类：表头固定的class类名。
  
  - 数据行样式类：表数据行class类名的回调方法，支持自定义各行数据不同的class类名。
  
  - 合并行或列：合并行或列的计算方法，支持自定义设置行或列，单元格合并规则。
    图7合并行或列   
    ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911174184.png "点击放大") 
   
 
#### 公共
- 控件名称：当前组件的名称。
- 隐藏：是否隐藏该组件，此方式为静态配置该组件的隐藏。还可以将该组件属性值"隐藏"配置为布尔类型模型字段，在自定义JS代码中来控制模型字段取值，从而设置该组件是否隐藏，这种动态设置优先级是最高的。
 
#### 样式
针对有丰富前端开发经验的用户，可通过"样式"面板对页面进行更深度的个性化布局定制。
- 表格宽高：设置表格的宽度和高度。
- 布局：对页面CSS属性进行直接配置，如设置组件的宽度、高度等。您也可以在"高级设置"中，直接编写CSS代码进行更深度的个性化布局定制。
  - 单击"显示"属性后的按钮，可以快速指定当前元素布局为"block"、"inline-block"、"inline"和"flex"。
  
  - "显示"属性下方展示了当前元素的盒模型示意图，在对应的数字位置单击并改变值，即可快速改变元素上下左右位置上的内外边距属性。
  
  - 当前元素盒模型示意图下方，展示了当前元素的宽和高，默认是根据当前布局自适应后的宽高，可以在这里手动输入值配置当前元素的宽和高。
  
  - 盒模型和宽高配置时，支持"px"、"em"、"%"、"auto"等多种单位。
    图8样式属性配置面板   
    ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911021884.png) 
   
- 字体：设置字体大小、字体样式、颜色等。
- 背景：设置背景颜色、透明度。
- 阴影：设置阴影颜色、模糊、扩散等，支持"px"、"em"和"%"三种单位。
- 高级设置：在高级设置中，直接编写CSS代码作用于当前元素。
  - 样式源码：组件具体样式代码，组件样式设置后，样式代码将自动显示在"样式源码"中。也可以自定义样式代码，对组件进行详细配置，自定义代码支持多行输入，并高亮显示样式参数。
  
  - 样式类：当前组件使用的CSS样式类名，可在CSS代码中进行引用。
  
  - 样式透传：启用后，可以将设置好的样式透传给组件的子节点。
   
 
#### 绑定数据模型、增加查询条件、工具栏
设置组件绑定的数据模型，有自定义对象、对象、服务和事件四种，本章节以绑定模型为例进行介绍。
1. 在表格的"属性 \> 数据绑定"中，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101077.png)，进入选择模型页面。
2. 在选择模型页面，单击"新增模型"。
3. 设置表格的元数据模型，模型名称设置"equipmentInstance"，来源选择"对象"，单击"下一步"。 
   图9创建对象数据模型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301540.png "点击放大")
   
   
4. 在选择对象页面，选择一个提前创建好的对象，例如"*命名空间*__Equipment__CST"，"选择字段"中选择表单中需要展示的字段，单击"下一步"，单击"确定"。
5. 返回选择模型页面，勾选创建好的元数据模型，单击"确定"。 
   绑定对象模型后，显示如下图所示。如果需要在每行添加行序号，可在表格的"扩展属性"中打开"行号"。
   图10绑定数据模型后的结果列   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000002000474781.png "点击放大")
   
   
6. 选中上图中"已添加列"中的任意一项，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301548.png)，调整列的显示顺序。
7. 单击上图中每个字段后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101081.png)，修改列标题、是否隐藏、是否可编辑等字段属性。
   
   在配置列标题时，可选择已有多语言、创建或更新多语言，此处创建的多语言会保存在租户的多语言库中。
   
   
8. 为表格增加操作列。 
   1. 在左侧"设计视图"中选中"表格"，单击右侧"属性 \> 表格列"中的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301544.png)。
      图11单击表格列后的+   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301488.png "点击放大") 
   
   2. 单击新建表格列，即Operation1后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301440.png)。
      图12新建列   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301396.png) 
   
   3. 在"属性配置"页面，修改"列标题"为"操作"。
   
   4. 在"操作按钮"中，单击"添加操作按钮"，设置"编辑"按钮的样式。
      图13为操作列增加修改图标   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141568.png "点击放大") 
   
   5. 在上图中单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101057.png)事件图标，单击"动作列表"后的"+"号，在弹出的事件编排器右侧代码编辑区，添加如下事件代码，单击"创建"。
      ```
      //获取当前组件（即table）
      let _component = context.$component.current;
      //获取当前行row，取对象的id属性
      let rowId = _component.$attrs.row.id;
      //带着id跳转到设备详情页面
      context.$page.load('/besBaas/page#/命名空间__editEquipment?id='+rowId);
      ```
      
   
   6. 返回标准页面开发界面，单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141588.png)，保存页面。
   
   7. 按照上述操作，再次单击"添加操作按钮"，添加"删除"按钮。 参照[图13]，设置按钮的"类型"为"主要按钮" 、"图标"为"android-delete"。
      
   
   8. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101133.png)事件图标，在弹出的事件编排器右侧代码编辑区，添加如下事件代码，单击"创建"。
      ```
      //获取当前组件（即table）
      let _component = context.$component.current;
      //获取当前行
      let row = _component.$attrs.row;
      // 表格组件
      let _table = this.$component.table;
      // 删除当前行数据
      this.$dialog.confirm({
          title: '确认框',
          content: '确认是否删除？',
          okText: "确定",
          cancelText: "取消",
          onOk: () => {
              _table.doDelete([row]).then(()=>{_table.doQuery();})
          }
      })
      ```
      
   
   9. 返回标准页面开发界面，单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301456.png)，保存页面。
   
   
   
   
9. 设置工具栏区域。 
   1. 在左侧"设计视图"中，选中"表格"，单击右侧"属性 \> 表格区块 \> 工具栏"后的"添加"。
   
   2. 删除上图工具栏中多余的按钮，只保留"新增行"、"保存"和"删除"按钮。
   
   3. 单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141492.png)，保存页面。
   
   
   
   
 
#### 树形数据功能介绍
当表格中的数据有父子关系，可在表格属性中开启"树形数据"开关，并指定关联字段后，可展示出树形结构。
例如，低代码平台中存在如[图14]所示的数据，数据之间存在父子关系，效果需要展示成"树形数据"，如[图15]所示，明确层级关系。
图14数据源   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141536.png "点击放大")
图15树形数据   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301432.png "点击放大")
1. 首先查看数据对应的对象，查看数据列的字段名。
   
   如果需要构造如[图14]所示的数据，在新建对象，新增如下图所示自定义字段后，打开布局页签，选中"*对象名Records* "数据记录页，新增[图14]所示的数据。
   图16新增自定义字段   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141648.png "点击放大")
   
   
2. 在标准页面中，选中表格组件，新增模型，设置为对象模型，选中[1]中的对象，设置表格数据源。
   
   图17设置数据绑定   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141468.png "点击放大")
   图18新增模型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101093.png "点击放大")
   图19设置对象模型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101217.png "点击放大")
   图20设置关联字段   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101221.png "点击放大")
   图21选中模型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141584.png "点击放大")
   
   
3. 在标准页面中选中表格组件，开启"树形数据"开关，参考[数据绑定]设置如下参数。
   
   图22开启树形数据   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101085.png "点击放大")
   
   
4. 单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101157.png)，保存页面。
5. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301380.png)，预览该页面，可查看到如[图23]所示层级关系。
   
   图23树形数据   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141476.png "点击放大")
   
   
#### 相关文档
- [为华为云Astro轻应用标准页面中表格的数据增加链接](https://support.huaweicloud.com/bestpractice-astrozero/astrozero_bestpractice_0028.html)
- [为华为云Astro轻应用标准页面中的表格增加求和等计算能力](https://support.huaweicloud.com/bestpractice-astrozero/astrozero_bestpractice_0027.html)
- [在华为云Astro轻应用标准页面的表格中显示图片](https://support.huaweicloud.com/bestpractice-astrozero/astrozero_bestpractice_0026.html)
 
