Files
site/nova/resources/js/components/Form/BooleanField.vue

51 lines
915 B
Vue
Executable File

<template>
<default-field :field="field" :errors="errors" :show-help-text="showHelpText">
<template slot="field">
<checkbox
class="mt-2"
@input="toggle"
:id="field.attribute"
:name="field.name"
:checked="checked"
:disabled="isReadonly"
/>
</template>
</default-field>
</template>
<script>
import { FormField, HandlesValidationErrors } from 'laravel-nova'
export default {
mixins: [HandlesValidationErrors, FormField],
data: () => ({
value: false,
}),
mounted() {
this.value = this.field.value || false
this.field.fill = formData => {
formData.append(this.field.attribute, this.trueValue)
}
},
methods: {
toggle() {
this.value = !this.value
},
},
computed: {
checked() {
return Boolean(this.value)
},
trueValue() {
return +this.checked
},
},
}
</script>