scinote-web/app/javascript/vue/forms/fields/multiple_choice.vue
2025-01-09 14:45:21 +01:00

43 lines
892 B
Vue

<template>
<div>
<SelectDropdown
:disabled="fieldDisabled"
:options="options"
:value="value"
@change="saveValue"
:multiple="true"
:withCheckboxes="true"
:clearable="true"
:placeholder="fieldDisabled ? ' ' : null"
/>
</div>
</template>
<script>
import fieldMixin from './field_mixin';
import SelectDropdown from '../../shared/select_dropdown.vue';
export default {
name: 'MultipleChoiceField',
mixins: [fieldMixin],
components: {
SelectDropdown
},
computed: {
value() {
return (this.field.field_value?.selection || []);
},
options() {
if (!this.field.attributes.data.options) {
return [];
}
return this.field.attributes.data.options.map((option) => ([option, option]));
}
},
methods: {
saveValue(value) {
this.$emit('save', value);
}
}
};
</script>