112 lines
3.5 KiB
JavaScript
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;
|