style(orders/admin): 좌측 발주 리스트 6컬럼 분리 + 업체명 굵고 크게
Deploy momo-erp / deploy (push) Successful in 1m55s
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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user