2025-10-16 21:32:16 +08:00
|
|
|
import { WarehouseInfo } from '../types';
|
|
|
|
|
import apiService from './apiService';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 仓库服务类
|
|
|
|
|
* 封装了所有仓库相关的操作
|
|
|
|
|
*/
|
|
|
|
|
class WarehouseService {
|
|
|
|
|
/**
|
2025-10-18 22:21:04 +08:00
|
|
|
* 构造函数
|
2025-10-16 21:32:16 +08:00
|
|
|
*/
|
|
|
|
|
constructor() {
|
2025-10-18 22:21:04 +08:00
|
|
|
// 真实API模式下不需要模拟数据
|
2025-10-16 21:32:16 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取仓库状态的中文描述
|
|
|
|
|
*/
|
|
|
|
|
getWarehouseStatusText(status: WarehouseInfo['status']): string {
|
|
|
|
|
const statusMap = {
|
|
|
|
|
'open': '营业中',
|
|
|
|
|
'closed': '已关闭',
|
|
|
|
|
'maintenance': '维护中'
|
|
|
|
|
};
|
|
|
|
|
return statusMap[status || 'open'] || '未知状态';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取所有仓库信息
|
|
|
|
|
*/
|
|
|
|
|
async getWarehouses(): Promise<WarehouseInfo[]> {
|
|
|
|
|
return apiService.getWarehouses();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据ID获取仓库信息
|
|
|
|
|
*/
|
|
|
|
|
async getWarehouseById(id: number): Promise<WarehouseInfo | null> {
|
|
|
|
|
return apiService.getWarehouseById(id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2025-10-26 13:15:04 +08:00
|
|
|
* 创建仓库
|
2025-10-16 21:32:16 +08:00
|
|
|
*/
|
2025-10-26 13:15:04 +08:00
|
|
|
async createWarehouse(warehouseData: Omit<WarehouseInfo, 'id' | 'createdAt' | 'updatedAt'>): Promise<WarehouseInfo> {
|
2025-10-16 21:32:16 +08:00
|
|
|
try {
|
2025-10-26 13:15:04 +08:00
|
|
|
const result = await apiService.createWarehouse(warehouseData);
|
|
|
|
|
console.log('创建仓库结果:', result);
|
|
|
|
|
|
|
|
|
|
if (result.success && result.data) {
|
|
|
|
|
return result.data;
|
|
|
|
|
} else {
|
|
|
|
|
throw new Error(result.message || '创建仓库失败');
|
|
|
|
|
}
|
2025-10-16 21:32:16 +08:00
|
|
|
} catch (error) {
|
|
|
|
|
console.error('创建仓库失败:', error);
|
|
|
|
|
throw new Error('创建仓库失败');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-26 13:15:04 +08:00
|
|
|
/**
|
|
|
|
|
* 更新仓库信息
|
|
|
|
|
*/
|
|
|
|
|
async updateWarehouse(warehouseId: number, warehouseInfo: { name?: string; address?: string; contact?: string; phone?: string; description?: string; capacity?: number; longitude?: number; latitude?: number; status?: 'open' | 'closed' | 'maintenance' }): Promise<WarehouseInfo> {
|
|
|
|
|
try {
|
|
|
|
|
const result = await apiService.updateWarehouse(warehouseId, warehouseInfo);
|
|
|
|
|
console.log(`更新仓库 ${warehouseId} 结果:`, result);
|
|
|
|
|
|
|
|
|
|
if (result.success && result.data) {
|
|
|
|
|
return result.data;
|
|
|
|
|
} else {
|
|
|
|
|
throw new Error(result.message || '更新仓库失败');
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('更新仓库失败:', error);
|
|
|
|
|
throw new Error('更新仓库失败');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-16 21:32:16 +08:00
|
|
|
/**
|
|
|
|
|
* 删除仓库
|
|
|
|
|
*/
|
|
|
|
|
async deleteWarehouse(warehouseId: number): Promise<boolean> {
|
|
|
|
|
try {
|
2025-10-26 13:15:04 +08:00
|
|
|
const result = await apiService.deleteWarehouse(warehouseId);
|
|
|
|
|
console.log(`删除仓库 ${warehouseId} 结果:`, result);
|
|
|
|
|
return result.success;
|
2025-10-16 21:32:16 +08:00
|
|
|
} catch (error) {
|
|
|
|
|
console.error('删除仓库失败:', error);
|
|
|
|
|
throw new Error('删除仓库失败');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 导出单例实例
|
|
|
|
|
export default new WarehouseService();
|