mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
82 lines (78 loc) • 2.89 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.InvalidFormValue = void 0;
exports.transformBankCard = transformBankCard;
exports.transformFormValues = transformFormValues;
exports.transformValueToNames = void 0;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _ut = require("ut2");
// 转换
// 标识无效表单值
var InvalidFormValue = exports.InvalidFormValue = "_invalid_".concat(Math.random(), "_");
// 转换银行卡号
function transformBankCard(val) {
var char = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';
if (typeof val !== 'string') {
return val;
}
var ret = val.replace(/\s/g, '');
if (char) {
var reg = new RegExp("\\".concat(char), 'g');
ret = val.replace(reg, '');
}
return ret;
}
// 转换表单值
function transformFormValues(values, transforms, currentLevelValues) {
if ((0, _ut.isArray)(values) && values.length <= 0 || (0, _ut.isArray)(transforms) && transforms.length <= 0 || !transforms) {
return values;
}
var ret;
if ((0, _ut.isArray)(values) && (0, _ut.isArray)(transforms)) {
ret = values.map(function (item, index) {
if ((0, _typeof2.default)(item) === 'object' || (0, _ut.isArray)(item)) {
return transformFormValues(item, transforms[index]);
}
if (typeof transforms[index] === 'function') {
return transforms[index](item);
}
return item;
});
} else if ((0, _typeof2.default)(values) === 'object' && (0, _typeof2.default)(transforms) === 'object') {
ret = {};
for (var key in values) {
if ((0, _typeof2.default)(values[key]) === 'object' || (0, _ut.isArray)(values[key])) {
ret[key] = transformFormValues(values[key], transforms[key], ret);
} else if (typeof transforms[key] === 'function') {
ret[key] = transforms[key](values[key], ret);
} else {
ret[key] = values[key];
}
if (ret[key] === InvalidFormValue) {
delete ret[key];
}
}
} else if (typeof transforms === 'function') {
ret = transforms(values, currentLevelValues);
} else {
ret = values;
}
return ret;
}
var transformValueToNames = exports.transformValueToNames = function transformValueToNames(value, currentLevelValues, names) {
if ((0, _ut.isArray)(names) && names.length > 0) {
names.forEach(function (item, index) {
var currentValue = (0, _ut.isArray)(value) && value.length > 0 ? value[index] : undefined;
if ((0, _ut.isArray)(item) && item.length > 0) {
(0, _ut.set)(currentLevelValues, item, currentValue);
} else if ((0, _ut.isString)(item)) {
currentLevelValues[item] = currentValue;
}
});
return InvalidFormValue;
}
return value;
};