94 lines
2.9 KiB
JavaScript
94 lines
2.9 KiB
JavaScript
|
'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;
|