123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import React, { Component } from 'react';
- import './index.less';
- import Icon from '../Icon';
- export class SpecialRadio extends Component {
- render() {
- const { checked, children, onClick, theme = '' } = this.props;
- return (
- <div className={`g-special-radio-wrapper ${theme} ${checked ? 'checked' : ''}`}>
- <div className="g-special-radio" onClick={() => onClick && onClick()}>
- {children}
- <Icon type="check" />
- </div>
- </div>
- );
- }
- }
- export class SpecialRadioGroup extends Component {
- onClickItem(value) {
- const { onChange } = this.props;
- if (onChange) onChange(value);
- }
- render() {
- const { list = [], value, values = [], theme } = this.props;
- return (
- <div className="g-special-radio-group">
- {list.map(item => {
- return (
- <SpecialRadio
- theme={theme}
- checked={value === item.value || values.indexOf(item.value) >= 0}
- onClick={() => this.onClickItem(item.value)}
- >
- {item.label}
- </SpecialRadio>
- );
- })}
- </div>
- );
- }
- }
- export default class Radio extends Component {
- render() {
- const { checked, children, onClick } = this.props;
- return (
- <div className={`g-radio-wrapper ${checked ? 'checked' : ''}`}>
- <div className="g-radio" onClick={() => onClick && onClick()}>
- {children}
- </div>
- </div>
- );
- }
- }
- export class RadioGroup extends Component {
- onClickItem(key) {
- const { onChange } = this.props;
- if (onChange) onChange(key);
- }
- render() {
- const { list = [], value } = this.props;
- return (
- <div className="g-radio-group">
- {list.map(item => {
- return (
- <Radio checked={value === item.key} onClick={() => this.onClickItem(item.key)}>
- {item.label}
- </Radio>
- );
- })}
- </div>
- );
- }
- }
|