From ec037d70452359d2efff73762b70bf0d2813ea8b Mon Sep 17 00:00:00 2001 From: king Date: Fri, 19 Jun 2026 19:20:48 +0900 Subject: [PATCH] =?UTF-8?q?style(dispatch):=20=EC=86=A1=EC=9E=A5=20?= =?UTF-8?q?=EB=B0=91=EC=A4=84=20=EA=B0=95=EC=A0=9C=ED=91=9C=EC=8B=9C=C2=B7?= =?UTF-8?q?=ED=99=95=EB=8C=80=20+=20J&T=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 송장 링크 밑줄이 erp.css 전역 a 스타일에 덮여 안 보이던 것 !important 로 강제 - 송장번호 18px 로 확대 - J&T 는 파라미터 무시(자동입력 불가)라 깔끔한 공식 페이지만 열고 클립보드 복사로 처리 Co-Authored-By: Claude Opus 4.8 --- app/modules/dispatch/store.py | 6 +++--- app/modules/dispatch/templates/dispatch/detail.html | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/modules/dispatch/store.py b/app/modules/dispatch/store.py index dd4e90a..a0cfacc 100644 --- a/app/modules/dispatch/store.py +++ b/app/modules/dispatch/store.py @@ -264,9 +264,9 @@ def courier_logo_url(provider: Any) -> str: # 매핑 없는 배송사는 링크 없이 텍스트로 표시(courier_tracking_url 가 "" 반환). _COURIER_TRACK_URL: dict[str, str] = { "ninjavan": "https://www.ninjavan.co/en-my/tracking?id={t}", - # J&T MY 공식 페이지는 송장 자동입력이 안 된다 → 클릭 시 송장번호를 클립보드에 - # 복사하고 공식 조회 페이지를 연다(직원이 붙여넣기). 복사는 템플릿 JS 가 처리. - "jnt": "https://www.jtexpress.my/tracking?billcode={t}", + # J&T MY SPA 는 URL 파라미터로 송장 자동입력이 안 된다(billcode 무시). 깔끔한 + # 공식 조회 페이지만 열고, 송장번호는 클릭 시 클립보드 복사 → 직원이 붙여넣기. + "jnt": "https://www.jtexpress.my/tracking", "flash": "https://www.flashexpress.my/fle/tracking?se={t}", "citylink": "https://www.citylinkexpress.com/tracking-result/?track_no={t}", "poslaju": "https://track.pos.com.my/postal-services/quick-access/?track-trace&trackingNo03={t}", diff --git a/app/modules/dispatch/templates/dispatch/detail.html b/app/modules/dispatch/templates/dispatch/detail.html index 978e95f..a85c5db 100644 --- a/app/modules/dispatch/templates/dispatch/detail.html +++ b/app/modules/dispatch/templates/dispatch/detail.html @@ -16,8 +16,10 @@ .dsp-order { font-size:15px;line-height:1.3;color:#334155;word-break:break-all; } .dsp-order b { display:block;font-size:14px;font-weight:700;color:#475569;letter-spacing:.5px; } .dsp-order span { font-size:27px;font-weight:800;color:#0f172a;letter-spacing:.2px; } - .dsp-track-link { color:#2563eb;font-weight:800;text-decoration:underline; + .dsp-track-link { color:#2563eb !important;font-size:18px;font-weight:800; + text-decoration:underline !important;text-decoration-line:underline !important; text-decoration-thickness:2px;text-underline-offset:3px;cursor:pointer; } + .dsp-track-link:hover { color:#1d4ed8 !important; } .dsp-toast { position:fixed;left:50%;bottom:24px;transform:translateX(-50%); background:#0f172a;color:#fff;padding:10px 18px;border-radius:9px; font-size:14px;font-weight:600;opacity:0;pointer-events:none;