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