diff --git a/frontend/src/pages/CopyTradingOrders/MatchedOrdersTab.tsx b/frontend/src/pages/CopyTradingOrders/MatchedOrdersTab.tsx index 69caf45..373054a 100644 --- a/frontend/src/pages/CopyTradingOrders/MatchedOrdersTab.tsx +++ b/frontend/src/pages/CopyTradingOrders/MatchedOrdersTab.tsx @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react' import { Table, Input, Button, Card, Divider, Spin, message } from 'antd' import { apiService } from '../../services/api' -import { formatUSDC, isAutoGeneratedOrderId, copyToClipboard } from '../../utils' +import { formatUSDC, isAutoGeneratedOrderId, copyToClipboard, getPolymarketUrl } from '../../utils' import { useMediaQuery } from 'react-responsive' import { useTranslation } from 'react-i18next' import type { MatchedOrderInfo, OrderTrackingRequest, OrderTrackingListResponse } from '../../types' @@ -90,6 +90,47 @@ const MatchedOrdersTab: React.FC = ({ copyTradingId, acti } const columns = [ + { + title: t('copyTradingOrders.market') || '市场', + dataIndex: 'marketId', + key: 'marketId', + width: isMobile ? 120 : 200, + render: (text: string, record: MatchedOrderInfo) => { + const marketUrl = getPolymarketUrl(record.marketSlug, record.eventSlug, record.marketCategory, record.marketId) + return ( +
+ {record.marketTitle ? ( + marketUrl ? ( + + {record.marketTitle} + + ) : ( + + {record.marketTitle} + + ) + ) : null} + + {isMobile + ? `${text.slice(0, 6)}...${text.slice(-4)}` + : `${text.slice(0, 8)}...${text.slice(-6)}` + } + +
+ ) + } + }, { title: t('copyTradingOrders.sellOrderId') || '卖出订单ID', dataIndex: 'sellOrderId', @@ -233,7 +274,7 @@ const MatchedOrdersTab: React.FC = ({ copyTradingId, acti onChange={(e) => setFilters({ ...filters, buyOrderId: e.target.value || undefined })} /> - + {isMobile ? ( @@ -273,9 +314,31 @@ const MatchedOrdersTab: React.FC = ({ copyTradingId, acti
{t('copyTradingOrders.market') || '市场'}
{order.marketTitle ? ( -
- {order.marketTitle} -
+ (() => { + const marketUrl = getPolymarketUrl(order.marketSlug, order.eventSlug, order.marketCategory, order.marketId) + return marketUrl ? ( + + {order.marketTitle} + + ) : ( +
+ {order.marketTitle} +
+ ) + })() ) : null} {order.marketId && (