feat(web): React-фронтенд вместо Flet + fix restore rmtree на bind-mount

web-react/: SPA Vite+React+TS, nginx раздаёт статику и проксирует /api на api:8000 по локалке. docker-compose: web(Flet)->web-react на :80. transfer_crud.backup_restore: чистим содержимое data/radar вместо rmtree точки монтирования (EBUSY).
This commit is contained in:
jze9
2026-06-02 13:56:44 +00:00
parent 71887b084a
commit eac61923f4
38 changed files with 4480 additions and 10 deletions

View File

@@ -0,0 +1,19 @@
import { radarImageUrl } from "../api/client";
import { Button } from "./ui";
import { IconDownload } from "./icons";
// Блок с паутинной диаграммой: картинка + кнопка скачивания.
// SVG тянется напрямую с того же origin через nginx-прокси (/api/.../radar/image).
export function RadarBlock({ responseId }: { responseId: string }) {
const url = radarImageUrl(responseId);
return (
<div className="center-col" style={{ width: "100%" }}>
<img className="radar-img" src={url} alt="Паутинная диаграмма результата" />
<a href={url} download="diagram.svg">
<Button variant="info" icon={<IconDownload />}>
Сохранить диаграмму
</Button>
</a>
</div>
);
}