公司信息 列表作废以及基本信息 营业执照

This commit is contained in:
孙景学
2025-07-16 10:28:15 +08:00
parent 9618923a15
commit d58d4dd609
8 changed files with 314 additions and 143 deletions

View File

@ -4,7 +4,7 @@ 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 type { UploadFile } from 'antd/es/upload/interface';
import { getDictList } from '@/servers/api/dicts';
import type { DictItem } from '@/servers/api/dicts';
const { Option } = Select;
@ -22,6 +22,8 @@ interface ForeignFormProps {
const DomesticForm: React.FC<ForeignFormProps> = ({ form, countdown, handleGetCaptcha }) => {
const [contactsType, setContactsType] = useState<DictItem[]>([]);
const [enterpriseType, setEnterpriseType] = useState<DictItem[]>([]);
//上传得图片
const [licenceFileList, setLicenceFileList] = useState<UploadFile[]>([]);
useEffect(() => {
getDictList('contacts_type').then((res) => {
if (res.code === 200) {
@ -33,11 +35,26 @@ const DomesticForm: React.FC<ForeignFormProps> = ({ form, countdown, handleGetCa
setEnterpriseType(res.data);
}
});
const licenceAccessory = form.getFieldValue(['coscoSupplierBase', 'licenceAccessory']);
if (licenceAccessory) {
setLicenceFileList([{
uid: '-1',
name: '营业执照',
status: 'done',
url: licenceAccessory,
thumbUrl: licenceAccessory,
}]);
} else {
setLicenceFileList([]);
}
}, [])
//上传接口
const uploadProps: UploadProps = {
name: 'file',
accept: 'image/*',
fileList: licenceFileList,
maxCount: 1,
showUploadList: true,
beforeUpload: (file) => {
if (file.size > 1048576) { // 1MB
@ -50,18 +67,39 @@ const DomesticForm: React.FC<ForeignFormProps> = ({ form, countdown, handleGetCa
try {
const realFile = file as File;
const res = await uploadFile(realFile);
const uploadedFile = {
uid: res.fileSize,
const uploadedFile: UploadFile = {
uid: String(res.fileSize),
name: res.fileName,
status: 'done',
url: res.url,
thumbUrl: res.url,
};
setLicenceFileList([uploadedFile]);
// 让表单跟随
form.setFieldsValue({
coscoSupplierBase: {
...form.getFieldValue('coscoSupplierBase'),
licenceAccessoryD: [uploadedFile]
}
});
onSuccess?.(uploadedFile, new XMLHttpRequest())
message.success('上传成功');
} catch (err: any) {
onError?.(err);
message.error(err.message || '上传失败');
}
},
onRemove: () => {
setLicenceFileList([]);
form.setFieldsValue({
coscoSupplierBase: {
...form.getFieldValue('coscoSupplierBase'),
licenceAccessoryD: []
}
});
return true;
}
};
return (
@ -281,20 +319,26 @@ const DomesticForm: React.FC<ForeignFormProps> = ({ form, countdown, handleGetCa
</Form.Item>
</Col>
<Col span={24}>
<Form.Item
name={['coscoSupplierBase', 'licenceAccessoryD']}
label="营业执照附件"
rules={[{ required: true, message: '请上传营业执照' }]}
getValueFromEvent={e => Array.isArray(e) ? e : e?.fileList}
>
<Upload {...uploadProps} maxCount={1} listType="picture-card" showUploadList={true}>
<Form.Item
name={['coscoSupplierBase', 'licenceAccessoryD']}
label="营业执照附件"
valuePropName="fileList"
getValueFromEvent={e => Array.isArray(e) ? e : e?.fileList}
rules={[{ required: true, message: '请上传营业执照' }]}
>
<Upload {...uploadProps}>
{licenceFileList.length < 1 && (
<Button icon={<UploadOutlined />}></Button>
</Upload>
</Form.Item>
</Col>
)}
</Upload>
</Form.Item>
</Col>
<Form.Item name={['coscoSupplierBase', 'id']} noStyle>
<Input type="hidden" />
</Form.Item>
<Form.Item name={['coscoSupplierBase', 'supplierType']} noStyle>
<Input type="hidden" />
</Form.Item>
</Row>
</>