From cbf92dca3bdbb65464f45f5e53bb71ddd59ff4b8 Mon Sep 17 00:00:00 2001 From: nns Date: Thu, 8 Oct 2026 04:58:54 +0500 Subject: [PATCH] =?UTF-8?q?feat(web):=20=D0=BA=D0=B0=D1=80=D1=82=D0=BE?= =?UTF-8?q?=D1=87=D0=BA=D0=B0=20=D1=81=D0=BA=D0=B0=D1=87=D0=B8=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=B0=D1=81=D1=81=D1=8B=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B5=20?= =?UTF-8?q?=C2=AB=D0=9A=D0=B0=D1=81=D1=81=D1=8B=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Запрашивает GET /api/pos/v1/version и показывает версию + кнопки «Скачать для Windows / для Linux» (ссылки из конфигурации сервера, секция Pos). Если ссылки не настроены — подсказка администратору. Co-Authored-By: Claude Opus 5.5 --- .../src/pages/RetailPointsPage.tsx | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/food-market.web/src/pages/RetailPointsPage.tsx b/src/food-market.web/src/pages/RetailPointsPage.tsx index 0447c81..d6d3322 100644 --- a/src/food-market.web/src/pages/RetailPointsPage.tsx +++ b/src/food-market.web/src/pages/RetailPointsPage.tsx @@ -16,6 +16,43 @@ import type { PagedResult, RetailPoint, Store } from '@/lib/types' const URL = '/api/catalog/retail-points' +interface PosVersion { version: string; windowsUrl?: string; linuxUrl?: string; notes?: string; mandatory: boolean } + +/** Карточка со ссылками на скачивание кассового приложения (Windows/Linux). */ +function PosDownloadCard() { + const { data } = useQuery({ + queryKey: ['pos-version'], + queryFn: async () => (await api.get('/api/pos/v1/version')).data, + staleTime: 300_000, + }) + const win = data?.windowsUrl + const lin = data?.linuxUrl + return ( +
+
+
+
Кассовое приложение (касса кассира)
+
+ Кроссплатформенная касса для Windows 10/11 и Linux. + {data?.version && data.version !== '0.0.0' ? ` Последняя версия: ${data.version}.` : ''} +
+
+
+ + +
+
+ {!win && !lin && ( +
+ Ссылки на сборки не настроены (раздел Pos в конфигурации сервера). +
+ )} +
+ ) +} + interface Form { id?: string name: string @@ -73,6 +110,7 @@ export function RetailPointsPage() { )} > +