import React, { useState, useEffect } from 'react' import { Form, Row, Col, Button, Modal } from 'antd' import LazyCascader from '@/components/LazyCascader' import { ProFormSelect, ProFormText, ProFormTextArea } from '@ant-design/pro-form' import { useDispatch, connect } from 'umi' import { ChangeCompMap } from '@/pages/Customer/Company/components/ChangeCompany' import { isNullOrUnDef } from '@/utils/is' import TelephoneFormItem from './TelephoneFormItem' import { validateEnum } from '@/pages/Customer/Company/components/AddCompany/CompanyFormItem' const AddClient = props => { const { visible, onCancel, reload, onConfirm, dataId, dataType, defaultValues, sourceList, ...resetModalProps } = props const dispatch = useDispatch() const [formRef] = Form.useForm() const layout = { layout: 'horizontal', labelCol: { flex: '100px' } } const [state, setState] = useState({ validStatusFtl: '', confirmLoading: false, extraConfirmLoading: false }) useEffect(() => { if (visible && !sourceList?.length) { dispatch({ type: 'client/fetchSourceList' }) } }, [visible]) const handleChange = changedValues => { if (!changedValues) return if ('clientName' in changedValues) { if (!changedValues.clientName || changedValues.clientName?.length === 1) { formRef?.setFieldsValue({ niceName: '' }) return } const [lastName, ...firstName] = changedValues.clientName.split('') const newClientName = `${lastName}(${firstName.join('')})工:` formRef?.setFieldsValue({ niceName: newClientName }) } if ('qq' in changedValues) { if (!changedValues.qq) { formRef?.setFieldsValue({ email: '' }) return } formRef?.setFieldsValue({ email: `${changedValues.qq}@qq.com` }) } } const handleOnOk = () => { formRef ?.validateFields() .then(async values => { setState({ ...state, [dataId ? 'extraConfirmLoading' : 'comfirmLoading']: true }) try { const success = await onConfirm(values) if (success) { !isNullOrUnDef(reload) && reload() formRef?.resetFields() setTimeout(() => { setState({ ...state, validStatusFtl: '' }) onCancel() }, 80) } } finally { setState({ ...state, [dataId ? 'extraConfirmLoading' : 'comfirmLoading']: false }) } }) .catch(({ values }) => { if ('telephone' in values && !values.telephone) { setState({ ...state, validStatusFtl: validateEnum.Error }) } }) } return ( document.getElementById('root')} footer={
{dataId ? ( ) : null}
} >
{dataId ?
) } export default connect(({ client }) => ({ sourceList: client.sourceList }))(AddClient)