feat(dispatch): 배송사 배지를 로고 이미지로 표시

- store.courier_logo_url: 배송사명(부분 일치) → 로고 SVG URL, 없으면 텍스트 폴백
- Jinja 필터 courier_logo 등록(main.py)
- Ninja Van / J&T Express 내장 SVG 로고 추가(static/dispatch/courier/)
- 출고 작업 카드 + Kagayaku 전달 요약에 로고 렌더

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 15:54:23 +09:00
parent a189b93427
commit a65ca65a8b
6 changed files with 76 additions and 1 deletions
@@ -21,6 +21,7 @@
.dsp-btn-status small { display:block;font-size:10px;font-weight:500;opacity:.8; }
.dsp-btn-status.on { background:#16a34a;border-color:#16a34a;color:#fff; }
.dsp-btn-status:disabled { opacity:.6;cursor:wait; }
.dsp-courier { height:22px;width:auto;max-width:140px;display:block; }
.dsp-hidden { display:none !important; }
@media (max-width:480px){ .dsp-cards{grid-template-columns:1fr;} }
</style>
@@ -62,7 +63,12 @@
data-search="{{ (p.order_id ~ ' ' ~ p.package_id ~ ' ' ~ p.tracking_id ~ ' ' ~ (p['items']|map(attribute='seller_sku')|join(' ')))|lower }}">
<div style="display:flex;justify-content:space-between;align-items:baseline;">
<span class="dsp-no">No. {{ p.seq }}</span>
{% if p.shipping_provider %}<span class="erp-badge">{{ p.shipping_provider }}</span>{% endif %}
{% set logo = p.shipping_provider | courier_logo %}
{% if logo %}
<img class="dsp-courier" src="{{ logo }}" alt="{{ p.shipping_provider }}" title="{{ p.shipping_provider }}" />
{% elif p.shipping_provider %}
<span class="erp-badge">{{ p.shipping_provider }}</span>
{% endif %}
</div>
<div class="dsp-meta">
<div><b>Order</b> {{ p.order_id or '—' }}</div>
@@ -45,6 +45,8 @@
</div>
{% for pv in handover.by_provider %}
<div class="dsp-ho-stat">
{% set logo = pv.provider | courier_logo %}
{% if logo %}<img src="{{ logo }}" alt="{{ pv.provider }}" style="height:20px;width:auto;max-width:130px;margin:0 auto 4px;display:block;" />{% endif %}
<div class="n">{{ pv.box_count }}</div>
<div class="l">{{ pv.provider }}</div>
</div>