77 lines
2.4 KiB
JavaScript
77 lines
2.4 KiB
JavaScript
|
import _extends from 'babel-runtime/helpers/extends';
|
||
|
import PropTypes from '../_util/vue-types';
|
||
|
import { getComponentFromProp, initDefaultProps } from '../_util/props-util';
|
||
|
import { ConfigConsumerProps } from '../config-provider/configConsumerProps';
|
||
|
import StatisticNumber from './Number';
|
||
|
|
||
|
export var StatisticProps = {
|
||
|
prefixCls: PropTypes.string,
|
||
|
decimalSeparator: PropTypes.string,
|
||
|
groupSeparator: PropTypes.string,
|
||
|
format: PropTypes.string,
|
||
|
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]),
|
||
|
valueStyle: PropTypes.any,
|
||
|
valueRender: PropTypes.any,
|
||
|
formatter: PropTypes.any,
|
||
|
precision: PropTypes.number,
|
||
|
prefix: PropTypes.any,
|
||
|
suffix: PropTypes.any,
|
||
|
title: PropTypes.any
|
||
|
};
|
||
|
|
||
|
export default {
|
||
|
name: 'AStatistic',
|
||
|
props: initDefaultProps(StatisticProps, {
|
||
|
decimalSeparator: '.',
|
||
|
groupSeparator: ','
|
||
|
}),
|
||
|
inject: {
|
||
|
configProvider: { 'default': function _default() {
|
||
|
return ConfigConsumerProps;
|
||
|
} }
|
||
|
},
|
||
|
|
||
|
render: function render() {
|
||
|
var h = arguments[0];
|
||
|
var _$props = this.$props,
|
||
|
customizePrefixCls = _$props.prefixCls,
|
||
|
_$props$value = _$props.value,
|
||
|
value = _$props$value === undefined ? 0 : _$props$value,
|
||
|
valueStyle = _$props.valueStyle,
|
||
|
valueRender = _$props.valueRender;
|
||
|
|
||
|
var getPrefixCls = this.configProvider.getPrefixCls;
|
||
|
var prefixCls = getPrefixCls('statistic', customizePrefixCls);
|
||
|
|
||
|
var title = getComponentFromProp(this, 'title');
|
||
|
var prefix = getComponentFromProp(this, 'prefix');
|
||
|
var suffix = getComponentFromProp(this, 'suffix');
|
||
|
var formatter = getComponentFromProp(this, 'formatter', {}, false);
|
||
|
var valueNode = h(StatisticNumber, { props: _extends({}, this.$props, { prefixCls: prefixCls, value: value, formatter: formatter }) });
|
||
|
if (valueRender) {
|
||
|
valueNode = valueRender(valueNode);
|
||
|
}
|
||
|
|
||
|
return h(
|
||
|
'div',
|
||
|
{ 'class': prefixCls },
|
||
|
[title && h(
|
||
|
'div',
|
||
|
{ 'class': prefixCls + '-title' },
|
||
|
[title]
|
||
|
), h(
|
||
|
'div',
|
||
|
{ style: valueStyle, 'class': prefixCls + '-content' },
|
||
|
[prefix && h(
|
||
|
'span',
|
||
|
{ 'class': prefixCls + '-content-prefix' },
|
||
|
[prefix]
|
||
|
), valueNode, suffix && h(
|
||
|
'span',
|
||
|
{ 'class': prefixCls + '-content-suffix' },
|
||
|
[suffix]
|
||
|
)]
|
||
|
)]
|
||
|
);
|
||
|
}
|
||
|
};
|