import React, { Component } from "react"; import { inject, observer } from "mobx-react"; import { Modal, message, Spin } from "antd"; import { withRouter, RouteComponentProps } from "react-router-dom"; import MainLayout from "@/layout"; import ApplyForm from "./ApplyForm"; import Agreement from "./Agreement"; import { IUserStore } from "@/models/user"; import { HTTP_STATUS, ApplyStatus } from "@/shared/common/constants"; import { AccountApplyRequest } from "@/api/service/AccountService"; import Api from "@/api"; import "./index.scss"; type P = RouteComponentProps & { userStore?: IUserStore; }; type S = { agreement: boolean; showAgreement: boolean; entity: AccountApplyRequest; isCreate: boolean; //添加模式 }; const DEV_ADD_REG = new RegExp(/[^\x00-\xff]+\/[^\x00-\xff]+\/[^\x00-\xff]+-/g); //开放平台地址正则 @inject("userStore") @observer class Apply extends Component { state = { agreement: false, showAgreement: false, entity: null, isCreate: true }; componentDidMount() { const { state } = this.props.location; if (!state) { return false; } else if (ApplyStatus.RE_APPLY === state.applyStatus) { this.setState({ isCreate: false }); this.getApplyInfo(); } else if (ApplyStatus.NON_CSP === state.applyStatus) { this.setState({ isCreate: false }); this.getDeveloperInfo(); } } toggleAgreement = () => { const { showAgreement } = this.state; this.setState({ showAgreement: !showAgreement }); }; //获取开发者信息 getDeveloperInfo = async () => { try { const res = await Api.account.developerInfo(); if (HTTP_STATUS.SUCCESSS === res.code) { const { id, uid, registerInfo } = res.data; const { companyName, companyUrl, companyDesc, businessLicenseUrl, name, mobile, email } = registerInfo; let { companyAddr, address } = registerInfo; if (DEV_ADD_REG.test(companyAddr)) { companyAddr = companyAddr.split(DEV_ADD_REG)[1]; } if (address) { address = address.replace(/\//g, ","); } const entity = { developerId: id, uid: Number(uid), companyName, companyHomePage: companyUrl, companyIntro: companyDesc, companyAddr, companyBusinessLicense: businessLicenseUrl, agencyArea: null, contactName: name, contactMobile: mobile, contactEmail: email, contactMobileVerifyCode: null, contactEmailVerifyCode: null, companyArea: address }; this.setState({ entity }); } else { message.error(res.message); } } catch (error) { console.log({ error }); } }; //获取上次提交的信息 getApplyInfo = async () => { try { const res = await Api.account.applyInfo(); if (HTTP_STATUS.SUCCESSS === res.code) { const { uid, companyName, companyHomePage, companyIntro, companyArea, companyAddr, companyBusinessLicense, agencyArea, contactName, contactMobile, contactEmail } = res.data; const entity = { uid, companyName, companyHomePage, companyIntro, companyArea, companyAddr, companyBusinessLicense, agencyArea, contactName, contactMobile, contactEmail, contactMobileVerifyCode: null, contactEmailVerifyCode: null }; this.setState({ entity }); } else { message.error(res.message); } } catch (error) { console.log({ error }); } }; onSubmit = async values => { if (values.companyArea) { values.companyArea = values.companyArea.join(","); } const res = await Api.account.apply(values); if (HTTP_STATUS.SUCCESSS === res.code) { message.success("提交成功"); this.props.userStore.setAccountInfo(null) this.props.history.replace("/index"); } else { message.error(res.message); } }; onAgreementChange = checked => { this.setState({ agreement: checked }); }; render() { const { showAgreement, entity, agreement, isCreate } = this.state; const { state } = this.props.location; //公司名不能编辑 const companyNameDisabled = state && ApplyStatus.NON_CSP === state.applyStatus; return (

欢迎加入城市服务商

{entity || isCreate ? ( { this.props.history.replace("/"); }} companyNameDisabled={companyNameDisabled} entity={entity} onAgreement={this.toggleAgreement} onAgreementChange={this.onAgreementChange} onSubmit={this.onSubmit} /> ) : ( )}
); } } export default withRouter(Apply);