Best practice
Формы справочников, дочерних элементов (table-form)
Все элементы формы располагаются внутри контейнера. Шапка формы и кнопки статичны, а скроллироваться могут только поля на форме. На примере справочника контрагентов:
Колонки:
Если на форме располагается от 1 до 3 полей, то они размечаются в одну колонку.
Если на форме 4 и более полей, то все поля на форме должны располагаться в 2 колонки.
Если необходимо функциональное деление колонок, используются панели с заголовками. Колоночное деление может располагаться как внутри панели, так и панель может находиться внутри колонки
Формы создания заявок
Все элементы формы должны располагаться внутри контейнера. Шапка формы и кнопки должны быть статичны, а скроллироваться могут только поля на форме. На примере формы договора:
Все поля на форме должны располагаться в 2 колонки. Если необходимо функциональное деление колонок, используются панели с заголовками. Панели располагаются также внутри колонок.
Критерии к панелям:
Кнопки
кнопки располагаются снизу формы,
слева по ширине 1/4 ширины формы располагается кнопка «Отмена» серого цвета,
справа по 1/4 ширины формы располагается кнопка «Создать» синего цвета.
слева от кнопки «Создать» по ширине 1/4 ширины формы располагается кнопка «Сохранить» серого цвета.
необходимо убирать большой отступ под кнопками снизу формы.
Пример расположения и вида кнопок:
Формы задач
Требования к кнопкам:
Все кнопки располагаются с выравниванием по левому краю формы
Сначала располагаются кнопки с отрицательной резолюцией серого цвета
С правого края располагаются кнопки с положительной резолюцией синего цвета
Если требуется, между кнопками отрицательной и положительной резолюции располагаются кнопки нейтральной резолюции серого цвета.
Пример формы задач:
Использование функции Citeck.helpers.getMLValue(nameObj)
Функция Citeck.helpers. getMLValue(nameObj)
принимает параметр - объект с ключами, которые совпадают с ключами существующих локализаций и значениями - названиями в данных локализациях.
var statuses = _.get(data, “stats.statuses”);
var arr = [];
for(var i = 0; i < statuses.length; i++) {
var val = { value: statuses[i].id, label: Citeck.helpers.getMLValue(statuses[i].name) };
arr.push(val);
}
values = arr;
Пример реализации:
В системе выбран Русский язык – отображаются статусы на русском:
В системе выбран Английский язык – отображаются статусы на английском:
Использование функции отправки основной формы
В любом компоненте есть возможность вызвать сабмит основной (родительской) формы сразу после какого-то действия в дочерней форме при помощи обработки события instance.on('change')
.
instance.on('change' , function(event) {
if (event.changed && event.changed.value) {
instance.root.submit()
}
});
При спользовании instance.root.submit()
есть возможность указать два необязательных параметра:
Если нужно выполнить проверку или подготовить данные перед отправкой, можно определить первым аргментом функцию-колбэк, которая будет выполнять необходимые действия
Вторым аргументом также можно передать опции в случае их необходимости для функции-колбэка. Опции передаются в виде объекта