debug
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
import apiClient from './index';
|
||||
import type { Grid } from './types';
|
||||
import type { Grid, UserAccount } from './types';
|
||||
|
||||
export interface GridData extends Grid {}
|
||||
|
||||
export type GridWorker = UserAccount;
|
||||
|
||||
export interface GridWorkersQuery {
|
||||
unassigned?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* DTO for updating a grid's core properties.
|
||||
@@ -16,8 +24,49 @@ export interface GridUpdateRequest {
|
||||
* @param data - 包含更新数据的对象
|
||||
* @returns 更新后的网格对象
|
||||
*/
|
||||
export const updateGrid = (gridId: number, data: GridUpdateRequest): Promise<Grid> => {
|
||||
return apiClient.patch(`/grids/${gridId}`, data);
|
||||
export function updateGrid(gridId: number, data: GridUpdateRequest): Promise<Grid>;
|
||||
export function updateGrid(grid: GridData & GridUpdateRequest): Promise<Grid>;
|
||||
export function updateGrid(
|
||||
gridOrId: number | (GridData & GridUpdateRequest),
|
||||
data?: GridUpdateRequest
|
||||
): Promise<Grid> {
|
||||
if (typeof gridOrId === 'number') {
|
||||
return apiClient.patch(`/grids/${gridOrId}`, data ?? {});
|
||||
}
|
||||
const payload: GridUpdateRequest = {
|
||||
isObstacle: gridOrId.isObstacle,
|
||||
description: gridOrId.description,
|
||||
};
|
||||
return apiClient.patch(`/grids/${gridOrId.id}`, payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有网格
|
||||
*/
|
||||
export const getGrids = (): Promise<GridData[]> => {
|
||||
return apiClient.get('/grids');
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取网格员列表(可选:仅未分配)
|
||||
*/
|
||||
export const getGridWorkers = async (params?: GridWorkersQuery): Promise<GridWorker[]> => {
|
||||
const response = await apiClient.get('/personnel/users', {
|
||||
params: { role: 'GRID_WORKER' },
|
||||
});
|
||||
let workers: GridWorker[] = Array.isArray(response) ? response : (response as any).content || [];
|
||||
|
||||
if (params?.unassigned) {
|
||||
workers = workers.filter(worker =>
|
||||
worker.gridX === null ||
|
||||
worker.gridY === null ||
|
||||
worker.gridX === undefined ||
|
||||
worker.gridY === undefined ||
|
||||
worker.gridX === -1 ||
|
||||
worker.gridY === -1
|
||||
);
|
||||
}
|
||||
return workers;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -39,4 +88,8 @@ export const assignWorkerByCoordinates = (gridX: number, gridY: number, userId:
|
||||
*/
|
||||
export const unassignWorkerByCoordinates = (gridX: number, gridY: number): Promise<void> => {
|
||||
return apiClient.post(`/grids/coordinates/${gridX}/${gridY}/unassign`);
|
||||
};
|
||||
};
|
||||
|
||||
// Aliases for compatibility with existing usage
|
||||
export const assignGridWorkerByCoordinates = assignWorkerByCoordinates;
|
||||
export const removeGridWorkerByCoordinates = unassignWorkerByCoordinates;
|
||||
|
||||
Reference in New Issue
Block a user