Browse Source

fix array field

pull/1572/head
Bernd Storath 3 months ago
parent
commit
f6ddf14f9c
  1. 17
      src/app/components/form/ArrayField.vue

17
src/app/components/form/ArrayField.vue

@ -3,13 +3,13 @@
{{ emptyText || 'No items' }} {{ emptyText || 'No items' }}
</div> </div>
<div v-else class="flex flex-col"> <div v-else class="flex flex-col">
<div v-for="(item, i) in data" :key="item"> <div v-for="(item, i) in data" :key="i">
<input <input
:value="item" :value="item"
:name="name" :name="name"
type="text" type="text"
class="rounded-lg border-2 border-gray-100 text-gray-500 focus:border-red-800 focus:outline-0 focus:ring-0 dark:border-neutral-800 dark:bg-neutral-700 dark:text-neutral-200 dark:placeholder:text-neutral-400" class="rounded-lg border-2 border-gray-100 text-gray-500 focus:border-red-800 focus:outline-0 focus:ring-0 dark:border-neutral-800 dark:bg-neutral-700 dark:text-neutral-200 dark:placeholder:text-neutral-400"
@input="update(i)" @input="update($event, i)"
/> />
<input type="button" value="-" @click="del(i)" /> <input type="button" value="-" @click="del(i)" />
</div> </div>
@ -21,13 +21,12 @@
const data = defineModel<string[]>(); const data = defineModel<string[]>();
defineProps<{ emptyText?: string[]; name: string }>(); defineProps<{ emptyText?: string[]; name: string }>();
function update(i: number) { function update(e: Event, i: number) {
return (v: string) => { const v = (e.target as HTMLInputElement).value;
if (!data.value) { if (!data.value) {
return; return;
} }
data.value[i] = v; data.value[i] = v;
};
} }
function add() { function add() {

Loading…
Cancel
Save