Files

112 lines
3.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseNumber = exports.fF = exports.formatForm = exports.tV = exports.tryValue = exports.parseType = void 0;
const is_1 = require("./is");
/**
* 根据指定类型生成新类型的数据
* @param originalInfo 原始数据,需要转换类型的数据
* @param newInfo 转换类型之后的数据
*/
function parseType(originalInfo, newInfo, mapper = null) {
var _a;
if (originalInfo) {
if ((0, is_1.isEmpty)(mapper)) {
for (const name in newInfo) {
if (originalInfo.hasOwnProperty(name)) {
newInfo[name] = originalInfo[name];
}
}
}
else {
let fieldIdx = -1;
let originalFieldName = "";
let name;
for (name in newInfo) {
fieldIdx = mapper === null || mapper === void 0 ? void 0 : mapper[0].indexOf(name);
originalFieldName = ((_a = mapper === null || mapper === void 0 ? void 0 : mapper[1]) === null || _a === void 0 ? void 0 : _a[(0, is_1.isEmpty)(fieldIdx) ? -1 : (fieldIdx || 0)]) || "";
console.log(name, fieldIdx, originalFieldName, "字段:", originalFieldName);
if (originalFieldName) {
if (originalInfo.hasOwnProperty(originalFieldName)) {
newInfo[name] = originalInfo[originalFieldName];
}
}
}
}
}
else {
return newInfo;
}
return newInfo;
}
exports.parseType = parseType;
/**
* 尝试获取子属性的值并且出错时可返回指定类型的默认值
* 链式获取数据
* {children:{children:{name,age}}} 获取name的值
* tryValue({children:{chidren:{name,age}}},["children","children","name"],"--")
* @param obj 原始对象
* @param names 按层级排列的子属性
* @param defV 指定返回的默认值
*/
const tryValue = (obj, names, defV = null) => {
let _obj = obj;
const getDeepValue = (item, name) => {
return item[name];
};
try {
names.forEach(item => {
_obj = getDeepValue(_obj, item);
});
if ((0, is_1.isEmpty)(_obj)) {
return defV;
}
if (isNaN(_obj))
return defV;
else
return _obj;
}
catch (error) {
return defV;
}
};
exports.tryValue = tryValue;
exports.tV = exports.tryValue;
/**
* 格式化表单
* 方法实现参考地址:https://www.cnblogs.com/yaowen/p/5574923.html
*/
const formatForm = (data, defValue = undefined) => {
/**
* 格式化表单一
* 清楚字符串前后空格
*/
// 目前只对集合处理
if (data) {
const isObject = data.toString() == "[object Object]" ? true : false;
if (isObject) {
const objs = Object.keys(data), len = objs.length;
for (let i = 0; i < len; i++) {
if (typeof (data[objs[i]]) == "string") {
data[objs[i]] = data[objs[i]].trim();
}
const v = data[objs[i]];
data[objs[i]] = (0, is_1.isEmpty)(v) ? defValue : v;
}
}
}
return data;
};
exports.formatForm = formatForm;
exports.fF = exports.formatForm;
/**
* 转换为数字
*/
const parseNumber = (value) => {
const num = parseInt(value === null || value === void 0 ? void 0 : value.toString());
if (isNaN(num))
return 1;
else
return num;
};
exports.parseNumber = parseNumber;