UNPKG

ryui-vue

Version:

ry公共组件库

113 lines (105 loc) 3.2 kB
/** * 给定一个参数值,名称,返回值名称, 过滤对应返回名称的值 * 示例 0 | filterBaseParams('value','type', data) * @param {*} currentParams 当前参数值 * @param {string} currentParamsName 当前参数名称 * @param {string} returnParamsName 返回参数值名称 * @param {Array} appendData 引用数据 * @return 返回参数值名称对应的值 */ export const filterBaseParams = ( currentParams, currentParamsName, returnParamsName, appendData ) => { if (currentParams === undefined) return currentParams; return appendData.find((item) => { return item[currentParamsName] === currentParams; })[returnParamsName]; }; /** * 数字万分化 * @param {*} num 当前数字 * @param {*} language 格式化语言 * @return 返回万分化之后的数字 */ export const formatNumberW = (num, language = 'us') => { if (!isNumber(num)) return; num = parseFloat(num); const unit = language === 'us' ? 'W' : '万'; return num > 1e4 ? (num / 1e4).toFixed(2) + unit : formatNumberFixed(num); }; /** * 数字千分位 * @param {*} num 传入的数据 * @return 返回格式化数字 */ export const numberToCurrencyNo = (num) => { if (!num) return 0; // 获取整数部分 const intPart = Math.trunc(num); // 整数部分处理,增加, const intPartFormat = intPart .toString() .replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); // 预定义小数部分 let floatPart = ''; // 将数值截取为小数部分和整数部分 const valueArray = num.toString().split('.'); if (valueArray.length === 2) { // 有小数部分 floatPart = valueArray[1].toString(); // 取得小数部分 return intPartFormat + '.' + floatPart; } return intPartFormat + floatPart; }; /** * 数字保留小数点位数 * @param {*} num 保留位数 * @param {number} digit 保留位数 * @return 返回数字保留小数点位数之后的数字 */ export const formatNumberFixed = (num, digit = 2) => { if (!isNumber(num)) return; num = parseFloat(num); return num != 0 ? num.toFixed(digit) : num; }; /** * 验证数据是否为数字 * @param {*} num 当前数 * @return boolean 返回验证结果 */ export function isNumber(num) { return parseFloat(num).toString() !== 'NaN'; } /** * 时间格式化 * @param {*} 当前时间 * @param {*} 类型 * @return 返回格式化时间 */ import dayjs from 'dayjs'; export const formatTime = (time, type = 'YYYY-MM-DD HH:mm:ss') => { if (!time) return; return dayjs(time).format(type); }; /** * 性别格式化 * @param {*} gender 性别 * @return string */ export const filterGender = (gender) => { return gender === 1 ? '男' : gender === 2 ? '女' : '未知'; }; /** * 获取最后一级农机类型 * @param {*} classificationName 完整农机类型 * @return {string|undefined} 返回最后一级农机类型 * @example 收获后处理机械/干燥机械/谷物烘干机->谷物烘干机 */ export const filterLastClassificationName = (classificationName) => { if (!classificationName) return; const index = classificationName.lastIndexOf('/'); return classificationName.substring(index + 1, classificationName.length); };