yanzhen-design-vue
Version:
50 lines (49 loc) • 1.34 kB
JavaScript
import { computed } from "vue";
import { Enum } from "@yanzhen-libs/utils-biz-object";
import { toNumber, isString } from "lodash-es";
function useProgress(props) {
const showStyleEnums = Enum.SHOW_STYLE_ENUMS();
const convertEnums = Enum.CONVERT_UNIT_ENUMS();
const convertSuffixEnums = Enum.ConvertUnit.suffixEnums();
const progressBarNum = computed(() => {
const { convertUnit, precision, value } = props;
if (!value) return 0;
let val = Number.parseFloat(value);
if (Number.isNaN(val)) return 0;
switch (Number(convertUnit)) {
case convertEnums.THOUSAND:
val = val / 10;
break;
case convertEnums.TEN_THOUSAND:
val = val / 100;
break;
}
const precisionNum = toNumber(precision);
if (!Number.isNaN(precisionNum)) {
val = Number.parseFloat(val.toFixed(precisionNum));
}
return val;
});
const showProgress = computed(() => {
const { showStyle } = props;
if (isString(showStyle)) {
return showStyle === showStyleEnums.PROGRESS;
}
return false;
});
const convertSuffix = computed(() => {
const { convertUnit } = props;
if (convertUnit) {
return convertSuffixEnums[convertUnit];
}
return "";
});
return {
progressBarNum,
showProgress,
convertSuffix
};
}
export {
useProgress
};