@live-change/frontend-auto-form
v0.9.209
Published
--- title: @live-change/frontend-auto-form ---
Readme
title: @live-change/frontend-auto-form
@live-change/frontend-auto-form
@live-change/frontend-auto-form to moduł do automatycznego generowania formularzy i CRUD-ów na podstawie:
- definicji modeli i akcji po stronie serwera (Live Change)
- metadanych wygenerowanych przez
@live-change/frameworki dostępnych przez@live-change/vue3-ssr
Zapewnia:
- komponenty pól formularza (
AutoField,AutoInput,AutoEditor,ModelEditor,ModelView,ModelSingle,ActionForm, itp.) - provider-y konfiguracji (
provideAutoViewComponents,provideAutoInputConfiguration,provideMetadataBasedAutoInputConfiguration) - lokalizacje (
locales) używane w aplikacjach takich jakfamily-treeispeed-dating
Podstawowa integracja
W App.vue typowej aplikacji włączasz auto-form globalnie:
import {
provideAutoViewComponents,
provideAutoInputConfiguration,
provideMetadataBasedAutoInputConfiguration
} from '@live-change/frontend-auto-form'
provideAutoViewComponents()
provideAutoInputConfiguration()
provideMetadataBasedAutoInputConfiguration()oraz dodajesz lokalizacje do i18n w front/src/config.js:
import { locales as autoFormLocales } from '@live-change/frontend-auto-form'
export default {
i18n: {
messages: {
en: deepmerge.all([
baseLocales.en,
autoFormLocales.en,
// ...
]),
pl: deepmerge.all([
baseLocales.pl || {},
autoFormLocales.pl || {},
// ...
])
}
}
}Kluczowe komponenty
AutoField
Generuje pojedyncze pole formularza na podstawie definicji właściwości modelu lub akcji:
<AutoField
:definition="definition.properties.firstName"
v-model="editable.firstName"
:error="validationResult?.propertyErrors?.firstName"
:label="t('profile.firstName')"
/>Możesz wstrzykiwać własny layout przez sloty (#default, #label, #error), jak w ProfileSettings.vue (speed-dating).
AutoInput i AutoEditor
AutoInput – pojedyncze pole edycyjne na podstawie definicji,
AutoEditor – edytor całego obiektu (modelu) na podstawie definicji:
<auto-editor
:definition="eventDefinition"
v-model="editable"
:rootValue="editable"
i18n="event."
/>W przykładzie z speed-dating/front/src/pages/events/[event]/edit.vue:
eventDefinitionpochodzi zapi.services.speedDating.models.Eventeditablejest synchronizowane z widokiem i akcją poprzezsynchronized
ModelEditor, ModelView, ModelSingle
Te komponenty łączą:
- definicję modelu
- widoki i akcje (DAO)
- generowane formularze i widoki list/szczegółów
Są używane m.in. w:
speed-dating/front/src/pages/events/[event]/surveys.vue(ModelEditordla ankiet)family-tree– ekrany ustawień i edytory szablonów
Flow od modelu do CRUD
- Definicja modelu i akcji w serwisie po stronie serwera (np.
Event,TreeSettings). - Eksport metadanych przez Live Change i odczyt przez
@live-change/vue3-ssr(api.services[service].models[Model]). - Auto-form generuje formularze i widoki:
AutoFielddla pojedynczych pól,AutoEditor/ModelEditordla całych obiektów,ActionForm/ActionEditordla akcji.
Przykłady z projektów
family-tree
front/src/components/TreeSettings.vue:AutoFieldużyty do edycji zagnieżdżonych ustawień (rootPerson, format, marginesy, tło, tytuł)- integracja z PrimeVue (Dropdown, Slider, InputNumber) przez sloty
front/src/components/marketing/*Editor.vue:AutoField,editorDatado edycji szablonów i obrazów reklamowych
front/src/pages/tree/[tree]/settings.vue:- użycie
editorDataz@live-change/frontend-auto-formdo spięcia formularza z modelem ustawień
- użycie
speed-dating
front/src/components/profile/ProfileSettings.vue:AutoFielddla pól identyfikacji użytkownika, z własnymi layoutami i walidacją- integracja z
synchronizedi serwisemdraft
front/src/pages/events/[event]/edit.vue:AutoInput,AutoField,AutoEditordo edycji eventu
front/src/pages/events/[event]/surveys.vue:ModelEditordo edycji ankiet powiązanych z eventem
Te pliki są najlepszym odniesieniem, jeśli chcesz szybko zobaczyć, jak układa się flow od modelu do działającego CRUD-a.
