UNPKG

vant-fork

Version:

Lightweight Mobile UI Components built on Vue

97 lines (88 loc) 2.33 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _create = _interopRequireDefault(require("../utils/create")); var _findParent = _interopRequireDefault(require("../mixins/find-parent")); var _default = (0, _create.default)({ render: function render() { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; return _c('div', { class: _vm.b({ disabled: _vm.isDisabled }), on: { "click": function click($event) { _vm.$emit('click'); } } }, [_c('span', { class: _vm.b('input') }, [_c('input', { directives: [{ name: "model", rawName: "v-model", value: _vm.currentValue, expression: "currentValue" }], class: _vm.b('control'), attrs: { "type": "radio", "disabled": _vm.isDisabled }, domProps: { "value": _vm.name, "checked": _vm._q(_vm.currentValue, _vm.name) }, on: { "change": function change($event) { _vm.currentValue = _vm.name; } } }), _c('icon', { attrs: { "name": _vm.currentValue === _vm.name ? 'checked' : 'check' } })], 1), _vm.$slots.default ? _c('span', { class: _vm.b('label', _vm.labelPosition), on: { "click": _vm.onClickLabel } }, [_vm._t("default")], 2) : _vm._e()]); }, name: 'radio', mixins: [_findParent.default], props: { name: null, value: null, disabled: Boolean, labelDisabled: Boolean, labelPosition: Boolean }, computed: { currentValue: { get: function get() { return this.parent ? this.parent.value : this.value; }, set: function set(val) { (this.parent || this).$emit('input', val); } }, isDisabled: function isDisabled() { return this.parent ? this.parent.disabled || this.disabled : this.disabled; } }, created: function created() { this.findParent('van-radio-group'); }, methods: { onClickLabel: function onClickLabel() { if (!this.isDisabled && !this.labelDisabled) { this.currentValue = this.name; } } } }); exports.default = _default;