UNPKG

kui-vue

Version:

A high quality UI Toolkit built on Vue.js 2.0

52 lines (50 loc) 1.28 kB
import { Button } from '../button'; export default { name: "RadioButton", props: { value: { type: [String, Number, Boolean], default: false }, disabled: Boolean, label: [String, Number], theme: String, shape: String, }, inject: { groupContext: { default: null }, }, data() { return { defaultChecked: false } }, methods: { change() { let { value, $slots, label, groupContext } = this this.defaultChecked = true if (groupContext) { label = label || $slots.default.text groupContext.change({ label, value }) } else { this.$emit("input", true); this.$emit("change", true); } } }, render() { let { disabled, change, $slots, label, groupContext, value, checked, $attrs } = this let prop = {} if (groupContext) { checked = groupContext.defaultValue == value let { size, shape, theme } = groupContext disabled = disabled || groupContext.disabled prop = { disabled, size, shape, theme, type: checked ? 'primary' : 'default' } } const props = { attrs: { ...$attrs }, on: { click: change }, props: { ...prop } } return ( <Button {...props}>{label || $slots.default}</Button> ) } };