You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.0 KiB
53 lines
1.0 KiB
<template>
|
|
<a-checkbox-group :options="options" :value="checkboxArray" @change="onChange" />
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: 'JCheckbox',
|
|
props: {
|
|
value:{
|
|
type: String,
|
|
required: false
|
|
},
|
|
readOnly:{
|
|
type: Boolean,
|
|
required: false,
|
|
default: false
|
|
},
|
|
options:{
|
|
type: Array,
|
|
required: true
|
|
},
|
|
triggerChange:{
|
|
type: Boolean,
|
|
required: false,
|
|
default: false
|
|
}
|
|
},
|
|
data(){
|
|
return {
|
|
checkboxArray:!this.value?[]:this.value.split(",")
|
|
}
|
|
},
|
|
watch:{
|
|
value (val) {
|
|
if(!val){
|
|
this.checkboxArray = []
|
|
}else{
|
|
this.checkboxArray = this.value.split(",")
|
|
}
|
|
}
|
|
},
|
|
methods:{
|
|
onChange (checkedValues) {
|
|
if(this.triggerChange){
|
|
this.$emit('change', checkedValues.join(","));
|
|
}else{
|
|
this.$emit('input', checkedValues.join(","));
|
|
}
|
|
},
|
|
}
|
|
}
|
|
</script>
|