mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
43 lines
804 B
JavaScript
43 lines
804 B
JavaScript
import { createNamespace } from '../utils';
|
|
import { CheckboxMixin } from '../mixins/checkbox';
|
|
|
|
const [createComponent, bem] = createNamespace('radio');
|
|
|
|
export default createComponent({
|
|
mixins: [CheckboxMixin({
|
|
bem,
|
|
role: 'radio',
|
|
parent: 'vanRadio'
|
|
})],
|
|
|
|
computed: {
|
|
currentValue: {
|
|
get() {
|
|
return this.parent ? this.parent.value : this.value;
|
|
},
|
|
|
|
set(val) {
|
|
(this.parent || this).$emit('input', val);
|
|
}
|
|
},
|
|
|
|
checked() {
|
|
return this.currentValue === this.name;
|
|
}
|
|
},
|
|
|
|
methods: {
|
|
onClickIcon() {
|
|
if (!this.isDisabled) {
|
|
this.currentValue = this.name;
|
|
}
|
|
},
|
|
|
|
onClickLabel() {
|
|
if (!this.isDisabled && !this.labelDisabled) {
|
|
this.currentValue = this.name;
|
|
}
|
|
}
|
|
}
|
|
});
|