ryui-vue
Version:
ry公共组件库
113 lines (105 loc) • 3.2 kB
JavaScript
/**
* 给定一个参数值,名称,返回值名称, 过滤对应返回名称的值
* 示例 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);
};