1d3b97c8fc
- _nav 에 KO/EN 토글 버튼 + 공용 JS(data-ko/data-en 텍스트, data-*-ph placeholder 교체, localStorage 저장 → 전 페이지 공통, dsp:lang 이벤트 발행) - batches/new/detail/picking/handover 정적 라벨 이중언어화 - 동적 텍스트도 언어 반영: 완료 N/M 라벨, 일괄 토글 확인창, 업로드 안내/파일 라벨 - 카드 작업 버튼은 기존대로 한/영 동시 표기 유지 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
60 lines
3.4 KiB
HTML
60 lines
3.4 KiB
HTML
{% extends "erp_base.html" %}
|
||
|
||
{% block content %}
|
||
<section class="dsp">
|
||
{% include "dispatch/_nav.html" %}
|
||
|
||
<div class="erp-card">
|
||
<div class="cpg-card-head" style="display:flex;justify-content:space-between;align-items:center;">
|
||
<h2><span data-ko="출고 배치" data-en="Batches">출고 배치</span> ({{ batches|length }})</h2>
|
||
<a class="erp-btn erp-btn-primary" href="/dispatch/batches/new" data-ko="+ 새 업로드" data-en="+ New Upload">+ 새 업로드</a>
|
||
</div>
|
||
<div class="erp-table-wrap">
|
||
<table class="erp-table">
|
||
<thead>
|
||
<tr>
|
||
<th data-ko="날짜" data-en="Date">날짜</th>
|
||
<th data-ko="플랫폼" data-en="Platform">플랫폼</th>
|
||
<th data-ko="배치명" data-en="Batch">배치명</th>
|
||
<th style="text-align:right" data-ko="박스" data-en="Boxes">박스</th>
|
||
<th style="text-align:right" data-ko="완료" data-en="Done">완료</th>
|
||
<th data-ko="생성시각" data-en="Created">생성시각</th><th></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for b in batches %}
|
||
<tr>
|
||
<td style="white-space:nowrap;">{{ b.dispatch_date }}</td>
|
||
<td>{{ b.platform }}</td>
|
||
<td><a href="/dispatch/batches/{{ b.id }}" style="font-weight:600;">{{ b.batch_name or '(이름없음)' }}</a></td>
|
||
<td style="text-align:right;">{{ b.parcel_count }}</td>
|
||
<td style="text-align:right;">
|
||
{% if b.parcel_count and b.done_count == b.parcel_count %}
|
||
<span style="color:#16a34a;font-weight:600;">{{ b.done_count }} ✓</span>
|
||
{% else %}{{ b.done_count }}{% endif %}
|
||
</td>
|
||
<td class="erp-muted" style="white-space:nowrap;">{{ b.created_at }}</td>
|
||
<td style="text-align:right;white-space:nowrap;">
|
||
<a class="erp-btn erp-btn-outline" href="/dispatch/batches/{{ b.id }}" data-ko="작업" data-en="Work">작업</a>
|
||
<a class="erp-btn erp-btn-outline" href="/dispatch/batches/{{ b.id }}/picking" data-ko="피킹" data-en="Picking">피킹</a>
|
||
<a class="erp-btn erp-btn-outline" href="/dispatch/batches/{{ b.id }}/handover" data-ko="전달" data-en="Handover">전달</a>
|
||
<a class="erp-btn erp-btn-outline" href="/dispatch/batches/{{ b.id }}/download" data-ko="다운로드" data-en="Download">다운로드</a>
|
||
{% if is_super %}
|
||
<form method="post" action="/dispatch/batches/{{ b.id }}/delete" style="display:inline;"
|
||
onsubmit="return confirm('배치 「{{ b.batch_name or '(이름없음)' }}」 와 모든 박스/상품/로그를 삭제합니다. 되돌릴 수 없습니다. 계속할까요?');">
|
||
<button type="submit" class="erp-btn erp-btn-outline" style="color:#dc2626;border-color:#fca5a5;" data-ko="삭제" data-en="Delete">삭제</button>
|
||
</form>
|
||
{% endif %}
|
||
</td>
|
||
</tr>
|
||
{% endfor %}
|
||
{% if not batches %}
|
||
<tr><td colspan="7" class="erp-muted" data-ko="아직 출고 배치가 없습니다. 위 + 새 업로드로 시작하세요." data-en="No batches yet. Start with + New Upload above.">아직 출고 배치가 없습니다. 위 + 새 업로드로 시작하세요.</td></tr>
|
||
{% endif %}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
{% endblock %}
|