| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- 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;
- }
- // 禁用值判断 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
- }
- }
|