feat: 完善跟单模板管理功能

- 更新需求文档:移除每日最大亏损限制、跟单延迟、轮询和WebSocket配置
- 跟单比例改为百分比格式(10%-1000%),只允许整数
- 所有USDC字段支持最多4位小数
- 固定金额和最小金额校验(必须>=1)
- 模板名称支持编辑
- 复制模板改为Modal形式,可编辑后创建
- 模板列表按创建时间降序排序,显示创建时间
- 移动端适配:使用卡片式布局
- 合并跟单比例和固定金额列为跟单配置
- 支持卖出改为跟单卖出
- 菜单结构调整:跟单管理作为父菜单,包含跟单模板和跟单配置子菜单
This commit is contained in:
WrBug
2025-12-01 23:03:17 +08:00
parent 914983acd7
commit fd10a31780
28 changed files with 4298 additions and 234 deletions
+139 -19
View File
@@ -60,12 +60,12 @@ export interface Leader {
id: number
leaderAddress: string
leaderName?: string
accountId?: number
category?: string
enabled: boolean
copyRatio: string
copyTradingCount: number
totalOrders?: number
totalPnl?: string
createdAt: number
updatedAt: number
}
/**
@@ -82,37 +82,157 @@ export interface LeaderListResponse {
export interface LeaderAddRequest {
leaderAddress: string
leaderName?: string
accountId?: number
category?: string
}
/**
* Leader 更新请求
*/
export interface LeaderUpdateRequest {
leaderId: number
leaderName?: string
category?: string
}
/**
* 跟单模板
*/
export interface CopyTradingTemplate {
id: number
templateName: string
copyMode: 'RATIO' | 'FIXED'
copyRatio: string
fixedAmount?: string
maxOrderSize?: string
minOrderSize?: string
maxDailyOrders: number
priceTolerance: string
supportSell: boolean
useCount: number
createdAt: number
updatedAt: number
}
/**
* 模板列表响应
*/
export interface TemplateListResponse {
list: CopyTradingTemplate[]
total: number
}
/**
* 模板创建请求
*/
export interface TemplateCreateRequest {
templateName: string
copyMode?: 'RATIO' | 'FIXED'
copyRatio?: string
fixedAmount?: string
maxOrderSize?: string
minOrderSize?: string
maxDailyOrders?: number
priceTolerance?: string
supportSell?: boolean
}
/**
* 模板更新请求
*/
export interface TemplateUpdateRequest {
templateId: number
templateName?: string
copyMode?: 'RATIO' | 'FIXED'
copyRatio?: string
fixedAmount?: string
maxOrderSize?: string
minOrderSize?: string
maxDailyOrders?: number
priceTolerance?: string
supportSell?: boolean
}
/**
* 模板复制请求
*/
export interface TemplateCopyRequest {
templateId: number
templateName: string
copyMode?: 'RATIO' | 'FIXED'
copyRatio?: string
fixedAmount?: string
maxOrderSize?: string
minOrderSize?: string
maxDailyOrders?: number
priceTolerance?: string
supportSell?: boolean
}
/**
* 跟单关系(钱包-模板关联)
*/
export interface CopyTrading {
id: number
accountId: number
accountName?: string
walletAddress: string
templateId: number
templateName: string
leaderId: number
leaderName?: string
leaderAddress: string
enabled: boolean
createdAt: number
updatedAt: number
}
/**
* 跟单列表响应
*/
export interface CopyTradingListResponse {
list: CopyTrading[]
total: number
}
/**
* 跟单创建请求
*/
export interface CopyTradingCreateRequest {
accountId: number
templateId: number
leaderId: number
enabled?: boolean
}
/**
* 跟单配置
* 钱包绑定的模板信息
*/
export interface CopyTradingConfig {
copyMode: 'RATIO' | 'FIXED'
copyRatio: string
fixedAmount?: string
maxOrderSize: string
minOrderSize: string
maxDailyLoss: string
maxDailyOrders: number
priceTolerance: string
delaySeconds: number
pollIntervalSeconds: number
useWebSocket: boolean
websocketReconnectInterval: number
websocketMaxRetries: number
export interface AccountTemplate {
templateId: number
templateName: string
copyTradingId: number
leaderId: number
leaderName?: string
leaderAddress: string
enabled: boolean
}
/**
* 钱包绑定的模板列表响应
*/
export interface AccountTemplatesResponse {
list: AccountTemplate[]
total: number
}
/**
* 跟单订单
*/
export interface CopyOrder {
id: number
accountId: number
templateId: number
copyTradingId: number
leaderId: number
leaderAddress: string
leaderName?: string