Skip to content

Column

Column описывает одну колонку Table. Без Cell renderer читает значение по key; с Cell используется пользовательский template.

vue
<Column key="number" title="Номер" width="120" sortable />

<Column
  key="createdAt"
  title="Создан"
  sortable
  sort="date"
  pinnable
>
  <Cell>
    <DateTime :value="value" format="dd.MM.yyyy HH:mm" />
  </Cell>
</Column>
АтрибутТипНазначение
keystringIdentity колонки и default row path
title / namestringЗаголовок
width / sizenumber / stringНачальная ширина
sortablebooleanРазрешает runtime sorting
sortnatural / text / number / date / time / booleanComparator
sort-by / sortBystringОдин или несколько comma-separated row paths
pinnablebooleanМожно ли закреплять колонку; default true
:metadatastatic objectNamespaced metadata колонки

Допускается не более одного прямого Cell. ColumnMenu внутри Column в v1 не поддерживается: меню размещается непосредственно внутри Table.

Metadata колонки

vue
<Column
  key="priority"
  :metadata="{
    'endge.table.cell-presentation': {
      version: 1,
      branches: [
        {
          when: { source: 'value', operator: 'gte', value: 8 },
          then: { backgroundTone: 'warning' },
        },
      ],
    },
  }"
>
  <Cell>
    <PriorityValue
      :value="value"
      :rules="columnMeta['endge.table.cell-presentation']"
    />
  </Cell>
</Column>

Metadata компилируется в ProgramArtifact.metadata.nodes. Внутри ячейки доступны row, rowKey, rowIndex, columnKey, columnMeta и value. Вложенный компонент получает только явно выбранный namespace.

Подробности: