12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- 'use strict';
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
- var _defineProperty3 = _interopRequireDefault(_defineProperty2);
- var _vcProgress = require('../vc-progress');
- var _utils = require('./utils');
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
- var statusColorMap = {
- normal: '#108ee9',
- exception: '#ff5500',
- success: '#87d068'
- };
- function getPercentage(_ref) {
- var percent = _ref.percent,
- successPercent = _ref.successPercent;
- var ptg = (0, _utils.validProgress)(percent);
- if (!successPercent) return ptg;
- var successPtg = (0, _utils.validProgress)(successPercent);
- return [successPercent, (0, _utils.validProgress)(ptg - successPtg)];
- }
- function getStrokeColor(_ref2) {
- var progressStatus = _ref2.progressStatus,
- successPercent = _ref2.successPercent,
- strokeColor = _ref2.strokeColor;
- var color = strokeColor || statusColorMap[progressStatus];
- if (!successPercent) return color;
- return [statusColorMap.success, color];
- }
- var Circle = {
- functional: true,
- render: function render(h, context) {
- var _wrapperClassName;
- var props = context.props,
- children = context.children;
- var prefixCls = props.prefixCls,
- width = props.width,
- strokeWidth = props.strokeWidth,
- trailColor = props.trailColor,
- strokeLinecap = props.strokeLinecap,
- gapPosition = props.gapPosition,
- gapDegree = props.gapDegree,
- type = props.type;
- var circleSize = width || 120;
- var circleStyle = {
- width: typeof circleSize === 'number' ? circleSize + 'px' : circleSize,
- height: typeof circleSize === 'number' ? circleSize + 'px' : circleSize,
- fontSize: circleSize * 0.15 + 6
- };
- var circleWidth = strokeWidth || 6;
- var gapPos = gapPosition || type === 'dashboard' && 'bottom' || 'top';
- var gapDeg = gapDegree || type === 'dashboard' && 75;
- var strokeColor = getStrokeColor(props);
- var isGradient = Object.prototype.toString.call(strokeColor) === '[object Object]';
- var wrapperClassName = (_wrapperClassName = {}, (0, _defineProperty3['default'])(_wrapperClassName, prefixCls + '-inner', true), (0, _defineProperty3['default'])(_wrapperClassName, prefixCls + '-circle-gradient', isGradient), _wrapperClassName);
- return h(
- 'div',
- { 'class': wrapperClassName, style: circleStyle },
- [h(_vcProgress.Circle, {
- attrs: {
- percent: getPercentage(props),
- strokeWidth: circleWidth,
- trailWidth: circleWidth,
- strokeColor: strokeColor,
- strokeLinecap: strokeLinecap,
- trailColor: trailColor,
- prefixCls: prefixCls,
- gapDegree: gapDeg,
- gapPosition: gapPos
- }
- }), children]
- );
- }
- };
- exports['default'] = Circle;
|