UNPKG

form-generator-iview

Version:

A form generator with json schema based on iview ui

49 lines (48 loc) 1.68 kB
/** * for some reason we don't use the origin required prop: * (1)、we have cutom components like logicinput which need to cutom the required rule too; * (2)、the origin require validate for empty array is valid, which not meet our need; * * notice: consider the iview use the old version of async-validator */ import {getValidType} from './getValidType'; export const getRequiredRules = function getRequiredRulesFunc(field) { let rules = []; const type = field.type; const subtype = field.subtype; // 解决区间输入时的required校验失效问题 if (['TimePicker', 'DatePicker'].includes(type) && ['daterange', 'datetimerange'].includes(subtype)) { rules.push({ validator(rule, value, callback) { if (value.length === 2 && value[0] && value[1]) { callback(); } else { callback(new Error(field.label + '不可为空')); } }, trigger: 'change' }); } // 自定义组件的required校验 if (['logicinput', 'logicselect'].includes(type)) { rules.push({ validator(rule, value, callback) { if (value.logic && value.value) { callback(); } else { callback(new Error(field.label + '不可为空')); } }, trigger: 'change' }); } rules.push({ required: true, type: getValidType(field), message: (field.label || field.model) + '不可为空', trigger: 'change' }); return rules; };