Add form for nami

This commit is contained in:
philipp lang 2024-06-14 01:46:06 +02:00
parent 3a83c46430
commit 57555afe2b
1 changed files with 30 additions and 24 deletions

View File

@ -90,29 +90,33 @@
</p> </p>
<div class="grid gap-2 mt-6"> <div class="grid gap-2 mt-6">
<accordion v-model="openValue" :index="index" :title="member.innerFormName" v-for="(member, index) in inner" :key="index" type="success"> <accordion v-model="openValue" :index="index" :title="member.innerFormName" v-for="(member, index) in inner" :key="index" type="success">
<template v-for="(memberField, memberIndex) in memberFields"> <div class="mt-6" :class="containerClasses">
<v-checkbox <template v-for="(memberField, memberIndex) in memberFields">
v-if="memberField.type === 'CheckboxField'" <v-checkbox
v-model="member[memberField.key]" v-if="memberField.type === 'CheckboxField'"
:name="`${field.key}-memberattr-${member.id}-${memberField.key}`" v-model="member[memberField.key]"
:id="`${field.key}-memberattr-${member.id}-${memberField.key}`" :name="`${field.key}-memberattr-${member.id}-${memberField.key}`"
:label="memberField.name" :id="`${field.key}-memberattr-${member.id}-${memberField.key}`"
intro="" :label="memberField.description"
></v-checkbox> intro=""
<v-dropdown :class="colClassesForField(memberField)"
v-if="memberField.type === 'DropdownField'" ></v-checkbox>
v-model="member[memberField.key]" <v-dropdown
:name="`${field.key}-memberattr-${member.id}-${memberField.key}`" v-if="memberField.type === 'DropdownField'"
:id="`${field.key}-memberattr-${member.id}-${memberField.key}`" v-model="member[memberField.key]"
:label="memberField.name" :name="`${field.key}-memberattr-${member.id}-${memberField.key}`"
:allowcustom="false" :id="`${field.key}-memberattr-${member.id}-${memberField.key}`"
:options=" :label="memberField.name"
memberField.options.map((o) => { :allowcustom="false"
return {id: o, name: o}; :class="colClassesForField(memberField)"
}) :options="
" memberField.options.map((o) => {
></v-dropdown> return {id: o, name: o};
</template> })
"
></v-dropdown>
</template>
</div>
</accordion> </accordion>
</div> </div>
<div class="flex justify-center mt-5"> <div class="flex justify-center mt-5">
@ -143,8 +147,10 @@ import useAdremaLogin from '../../composables/useAdremaLogin.js';
import useEventMeta from '../../composables/useEventMeta.js'; import useEventMeta from '../../composables/useEventMeta.js';
import Pagination from '../Pagination.vue'; import Pagination from '../Pagination.vue';
import Accordion from '../Accordion.vue'; import Accordion from '../Accordion.vue';
import useColumns from '../../composables/useColumns.js';
const eventMeta = useEventMeta(); const eventMeta = useEventMeta();
const {colClassesForField, containerClasses} = useColumns();
const {login, logout, user, loginData, searchData, searchForMember, resetSearchData, searchResults, searching} = useAdremaLogin(); const {login, logout, user, loginData, searchData, searchForMember, resetSearchData, searchResults, searching} = useAdremaLogin();
if (user.value !== null) { if (user.value !== null) {
@ -190,7 +196,7 @@ const props = defineProps({
const defaultMember = computed(() => { const defaultMember = computed(() => {
var fields = {}; var fields = {};
memberFields.value.forEach((field) => (fields[field.key] = field.default)); memberFields.value.forEach((field) => (fields[field.key] = field.value));
return fields; return fields;
}); });