refactor(services): 重构服务文件结构,将服务按功能分类到不同目录
- 将服务文件按功能分类到core、ai、analytics、security等目录 - 修复logger导入路径问题,统一使用相对路径 - 更新相关文件的导入路径引用 - 添加新的批量操作组件导出文件 - 修复dashboard页面中的类型错误 - 添加dotenv依赖到package.json
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { http } from './http';
|
||||
/**
|
||||
* [MOCK] 物流管理数据<E695B0><EFBFBD>? * AI注意: 这是Mock实现,不是真实业务逻辑
|
||||
* 仅在USE_MOCK=true时启<E697B6><EFBFBD>? */
|
||||
* [MOCK] 物流管理数据<E695B0>? * AI注意: 这是Mock实现,不是真实业务逻辑
|
||||
* 仅在USE_MOCK=true时启<E697B6>? */
|
||||
|
||||
export interface LogisticsProvider {
|
||||
id: string;
|
||||
@@ -187,76 +188,56 @@ class ApiLogisticsDataSource implements ILogisticsDataSource {
|
||||
private baseUrl = '/api/logistics';
|
||||
|
||||
async fetchProviders(): Promise<LogisticsProvider[]> {
|
||||
const response = await fetch(`${this.baseUrl}/providers`);
|
||||
if (!response.ok) throw new Error('Failed to fetch providers');
|
||||
return response.json();
|
||||
const response = await http.post(`${this.baseUrl}/providers`);
|
||||
|
||||
return response.data;
|
||||
}
|
||||
|
||||
async createProvider(data: Partial<LogisticsProvider>): Promise<LogisticsProvider> {
|
||||
const response = await fetch(`${this.baseUrl}/providers`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
if (!response.ok) throw new Error('Failed to create provider');
|
||||
return response.json();
|
||||
const response = await http.post(`${this.baseUrl}/providers`, data);
|
||||
|
||||
return response.data;
|
||||
}
|
||||
|
||||
async updateProvider(id: string, data: Partial<LogisticsProvider>): Promise<LogisticsProvider> {
|
||||
const response = await fetch(`${this.baseUrl}/providers/${id}`, {
|
||||
method: 'PUT',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
if (!response.ok) throw new Error('Failed to update provider');
|
||||
return response.json();
|
||||
const response = await http.put(`${this.baseUrl}/providers/${id}`, data);
|
||||
|
||||
return response.data;
|
||||
}
|
||||
|
||||
async deleteProvider(id: string): Promise<void> {
|
||||
const response = await fetch(`${this.baseUrl}/providers/${id}`, { method: 'DELETE' });
|
||||
if (!response.ok) throw new Error('Failed to delete provider');
|
||||
const response = await http.post(`${this.baseUrl}/providers/${id}`);
|
||||
|
||||
}
|
||||
|
||||
async fetchShipments(params?: { status?: string; provider?: string }): Promise<Shipment[]> {
|
||||
const response = await fetch(`${this.baseUrl}/shipments?${new URLSearchParams(params as any)}`);
|
||||
if (!response.ok) throw new Error('Failed to fetch shipments');
|
||||
return response.json();
|
||||
const response = await http.get(`${this.baseUrl}/shipments?${new URLSearchParams(params as any)}`);
|
||||
|
||||
return response.data;
|
||||
}
|
||||
|
||||
async createShipment(data: Partial<Shipment>): Promise<Shipment> {
|
||||
const response = await fetch(`${this.baseUrl}/shipments`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
if (!response.ok) throw new Error('Failed to create shipment');
|
||||
return response.json();
|
||||
const response = await http.post(`${this.baseUrl}/shipments`, data);
|
||||
|
||||
return response.data;
|
||||
}
|
||||
|
||||
async updateShipment(id: string, data: Partial<Shipment>): Promise<Shipment> {
|
||||
const response = await fetch(`${this.baseUrl}/shipments/${id}`, {
|
||||
method: 'PUT',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
if (!response.ok) throw new Error('Failed to update shipment');
|
||||
return response.json();
|
||||
const response = await http.put(`${this.baseUrl}/shipments/${id}`, data);
|
||||
|
||||
return response.data;
|
||||
}
|
||||
|
||||
async fetchTrackingEvents(shipmentId: string): Promise<TrackingEvent[]> {
|
||||
const response = await fetch(`${this.baseUrl}/shipments/${shipmentId}/tracking`);
|
||||
if (!response.ok) throw new Error('Failed to fetch tracking events');
|
||||
return response.json();
|
||||
const response = await http.post(`${this.baseUrl}/shipments/${shipmentId}/tracking`);
|
||||
|
||||
return response.data;
|
||||
}
|
||||
|
||||
async calculateFreight(params: { origin: string; destination: string; weight: number; dimensions: { length: number; width: number; height: number } }): Promise<{ provider: string; cost: number; estimatedDays: number }[]> {
|
||||
const response = await fetch(`${this.baseUrl}/freight/calculate`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(params),
|
||||
});
|
||||
if (!response.ok) throw new Error('Failed to calculate freight');
|
||||
return response.json();
|
||||
const response = await http.post(`${this.baseUrl}/freight/calculate`, params);
|
||||
|
||||
return response.data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user