|
|
|
@ -2,7 +2,10 @@ import classNames from 'classnames';
|
|
|
|
|
import PropTypes from '../_util/vue-types';
|
|
|
|
|
import { getOptionProps, initDefaultProps, getListeners } from '../_util/props-util';
|
|
|
|
|
import { ConfigConsumerProps } from '../config-provider';
|
|
|
|
|
import Icon from '../icon';
|
|
|
|
|
import CloseOutlined from '@ant-design/icons-vue/CloseOutlined';
|
|
|
|
|
import CheckOutlined from '@ant-design/icons-vue/CheckOutlined';
|
|
|
|
|
import CheckCircleFilled from '@ant-design/icons-vue/CheckCircleFilled';
|
|
|
|
|
import CloseCircleFilled from '@ant-design/icons-vue/CloseCircleFilled';
|
|
|
|
|
import Line from './line';
|
|
|
|
|
import Circle from './circle';
|
|
|
|
|
import { validProgress } from './utils';
|
|
|
|
@ -66,7 +69,7 @@ export default {
|
|
|
|
|
let text;
|
|
|
|
|
const textFormatter =
|
|
|
|
|
format || this.$scopedSlots.format || (percentNumber => `${percentNumber}%`);
|
|
|
|
|
const iconType = type === 'circle' || type === 'dashboard' ? '' : '-circle';
|
|
|
|
|
const isLineType = type === 'line';
|
|
|
|
|
if (
|
|
|
|
|
format ||
|
|
|
|
|
this.$scopedSlots.format ||
|
|
|
|
@ -74,9 +77,9 @@ export default {
|
|
|
|
|
) {
|
|
|
|
|
text = textFormatter(validProgress(percent), validProgress(successPercent));
|
|
|
|
|
} else if (progressStatus === 'exception') {
|
|
|
|
|
text = <Icon type={`close${iconType}`} theme={type === 'line' ? 'filled' : 'outlined'} />;
|
|
|
|
|
text = isLineType ? <CloseCircleFilled /> : <CloseOutlined />;
|
|
|
|
|
} else if (progressStatus === 'success') {
|
|
|
|
|
text = <Icon type={`check${iconType}`} theme={type === 'line' ? 'filled' : 'outlined'} />;
|
|
|
|
|
text = isLineType ? <CheckCircleFilled /> : <CheckOutlined />;
|
|
|
|
|
}
|
|
|
|
|
return (
|
|
|
|
|
<span class={`${prefixCls}-text`} title={typeof text === 'string' ? text : undefined}>
|
|
|
|
|