function getTrigger(component) { let trigger = '' if (component.FComponentType && component.FComponentType === 'oneText') { trigger = 'blur' } else if (component.FComponentType && component.FComponentType === 'datePicker') { trigger = 'change' } else if (component.FComponentType && component.FComponentType === 'select') { trigger = 'change' } else if (component.FComponentType && component.FComponentType === 'multiText') { trigger = 'blur' } else if (component.FComponentType && component.FComponentType === 'radio') { trigger = 'change' } else if (component.FComponentType && component.FComponentType === 'checkbox') { trigger = 'change' } else if (component.FComponentType && component.FComponentType === 'dateRange') { trigger = 'change' } else if (component.FComponentType && component.FComponentType === 'timePicker') { trigger = 'change' } else if (component.FComponentType && component.FComponentType === 'timeRange') { trigger = 'change' } else if (component.FComponentType && component.FComponentType === 'inputNumber') { trigger = 'blur' } else if (component.FComponentType && component.FComponentType === 'upload') { trigger = '' } return trigger } function getRules(component) { const config = component.__config__ const rules = [] if (config.required) { rules.push({ required: true, message: component.placeholder ? component.placeholder : `${config.label}不能为空`, trigger: getTrigger(component) }) } if (config.regList && Array.isArray(config.regList)) { config.regList.forEach(item => { if (item.pattern) { rules.push({ pattern: item.pattern, message: item.message, trigger: 'blur' }) } }) } return rules } // 构建表单数据 export function buildFormData(formJson, component, data) { // data.formData.name = '' data[formJson.formModel][component.__vModel__] = component.__config__.defaultValue ? component.__config__.defaultValue : '' } // 构建表单校验规则 export function buildFormRules(formJson, component, data) { const rules = getRules(component) if (rules.length > 0) { // data.rules.name = [{required: true, message: '请输入姓名', trigger: 'blur'}] data[formJson.formRules][component.__vModel__] = rules } } // 构建表单数据 export function buildDialogFormData(formJson, component, dialog, data) { // data.cityDialogFormData.name = '' data[dialog.FFormDataParamName][component.__vModel__] = component.__config__.defaultValue ? component.__config__.defaultValue : '' } // 构建表单校验规则 export function buildDialogFormRules(formJson, component, dialog, data) { const rules = getRules(component) if (rules.length > 0) { // data.cityDialogFormRules.name = [{required: true, message: '请输入姓名', trigger: 'blur'}] data[dialog.FFormRulesParamName][component.__vModel__] = rules } }