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){ 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; } // 枚举值判断 if(formItem.options){ // 有枚举字段,只判断是否在枚举中 if(formItem.options.findIndex(item=>item.value == formItem.val) === -1){ 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 } }