Files
WXProgram/miniprogram/services/warehouseService.ts

91 lines
2.4 KiB
TypeScript

import { WarehouseInfo } from '../types';
import apiService from './apiService';
/**
* 仓库服务类
* 封装了所有仓库相关的操作
*/
class WarehouseService {
/**
* 构造函数
*/
constructor() {
// 真实API模式下不需要模拟数据
}
/**
* 获取仓库状态的中文描述
*/
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);
}
/**
* 创建新仓库
*/
async createWarehouse(warehouseData: Partial<WarehouseInfo>): Promise<WarehouseInfo> {
try {
// 模拟API请求延迟
await new Promise(resolve => setTimeout(resolve, 600));
console.log('创建新仓库:', warehouseData);
// 实际应用中这里应该调用后端API
// 这里我们创建一个模拟的仓库对象返回
const newWarehouse: WarehouseInfo = {
id: Date.now(), // 使用时间戳作为临时ID
name: warehouseData.name || '新建仓库',
address: warehouseData.address || '',
contact: warehouseData.contact,
phone: warehouseData.phone,
description: warehouseData.description,
status: 'open',
capacity: warehouseData.capacity || 500,
longitude: warehouseData.longitude || 0,
latitude: warehouseData.latitude || 0
};
return newWarehouse;
} catch (error) {
console.error('创建仓库失败:', error);
throw new Error('创建仓库失败');
}
}
/**
* 删除仓库
*/
async deleteWarehouse(warehouseId: number): Promise<boolean> {
try {
// 模拟API请求延迟
await new Promise(resolve => setTimeout(resolve, 400));
console.log(`删除仓库 ${warehouseId}`);
// 实际应用中这里应该调用后端API
return true;
} catch (error) {
console.error('删除仓库失败:', error);
throw new Error('删除仓库失败');
}
}
}
// 导出单例实例
export default new WarehouseService();