mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
69 lines • 2.35 kB
JavaScript
import _typeof from "@babel/runtime/helpers/esm/typeof";
// 转换
import { isArray, isString, set } from 'ut2';
// 标识无效表单值
export var InvalidFormValue = "_invalid_".concat(Math.random(), "_");
// 转换银行卡号
export 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;
}
// 转换表单值
export function transformFormValues(values, transforms, currentLevelValues) {
if (isArray(values) && values.length <= 0 || isArray(transforms) && transforms.length <= 0 || !transforms) {
return values;
}
var ret;
if (isArray(values) && isArray(transforms)) {
ret = values.map(function (item, index) {
if (_typeof(item) === 'object' || isArray(item)) {
return transformFormValues(item, transforms[index]);
}
if (typeof transforms[index] === 'function') {
return transforms[index](item);
}
return item;
});
} else if (_typeof(values) === 'object' && _typeof(transforms) === 'object') {
ret = {};
for (var key in values) {
if (_typeof(values[key]) === 'object' || 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;
}
export var transformValueToNames = function transformValueToNames(value, currentLevelValues, names) {
if (isArray(names) && names.length > 0) {
names.forEach(function (item, index) {
var currentValue = isArray(value) && value.length > 0 ? value[index] : undefined;
if (isArray(item) && item.length > 0) {
set(currentLevelValues, item, currentValue);
} else if (isString(item)) {
currentLevelValues[item] = currentValue;
}
});
return InvalidFormValue;
}
return value;
};