UNPKG

yanzhen-design-vue

Version:

50 lines (49 loc) 1.34 kB
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 };