添加管理员逻辑
This commit is contained in:
@@ -171,55 +171,17 @@ export class MapModule {
|
||||
|
||||
const markers: Marker[] = [];
|
||||
|
||||
// 获取用户位置
|
||||
const userLocation = this.pageContext.data.userLocation;
|
||||
if (userLocation && userLocation.longitude && userLocation.latitude) {
|
||||
// 添加用户位置标记点
|
||||
markers.push({
|
||||
id: -1,
|
||||
title: '用户位置',
|
||||
longitude: userLocation.longitude,
|
||||
latitude: userLocation.latitude,
|
||||
iconPath: '/images/trucks.png',
|
||||
width: 40,
|
||||
height: 40,
|
||||
zIndex: 99
|
||||
});
|
||||
|
||||
console.log('已添加用户位置标记点');
|
||||
}
|
||||
// 地图自带用户位置显示功能,无需手动添加用户位置标记点
|
||||
|
||||
return markers;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新用户标记图标为用户头像
|
||||
* 注意:由于地图自带用户位置显示功能,此方法已不再需要
|
||||
*/
|
||||
updateUserMarkerIcon(): void {
|
||||
const { authStatus, userInfo, markers } = this.pageContext.data;
|
||||
|
||||
if (!authStatus.hasWxCode || !userInfo) {
|
||||
console.warn('未登录或用户信息为空,无法更新头像');
|
||||
return;
|
||||
}
|
||||
|
||||
// 使用默认头像
|
||||
const avatarUrl = '/images/trucks.png';
|
||||
|
||||
const updatedMarkers = markers.map((marker: Marker) => {
|
||||
if (marker.id === -1) {
|
||||
return {
|
||||
...marker,
|
||||
iconPath: avatarUrl
|
||||
};
|
||||
}
|
||||
return marker;
|
||||
});
|
||||
|
||||
// 更新数据模块中的标记点
|
||||
this.dataModule.updateMarkers(updatedMarkers);
|
||||
|
||||
console.log('用户头像已更新');
|
||||
console.log('地图自带用户位置显示功能,无需更新用户标记图标');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -244,6 +206,91 @@ export class MapModule {
|
||||
console.log('员工标记点更新完成,总标记点数量:', updatedMarkers.length);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除所有员工标记点
|
||||
*/
|
||||
clearEmployeeMarkers(): void {
|
||||
console.log('开始清除所有员工标记点');
|
||||
|
||||
const { markers } = this.pageContext.data;
|
||||
|
||||
// 过滤掉员工标记点,只保留其他类型的标记点
|
||||
const filteredMarkers = markers.filter((marker: any) =>
|
||||
marker.type !== 'employee'
|
||||
);
|
||||
|
||||
// 更新数据模块中的标记点
|
||||
this.dataModule.updateMarkers(filteredMarkers);
|
||||
|
||||
console.log('员工标记点清除完成,剩余标记点数量:', filteredMarkers.length);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单个员工标记点
|
||||
*/
|
||||
removeEmployeeMarker(markerId: number): void {
|
||||
console.log('删除单个员工标记点:', markerId);
|
||||
|
||||
const { markers } = this.pageContext.data;
|
||||
|
||||
// 只删除员工类型的标记点,避免误删其他类型标记点
|
||||
const filteredMarkers = markers.filter((marker: any) =>
|
||||
!(marker.id === markerId && marker.type === 'employee')
|
||||
);
|
||||
|
||||
// 检查是否真的删除了标记点
|
||||
const originalCount = markers.length;
|
||||
const newCount = filteredMarkers.length;
|
||||
|
||||
if (originalCount === newCount) {
|
||||
console.warn('未找到员工标记点,可能标记点不存在或不是员工类型:', markerId);
|
||||
} else {
|
||||
console.log('成功删除员工标记点:', markerId);
|
||||
}
|
||||
|
||||
// 更新数据模块中的标记点
|
||||
this.dataModule.updateMarkers(filteredMarkers);
|
||||
|
||||
console.log('单个员工标记点删除完成,剩余标记点数量:', filteredMarkers.length);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加单个员工标记点
|
||||
*/
|
||||
addEmployeeMarker(employeeMarker: Marker): void {
|
||||
console.log('添加单个员工标记点:', employeeMarker.id);
|
||||
|
||||
// 确保标记点类型为员工
|
||||
const markerWithType = {
|
||||
...employeeMarker,
|
||||
type: 'employee'
|
||||
};
|
||||
|
||||
const { markers } = this.pageContext.data;
|
||||
|
||||
// 检查是否已存在相同ID的标记点
|
||||
const existingIndex = markers.findIndex((marker: any) =>
|
||||
marker.id === markerWithType.id && marker.type === 'employee'
|
||||
);
|
||||
|
||||
let updatedMarkers;
|
||||
if (existingIndex !== -1) {
|
||||
// 如果已存在相同ID的员工标记点,则更新
|
||||
updatedMarkers = [...markers];
|
||||
updatedMarkers[existingIndex] = markerWithType;
|
||||
console.log('员工标记点已存在,执行更新操作');
|
||||
} else {
|
||||
// 如果不存在,则添加新的员工标记点
|
||||
updatedMarkers = [...markers, markerWithType];
|
||||
console.log('员工标记点不存在,执行添加操作');
|
||||
}
|
||||
|
||||
// 更新数据模块中的标记点
|
||||
this.dataModule.updateMarkers(updatedMarkers);
|
||||
|
||||
console.log('单个员工标记点添加完成,总标记点数量:', updatedMarkers.length);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新单个员工标记点
|
||||
*/
|
||||
|
Reference in New Issue
Block a user