地图订单修改
This commit is contained in:
@@ -4,6 +4,8 @@ import userService from '../../../services/userService';
|
||||
import { showToast } from '../../../utils/helpers';
|
||||
import { Marker } from '../../../types';
|
||||
import { DataModule } from './dataModule';
|
||||
import warehouseService from '../../../services/warehouseService';
|
||||
import deliveryService from '../../../services/deliveryPersonService';
|
||||
|
||||
export class MapModule {
|
||||
private pageContext: any;
|
||||
@@ -152,15 +154,65 @@ export class MapModule {
|
||||
/**
|
||||
* 加载地图数据(仓库和货运人员)
|
||||
*/
|
||||
loadMapData(): void {
|
||||
// 这里会调用具体的服务来获取数据
|
||||
// 目前使用模拟数据
|
||||
const markers = this.generateInitialMarkers();
|
||||
async loadMapData(): Promise<void> {
|
||||
try {
|
||||
// 调用具体的服务来获取数据
|
||||
const warehouses = await warehouseService.getWarehouses();
|
||||
const deliveryPersons = await deliveryService.getDeliveryPersons();
|
||||
|
||||
// 生成标记点
|
||||
const markers = this.generateMarkersFromData(warehouses, deliveryPersons);
|
||||
|
||||
// 更新数据模块中的标记点
|
||||
this.dataModule.updateMarkers(markers);
|
||||
|
||||
console.log('地图数据加载完成');
|
||||
} catch (error) {
|
||||
console.error('加载地图数据失败:', error);
|
||||
// 如果API调用失败,使用空标记点
|
||||
this.dataModule.updateMarkers([]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从数据生成标记点
|
||||
*/
|
||||
private generateMarkersFromData(warehouses: any[], deliveryPersons: any[]): Marker[] {
|
||||
const markers: Marker[] = [];
|
||||
|
||||
// 更新数据模块中的标记点
|
||||
this.dataModule.updateMarkers(markers);
|
||||
// 添加仓库标记点
|
||||
warehouses.forEach(warehouse => {
|
||||
if (warehouse.longitude && warehouse.latitude) {
|
||||
markers.push({
|
||||
id: warehouse.id,
|
||||
latitude: warehouse.latitude,
|
||||
longitude: warehouse.longitude,
|
||||
title: warehouse.name,
|
||||
iconPath: '/images/warehouse-marker.png',
|
||||
width: 30,
|
||||
height: 30,
|
||||
type: 'warehouse'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
console.log('地图数据加载完成');
|
||||
// 添加货运人员标记点
|
||||
deliveryPersons.forEach(person => {
|
||||
if (person.longitude && person.latitude) {
|
||||
markers.push({
|
||||
id: person.id,
|
||||
latitude: person.latitude,
|
||||
longitude: person.longitude,
|
||||
title: person.name,
|
||||
iconPath: '/images/delivery-marker.png',
|
||||
width: 30,
|
||||
height: 30,
|
||||
type: 'employee'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return markers;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user