@alifd/meet-react
Version:
Fusion Mobile React UI System Component
50 lines (49 loc) • 1.72 kB
JavaScript
;
exports.__esModule = true;
exports.getValidationRules = getValidationRules;
exports.removeFormAttrs = removeFormAttrs;
var _utils = require("../utils");
function getValidationRules(name, options) {
var validationRules = [];
var addRule = function (optName, defaultMessage, msgName) {
if ((0, _utils.isUndef)(options[optName])) {
return;
}
var r = {};
r[optName] = options[optName];
if (defaultMessage) {
var msgParam = msgName || optName + "Message";
var msg = typeof options[msgParam] === 'undefined' ? defaultMessage : options[msgParam];
msg = msg.replace('{v:name}', name);
msg = msg.replace('{v:value}', r[optName]);
r.message = msg;
}
var trigger = optName + "Trigger";
if (typeof options[trigger] !== 'undefined') {
r.trigger = options[trigger];
}
validationRules.push(r);
};
addRule('required', '必须填写{v:name}');
addRule('min', '{v:name}不能小于{v:value}', 'minmaxMessage');
addRule('max', '{v:name}不能大于{v:value}', 'minmaxMessage');
addRule('minLength', '{v:name}长度不能低于{v:value}', 'minmaxLengthMessage');
addRule('maxLength', '{v:name}长度不能超过{v:value}', 'minmaxLengthMessage');
addRule('length', '{v:name}必须是{v:value}位');
addRule('pattern', '{v:name}不满足要求');
addRule('format', '{v:name}必须是{v:value}');
addRule('validator');
return validationRules;
}
function removeFormAttrs(obj) {
delete obj.field;
delete obj.saveField;
delete obj.autoUnmount;
delete obj.autoValidate;
delete obj.value;
delete obj.defaultValue;
delete obj.useLabelForErrorMessage;
delete obj.onChange;
delete obj.onSubmit;
return obj;
}