添加管理员逻辑

This commit is contained in:
2025-10-19 23:38:54 +08:00
parent 118ec38550
commit 5ee4e077fb
46 changed files with 5263 additions and 883 deletions

View File

@@ -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);
}
/**
* 更新单个员工标记点
*/