44 lines
826 B
Vue
44 lines
826 B
Vue
![]() |
<template>
|
||
|
<a-checkbox-group :options="options" :value="checkboxArray" v-bind="$attrs" @change="onChange" />
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
export default {
|
||
|
name: 'JCheckbox',
|
||
|
props: {
|
||
|
value:{
|
||
|
type: String,
|
||
|
required: false
|
||
|
},
|
||
|
/*label value*/
|
||
|
options:{
|
||
|
type: Array,
|
||
|
required: true
|
||
|
}
|
||
|
},
|
||
|
data(){
|
||
|
return {
|
||
|
checkboxArray:!this.value?[]:this.value.split(",")
|
||
|
}
|
||
|
},
|
||
|
watch:{
|
||
|
value (val) {
|
||
|
if(!val){
|
||
|
this.checkboxArray = []
|
||
|
}else{
|
||
|
this.checkboxArray = this.value.split(",")
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
methods:{
|
||
|
onChange (checkedValues) {
|
||
|
this.$emit('change', checkedValues.join(","));
|
||
|
},
|
||
|
},
|
||
|
model: {
|
||
|
prop: 'value',
|
||
|
event: 'change'
|
||
|
}
|
||
|
}
|
||
|
</script>
|