style(orders/admin): 좌측 발주 리스트 6컬럼 분리 + 업체명 굵고 크게
Deploy momo-erp / deploy (push) Successful in 1m55s

체크 / 발주번호 / 발주일 / 업체 / 합계 / 상태 6개 컬럼 분리.
table-fixed + 고정 너비(88/72/82/62) 로 가로 스크롤 없이 480px 컨테이너에 맞춤.
업체명: text-sm font-bold(검정) — 가장 크고 굵게.
발주번호/발주일: text-xs tabular-nums 정렬.
This commit is contained in:
chpark
2026-05-29 00:53:48 +09:00
parent 5ef56ef63d
commit 72227883a0
+21 -20
View File
@@ -519,19 +519,21 @@ export default function AdminOrdersPage() {
<table className="w-full text-xs table-fixed">
<thead className="bg-slate-50 text-slate-600 sticky top-0 z-10">
<tr>
<th className="w-7 px-1.5 py-1.5">
<th className="w-7 px-1 py-1.5">
<input type="checkbox" checked={allRequestedChecked} onChange={toggleAllRequested}
disabled={allRequestedCount === 0}
className="accent-emerald-600 cursor-pointer disabled:opacity-30" />
</th>
<th className="text-left px-1.5 py-1.5 text-[11px]"> / </th>
<th className="text-right px-1.5 py-1.5 text-[11px] w-[90px]"></th>
<th className="text-center px-1.5 py-1.5 text-[11px] w-[70px]"></th>
<th className="text-left px-1 py-1.5 text-[11px] w-[88px]"></th>
<th className="text-left px-1 py-1.5 text-[11px] w-[72px]"></th>
<th className="text-left px-1 py-1.5 text-[11px]"></th>
<th className="text-right px-1 py-1.5 text-[11px] w-[82px]"></th>
<th className="text-center px-1 py-1.5 text-[11px] w-[62px]"></th>
</tr>
</thead>
<tbody>
{orders.length === 0 ? (
<tr><td colSpan={4} className="text-center py-12 text-slate-400">{loading ? "조회 중..." : "발주가 없습니다."}</td></tr>
<tr><td colSpan={6} className="text-center py-12 text-slate-400">{loading ? "조회 중..." : "발주가 없습니다."}</td></tr>
) : orders.map((o) => {
const checked = selected.has(o.OBJID);
const active = o.OBJID === activeId;
@@ -544,7 +546,7 @@ export default function AdminOrdersPage() {
className={`border-t border-slate-100 cursor-pointer ${active ? "bg-emerald-50/60" : lockedByMeRow ? "bg-emerald-50/30 hover:bg-emerald-50/50" : lockedByOtherUser ? "bg-rose-50/30 hover:bg-rose-50/60" : "hover:bg-slate-50"}`}
title={lockedByMeRow ? "✏️ 내가 수정 중" : lockedByOtherUser ? `🔒 ${o.EDITING_BY_NAME} 님이 수정 중` : ""}
>
<td className="px-2 py-2 text-center align-top" onClick={(e) => e.stopPropagation()}>
<td className="px-1 py-1.5 text-center" onClick={(e) => e.stopPropagation()}>
<input
type="checkbox"
checked={checked}
@@ -554,21 +556,20 @@ export default function AdminOrdersPage() {
title={o.STATUS !== "REQUESTED" ? "출고요청 상태만 선택할 수 있습니다." : ""}
/>
</td>
<td className="px-1.5 py-1.5">
<div className="font-bold text-sm text-slate-900 truncate flex items-center gap-1" title={o.COMPANY_NAME}>
{lockedByMeRow && <span className="text-emerald-700 shrink-0" title="내가 수정 중"></span>}
{lockedByOtherUser && <span className="text-rose-600 shrink-0" title={`${o.EDITING_BY_NAME} 수정 중`}>🔒</span>}
<span className="truncate">{o.COMPANY_NAME}</span>
</div>
<div className="text-[10px] text-slate-500 truncate">
{o.ORDER_DATE} · <span className="font-semibold text-slate-600">{o.ORDER_NO}</span>
</div>
{lockedByMeRow && <div className="text-[9px] font-bold text-emerald-700"> </div>}
{lockedByOtherUser && <div className="text-[9px] font-bold text-rose-600">🔒 {o.EDITING_BY_NAME}</div>}
<td className="px-1 py-1.5 font-semibold text-slate-800 whitespace-nowrap text-xs tabular-nums">
{lockedByMeRow && <span className="mr-0.5 text-emerald-700" title="내가 수정 중"></span>}
{lockedByOtherUser && <span className="mr-0.5 text-rose-600" title={`${o.EDITING_BY_NAME} 수정 중`}>🔒</span>}
{o.ORDER_NO}
</td>
<td className="px-1.5 py-1.5 text-right tabular-nums font-semibold whitespace-nowrap text-[11px] align-top">{fmt(o.TOTAL_AMOUNT)}</td>
<td className="px-1.5 py-1.5 text-center align-top">
<span className={`inline-block px-1.5 py-0.5 rounded text-[10px] font-semibold border whitespace-nowrap ${STATUS_COLOR[o.STATUS] ?? "bg-slate-100 text-slate-500 border-slate-200"}`}>
<td className="px-1 py-1.5 text-slate-600 whitespace-nowrap text-xs tabular-nums">{o.ORDER_DATE}</td>
<td className="px-1 py-1.5 font-bold text-sm text-slate-900 truncate" title={o.COMPANY_NAME}>
{o.COMPANY_NAME}
{lockedByMeRow && <div className="text-[9px] font-bold text-emerald-700 truncate"> </div>}
{lockedByOtherUser && <div className="text-[9px] font-bold text-rose-600 truncate">🔒 {o.EDITING_BY_NAME}</div>}
</td>
<td className="px-1 py-1.5 text-right tabular-nums font-bold whitespace-nowrap text-xs">{fmt(o.TOTAL_AMOUNT)}</td>
<td className="px-1 py-1.5 text-center">
<span className={`inline-block px-1 py-0.5 rounded text-[10px] font-semibold border whitespace-nowrap ${STATUS_COLOR[o.STATUS] ?? "bg-slate-100 text-slate-500 border-slate-200"}`}>
{STATUS_LABEL[o.STATUS] ?? o.STATUS}
</span>
</td>