feat: 完善跟单模板管理功能
- 更新需求文档:移除每日最大亏损限制、跟单延迟、轮询和WebSocket配置 - 跟单比例改为百分比格式(10%-1000%),只允许整数 - 所有USDC字段支持最多4位小数 - 固定金额和最小金额校验(必须>=1) - 模板名称支持编辑 - 复制模板改为Modal形式,可编辑后创建 - 模板列表按创建时间降序排序,显示创建时间 - 移动端适配:使用卡片式布局 - 合并跟单比例和固定金额列为跟单配置 - 支持卖出改为跟单卖出 - 菜单结构调整:跟单管理作为父菜单,包含跟单模板和跟单配置子菜单
This commit is contained in:
+139
-19
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user