Skip to content

Form Builder

form-builder/FormBuilder.vue

TODO: Używane komponenty z CWBK

  • przeniesienie sluga do repo
  • usunięcie GridLayout
  • usunięcie/przeniesienie BaseHeading
  • przeniesienie VExpand
  • przeniesienie VBtn
  • użycie inputów z repo

Opis

Komponent jest widokiem tworzenia formularza. Dzieli się na 3 sekcje:

  1. Picker - wybór pól do dodania do formularza
  2. Form - obszar do tworzenia/wyświetlania formularza
  3. Options - menu z opcjami dla zaznaczonego pola

Opcje konfiguracji

Gdy żadne pole nie jest zaznaczone wyświetla się przełącznik trybu edycji/podglądu oraz przycisk kopiowania formularza do schowka wraz z pole tekstowym do jego wklejenia. Gdy pole jest zaznaczone dostępne są kategorie z opcjami:

  1. Sczegóły
    • Tytuł pola (name) - label pola
    • Przycisk "Prześlij pliki" (assets) - otwiera modal z assetami pola ze statycznymi plikami
    • Tekst wewnątrz pola (placeholder) - placeholder pola
    • Slug (slug) - unikalny identyfikator pola
    • Domyślny slot do dodania kolejnych opcji
  2. Dane - tylko dla pól jednokrotnego/wielokrotnego wyboru
    • Tabsy (api):
      • Lista (false):
        • Opcja (options[*].name) - nazwa opcji
        • Wartość (options[*].value) - wartość opcji
        • Przycisk do usunięcia opcji
        • Przycisk "Dodaj" - dodaje opcję do listy
      • Endpoint ():
        • Link do endpointu (endpoint) - np. /patients/get_patients
  3. Dekoratory
    • Szerokość (width) - szerokość pola (grid span 1-12)
    • Wyświetlanie (display) - wybór widgetu z listy w zależności od typu pola np. bool -> switch/checkbox/radio
  4. Walidacja
    • Wymagane (required) - pole wymagane (obecnie nie działa)
    • Powtarzalne (repeatable) - kontener powtarzalny
    • Zagnieżdżanie (nesting) - kontener zagnieżdżony
    • Wiele plików (multiple) - możliwość przesłania wielu plików
  5. Warunki
    • Widoczność pola (visibility) - widoczne jeśli true:
      • Widoczne (visible)
      • Ukryty (hidden)
      • Prosty warunek (simple):
        • Pole (field) - sprawdzane pole
        • Wartość (value) - wymagana wartość
      • Zaawansowany warunek (advanced):
        • Przycisk "Zarządzaj warunkami" - otwiera popup z listą warunków
    • Pole wyłączone (disabled) - wyłączone jeśli false:
      • Włączone (visible)
      • Wyłączone (hidden)
      • Prosty warunek (simple):
        • Pole (field) - sprawdzane pole
        • Wartość (value) - wymagana wartość
      • Zaawansowany warunek (advanced):
        • Przycisk "Zarządzaj warunkami" - otwiera popup z listą warunków
    • Pole tylko do odczytu (readonly) - tylko do odczytu jeśli false:
      • Edytowalne (visible)
      • Tylko do odczytu (hidden)
      • Prosty warunek (simple):
        • Pole (field) - sprawdzane pole
        • Wartość (value) - wymagana wartość
      • Zaawansowany warunek (advanced):
        • Przycisk "Zarządzaj warunkami" - otwiera popup z listą warunków

Opis sekcji script

Props

NazwaTypDomyślnieOpis
defaultFormArray[]Tablica z polami i konfiguracji formularza
hiddenFieldsArray[]Tablica z ukrytymi polami do wyboru z pickera

Stałe

NazwaOpis
conditionModesTryby zaawansowanych warunków pól (widoczność, wyłączone, tylko do odczytu)

Zmienne

NazwaOpis
formPola i konfiguracja formularza
modeTryb buildera ('edit' lub 'preview')
sourcePrzeciągane pole
targetPole, nad którym znajduje się przeciągane pole
activePathŚcieżka do zaznaczonego pola
activeFieldZaznaczone pole
copiedStan skopiowania JSONa formularza
formValuesWartości pól formularza (używany jako v-model FormHandlera)
errorMessagesBłędy pól formularza (używany w FormHandler)
openedCatOtwarta kategoria w menu opcji
assetModalStan modala z assetami pola ze statycznymi plikami
conditionModalStan modala z warunkami pola

Computed

NazwaOpis
stringFormKonwertuje formularz ze string na JSON i na odwrót (get/set)
flatFormSprowadza pola formularza do jednowymiarowej tablicy
conditionalFieldsSłownik możliwych do wyboru pól do tworzenia warunków wyświetlania pól

Metody

NazwaParametryOpis
onMounted (Vue)-Pushuje pola z propsa defaultForm do zmiennej form
onDragevUstawia przeciągane pole (source)
onDropevUstawia pole docelowe (target), wywołuje handleDrop
getByPathpath (Array),
container (Bool)
Zwraca pole z formularza na podstawie ścieżki
handleDropsrc (Array),
dest (Array)
Przenosi pole w formularzu na podstawie ścieżki źródłowej i docelowej (source i target)
setActiveFieldpath (Array)Ustawia activePath i activeField na podstawie ścieżki
clonepath (Array)Klonuje pole w formularzu na podstawie ścieżki
removepath (Array)Usuwa pole z formularza na podstawie ścieżki
changeNamevalue (String)Zmienia nazwę zaznaczonego pola i w zależności od typu pola jego slug
slugifyvalue (String)Zwraca slug na podstawie wartości
addFieldOption-Dodaje opcje dla zaznaczonego Pola jednokrotnego/wielokrotnego wyboru
removeFieldOptionindex (Number)Usuwa opcje dla zaznaczonego Pola jednokrotnego/wielokrotnego wyboru na podstawie indexu
changeConditionTypetype (String),
mode (String)
Ustawia domyślny warunek dla typu warunku (simple, advanced) w odpowiednim trybie (visibility, disabled, readonly)
changeSimpleConditiontype (String),
value (String),
mode (String)
Ustawia prosty warunek w formacie field=value w odpowiednim trybie (visibility, disabled, readonly). Parametr type wstawia value odpowiednio po lewej lub prawej stronie znaku "="
copyForm-Kopiuje cały JSON formularza do schowka, ustawia stan copied na true i po 2 sekundach zmienia na false (zmienia to ikonę i kolor)
setPreview-Przełącza tryb buildera (mode) między "edit" a "preview"
returnTemplate-Zwraca głęboką kopię formularza (używane w defineExpose)
setSlugvalue (String)Ustawia slug dla zaznaczonego pola