style(orders/admin): 좌측 발주 리스트 가로스크롤 제거 + 업체명 강조
Deploy momo-erp / deploy (push) Successful in 1m54s

데스크탑 좌측 발주 리스트가 좁아서 가로 스크롤이 보이던 문제 + 업체명이 작던 문제.
- 발주번호/발주일을 업체 셀로 합쳐 4열 구조(체크/업체·발주/합계/상태)로 단순화
- 업체명: font-bold text-sm (강조), 그 아래 작은 회색으로 날짜·발주번호
- table-fixed + overflow-x-hidden 로 가로 스크롤 없이 한 화면에
This commit is contained in:
chpark
2026-05-29 00:36:59 +09:00
parent 4b1334fabb
commit 612786e754
+19 -20
View File
@@ -459,7 +459,7 @@ export default function AdminOrdersPage() {
</div>
<span className="text-slate-400 font-normal"> {selected.size} / {allRequestedCount}</span>
</div>
<div className="flex-1 lg:overflow-auto max-h-[60vh] lg:max-h-none overflow-x-auto">
<div className="flex-1 lg:overflow-auto max-h-[60vh] lg:max-h-none overflow-x-hidden">
{listViewMode === "card" ? (
orders.length === 0 ? (
<div className="text-center py-12 text-slate-400">{loading ? "조회 중..." : "발주가 없습니다."}</div>
@@ -516,7 +516,7 @@ export default function AdminOrdersPage() {
</div>
)
) : (
<table className="w-full text-xs min-w-[520px]">
<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">
@@ -524,16 +524,14 @@ export default function AdminOrdersPage() {
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-left px-1.5 py-1.5 text-[11px]"></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]"></th>
<th className="text-center px-1.5 py-1.5 text-[11px]"></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>
</tr>
</thead>
<tbody>
{orders.length === 0 ? (
<tr><td colSpan={6} className="text-center py-12 text-slate-400">{loading ? "조회 중..." : "발주가 없습니다."}</td></tr>
<tr><td colSpan={4} 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;
@@ -546,7 +544,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" onClick={(e) => e.stopPropagation()}>
<td className="px-2 py-2 text-center align-top" onClick={(e) => e.stopPropagation()}>
<input
type="checkbox"
checked={checked}
@@ -556,20 +554,21 @@ export default function AdminOrdersPage() {
title={o.STATUS !== "REQUESTED" ? "출고요청 상태만 선택할 수 있습니다." : ""}
/>
</td>
<td className="px-1.5 py-1.5 font-semibold text-slate-800 whitespace-nowrap text-[11px]">
{lockedByMeRow && <span className="mr-1 text-emerald-700" title="내가 수정 중"></span>}
{lockedByOtherUser && <span className="mr-1" title={`${o.EDITING_BY_NAME} 수정 중`}>🔒</span>}
{o.ORDER_NO}
</td>
<td className="px-1.5 py-1.5 text-slate-600 whitespace-nowrap text-[11px]">{o.ORDER_DATE}</td>
<td className="px-1.5 py-1.5 truncate max-w-[100px] text-[11px]" title={o.COMPANY_NAME}>
{o.COMPANY_NAME}
<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>
<td className="px-1.5 py-1.5 text-right tabular-nums font-semibold whitespace-nowrap text-[11px]">{fmt(o.TOTAL_AMOUNT)}</td>
<td className="px-1.5 py-1.5 text-center">
<span className={`inline-block px-1.5 py-0.5 rounded text-[10px] font-semibold border ${STATUS_COLOR[o.STATUS] ?? "bg-slate-100 text-slate-500 border-slate-200"}`}>
<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"}`}>
{STATUS_LABEL[o.STATUS] ?? o.STATUS}
</span>
</td>