"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;