import { Circle as Progresscircle } from 'rc-progress'; import React from 'react'; import Icon from '../icon'; const prefixCls = 'ant-progress'; const statusColorMap = { normal: '#2db7f5', exception: '#ff5500', success: '#87d068' }; class Line extends React.Component { static defaultProps = { percent: 0, strokeWidth: 10, status: 'normal', // exception active showInfo: true, trailColor: '#f3f3f3' } static propTypes = { status: React.PropTypes.oneOf(['normal', 'exception', 'active', 'success']), showInfo: React.PropTypes.bool, percent: React.PropTypes.number, strokeWidth: React.PropTypes.number, trailColor: React.PropTypes.string, format: React.PropTypes.func, } render() { let props = { ...this.props }; if (parseInt(props.percent, 10) === 100) { props.status = 'success'; } let progressInfo; let fullCls = ''; const format = props.format || (percent => `${percent}%`); if (props.showInfo) { if (props.status === 'exception') { progressInfo = ( {props.format ? format(props.percent) : } ); } else if (props.status === 'success') { progressInfo = ( {props.format ? format(props.percent) : } ); } else { progressInfo = ( {format(props.percent)} ); } } else { fullCls = ` ${prefixCls}-line-wrap-full`; } let percentStyle = { width: `${props.percent}%`, height: props.strokeWidth }; return (
{progressInfo}
); } } class Circle extends React.Component { static defaultProps = { width: 132, percent: 0, strokeWidth: 6, status: 'normal', // exception trailColor: '#f3f3f3', } static propTypes = { status: React.PropTypes.oneOf(['normal', 'exception', 'success']), percent: React.PropTypes.number, strokeWidth: React.PropTypes.number, width: React.PropTypes.number, trailColor: React.PropTypes.string, format: React.PropTypes.func, } render() { let props = { ...this.props }; if (parseInt(props.percent, 10) === 100) { props.status = 'success'; } let style = { width: props.width, height: props.width, fontSize: props.width * 0.16 + 6 }; let progressInfo; const format = props.format || (percent => `${percent}%`); if (props.status === 'exception') { progressInfo = ( {props.format ? format(props.percent) : } ); } else if (props.status === 'success') { progressInfo = ( {props.format ? format(props.percent) : } ); } else { progressInfo = ( {format(props.percent)} ); } return (
{progressInfo}
); } } export default { Line, Circle, };