Initial commit
Made-with: Cursor
This commit is contained in:
64
srde/miniprogram/services/api.ts
Normal file
64
srde/miniprogram/services/api.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
// API 层 - 对接后端 SRDE,支持模拟数据
|
||||
const USE_MOCK = true;
|
||||
const BASE_URL = 'https://your-api.com'; // 对接时改为真实地址
|
||||
|
||||
function getToken(): string {
|
||||
return wx.getStorageSync('srde_token') || '';
|
||||
}
|
||||
|
||||
export function request<T>(opt: { url: string; method?: string; data?: object }): Promise<T> {
|
||||
if (USE_MOCK) return Promise.reject(new Error('MOCK模式'));
|
||||
const token = getToken();
|
||||
return new Promise((resolve, reject) => {
|
||||
wx.request({
|
||||
url: BASE_URL + (opt.url.startsWith('/') ? opt.url : '/' + opt.url),
|
||||
method: (opt.method as any) || 'GET',
|
||||
data: opt.data,
|
||||
header: {
|
||||
'Content-Type': 'application/json',
|
||||
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
||||
},
|
||||
success: (res) => {
|
||||
if ((res.statusCode || 0) >= 200 && (res.statusCode || 0) < 300) {
|
||||
resolve(res.data as T);
|
||||
} else reject(new Error((res.data as any)?.detail || '请求失败'));
|
||||
},
|
||||
fail: reject,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export function setMockMode(use: boolean) {
|
||||
(global as any).__SRDE_USE_MOCK__ = use;
|
||||
}
|
||||
|
||||
export function isMockMode(): boolean {
|
||||
return USE_MOCK || !!(global as any).__SRDE_USE_MOCK__;
|
||||
}
|
||||
|
||||
export const mockAccount = {
|
||||
total_capital: 100000,
|
||||
current_capital: 98500,
|
||||
current_drawdown: 1.5,
|
||||
max_drawdown: 5.2,
|
||||
consecutive_losses: 1,
|
||||
trading_locked_until: null as string | null,
|
||||
status: 'tradable' as 'tradable' | 'compressed' | 'locked',
|
||||
daily_risk_limit: 2000,
|
||||
single_risk_limit: 1000,
|
||||
};
|
||||
|
||||
export const mockTrades = [
|
||||
{ id: '1', symbol: 'BTCUSDT', direction: 'long', entry_price: 42000, status: 'open', position_size: 0.5 },
|
||||
{ id: '2', symbol: 'ETHUSDT', direction: 'short', entry_price: 2200, status: 'closed', pnl: -120 },
|
||||
{ id: '3', symbol: 'SOLUSDT', direction: 'long', entry_price: 98, status: 'closed', pnl: 85 },
|
||||
];
|
||||
|
||||
export const mockStats = {
|
||||
win_rate: 62,
|
||||
avg_odds: 1.8,
|
||||
profit_factor: 2.1,
|
||||
max_drawdown: 5.2,
|
||||
risk_score: 72,
|
||||
equity_curve: [100000, 101200, 99800, 100500, 102100, 100800, 98500],
|
||||
};
|
||||
Reference in New Issue
Block a user