From 85f3a5c682d42f4742d3d143ee80250a43b6b8cf Mon Sep 17 00:00:00 2001 From: vladtechno Date: Mon, 25 May 2026 00:18:41 +1000 Subject: [PATCH] wip(local): repairs Edit+Detail snapshot 2026-05-25 Untracked: EditRepairPage, RepairDetailPage Modified: App.tsx, repairsFeed.ts, InspectionEditor.tsx, CreateRepairPage.tsx + public/icons docx files (oferta, 1032_*) Snapshot to prevent loss; main untouched at a5bd730. --- .../frontend/public/icons/1032_176495c5.docx | Bin 0 -> 36547 bytes .../frontend/public/icons/1032_8ca47941.docx | Bin 0 -> 36516 bytes .../public/icons/oferta_2026_small.docx | Bin 0 -> 38323 bytes mechanic-pwa/frontend/src/App.tsx | 4 + mechanic-pwa/frontend/src/api/repairsFeed.ts | 85 +++ .../frontend/src/pages/InspectionEditor.tsx | 6 +- .../src/pages/repairs/CreateRepairPage.tsx | 118 +++- .../src/pages/repairs/EditRepairPage.tsx | 564 ++++++++++++++++++ .../src/pages/repairs/RepairDetailPage.tsx | 294 +++++++++ 9 files changed, 1045 insertions(+), 26 deletions(-) create mode 100644 mechanic-pwa/frontend/public/icons/1032_176495c5.docx create mode 100644 mechanic-pwa/frontend/public/icons/1032_8ca47941.docx create mode 100644 mechanic-pwa/frontend/public/icons/oferta_2026_small.docx create mode 100644 mechanic-pwa/frontend/src/pages/repairs/EditRepairPage.tsx create mode 100644 mechanic-pwa/frontend/src/pages/repairs/RepairDetailPage.tsx diff --git a/mechanic-pwa/frontend/public/icons/1032_176495c5.docx b/mechanic-pwa/frontend/public/icons/1032_176495c5.docx new file mode 100644 index 0000000000000000000000000000000000000000..fbcc7ac5c4dc7a0cb02baf0b0d0ae645a3f04611 GIT binary patch literal 36547 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%0Av6LP7aPXR;pH(v}TS* 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 N0BCe=;eUMk{{S`j)1d$W literal 0 HcmV?d00001 diff --git a/mechanic-pwa/frontend/public/icons/oferta_2026_small.docx b/mechanic-pwa/frontend/public/icons/oferta_2026_small.docx new file mode 100644 index 0000000000000000000000000000000000000000..c4c98839a53cac5191ab110eedbbf056dbe2d9fb GIT binary patch literal 38323 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
<>;UgwptTqwpRW}xb2%1J+7R#>bq-g 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 /> } /> } /> + } /> + } /> } /> ); diff --git a/mechanic-pwa/frontend/src/api/repairsFeed.ts b/mechanic-pwa/frontend/src/api/repairsFeed.ts index 2155c9b..0fc9e22 100644 --- a/mechanic-pwa/frontend/src/api/repairsFeed.ts +++ b/mechanic-pwa/frontend/src/api/repairsFeed.ts @@ -36,3 +36,88 @@ export async function getRepairsFeed(params: FeedParams = {}): Promise(); } + +// ── Детальная карточка ремонта ───────────────────────────────────────────── + +export interface RepairDetailWork { + id: number; + work_catalog_id: number; + name: string; + price_applied: number; + manual_override: boolean; + override_comment: string | null; +} + +export interface RepairDetailPart { + id: number; + name: string; + qty: number; +} + +export interface RepairDetailPhoto { + photo_uuid: string; + thumb_url: string | null; + orig_url: string | null; +} + +export interface RepairDetailOil { + mileage_at_change: number | null; + next_in_km: number | null; + has_sticker: boolean; + sticker_thumb_url: string | null; + sticker_orig_url: string | null; +} + +export interface RepairDetailResponse { + id: number; + created_at: string; + car_plate: string | null; + car_make: string | null; + car_model: string | null; + driver_name: string | null; + mechanic_name: string | null; + mileage: number | null; + works: RepairDetailWork[]; + parts: RepairDetailPart[]; + photos: RepairDetailPhoto[]; + oil_change: RepairDetailOil | null; + total_sum: number; + edited_in_crm: boolean; + can_edit: boolean; + edit_until: string | null; +} + +export async function getRepairDetail(id: number): Promise { + return api.get(`repairs/${id}`).json(); +} + +// ── PATCH (правка в 1-часовом окне У49) ──────────────────────────────────── + +export interface PatchWork { + work_catalog_id: number; + price_applied: number; + manual_override: boolean; + override_comment: string | null; +} + +export interface PatchPart { + name: string; + qty: number; +} + +export interface PatchOilChange { + enabled: boolean; + mileage_at_change: number | null; + next_in_km: number | null; +} + +export interface PatchRepairPayload { + mileage: number | null; + works: PatchWork[]; + parts: PatchPart[]; + oil_change: PatchOilChange | null; +} + +export async function patchRepair(id: number, body: PatchRepairPayload): Promise { + return api.patch(`repairs/${id}`, { json: body }).json(); +} diff --git a/mechanic-pwa/frontend/src/pages/InspectionEditor.tsx b/mechanic-pwa/frontend/src/pages/InspectionEditor.tsx index c6272d1..82e8448 100644 --- a/mechanic-pwa/frontend/src/pages/InspectionEditor.tsx +++ b/mechanic-pwa/frontend/src/pages/InspectionEditor.tsx @@ -37,13 +37,17 @@ const SLOTS_GENERAL: { side: string; label: string }[] = [ ]; const SLOT_JACK = { side: "jack", label: "Домкрат" }; +// Шильдик замены масла — отдельный слот при выдаче/приёмке. +// Фото нужно как для сверки текущего пробега со следующим ТО, так и для +// контроля что водитель не клеит свой стикер. +const SLOT_OIL_STICKER = { side: "oil-sticker", label: "Шильдик замены масла" }; /** Все типы осмотров (выдача/приёмка/плановый/...) показывают одинаковый * набор слотов общих ракурсов + домкрат. Раньше «return» исключал общие * фото в пользу скорости приёмки, но фидбек: при приёмке всё равно надо * фиксировать общее состояние машины, как и при выдаче/осмотре. */ function slotsForType(_type: string): typeof SLOTS_GENERAL { - return [...SLOTS_GENERAL, SLOT_JACK]; + return [...SLOTS_GENERAL, SLOT_JACK, SLOT_OIL_STICKER]; } const SEVERITY_LABELS: Record = { diff --git a/mechanic-pwa/frontend/src/pages/repairs/CreateRepairPage.tsx b/mechanic-pwa/frontend/src/pages/repairs/CreateRepairPage.tsx index b9027db..53a6dcd 100644 --- a/mechanic-pwa/frontend/src/pages/repairs/CreateRepairPage.tsx +++ b/mechanic-pwa/frontend/src/pages/repairs/CreateRepairPage.tsx @@ -41,6 +41,10 @@ interface PhotoState { tag: "auto" | "part" | "other"; status: "uploading" | "uploaded" | "error"; errorMessage?: string; + // Превью локального файла через URL.createObjectURL — отдаётся в + // вместо плейсхолдера «Загружено». Освобождается через revokeObjectURL + // при удалении и при размонтировании страницы. + previewUrl?: string; } interface WorkRow { @@ -70,6 +74,14 @@ interface OilChangeState { } +// Цены ремонта — целые рубли без копеек. API отдаёт Numeric(10,2) +// строкой типа "500.00" — пропускаем через округление при отображении. +function fmtPrice(p: number | string): string { + const n = Number(p); + if (Number.isNaN(n)) return String(p); + return new Intl.NumberFormat("ru-RU", { maximumFractionDigits: 0 }).format(Math.round(n)); +} + function uuid4(): string { // crypto.randomUUID требует secure context; mechanic.pptaxi.ru — https. return (crypto as any).randomUUID @@ -132,6 +144,7 @@ export default function CreateRepairPage() { if (!files || files.length === 0) return; for (const file of Array.from(files)) { const ext = (file.name.split(".").pop() || "jpg").toLowerCase(); + const previewUrl = URL.createObjectURL(file); const placeholder: PhotoState = { presign: { photo_uuid: uuid4(), @@ -143,6 +156,7 @@ export default function CreateRepairPage() { }, tag: "auto", status: "uploading", + previewUrl, }; if (target === "gallery") setPhotos((arr) => [...arr, placeholder]); else setOilChange((oc) => ({ ...oc, sticker: { ...placeholder, tag: "auto" } })); @@ -150,7 +164,7 @@ export default function CreateRepairPage() { try { const presign = await presignPhoto(ext, placeholder.presign.photo_uuid); await uploadPhotoToTmp(file, presign); - const updated: PhotoState = { presign, tag: "auto", status: "uploaded" }; + const updated: PhotoState = { presign, tag: "auto", status: "uploaded", previewUrl }; if (target === "gallery") { setPhotos((arr) => arr.map((p) => (p.presign.photo_uuid === presign.photo_uuid ? updated : p)), @@ -179,7 +193,11 @@ export default function CreateRepairPage() { }; const removePhoto = (photoUuid: string) => - setPhotos((arr) => arr.filter((p) => p.presign.photo_uuid !== photoUuid)); + setPhotos((arr) => { + const target = arr.find((p) => p.presign.photo_uuid === photoUuid); + if (target?.previewUrl) URL.revokeObjectURL(target.previewUrl); + return arr.filter((p) => p.presign.photo_uuid !== photoUuid); + }); // ── Works picker ───────────────────────────────────────────────────────── @@ -196,7 +214,7 @@ export default function CreateRepairPage() { }; const addWorkFromCatalog = (w: MechWork) => { - const price = Number(w.price); + const price = Math.round(Number(w.price)); setWorks((arr) => [ ...arr, { @@ -395,17 +413,28 @@ export default function CreateRepairPage() {
{photos.map((p) => (
+ {p.previewUrl && ( + + )} {p.status === "uploading" && ( -
Загрузка…
+
+ Загрузка… +
)} {p.status === "error" && ( -
+
{p.errorMessage || "Ошибка"}
)} {p.status === "uploaded" && ( -
- ✓ Загружено +
+ + +
)} ))} diff --git a/mechanic-pwa/frontend/src/pages/repairs/EditRepairPage.tsx b/mechanic-pwa/frontend/src/pages/repairs/EditRepairPage.tsx new file mode 100644 index 0000000..bdaf72f --- /dev/null +++ b/mechanic-pwa/frontend/src/pages/repairs/EditRepairPage.tsx @@ -0,0 +1,564 @@ +/** + * Правка ремонта в 1-часовом окне (У49). + * + * Минимальная версия: редактируются работы (имя из каталога + цена + + * ручная правка + комментарий), запчасти, замена масла, пробег. Фото + * НЕ редактируются — для смены фото нужно дождаться PR-9. + */ +import { useEffect, useMemo, useState } from "react"; +import { useNavigate, useParams } from "react-router-dom"; +import { ChevronLeft, Plus, Trash2 } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { + getRepairDetail, + patchRepair, + type RepairDetailResponse, +} from "@/api/repairsFeed"; +import { searchWorks, suggestParts, type MechWork } from "@/api/repairsCreate"; + +interface WorkRow { + rowKey: string; + work_catalog_id: number; + name: string; + price_catalog: number; + price_applied: number; + manual_override: boolean; + override_comment: string | null; +} + +interface PartRow { + rowKey: string; + name: string; + qty: number; +} + +interface OilState { + enabled: boolean; + mileage_at_change: number | null; + next_in_km: number | null; +} + +function uid(): string { + return Math.random().toString(36).slice(2, 10); +} + +function fmt(n: number): string { + return new Intl.NumberFormat("ru-RU", { maximumFractionDigits: 0 }).format(Math.round(n)); +} + +export default function EditRepairPage() { + const { id } = useParams<{ id: string }>(); + const navigate = useNavigate(); + const [detail, setDetail] = useState(null); + const [loading, setLoading] = useState(true); + const [saving, setSaving] = useState(false); + const [error, setError] = useState(null); + + // Form state. + const [mileage, setMileage] = useState(null); + const [works, setWorks] = useState([]); + const [parts, setParts] = useState([]); + const [oil, setOil] = useState({ enabled: false, mileage_at_change: null, next_in_km: null }); + + const [worksPicker, setWorksPicker] = useState<{ open: boolean; q: string; results: MechWork[] }>( + { open: false, q: "", results: [] } + ); + const [overrideModal, setOverrideModal] = useState<{ rowKey: string; comment: string } | null>(null); + + useEffect(() => { + if (!id) return; + setLoading(true); + getRepairDetail(Number(id)) + .then((d) => { + setDetail(d); + setMileage(d.mileage); + setWorks(d.works.map((w) => ({ + rowKey: uid(), + work_catalog_id: w.work_catalog_id, + name: w.name, + price_catalog: w.price_applied, // в payload мы не знаем catalog price отдельно — фронт хранит applied; PATCH перечитает из БД каталога + price_applied: w.price_applied, + manual_override: w.manual_override, + override_comment: w.override_comment, + }))); + setParts(d.parts.map((p) => ({ + rowKey: uid(), name: p.name, qty: p.qty, + }))); + if (d.oil_change) { + setOil({ + enabled: true, + mileage_at_change: d.oil_change.mileage_at_change, + next_in_km: d.oil_change.next_in_km, + }); + } + if (!d.can_edit) { + setError("Окно правки закрыто. Изменения отправить нельзя."); + } + }) + .catch((e: Error) => setError(e.message || "Не удалось загрузить ремонт")) + .finally(() => setLoading(false)); + }, [id]); + + const totalSum = useMemo(() => works.reduce((s, w) => s + (w.price_applied || 0), 0), [works]); + + // Works picker — поиск по каталогу. + const openWorksPicker = async () => { + setWorksPicker({ open: true, q: "", results: [] }); + const list = await searchWorks(""); + setWorksPicker((s) => ({ ...s, results: list })); + }; + const queryWorks = async (q: string) => { + setWorksPicker((s) => ({ ...s, q })); + const list = await searchWorks(q); + setWorksPicker((s) => ({ ...s, results: list })); + }; + const pickWork = (mw: MechWork) => { + const p = Math.round(Number(mw.price)); + setWorks((arr) => [...arr, { + rowKey: uid(), + work_catalog_id: mw.id, + name: mw.name, + price_catalog: p, + price_applied: p, + manual_override: false, + override_comment: null, + }]); + setWorksPicker({ open: false, q: "", results: [] }); + }; + + // Override-цена: открываем модалку для комментария. + const startOverride = (rowKey: string) => { + const cur = works.find((w) => w.rowKey === rowKey); + setOverrideModal({ rowKey, comment: cur?.override_comment ?? "" }); + }; + const confirmOverride = (newPrice: number) => { + if (!overrideModal) return; + setWorks((arr) => arr.map((w) => + w.rowKey === overrideModal.rowKey + ? { ...w, price_applied: newPrice, manual_override: true, override_comment: overrideModal.comment } + : w + )); + setOverrideModal(null); + }; + + const submit = async () => { + if (!detail) return; + setError(null); + + // Валидация: каждый manual_override → комментарий. + for (const w of works) { + if (w.manual_override && !(w.override_comment || "").trim()) { + setError(`У работы «${w.name}» включена ручная правка цены, но не указан комментарий`); + return; + } + } + if (works.length === 0) { + setError("Минимум одна работа в ремонте"); + return; + } + + setSaving(true); + try { + await patchRepair(detail.id, { + mileage, + works: works.map((w) => ({ + work_catalog_id: w.work_catalog_id, + price_applied: Math.round(w.price_applied), + manual_override: w.manual_override, + override_comment: w.manual_override ? (w.override_comment ?? "").trim() : null, + })), + parts: parts.filter((p) => p.name.trim().length > 0).map((p) => ({ + name: p.name.trim(), + qty: p.qty, + })), + oil_change: oil.enabled + ? { enabled: true, mileage_at_change: oil.mileage_at_change, next_in_km: oil.next_in_km } + : { enabled: false, mileage_at_change: null, next_in_km: null }, + }); + navigate(`/repairs/${detail.id}`, { replace: true }); + } catch (e) { + setError((e as Error).message || "Не удалось сохранить"); + setSaving(false); + } + }; + + return ( +
+
+
+ +

+ Правка ремонта {detail ? `#${detail.id}` : ""} +

+
+
+ +
+ {loading && ( +
+ Загрузка… +
+ )} + {error && ( +
+ {error} +
+ )} + {detail && ( + <> + {/* Шапка машины — read-only */} +
+
{detail.car_plate ?? "—"}
+ {(detail.car_make || detail.car_model) && ( +
{detail.car_make} {detail.car_model}
+ )} + {detail.driver_name && ( +
+ Водитель: + {detail.driver_name} +
+ )} +
+ + {/* Пробег */} +
+ + setMileage(e.target.value === "" ? null : Number(e.target.value))} + className="mt-1" + /> +
+ + {/* Работы */} +
+
+ + + {works.length} {works.length === 1 ? "шт" : "шт"} + +
+
+ {works.map((w) => ( +
+
+
+
{w.name}
+
+ + {fmt(w.price_applied)} ₽ + + {w.manual_override && ( + + ✎ ручная правка + + )} + {w.manual_override && w.price_applied !== w.price_catalog && ( + + {fmt(w.price_catalog)} + + )} +
+ {w.manual_override && w.override_comment && ( +
+ {w.override_comment} +
+ )} +
+ + +
+
+ ))} + +
+ Итого + {fmt(totalSum)} ₽ +
+
+
+ + {/* Запчасти */} +
+
+ + {parts.length} шт +
+
+ {parts.map((p) => ( + + setParts((arr) => arr.map((x) => x.rowKey === p.rowKey ? { ...x, name, qty } : x)) + } + onRemove={() => setParts((arr) => arr.filter((x) => x.rowKey !== p.rowKey))} + /> + ))} + +
+
+ + {/* Замена масла */} +
+ + {oil.enabled && ( +
+
+ + setOil((o) => ({ + ...o, mileage_at_change: e.target.value === "" ? null : Number(e.target.value), + }))} + /> +
+
+ + setOil((o) => ({ + ...o, next_in_km: e.target.value === "" ? null : Number(e.target.value), + }))} + /> +
+
+ )} +
+ +
+ Фото и стикер замены масла редактировать пока нельзя — для смены + нужно создать новый ремонт. +
+ + )} +
+ + {/* Sticky footer */} + {detail && ( +
+ + +
+ )} + + {/* Works picker modal */} + {worksPicker.open && ( +
+
+ + queryWorks(e.target.value)} + /> +
+
+ {worksPicker.results.map((mw) => ( + + ))} + {worksPicker.results.length === 0 && ( +
+ Ничего не найдено +
+ )} +
+
+ )} + + {/* Override modal */} + {overrideModal && (() => { + const cur = works.find((w) => w.rowKey === overrideModal.rowKey); + if (!cur) return null; + return ( + setOverrideModal(null)} + onSubmit={(newPrice, comment) => { + setOverrideModal((m) => m ? { ...m, comment } : m); + confirmOverride(newPrice); + }} + /> + ); + })()} +
+ ); +} + + +function PartEditRow({ name, qty, onChange, onRemove }: { + name: string; + qty: number; + onChange: (name: string, qty: number) => void; + onRemove: () => void; +}) { + const [suggestions, setSuggestions] = useState([]); + const [showSugg, setShowSugg] = useState(false); + + const fetchSuggestions = async (q: string) => { + if (!q.trim()) { setSuggestions([]); return; } + try { + const r = await suggestParts(q); + setSuggestions(r.map((x) => x.name)); + } catch { /* noop */ } + }; + + return ( +
+
+ { onChange(e.target.value, qty); fetchSuggestions(e.target.value); setShowSugg(true); }} + onFocus={() => name && fetchSuggestions(name)} + onBlur={() => setTimeout(() => setShowSugg(false), 150)} + /> + {showSugg && suggestions.length > 0 && ( +
+ {suggestions.map((s) => ( + + ))} +
+ )} +
+ onChange(name, Math.max(1, Number(e.target.value) || 1))} + className="w-20" + /> + +
+ ); +} + + +function OverridePriceModal({ workName, catalogPrice, appliedPrice, initialComment, onCancel, onSubmit }: { + workName: string; + catalogPrice: number; + appliedPrice: number; + initialComment: string; + onCancel: () => void; + onSubmit: (newPrice: number, comment: string) => void; +}) { + const [price, setPrice] = useState(String(Math.round(appliedPrice))); + const [comment, setComment] = useState(initialComment); + + return ( +
+
e.stopPropagation()}> +

Изменить цену

+
+
{workName}
+
+ По каталогу: {fmt(catalogPrice)} ₽ +
+
+
+ + setPrice(e.target.value)} + autoFocus + /> +
+
+ +