Merge branch 'dev' of http://59.110.10.99:53000/liuc/fe_supplier_frontend into dev
This commit is contained in:
@ -28,10 +28,10 @@ export interface Request {
|
||||
[property: string]: any;
|
||||
}
|
||||
interface changeDataValueProps {
|
||||
id?:string;
|
||||
title?:string;
|
||||
changeDesc?:string;
|
||||
coscoSupplierSurveyAttachments?:coscoSupplierSurveyAttachments[];
|
||||
id?: string;
|
||||
title?: string;
|
||||
changeDesc?: string;
|
||||
coscoSupplierSurveyAttachments?: coscoSupplierSurveyAttachments[];
|
||||
}
|
||||
interface coscoSupplierSurveyAttachments {
|
||||
attachmentsType: string;
|
||||
@ -43,13 +43,13 @@ interface coscoSupplierSurveyAttachments {
|
||||
}
|
||||
|
||||
interface BaseInfoTabProps {
|
||||
viewType?:boolean;
|
||||
record?:string;
|
||||
viewType?: boolean;
|
||||
record?: string;
|
||||
}
|
||||
|
||||
const BaseInfoTab: React.FC<BaseInfoTabProps> = (props) => {
|
||||
const userId = sessionStorage.getItem('userId') || '';
|
||||
const { viewType = false, record = userId } = props;
|
||||
const { viewType = false, record = userId } = props;
|
||||
const intl = useIntl();
|
||||
const [registerInfo, setRegisterInfo] = useState<Request>();
|
||||
//变更说明与附件
|
||||
@ -75,11 +75,11 @@ const BaseInfoTab: React.FC<BaseInfoTabProps> = (props) => {
|
||||
fetchData();
|
||||
};
|
||||
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
if(record) {
|
||||
//供应商信息
|
||||
fetchData()
|
||||
if (record) {
|
||||
//供应商信息
|
||||
fetchData()
|
||||
}
|
||||
}, [record]);
|
||||
|
||||
@ -87,8 +87,8 @@ const BaseInfoTab: React.FC<BaseInfoTabProps> = (props) => {
|
||||
|
||||
return (
|
||||
<div style={{ padding: '0 30px 0 0' }}>
|
||||
|
||||
{ !viewType && (
|
||||
|
||||
{!viewType && (
|
||||
<Button type="primary" onClick={handleAdd}>修改</Button>
|
||||
)}
|
||||
<Descriptions
|
||||
@ -116,23 +116,19 @@ const BaseInfoTab: React.FC<BaseInfoTabProps> = (props) => {
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.foreignVAT' })}>
|
||||
{registerInfo.coscoSupplierBase.vat}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.foreignTaxpayerId' })}>
|
||||
{/* <Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.foreignTaxpayerId' })}>
|
||||
{registerInfo.coscoSupplierBase.taxpayerId}
|
||||
</Descriptions.Item>
|
||||
</Descriptions.Item> */}
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.foreignCurrency' })}>
|
||||
{registerInfo.coscoSupplierBase.currency}
|
||||
</Descriptions.Item>
|
||||
</>
|
||||
)}
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.creditCode' })}>
|
||||
{registerInfo.coscoSupplierBase.socialCreditCode}
|
||||
</Descriptions.Item>
|
||||
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.businessScope' })}>
|
||||
{registerInfo.coscoSupplierBase.range}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.registerAddress' })}>
|
||||
{registerInfo.coscoSupplierBase.regAddress}
|
||||
</Descriptions.Item>
|
||||
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.officeAddress' })}>
|
||||
{registerInfo.coscoSupplierBase.workAddress}
|
||||
</Descriptions.Item>
|
||||
@ -142,24 +138,39 @@ const BaseInfoTab: React.FC<BaseInfoTabProps> = (props) => {
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.legalPerson' })}>
|
||||
{registerInfo.coscoSupplierBase.legalPerson}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.idCardNumber' })}>
|
||||
{registerInfo.coscoSupplierBase.idCard}
|
||||
</Descriptions.Item>
|
||||
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.registeredCapital' })}>
|
||||
{registerInfo.coscoSupplierBase.capital}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.supplierType' })}>
|
||||
{registerInfo.coscoSupplierBase.enterpriseType}
|
||||
</Descriptions.Item>
|
||||
|
||||
{registerInfo.coscoSupplierBase.supplierType === 'dvs' && (
|
||||
<>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.creditCode' })}>
|
||||
{registerInfo.coscoSupplierBase.socialCreditCode}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.registerAddress' })}>
|
||||
{registerInfo.coscoSupplierBase.regAddress}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.idCardNumber' })}>
|
||||
{registerInfo.coscoSupplierBase.idCard}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.supplierType' })}>
|
||||
{registerInfo.coscoSupplierBase.enterpriseType}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.contactMobile' })}>
|
||||
{registerInfo.coscoSupplierBase.contactsPhone}
|
||||
</Descriptions.Item>
|
||||
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.contactIdType' })}>
|
||||
{registerInfo.coscoSupplierBase.contactsType}
|
||||
</Descriptions.Item>
|
||||
</>
|
||||
)}
|
||||
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.contactName' })}>
|
||||
{registerInfo.coscoSupplierBase.contactsName}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.contactMobile' })}>
|
||||
{registerInfo.coscoSupplierBase.contactsPhone}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.contactIdType' })}>
|
||||
{registerInfo.coscoSupplierBase.contactsType}
|
||||
</Descriptions.Item>
|
||||
|
||||
<Descriptions.Item label={intl.formatMessage({ id: 'component.globalModal.contactEmail' })}>
|
||||
{registerInfo.coscoSupplierBase.contactsEmail}
|
||||
</Descriptions.Item>
|
||||
|
@ -71,12 +71,14 @@ const SupplierSelector: React.FC<{ visible: boolean; onCancel: () => void; onSel
|
||||
}, [visible])
|
||||
//供应商名称
|
||||
const columns = [
|
||||
{ title: '供应商名称', dataIndex: 'name', ellipsis: true, width: 160, render: (name: string) => (
|
||||
<Tooltip placement="topLeft" title={name}>
|
||||
{name}
|
||||
</Tooltip>
|
||||
), },
|
||||
{ title: '境内/境外', dataIndex: 'supplierType', render: (supplierType: string) => supplierType === 'dvs' ? '境内' : '境外'},
|
||||
{ title: '供应商名称', dataIndex: 'name', ellipsis: true, width: 160, render: (_: any, record: any) => {
|
||||
const name = record.supplierType === "ovs"? record.nameEn : record.name;
|
||||
return(
|
||||
<Tooltip placement="topLeft" title={name}>
|
||||
{name}
|
||||
</Tooltip>)
|
||||
} },
|
||||
{ title: '统一社会信用代码/税号', ellipsis: true, dataIndex: 'unifiedCode' },
|
||||
];
|
||||
return (
|
||||
<Modal title="选择供应商" visible={visible} onCancel={onCancel} footer={null} width="80%">
|
||||
|
@ -21,6 +21,7 @@ interface coscoAccessSupplierLists {
|
||||
interface coscoAccessWorks {
|
||||
deptId: string;
|
||||
reviewStatusText: string;
|
||||
approveStatusText: string;
|
||||
}
|
||||
|
||||
const ViewModal: React.FC<{
|
||||
@ -62,7 +63,7 @@ const ViewModal: React.FC<{
|
||||
})}
|
||||
</Descriptions.Item>
|
||||
|
||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.approveStatusText}</Descriptions.Item>
|
||||
</Descriptions>
|
||||
)}
|
||||
</Modal>
|
||||
|
@ -21,6 +21,7 @@ interface coscoAccessSupplierLists {
|
||||
interface coscoAccessWorks {
|
||||
deptId: string;
|
||||
reviewStatusText: string;
|
||||
approveStatusText: string;
|
||||
}
|
||||
|
||||
const ViewModal: React.FC<{
|
||||
@ -62,7 +63,7 @@ const ViewModal: React.FC<{
|
||||
})}
|
||||
</Descriptions.Item>
|
||||
|
||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.approveStatusText}</Descriptions.Item>
|
||||
</Descriptions>
|
||||
)}
|
||||
</Modal>
|
||||
|
@ -35,6 +35,7 @@ interface coscoAccessWorks {
|
||||
reviewStatusText: string;
|
||||
accessType: string;
|
||||
accessDesc: string;
|
||||
approveStatusText: string;
|
||||
}
|
||||
|
||||
const ViewModal: React.FC<{
|
||||
@ -102,7 +103,7 @@ const ViewModal: React.FC<{
|
||||
)
|
||||
})}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.approveStatusText}</Descriptions.Item>
|
||||
</>
|
||||
)}
|
||||
|
||||
|
@ -328,6 +328,7 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
||||
<Form.Item
|
||||
label="供应商符合性审查"
|
||||
name="supplierCompliance"
|
||||
required
|
||||
rules={[
|
||||
{
|
||||
validator: (_, value) => {
|
||||
|
@ -25,6 +25,19 @@ interface ReviewerSelectorProps {
|
||||
leader?: string; // 回显:组长userId
|
||||
}
|
||||
|
||||
|
||||
function orgIdAndDeptId(data:any) {
|
||||
const sss = data.map((item:any) => {
|
||||
return {
|
||||
...item,
|
||||
deptId: item.orgId
|
||||
}
|
||||
})
|
||||
|
||||
return sss
|
||||
|
||||
}
|
||||
|
||||
const ReviewerSelector: React.FC<ReviewerSelectorProps> = ({
|
||||
visible,
|
||||
onCancel,
|
||||
@ -63,7 +76,7 @@ const ReviewerSelector: React.FC<ReviewerSelectorProps> = ({
|
||||
.then((res) => {
|
||||
const { code, data } = res;
|
||||
if(code == 200) {
|
||||
setData(data.records);
|
||||
setData(orgIdAndDeptId(data.records));
|
||||
setTotal(data.total);
|
||||
}
|
||||
})
|
||||
|
@ -70,12 +70,14 @@ const SupplierSelector: React.FC<{ visible: boolean; onCancel: () => void; onSel
|
||||
}, [visible])
|
||||
//供应商名称
|
||||
const columns = [
|
||||
{ title: '供应商名称', dataIndex: 'name', ellipsis: true, width: 160, render: (name: string) => (
|
||||
{ title: '供应商名称', dataIndex: 'name', ellipsis: true, width: 160, render: (_: any, record: any) => {
|
||||
const name = record.supplierType === "ovs"? record.nameEn : record.name;
|
||||
return(
|
||||
<Tooltip placement="topLeft" title={name}>
|
||||
{name}
|
||||
</Tooltip>
|
||||
), },
|
||||
{ title: '境内/境外', dataIndex: 'supplierType', render: (supplierType: string) => supplierType === 'dvs' ? '境内' : '境外'},
|
||||
</Tooltip>)
|
||||
} },
|
||||
{ title: '统一社会信用代码/税号', ellipsis: true, dataIndex: 'unifiedCode' },
|
||||
];
|
||||
return (
|
||||
<Modal title="选择供应商" visible={visible} onCancel={onCancel} footer={null} width="80%">
|
||||
@ -83,7 +85,7 @@ const SupplierSelector: React.FC<{ visible: boolean; onCancel: () => void; onSel
|
||||
<Form layout="inline" form={form} onFinish={getTableList} style={{ marginBottom: 16 }}>
|
||||
|
||||
<Form.Item name="name" label="供应商名称">
|
||||
<Input placeholder="请输入供应商名称关键字" style={{ width: 220 }} allowClear maxLength={20} />
|
||||
<Input placeholder="请输入供应商名称关键字" style={{ width: 220 }} allowClear maxLength={100} />
|
||||
</Form.Item>
|
||||
<Form.Item name="supplierType" label="境内/境外">
|
||||
<Select style={{ width: 160 }} placeholder="请选择境内/境外" allowClear>
|
||||
|
@ -35,6 +35,7 @@ interface coscoAccessWorks {
|
||||
reviewStatusText: string;
|
||||
accessType: string;
|
||||
accessDesc: string;
|
||||
approveStatusText: string;
|
||||
}
|
||||
|
||||
const ViewModal: React.FC<{
|
||||
@ -102,7 +103,7 @@ const ViewModal: React.FC<{
|
||||
)
|
||||
})}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.approveStatusText}</Descriptions.Item>
|
||||
</>
|
||||
)}
|
||||
|
||||
|
@ -104,12 +104,12 @@ const AccessManagement: React.FC = () => {
|
||||
render: (_: any, record: any) => (
|
||||
<Space>
|
||||
<a onClick={() => openModal('view', record)}>查看</a>
|
||||
{((record.reviewStatus === '3' && record.accessTypeText === 'online') && !record.approveStatusText) && (
|
||||
{((record.reviewStatus === '3' && record.accessType === 'online') && !record.approveStatusText) && (
|
||||
<a onClick={() => handleApproval(record.id)}>
|
||||
发起审批
|
||||
</a>
|
||||
)}
|
||||
{(record.reviewStatus === '3' && record.accessTypeText === 'online') && (
|
||||
{(record.reviewStatus === '3' && record.accessType === 'online') && (
|
||||
<>
|
||||
<a onClick={() => openModal('result', record)}>评审结果</a>
|
||||
</>
|
||||
|
@ -35,6 +35,7 @@ interface coscoAccessWorks {
|
||||
reviewStatusText: string;
|
||||
accessType: string;
|
||||
accessDesc: string;
|
||||
approveStatusText: string;
|
||||
}
|
||||
|
||||
const ViewModal: React.FC<{
|
||||
@ -102,7 +103,7 @@ const ViewModal: React.FC<{
|
||||
)
|
||||
})}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.reviewStatusText}</Descriptions.Item>
|
||||
<Descriptions.Item label="审批结果">{data.coscoAccessWork.approveStatusText}</Descriptions.Item>
|
||||
</>
|
||||
)}
|
||||
|
||||
|
@ -3,11 +3,10 @@ import { Modal, Form, Input, DatePicker, Button, Tree, Select, message, Spin, Up
|
||||
import { UploadOutlined } from '@ant-design/icons';
|
||||
import { categoryTree, uploadFile, superiorLockList, getSupplierPage, library, libraryData } from '../services';
|
||||
import type { UploadFile } from 'antd/es/upload/interface';
|
||||
const areaOptions = [
|
||||
{ label: '全球', value: 'global' },
|
||||
{ label: '新加坡', value: 'singapore' },
|
||||
{ label: '香港', value: 'hongkong' },
|
||||
];
|
||||
|
||||
import { getregionInternational } from '@/servers/api/register';
|
||||
const { Option } = Select;
|
||||
|
||||
const approveTypeOptions = [
|
||||
{ label: '是', value: 'online' },
|
||||
{ label: '否', value: 'offline' },
|
||||
@ -57,6 +56,8 @@ const CategoryAddModal: React.FC<Props> = ({ visible, onCancel, onSuccess }) =>
|
||||
const [checkedKeys, setCheckedKeys] = useState<string[]>([]);
|
||||
const [treeData, setTreeData] = useState<TreeNodeType[]>([]);
|
||||
const [loading, setLoading] = useState(false);
|
||||
// 区域全球
|
||||
const [regionOptions, setRegionOptions] = useState<API.RegionOption[]>([]);
|
||||
const [expandedKeys, setExpandedKeys] = useState<string[]>([]);
|
||||
//供应商符合性审查
|
||||
const [fileList, setFileList] = useState<UploadFile<any>[]>([]);
|
||||
@ -131,6 +132,11 @@ const CategoryAddModal: React.FC<Props> = ({ visible, onCancel, onSuccess }) =>
|
||||
form.resetFields();
|
||||
}
|
||||
init(visible)
|
||||
getregionInternational().then(res => {
|
||||
if (res.code === 200) {
|
||||
setRegionOptions(res.data);
|
||||
}
|
||||
});
|
||||
}, [visible, form]);
|
||||
|
||||
const handleTreeCheck = (checkedKeysValue: any) => {
|
||||
@ -266,14 +272,20 @@ const CategoryAddModal: React.FC<Props> = ({ visible, onCancel, onSuccess }) =>
|
||||
<Form.Item
|
||||
label="区域选择(仅燃油品)"
|
||||
name="area"
|
||||
rules={[{ required: true, message: '请选择区域' }]}
|
||||
required
|
||||
>
|
||||
<Select
|
||||
{/* <Select
|
||||
placeholder="请选择区域"
|
||||
style={{ width: 260 }}
|
||||
options={areaOptions}
|
||||
/>
|
||||
/> rules={[{ required: true, message: '请选择区域' }]}
|
||||
required */}
|
||||
<Select placeholder="请选择区域">
|
||||
{
|
||||
regionOptions.map((item) => {
|
||||
return <Option value={item.id}>{item.name}</Option>
|
||||
})
|
||||
}
|
||||
</Select>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label="是否已走OA签报"
|
||||
|
@ -66,11 +66,11 @@ const ViewBlacklistModal: React.FC<ViewBlacklistModalProps> = ({
|
||||
|
||||
const columns:ColumnsType<Supplier> = [
|
||||
{ title: "供应商名称", dataIndex: "supplierName", align: "center" },
|
||||
{ title: "准入部门", dataIndex: "unit", align: "center" },
|
||||
{ title: "准入时间", dataIndex: "accessTime", align: "center" },
|
||||
{ title: "准入品类", dataIndex: "categoryName", align: "center" },
|
||||
{ title: "最近一次评价", dataIndex: "lastEval", align: "center" },
|
||||
{ title: "评价时间", dataIndex: "lastEvalDate", align: "center" },
|
||||
{ title: "准入部门", dataIndex: "deptId", align: "center" },
|
||||
// { title: "准入时间", dataIndex: "accessTime", align: "center" },
|
||||
{ title: "退出品类", dataIndex: "categoryName", align: "center" },
|
||||
// { title: "最近一次评价", dataIndex: "lastEval", align: "center" },
|
||||
// { title: "评价时间", dataIndex: "lastEvalDate", align: "center" },
|
||||
];
|
||||
|
||||
return (
|
||||
@ -86,7 +86,6 @@ const ViewBlacklistModal: React.FC<ViewBlacklistModalProps> = ({
|
||||
<Spin spinning={loading}>
|
||||
{detail && (
|
||||
<Descriptions
|
||||
title="退出信息"
|
||||
column={1}
|
||||
labelStyle={{ width: 120 }}
|
||||
bordered
|
||||
@ -104,6 +103,8 @@ const ViewBlacklistModal: React.FC<ViewBlacklistModalProps> = ({
|
||||
rowKey="id"
|
||||
bordered
|
||||
pagination={false}
|
||||
style={{ flex: 1, minHeight: 0 }}
|
||||
scroll={{ y: 'calc(100vh - 650px)' }}
|
||||
/>
|
||||
</Spin>
|
||||
</Modal>
|
||||
|
@ -86,8 +86,8 @@ const CreateBlacklistModal: React.FC<CreateBlacklistModalProps> = ({
|
||||
}, [visible]);
|
||||
const columns: ColumnsType<Supplier> = [
|
||||
{ title: "供应商名称", dataIndex: "supplierName", align: "center" },
|
||||
{ title: "准入部门", dataIndex: "unit", align: "center" },
|
||||
{ title: "准入时间", dataIndex: "accessTime", align: "center", render: () => "2023-04-20 13:00" },
|
||||
{ title: "准入部门", dataIndex: "deptId", align: "center" },
|
||||
{ title: "准入时间", dataIndex: "createTime", align: "center" },
|
||||
{ title: "准入品类", dataIndex: "categoryName", align: "center" },
|
||||
{ title: "最近一次评价", dataIndex: "lastEval", align: "center" },
|
||||
{ title: "评价时间", dataIndex: "lastEvalDate", align: "center" },
|
||||
|
@ -2,6 +2,7 @@ import React, { useEffect, useState } from "react";
|
||||
import {
|
||||
Modal, Table, Button, Checkbox, Row, Col, Input, Select, Form, Space, message
|
||||
} from "antd";
|
||||
import { RightOutlined, LeftOutlined } from '@ant-design/icons';
|
||||
import { getSupplierCategoryPage } from '../services';
|
||||
import CategorySelector from '@/components/CategorySelector';
|
||||
const { Option } = Select;
|
||||
@ -100,9 +101,9 @@ const SupplierSelectModal: React.FC<SupplierSelectModalProps> = ({
|
||||
onChange={e => {
|
||||
setLeftSelected(e.target.checked ? data.map(i => i.id) : []);
|
||||
}}
|
||||
>全选</Checkbox>,
|
||||
></Checkbox>,
|
||||
dataIndex: "select",
|
||||
width: 80,
|
||||
width: 40,
|
||||
render: (_: any, record: Supplier) => (
|
||||
<Checkbox
|
||||
checked={leftSelected.includes(record.id)}
|
||||
@ -111,7 +112,7 @@ const SupplierSelectModal: React.FC<SupplierSelectModalProps> = ({
|
||||
? [...leftSelected, record.id]
|
||||
: leftSelected.filter(id => id !== record.id));
|
||||
}}
|
||||
>选择</Checkbox>
|
||||
></Checkbox>
|
||||
)
|
||||
},
|
||||
{ title: "供应商名称", dataIndex: "supplierName" },
|
||||
@ -126,9 +127,9 @@ const SupplierSelectModal: React.FC<SupplierSelectModalProps> = ({
|
||||
onChange={e => {
|
||||
setRightSelected(e.target.checked ? rightData.map(i => i.id) : []);
|
||||
}}
|
||||
>全选</Checkbox>,
|
||||
></Checkbox>,
|
||||
dataIndex: "select",
|
||||
width: 80,
|
||||
width: 40,
|
||||
render: (_: any, record: Supplier) => (
|
||||
<Checkbox
|
||||
checked={rightSelected.includes(record.id)}
|
||||
@ -137,7 +138,7 @@ const SupplierSelectModal: React.FC<SupplierSelectModalProps> = ({
|
||||
? [...rightSelected, record.id]
|
||||
: rightSelected.filter(id => id !== record.id));
|
||||
}}
|
||||
>选择</Checkbox>
|
||||
></Checkbox>
|
||||
)
|
||||
},
|
||||
{ title: "供应商名称", dataIndex: "supplierName" },
|
||||
@ -195,10 +196,17 @@ const SupplierSelectModal: React.FC<SupplierSelectModalProps> = ({
|
||||
bordered
|
||||
/>
|
||||
</Col>
|
||||
<Col span={2} style={{ textAlign: "center", display: "flex", flexDirection: "column", justifyContent: "center" }}>
|
||||
<Button type="primary" disabled={!leftSelected.length} onClick={handleAdd} style={{ marginBottom: 16 }}>{">"}</Button>
|
||||
<Button disabled={!rightSelected.length} onClick={handleRemove}>{"<"}</Button>
|
||||
<Col span={2} style={{ textAlign: 'center', paddingTop: 100 }}>
|
||||
<Button onClick={handleAdd} disabled={!leftSelected.length}>
|
||||
<RightOutlined />
|
||||
</Button>
|
||||
<br />
|
||||
<br />
|
||||
<Button onClick={handleRemove} disabled={!rightSelected.length}>
|
||||
<LeftOutlined />
|
||||
</Button>
|
||||
</Col>
|
||||
|
||||
<Col span={11}>
|
||||
<div style={{ marginBottom: 8 }}>已选供应商</div>
|
||||
<Table
|
||||
|
@ -66,11 +66,11 @@ const ViewBlacklistModal: React.FC<ViewBlacklistModalProps> = ({
|
||||
|
||||
const columns:ColumnsType<Supplier> = [
|
||||
{ title: "供应商名称", dataIndex: "supplierName", align: "center" },
|
||||
{ title: "准入部门", dataIndex: "unit", align: "center" },
|
||||
{ title: "准入时间", dataIndex: "accessTime", align: "center" },
|
||||
{ title: "准入品类", dataIndex: "categoryName", align: "center" },
|
||||
{ title: "最近一次评价", dataIndex: "lastEval", align: "center" },
|
||||
{ title: "评价时间", dataIndex: "lastEvalDate", align: "center" },
|
||||
{ title: "准入部门", dataIndex: "deptId", align: "center" },
|
||||
// { title: "准入时间", dataIndex: "accessTime", align: "center" },
|
||||
{ title: "退出品类", dataIndex: "categoryName", align: "center" },
|
||||
// { title: "最近一次评价", dataIndex: "lastEval", align: "center" },
|
||||
// { title: "评价时间", dataIndex: "lastEvalDate", align: "center" },
|
||||
];
|
||||
|
||||
return (
|
||||
@ -86,7 +86,6 @@ const ViewBlacklistModal: React.FC<ViewBlacklistModalProps> = ({
|
||||
<Spin spinning={loading}>
|
||||
{detail && (
|
||||
<Descriptions
|
||||
title="退出信息"
|
||||
column={1}
|
||||
labelStyle={{ width: 120 }}
|
||||
bordered
|
||||
@ -104,6 +103,8 @@ const ViewBlacklistModal: React.FC<ViewBlacklistModalProps> = ({
|
||||
rowKey="id"
|
||||
bordered
|
||||
pagination={false}
|
||||
style={{ flex: 1, minHeight: 0 }}
|
||||
scroll={{ y: 'calc(100vh - 650px)' }}
|
||||
/>
|
||||
</Spin>
|
||||
</Modal>
|
||||
|
Reference in New Issue
Block a user