Statistic.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import _extends from 'babel-runtime/helpers/extends';
  2. import PropTypes from '../_util/vue-types';
  3. import { getComponentFromProp, initDefaultProps } from '../_util/props-util';
  4. import { ConfigConsumerProps } from '../config-provider/configConsumerProps';
  5. import StatisticNumber from './Number';
  6. export var StatisticProps = {
  7. prefixCls: PropTypes.string,
  8. decimalSeparator: PropTypes.string,
  9. groupSeparator: PropTypes.string,
  10. format: PropTypes.string,
  11. value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]),
  12. valueStyle: PropTypes.any,
  13. valueRender: PropTypes.any,
  14. formatter: PropTypes.any,
  15. precision: PropTypes.number,
  16. prefix: PropTypes.any,
  17. suffix: PropTypes.any,
  18. title: PropTypes.any
  19. };
  20. export default {
  21. name: 'AStatistic',
  22. props: initDefaultProps(StatisticProps, {
  23. decimalSeparator: '.',
  24. groupSeparator: ','
  25. }),
  26. inject: {
  27. configProvider: { 'default': function _default() {
  28. return ConfigConsumerProps;
  29. } }
  30. },
  31. render: function render() {
  32. var h = arguments[0];
  33. var _$props = this.$props,
  34. customizePrefixCls = _$props.prefixCls,
  35. _$props$value = _$props.value,
  36. value = _$props$value === undefined ? 0 : _$props$value,
  37. valueStyle = _$props.valueStyle,
  38. valueRender = _$props.valueRender;
  39. var getPrefixCls = this.configProvider.getPrefixCls;
  40. var prefixCls = getPrefixCls('statistic', customizePrefixCls);
  41. var title = getComponentFromProp(this, 'title');
  42. var prefix = getComponentFromProp(this, 'prefix');
  43. var suffix = getComponentFromProp(this, 'suffix');
  44. var formatter = getComponentFromProp(this, 'formatter', {}, false);
  45. var valueNode = h(StatisticNumber, { props: _extends({}, this.$props, { prefixCls: prefixCls, value: value, formatter: formatter }) });
  46. if (valueRender) {
  47. valueNode = valueRender(valueNode);
  48. }
  49. return h(
  50. 'div',
  51. { 'class': prefixCls },
  52. [title && h(
  53. 'div',
  54. { 'class': prefixCls + '-title' },
  55. [title]
  56. ), h(
  57. 'div',
  58. { style: valueStyle, 'class': prefixCls + '-content' },
  59. [prefix && h(
  60. 'span',
  61. { 'class': prefixCls + '-content-prefix' },
  62. [prefix]
  63. ), valueNode, suffix && h(
  64. 'span',
  65. { 'class': prefixCls + '-content-suffix' },
  66. [suffix]
  67. )]
  68. )]
  69. );
  70. }
  71. };