Форми
Використовується для створення та редагування даних у таблицях бази даних для користувачів.
Документація
Повний перелік параметрів, які може приймати форма, можливо переглянути в документації до форм: 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
,false
col
- ширина поля в формі. Допустимі значення:діапазон від 1 до 12
, цілі числа.title
- показ назви поля (ua) в формі. За замовчуваннямfalse
. Допустимі значення:true
,false
i
- інформація. Приймається будь-який текстовий масив. HTML не читається.help
- блок допомоги в полі форми. Приймається будь-який текстовий масив. HTML не читається.multi
- можливість вибору декількох значень. Допустимі значення:true
,false
default
- значення поля за замовчуванням. Значення відрізняються в залежності від типу поля форми.min
- мінімальне значенняmax
- максимальне значенняbehavior
- показ/приховання певного поля.mask
- маска дляtype: MarkedText
parent
- батьківське поле форми.form
add
validators
base_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