Форматтеры

Примечание

В форматтерах могут использоваться вычисляемые атрибуты

Настройки

Перейти в раздел администрирования > Журналы > найти необходимый журнал > действие Редактировать. Перейти в Дополнительно



Выберите форматтер из списка заполните ключ-значение:



Типы

AssocFormatter / Ассоциация

Тип: assoc

Конфигурация:

Ключ

Значение

sourceId

Идентификатор ассоциации

openInBackground

Открыть в новой ecos вкладке

openNewBrowserTab

Открыть в новой вкладке браузера

ActionFormatter / Действие

Тип : action

Конфигурация:

Ключ

Значение

type

<тип действия>

actionId

<id типа действия>

Предполагается в строке журнала наличие id или recordRef - ref записи, необходимый для выполнения действия

BooleanFormatter / Логическое выражение

Тип: bool

Конфигурация:

Простой форматтер, который отдает «Да» или «Нет» в ячейке

ColoredFormatter / Цвет

Тип: colored

Конфигурация:

Ключ

Значение

color

Цвет в формате HEX

defaultColor

Цвет по умолчанию в формате HEX

textHidden

Флаг, который отвечает за перенос строк в ячейке

Добавлена возможность настройки условия отображения значения в определенном цвете в зависимости от значения данных в атрибуте.

../../../_images/color_formatter_1.png

Вернуть необходимо строку с цветом для css (WebColor или HEX):

if (cell.disp.length > 2) return "red"

или

if (cell.disp.length > 2) return "#FF0000"

DateFormatter / Дата

Тип: date

Конфигурация:

Ключ

Значение

format

Временной формат (по умолчанию „DD.MM.YYYY“)

DateTimeFormatter / Дата и время

Тип: datetime

Конфигурация:

Ключ

Значение

format

Временной формат (по умолчанию „DD.MM.YYYY HH:mm“)

relative

Флаг, который будет осчитывать время которое прошло

DefaultFormatter / По умолчанию

Тип: default

Конфигурация:

Всегда отдает строковое значение, которое получили из значения атрибута. Если ячейка имеет булево значение, то отдает «Да» или «Нет»

DurationFormatter / Продолжительность

Тип: duration

Конфигурация:

Ключ

Описание

showSeconds

При применении в журнале отображается запись в формате 1d 2h 30m 2s
Возможные значение - true/false
По умолчанию секунды отображаются - showSeconds = true

maxAsHours

При применении в журнале продолжительность будет трансформироваться в часы, то есть 2d 3h 30m = 51h 30m
Возможные значение - true/false

Пример:

formatter:
  type: duration
  config:
    maxAsHours: true

FileNameFormatter / Имя файла

Тип: filename

Конфигурация:

Всегда отдает ссылку на документ вида:

<a href="${URL.DASHBOARD}?recordRef=${row.id}" target="_blank" rel="noopener noreferrer">
  <icon />
  { НАЗВАНИЕ ЯЧЕЙКИ}
</a>

HtmlFormatter / HTML

Тип: html

Конфигурация:

Ключ

Значение

html

Строка с html кодом

LinkFormatter / Ссылка

Тип: link

Добавлена возможность строить ссылки по шаблону с использованием переменных (атрибутов записи/полей журнала). Link форматтер используется для ячеек журнала с использованием полей (колонок) в качестве переменных.

Шаблон адреса ссылки задается в параметрах форматтера для столбца в конфигурации журнала (Форматтер для колонки).

Пример шаблона ссылки:

urlTemplate: "https://example.com/path?var1=${columnId1}&var2=${columnId2}"

где columnId1 и columnId2 - колонки журнала.

В качестве наименования ссылки используется значение ячейки. Если значения нет, то наименование = url.

Ссылка не отображается, если ячейка журнала редактируемая (если в ячейку вводятся данные).

Например:

Выбрать форматтер Ссылка (1) и указать:

  • ключ (2)url,

  • значение (3) - ${$computed.url}

../../../_images/link_formatter_1.png

Указать:

  • id (4)url,

  • type (5)value.

В конфигурации указать:

  • ключ (6)value,

  • значение (7) - https://host.ecos24.ru/${?id}&${?disp}

../../../_images/link_formatter_2.png

В журнале выглядит следующим образом:

../../../_images/link_formatter_3.png

По клику на наименование будет открываться ссылка.

NumberFormatter / Число

Тип: Number

Конфигурация:

Ключ

Описание

mask

маска, где {value} — само число

locales

какую локаль для форматирования использовать.
От нее зависит как будут разделяться тысячи и дробные числа. (Точкой, запятой или пробелом) По умолчанию текущая локаль.

maximumFractionDigits

сколько чисел после запятой

decimalSeparator

как отделяются дробные числа. По умолчанию зависит от локали

thousandSeparator

как разделяются тысячи. По умолчанию зависит от локали.

Пример:

mask: {value} руб.
locales: ru
maximumFractionDigits: 16
decimalSeparator: .
thousandSeparator: ,

Например:

Ключ

Описание

mask

{value} руб

maximumFractionDigits

2

decimalSeparator

.

thousandSeparator

_

../../../_images/number_formatter_1.png

ScriptFormatter / Скрипт

Тип: script

Конфигурация:

Ключ

Значение

fn

формат function
в функцию передаются параметры fn(p1, p2, p3, p4, p5, p6, p7)
p1 - Records
p2 - _ lodash
p3 - t
p4 - vars - переменные из конфигурации
p5 - cell - ячейка
p6 - row - строка
p7 - index -строка

формат string (eval)
в конфигурацию передается тело функции

vars

формат Object
Дополнительные переменные, функции и т.п., что может пригодиться при исполнении функции.
Пробрасывается в p4 (объект со вспомогательными функциями и переменными)

Пример использования:

{
      type: 'script',
      config: {
            fn: function(cell, rec, col, data, rowIndex, utils) {
              return data ? data.replace(":", "_") : null;
            }
      }
    }

Если есть необходимость вызвать другой форматтер, например LinkFormatter:

   {
         type: 'script',
         config: {
               fn: function(cell, rec, col, data, rowIndex, utils) {
                 const type = data ? data.replace(":", "_") : null;

                 return {
                       row: data,
                       cell: utils.lodash.get(window, ['Citeck.messages.global', `property.samwf_caseType.${type}.title`], cell),
                       type: 'link'
                 };
               }
         }
       }

! В форматер передается функция **t** - для локализации значений, которая не работает на формах, т.к. у нее свой словарь; внутри компонента формы следует использовать функцию формы ``instance.i18next.t``

WorkflowPriorityFormatter / Приоритет рабочего процесса

Тип: workflowPriority

Конфигурация:

Ключ

Значение