Динамическая таблица на element-ul

Есть Vue проект где все элементы на element-ui С сервера получаем Json

{
  "events": [
    {
      "id": "83C05E29-7640-4EF9-B7E5-0D4A6D3CB5D7",
      "date": "2021-01-19 16:59:13.097",
      "type": "sessionOpened",
      "revision": "23580",
      "departmentId": "0455A40F-4481-14D7-0172-97D63C6F0010",
      "attributes": [],
      "session": "33.000000000",
      "user": "iiko",
      "auth": "iiko",
      "manager": "iiko",
      "terminal": "Test",
      "sessionId": null
    },
    {
      "id": "EEE24C11-B74C-4756-8E73-C07F0CFE1141",
      "date": "2021-01-21 12:10:46.160",
      "type": "orderOpened",
      "revision": "23802",
      "departmentId": "0455A40F-4481-14D7-0172-97D63C6F0010",
      "attributes": [],
      "isBanquet": ".000000000",
      "numGuests": "1.000000000",
      "openTime": "2021-01-21 12:10:46.147",
      "orderNum": "434.000000000",
      "orderSumAfterDiscount": ".000000000",
      "receiptsSum": ".000000000",
      "session": "34.000000000",
      "sum": ".000000000",
      "tableNum": "601",
      "restaurantGroup": "Test",
      "orderId": null,
      "user": "iiko",
      "terminal": "Test",
      "waiter": "СИС. АДМИНИСТРАТОР"
    },
    {
      "id": "8F1717A2-5E68-4FB8-B19F-2F573E00E45B",
      "date": "2021-01-21 14:03:02.313",
      "type": "orderPaid",
      "revision": "23871",
      "departmentId": "0455A40F-4481-14D7-0172-97D63C6F0010",
      "attributes": [],
      "changeSum": ".000000000",
      "dishes": "Тестовое блюдо1 × 3; Дюшес × 3",
      "isBanquet": ".000000000",
      "numGuests": "1.000000000",
      "openTime": "2021-01-21 14:02:55.410",
      "orderNum": "437.000000000",
      "orderSumAfterDiscount": "6.600000000",
      "prechequeTime": "2021-01-21 14:02:56.123",
      "receiptsSum": ".000000000",
      "session": "34.000000000",
      "sum": "6.600000000",
      "sumCard": ".000000000",
      "sumCash": "6.600000000",
      "sumCredit": ".000000000",
      "sumPrepay": ".000000000",
      "tableNum": "601",
      "cashRegister": "Фискальный регистратор линейки АТОЛ",
      "restaurantGroup": "Test",
      "terminal": "Test",
      "auth": "СИС. АДМИНИСТРАТОР",
      "cashier": "СИС. АДМИНИСТРАТОР",
      "waiter": "СИС. АДМИНИСТРАТОР",
      "orderId": null,
      "sessionId": null
    }
  ],
  "colums": [
    "session",
    "isBanquet",
    "numGuests",
    "openTime",
    "orderNum",
    "orderSumAfterDiscount",
    "receiptsSum",
    "sum",
    "tableNum",
    "changeSum",
    "dishes",
    "prechequeTime",
    "sumCard",
    "sumCash",
    "sumCredit",
    "sumPrepay",
    "orderId",
    "cashRegister",
    "restaurantGroup",
    "terminal",
    "user",
    "auth",
    "manager",
    "cashier",
    "waiter",
    "sessionId"
  ]
}

Задача преобразовать это в таблицу с динамическими колонками. То есть как видно мы не знаем сколько атрибутов у каждого события. И нам нужно перебирая не повторяя столбцов складывать все в нужные поля. Как это сделать на обычном html ясно. Но наворачивать Фильтры, Сортировки уж очень не хочется(да и знаний для этого мало)

  <table id="example" class="display" style="width:100%">
    <thead>
    <tr>
      <th>Дата и время</th>
      <th>Тип события</th>
      <th v-for="item in tableData.colums">{{ item }}</th>
    </tr>
    </thead>
    <tbody>
    <tr v-for="row in tableData.events">
      <td>{{ row.date }}</td>
      <td>{{ row.type }}</td>
      <td v-for="item in tableData.colums">{{ row[item] }}</td>
    </tr>
    </tbody>
  </table>

И весь вопрос как грамотно положить эти данные в елементовскую(elemetn-ul) таблицу.

Описывать все 100+ столбцов в компоненте не вариант

  <el-table
      :data="tableData.events"
      border
      size ="mini"
      class="custom-header-table-actions"
      width="100%"
      height="calc(100vh - 230px)"
      style="width: 100%; overflow-x:  auto">

<!--    <el-table-column v-for="item in tableData.events"-->
<!--        :prop="tableData.events.date"-->
<!--        :label="item"-->
<!--         sortable-->
<!--         width="180">-->
<!--    </el-table-column>-->
    <el-table-column prop="date" label="Дата и время" width="180"> </el-table-column>
    <el-table-column prop="type" label="Тип события" sortable width="180"> </el-table-column>
  </el-table>

В Идеале получить на el-table такую таблицу введите сюда описание изображения


Ответы (0 шт):