import rules from './rules'; /** * 表单验证 * * @param {Object} fmData [表单数据] * @param {Object} opts [参数] * @return {Object} [descrsiption] */ export default function(fmData, opts){ let res = { valid: true, error: '', errors: [], fields: {} }; Object.keys(opts).forEach(key => { let value = fmData[key], item = opts[key], resItem = { valid: true, error: '', errors: [] }; item.forEach(ruleItem => { let {rule, message, param} = ruleItem; if (rules[rule]) { if (!rules[rule].check(value, param)) { message = message ? message : rules[rule].message; if (res.valid) { res.valid = false; res.error = message; } if (resItem.valid) { resItem.valid = false; resItem.error = message; } resItem.errors.push(message); res.errors.push(message); } } }); res.fields[key] = resItem; }); return res; }