// @ts-nocheck import React, { useState, useCallback } from 'react'; import styles from './styles.less'; import { loginService, commonService } from '@/service'; import { Form, Button, message } from 'antd4'; import { Input, Select, Phone, Captcha } from '@/components/form_items'; import BaseForm from '@/components/form'; import { orgTypeOptionConfigList } from '@/data'; import { phoneCheck } from '@/utils/phone'; import Agreement from '@/components/agreement'; const BindOrgInfoForm = (props) => { const { isShowUserName, isShowPhoneGroup, isShowOrgInfoGroup, userInfo, orgInfo, } = props; const [registerByEmailForm] = Form.useForm(); const initialValues = { area_code: '+86', }; const [formValues, setFormValues] = useState({}); const [captchaEnable, setCaptchaEnable] = useState(false); const [lastTime, setLastTime] = useState(); const handleFormFinish = (values) => { const payload = { ...userInfo, customer: orgInfo, }; if (isShowPhoneGroup) { payload.captcha = values.captcha; payload.phone = values.phone; } if (isShowOrgInfoGroup) { payload.customer = { name: values.orgName, type: values.orgType, service_id: values.orgId, }; } if (props?.onFinish) { props.onFinish(payload); } }; const handleValuesChange = useCallback( (changed, values) => { if (props?.errorInfo && props?.onClearErrorInfo) { props?.onClearErrorInfo(); } if (changed.area_code || changed.phone) { let phone_enable = phoneCheck(values.area_code, values.phone); if (phone_enable && !captchaEnable) { setCaptchaEnable(true); } else if (!phone_enable && captchaEnable) { setCaptchaEnable(false); } } setFormValues(values); }, [formValues], ); const handleCaptchaSend = async () => { try { let phone = formValues.area_code + formValues.phone; let data = await loginService.sendCaptchaByPhone({ phone, }); if (data?.error) { throw new Error(data?.msg); } setLastTime(() => new Date().getTime()); message.success('验证码发送成功,请查收!'); } catch (e) { message.error('验证码发送失败,请稍候重试!'); throw e; } }; const renderPhoneInfoGroup = () => { return ( ({ validator: async (_, value) => { if (!isShowPhoneGroup) { return Promise.resolve(); } if (value && isShowPhoneGroup) { const payload = { phone: `${formValues.area_code}${value}` }; const result = await commonService.checkIsExistPhone(payload); if (result && result?.data?.isExist) { setCaptchaEnable(false); return Promise.reject('手机号已被占用,请更换号码'); } else { return Promise.resolve(); } } }, }), ]} /> ); }; const renderOrgInfoGroup = () => { return ( ({ validator: async (_, value) => { if (value) { const payload = { service_id: value }; const result = await commonService.checkIsExistServiceId( payload, ); if (result?.data?.exists) { return Promise.reject('机构id已存在'); } else { return Promise.resolve(); } } }, }), ]} /> ); }; return ( {/* 机构信息group */} {isShowOrgInfoGroup ? renderOrgInfoGroup() : null} {/* 是否显示用户姓名 */} {isShowUserName ? ( ) : null} {/* 是否显示绑定手机号信息 */} {isShowPhoneGroup ? renderPhoneInfoGroup() : null}
{props?.errorInfo ? (
{props?.errorInfo}
) : null}
); }; BindOrgInfoForm.defaultProps = { isShowPhoneGroup: true, isShowOrgInfoGroup: true, isShowUserName: false, userInfo: {}, orgInfo: {}, }; export default BindOrgInfoForm;