feat(repairs): пробег видно прямо в списке ремонтов
Задача CRM 4386: «набрал номер авто, смотрю историю ремонтов по машине, а пробеги не вижу сразу, нужно проваливаться в ремонт». Пробег бэкенд отдавал в строке ленты и раньше — лента его просто не забирала. Теперь он стоит справа на строке механика: так пробеги выстраиваются в колонку и историю одной машины можно читать сверху вниз, не открывая каждый ремонт. Показываем ровно тот пробег, что зафиксирован в самом ремонте. Он и есть старлайновский: форма создания подставляет его из последнего снимка StarLine, механик только подтверждает (если сервис недоступен — вводит руками). Подставлять в историю ТЕКУЩИЙ пробег из StarLine нельзя: у ремонта полугодовой давности он показал бы сегодняшнее число. Когда пробега нет — не пишем ничего. У ремонтов из импортированного архива он есть в 2% случаев, и подпись «пробег не записан» в каждой второй строке была бы шумом. У ремонтов, заведённых в приложении, пробег заполнен в 72% случаев. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -349,8 +349,18 @@ function RepairRow({ item, onOpen }: { item: FeedItem; onOpen: () => void }) {
|
||||
Водитель: {item.driver_name}
|
||||
</div>
|
||||
)}
|
||||
<div className="text-xs text-muted-foreground truncate">
|
||||
Механик: {item.mechanic_name}
|
||||
{/* Пробег справа на строке механика: так он выстраивается в колонку и
|
||||
историю одной машины можно читать сверху вниз, не открывая каждый
|
||||
ремонт — ровно об этом задача 4386. У импортированного архива
|
||||
пробега почти нет, поэтому пустую подпись не рисуем: строка
|
||||
«пробег не записан» в каждой второй строке — шум, а не польза. */}
|
||||
<div className="flex items-baseline justify-between gap-2 text-xs text-muted-foreground">
|
||||
<span className="truncate">Механик: {item.mechanic_name}</span>
|
||||
{item.mileage != null && (
|
||||
<span className="flex-shrink-0 tabular-nums">
|
||||
{item.mileage.toLocaleString("ru-RU")} км
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
<div className="flex items-baseline justify-between gap-2">
|
||||
<WorksLine works={item.works_preview.map((w) => w.name)} extra={item.works_extra} />
|
||||
|
||||
Reference in New Issue
Block a user