import { Progress, InputNumber } from 'antd';
import toNumber from 'lodash.tonumber';
import React, { useMemo } from 'react';
import type { ProFieldFC } from '../../index';
export function getProgressStatus(text: number): 'success' | 'exception' | 'normal' | 'active' {
if (typeof text !== 'number') {
return 'exception';
}
if (text === 100) {
return 'success';
}
if (text < 0) {
return 'exception';
}
if (text < 100) {
return 'active';
}
return 'normal';
}
/**
* 进度条组件
*
* @param
*/
const FieldProgress: ProFieldFC<{
text: number | string;
placeholder?: any;
}> = ({ text, mode, render, plain, renderFormItem, fieldProps, placeholder }, ref) => {
const realValue = useMemo(
() =>
typeof text === 'string' && (text as string).includes('%')
? toNumber((text as string).replace('%', ''))
: toNumber(text),
[text],
);
if (mode === 'read') {
const dom = (
);
if (render) {
return render(realValue, { mode, ...fieldProps }, dom);
}
return dom;
}
if (mode === 'edit' || mode === 'update') {
const dom = ;
if (renderFormItem) {
return renderFormItem(text, { mode, ...fieldProps }, dom);
}
return dom;
}
return null;
};
export default React.forwardRef(FieldProgress);