import React, { useEffect, useState } from 'react'; import { Modal, Input, Form, Select, InputNumber, Tooltip, Tag, message } from 'antd'; import { UploadLocal } from '$components'; const { TextArea } = Input; const MetadataFileModal = (props) => { const { onConfirm, onCancel, editData, metadataModels } = props; const [form] = Form.useForm(); const [editUrl, setEditUrl] = useState([]); 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 === '文件').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 = ''; let length = m.length; if (length) { while (length > 0) { maxValue += '9' 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; } const vsjunct = (params) => { if (params.length) { let appendix = [] for (let p of params) { appendix.push({ fName: p.name, size: p.size, fileSize: p.size, storageUrl: p.storageUrl,//必须有storageUrl }) } setEditUrl(appendix) } else { setEditUrl([]) } } const handleCancel = () => { if (editData.add) { if (form.getFieldValue('files') && form.getFieldValue('files').length) { onCancel(form.getFieldValue('files')[0]); } else { onCancel(null); } } else { if (!(form.getFieldValue('files') && form.getFieldValue('files').length)) { message.warning('文件已被删除,可重新编辑上传'); onCancel(null, editData.record.id); } else { if (!editData.record.files.length) { message.warning('文件需确定提交,才进行入库存储'); onCancel(form.getFieldValue('files')[0]); } else { onCancel(null); } } } } return ( handleOk(null)} onCancel={() => handleCancel()}>
({ validator(_, value) { return validatorNull(_, value, getFieldValue, validateFields, '文件名称') } })]}>