import React, { useEffect, useState } from 'react'; import { Modal, Input, Form, Select, InputNumber, Tooltip } from 'antd'; const { TextArea } = Input; const MetadataDatabaseModal = (props) => { const { onConfirm, onCancel, editData, metadataModels, modelTypes } = props; const [form] = Form.useForm(); const [type, setType] = useState(editData.record.type); useEffect(() => { }, []); const handleOk = () => { form.validateFields().then(values => { if (onConfirm) { let dataSave = JSON.parse(JSON.stringify(values)); dataSave.attributesParam = {}; metadataModels.map(m => { dataSave.attributesParam[m.attributeCode] = values[m.attributeCode]; delete dataSave[m.attributeCode]; }) onConfirm(dataSave); } }) } const validatorNull = (rule, value, getFieldValue, validateFields, label) => { if (!value || !value.trim().length) { return Promise.reject(new Error(`${label}不可空字符串`)); } return Promise.resolve(); } const renderModelItems = () => { const items = metadataModels.filter(mm => mm.modelType === type).map(m => { if (m.control === '文本框') { const rules = [{ required: !m.nullable, message: '' }] if (!m.nullable) { rules.push(({ getFieldValue, validateFields }) => ({ validator(_, value) { return validatorNull(_, value, getFieldValue, validateFields, m.attributeName) } })) rules.push({ max: m.length, message: `${m.attributeName}不超过${m.length}个字符` }) } return 10 ? {m.attributeName.substring(0, 10) + '...'} : m.attributeName} name={m.attributeCode} rules={rules}> } else if (m.control === '数字输入框') { const rules = [{ required: !m.nullable, message: `${m.attributeName}不可空` }] let maxValue = ''; if (m.length) { while (m.length > 0) { maxValue += '9' m.length--; } } return 10 ? {m.attributeName.substring(0, 10) + '...'} : m.attributeName} name={m.attributeCode} rules={rules}> } else { return 10 ? {m.attributeName.substring(0, 10) + '...'} : m.attributeName} name={m.attributeCode} rules={[{ required: !m.nullable, message: `${m.attributeName}不可空` }]}> } }) return items; } return ( handleOk(null)} onCancel={onCancel}>
({ validator(_, value) { return validatorNull(_, value, getFieldValue, validateFields, '元数据名称') } })]}> ({ validator(_, value) { return validatorNull(_, value, getFieldValue, validateFields, '元数据代码') } })]}>