adrema/resources/js/views/formtemplate/RadioField.vue

53 lines
1.8 KiB
Vue
Raw Normal View History

2023-12-26 00:44:49 +01:00
<template>
<div class="space-y-1">
<span class="text-xs font-semibold text-gray-400">Optionen</span>
2024-04-11 23:01:52 +02:00
<div v-for="(option, index) in modelValue.options" :key="index" class="flex space-x-2">
<f-text
:id="`options-${index}`"
size="sm"
class="grow"
:model-value="option"
@update:modelValue="$emit('update:modelValue', {...props.modelValue, options: setOption(props.modelValue.options, index, $event)})"
></f-text>
<ui-action-button
tooltip="Löschen"
icon="trash"
class="btn-danger"
@click="$emit('update:modelValue', {...modelValue, options: removeOption(modelValue.options, index)})"
></ui-action-button>
</div>
<ui-icon-button icon="plus" @click="$emit('update:modelValue', {...modelValue, options: addOption(modelValue.options)})">Option einfügen</ui-icon-button>
2023-12-26 00:44:49 +01:00
</div>
2023-12-26 20:20:32 +01:00
<f-switch
id="fieldrequired"
v-model="modelValue.required"
label="Erforderlich"
size="sm"
name="fieldrequired"
inline
@update:modelValue="$emit('update:modelValue', {...modelValue, required: $event})"
></f-switch>
2024-04-16 23:15:05 +02:00
<f-switch
id="allowcustom"
:model-value="modelValue.allowcustom"
label="Eigene Option erlauben"
size="sm"
name="allowcustom"
inline
@update:modelValue="$emit('update:modelValue', {...modelValue, allowcustom: $event})"
></f-switch>
2023-12-26 00:44:49 +01:00
</template>
2024-07-03 16:37:58 +02:00
<script lang="js" setup>
2024-04-11 23:01:52 +02:00
import useElements from './useElements.js';
2024-07-03 16:37:58 +02:00
const { addOption, setOption, removeOption } = useElements();
2024-04-11 23:01:52 +02:00
2023-12-26 00:44:49 +01:00
const props = defineProps({
modelValue: {},
2023-12-31 14:29:50 +01:00
meta: {},
payload: {},
2023-12-26 00:44:49 +01:00
});
const emit = defineEmits(['update:modelValue']);
</script>