From aebb615fb6428844e14d536c745ba0c975ac4d78 Mon Sep 17 00:00:00 2001 From: linxd <544554903@qq.com> Date: Wed, 16 Jul 2025 09:26:08 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=E7=82=B9=E5=87=BB=E5=BC=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SupplierDetail.tsx | 95 ++++++++++++++- .../SupplierDetailModalContext.tsx | 5 +- .../SupplierDetailModalContext/readme.md | 13 +- .../SupplierSelector/SupplierSelector.tsx | 115 ++++++++++++------ .../supplierAnnualResultDetail.tsx | 4 +- .../supplierAnnualResultQuery.tsx | 5 + .../supplierAnnualResultQuery2.tsx | 6 + .../supplierAnnualReview.tsx | 6 +- .../supplierAnnualScore.tsx | 6 +- .../supplierAnnualScoreDetail.tsx | 4 +- .../components/Detail/SupplierInfo.tsx | 6 +- .../supplierEvaluateResultInfo.tsx | 6 +- .../supplierEvaluateResultScoreByList.tsx | 64 ++++++---- .../supplierEvaluateScore.tsx | 5 + .../components/Detail/SupplierInfo.tsx | 21 ++-- .../supplierEvaluateResult.d.ts | 2 +- 16 files changed, 277 insertions(+), 86 deletions(-) diff --git a/src/components/SupplierDetailModalContext/SupplierDetail.tsx b/src/components/SupplierDetailModalContext/SupplierDetail.tsx index 922f788..63afb66 100644 --- a/src/components/SupplierDetailModalContext/SupplierDetail.tsx +++ b/src/components/SupplierDetailModalContext/SupplierDetail.tsx @@ -1,12 +1,99 @@ import React, { useState, useEffect } from 'react'; +import { Button, Space, Descriptions } from 'antd'; +import SupplierRegisterInfo from '@/components/GlobalModal/components/SupplierRegisterInfo'; +import AccessCategoryTable from '@/components/GlobalModal/components/AccessCategoryTable'; +import TianyanchaInfo from '@/components/GlobalModal/components/TianyanchaInfo'; +import RiskList from '@/components/GlobalModal/components/RiskList'; +import { coscoSupplierBase } from '@/components/GlobalModal/services'; +import { useIntl } from 'umi'; -const SupplierDetail = ({ supplierId }: { supplierId: string | null }) => { - const [supplierDetail, setSupplierDetail] = useState(null); +interface SupplierDetailProps { + supplierId: string | null; +} + +const SupplierDetail: React.FC = ({ supplierId }) => { + const intl = useIntl(); + const [modalType, setModalType] = useState<'register' | 'category' | 'tianyancha' | 'risk'>('register'); + const [registerInfo, setRegisterInfo] = useState(null); + + // 获取供应商信息 + const fetchRegisterInfo = () => { + if (!supplierId) return; + coscoSupplierBase(supplierId).then((res) => { + const { code, data } = res; + if (code === 200) { + setRegisterInfo(data); + } + }); + }; + + // 切换 Tab + const handleSwitch = (type: typeof modalType) => { + setModalType(type); + }; + + // 渲染内容 + const renderContent = () => { + if (modalType === 'register' && registerInfo?.coscoSupplierBase) { + return ; + } + if (modalType === 'category') { + return supplierId ? : null; + } + if (modalType === 'tianyancha') { + return supplierId ? : null; + } + if (modalType === 'risk') { + return supplierId ? : null; + } + return null; + }; useEffect(() => { - console.log(supplierId); + if (supplierId) { + setModalType('register'); + fetchRegisterInfo(); + } else { + setRegisterInfo(null); + } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [supplierId]); - return
SupplierDetail
; + + if (!supplierId) return null; + + return ( + (registerInfo?.coscoSupplierBase?.supplierType !== 'pe' && registerInfo) ? ( +
+ + + + + + +
+ {renderContent()} +
+
+ ) : ( + + + {registerInfo?.coscoSupplierBase?.personName} + + + {registerInfo?.coscoSupplierBase?.idCard} + + + {registerInfo?.coscoSupplierBase?.personPhone} + + + {registerInfo?.coscoSupplierBase?.personBank} + + + {registerInfo?.coscoSupplierBase?.personAccount} + + + ) + ); }; export default SupplierDetail; diff --git a/src/components/SupplierDetailModalContext/SupplierDetailModalContext.tsx b/src/components/SupplierDetailModalContext/SupplierDetailModalContext.tsx index 1b902fe..25b2320 100644 --- a/src/components/SupplierDetailModalContext/SupplierDetailModalContext.tsx +++ b/src/components/SupplierDetailModalContext/SupplierDetailModalContext.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { Modal } from 'antd'; +import { Modal, message } from 'antd'; import SupplierDetail from './SupplierDetail'; const SupplierDetailModalContext = React.createContext<((id: string) => void) | null>(null); @@ -10,6 +10,7 @@ export const SupplierDetailModalProvider = ({ children }: { children: React.Reac const [supplierId, setSupplierId] = useState(null); const showSupplierDetail = (id: string) => { + if (!id) return message.error('此供应商信息缺失,请联系管理员'); setSupplierId(id); setVisible(true); }; @@ -17,7 +18,7 @@ export const SupplierDetailModalProvider = ({ children }: { children: React.Reac return ( {children} - setVisible(false)} footer={null}> + setVisible(false)} footer={null} width="90%"> diff --git a/src/components/SupplierDetailModalContext/readme.md b/src/components/SupplierDetailModalContext/readme.md index eff0276..8bf2310 100644 --- a/src/components/SupplierDetailModalContext/readme.md +++ b/src/components/SupplierDetailModalContext/readme.md @@ -1,3 +1,10 @@ -// 任何页面/组件 -const showSupplierDetail = useSupplierDetailModal(); - showSupplierDetail(supplier.id)}>{supplier.name} +// 任何组件中 +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; + +const MyComponent = () => { + const showSupplierDetail = useSupplierDetailModal(); + + return ( + showSupplierDetail('123')}>查看供应商 + ); +}; diff --git a/src/components/SupplierSelector/SupplierSelector.tsx b/src/components/SupplierSelector/SupplierSelector.tsx index 3a79966..33485eb 100644 --- a/src/components/SupplierSelector/SupplierSelector.tsx +++ b/src/components/SupplierSelector/SupplierSelector.tsx @@ -5,6 +5,7 @@ import { getSupplierPage } from '@/servers/api/supplier'; import CategorySelector from '@/components/CategorySelector/CategorySelector'; import './SupplierSelector.less'; import { useIntl } from 'umi'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; const { Option } = Select; @@ -83,9 +84,10 @@ const SupplierSelector: React.FC = ({ // 查询参数 const [queryParams, setQueryParams] = useState({ pageNo: 1, - pageSize: 10 + pageSize: 10, }); + const supplierDetailModal = useSupplierDetailModal(); /** * 监听初始已选供应商变化,更新内部状态 */ @@ -129,7 +131,9 @@ const SupplierSelector: React.FC = ({ */ const moveToLeft = () => { // 过滤掉右侧选中的供应商 - const remaining = chosenSuppliers.filter((item: SupplierItem) => !rightSelected.includes(item.id)); + const remaining = chosenSuppliers.filter( + (item: SupplierItem) => !rightSelected.includes(item.id), + ); // 更新已选列表 setChosenSuppliers(remaining); // 清空右侧选择状态 @@ -151,18 +155,23 @@ const SupplierSelector: React.FC = ({ if (response && response.code === 200) { // 请求成功,更新数据和分页信息 - setTableListData(response.data.records.map((item: any) => ({ - ...item, - supplierName: item.name, - }))); + setTableListData( + response.data.records.map((item: any) => ({ + ...item, + supplierName: item.name, + })), + ); setPagination({ current: queryParams.pageNo, pageSize: queryParams.pageSize, - total: response.data.total || 0 + total: response.data.total || 0, }); } else { // 请求失败,显示错误信息 - message.error(response?.message || intl.formatMessage({ id: 'supplierTaskManage.message.fetchSupplierListFailed' })); + message.error( + response?.message || + intl.formatMessage({ id: 'supplierTaskManage.message.fetchSupplierListFailed' }), + ); setTableListData([]); setPagination({ current: 1, pageSize: 10, total: 0 }); } @@ -189,10 +198,10 @@ const SupplierSelector: React.FC = ({ */ useEffect(() => { const values = form.getFieldsValue(); - setQueryParams(prev => ({ + setQueryParams((prev) => ({ ...prev, ...values, - pageNo: 1 + pageNo: 1, })); }, []); // 空依赖数组,只在组件挂载时执行一次 @@ -201,10 +210,10 @@ const SupplierSelector: React.FC = ({ * @param {any} values - 表单值 */ const handleSearch = (values: any) => { - setQueryParams(prev => ({ + setQueryParams((prev) => ({ ...prev, ...values, - pageNo: 1 + pageNo: 1, })); }; @@ -214,10 +223,10 @@ const SupplierSelector: React.FC = ({ const handleReset = () => { form.resetFields(); const values = form.getFieldsValue(); - setQueryParams(prev => ({ + setQueryParams((prev) => ({ ...prev, ...values, - pageNo: 1 + pageNo: 1, })); }; @@ -226,18 +235,13 @@ const SupplierSelector: React.FC = ({ * @param {any} paginationInfo - 分页信息 */ const handleTableChange = (paginationInfo: any) => { - setQueryParams(prev => ({ + setQueryParams((prev) => ({ ...prev, pageNo: paginationInfo.current, - pageSize: paginationInfo.pageSize + pageSize: paginationInfo.pageSize, })); }; - // 显示供应商详情 - const showSupplierDetail = (record: SupplierItem) => { - console.log(record); - }; - // 表格列定义 const columns = [ { @@ -247,7 +251,7 @@ const SupplierSelector: React.FC = ({ ellipsis: true, render: (supplierName: string, record: SupplierItem) => ( - showSupplierDetail(record)}>{supplierName} + ), }, @@ -273,34 +277,61 @@ const SupplierSelector: React.FC = ({ ), }, - ]; return (
{/* 查询表单 */}
- - + + - - + + + - + - + - + @@ -310,13 +341,18 @@ const SupplierSelector: React.FC = ({
{intl.formatMessage({ id: 'supplierTaskManage.text.availableSuppliers' })} - {intl.formatMessage({ id: 'supplierTaskManage.text.itemCount' }, { count: pagination.total })} + + {intl.formatMessage( + { id: 'supplierTaskManage.text.itemCount' }, + { count: pagination.total }, + )} +
= ({
{intl.formatMessage({ id: 'supplierTaskManage.text.selectedSuppliers' })} - {intl.formatMessage({ id: 'supplierTaskManage.text.itemCount' }, { count: chosenSuppliers.length })} + + {intl.formatMessage( + { id: 'supplierTaskManage.text.itemCount' }, + { count: chosenSuppliers.length }, + )} +
{ const intl = useIntl(); + const supplierDetailModal = useSupplierDetailModal(); const [loading, setLoading] = useState(false); const [reviewDetail, setReviewDetail] = useState(null); const [scoreResults, setScoreResults] = useState([]); @@ -133,7 +135,7 @@ const SupplierAnnualResultDetail: React.FC = () => { - {supplierName || reviewDetail.name} + {annualTheme} diff --git a/src/pages/supplierAnnualManage/supplierAnnualResult/supplierAnnualResultQuery.tsx b/src/pages/supplierAnnualManage/supplierAnnualResult/supplierAnnualResultQuery.tsx index a9f4470..fee7c35 100644 --- a/src/pages/supplierAnnualManage/supplierAnnualResult/supplierAnnualResultQuery.tsx +++ b/src/pages/supplierAnnualManage/supplierAnnualResult/supplierAnnualResultQuery.tsx @@ -15,6 +15,7 @@ import { import { ArrowLeftOutlined, SearchOutlined, DeleteOutlined } from '@ant-design/icons'; import { getAnnualResultSupplierList } from '@/servers/api/supplierAnnual'; import styles from './supplierAnnualResult.less'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; const { Title } = Typography; const { Option } = Select; @@ -28,6 +29,7 @@ const resultOptions = [ const SupplierAnnualResultQuery: React.FC = () => { const intl = useIntl(); + const supplierDetailModal = useSupplierDetailModal(); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [data, setData] = useState([]); @@ -162,6 +164,9 @@ const SupplierAnnualResultQuery: React.FC = () => { title: intl.formatMessage({ id: 'supplierAnnualResult.supplier.supplierName' }), dataIndex: 'name', key: 'name', + render: (text: string, record: supplierAnnualResult.SupplierRecord) => ( + + ), }, { title: intl.formatMessage({ id: 'supplierAnnualResult.supplier.category' }), diff --git a/src/pages/supplierAnnualManage/supplierAnnualResult/supplierAnnualResultQuery2.tsx b/src/pages/supplierAnnualManage/supplierAnnualResult/supplierAnnualResultQuery2.tsx index a83c5a5..ded3b9a 100644 --- a/src/pages/supplierAnnualManage/supplierAnnualResult/supplierAnnualResultQuery2.tsx +++ b/src/pages/supplierAnnualManage/supplierAnnualResult/supplierAnnualResultQuery2.tsx @@ -20,6 +20,7 @@ import { AnnualReviewStatusText, AnnualReviewStatusColor } from '@/dicts/supplierAnnualReviewDict'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; const { Title } = Typography; const { Option } = Select; @@ -33,6 +34,7 @@ const resultOptions = [ const SupplierAnnualResultQuery2: React.FC = () => { const intl = useIntl(); + const supplierDetailModal = useSupplierDetailModal(); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [data, setData] = useState([]); @@ -66,6 +68,7 @@ const SupplierAnnualResultQuery2: React.FC = () => { pageNo: pagination.current, pageSize: pagination.pageSize, }, + userId: '', annualreviewTaskId, ...searchParams, }); @@ -182,6 +185,9 @@ const SupplierAnnualResultQuery2: React.FC = () => { title: intl.formatMessage({ id: 'supplierAnnualResult.review.supplierName' }), dataIndex: 'name', key: 'name', + render: (text: string, record: supplierAnnualResult.ReviewRecord) => ( + + ), }, { title: intl.formatMessage({ id: 'supplierAnnualResult.review.category' }), diff --git a/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualReview.tsx b/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualReview.tsx index 766f255..ae518ac 100644 --- a/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualReview.tsx +++ b/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualReview.tsx @@ -26,6 +26,7 @@ import { } from '@/dicts/supplierAnnualReviewDict'; import { getDictList } from '@/servers/api/dicts'; import type { DictItem } from '@/servers/api/dicts'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; const { Option } = Select; const { RangePicker } = DatePicker; @@ -40,6 +41,7 @@ interface AnnualReviewSearchParams { const SupplierAnnualReview: React.FC = () => { const intl = useIntl(); + const supplierDetailModal = useSupplierDetailModal(); const [loading, setLoading] = useState(false); const [form] = Form.useForm(); const [reviewStatus, setReviewStatus] = useState([]); @@ -181,9 +183,9 @@ const SupplierAnnualReview: React.FC = () => { ellipsis: { showTitle: false, }, - render: (text: string) => ( + render: (text: string, record: supplierAnnualReview.ReviewRecord) => ( - {text} + ), }, diff --git a/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualScore.tsx b/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualScore.tsx index 9859587..4850244 100644 --- a/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualScore.tsx +++ b/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualScore.tsx @@ -26,6 +26,7 @@ import { ExamineResultText, } from '@/dicts/supplierAnnualReviewDict'; import styles from './supplierAnnualReview.less'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; const { Title } = Typography; const { TextArea } = Input; @@ -41,6 +42,7 @@ interface ScoreFormItem { const SupplierAnnualReviewScore: React.FC = () => { const intl = useIntl(); + const supplierDetailModal = useSupplierDetailModal(); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [submitting, setSubmitting] = useState(false); @@ -186,7 +188,9 @@ const SupplierAnnualReviewScore: React.FC = () => { {reviewDetail.annualreviewTheme} - {reviewDetail.name} + + + {reviewDetail.deptName || '-'} diff --git a/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualScoreDetail.tsx b/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualScoreDetail.tsx index ccf61de..8f2d70e 100644 --- a/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualScoreDetail.tsx +++ b/src/pages/supplierAnnualManage/supplierAnnualReview/supplierAnnualScoreDetail.tsx @@ -23,6 +23,7 @@ import { ExamineResultColor, } from '@/dicts/supplierAnnualReviewDict'; import styles from './supplierAnnualReview.less'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; const { Title } = Typography; @@ -36,6 +37,7 @@ interface ScoreResult { const SupplierAnnualReviewDetail: React.FC = () => { const intl = useIntl(); + const supplierDetailModal = useSupplierDetailModal(); const [loading, setLoading] = useState(false); const [reviewDetail, setReviewDetail] = useState(null); const [scoreResults, setScoreResults] = useState([]); @@ -151,7 +153,7 @@ const SupplierAnnualReviewDetail: React.FC = () => { {reviewDetail.annualreviewTheme} - {reviewDetail.name} + {reviewDetail.deptName || '-'} diff --git a/src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/Detail/SupplierInfo.tsx b/src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/Detail/SupplierInfo.tsx index 2b8372b..edc19e5 100644 --- a/src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/Detail/SupplierInfo.tsx +++ b/src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/Detail/SupplierInfo.tsx @@ -2,6 +2,7 @@ import React from 'react'; import { Card, Table, Button, message } from 'antd'; import { useIntl, FormattedMessage } from 'umi'; import styles from '../../supplierAnnualTaskManageDetail.less'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; interface SupplierInfoProps { taskData: supplierAnnualTaskManage.TaskDetailData; @@ -10,7 +11,7 @@ interface SupplierInfoProps { const SupplierInfo: React.FC = ({ taskData, onViewEvaluators }) => { const intl = useIntl(); - + const supplierDetailModal = useSupplierDetailModal(); // 查看供应商评价人员 const handleViewSupplierEvaluators = (record: supplierAnnualTaskManage.TaskDetailData) => { if (record.userList && record.userList.length > 0) { @@ -35,6 +36,9 @@ const SupplierInfo: React.FC = ({ taskData, onViewEvaluators title: , dataIndex: 'supplierName', key: 'supplierName', + render: (text: string, record: any) => ( + + ), }, { title: , diff --git a/src/pages/supplierEvaluateManage/supplierEvaluateResult/supplierEvaluateResultInfo.tsx b/src/pages/supplierEvaluateManage/supplierEvaluateResult/supplierEvaluateResultInfo.tsx index 1824c6c..7a2b358 100644 --- a/src/pages/supplierEvaluateManage/supplierEvaluateResult/supplierEvaluateResultInfo.tsx +++ b/src/pages/supplierEvaluateManage/supplierEvaluateResult/supplierEvaluateResultInfo.tsx @@ -21,11 +21,13 @@ import { } from '@ant-design/icons'; import { history, useLocation, useIntl } from 'umi'; import { getEvaluateSupplierList, getAllEvaluateRules } from '@/servers/api/supplierEvaluate'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; const { Option } = Select; const SupplierEvaluateResultInfo: React.FC = () => { const intl = useIntl(); + const supplierDetailModal = useSupplierDetailModal(); const location = useLocation<{ record: SupplierEvaluateResult.EvaluateTaskItem }>(); const [loading, setLoading] = useState(false); const [form] = Form.useForm(); @@ -201,9 +203,9 @@ const SupplierEvaluateResultInfo: React.FC = () => { ellipsis: { showTitle: false, }, - render: (supplierName: string) => ( + render: (supplierName: string, record: SupplierEvaluateResult.EvaluateSupplierItem) => ( - {supplierName} + ), }, diff --git a/src/pages/supplierEvaluateManage/supplierEvaluateResult/supplierEvaluateResultScoreByList.tsx b/src/pages/supplierEvaluateManage/supplierEvaluateResult/supplierEvaluateResultScoreByList.tsx index 3059b6a..ad2e8e3 100644 --- a/src/pages/supplierEvaluateManage/supplierEvaluateResult/supplierEvaluateResultScoreByList.tsx +++ b/src/pages/supplierEvaluateManage/supplierEvaluateResult/supplierEvaluateResultScoreByList.tsx @@ -1,18 +1,11 @@ // 供应商评价结果打分情况 import React, { useState, useEffect } from 'react'; -import { - Form, - Input, - Select, - Button, - Table, - Tooltip, - message, -} from 'antd'; +import { Form, Input, Select, Button, Table, Tooltip, message } from 'antd'; import type { TablePaginationConfig } from 'antd'; import { SearchOutlined, DeleteOutlined, ArrowLeftOutlined } from '@ant-design/icons'; import { history, useLocation, useIntl } from 'umi'; import { getEvaluateScoreList, getAllEvaluateRules } from '@/servers/api/supplierEvaluate'; +import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; // 自定义类型用于传递给详情页的数据 interface DetailPageState { @@ -24,6 +17,7 @@ const { Option } = Select; const SupplierEvaluateResultScoreByList: React.FC = () => { const intl = useIntl(); + const supplierDetailModal = useSupplierDetailModal(); const location = useLocation<{ record: SupplierEvaluateResult.EvaluateSupplierItem; }>(); @@ -36,14 +30,15 @@ const SupplierEvaluateResultScoreByList: React.FC = () => { total: 0, showSizeChanger: true, showQuickJumper: true, - showTotal: (total) => intl.formatMessage( - { id: 'supplierEvaluateResult.pagination.total' }, - { total } - ), + showTotal: (total) => + intl.formatMessage({ id: 'supplierEvaluateResult.pagination.total' }, { total }), }); - const [searchParams, setSearchParams] = useState({}); + const [searchParams, setSearchParams] = + useState({}); const [record, setRecord] = useState(null); - const [evaluateRules, setEvaluateRules] = useState([]); + const [evaluateRules, setEvaluateRules] = useState( + [], + ); // 获取评价规则列表 const fetchEvaluateRules = async () => { @@ -52,7 +47,10 @@ const SupplierEvaluateResultScoreByList: React.FC = () => { if (response.success && response.data) { setEvaluateRules(response.data); } else { - message.error(response.message || intl.formatMessage({ id: 'supplierEvaluateResult.message.fetchRulesFailed' })); + message.error( + response.message || + intl.formatMessage({ id: 'supplierEvaluateResult.message.fetchRulesFailed' }), + ); } } catch (error) { console.error('获取评价规则列表失败:', error); @@ -142,7 +140,10 @@ const SupplierEvaluateResultScoreByList: React.FC = () => { message.info(intl.formatMessage({ id: 'supplierEvaluateResult.message.noScoreData' })); } } else { - message.error(response.message || intl.formatMessage({ id: 'supplierEvaluateResult.message.fetchScoreFailed' })); + message.error( + response.message || + intl.formatMessage({ id: 'supplierEvaluateResult.message.fetchScoreFailed' }), + ); } } catch (error) { console.error('获取评价打分情况列表失败:', error); @@ -179,7 +180,7 @@ const SupplierEvaluateResultScoreByList: React.FC = () => { const handleViewDetail = (scoreItem: SupplierEvaluateResult.ScoreDataItem) => { const detailState: DetailPageState = { record: scoreItem, - parentRecord: record + parentRecord: record, }; history.push({ pathname: 'supplierEvaluateResultByZb', @@ -207,9 +208,11 @@ const SupplierEvaluateResultScoreByList: React.FC = () => { ellipsis: { showTitle: false, }, - render: (supplierName: string) => ( + render: (supplierName: string, rowData: SupplierEvaluateResult.ScoreDataItem) => ( - {supplierName} + ), }, @@ -285,12 +288,25 @@ const SupplierEvaluateResultScoreByList: React.FC = () => {
- - + + - + @@ -134,6 +153,7 @@ export const QualificationSection: React.FC = ({ form } name={[record.name, 'certName']} rules={[createConditionalRule('certName', '请输入资质名称')]} style={{ margin: 0 }} + wrapperCol={{ span: 24 }} > @@ -147,6 +167,7 @@ export const QualificationSection: React.FC = ({ form } name={[record.name, 'certNumber']} rules={[createConditionalRule('certNumber', '请输入资质证书编号')]} style={{ margin: 0 }} + wrapperCol={{ span: 24 }} > @@ -156,10 +177,7 @@ export const QualificationSection: React.FC = ({ form } title: createRequiredTitle('资质类别和等级'), dataIndex: 'certLevel', render: (_, record) => ( - + ), @@ -172,6 +190,7 @@ export const QualificationSection: React.FC = ({ form } name={[record.name, 'issuingAuthority']} rules={[createConditionalRule('issuingAuthority', '请输入发证机构')]} style={{ margin: 0 }} + wrapperCol={{ span: 24 }} > @@ -185,6 +204,7 @@ export const QualificationSection: React.FC = ({ form } name={[record.name, 'dateTime']} rules={[createConditionalRule('dateTime', '请选择发证日期')]} style={{ margin: 0 }} + wrapperCol={{ span: 24 }} > = ({ form } name={[record.name, 'termOfValidity']} rules={[createConditionalRule('termOfValidity', '请选择资质有效期')]} style={{ margin: 0 }} + wrapperCol={{ span: 24 }} > = ({ form } name={[record.name, 'certFile']} rules={[createConditionalRule('certFile', '请上传资质证书附件')]} style={{ margin: 0 }} + wrapperCol={{ span: 24 }} > - - - + ), }, @@ -263,7 +285,7 @@ export const QualificationSection: React.FC = ({ form } export const InvoiceSection: React.FC = ({ form }) => { const [taxpayerTypeOptions, setTaxpayerTypeOptions] = useState([]); useEffect(() => { - getDictList('taxpayer_type').then(res => { + getDictList('taxpayer_type').then((res) => { if (res.code === 200) { setTaxpayerTypeOptions(res.data); } @@ -280,10 +302,13 @@ export const InvoiceSection: React.FC = ({ form }) => { label="纳税人类型" rules={[{ required: true, message: '请选择纳税人类型' }]} > - ({ + label: item.dicName, + value: item.code, + }))} + />
@@ -352,7 +377,7 @@ export const BankAccountSection: React.FC = ({ form, su const [addressOptions, setAddressOptions] = useState([]); const [currencyOptions, setCurrencyOptions] = useState([]); useEffect(() => { - getDictList('currency').then(res => { + getDictList('currency').then((res) => { if (res.code === 200) { setCurrencyOptions(res.data); } @@ -361,13 +386,12 @@ export const BankAccountSection: React.FC = ({ form, su useEffect(() => { if (supplierType) { const submitInterface = supplierType === 'dvs' ? getRegionTree : getregionInternational; - submitInterface().then(res => { + submitInterface().then((res) => { if (res.code === 200) { setAddressOptions(convertToCascaderOptions(res.data)); } }); } - }, [supplierType]); // 定义表格记录和表格列类型 @@ -400,42 +424,48 @@ export const BankAccountSection: React.FC = ({ form, su dataIndex: 'name', width: 60, render: (text, record, index = 0) => index + 1, - } + }, ]; // 境内企业特有列 - const domesticColumns: ColumnType[] = supplierType === 'dvs' ? [ - { - title: '银联号', - dataIndex: 'interbankNumber', - render: (text, record) => ( - - - - ), - } - ] : []; + const domesticColumns: ColumnType[] = + supplierType === 'dvs' + ? [ + { + title: '银联号', + dataIndex: 'interbankNumber', + render: (text, record) => ( + + + + ), + }, + ] + : []; // 境外企业特有列 - const foreignColumns: ColumnType[] = supplierType === 'ovs' ? [ - { - title: 'SWIFT CODE', - dataIndex: 'swiftCode', - render: (text, record) => ( - - - - ), - } - ] : []; + const foreignColumns: ColumnType[] = + supplierType === 'ovs' + ? [ + { + title: 'SWIFT CODE', + dataIndex: 'swiftCode', + render: (text, record) => ( + + + + ), + }, + ] + : []; // 通用列 const commonColumns: ColumnType[] = [ @@ -491,7 +521,7 @@ export const BankAccountSection: React.FC = ({ form, su