From 58c9a2ca1e5d2cde3fe3b714e372cfe80ddac550 Mon Sep 17 00:00:00 2001 From: vladtechno Date: Fri, 7 Aug 2026 23:31:50 +1000 Subject: [PATCH] =?UTF-8?q?feat(repairs):=20=D0=BF=D1=80=D0=BE=D0=B1=D0=B5?= =?UTF-8?q?=D0=B3=20=D0=B2=D0=B8=D0=B4=D0=BD=D0=BE=20=D0=BF=D1=80=D1=8F?= =?UTF-8?q?=D0=BC=D0=BE=20=D0=B2=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=B5=20?= =?UTF-8?q?=D1=80=D0=B5=D0=BC=D0=BE=D0=BD=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Задача CRM 4386: «набрал номер авто, смотрю историю ремонтов по машине, а пробеги не вижу сразу, нужно проваливаться в ремонт». Пробег бэкенд отдавал в строке ленты и раньше — лента его просто не забирала. Теперь он стоит справа на строке механика: так пробеги выстраиваются в колонку и историю одной машины можно читать сверху вниз, не открывая каждый ремонт. Показываем ровно тот пробег, что зафиксирован в самом ремонте. Он и есть старлайновский: форма создания подставляет его из последнего снимка StarLine, механик только подтверждает (если сервис недоступен — вводит руками). Подставлять в историю ТЕКУЩИЙ пробег из StarLine нельзя: у ремонта полугодовой давности он показал бы сегодняшнее число. Когда пробега нет — не пишем ничего. У ремонтов из импортированного архива он есть в 2% случаев, и подпись «пробег не записан» в каждой второй строке была бы шумом. У ремонтов, заведённых в приложении, пробег заполнен в 72% случаев. Co-Authored-By: Claude Opus 5 --- mechanic-pwa/frontend/src/api/repairsFeed.ts | 3 +++ .../frontend/src/pages/repairs/RepairsFeedPage.tsx | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/mechanic-pwa/frontend/src/api/repairsFeed.ts b/mechanic-pwa/frontend/src/api/repairsFeed.ts index bbd7941..3e9c271 100644 --- a/mechanic-pwa/frontend/src/api/repairsFeed.ts +++ b/mechanic-pwa/frontend/src/api/repairsFeed.ts @@ -12,6 +12,9 @@ export interface FeedItem { car_model: string | null; driver_name: string | null; mechanic_name: string; + // Пробег на момент ремонта. Бэкенд отдавал его и раньше, но лента поле не + // забирала — чтобы посмотреть, приходилось проваливаться в каждый ремонт. + mileage: number | null; is_external: boolean; works_preview: FeedWorkBrief[]; works_extra: number; diff --git a/mechanic-pwa/frontend/src/pages/repairs/RepairsFeedPage.tsx b/mechanic-pwa/frontend/src/pages/repairs/RepairsFeedPage.tsx index 26b4b0d..49ee43d 100644 --- a/mechanic-pwa/frontend/src/pages/repairs/RepairsFeedPage.tsx +++ b/mechanic-pwa/frontend/src/pages/repairs/RepairsFeedPage.tsx @@ -349,8 +349,18 @@ function RepairRow({ item, onOpen }: { item: FeedItem; onOpen: () => void }) { Водитель: {item.driver_name} )} -
- Механик: {item.mechanic_name} + {/* Пробег справа на строке механика: так он выстраивается в колонку и + историю одной машины можно читать сверху вниз, не открывая каждый + ремонт — ровно об этом задача 4386. У импортированного архива + пробега почти нет, поэтому пустую подпись не рисуем: строка + «пробег не записан» в каждой второй строке — шум, а не польза. */} +
+ Механик: {item.mechanic_name} + {item.mileage != null && ( + + {item.mileage.toLocaleString("ru-RU")} км + + )}
w.name)} extra={item.works_extra} />