| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | import { canIUseModel } from '../common/version';import { VantComponent } from '../common/component';import { useParent } from '../common/relation';VantComponent({    field: true,    relation: useParent('radio-group', function () {        this.updateFromParent();    }),    classes: ['icon-class', 'label-class'],    props: {        name: null,        value: null,        disabled: Boolean,        useIconSlot: Boolean,        checkedColor: String,        labelPosition: {            type: String,            value: 'right',        },        labelDisabled: Boolean,        shape: {            type: String,            value: 'round',        },        iconSize: {            type: null,            value: 20,        },    },    data: {        direction: '',        parentDisabled: false,    },    methods: {        updateFromParent() {            if (!this.parent) {                return;            }            const { value, disabled: parentDisabled, direction } = this.parent.data;            this.setData({                value,                direction,                parentDisabled,            });        },        emitChange(value) {            const instance = this.parent || this;            instance.$emit('input', value);            instance.$emit('change', value);            if (canIUseModel()) {                instance.setData({ value });            }        },        onChange() {            if (!this.data.disabled && !this.data.parentDisabled) {                this.emitChange(this.data.name);            }        },        onClickLabel() {            const { disabled, parentDisabled, labelDisabled, name } = this.data;            if (!(disabled || parentDisabled) && !labelDisabled) {                this.emitChange(name);            }        },    },});
 |