From 4d72017b97bea3d0cbec21ac7e5c39f40b943e98 Mon Sep 17 00:00:00 2001 From: WrBug Date: Tue, 20 Jan 2026 11:48:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=E5=88=97=E8=A1=A8=E9=A1=B5=E7=9A=84=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=92=8C=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将'查询'按钮改为'刷新'按钮,文案更准确 - 在表格中新增'市场'列,显示市场标题和ID - 为移动端和桌面端的市场标题添加跳转到 Polymarket 的链接 - 导入 getPolymarketUrl 工具函数支持市场跳转 - 优化用户体验,便于快速查看市场详情 --- .../CopyTradingOrders/MatchedOrdersTab.tsx | 73 +++++++++++++++++-- 1 file changed, 68 insertions(+), 5 deletions(-) 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 && (