Настройка Pivot

Так как Pivot - это приложение на базе Webix Jet, оно состоит из отдельных Webix компонентов. Эти компоненты можно переопределить или же работать с отдельными настройками чата.

Базовая конфигурация

Чтобы настроить общую конфигурацию виджета, используйте следующие свойства:

  • url (string) - URL для загрузки данных
  • fields - определяет поля данных
  • mode (string) - определяет режим отображения данных. Возможные значения:
    • "tree" - режим дерева (по умолчанию)
    • "table" - режим таблицы
    • "chart" - режим чарта.
  • structure - задает настройки для Pivot. У каждого объекта есть следующие поля:
    • rows (array) - массив рядов таблицы
    • columns (array) - массив столбцов таблицы. Эквивалентно полю groupBy в режиме "chart"
    • values (array) - массив с настройками значений. Каждый объект содержит следующие поля:
      • name (string) - название поля
      • operation (string, array) - название операции. Встроенной ("sum", "min", "max", "avg", "wavg", "count", "any") или кастомная. Свойство принимает строку или массив строк
      • format (function) - форматирующая функция
      • color (string) - цвет для секций чартов.
    • filters (array) - массив полей для фильтрации.
    • groupBy (string) - название поля, по которому происходит группирование. Используется в режиме чарта. Эквивалентно полю columns в режимах "table" и "tree".
  • datatable - определяет настройки для таблиц Pivot. Внутри объекта вы можете использовать свойства из объекта конфигурации Datatable, а также следующие поля:
    • footer (boolean, string) - определяет, показывать ли сумму значений каждого столбца. Возможные значения:
      • true
      • false (по умолчанию)
      • "sumOnly" - true чтобы отобразить суммы только для столбцов "sum".
    • minX (boolean) - подсвечивает минимальное значение ряда
    • maxX (boolean) - подсвечивает максимальное значение ряда
    • minY (boolean) - подсвечивает минимальное значение столбца
    • maxY (boolean) - подсвечивает максимальное значение столбца
    • cleanRows (boolean) - удаляет повторяющиеся значения в первом столбце (в режиме table).
    • totalColumn (boolean, string) - определяет, показывать ли столбец(столбцы) с итоговыми значениями. Возможными значениями являются:
      • true
      • false
      • "sumOnly" - вычисляет итоговые значения только для столбцов, к которым применяется функция "sum".
    • transpose (boolean) - размещает результаты математических вычислений по горизонтальной оси
  • chart - определяет настройки для чарта Pivot. Внутри объекта вы можете использовать свойства из объекта конфигурации Chart. Базовые поля:
    • type (string) - тип чарта
    • scale (string) - шкала чарта
    • legend (object) - легенда чарта
    • scaleColor (string) - цвета шкалы. HEX код или название цвета ("#999999", или "grey")
    • xAxis.lines (boolean) - если false, линии оси X не отображаются
    • yAxis.lines (boolean) - если false, линии оси Y не отображаются
    • labels (boolean) - если false, лейблы не отображаются
    • lines (boolean) - если false, линии осей не отображаются. true по умолчанию.
    • 3D (boolean) - задает 3D диаграмму (только типы pie и donut)
  • operations (object) - хранит кастомные операции
  • predicates (object) - позволяет добавить кастомные обработчики для дат
  • locale (object) - название текущего языка или объект с настройками языка
  • readonly (boolean) - если true, пользователь не сможет настраивать Pivot. По умолчанию false
  • compact (boolean) - компактный режим. По умолчанию undefined
  • override (object) - используется при переопределении классов по умолчанию.
webix.ui({
  view: "pivot",
  url: "https://docs.webix.com/pivot-backend/",
  mode: "chart",
  structure: {
    groupBy: "year",
    rows: ["form", "name"],
    values: [{ name: "oil", operation: ["min", "sum"] }],
  }
});

Related sample:  Pivot: Chart Mode

Реактивные свойств

Свойства mode, structure, datatable, chart, и readonly также доступны как реактивные через состояние виджета. Они хранят глобальное состояние приложение и позволяют разработчикам отслеживать его изменения. Любые изменения реактивных свойства незамедлительно отражаются в интерфейсе. Также у Pivot есть и другие свойства:

  • config (boolean) - определяет, открыта ли форма
  • fields (array) - массив с объектами полей. У каждого объекта есть следующие свойства:
    • name (string) - название поля
    • value (string) - значение поля
    • type (number) - тип поля. Возможные значения:
      • "text" - если значение поля - строка
      • "number" - если значение поля - число
      • "date" - если значение поля - дата.
    • predicate (string) - обработчик predicate
    • prepare (function) - подготавливает сырые данные. Принимает эти данные в качестве параметра (напр. "2007").

Чтобы получить состояние объекта, вызовите метод getState:

webix.ui({
    view:"pivot", 
    id:"pivot",
    url: "https://docs.webix.com/pivot-backend/"
});
 
const state = $$("pivot").getState();
/*
  {
    chart: {
      scale: "linear",
      type: "bar"
    },
    config: true,
    datatable: {
      footer: true,
      maxY: true
    },
    fields: [
      {name: "oil", value: "oil", type: 1, predicate: "date"},
      // other fields
    ],
    mode: "tree",
    readonly: false,
    structure: { ...structure config }
  }
*/

Отслеживание изменений реактивных свойств

Следить за изменениями реактивных свойств можно с помощью обработчика $observe:

$$("pivot")
  .getState()
  .$observe("structure", (structure, old) => {
    if (
      old &&
      structure.filters.length &&
      !structure.filters.find(o => o.external)
    )
      $$("filter").setValue("");
  });

Related sample:  Pivot: External Filters

В примере выше, текущий state доступен через экземпляр JetApp, который, в свою очередь, доступен в обработчике onInit.

Наверх