feat(cupang): 박스 계산 임시 저장 / 불러오기
계산 중 화면 상태를 서버에 이름 붙여 저장하고 다시 불러온다. 다른 PC 에서도
이어서 작업할 수 있어야 해서 localStorage 대신 DB 에 둔다.
저장 대상은 화면 스냅샷(입력 품목·열어둔 센터·분배 내역·도장 상태)뿐이고,
박스 수는 불러온 뒤 기존 계산 API 로 서버에서 다시 구한다. 저장값을 그대로
믿지 않으므로 입수량 규칙이 바뀌어도 어긋나지 않고, 계산 결과에서 사라진
항목은 제외한 건수를 알려준다. 같은 제목으로 저장하면 덮어써 목록이 무한히
늘어나지 않는다.
- scripts/sql/cupang_db_003_box_calc_drafts.sql (신규 테이블 + 권한, 멱등)
- db.py: list/get/save/delete_box_calc_draft
- router: GET·POST /cupang/api/box-calc/drafts, GET·DELETE /{id}
- box_calc.html: [임시 저장]·[불러오기] 버튼 + 목록 대화상자
This commit is contained in:
@@ -809,6 +809,37 @@ body.cpg-dragging { cursor: grabbing; user-select: none; }
|
||||
.cpg-dist-card.is-drop-ready { outline: 2px dashed var(--color-rich-black); outline-offset: 2px; }
|
||||
.cpg-dist-card.is-drop-ready .cpg-dist-center { border-color: var(--color-midtone-gray); }
|
||||
|
||||
/* 임시 저장 / 불러오기 대화상자 */
|
||||
.cpg-draft-box { width: min(520px, calc(100vw - 32px)); }
|
||||
.cpg-draft-saveact { display: flex; align-items: center; gap: 8px; }
|
||||
.cpg-draft-h4 {
|
||||
margin: 6px 0 0;
|
||||
padding-top: 10px;
|
||||
border-top: 1px solid var(--color-subtle-ash);
|
||||
font-size: 13px; font-weight: 700;
|
||||
}
|
||||
.cpg-draft-list {
|
||||
max-height: 260px; overflow-y: auto;
|
||||
border: 1px solid var(--color-subtle-ash); border-radius: 8px;
|
||||
}
|
||||
.cpg-draft-list > p { margin: 0; padding: 12px; font-size: 13px; }
|
||||
.cpg-draft-row {
|
||||
display: flex; align-items: center; gap: 6px;
|
||||
padding: 7px 10px;
|
||||
}
|
||||
.cpg-draft-row + .cpg-draft-row { border-top: 1px solid var(--color-ghost-gray); }
|
||||
.cpg-draft-row:hover { background: var(--color-ghost-gray); }
|
||||
.cpg-draft-rname {
|
||||
flex: 1 1 auto; min-width: 0; font-size: 13px; font-weight: 600;
|
||||
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
||||
}
|
||||
.cpg-draft-rmeta {
|
||||
flex: 0 0 auto;
|
||||
font-family: var(--font-geist-mono);
|
||||
font-size: 11px; color: var(--color-midtone-gray);
|
||||
}
|
||||
.cpg-draft-foot { display: flex; justify-content: flex-end; }
|
||||
|
||||
/* 대화상자 센터 버튼 목록 */
|
||||
.cpg-dlg-centers {
|
||||
display: flex;
|
||||
|
||||
Reference in New Issue
Block a user