123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
- import { createVNode as _createVNode } from "vue";
- import { computed, defineComponent } from 'vue';
- import initDefaultProps from '../_util/props-util/initDefaultProps';
- import CloseOutlined from "@ant-design/icons-vue/es/icons/CloseOutlined";
- import CheckOutlined from "@ant-design/icons-vue/es/icons/CheckOutlined";
- import CheckCircleFilled from "@ant-design/icons-vue/es/icons/CheckCircleFilled";
- import CloseCircleFilled from "@ant-design/icons-vue/es/icons/CloseCircleFilled";
- import Line from './Line';
- import Circle from './Circle';
- import Steps from './Steps';
- import { getSuccessPercent, validProgress } from './utils';
- import useConfigInject from '../_util/hooks/useConfigInject';
- import devWarning from '../vc-util/devWarning';
- import { progressProps, progressStatuses } from './props';
- export default defineComponent({
- compatConfig: {
- MODE: 3
- },
- name: 'AProgress',
- props: initDefaultProps(progressProps(), {
- type: 'line',
- percent: 0,
- showInfo: true,
- // null for different theme definition
- trailColor: null,
- size: 'default',
- strokeLinecap: 'round'
- }),
- slots: ['format'],
- setup: function setup(props, _ref) {
- var slots = _ref.slots;
- var _useConfigInject = useConfigInject('progress', props),
- prefixCls = _useConfigInject.prefixCls,
- direction = _useConfigInject.direction;
- devWarning(props.successPercent == undefined, 'Progress', '`successPercent` is deprecated. Please use `success.percent` instead.');
- var classString = computed(function () {
- var _ref2;
- var type = props.type,
- showInfo = props.showInfo,
- size = props.size;
- var pre = prefixCls.value;
- return _ref2 = {}, _defineProperty(_ref2, pre, true), _defineProperty(_ref2, "".concat(pre, "-").concat(type === 'dashboard' && 'circle' || type), true), _defineProperty(_ref2, "".concat(pre, "-show-info"), showInfo), _defineProperty(_ref2, "".concat(pre, "-").concat(size), size), _defineProperty(_ref2, "".concat(pre, "-rtl"), direction.value === 'rtl'), _ref2;
- });
- var percentNumber = computed(function () {
- var _props$percent = props.percent,
- percent = _props$percent === void 0 ? 0 : _props$percent;
- var successPercent = getSuccessPercent(props);
- return parseInt(successPercent !== undefined ? successPercent.toString() : percent.toString(), 10);
- });
- var progressStatus = computed(function () {
- var status = props.status;
- if (progressStatuses.indexOf(status) < 0 && percentNumber.value >= 100) {
- return 'success';
- }
- return status || 'normal';
- });
- var renderProcessInfo = function renderProcessInfo() {
- var showInfo = props.showInfo,
- format = props.format,
- type = props.type,
- percent = props.percent,
- title = props.title;
- var successPercent = getSuccessPercent(props);
- if (!showInfo) return null;
- var text;
- var textFormatter = format || (slots === null || slots === void 0 ? void 0 : slots.format) || function (val) {
- return "".concat(val, "%");
- };
- var isLineType = type === 'line';
- if (format || slots !== null && slots !== void 0 && slots.format || progressStatus.value !== 'exception' && progressStatus.value !== 'success') {
- text = textFormatter(validProgress(percent), validProgress(successPercent));
- } else if (progressStatus.value === 'exception') {
- text = isLineType ? _createVNode(CloseCircleFilled, null, null) : _createVNode(CloseOutlined, null, null);
- } else if (progressStatus.value === 'success') {
- text = isLineType ? _createVNode(CheckCircleFilled, null, null) : _createVNode(CheckOutlined, null, null);
- }
- return _createVNode("span", {
- "class": "".concat(prefixCls.value, "-text"),
- "title": title === undefined && typeof text === 'string' ? text : undefined
- }, [text]);
- };
- return function () {
- var type = props.type,
- steps = props.steps,
- strokeColor = props.strokeColor,
- title = props.title;
- var progressInfo = renderProcessInfo();
- var progress;
- // Render progress shape
- if (type === 'line') {
- progress = steps ? _createVNode(Steps, _objectSpread(_objectSpread({}, props), {}, {
- "strokeColor": typeof strokeColor === 'string' ? strokeColor : undefined,
- "prefixCls": prefixCls.value,
- "steps": steps
- }), {
- default: function _default() {
- return [progressInfo];
- }
- }) : _createVNode(Line, _objectSpread(_objectSpread({}, props), {}, {
- "prefixCls": prefixCls.value
- }), {
- default: function _default() {
- return [progressInfo];
- }
- });
- } else if (type === 'circle' || type === 'dashboard') {
- progress = _createVNode(Circle, _objectSpread(_objectSpread({}, props), {}, {
- "prefixCls": prefixCls.value
- }), {
- default: function _default() {
- return [progressInfo];
- }
- });
- }
- var classNames = _objectSpread(_objectSpread({}, classString.value), {}, _defineProperty({}, "".concat(prefixCls.value, "-status-").concat(progressStatus.value), true));
- return _createVNode("div", {
- "class": classNames,
- "title": title
- }, [progress]);
- };
- }
- });
|