
# 表格
表格是一个组合组件，与模型绑定之后，可以提供快速构建基本表单能力，包括查询、保存、重置能力。同时，支持用户根据实际业务需求，进行二次修改编排。
在标准页面设计界面，从"基本组件"中，拖拽"表格"组件至页面工作区域，如[图1]。
图1表格   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126945.png "点击放大")
#### 查看组件帮助
将鼠标放在对应的组件上，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047664.png)，可查看组件说明。
图2查看组件说明   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126917.png)
 #### 属性
- 数据绑定：通过建立不同类型的视图模型，将各种数据源和组件的返回值或者属性值进行关联，实现动态数据效果。
  - 值绑定：设置组件绑定的数据模型，数据模型一般有以下几种。更多介绍，请参见[值绑定](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0048.html#astrozero_05_0048__section1786195310514)。
    - 自定义：由用户自定义的前端模型，可以在模型树上快速创建自定义字段。
    
    - 对象：由后台对象模型映射创建，支持选择字段。
    
    - 服务：由后台服务的出入参数模型创建，分别生成inputParam和outputParam节点。
    
    - 事件：由后台事件的字段映射创建，并且支持websocket刷新模型数据。
     
  
  - 属性值绑定，用于对该组件所有属性的动态设置。当某一属性被动态绑定时，以绑定值为准。更多介绍，请参见[属性绑定](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0048.html#astrozero_05_0048__section1923073313920)。
   
 
- 表格列 \> 已添加列
  - ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047636.png)合并：在已添加列中，选择了某几列，再单击"合并"，即可合并为一个大列，选中的列将作为大列的子列显示。
  
  - ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126957.png)分解：在已添加列中，选中某个包含多个子列的大列，再单击"分解"，即可分解此大列。
  
  - ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047648.png)添加字段：表格的列，当表格组件绑定了数据模型后，可选择绑定的模型中的字段成为表格的列，以及表格的查询条件。
  
  - ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047572.png)添加操作列：表格的列，在表格中添加可操作列，即在操作列中通过添加图标，并为图标添加onclick事件代码，实现某些功能，如删除、编辑等。
  
  - ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047596.png)添加空白列：表格的列，可添加表格空白列。
   
- 表格分区 \> 工具栏：扩展表格能力，为表格添加工具栏，提供增删改查以及保存的功能按钮。
- 扩展属性
  - 自动加载数据：仅当模型为对象模型时有效，启用后，预览或加载页面时，将自动加载数据，不需要通过事件触发。
  
  - 可编辑：启用后，表格中每行的内容是否能进行编辑操作，不启用则内容为只读。
  
  - 单选：启用后，显示单选按钮。
  
  - 多选：启用后，显示多选按钮。
  
  - 行号：启用后，表格首列显示当前行号。分页时行号重新从1依次开始，不累加。
  
  - 累加行号：和"行号"只能启用其中一个，启用后，表格首列显示当前行号，分页时行号累加上前一页依次显示。
  
  - 最小列宽：设置最小列宽值。
  
  - 加载中状态：是否显示表格加载中状态。
  
  - 空数据提示：数据为空时，显示的提示内容。
  
  - 筛选为空提示：筛选数据为空时，显示的提示内容，仅当列筛选时生效。
  
  - 树形数据：当表格中的数据有父子关系，可开启树形数据，并指定关联字段后，可展示出树形结构。
    - 默认展开：开启树形数据时，子数据是否默认展开。
    
    - 可选择：开启树形数据时，是否启用父子关联选择。
    
    - 图标显示字段：开启树形数据时，图标所在位置显示的字段。不配置，就是第一列的字段。
    
    - 父节点字段：开启树形数据时，关联的父节点字段。
    
    - 子节点字段：开启树形数据时，关联的子节点字段。
    
    - 根节点字段值：开启树形数据时，根节点的字段值。不配置默认为空。
    
    - 子节点缩进：子节点缩进，单位px。
    
    - 行拖拽：开启树形数据时，是否启用行拖拽，拖拽行可改变数据的父子结构。
     
  
  - 风格
    - 尺寸：设置表格的尺寸。
    
    - 显示表头：启用后，表格显示标题行。
    
    - 斑马纹：启用后，表格会间隔显示不同颜色，用于区分不同行数据。
    
    - 纵向边框 ： 启用后，显示一个纵向的选择框。
    
    - 高度跟随内容：表格行高度是否跟随内容多少变化。
    
    - AUI风格：是否开启AUI风格。
    
    - 表头样式类：表头固定的class类名。
    
    - 数据行样式类：表数据行class类名的回调方法，支持自定义各行数据不同的class类名。
    
    - 合并行或列：合并行或列的计算方法，支持自定义设置行或列的，单元格合并规则。
    
    
    ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126949.png "点击放大")
    
   
- 公共
  - 控件名称：当前组件的名称。
  
  - 隐藏：是否隐藏该组件，此方式为静态配置该组件的隐藏。还可以将该组件属性值"隐藏"配置为布尔类型模型字段，在自定义JS代码中来控制模型字段取值，从而设置该组件是否隐藏，这种动态设置优先级是最高的。
   
- 样式
  - 表格宽高：设置表格的宽度和高度。
  
  - 布局：设置表格显示样式、内外边距、宽高。
  
  - 字体：设置字体大小、字体样式、颜色等。
  
  - 背景：设置背景颜色、透明度。
  
  - 阴影：设置阴影颜色、模糊、扩散等，单位为px。
  
  - 高级设置
    - 样式源码：组件具体样式代码，组件样式设置后，样式代码将自动显示在"样式源码"中。也可以自定义样式代码，对组件进行详细配置，自定义代码支持多行输入，并高亮显示样式参数。
    
    - 样式类：当前组件使用的CSS样式类名，可在CSS代码中进行引用。
    
    - 样式透传：启用后，可以将设置好的样式透传给组件的子节点。
     
   
#### 事件
在事件中，显示了组件暴露出来的一些常用事件，供用户实现，来扩展组件的交互。整个页面有加载（on-load）事件，该事件在页面渲染完成后执行，可进行数据初始化操作。更多关于事件的介绍，请参见[主要事件说明](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0089.html)。
#### 库
在库中，可配置页面需要的依赖库，扩展页面功能。库分为系统预置库和自定义库两种，更多介绍请参见[如何引入第三方库](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0058.html)。
 #### 绑定数据模型、增加查询条件、工具栏
设置组件绑定的数据模型，有自定义对象、对象、服务和事件四种，本章节以绑定模型为例进行介绍。
1. 在表格的"属性 \> 数据绑定"中，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047672.png)，进入选择模型页面。
2. 在选择模型页面，单击"新增模型"。
3. 设置表格的元数据模型，模型名称设置"equipmentInstance"，来源选择"对象"，单击"下一步"。 
   图3创建对象数据模型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126929.png "点击放大")
   
   
4. 在选择对象页面，选择一个提前创建好的对象，例如"*HW*__Equipment__CST"，"选择字段"中选择表单中需要展示的字段，单击"下一步"，单击"确定"。
5. 返回选择模型页面，勾选创建好的元数据模型，单击"确定"。 
   绑定对象模型后，显示如下图所示。如果需要在每行添加行序号，可在表格的"扩展属性"中打开"行号"。
   图4绑定数据模型后的结果列   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888252.png "点击放大")
   
   
6. 选中上图中"已添加列"中的任意一项，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286769.png)，调整列的显示顺序。
7. 单击上图中每个字段后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047580.png)，修改列标题、是否隐藏、是否可编辑等字段属性。
   
   以"设备编码"为例，其属性配置如下图所示。在配置列标题时，可选择已有多语言、创建或更新多语言，此处创建的多语言会保存在租户的多语言库中。
   图5设置"设备编码"列的属性   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888232.png "点击放大")
   
   
8. 为表格增加操作列。 
   1. 在左侧"设计视图"中选中"表格"，单击右侧"属性 \> 表格列"中的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888212.png)。
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286785.png "点击放大")
      
   
   2. 单击新建表格列，即Operation1后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126961.png)。
      图6新建列   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126969.png) 
   
   3. 在"属性配置"页面，修改"列标题"为"操作"。
   
   4. 在"操作按钮"中，单击"添加操作按钮"，设置"编辑"按钮的样式，如下图所示。
      图7为操作列增加修改图标   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126981.png "点击放大") 
   
   5. 在上图中单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888256.png)事件图标，单击"动作列表"后的"+"号，在弹出的事件编排器右侧代码编辑区，添加如下事件代码，单击"创建"。
      ```
      //获取当前组件（即table）
      let _component = context.$component.current;
      //获取当前行row，取对象的id属性
      let rowId = _component.$attrs.row.id;
      //带着id跳转到设备详情页面
      context.$page.load('/besBaas/page#/HW__editEquipment?id='+rowId);
      ```
      
   
   6. 返回标准页面开发界面，单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047588.png)，保存页面。
   
   7. 按照上述操作，再次单击"添加操作按钮"，添加"删除"按钮。 参照[图7]，设置按钮的"类型"为"主要按钮" 、"图标"为"android-delete"。
      
   
   8. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286757.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_0000001933047652.png)，保存页面。
   
   
   
   
9. 设置工具栏区域。 
   1. 在左侧"设计视图"中，选中"表格"，单击右侧"属性 \> 表格区块 \> 工具栏"后的"添加"。
   
   2. 删除上图工具栏中多余的按钮，只保留"新增行"、"保存"和"删除"按钮。
   
   3. 单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888192.png)，保存页面。
   
   
   
   
 
#### 树形数据功能介绍
当表格中的数据有父子关系，可在表格属性中开启"树形数据"开关，并指定关联字段后，可展示出树形结构。
例如，低代码平台中存在如[图8]所示的数据，数据之间存在父子关系，效果需要展示成"树形数据"，如[图9]所示，明确层级关系。
图8数据源   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126953.png "点击放大")
图9树形数据   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888280.png "点击放大")
1. 首先查看数据对应的对象，查看数据列的字段名。
   
   若需要构造如[图8]所示的数据，在新建对象，新增如下图所示自定义字段后，打开布局页签，选中"*对象名Records* "数据记录页，新增[图8]所示的数据。
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126933.png "点击放大")
   
   
2. 在标准页面中，选中表格组件，新增模型，设置为对象模型，选中[1]中的对象，设置表格数据源。
   
   图10设置数据绑定   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286709.png "点击放大")
   图11新增模型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126925.png "点击放大")
   图12设置对象模型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888196.png "点击放大")
   图13设置关联字段   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286773.png "点击放大")
   图14选中模型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888184.png "点击放大")
   
   
3. 在标准页面中选中表格组件，开启"树形数据"开关，参考[属性]设置如下参数。
   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888188.png "点击放大")
   
   
4. 单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286721.png)，保存页面。
5. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888236.png)，预览该页面，可查看到如[图15]所示层级关系。
   
   图15树形数据   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888204.png "点击放大")
   
   
#### 引申说明
表格组件需要以树形展示有个前提条件，即表格绑定的模型中存在**取值上有父子关系**的两个字段。
图16示例   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126937.png "点击放大")
上述模型中，"主管"字段的值来源于"名称"，这两个字段就可以认为是父（主管）子（名称）关系，而"部门"字段仅在逻辑上和"名称"是父子关系，取值上并不是，这一点极易混淆。基于上述前提，就可以在表格的属性面板中绑定上述模型，开启"树形数据"开关，然后配置"主管"为父字段，"名称"为子字段。
图17配置父子节点字段   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286717.png)
图18设置后效果   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888264.png "点击放大")
