diff --git a/backend/app/api/maps.py b/backend/app/api/maps.py index c4e0cfd6..6dd20f85 100644 --- a/backend/app/api/maps.py +++ b/backend/app/api/maps.py @@ -123,6 +123,22 @@ def delete_map(map_id: int, db: Session = Depends(get_db)): return {"message": "已删除"} +@router.post("/batch-delete") +def batch_delete_maps(data: dict, db: Session = Depends(get_db)): + """批量删除战略地图""" + ids = data.get("ids", []) + if not ids: + raise HTTPException(400, "请选择要删除的地图") + deleted = 0 + for mid in ids: + m = db.query(StrategicMap).filter(StrategicMap.id == mid).first() + if m: + db.delete(m) + deleted += 1 + db.commit() + return {"message": f"已删除 {deleted} 个地图", "deleted": deleted} + + # ── 连线管理 ───────────────────────────────── def _get_connections(m: StrategicMap) -> list: diff --git a/frontend/src/api/index.ts b/frontend/src/api/index.ts index e48f51d8..564855c9 100644 --- a/frontend/src/api/index.ts +++ b/frontend/src/api/index.ts @@ -43,6 +43,7 @@ export const mapApi = { create: (data: any) => api.post('/maps', data), update: (id: number, data: any) => api.put(`/maps/${id}`, data), delete: (id: number) => api.delete(`/maps/${id}`), + batchDelete: (ids: number[]) => api.post('/maps/batch-delete', { ids }), createWithTemplate: (data: any) => api.post('/maps/create-with-template', data), } diff --git a/frontend/src/views/MapList.vue b/frontend/src/views/MapList.vue index 0928444e..70a0f4d7 100644 --- a/frontend/src/views/MapList.vue +++ b/frontend/src/views/MapList.vue @@ -2,9 +2,13 @@