Форми
Використовується для створення та редагування даних у таблицях бази даних для користувачів.
Документація
Повний перелік параметрів, які може приймати форма, можливо переглянути в документації до форм: https://storybook.softpro.ua/
Документація по окремих типах форм: https://help.softpro.ua/reference-function/form
Створення форми
Використовуємо компоненти форм на основі Vue.
Для формування форми створити у відповідній папці файл у форматі JSON, приклад:
{
"xssCheck": false,
"schema": {
"user_name": {
"type": "Text",
"ua": "ПІБ",
"i": "Заповніть у форматі Петренко Петро Петрович"
},
"contact.email": {
"type": "Email",
"ua": "Email",
"placeholder": {
"ua": "Email",
"en": "Email"
}
},
"message": {
"type": "richtext",
"title": false,
"ua": "Повідомлення",
"en": "Message",
"i": "Опишіть проблему, пропозицію чи коментар в даному полі",
"validators": [
"required"
]
}
},
"style": {
"label": "vertical",
"buttonPosition": "bottom-center"
}
}
Параметри
Основні параметри
xssCheck - перевірка на заборонені символи.
За замовчуванням включена.
При вказанні значення false можна відключити перевірку для всієї форми або окремого поля форми.
style - налаштування відображення форми:
label- розташування назв полівbuttonPosition- розташування кнопок
type
Основний параметр - те, як поле буде показано в формі.
!!! info
Значення типу форми бажано вказувати в нижньому регістрі. Хоча форма приймає значення в будь-якому регістрі.
Text- Основний тип в формі - приймає текстові значенняTextarea- Застосовується найчастіше для тізерів, коротких описівNumber- Для числових значень, в т.ч. і для десятковихMarkedText- Передаються маска, якими мають бути значення. Може застосовуватися, наприклад, для мобільних номерівPassword- Спеціальний тип форми для вводу та перевірки паролюEmail- Спеціальний тип для emailDataTable- Таблиця в форміFile- Вибір файлів з можливістю перетягуванння елементів.FileList- Вибір файлів зі зручним переглядом всіх файлів.Checkbox- Вибір декількох значень без випадаючого спискуSwitcher- Переключення між значеннями false/trueRadio- Вибір один одного значення без випадаючого спискуAutocomplete- Вибір декількох значень із випадаючого спискуDate- Вибір датиDatetime- Вибір дати та часуTimepicker- Вибір часуColorpicker- Вибір кольоруRichtext- Текстовий редактор з підтримкою markdown розміткиGeom- Створення геометрії (позначки на карті) для об'єктаCamera- Додавання живого фото з веб-камериSlider- Числове значення, що встановлюється по лінії-повзункуTree- Створення значень поля у форматі деревоподібного структурованого списку
В процесі розробки:
Team- Вибір користувачів, наявних на порталіAddress- Повноцінний функціонал для зручного вводу адреси з геокодуванням та позиціюванням на картіRate- Вибір значення зірочками. Використовувати для форм, де потрібно оцінка/відгукPalette- вибір палітри кольорівWorktime- Вибір робочого часу в формі
ua
Вказується назва поля українською. Є аналогічні параметри en, ru - для інших мов.
Інші
pin- для основних полів, можна прикріприти в правій частині. Допустимі значення:true,falsecol- ширина поля в формі. Допустимі значення:діапазон від 1 до 12, цілі числа.title- показ назви поля (ua) в формі. За замовчуваннямfalse. Допустимі значення:true,falsei- інформація. Приймається будь-який текстовий масив. HTML не читається.help- блок допомоги в полі форми. Приймається будь-який текстовий масив. HTML не читається.multi- можливість вибору декількох значень. Допустимі значення:true,falsedefault- значення поля за замовчуванням. Значення відрізняються в залежності від типу поля форми.min- мінімальне значенняmax- максимальне значенняbehavior- показ/приховання певного поля.mask- маска дляtype: MarkedTextparent- батьківське поле форми.formaddvalidatorsbase_layer- вказуються базові шари для type: Geomplaceholder- текст, що виводиться в поліoptions- опції (найчастіше використовуємо в autocomplete). Приклад заповнення:{"id":1,"text":"test_text"}
Параметри стилів
Форма може змінювати зовнішній вигляд, нижче наведені параметри стилів. Працює як через вміст style{...}, так і як самостійні значення на одному рівні із schema
"schema": {},
"style": {
"layout": "tabs" || "accordion" || "wizard" || "default",
"label": "inline"|| "vertical" || "horizontal",
"buttonPosition": "top-left" || "top-center"||"top-right"|| "bottom-left" || "bottom-center" || "bottom-right",
"submitButton": "назва кнопки"
}
Вивід форми
Існує декілька опцій, за допомогою яких можна виводити форму.
handlebars
Вказується хелпер {{{__form form="form_name" model='table_name' id=id}}}:
form_name- назва форми (без .json),table_name- назва таблиці в БД,id- унікальний ідентифікатор таблиці
html attribute - add, edit
<a add="{{_token id=айді таблиці model='назва таблиці, в яку записується' form='назва форми'}}"> Стаття</a>
vue
Вказується хелпер {{{_vue "vs-form" form="form_name"}}}, де form_name - назва форми (без .json)
table
Вказується в таблиці у форматі:
{
"table": "billing.service", // Таблиця в базі даних, з якої беруться дані
"add_form": "web.customize_menu.form" // Назва форми, яка пов'язана з таблицею
}
Корисні посилання
Основна бібліотека компонент, що використовуються при побудові форм: element.elemen.io