64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
import axios from 'axios';
|
|
import type {
|
|
LoginLocation, LoginLocationDetail,
|
|
} from '../../share/types.ts';
|
|
|
|
const API_BASE_URL = '/api';
|
|
|
|
|
|
// 地图相关API的接口类型定义
|
|
export interface LoginLocationResponse {
|
|
message: string;
|
|
data: LoginLocation[];
|
|
}
|
|
|
|
export interface LoginLocationDetailResponse {
|
|
message: string;
|
|
data: LoginLocationDetail;
|
|
}
|
|
|
|
export interface LoginLocationUpdateResponse {
|
|
message: string;
|
|
data: LoginLocationDetail;
|
|
}
|
|
|
|
// 地图相关API
|
|
export const MapAPI = {
|
|
// 获取地图标记点数据
|
|
getMarkers: async (params?: {
|
|
startTime?: string;
|
|
endTime?: string;
|
|
userId?: number
|
|
}): Promise<LoginLocationResponse> => {
|
|
try {
|
|
const response = await axios.get(`${API_BASE_URL}/map/markers`, { params });
|
|
return response.data;
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
// 获取登录位置详情
|
|
getLocationDetail: async (locationId: number): Promise<LoginLocationDetailResponse> => {
|
|
try {
|
|
const response = await axios.get(`${API_BASE_URL}/map/location/${locationId}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
// 更新登录位置信息
|
|
updateLocation: async (locationId: number, data: {
|
|
longitude: number;
|
|
latitude: number;
|
|
location_name?: string;
|
|
}): Promise<LoginLocationUpdateResponse> => {
|
|
try {
|
|
const response = await axios.put(`${API_BASE_URL}/map/location/${locationId}`, data);
|
|
return response.data;
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
}
|
|
}; |