feat: 添加关键字过滤功能并优化市场 slug 处理
主要变更: 1. 关键字过滤功能 - 添加关键字过滤模式(白名单/黑名单/禁用) - 支持关键字列表配置(JSON 存储) - 实现关键字匹配逻辑(不区分大小写) - 数据库迁移:V20__add_keyword_filter.sql 2. 市场 slug 优化 - 区分显示用 slug 和跳转用 eventSlug - 添加 event_slug 字段到 markets 表(V21__add_event_slug_to_markets.sql) - 从 events[0].slug 获取跳转用的 slug 并存入数据库 - 减少 API 请求,提高性能 3. UI 优化 - 将创建/编辑跟单配置改为 Modal 方式 - 删除独立的 CopyTradingAdd 和 CopyTradingEdit 页面 - 更新前端跳转逻辑,优先使用 eventSlug 4. API 响应优化 - 更新 MarketResponse 添加 events 字段 - 统一从 events[0].slug 获取跳转用的 slug - 更新所有相关服务使用新的 slug 获取逻辑
This commit is contained in:
@@ -30,7 +30,10 @@
|
||||
"total": "Total",
|
||||
"items": "items",
|
||||
"prev": "Previous",
|
||||
"next": "Next"
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"page": "Page",
|
||||
"pageOf": "Page"
|
||||
},
|
||||
"account": {
|
||||
"title": "Account Management",
|
||||
@@ -203,7 +206,8 @@
|
||||
"walletType": "Wallet Type",
|
||||
"walletTypeHelp": "Web3 Wallet: Polymarket accounts connected via browser wallets like MetaMask\nMagic: Polymarket accounts logged in via email or social accounts (Google, Twitter, etc.)",
|
||||
"walletTypeMagic": "Magic (Email/Social Login)",
|
||||
"walletTypeSafe": "Web3 Wallet"
|
||||
"walletTypeSafe": "Web3 Wallet",
|
||||
"magicNotSupported": "(Not Supported)"
|
||||
},
|
||||
"leader": {
|
||||
"title": "Leader Management",
|
||||
@@ -753,6 +757,17 @@
|
||||
"maxPositionCount": "Max Position Count",
|
||||
"maxPositionCountTooltip": "Limit the maximum position count for a single market. If the current position count reaches or exceeds this limit, the order will not be placed. Leave empty to disable",
|
||||
"maxPositionCountPlaceholder": "For example: 10 (optional, leave empty to disable)",
|
||||
"keywordFilter": "Keyword Filter",
|
||||
"keywordFilterMode": "Filter Mode",
|
||||
"keywordFilterModeTooltip": "Select keyword filter mode. Whitelist: only copy markets containing keywords; Blacklist: do not copy markets containing keywords; Disabled: no keyword filtering. Keyword matching is case-insensitive.",
|
||||
"disabled": "Disabled",
|
||||
"whitelist": "Whitelist",
|
||||
"blacklist": "Blacklist",
|
||||
"keywords": "Keywords",
|
||||
"keywordPlaceholder": "Enter keyword, press Enter to add",
|
||||
"keywordExists": "Keyword already exists",
|
||||
"whitelistTooltip": "💡 Whitelist mode: only copy markets whose titles contain any of the above keywords (case-insensitive)",
|
||||
"blacklistTooltip": "💡 Blacklist mode: do not copy markets whose titles contain any of the above keywords (case-insensitive)",
|
||||
"configName": "Configuration Name",
|
||||
"configNameRequired": "Please enter configuration name",
|
||||
"configNamePlaceholder": "e.g., Copy Trading Config 1",
|
||||
@@ -839,6 +854,17 @@
|
||||
"maxPositionCount": "Max Position Count",
|
||||
"maxPositionCountTooltip": "Limit the maximum position count for a single market. If the current position count reaches or exceeds this limit, the order will not be placed. Leave empty to disable",
|
||||
"maxPositionCountPlaceholder": "For example: 10 (optional, leave empty to disable)",
|
||||
"keywordFilter": "Keyword Filter",
|
||||
"keywordFilterMode": "Filter Mode",
|
||||
"keywordFilterModeTooltip": "Select keyword filter mode. Whitelist: only copy markets containing keywords; Blacklist: do not copy markets containing keywords; Disabled: no keyword filtering. Keyword matching is case-insensitive.",
|
||||
"disabled": "Disabled",
|
||||
"whitelist": "Whitelist",
|
||||
"blacklist": "Blacklist",
|
||||
"keywords": "Keywords",
|
||||
"keywordPlaceholder": "Enter keyword, press Enter to add",
|
||||
"keywordExists": "Keyword already exists",
|
||||
"whitelistTooltip": "💡 Whitelist mode: only copy markets whose titles contain any of the above keywords (case-insensitive)",
|
||||
"blacklistTooltip": "💡 Blacklist mode: do not copy markets whose titles contain any of the above keywords (case-insensitive)",
|
||||
"configName": "Configuration Name",
|
||||
"configNameRequired": "Please enter configuration name",
|
||||
"configNamePlaceholder": "e.g., Copy Trading Config 1",
|
||||
|
||||
@@ -27,7 +27,10 @@
|
||||
"total": "共",
|
||||
"items": "条",
|
||||
"prev": "上一页",
|
||||
"previous": "上一页",
|
||||
"next": "下一页",
|
||||
"page": "页",
|
||||
"pageOf": "第",
|
||||
"success": "成功",
|
||||
"failed": "失败",
|
||||
"close": "关闭"
|
||||
@@ -203,7 +206,8 @@
|
||||
"walletType": "钱包类型",
|
||||
"walletTypeHelp": "Web3钱包:使用 MetaMask 等浏览器钱包连接的 Polymarket 账户\nMagic:通过邮箱或社交账号(如 Google、Twitter)登录的 Polymarket 账户",
|
||||
"walletTypeMagic": "Magic(邮箱/社交账号登录)",
|
||||
"walletTypeSafe": "Web3钱包"
|
||||
"walletTypeSafe": "Web3钱包",
|
||||
"magicNotSupported": "(暂不支持)"
|
||||
},
|
||||
"leader": {
|
||||
"title": "Leader 管理",
|
||||
@@ -765,6 +769,17 @@
|
||||
"maxPositionCount": "最大仓位数量",
|
||||
"maxPositionCountTooltip": "限制单个市场的最大仓位数量。如果该市场的当前仓位数量达到或超过此限制,则不会下单。不填写则不启用此限制",
|
||||
"maxPositionCountPlaceholder": "例如:10(可选,不填写表示不启用)",
|
||||
"keywordFilter": "关键字过滤",
|
||||
"keywordFilterMode": "过滤模式",
|
||||
"keywordFilterModeTooltip": "选择关键字过滤模式。白名单:只跟单包含关键字的市场;黑名单:不跟单包含关键字的市场;不启用:不进行关键字过滤。关键字匹配不区分大小写。",
|
||||
"disabled": "不启用",
|
||||
"whitelist": "白名单",
|
||||
"blacklist": "黑名单",
|
||||
"keywords": "关键字",
|
||||
"keywordPlaceholder": "输入关键字,按回车添加",
|
||||
"keywordExists": "关键字已存在",
|
||||
"whitelistTooltip": "💡 白名单模式:只跟单包含上述任意关键字的市场标题(不区分大小写)",
|
||||
"blacklistTooltip": "💡 黑名单模式:不跟单包含上述任意关键字的市场标题(不区分大小写)",
|
||||
"supportSell": "跟单卖出",
|
||||
"supportSellTooltip": "是否跟单 Leader 的卖出订单",
|
||||
"create": "创建跟单配置",
|
||||
@@ -851,6 +866,17 @@
|
||||
"maxPositionCount": "最大仓位数量",
|
||||
"maxPositionCountTooltip": "限制单个市场的最大仓位数量。如果该市场的当前仓位数量达到或超过此限制,则不会下单。不填写则不启用此限制",
|
||||
"maxPositionCountPlaceholder": "例如:10(可选,不填写表示不启用)",
|
||||
"keywordFilter": "关键字过滤",
|
||||
"keywordFilterMode": "过滤模式",
|
||||
"keywordFilterModeTooltip": "选择关键字过滤模式。白名单:只跟单包含关键字的市场;黑名单:不跟单包含关键字的市场;不启用:不进行关键字过滤。关键字匹配不区分大小写。",
|
||||
"disabled": "不启用",
|
||||
"whitelist": "白名单",
|
||||
"blacklist": "黑名单",
|
||||
"keywords": "关键字",
|
||||
"keywordPlaceholder": "输入关键字,按回车添加",
|
||||
"keywordExists": "关键字已存在",
|
||||
"whitelistTooltip": "💡 白名单模式:只跟单包含上述任意关键字的市场标题(不区分大小写)",
|
||||
"blacklistTooltip": "💡 黑名单模式:不跟单包含上述任意关键字的市场标题(不区分大小写)",
|
||||
"supportSell": "跟单卖出",
|
||||
"supportSellTooltip": "是否跟单 Leader 的卖出订单",
|
||||
"save": "保存",
|
||||
|
||||
@@ -30,7 +30,10 @@
|
||||
"total": "共",
|
||||
"items": "條",
|
||||
"prev": "上一頁",
|
||||
"next": "下一頁"
|
||||
"previous": "上一頁",
|
||||
"next": "下一頁",
|
||||
"page": "頁",
|
||||
"pageOf": "第"
|
||||
},
|
||||
"account": {
|
||||
"title": "賬戶管理",
|
||||
@@ -203,7 +206,8 @@
|
||||
"walletType": "錢包類型",
|
||||
"walletTypeHelp": "Web3錢包:使用 MetaMask 等瀏覽器錢包連接的 Polymarket 帳戶\nMagic:透過郵箱或社群帳號(如 Google、Twitter)登入的 Polymarket 帳戶",
|
||||
"walletTypeMagic": "Magic(郵箱/社群帳號登入)",
|
||||
"walletTypeSafe": "Web3錢包"
|
||||
"walletTypeSafe": "Web3錢包",
|
||||
"magicNotSupported": "(暫不支持)"
|
||||
},
|
||||
"leader": {
|
||||
"title": "Leader 管理",
|
||||
@@ -753,6 +757,17 @@
|
||||
"maxPositionCount": "最大倉位數量",
|
||||
"maxPositionCountTooltip": "限制單個市場的最大倉位數量。如果該市場的當前倉位數量達到或超過此限制,則不會下單。不填寫則不啟用此限制",
|
||||
"maxPositionCountPlaceholder": "例如:10(可選,不填寫表示不啟用)",
|
||||
"keywordFilter": "關鍵字過濾",
|
||||
"keywordFilterMode": "過濾模式",
|
||||
"keywordFilterModeTooltip": "選擇關鍵字過濾模式。白名單:只跟單包含關鍵字的市場;黑名單:不跟單包含關鍵字的市場;不啟用:不進行關鍵字過濾。關鍵字匹配不區分大小寫。",
|
||||
"disabled": "不啟用",
|
||||
"whitelist": "白名單",
|
||||
"blacklist": "黑名單",
|
||||
"keywords": "關鍵字",
|
||||
"keywordPlaceholder": "輸入關鍵字,按回車添加",
|
||||
"keywordExists": "關鍵字已存在",
|
||||
"whitelistTooltip": "💡 白名單模式:只跟單包含上述任意關鍵字的市場標題(不區分大小寫)",
|
||||
"blacklistTooltip": "💡 黑名單模式:不跟單包含上述任意關鍵字的市場標題(不區分大小寫)",
|
||||
"configName": "配置名",
|
||||
"configNameRequired": "請輸入配置名",
|
||||
"configNamePlaceholder": "例如:跟單配置1",
|
||||
@@ -839,6 +854,17 @@
|
||||
"maxPositionCount": "最大倉位數量",
|
||||
"maxPositionCountTooltip": "限制單個市場的最大倉位數量。如果該市場的當前倉位數量達到或超過此限制,則不會下單。不填寫則不啟用此限制",
|
||||
"maxPositionCountPlaceholder": "例如:10(可選,不填寫表示不啟用)",
|
||||
"keywordFilter": "關鍵字過濾",
|
||||
"keywordFilterMode": "過濾模式",
|
||||
"keywordFilterModeTooltip": "選擇關鍵字過濾模式。白名單:只跟單包含關鍵字的市場;黑名單:不跟單包含關鍵字的市場;不啟用:不進行關鍵字過濾。關鍵字匹配不區分大小寫。",
|
||||
"disabled": "不啟用",
|
||||
"whitelist": "白名單",
|
||||
"blacklist": "黑名單",
|
||||
"keywords": "關鍵字",
|
||||
"keywordPlaceholder": "輸入關鍵字,按回車添加",
|
||||
"keywordExists": "關鍵字已存在",
|
||||
"whitelistTooltip": "💡 白名單模式:只跟單包含上述任意關鍵字的市場標題(不區分大小寫)",
|
||||
"blacklistTooltip": "💡 黑名單模式:不跟單包含上述任意關鍵字的市場標題(不區分大小寫)",
|
||||
"configName": "配置名",
|
||||
"configNameRequired": "請輸入配置名",
|
||||
"configNamePlaceholder": "例如:跟單配置1",
|
||||
|
||||
Reference in New Issue
Block a user