import { useState, useEffect, useRef } from 'react'; import { Link, history, connect } from '@umijs/max'; import type { CaptFieldRef, FormInstance } from '@ant-design/pro-components'; import { Layout, Image, Row, Col, Flex, Space, message, Typography, Segmented, Button, ConfigProvider } from 'antd'; import type { CSSProperties } from 'react'; import { PhoneTwoTone, MailTwoTone, PrinterTwoTone, } from '@ant-design/icons'; import { PageContainer, ProFormCaptcha, ProFormSelect, ProFormText, ProFormCascader, ProFormDatePicker, ProForm } from '@ant-design/pro-components'; import { disAfterData } from '@/utils/format' import { verifyPhone } from '@/utils/VerifyHelper' import { selectfieldNames, cascaderfieldNames } from '@/constants' import { PostCompanyRegister } from '@/services/apis/register'; import { GetCaptcha } from '@/services/apis/common' const RegisterCompany: React.FC = ({ dispatch, dictModel, detail, closeModel }: any) => { const formRef = useRef(); const [codeImage, setCodeImage] = useState(''); const [capt_id, setCaptId] = useState(''); useEffect(() => { GetCaptcha().then((res: any) => { setCodeImage(res.data.img); setCaptId(res.data.capt_id); }) }, []); useEffect(() => { dispatch({ type: 'dictModel/getList', payload: { code: 2028, type: 'setIndustryPostList' } }) dispatch({ type: 'dictModel/getList', payload: { code: 2009, type: 'setAreaList' } }) dispatch({ type: 'dictModel/getList', payload: { code: 2003, type: 'setScaleList' } }) dispatch({ type: 'dictModel/getList', payload: { code: 2002, type: 'setNatureList' } }) }, []) return ( <> formRef={formRef} onFinish={async (values) => { try { values.capt_id = capt_id; values.username = values.contact_mobile; values.industry = values.industry_array && values.industry_array.length > 0 && values.industry_array[0] ? values.industry_array[0] : 0; values.industry2 = values.industry_array && values.industry_array.length > 0 && values.industry_array[1] ? values.industry_array[1] : 0; values.province = values.area_array && values.area_array.length > 0 && values.area_array[0] ? values.area_array[0] : 0; values.city = values.area_array && values.area_array.length > 0 && values.area_array[1] ? values.area_array[1] : 0; values.district = values.area_array && values.area_array.length > 0 && values.area_array[2] ? values.area_array[2] : 0; values.street = values.area_array && values.area_array.length > 0 && values.area_array[3] ? values.area_array[3] : 0; values.nature = values.nature_array && values.nature_array.length > 0 ? values.nature_array[values.nature_array.length - 1] : 0; values.scale = values.scale_array && values.scale_array.length > 0 ? values.scale_array[values.scale_array.length - 1] : 0; delete values.nature_array; delete values.industry_array; delete values.area_array; delete values.scale_array; console.log(values) let res = await PostCompanyRegister(values) message.success('注册成功,可进行登录'); } catch (error) { let res = await GetCaptcha() setCodeImage(res.data.img); setCaptId(res.data.capt_id); formRef.current && formRef.current.resetFields(['captcha']) } }} submitter={{ submitButtonProps: { block: true, size: 'large', title: '注册', style: { marginTop: 10 } }, resetButtonProps: { style: { // 隐藏重置按钮 display: 'none', }, }, }} > ({ validator(_, value) { let info = verifyPhone(value); if (typeof (info) == 'boolean') { return Promise.resolve(); } return Promise.reject(new Error(info)); }, }) ]} /> ({ validator(_, value) { let comformPassword = formRef.current && formRef.current.getFieldValue('comform_password'); if (comformPassword && comformPassword != value) { return Promise.reject(new Error('两次密码不一致')); } else { return Promise.resolve(); } }, }) ]} /> ({ validator(_, value) { let firstPassword = formRef.current && formRef.current.getFieldValue('password'); if (firstPassword && firstPassword != value) { return Promise.reject(new Error('密码不一致')); } else { return Promise.resolve(); } }, }) ]} /> { let res = await GetCaptcha() setCodeImage(res.data.img); setCaptId(res.data.capt_id); }} /> ) } export default connect(({ dictModel }: any) => ({ dictModel }))(RegisterCompany);