style(orders/admin): 좌측 발주 리스트 가로스크롤 제거 + 업체명 강조
Deploy momo-erp / deploy (push) Successful in 1m54s
Deploy momo-erp / deploy (push) Successful in 1m54s
데스크탑 좌측 발주 리스트가 좁아서 가로 스크롤이 보이던 문제 + 업체명이 작던 문제. - 발주번호/발주일을 업체 셀로 합쳐 4열 구조(체크/업체·발주/합계/상태)로 단순화 - 업체명: font-bold text-sm (강조), 그 아래 작은 회색으로 날짜·발주번호 - table-fixed + overflow-x-hidden 로 가로 스크롤 없이 한 화면에
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user