From e637f62d8632360631e9dca5d1cc806ef49c5f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=99=AF=E5=AD=A6?= <5412262+sun_jing_xue@user.noreply.gitee.com> Date: Fri, 18 Jul 2025 11:32:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E5=BC=B9=E5=87=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SupplierDetail.tsx | 7 ++++- .../components/ViewModal.tsx | 5 +++- .../components/ViewModal.tsx | 5 +++- .../components/ViewModal.tsx | 4 ++- .../admission/SupplierEntryReview/index.tsx | 23 +++++++++----- .../components/ViewModal.tsx | 6 +++- .../components/ViewModal.tsx | 6 +++- .../admissionReviewManagement/index.tsx | 23 +++++++++----- .../components/SupplierListModal.tsx | 19 ++++++++++-- .../category/CategoryLibraryManage/index.tsx | 1 + .../components/SupplierAddModal.tsx | 2 +- .../components/ViewModal.tsx | 23 +++++++++++--- .../components/ViewBlacklistModal.tsx | 30 +++++++++++++++---- .../components/ViewBlacklistModal.tsx | 2 +- .../components/SupplierSelectModal.tsx | 2 +- .../components/ViewBlacklistModal.tsx | 2 +- 16 files changed, 123 insertions(+), 37 deletions(-) diff --git a/src/components/SupplierDetailModalContext/SupplierDetail.tsx b/src/components/SupplierDetailModalContext/SupplierDetail.tsx index 63afb66..6c4b8ec 100644 --- a/src/components/SupplierDetailModalContext/SupplierDetail.tsx +++ b/src/components/SupplierDetailModalContext/SupplierDetail.tsx @@ -4,6 +4,7 @@ import SupplierRegisterInfo from '@/components/GlobalModal/components/SupplierRe import AccessCategoryTable from '@/components/GlobalModal/components/AccessCategoryTable'; import TianyanchaInfo from '@/components/GlobalModal/components/TianyanchaInfo'; import RiskList from '@/components/GlobalModal/components/RiskList'; +import ContactsInfo from '@/components/GlobalModal/components/ContactsInfo'; import { coscoSupplierBase } from '@/components/GlobalModal/services'; import { useIntl } from 'umi'; @@ -13,7 +14,7 @@ interface SupplierDetailProps { const SupplierDetail: React.FC = ({ supplierId }) => { const intl = useIntl(); - const [modalType, setModalType] = useState<'register' | 'category' | 'tianyancha' | 'risk'>('register'); + const [modalType, setModalType] = useState<'register' | 'category' | 'tianyancha' | 'risk' | 'contactsInfo'>('register'); const [registerInfo, setRegisterInfo] = useState(null); // 获取供应商信息 @@ -46,6 +47,9 @@ const SupplierDetail: React.FC = ({ supplierId }) => { if (modalType === 'risk') { return supplierId ? : null; } + if (modalType === 'contactsInfo') { + return supplierId ? : null; + } return null; }; @@ -69,6 +73,7 @@ const SupplierDetail: React.FC = ({ supplierId }) => { +
{renderContent()} diff --git a/src/pages/supplier/admission/SupplierCategoryEntry/components/ViewModal.tsx b/src/pages/supplier/admission/SupplierCategoryEntry/components/ViewModal.tsx index 2e42ec2..7f04edd 100644 --- a/src/pages/supplier/admission/SupplierCategoryEntry/components/ViewModal.tsx +++ b/src/pages/supplier/admission/SupplierCategoryEntry/components/ViewModal.tsx @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; import { Modal, Descriptions } from 'antd'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; import { coscoAccessWorkCategory } from '../services' @@ -32,6 +33,8 @@ const ViewModal: React.FC<{ }> = ({ visible, record = {}, onCancel }) => { //渲染数据 const [data, setData] = useState(null); + const supplierDetailModal = useSupplierDetailModal(); + //初始化 useEffect(() => { if (record.id) { @@ -52,7 +55,7 @@ const ViewModal: React.FC<{ {data.coscoAccessSupplierList.map((item) => { return ( -
{item.supplierName}
+
supplierDetailModal?.(item.supplierId)} >{item.supplierName}
) })}
diff --git a/src/pages/supplier/admission/SupplierCategoryEntryReview/components/ViewModal.tsx b/src/pages/supplier/admission/SupplierCategoryEntryReview/components/ViewModal.tsx index d3cb585..8029af8 100644 --- a/src/pages/supplier/admission/SupplierCategoryEntryReview/components/ViewModal.tsx +++ b/src/pages/supplier/admission/SupplierCategoryEntryReview/components/ViewModal.tsx @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; import { Modal, Descriptions } from 'antd'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; import { coscoAccessWorkCategory } from '../services' @@ -32,6 +33,8 @@ const ViewModal: React.FC<{ }> = ({ visible, record = {}, onCancel }) => { //渲染数据 const [data, setData] = useState(null); + const supplierDetailModal = useSupplierDetailModal(); + //初始化 useEffect(() => { if (record.id) { @@ -52,7 +55,7 @@ const ViewModal: React.FC<{ {data.coscoAccessSupplierList.map((item) => { return ( -
{item.supplierName}
+
supplierDetailModal?.(item.supplierId)} >{item.supplierName}
) })}
diff --git a/src/pages/supplier/admission/SupplierEntryReview/components/ViewModal.tsx b/src/pages/supplier/admission/SupplierEntryReview/components/ViewModal.tsx index 308a716..67abce5 100644 --- a/src/pages/supplier/admission/SupplierEntryReview/components/ViewModal.tsx +++ b/src/pages/supplier/admission/SupplierEntryReview/components/ViewModal.tsx @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; import { Modal, Descriptions } from 'antd'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; import { coscoAccessWork } from '../services' @@ -47,6 +48,7 @@ const ViewModal: React.FC<{ }> = ({ visible, record = {}, onCancel }) => { //渲染数据 const [data, setData] = useState(null); + const supplierDetailModal = useSupplierDetailModal(); //初始化 useEffect(() => { if (record) { @@ -67,7 +69,7 @@ const ViewModal: React.FC<{ {data.coscoAccessSupplierList.map((item) => { return ( -
{item.supplierName}
+
supplierDetailModal?.(item.supplierId)} >{item.supplierName}
) })}
diff --git a/src/pages/supplier/admission/SupplierEntryReview/index.tsx b/src/pages/supplier/admission/SupplierEntryReview/index.tsx index a19401f..34794ed 100644 --- a/src/pages/supplier/admission/SupplierEntryReview/index.tsx +++ b/src/pages/supplier/admission/SupplierEntryReview/index.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import { Table, Form, Select, Button, message, Space } from 'antd'; +import { Table, Form, Select, Button, message, Space, Tooltip } from 'antd'; import { SearchOutlined, DeleteOutlined } from '@ant-design/icons'; import type { ColumnsType } from 'antd/es/table'; //接口 @@ -146,14 +146,21 @@ const SupplierEntryReview: React.FC = () => { dataIndex: 'categoryNameList', width: 120, align: 'center', - render: (_: any, record: any) => { + render: (value: { item: string }[] = []) => { + if (!value || value.length === 0) return '-'; + if (value.length === 1) { + return {value[0].item}; + } + // 多于1条 + const allNames = value.map(item => item).join('、'); return ( - <> - {record.categoryNameList && record.categoryNameList.map((item: string) => { - return
{`${item}`}
- })} - - ) + + + {value[0]} + + + + ); }, }, { diff --git a/src/pages/supplier/admission/admissionManagement/components/ViewModal.tsx b/src/pages/supplier/admission/admissionManagement/components/ViewModal.tsx index 71ae702..03c7e64 100644 --- a/src/pages/supplier/admission/admissionManagement/components/ViewModal.tsx +++ b/src/pages/supplier/admission/admissionManagement/components/ViewModal.tsx @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; import { Modal, Descriptions } from 'antd'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; import { coscoAccessWork } from '../services' @@ -47,6 +48,8 @@ const ViewModal: React.FC<{ }> = ({ visible, record = {}, onCancel }) => { //渲染数据 const [data, setData] = useState(null); + const supplierDetailModal = useSupplierDetailModal(); + //初始化 useEffect(() => { if (record.id) { @@ -67,7 +70,8 @@ const ViewModal: React.FC<{ {data.coscoAccessSupplierList.map((item) => { return ( -
{item.supplierName}
+
supplierDetailModal?.(item.supplierId)} >{item.supplierName}
+ ) })}
diff --git a/src/pages/supplier/admission/admissionReviewManagement/components/ViewModal.tsx b/src/pages/supplier/admission/admissionReviewManagement/components/ViewModal.tsx index c8750c4..8a874d3 100644 --- a/src/pages/supplier/admission/admissionReviewManagement/components/ViewModal.tsx +++ b/src/pages/supplier/admission/admissionReviewManagement/components/ViewModal.tsx @@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react'; import { Modal, Descriptions } from 'antd'; import { coscoAccessWork } from '../services' +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; //数据接口 interface Data { @@ -47,6 +48,7 @@ const ViewModal: React.FC<{ }> = ({ visible, record = {}, onCancel }) => { //渲染数据 const [data, setData] = useState(null); + const supplierDetailModal = useSupplierDetailModal(); //初始化 useEffect(() => { if (record.id) { @@ -65,11 +67,13 @@ const ViewModal: React.FC<{ {data.coscoAccessWork.deptName} + {data.coscoAccessSupplierList.map((item) => { return ( -
{item.supplierName}
+
supplierDetailModal?.(item.supplierId)} >{item.supplierName}
) })} +
{data.coscoAccessWork.accessType === 'scattered' && ( diff --git a/src/pages/supplier/admission/admissionReviewManagement/index.tsx b/src/pages/supplier/admission/admissionReviewManagement/index.tsx index 8176793..d8baa52 100644 --- a/src/pages/supplier/admission/admissionReviewManagement/index.tsx +++ b/src/pages/supplier/admission/admissionReviewManagement/index.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from "react"; import { useIntl } from 'umi'; -import { Form, Button, Table, Space, Input } from 'antd'; +import { Form, Button, Table, Space, Input, Tooltip } from 'antd'; import type { ColumnsType, TablePaginationConfig } from 'antd/es/table'; import { SearchOutlined, DeleteOutlined } from '@ant-design/icons'; //接口 @@ -117,14 +117,21 @@ const CooperateEnterprise: React.FC = () => { dataIndex: 'categoryNameList', align: 'center', width: 160, - render: (_: any, record: Data) => { + render: (value: { item: string }[] = []) => { + if (!value || value.length === 0) return '-'; + if (value.length === 1) { + return {value[0].item}; + } + // 多于1条 + const allNames = value.map(item => item).join('、'); return ( - <> - {record.categoryNameList && record.categoryNameList.map((item: string) => { - return
{`${item}`}
- })} - - ) + + + {value[0]} + + + + ); }, }, { diff --git a/src/pages/supplier/category/CategoryLibraryManage/components/SupplierListModal.tsx b/src/pages/supplier/category/CategoryLibraryManage/components/SupplierListModal.tsx index da74064..2e1f5ba 100644 --- a/src/pages/supplier/category/CategoryLibraryManage/components/SupplierListModal.tsx +++ b/src/pages/supplier/category/CategoryLibraryManage/components/SupplierListModal.tsx @@ -1,7 +1,9 @@ import React, { useEffect, useState } from 'react'; -import { Modal, Table, Button, Descriptions, Spin } from 'antd'; +import { Modal, Table, Button, Descriptions, Spin, Tooltip } from 'antd'; import { getSupplierPage, detail } from "../services"; import type { ColumnsType } from 'antd/es/table'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; + // 供应商类型 interface Supplier { id: string; @@ -41,6 +43,8 @@ const SupplierListModal: React.FC<{ pageSize: 10, total: 0, }); + const supplierDetailModal = useSupplierDetailModal(); + // 拉数据 const fetchSuppliers = async (page = 1, pageSize = 10) => { @@ -85,7 +89,18 @@ const SupplierListModal: React.FC<{ // 列表列 const columns: ColumnsType = [ { title: '序号', dataIndex: 'id', align: 'center', width: 60, render: (t: any, r: any, i: number) => (pagination.current - 1) * pagination.pageSize + i + 1 }, - { title: '供应商名称', dataIndex: 'name', align: 'center' }, + { + title: "供应商名称", dataIndex: "name", align: "left", + width: 360, + ellipsis: true, + render: (dom, record) => { + return ( + + supplierDetailModal?.(record.id)}>{record.name || ''} + + ) + } + }, { title: '境内/境外', dataIndex: 'supplierCategory', align: 'center', render: (r: any,) => ({`${r.supplierCategory === 'dvs'? '境内企业':'境外企业'}`}) }, { title: '统一社会信用代码', dataIndex: 'unifiedSocialCreditCode', align: 'center' }, ]; diff --git a/src/pages/supplier/category/CategoryLibraryManage/index.tsx b/src/pages/supplier/category/CategoryLibraryManage/index.tsx index f47effc..01c7949 100644 --- a/src/pages/supplier/category/CategoryLibraryManage/index.tsx +++ b/src/pages/supplier/category/CategoryLibraryManage/index.tsx @@ -139,6 +139,7 @@ const CategoryLibraryManage: React.FC = () => { title: '库内供应商数量', dataIndex: 'snumber', key: 'snumber', + width: 200, align: 'center', render: (val: number, record: any) => ( { return ( - + supplierDetailModal?.(record.id)}>{record.name || ''} ) diff --git a/src/pages/supplier/category/SupplierEntryReview/components/ViewModal.tsx b/src/pages/supplier/category/SupplierEntryReview/components/ViewModal.tsx index 36e7fa3..1c50de4 100644 --- a/src/pages/supplier/category/SupplierEntryReview/components/ViewModal.tsx +++ b/src/pages/supplier/category/SupplierEntryReview/components/ViewModal.tsx @@ -1,8 +1,9 @@ import React, { useEffect, useState } from 'react'; -import { Modal, Button, Descriptions, Tree, Table } from 'antd'; +import { Modal, Button, Descriptions, Tooltip, Table } from 'antd'; import { detail, treeList } from "../services"; import type { DataNode } from 'antd/es/tree'; import type { ColumnsType } from 'antd/es/table'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; // 基本信息类型 interface CategoryInfo { @@ -36,6 +37,7 @@ interface LockNode extends DataNode { } interface columns { + id: string; name: string; supplierCategory: string; } @@ -51,6 +53,8 @@ const ViewModal: React.FC<{ const [treeData, setTreeData] = useState([]); const [expandedKeys, setExpandedKeys] = useState([]); const [autoExpandParent, setAutoExpandParent] = useState(true); + const supplierDetailModal = useSupplierDetailModal(); + // 拉取基本信息 const fetchCategoryInfo = async () => { if (!storeId) return; @@ -82,17 +86,28 @@ const ViewModal: React.FC<{ } }, [visible, storeId]); const columns: ColumnsType = [ - { title: '供应商名称', dataIndex: 'name', align: 'center' }, + { + title: "供应商名称", dataIndex: "name", align: "left", + width: 360, + ellipsis: true, + render: (dom, record) => { + return ( + + supplierDetailModal?.(record.id)}>{record.name || ''} + + ) + } + }, { title: '境内/境外', dataIndex: 'supplierCategory', align: 'center', render: (record: any) => { - const supplierCategoryType = record.supplierCategory === 'dvs' ? '境内企业' : record.supplierCategory === 'pe' ? '个人':'境外企业' + const supplierCategoryType = record.supplierCategory === 'dvs' ? '境内企业' : record.supplierCategory === 'pe' ? '个人' : '境外企业' return ( {supplierCategoryType} ) } }, - { title: '供应商类型', dataIndex: '', align: 'center' }, + { title: '企业类型', dataIndex: '', align: 'center' }, ] return ( = ({ const [loading, setLoading] = useState(false); const [detail, setDetail] = useState(null); const [suppliers, setSuppliers] = useState([]); + const supplierDetailModal = useSupplierDetailModal(); const fetchData = async () => { setLoading(true); @@ -64,12 +66,30 @@ const ViewBlacklistModal: React.FC = ({ }, [visible, recordId]); const columns:ColumnsType = [ - { title: "供应商名称", dataIndex: "supplierName", align: "center" }, + { + title: "供应商名称", dataIndex: "supplierName", align: "left", + width: 200, + ellipsis: true, + render: (dom, record) => { + return ( + + supplierDetailModal?.(record.supplierId)}>{record.supplierName || ''} + + ) + } + }, + { title: "准入部门", dataIndex: "deptName", align: "center" }, { title: "准入时间", dataIndex: "evaluateTime", align: "center" }, - { title: "准入品类", dataIndex: "categoryName", align: "center" }, - // { title: "最近一次评价", dataIndex: "lastEval", align: "center" }, - // { title: "评价时间", dataIndex: "lastEvalDate", align: "center" }, + { title: "准入品类", dataIndex: "categoryName", align: "center", width: 180, + ellipsis: true, + render: (dom, record) => { + return ( + + {record.categoryName} + + ) + } }, ]; return ( diff --git a/src/pages/supplier/supplierExit/supplierExitAudit/components/ViewBlacklistModal.tsx b/src/pages/supplier/supplierExit/supplierExitAudit/components/ViewBlacklistModal.tsx index 5ef97ff..967c141 100644 --- a/src/pages/supplier/supplierExit/supplierExitAudit/components/ViewBlacklistModal.tsx +++ b/src/pages/supplier/supplierExit/supplierExitAudit/components/ViewBlacklistModal.tsx @@ -85,7 +85,7 @@ const ViewBlacklistModal: React.FC = ({ ellipsis: true, render: (dom, record) => { return ( - + supplierDetailModal?.(record.supplierId)}>{record.supplierName || ''} ) diff --git a/src/pages/supplier/supplierExit/supplierExitManage/components/SupplierSelectModal.tsx b/src/pages/supplier/supplierExit/supplierExitManage/components/SupplierSelectModal.tsx index 18cf8b8..5565872 100644 --- a/src/pages/supplier/supplierExit/supplierExitManage/components/SupplierSelectModal.tsx +++ b/src/pages/supplier/supplierExit/supplierExitManage/components/SupplierSelectModal.tsx @@ -124,7 +124,7 @@ const SupplierSelectModal: React.FC = ({ ellipsis: true, render: (_: any, record: Supplier) => { return ( - + supplierDetailModal?.(record.supplierId)}>{record.supplierName || ''} ) diff --git a/src/pages/supplier/supplierExit/supplierExitManage/components/ViewBlacklistModal.tsx b/src/pages/supplier/supplierExit/supplierExitManage/components/ViewBlacklistModal.tsx index 5ef97ff..ba0e883 100644 --- a/src/pages/supplier/supplierExit/supplierExitManage/components/ViewBlacklistModal.tsx +++ b/src/pages/supplier/supplierExit/supplierExitManage/components/ViewBlacklistModal.tsx @@ -85,7 +85,7 @@ const ViewBlacklistModal: React.FC = ({ ellipsis: true, render: (dom, record) => { return ( - + supplierDetailModal?.(record.supplierId)}>{record.supplierName || ''} )