<template> <div class="form-group" :class="col"> <label :for="name" class="form-control-label">{{ text }}</label> <div class="tab-pane tab-example-result fade show active" role="tabpanel" aria-labelledby="-component-tab"> <div class="btn-group btn-group-toggle" data-toggle="buttons" v-on:click="onClick"> <label class="btn btn-success" :class="[{'active': value === 1}]"> <input type="radio" :name="name" value="1" :value="real_value = 1" v-on="listeners" :id="name + '-1'" > {{ enable }} </label> <label class="btn btn-danger" :class="[{'active': value === 0}]"> <input type="radio" :name="name" value="0" :value="real_value = 0" v-on="listeners" :id="name + '-0'"> {{ disable }} </label> </div> </div> </div> </template> <script> export default { name: 'akaunting-radio-group', props: { name: '', text: '', value: '', enable: '', disable: '', col: '' }, data() { return { focused: false, real_value: this.value }; }, computed: { listeners() { return { ...this.$listeners, change: this.onChange, click: this.onClick, input: this.updateValue, focus: this.onFocus, blur: this.onBlur }; } }, methods: { updateValue(evt) { let val = evt.target.value; this.$emit("input", val); }, onChange(evt) { let val = evt.target.control.value; this.value= val; this.$emit("change", val); }, onClick(evt) { let val = evt.target.control.value; this.value= val; this.$emit("change", val); }, onFocus(evt) { this.focused = true; this.$emit("focus", evt); }, onBlur(evt) { this.focused = false; this.$emit("blur", evt); } } } </script>