import fieldIsAllow from "./fieldIsAllow"; export function initForm(formObject){ let keys = Object.keys(formObject); for(let i = 0; i < keys.length; i++){ let key = keys[i]; if(formObject[key].options && formObject[key].options.length > 0){ let initVal = formObject[key].init; let option = formObject[key].options.find(item => item.key === initVal); if (option) { formObject[key].init = option.key; }else{ formObject[key].init = formObject[key].options[0].key; } } formObject[key].val = formObject[key].init; formObject[key].msg = ''; formObject[key].state = 0; formObject[key].showText = ''; } } export function checkFormItem(form,field,enumOptions,reCheckField){ let formItem = form[field]; if (formItem){ if (enumOptions) { // 遍历枚举 for (let i = 0; i < enumOptions.length; i++) { let enumOption = enumOptions[i]; if (enumOption.value === formItem.val){ return true; } } formItem.msg = '选项不在范围内'; return false; } if (reCheckField) { // 检查用字段 formItem.msg = fieldIsAllow({ [reCheckField]:formItem.val, }) }else{ formItem.msg = fieldIsAllow({ [field]:formItem.val, }) } }else{ let r = true; for (const fieldKey in form) { formItem = form[fieldKey]; let depend = form[formItem.depend]; let checkField = fieldKey; if(formItem.reCheckField){ checkField = formItem.reCheckField; } // 禁用值判断 array if(formItem.disables){ if(formItem.disables.indexOf(formItem.val) !== -1){ formItem.msg = '该项内容不合法'; r = false; } } // 枚举值判断 if(formItem.options){ // 有枚举字段,只判断是否在枚举中 console.log(`检测枚举字段:${checkField},值:${formItem.val}`); if(formItem.options.findIndex(item=>item.value == formItem.val) === -1){ console.log(`检测枚举字段:${checkField},值:${formItem.val}不在范围内`); formItem.msg = '选项不在范围内'; r = false; } // 枚举值判断完毕,继续下一个字段 continue; } // 判断是否有依赖字段 if(depend){ if(depend.options){ // 依赖的对象有枚举类型,检查该枚举类型是否有有检测值 let optionItem = depend.options.find(item=>item.value == depend.val); if(!optionItem){ depend.msg = '选项不在范围内'; formItem.msg = '该值依赖项输入异常'; r = false; continue; } if(optionItem.checkField){ // console.log(`采用依赖项的检测字段${optionItem.checkField}`) checkField = optionItem.checkField; } } } // console.log(`检测字段:${checkField},值:${formItem.val}`); formItem.msg = fieldIsAllow({ [checkField]:formItem.val, }) if (formItem.msg){ r = false; } } return r } }