Commit Graph

8 Commits

Author SHA1 Message Date
Frudrax Cheng 30e3ac67d2 Require dual signatures for aftersales confirmation 2026-06-02 10:38:40 +08:00
Frudrax Cheng d216a25364 Refine aftersales form labels and signature 2026-06-02 10:29:45 +08:00
Frudrax Cheng 31df505735 Update aftersales confirmation labels 2026-06-02 10:14:13 +08:00
Frudrax Cheng 7747995b3f Allow portrait signature confirmation 2026-05-28 10:45:14 +08:00
Frudrax Cheng 2262b39d04 feat: update aftersales labels and service type options 2026-05-28 09:13:04 +08:00
Frudrax Cheng ab5acbc452 Open signature in a landscape overlay and fix mobile touch
The inline signature pad on the confirm page was unusable on phones:
the canvas had a fixed 480px internal width but shrank via max-width
on small screens, so pointer coordinates landed in only the top-left
fraction of the drawing buffer. Edge-of-screen strokes also collided
with iOS Safari back-swipe.

Tapping the new signature trigger now opens a full-screen overlay
that rotates to landscape (via 100dvh/100dvw + CSS rotate on portrait
phones, plus an opportunistic screen.orientation.lock) so customers
get the widest possible signing area, away from the system edge.

Also swap the hand-rolled drawing logic for signature_pad, with a
ResizeObserver-driven resize that preserves strokes via
toData/fromData and scales the canvas to devicePixelRatio.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 09:11:05 +08:00
Frudrax Cheng 1d944b0fd3 Replace phone verification with canvas signature on confirm page
Adds a canvas-based SignaturePad component used on the customer
confirm page. Authorize now requires a non-empty signature; reject
opens a required reason modal. The archived signature is shown to
the customer after confirming and on the admin detail page.

Also fixes the confirm page being clipped at the top when its
content exceeds the viewport: the public layout used
height:100vh + overflow:hidden which cropped the centered card.
Switched to min-height:100vh so tall content can scroll naturally.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 18:02:18 +08:00
Frudrax Cheng 6fef517556 Add aftersales work order frontend pages
- Public scan-to-confirm page (/aftersales/:sn) with phone last-4 verification
- Admin list + detail pages with state machine, QR generation, reassign, force-close
- PublicLayout extracted from PublicQuery so both pages share logo + 备案 chrome
- PublicQuery auto-redirects scanned zjbf-sh-* serials to the aftersales page
- AdminLayout: new 售后工单 menu entry

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 10:51:25 +08:00