个人信息修改

This commit is contained in:
孙景学
2025-07-15 17:04:54 +08:00
parent c96ec569bd
commit c6a5a8d372
4 changed files with 137 additions and 35 deletions

View File

@ -1,10 +1,12 @@
/* 境外企业 表单项 */
import React from 'react';
import React, { useEffect, useState } from 'react';
import { Form, Input, Select, Row, Col, message, Upload, Button } from 'antd';
import type { UploadProps } from 'antd';
import { UploadOutlined } from '@ant-design/icons';
import { uploadFile } from '../services';
import { getDictList } from '@/servers/api/dicts';
import type { DictItem } from '@/servers/api/dicts';
const { Option } = Select;
interface ForeignFormProps {
form: any;
@ -18,6 +20,21 @@ interface ForeignFormProps {
* 其他部分使用通用表单组件
*/
const DomesticForm: React.FC<ForeignFormProps> = ({ form, countdown, handleGetCaptcha }) => {
const [contactsType, setContactsType] = useState<DictItem[]>([]);
const [enterpriseType, setEnterpriseType] = useState<DictItem[]>([]);
useEffect(() => {
getDictList('contacts_type').then((res) => {
if (res.code === 200) {
setContactsType(res.data);
}
});
getDictList('enterprise_type').then((res) => {
if (res.code === 200) {
setEnterpriseType(res.data);
}
});
}, [])
//上传接口
const uploadProps: UploadProps = {
name: 'file',
@ -60,9 +77,11 @@ const DomesticForm: React.FC<ForeignFormProps> = ({ form, countdown, handleGetCa
rules={[{ required: true, message: '请选择供应商分类' }]}
>
<Select placeholder="请选择">
<Option value="dvs">/</Option>
<Option value="ovs"></Option>
<Option value="pe"></Option>
{enterpriseType.map((item) => (
<Select.Option key={item.code} value={item.code}>
{item.dicName}
</Select.Option>
))}
</Select>
</Form.Item>
</Col>
@ -150,15 +169,7 @@ const DomesticForm: React.FC<ForeignFormProps> = ({ form, countdown, handleGetCa
<Input placeholder="请输入企业法定代表人/负责人" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name={['coscoSupplierBase', 'idCard']}
label="身份证号"
rules={[{ required: true, message: '请输入身份证号' }]}
>
<Input placeholder="请输入身份证号" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
@ -188,11 +199,46 @@ const DomesticForm: React.FC<ForeignFormProps> = ({ form, countdown, handleGetCa
rules={[{ required: true, message: '请选择联系人身份类别' }]}
>
<Select placeholder="请选择">
<Option value="internal"></Option>
<Option value="external"></Option>
{contactsType.map((item) => (
<Select.Option key={item.code} value={item.code}>
{item.dicName}
</Select.Option>
))}
</Select>
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
// 用 dependencies 监听 contactsType
dependencies={['coscoSupplierBase', 'contactsType']}
shouldUpdate={(prev, curr) =>
prev.coscoSupplierBase?.contactsType !== curr.coscoSupplierBase?.contactsType
}
noStyle
>
{({ getFieldValue }) => {
const contactsType = getFieldValue(['coscoSupplierBase', 'contactsType']);
let label = '身份证号';
// 可自定义规则
if (contactsType === '1') {
label = '身份证号';
} else if (contactsType === '0') {
label = '护照号';
} else {
label = '证件号码';
}
return (
<Form.Item
name={['coscoSupplierBase', 'idCard']}
label={label}
rules={[{ required: true, message: `请输入${label}` }]}
>
<Input placeholder={`请输入${label}`} />
</Form.Item>
);
}}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name={['coscoSupplierBase', 'contactsEmail']}