准入查看与零星采购/应急采购/个人供应商和个人修改
This commit is contained in:
@ -3,8 +3,8 @@ export default {
|
|||||||
'/api': {
|
'/api': {
|
||||||
// target: 'http://10.242.37.148:18022',//
|
// target: 'http://10.242.37.148:18022',//
|
||||||
// target: 'http://10.0.0.10:18012',// 茂
|
// target: 'http://10.0.0.10:18012',// 茂
|
||||||
target: 'http://10.0.0.125:18012',// 测试
|
// target: 'http://10.0.0.125:18012',// 测试
|
||||||
// target: 'http://10.0.0.14:18012',// 李
|
target: 'http://10.0.0.14:18012',// 李
|
||||||
// target: 'http://10.0.0.46:18030',// 袁
|
// target: 'http://10.0.0.46:18030',// 袁
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: { '^/api': '' },
|
pathRewrite: { '^/api': '' },
|
||||||
|
@ -25,8 +25,13 @@ export interface Request {
|
|||||||
socialCreditCode: string;
|
socialCreditCode: string;
|
||||||
telephone: string;
|
telephone: string;
|
||||||
workAddress: string;
|
workAddress: string;
|
||||||
|
coscoSupplierSurveyAttachments:coscoSupplierSurveyAttachments[];
|
||||||
[property: string]: any;
|
[property: string]: any;
|
||||||
}
|
}
|
||||||
|
interface coscoSupplierSurveyAttachments {
|
||||||
|
fileUrl: string;
|
||||||
|
fileName: string;
|
||||||
|
}
|
||||||
|
|
||||||
interface BaseInfoTabProps {
|
interface BaseInfoTabProps {
|
||||||
viewType?:boolean;
|
viewType?:boolean;
|
||||||
@ -89,9 +94,9 @@ const BaseInfoTab: React.FC<BaseInfoTabProps> = (props) => {
|
|||||||
<Descriptions.Item label="银行账号">
|
<Descriptions.Item label="银行账号">
|
||||||
{registerInfo.coscoSupplierBase.personAccount}
|
{registerInfo.coscoSupplierBase.personAccount}
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
{/* <Descriptions.Item label="相关证照">
|
<Descriptions.Item label="相关证照">
|
||||||
{registerInfo.coscoSupplierBase.socialCreditCode}
|
<a href={registerInfo.coscoSupplierSurveyAttachments[0].fileUrl} target="_blank" rel="noreferrer">{registerInfo.coscoSupplierSurveyAttachments[0].fileName}</a>
|
||||||
</Descriptions.Item> */}
|
</Descriptions.Item>
|
||||||
|
|
||||||
</Descriptions>
|
</Descriptions>
|
||||||
<PeBaseInfoFormModal
|
<PeBaseInfoFormModal
|
||||||
|
@ -107,7 +107,7 @@ const SupplierCategoryEntry: React.FC = () => {
|
|||||||
<Select style={{ width: 150 }} placeholder="请选择准入方式" allowClear >
|
<Select style={{ width: 150 }} placeholder="请选择准入方式" allowClear >
|
||||||
<Option value="online">线上准入</Option>
|
<Option value="online">线上准入</Option>
|
||||||
<Option value="offline">线下准入</Option>
|
<Option value="offline">线下准入</Option>
|
||||||
<Option value="scattered">零星采购/应急采购</Option>
|
<Option value="scattered">零星采购/应急采购/个人供应商</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item name="deptId" label="准入单位">
|
<Form.Item name="deptId" label="准入单位">
|
||||||
|
@ -87,7 +87,7 @@ const SupplierCategoryEntryReview: React.FC = () => {
|
|||||||
<Select style={{ width: 150 }} placeholder="请选择准入方式" allowClear >
|
<Select style={{ width: 150 }} placeholder="请选择准入方式" allowClear >
|
||||||
<Option value="online">线上准入</Option>
|
<Option value="online">线上准入</Option>
|
||||||
<Option value="offline">线下准入</Option>
|
<Option value="offline">线下准入</Option>
|
||||||
<Option value="scattered">零星采购/应急采购</Option>
|
<Option value="scattered">零星采购/应急采购/个人供应商</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item name="deptId" label="准入单位">
|
<Form.Item name="deptId" label="准入单位">
|
||||||
|
@ -9,6 +9,12 @@ interface Data {
|
|||||||
coscoAccessSupplierList: coscoAccessSupplierLists[];
|
coscoAccessSupplierList: coscoAccessSupplierLists[];
|
||||||
coscoAccessCategoryList: coscoAccessCategoryLists[];
|
coscoAccessCategoryList: coscoAccessCategoryLists[];
|
||||||
coscoAccessUserls: coscoAccessUserl[];
|
coscoAccessUserls: coscoAccessUserl[];
|
||||||
|
coscoAccessWorkAttachments: coscoAccessWorkAttachments;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface coscoAccessWorkAttachments {
|
||||||
|
fileName: string;
|
||||||
|
fileUrl: string;
|
||||||
}
|
}
|
||||||
interface coscoAccessUserl {
|
interface coscoAccessUserl {
|
||||||
deptId: string;
|
deptId: string;
|
||||||
@ -27,13 +33,15 @@ interface coscoAccessWorks {
|
|||||||
startTime: string;
|
startTime: string;
|
||||||
endTime: string;
|
endTime: string;
|
||||||
reviewStatusText: string;
|
reviewStatusText: string;
|
||||||
|
accessType: string;
|
||||||
|
accessDesc: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ViewModal: React.FC<{
|
const ViewModal: React.FC<{
|
||||||
visible: boolean;
|
visible: boolean;
|
||||||
record?: string | null;
|
record?: any;
|
||||||
onCancel: () => void;
|
onCancel: () => void;
|
||||||
}> = ({ visible, record, onCancel }) => {
|
}> = ({ visible, record = {}, onCancel }) => {
|
||||||
//渲染数据
|
//渲染数据
|
||||||
const [data, setData] = useState<Data | null>(null);
|
const [data, setData] = useState<Data | null>(null);
|
||||||
//初始化
|
//初始化
|
||||||
@ -60,6 +68,24 @@ const ViewModal: React.FC<{
|
|||||||
)
|
)
|
||||||
})}
|
})}
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
|
|
||||||
|
{data.coscoAccessWork.accessType === 'scattered' && (
|
||||||
|
<>
|
||||||
|
<Descriptions.Item label="准入说明">{data.coscoAccessWork.accessDesc}</Descriptions.Item>
|
||||||
|
<Descriptions.Item label="附件">
|
||||||
|
<a href={data.coscoAccessWorkAttachments.fileUrl} target="_blank" rel="noreferrer">{data.coscoAccessWorkAttachments.fileName}</a>
|
||||||
|
</Descriptions.Item>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
{data.coscoAccessWork.accessType === 'offline' && (
|
||||||
|
<Descriptions.Item label="供应商符合性审查">
|
||||||
|
<a href={data.coscoAccessWorkAttachments.fileUrl} target="_blank" rel="noreferrer">{data.coscoAccessWorkAttachments.fileName}</a>
|
||||||
|
</Descriptions.Item>
|
||||||
|
)}
|
||||||
|
|
||||||
|
|
||||||
|
{data.coscoAccessWork.accessType === 'online' && (
|
||||||
|
<>
|
||||||
<Descriptions.Item label="申请准入品类">
|
<Descriptions.Item label="申请准入品类">
|
||||||
{data.coscoAccessCategoryList.map((item) => {
|
{data.coscoAccessCategoryList.map((item) => {
|
||||||
return (
|
return (
|
||||||
@ -77,6 +103,9 @@ const ViewModal: React.FC<{
|
|||||||
})}
|
})}
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
</Descriptions>
|
</Descriptions>
|
||||||
)}
|
)}
|
||||||
</Modal>
|
</Modal>
|
||||||
|
@ -23,24 +23,7 @@ interface ModalInfo {
|
|||||||
visible: boolean;
|
visible: boolean;
|
||||||
record: string | null;
|
record: string | null;
|
||||||
}
|
}
|
||||||
const statusColorMap: Record<string, string> = {
|
|
||||||
'未开始': 'default',
|
|
||||||
'进行中': 'processing',
|
|
||||||
'已完成': 'success',
|
|
||||||
};
|
|
||||||
|
|
||||||
const methodOptions = [
|
|
||||||
{ label: '全部', value: '' },
|
|
||||||
{ label: '线上准入', value: '线上准入' },
|
|
||||||
{ label: '线下准入', value: '线下准入' },
|
|
||||||
];
|
|
||||||
|
|
||||||
const statusOptions = [
|
|
||||||
{ label: '全部', value: '' },
|
|
||||||
{ label: '未开始', value: '未开始' },
|
|
||||||
{ label: '进行中', value: '进行中' },
|
|
||||||
{ label: '已完成', value: '已完成' },
|
|
||||||
];
|
|
||||||
|
|
||||||
const deptOptions = [
|
const deptOptions = [
|
||||||
{ label: '全部', value: '' },
|
{ label: '全部', value: '' },
|
||||||
@ -142,22 +125,33 @@ const SupplierEntryReview: React.FC = () => {
|
|||||||
title: '准入方式',
|
title: '准入方式',
|
||||||
dataIndex: 'accessTypeText',
|
dataIndex: 'accessTypeText',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '准入品类',
|
title: '准入品类',
|
||||||
dataIndex: 'categoryName',
|
dataIndex: 'categoryNameList',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
ellipsis: true,
|
render: (_: any, record: any) => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{record.categoryNameList.map((item:string) => {
|
||||||
|
return <div>{`${item}`}</div>
|
||||||
|
})}
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '开始时间',
|
title: '开始时间',
|
||||||
dataIndex: 'startTime',
|
dataIndex: 'startTime',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '结束时间',
|
title: '结束时间',
|
||||||
dataIndex: 'endTime',
|
dataIndex: 'endTime',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '流程状态',
|
title: '流程状态',
|
||||||
@ -173,7 +167,6 @@ const SupplierEntryReview: React.FC = () => {
|
|||||||
title: '操作',
|
title: '操作',
|
||||||
width: 120,
|
width: 120,
|
||||||
render: (_: any, record: any) => {
|
render: (_: any, record: any) => {
|
||||||
console.log(record, 'record');
|
|
||||||
return (
|
return (
|
||||||
<Space>
|
<Space>
|
||||||
<a onClick={() => openModal(record.id)}>查看</a>
|
<a onClick={() => openModal(record.id)}>查看</a>
|
||||||
@ -195,7 +188,7 @@ const SupplierEntryReview: React.FC = () => {
|
|||||||
<Select style={{ width: 150 }} placeholder="请选择准入方式" allowClear >
|
<Select style={{ width: 150 }} placeholder="请选择准入方式" allowClear >
|
||||||
<Option value="online">线上准入</Option>
|
<Option value="online">线上准入</Option>
|
||||||
<Option value="offline">线下准入</Option>
|
<Option value="offline">线下准入</Option>
|
||||||
<Option value="scattered">零星采购/应急采购</Option>
|
<Option value="scattered">零星采购/应急采购/个人供应商</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item name="deptId" label="准入部门">
|
<Form.Item name="deptId" label="准入部门">
|
||||||
|
@ -143,12 +143,14 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
accessType: string;
|
accessType: string;
|
||||||
accessWorkName: string;
|
accessWorkName: string;
|
||||||
deptId: string;
|
deptId: string;
|
||||||
|
accessDesc: string;
|
||||||
};
|
};
|
||||||
categoryIds: string[];
|
categoryIds: string[];
|
||||||
supplierIds: string[];
|
supplierIds: string[];
|
||||||
coscoAccessUserls: { userId: string; deptId: string; isLeader: number }[];
|
coscoAccessUserls: { userId: string; deptId: string; isLeader: number }[];
|
||||||
coscoAccessItems: { itemName: string; reviewBy: string[] }[];
|
coscoAccessItems: { itemName: string; reviewBy: string[] }[];
|
||||||
coscoAccessWorkAttachments: any;
|
coscoAccessWorkAttachments: any;
|
||||||
|
attachmentsType: any;
|
||||||
} = {
|
} = {
|
||||||
coscoAccessWork: {
|
coscoAccessWork: {
|
||||||
startTime: '',
|
startTime: '',
|
||||||
@ -156,12 +158,14 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
accessType: '',
|
accessType: '',
|
||||||
accessWorkName: '',
|
accessWorkName: '',
|
||||||
deptId: '',
|
deptId: '',
|
||||||
|
accessDesc: '',
|
||||||
},
|
},
|
||||||
categoryIds: [],
|
categoryIds: [],
|
||||||
supplierIds: [],
|
supplierIds: [],
|
||||||
coscoAccessUserls: [],
|
coscoAccessUserls: [],
|
||||||
coscoAccessItems: [],
|
coscoAccessItems: [],
|
||||||
coscoAccessWorkAttachments: {},
|
coscoAccessWorkAttachments: {},
|
||||||
|
attachmentsType: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
//标题名称
|
//标题名称
|
||||||
@ -170,6 +174,8 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
finalPayload.coscoAccessWork.accessType = values.accessType;
|
finalPayload.coscoAccessWork.accessType = values.accessType;
|
||||||
//准入部门
|
//准入部门
|
||||||
finalPayload.coscoAccessWork.deptId = values.deptId;
|
finalPayload.coscoAccessWork.deptId = values.deptId;
|
||||||
|
// 准入说明
|
||||||
|
finalPayload.coscoAccessWork.accessDesc = values.accessDesc;
|
||||||
//品类选择
|
//品类选择
|
||||||
finalPayload.categoryIds = values.categoryIds;
|
finalPayload.categoryIds = values.categoryIds;
|
||||||
//选择供应商
|
//选择供应商
|
||||||
@ -200,7 +206,8 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// 供应商符合性审查
|
// 供应商符合性审查
|
||||||
finalPayload.coscoAccessWorkAttachments = values.supplierCompliance[0].response
|
finalPayload.coscoAccessWorkAttachments = values.supplierCompliance[0].response;
|
||||||
|
finalPayload.coscoAccessWorkAttachments.fileUrl = values.supplierCompliance[0].response.url;
|
||||||
}
|
}
|
||||||
|
|
||||||
const res = await add(finalPayload);
|
const res = await add(finalPayload);
|
||||||
@ -278,7 +285,7 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
<Radio.Group onChange={onMethodChange} value={admissionMethod}>
|
<Radio.Group onChange={onMethodChange} value={admissionMethod}>
|
||||||
<Radio value="online">线上准入</Radio>
|
<Radio value="online">线上准入</Radio>
|
||||||
<Radio value="offline">线下准入</Radio>
|
<Radio value="offline">线下准入</Radio>
|
||||||
<Radio value="scattered">零星采购/应急采购</Radio>
|
<Radio value="scattered">零星采购/应急采购/个人供应商</Radio>
|
||||||
</Radio.Group>
|
</Radio.Group>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
@ -425,9 +432,53 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|
||||||
|
{admissionMethod === 'scattered' && (
|
||||||
|
<>
|
||||||
|
<Form.Item
|
||||||
|
label="准入说明"
|
||||||
|
name="accessDesc"
|
||||||
|
rules={[{ required: true, message: '请输入准入说明' }]}
|
||||||
|
>
|
||||||
|
<Input.TextArea placeholder="请依照《集团供应商管理制度》填写准入说明" rows={2} maxLength={200} showCount />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label="附件"
|
||||||
|
name="supplierCompliance"
|
||||||
|
valuePropName="fileList"
|
||||||
|
getValueFromEvent={e => (Array.isArray(e) ? e : e && e.fileList)}
|
||||||
|
>
|
||||||
|
<Upload
|
||||||
|
fileList={fileList}
|
||||||
|
customRequest={handleCustomRequest}
|
||||||
|
beforeUpload={(file) => {
|
||||||
|
if (fileList.length >= 1) {
|
||||||
|
message.error('只能上传一个文件');
|
||||||
|
return Upload.LIST_IGNORE;
|
||||||
|
}
|
||||||
|
return true; // 允许进入 customRequest
|
||||||
|
}}
|
||||||
|
onChange={({ fileList: newFileList }) => {
|
||||||
|
setFileList(newFileList);
|
||||||
|
form.setFieldsValue({ supplierCompliance: newFileList });
|
||||||
|
}}
|
||||||
|
onRemove={(file) => {
|
||||||
|
const newList = fileList.filter(item => item.uid !== file.uid);
|
||||||
|
setFileList(newList);
|
||||||
|
form.setFieldsValue({ supplierCompliance: newList });
|
||||||
|
}}
|
||||||
|
accept=".pdf,.doc,.docx" // 可选,限制文件类型
|
||||||
|
maxCount={1} // 只允许一个
|
||||||
|
>
|
||||||
|
<Button icon={<UploadOutlined />}>上传文件</Button>
|
||||||
|
</Upload>
|
||||||
|
</Form.Item>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
<Form.Item wrapperCol={{ offset: 6 }}>
|
<Form.Item wrapperCol={{ offset: 6 }}>
|
||||||
<Button type="primary" htmlType="submit" style={{ marginRight: 8 }}>
|
<Button type="primary" htmlType="submit" style={{ marginRight: 8 }}>
|
||||||
{ admissionMethod === 'online'? '确认': admissionMethod === 'offline'? '提交审核':'提交' }
|
{admissionMethod === 'online' ? '确认' : admissionMethod === 'offline' ? '提交审核' : '提交'}
|
||||||
|
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
|
@ -9,6 +9,12 @@ interface Data {
|
|||||||
coscoAccessSupplierList: coscoAccessSupplierLists[];
|
coscoAccessSupplierList: coscoAccessSupplierLists[];
|
||||||
coscoAccessCategoryList: coscoAccessCategoryLists[];
|
coscoAccessCategoryList: coscoAccessCategoryLists[];
|
||||||
coscoAccessUserls: coscoAccessUserl[];
|
coscoAccessUserls: coscoAccessUserl[];
|
||||||
|
coscoAccessWorkAttachments: coscoAccessWorkAttachments;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface coscoAccessWorkAttachments {
|
||||||
|
fileName: string;
|
||||||
|
fileUrl: string;
|
||||||
}
|
}
|
||||||
interface coscoAccessUserl {
|
interface coscoAccessUserl {
|
||||||
deptId: string;
|
deptId: string;
|
||||||
@ -27,6 +33,8 @@ interface coscoAccessWorks {
|
|||||||
startTime: string;
|
startTime: string;
|
||||||
endTime: string;
|
endTime: string;
|
||||||
reviewStatusText: string;
|
reviewStatusText: string;
|
||||||
|
accessType: string;
|
||||||
|
accessDesc: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ViewModal: React.FC<{
|
const ViewModal: React.FC<{
|
||||||
@ -60,6 +68,24 @@ const ViewModal: React.FC<{
|
|||||||
)
|
)
|
||||||
})}
|
})}
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
|
|
||||||
|
{data.coscoAccessWork.accessType === 'scattered' && (
|
||||||
|
<>
|
||||||
|
<Descriptions.Item label="准入说明">{data.coscoAccessWork.accessDesc}</Descriptions.Item>
|
||||||
|
<Descriptions.Item label="附件">
|
||||||
|
<a href={data.coscoAccessWorkAttachments.fileUrl} target="_blank" rel="noreferrer">{data.coscoAccessWorkAttachments.fileName}</a>
|
||||||
|
</Descriptions.Item>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
{data.coscoAccessWork.accessType === 'offline' && (
|
||||||
|
<Descriptions.Item label="供应商符合性审查">
|
||||||
|
<a href={data.coscoAccessWorkAttachments.fileUrl} target="_blank" rel="noreferrer">{data.coscoAccessWorkAttachments.fileName}</a>
|
||||||
|
</Descriptions.Item>
|
||||||
|
)}
|
||||||
|
|
||||||
|
|
||||||
|
{data.coscoAccessWork.accessType === 'online' && (
|
||||||
|
<>
|
||||||
<Descriptions.Item label="申请准入品类">
|
<Descriptions.Item label="申请准入品类">
|
||||||
{data.coscoAccessCategoryList.map((item) => {
|
{data.coscoAccessCategoryList.map((item) => {
|
||||||
return (
|
return (
|
||||||
@ -77,6 +103,9 @@ const ViewModal: React.FC<{
|
|||||||
})}
|
})}
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
</Descriptions>
|
</Descriptions>
|
||||||
)}
|
)}
|
||||||
</Modal>
|
</Modal>
|
||||||
|
@ -78,13 +78,14 @@ const AccessManagement: React.FC = () => {
|
|||||||
{
|
{
|
||||||
title: '序号',
|
title: '序号',
|
||||||
dataIndex: 'index',
|
dataIndex: 'index',
|
||||||
|
width: 80,
|
||||||
render: (_: any, __: any, idx: number) => (((pagination.current ?? 1) - 1) * (pagination.pageSize ?? 10)) + idx + 1,
|
render: (_: any, __: any, idx: number) => (((pagination.current ?? 1) - 1) * (pagination.pageSize ?? 10)) + idx + 1,
|
||||||
},
|
},
|
||||||
{ title: '准入工作', dataIndex: 'accessWorkName' },
|
{ title: '准入工作', ellipsis: true, dataIndex: 'accessWorkName' },
|
||||||
{ title: '准入单位', dataIndex: 'deptId' },
|
{ title: '准入单位', ellipsis: true,dataIndex: 'deptId' },
|
||||||
{ title: '准入部门', dataIndex: 'deptId' },
|
{ title: '准入部门', ellipsis: true,dataIndex: 'deptId' },
|
||||||
{ title: '准入方式', dataIndex: 'accessTypeText' },
|
{ title: '准入方式', ellipsis: true,dataIndex: 'accessTypeText' },
|
||||||
{ title: '申请时间', dataIndex: 'createTime' },
|
{ title: '申请时间', ellipsis: true,dataIndex: 'createTime' },
|
||||||
{ title: '状态', dataIndex: 'reviewStatusText' },
|
{ title: '状态', dataIndex: 'reviewStatusText' },
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
@ -92,12 +93,12 @@ const AccessManagement: React.FC = () => {
|
|||||||
render: (_: any, record: any) => (
|
render: (_: any, record: any) => (
|
||||||
<Space>
|
<Space>
|
||||||
<a onClick={() => openModal('view', record)}>查看</a>
|
<a onClick={() => openModal('view', record)}>查看</a>
|
||||||
{(record.reviewStatus === '3' && !record.approveStatusText) && (
|
{((record.reviewStatus === '3' && record.accessTypeText === 'online') && !record.approveStatusText) && (
|
||||||
<a onClick={() => handleApproval(record.id)}>
|
<a onClick={() => handleApproval(record.id)}>
|
||||||
发起审批
|
发起审批
|
||||||
</a>
|
</a>
|
||||||
)}
|
)}
|
||||||
{record.reviewStatus === '3' && (
|
{(record.reviewStatus === '3' && record.accessTypeText === 'online') && (
|
||||||
<>
|
<>
|
||||||
<a onClick={() => openModal('result', record)}>评审结果</a>
|
<a onClick={() => openModal('result', record)}>评审结果</a>
|
||||||
</>
|
</>
|
||||||
@ -115,7 +116,7 @@ const AccessManagement: React.FC = () => {
|
|||||||
<Select style={{ width: 150 }} placeholder="请选择准入方式" allowClear >
|
<Select style={{ width: 150 }} placeholder="请选择准入方式" allowClear >
|
||||||
<Option value="online">线上准入</Option>
|
<Option value="online">线上准入</Option>
|
||||||
<Option value="offline">线下准入</Option>
|
<Option value="offline">线下准入</Option>
|
||||||
<Option value="scattered">零星采购/应急采购</Option>
|
<Option value="scattered">零星采购/应急采购/个人供应商</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item name="deptId" label="准入单位">
|
<Form.Item name="deptId" label="准入单位">
|
||||||
@ -137,7 +138,11 @@ const AccessManagement: React.FC = () => {
|
|||||||
<Button type="primary" htmlType="submit">查询</Button>
|
<Button type="primary" htmlType="submit">查询</Button>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item>
|
<Form.Item>
|
||||||
<Button onClick={() => form.resetFields()}>重置</Button>
|
<Button onClick={() => {
|
||||||
|
form.resetFields()
|
||||||
|
const values = form.getFieldsValue();
|
||||||
|
getList(values, 1, 10);
|
||||||
|
}}>重置</Button>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Form>
|
</Form>
|
||||||
<div style={{ marginTop: 16, marginBottom: 16 }}>
|
<div style={{ marginTop: 16, marginBottom: 16 }}>
|
||||||
|
@ -9,6 +9,12 @@ interface Data {
|
|||||||
coscoAccessSupplierList: coscoAccessSupplierLists[];
|
coscoAccessSupplierList: coscoAccessSupplierLists[];
|
||||||
coscoAccessCategoryList: coscoAccessCategoryLists[];
|
coscoAccessCategoryList: coscoAccessCategoryLists[];
|
||||||
coscoAccessUserls: coscoAccessUserl[];
|
coscoAccessUserls: coscoAccessUserl[];
|
||||||
|
coscoAccessWorkAttachments: coscoAccessWorkAttachments;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface coscoAccessWorkAttachments {
|
||||||
|
fileName: string;
|
||||||
|
fileUrl: string;
|
||||||
}
|
}
|
||||||
interface coscoAccessUserl {
|
interface coscoAccessUserl {
|
||||||
deptId: string;
|
deptId: string;
|
||||||
@ -27,6 +33,8 @@ interface coscoAccessWorks {
|
|||||||
startTime: string;
|
startTime: string;
|
||||||
endTime: string;
|
endTime: string;
|
||||||
reviewStatusText: string;
|
reviewStatusText: string;
|
||||||
|
accessType: string;
|
||||||
|
accessDesc: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ViewModal: React.FC<{
|
const ViewModal: React.FC<{
|
||||||
@ -60,6 +68,24 @@ const ViewModal: React.FC<{
|
|||||||
)
|
)
|
||||||
})}
|
})}
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
|
|
||||||
|
{data.coscoAccessWork.accessType === 'scattered' && (
|
||||||
|
<>
|
||||||
|
<Descriptions.Item label="准入说明">{data.coscoAccessWork.accessDesc}</Descriptions.Item>
|
||||||
|
<Descriptions.Item label="附件">
|
||||||
|
<a href={data.coscoAccessWorkAttachments.fileUrl} target="_blank" rel="noreferrer">{data.coscoAccessWorkAttachments.fileName}</a>
|
||||||
|
</Descriptions.Item>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
{data.coscoAccessWork.accessType === 'offline' && (
|
||||||
|
<Descriptions.Item label="供应商符合性审查">
|
||||||
|
<a href={data.coscoAccessWorkAttachments.fileUrl} target="_blank" rel="noreferrer">{data.coscoAccessWorkAttachments.fileName}</a>
|
||||||
|
</Descriptions.Item>
|
||||||
|
)}
|
||||||
|
|
||||||
|
|
||||||
|
{data.coscoAccessWork.accessType === 'online' && (
|
||||||
|
<>
|
||||||
<Descriptions.Item label="申请准入品类">
|
<Descriptions.Item label="申请准入品类">
|
||||||
{data.coscoAccessCategoryList.map((item) => {
|
{data.coscoAccessCategoryList.map((item) => {
|
||||||
return (
|
return (
|
||||||
@ -77,6 +103,9 @@ const ViewModal: React.FC<{
|
|||||||
})}
|
})}
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
</Descriptions>
|
</Descriptions>
|
||||||
)}
|
)}
|
||||||
</Modal>
|
</Modal>
|
||||||
|
@ -97,21 +97,33 @@ const CooperateEnterprise: React.FC = () => {
|
|||||||
title: '发起单位',
|
title: '发起单位',
|
||||||
dataIndex: 'deptId',
|
dataIndex: 'deptId',
|
||||||
key: 'deptId',
|
key: 'deptId',
|
||||||
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '准入部门',
|
title: '准入部门',
|
||||||
dataIndex: 'deptId',
|
dataIndex: 'deptId',
|
||||||
key: 'deptId',
|
key: 'deptId',
|
||||||
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '品类',
|
title: '准入品类',
|
||||||
dataIndex: 'categoryName',
|
dataIndex: 'categoryNameList',
|
||||||
key: 'categoryName',
|
align: 'center',
|
||||||
|
render: (_: any, record: any) => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{record.categoryNameList.map((item:string) => {
|
||||||
|
return <div>{`${item}`}</div>
|
||||||
|
})}
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '准入方式',
|
title: '准入方式',
|
||||||
dataIndex: 'accessTypeText',
|
dataIndex: 'accessTypeText',
|
||||||
key: 'accessTypeText',
|
key: 'accessTypeText',
|
||||||
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '评审时间',
|
title: '评审时间',
|
||||||
|
Reference in New Issue
Block a user