jiaqingjiayi-xiaochengxu/甲情_甲意/node_modules/antd-mini/es/Stepper/utils.js

59 lines
1.5 KiB
JavaScript
Raw Normal View History

2024-11-15 03:51:28 +00:00
export function getPrecision(value) {
var valueString = String(value);
if (valueString.indexOf('e-') >= 0) {
return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);
}
var p = 0;
if (valueString.indexOf('.') >= 0) {
p = valueString.length - valueString.indexOf('.') - 1;
}
return p;
}
export function getValidNumber(value, min, max, step, precision) {
if (min === void 0) { min = -Infinity; }
if (max === void 0) { max = Infinity; }
if (typeof value === 'undefined' || value === null) {
return {
valid: true,
value: '',
};
}
var num;
if (typeof value === 'string') {
if (/^\s*$/.test(value)) {
return {
valid: true,
value: '',
};
}
if (!isNaN(Number(value))) {
num = Number(value);
}
}
else {
num = value;
}
if (num > max) {
num = max;
}
else if (num < min) {
num = min;
}
if (typeof num === 'number' && !isNaN(num)) {
if (typeof precision === 'number' && precision >= 0) {
return {
valid: true,
value: num.toFixed(precision),
};
}
precision = Math.max(getPrecision(num), getPrecision(step));
return {
valid: true,
value: num.toFixed(precision),
};
}
return {
valid: false,
};
}