NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/ant-design-vue/lib/progress/circle.js
2023-09-14 14:47:11 +08:00

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;