This commit is contained in:
孙景学
2025-07-16 16:42:53 +08:00
25 changed files with 69 additions and 24 deletions

View File

@ -251,7 +251,7 @@ const SupplierSelector: React.FC<SupplierSelectorProps> = ({
ellipsis: true, ellipsis: true,
render: (supplierName: string, record: SupplierItem) => ( render: (supplierName: string, record: SupplierItem) => (
<Tooltip placement="topLeft" title={supplierName}> <Tooltip placement="topLeft" title={supplierName}>
<Button type="link" onClick={() => supplierDetailModal?.(record.id)}>{supplierName}</Button> <a onClick={() => supplierDetailModal?.(record.id)}>{supplierName}</a>
</Tooltip> </Tooltip>
), ),
}, },

View File

@ -97,6 +97,7 @@ const supplierAnnualTaskManage: SupplierTaskModelType = {
id: item.supplierId, id: item.supplierId,
name: item.supplierName, name: item.supplierName,
evaluators: item.userList, evaluators: item.userList,
unifiedCode: item.socialCreditCode
})), })),
// 供应商IDs与用户IDs // 供应商IDs与用户IDs

View File

@ -97,6 +97,7 @@ const SupplierTaskModel: SupplierTaskModelType = {
id: item.supplierId, id: item.supplierId,
name: item.supplierName, name: item.supplierName,
evaluators: item.userList, evaluators: item.userList,
unifiedCode: item.socialCreditCode
})), })),
// 指标列表 // 指标列表

View File

@ -117,7 +117,7 @@ const SupplierAnnualStatistics: React.FC = () => {
}, },
render: (text: string, record: DataStatistics.AnnualReviewStatisticsRecord) => ( render: (text: string, record: DataStatistics.AnnualReviewStatisticsRecord) => (
<Tooltip placement="topLeft" title={text}> <Tooltip placement="topLeft" title={text}>
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</Button> <a onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</a>
</Tooltip> </Tooltip>
), ),
}, },

View File

@ -129,7 +129,7 @@ const SupplierAnnualStatistics: React.FC = () => {
}, },
render: (text: string, record: DataStatistics.AnnualReviewStatisticsRecord) => ( render: (text: string, record: DataStatistics.AnnualReviewStatisticsRecord) => (
<Tooltip placement="topLeft" title={text}> <Tooltip placement="topLeft" title={text}>
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</Button> <a onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</a>
</Tooltip> </Tooltip>
), ),
}, },

View File

@ -149,7 +149,7 @@ const SupplierEvaluateStatistics: React.FC = () => {
}, },
render: (text: string, record: DataStatistics.EvaluateStatisticsRecord) => ( render: (text: string, record: DataStatistics.EvaluateStatisticsRecord) => (
<Tooltip placement="topLeft" title={text}> <Tooltip placement="topLeft" title={text}>
<Button type="link" onClick={() => supplierDetailModal?.(record.id)}>{text}</Button> <a onClick={() => supplierDetailModal?.(record.id)}>{text}</a>
</Tooltip> </Tooltip>
), ),
}, },

View File

@ -121,7 +121,7 @@ const SupplierExitStatistics: React.FC = () => {
}, },
render: (text: string, record: DataStatistics.ExitStatisticsRecord) => ( render: (text: string, record: DataStatistics.ExitStatisticsRecord) => (
<Tooltip placement="topLeft" title={text}> <Tooltip placement="topLeft" title={text}>
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</Button> <a onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</a>
</Tooltip> </Tooltip>
), ),
}, },

View File

@ -149,7 +149,7 @@ const SupplierQualificationWarningStatistics: React.FC = () => {
}, },
render: (text: string, record: DataStatistics.QualificationExpireRecord) => ( render: (text: string, record: DataStatistics.QualificationExpireRecord) => (
<Tooltip placement="topLeft" title={text}> <Tooltip placement="topLeft" title={text}>
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</Button> <a onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</a>
</Tooltip> </Tooltip>
), ),
}, },

View File

@ -135,7 +135,7 @@ const SupplierAnnualResultDetail: React.FC = () => {
<Card title={intl.formatMessage({ id: 'supplierAnnualResult.detail.basicInfo' })} bordered={false} className={styles['detail-card']}> <Card title={intl.formatMessage({ id: 'supplierAnnualResult.detail.basicInfo' })} bordered={false} className={styles['detail-card']}>
<Descriptions column={2} bordered> <Descriptions column={2} bordered>
<Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualResult.detail.supplierName' })}> <Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualResult.detail.supplierName' })}>
<Button type="link" onClick={() => supplierDetailModal?.(reviewDetail.supplierId)}>{supplierName || reviewDetail.name}</Button> <a onClick={() => supplierDetailModal?.(reviewDetail.supplierId)}>{supplierName || reviewDetail.name}</a>
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualResult.detail.annualTheme' })}> <Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualResult.detail.annualTheme' })}>
{annualTheme} {annualTheme}

View File

@ -11,6 +11,7 @@ import {
Select, Select,
Typography, Typography,
DatePicker, DatePicker,
Tooltip,
} from 'antd'; } from 'antd';
import { ArrowLeftOutlined, SearchOutlined, DeleteOutlined } from '@ant-design/icons'; import { ArrowLeftOutlined, SearchOutlined, DeleteOutlined } from '@ant-design/icons';
import { getAnnualResultSupplierList } from '@/servers/api/supplierAnnual'; import { getAnnualResultSupplierList } from '@/servers/api/supplierAnnual';
@ -165,7 +166,9 @@ const SupplierAnnualResultQuery: React.FC = () => {
dataIndex: 'name', dataIndex: 'name',
key: 'name', key: 'name',
render: (text: string, record: supplierAnnualResult.SupplierRecord) => ( render: (text: string, record: supplierAnnualResult.SupplierRecord) => (
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</Button> <Tooltip placement="topLeft" title={text}>
<a onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</a>
</Tooltip>
), ),
}, },
{ {

View File

@ -11,7 +11,8 @@ import {
Select, Select,
Typography, Typography,
Tag, Tag,
DatePicker DatePicker,
Tooltip,
} from 'antd'; } from 'antd';
import { ArrowLeftOutlined, SearchOutlined, DeleteOutlined } from '@ant-design/icons'; import { ArrowLeftOutlined, SearchOutlined, DeleteOutlined } from '@ant-design/icons';
import { getAnnualResultReviewList } from '@/servers/api/supplierAnnual'; import { getAnnualResultReviewList } from '@/servers/api/supplierAnnual';
@ -187,7 +188,9 @@ const SupplierAnnualResultQuery2: React.FC = () => {
dataIndex: 'name', dataIndex: 'name',
key: 'name', key: 'name',
render: (text: string, record: supplierAnnualResult.ReviewRecord) => ( render: (text: string, record: supplierAnnualResult.ReviewRecord) => (
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</Button> <Tooltip placement="topLeft" title={text}>
<a onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</a>
</Tooltip>
), ),
}, },
{ {

View File

@ -185,7 +185,7 @@ const SupplierAnnualReview: React.FC = () => {
}, },
render: (text: string, record: supplierAnnualReview.ReviewRecord) => ( render: (text: string, record: supplierAnnualReview.ReviewRecord) => (
<Tooltip placement="topLeft" title={text}> <Tooltip placement="topLeft" title={text}>
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</Button> <a onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</a>
</Tooltip> </Tooltip>
), ),
}, },

View File

@ -189,7 +189,7 @@ const SupplierAnnualReviewScore: React.FC = () => {
{reviewDetail.annualreviewTheme} {reviewDetail.annualreviewTheme}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualReview.list.supplierName' })}> <Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualReview.list.supplierName' })}>
<Button type="link" onClick={() => supplierDetailModal?.(reviewDetail.supplierId)}>{reviewDetail.name}</Button> <a onClick={() => supplierDetailModal?.(reviewDetail.supplierId)}>{reviewDetail.name}</a>
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualReview.list.department' })}> <Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualReview.list.department' })}>
{reviewDetail.deptName || '-'} {reviewDetail.deptName || '-'}

View File

@ -153,7 +153,7 @@ const SupplierAnnualReviewDetail: React.FC = () => {
{reviewDetail.annualreviewTheme} {reviewDetail.annualreviewTheme}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualReview.list.supplierName' })}> <Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualReview.list.supplierName' })}>
<Button type="link" onClick={() => supplierDetailModal?.(reviewDetail.supplierId)}>{reviewDetail.name}</Button> <a onClick={() => supplierDetailModal?.(reviewDetail.supplierId)}>{reviewDetail.name}</a>
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualReview.list.department' })}> <Descriptions.Item label={intl.formatMessage({ id: 'supplierAnnualReview.list.department' })}>
{reviewDetail.deptName || '-'} {reviewDetail.deptName || '-'}

View File

@ -1,5 +1,5 @@
import React from 'react'; import React from 'react';
import { Card, Table, Button, message } from 'antd'; import { Card, Table, Button, message, Tooltip } from 'antd';
import { useIntl, FormattedMessage } from 'umi'; import { useIntl, FormattedMessage } from 'umi';
import styles from '../../supplierAnnualTaskManageDetail.less'; import styles from '../../supplierAnnualTaskManageDetail.less';
import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext';
@ -37,7 +37,9 @@ const SupplierInfo: React.FC<SupplierInfoProps> = ({ taskData, onViewEvaluators
dataIndex: 'supplierName', dataIndex: 'supplierName',
key: 'supplierName', key: 'supplierName',
render: (text: string, record: any) => ( render: (text: string, record: any) => (
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</Button> <Tooltip placement="topLeft" title={text}>
<a onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</a>
</Tooltip>
), ),
}, },
{ {

View File

@ -1,6 +1,7 @@
import React from 'react'; import React from 'react';
import { Table, Space, Button, Modal, Tooltip } from 'antd'; import { Table, Space, Button, Modal, Tooltip } from 'antd';
import { useIntl, FormattedMessage } from 'umi'; import { useIntl, FormattedMessage } from 'umi';
import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext';
interface SupplierTableProps { interface SupplierTableProps {
suppliers: supplierAnnualTaskManage.SupplierItem[]; // 供应商数据列表 suppliers: supplierAnnualTaskManage.SupplierItem[]; // 供应商数据列表
@ -22,7 +23,7 @@ const SupplierTable: React.FC<SupplierTableProps> = ({
mode, mode,
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
const supplierDetailModal = useSupplierDetailModal();
// 表格行选择配置 // 表格行选择配置
const rowSelection = { const rowSelection = {
selectedRowKeys, selectedRowKeys,
@ -62,16 +63,24 @@ const SupplierTable: React.FC<SupplierTableProps> = ({
title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.supplierName" />, title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.supplierName" />,
dataIndex: 'supplierName', dataIndex: 'supplierName',
key: 'supplierName', key: 'supplierName',
ellipsis: true,
render: (supplierName: string, record: supplierAnnualTaskManage.SupplierItem) => (
<Tooltip placement="topLeft" title={supplierName}>
<a onClick={() => supplierDetailModal?.(record.id)}>{supplierName}</a>
</Tooltip>
),
}, },
{ {
title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.socialCreditCode" />, title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.socialCreditCode" />,
dataIndex: 'socialCreditCode', dataIndex: 'socialCreditCode',
key: 'socialCreditCode', key: 'socialCreditCode',
ellipsis: true,
}, },
{ {
title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.categoryName" />, title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.categoryName" />,
dataIndex: 'categoryName', dataIndex: 'categoryName',
key: 'categoryName', key: 'categoryName',
ellipsis: true,
render: (categoryName: string) => ( render: (categoryName: string) => (
<Tooltip placement="topLeft" title={categoryName}> <Tooltip placement="topLeft" title={categoryName}>
{categoryName || '-'} {categoryName || '-'}
@ -82,16 +91,19 @@ const SupplierTable: React.FC<SupplierTableProps> = ({
title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.deptName" />, title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.deptName" />,
dataIndex: 'deptName', dataIndex: 'deptName',
key: 'deptName', key: 'deptName',
ellipsis: true,
}, },
{ {
title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.evaluatorCount" />, title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.evaluatorCount" />,
align: 'center' as const,
dataIndex: 'evaluatorCount', dataIndex: 'evaluatorCount',
key: 'evaluatorCount', key: 'evaluatorCount',
}, },
{ {
title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.action" />, title: <FormattedMessage id="supplierAnnualTaskManage.supplierTable.action" />,
key: 'action', key: 'action',
width: 250,
align: 'center' as const,
ellipsis: true,
render: (_: any, record: supplierAnnualTaskManage.SupplierItem) => ( render: (_: any, record: supplierAnnualTaskManage.SupplierItem) => (
<Space> <Space>
<Button <Button

View File

@ -74,6 +74,7 @@ const SupplierEvaluateResult: React.FC = () => {
pageNo: current, pageNo: current,
pageSize: pageSize, pageSize: pageSize,
}, },
selectBy: "create",
}; };
// 添加搜索条件 // 添加搜索条件

View File

@ -205,7 +205,7 @@ const SupplierEvaluateResultInfo: React.FC = () => {
}, },
render: (supplierName: string, record: SupplierEvaluateResult.EvaluateSupplierItem) => ( render: (supplierName: string, record: SupplierEvaluateResult.EvaluateSupplierItem) => (
<Tooltip placement="topLeft" title={supplierName}> <Tooltip placement="topLeft" title={supplierName}>
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{supplierName}</Button> <a onClick={() => supplierDetailModal?.(record.supplierId)}>{supplierName}</a>
</Tooltip> </Tooltip>
), ),
}, },

View File

@ -210,9 +210,9 @@ const SupplierEvaluateResultScoreByList: React.FC = () => {
}, },
render: (supplierName: string, rowData: SupplierEvaluateResult.ScoreDataItem) => ( render: (supplierName: string, rowData: SupplierEvaluateResult.ScoreDataItem) => (
<Tooltip placement="topLeft" title={supplierName}> <Tooltip placement="topLeft" title={supplierName}>
<Button type="link" onClick={() => supplierDetailModal?.(rowData.supplierId)}> <a onClick={() => supplierDetailModal?.(rowData.supplierId)}>
{supplierName} {supplierName}
</Button> </a>
</Tooltip> </Tooltip>
), ),
}, },

View File

@ -11,6 +11,7 @@ import {
DatePicker, DatePicker,
Select, Select,
Table, Table,
Tooltip,
} from 'antd'; } from 'antd';
import { SearchOutlined, DeleteOutlined } from '@ant-design/icons'; import { SearchOutlined, DeleteOutlined } from '@ant-design/icons';
import { history, useIntl } from 'umi'; import { history, useIntl } from 'umi';
@ -79,6 +80,7 @@ status状态
pageNo: pagination.current, pageNo: pagination.current,
pageSize: pagination.pageSize, pageSize: pagination.pageSize,
}, },
selectBy:"user",
evaluateTheme: values.name || undefined, evaluateTheme: values.name || undefined,
status: values.status || undefined, status: values.status || undefined,
}; };
@ -268,7 +270,9 @@ status状态
dataIndex: 'name', dataIndex: 'name',
key: 'name', key: 'name',
render: (text: string, record: any) => ( render: (text: string, record: any) => (
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</Button> <Tooltip placement="topLeft" title={text}>
<a onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</a>
</Tooltip>
), ),
}, },
{ {

View File

@ -1,5 +1,5 @@
import React from 'react'; import React from 'react';
import { Card, Table, Button, message } from 'antd'; import { Card, Table, Button, message, Tooltip } from 'antd';
import styles from '../../supplierTaskManageDetail.less'; import styles from '../../supplierTaskManageDetail.less';
import { useIntl } from 'umi'; import { useIntl } from 'umi';
import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext';
@ -54,7 +54,9 @@ const SupplierInfo: React.FC<SupplierInfoProps> = ({ taskData, onViewEvaluators
dataIndex: 'supplierName', dataIndex: 'supplierName',
key: 'supplierName', key: 'supplierName',
render: (text: string, record: any) => ( render: (text: string, record: any) => (
<Button type="link" onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</Button> <Tooltip placement="topLeft" title={text}>
<a onClick={() => supplierDetailModal?.(record.supplierId)}>{text}</a>
</Tooltip>
), ),
}, },
{ {

View File

@ -1,6 +1,7 @@
import React, { useEffect } from 'react'; import React, { useEffect } from 'react';
import { Table, Space, Button, Tag, Modal, Tooltip } from 'antd'; import { Table, Space, Button, Tag, Modal, Tooltip } from 'antd';
import { useIntl } from 'umi'; import { useIntl } from 'umi';
import { useSupplierDetailModal } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext';
interface SupplierTableProps { interface SupplierTableProps {
suppliers: SupplierTaskManage.SupplierItem[]; // 供应商数据列表 suppliers: SupplierTaskManage.SupplierItem[]; // 供应商数据列表
@ -22,7 +23,7 @@ const SupplierTable: React.FC<SupplierTableProps> = ({
mode, mode,
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
const supplierDetailModal = useSupplierDetailModal();
// 表格行选择配置 // 表格行选择配置
const rowSelection = { const rowSelection = {
selectedRowKeys, selectedRowKeys,
@ -53,16 +54,24 @@ const SupplierTable: React.FC<SupplierTableProps> = ({
title: intl.formatMessage({ id: 'supplierTaskManage.column.supplierName' }), title: intl.formatMessage({ id: 'supplierTaskManage.column.supplierName' }),
dataIndex: 'supplierName', dataIndex: 'supplierName',
key: 'supplierName', key: 'supplierName',
ellipsis: true,
render: (supplierName: string, record: SupplierTaskManage.SupplierItem) => (
<Tooltip placement="topLeft" title={supplierName}>
<a onClick={() => supplierDetailModal?.(record.id)}>{supplierName}</a>
</Tooltip>
),
}, },
{ {
title: intl.formatMessage({ id: 'supplierTaskManage.column.socialCreditCode' }), title: intl.formatMessage({ id: 'supplierTaskManage.column.socialCreditCode' }),
dataIndex: 'socialCreditCode', dataIndex: 'socialCreditCode',
key: 'socialCreditCode', key: 'socialCreditCode',
ellipsis: true,
}, },
{ {
title: intl.formatMessage({ id: 'supplierTaskManage.column.categoryName' }), title: intl.formatMessage({ id: 'supplierTaskManage.column.categoryName' }),
dataIndex: 'categoryName', dataIndex: 'categoryName',
key: 'categoryName', key: 'categoryName',
ellipsis: true,
render: (categoryName: string) => ( render: (categoryName: string) => (
<Tooltip placement="topLeft" title={categoryName}> <Tooltip placement="topLeft" title={categoryName}>
{categoryName || '-'} {categoryName || '-'}
@ -73,6 +82,7 @@ const SupplierTable: React.FC<SupplierTableProps> = ({
title: intl.formatMessage({ id: 'supplierTaskManage.column.deptName' }), title: intl.formatMessage({ id: 'supplierTaskManage.column.deptName' }),
dataIndex: 'deptName', dataIndex: 'deptName',
key: 'deptName', key: 'deptName',
ellipsis: true,
}, },
{ {
title: intl.formatMessage({ id: 'supplierTaskManage.column.evaluatorCount' }), title: intl.formatMessage({ id: 'supplierTaskManage.column.evaluatorCount' }),
@ -83,6 +93,9 @@ const SupplierTable: React.FC<SupplierTableProps> = ({
{ {
title: intl.formatMessage({ id: 'supplierTaskManage.column.action' }), title: intl.formatMessage({ id: 'supplierTaskManage.column.action' }),
key: 'action', key: 'action',
align: 'center' as const,
width: 250,
ellipsis: true,
render: (_: any, record: SupplierTaskManage.SupplierItem) => ( render: (_: any, record: SupplierTaskManage.SupplierItem) => (
<Space> <Space>
<Button <Button

View File

@ -14,6 +14,7 @@ declare namespace SupplierEvaluateResult {
status?: string; status?: string;
startTime?: string; startTime?: string;
endTime?: string; endTime?: string;
selectBy?: string;
[key: string]: any; [key: string]: any;
} }

View File

@ -111,6 +111,7 @@ declare namespace SupplierEvaluateScore {
endTime?: string; endTime?: string;
evaluateTheme?: string; evaluateTheme?: string;
evaluateYear?: string; evaluateYear?: string;
selectBy?: string;
} }
interface TaskPageResponse { interface TaskPageResponse {

View File

@ -131,6 +131,7 @@ declare namespace SupplierTaskManage {
deptName: string; deptName: string;
supplierId: string; supplierId: string;
supplierName: string; supplierName: string;
socialCreditCode?: string; // api返回数据的统一社会信用代码
userList: PersonnelItem[]; userList: PersonnelItem[];
}[], }[],
[property: string]: any; [property: string]: any;