영업관리 4개 메뉴 검색폼 wace 일치 + 공통 UX(초기화·date input) 정비
- 검색 폼 정합성: wace JSP `<!-- 주석처리된 검색필터 -->` 블록까지 잘못 이식했던 부분 정정 - 견적: 11→7개 (제품구분/국내해외/유무상/요청납기 제거) - 주문: 13→9개 (제품구분/국내해외/유무상/견적환종 제거) - 매출: 10→11개 (출하지시상태 제거 + 제품구분·국내/해외 추가, JSP 순서로 재배치) - 판매: 변경 없음 (원본 그대로 일치) - 매출 백엔드: SaleListFilter에 productType/nation 추가, getRevenueList에 partObjId/serialNo/orderDate/productType/nation 5개 필터 처리 - 공통 UX - 초기화 버튼을 4개 메뉴 동일하게 통일 (variant=ghost, 버튼 영역 끝) - <Input type="date">는 빈 값 placeholder 숨김 + 캘린더 아이콘 숨김 + 영역 클릭으로 picker 자동(showPicker) - 신규 공통 컴포넌트: CommCodeSelect/CustomerSelect/CustomerSearchDialog/PartSelect/ItemSearchDialog + backend salesCommonRoutes - 문서: 01/02/04 검색 폼 표를 활성/비활성 분리 형식으로 정정, README에 8. 공통 UX 규칙 섹션 신설 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
|
||||
### 1.1 검색 폼 (`#plmSearchZon`)
|
||||
|
||||
**활성 7개** (estimateList_new.jsp line 1110~1170):
|
||||
|
||||
| 필드 | name/id | 타입 | 비고 |
|
||||
|---|---|---|---|
|
||||
| 주문유형 | `category_cd` | select2 (공통코드) | |
|
||||
@@ -16,10 +18,15 @@
|
||||
| 시리얼 | `search_serialNo` | text | |
|
||||
| 결재상태 | `appr_status` | select2 (대기/상신중/완료/반려/불필요) | |
|
||||
| 접수일 from~to | `receipt_start_date` / `receipt_end_date` | date_icon | |
|
||||
| 제품 | `product` | select2 (공통코드) | |
|
||||
| 지역 | `area_cd` | select2 (공통코드) | |
|
||||
| 유/무상 | `paid_type` | select2 (공통코드) | |
|
||||
| 요청납기 from~to | `due_start_date` / `due_end_date` | date_icon | |
|
||||
|
||||
**비활성 (JSP line 1174~1203 `<!-- 주석처리된 검색필터 - 필요시 활성화 -->` 블록 안)** — 이식 대상 아님:
|
||||
|
||||
| 필드 | name/id |
|
||||
|---|---|
|
||||
| 제품 | `product` |
|
||||
| 지역 | `area_cd` |
|
||||
| 유/무상 | `paid_type` |
|
||||
| 요청납기 from~to | `due_start_date` / `due_end_date` |
|
||||
|
||||
### 1.2 버튼 영역 (`.plm_btn_wrap`)
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
### 1.1 검색 폼 (`#plmSearchZon`)
|
||||
|
||||
**활성 9개** (orderMgmtList.jsp line 1109~1182):
|
||||
|
||||
| 필드 | name | 타입 | 비고 |
|
||||
|---|---|---|---|
|
||||
| 주문유형 | `category_cd` | select2 (공통코드) | |
|
||||
@@ -18,10 +20,15 @@
|
||||
| 수주상태 | `contract_result` | select2 (공통코드) | |
|
||||
| 발주일 from~to | `order_start_date` / `order_end_date` | date_icon | |
|
||||
| 요청납기 from~to | `due_start_date` / `due_end_date` | date_icon | |
|
||||
| 제품 | `product` | select2 | |
|
||||
| 지역 | `area_cd` | select2 | |
|
||||
| 유/무상 | `paid_type` | select2 | |
|
||||
| 환종 | `contract_currency` | select2 | |
|
||||
|
||||
**비활성 (JSP line 1184~ `<!-- 주석처리된 검색필터 -->` 블록 안)** — 이식 대상 아님:
|
||||
|
||||
| 필드 | name |
|
||||
|---|---|
|
||||
| 제품 | `product` |
|
||||
| 지역 | `area_cd` |
|
||||
| 유/무상 | `paid_type` |
|
||||
| 환종 | `contract_currency` |
|
||||
|
||||
### 1.2 버튼 영역
|
||||
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
### 1.1 검색 폼 (판매와 유사하나 매출 항목 추가)
|
||||
|
||||
**활성 11개** (revenueMgmtList.jsp line 813~883):
|
||||
|
||||
| 필드 | name | 타입 | 비고 |
|
||||
|---|---|---|---|
|
||||
| 주문유형 | `orderType` | select2 | |
|
||||
@@ -24,13 +26,18 @@
|
||||
| **매출마감 기간** | `salesDeadlineFrom` / `salesDeadlineTo` | date_icon | |
|
||||
| 발주일 from~to | `orderDateFrom` / `orderDateTo` | date_icon | |
|
||||
| 출하일 from~to | `shippingDateFrom` / `shippingDateTo` | date_icon | |
|
||||
| 유/무상 | `paymentType` | select2 | |
|
||||
| 수주상태 | `orderStatus` | select2 | |
|
||||
| 요청납기 from~to | `requestDateFrom` / `requestDateTo` | date_icon | |
|
||||
| 출하상태 | `shippingStatus` | select2 | |
|
||||
| 출하방법 | `shippingMethod` | select2 | |
|
||||
| 담당자 | `manager` | select2 | |
|
||||
| 인도조건 | `incoterms` | select2 | |
|
||||
|
||||
**비활성 (JSP line 885~ `<!-- 주석처리된 검색필터 -->` 블록 안)** — 이식 대상 아님:
|
||||
|
||||
| 필드 | name |
|
||||
|---|---|
|
||||
| 유/무상 | `paymentType` |
|
||||
| 수주상태 | `orderStatus` |
|
||||
| 요청납기 from~to | `requestDateFrom` / `requestDateTo` |
|
||||
| 출하상태 | `shippingStatus` |
|
||||
| 출하방법 | `shippingMethod` |
|
||||
| 담당자 | `manager` |
|
||||
| 인도조건 | `incoterms` |
|
||||
|
||||
Hidden: `revenueMode=Y` (shipment_log 기반 조회 모드)
|
||||
|
||||
|
||||
@@ -144,3 +144,38 @@ import { useAuth } from "@/hooks/useAuth";
|
||||
1. **운영 DB 접속해서 누락 테이블 DDL 추출** (`estimate_template`, `estimate_template_item`, `sales_registration`)
|
||||
2. [01-estimate.md](./01-estimate.md) 견적관리 상세 매핑 작성 → 코드 시작
|
||||
3. 마스터 매핑 테이블 설계 (`legacy_id_map`)
|
||||
|
||||
## 8. 공통 UX 규칙 (검색 폼 / 영업관리 4개 메뉴 동일 적용)
|
||||
|
||||
### 8.1 버튼 영역
|
||||
|
||||
상단 우측 버튼 영역에 다음 순서로 배치 — **모든 메뉴 공통**:
|
||||
|
||||
1. `조회` (`variant="outline"` + `<Search>` 아이콘)
|
||||
2. 메뉴 고유 액션 버튼들 (등록/수정/삭제/확정 등)
|
||||
3. **`초기화`** (`variant="ghost"`) — `searchForm` state를 모든 키 빈 값으로 reset
|
||||
|
||||
```tsx
|
||||
<Button size="sm" variant="ghost"
|
||||
onClick={() => setSearchForm({ /* 모든 키 "" */ })}>
|
||||
초기화
|
||||
</Button>
|
||||
```
|
||||
|
||||
### 8.2 date input
|
||||
|
||||
- `<Input type="date">` 사용 시 별도 처리 불필요. 다음은 `Input` 컴포넌트 + `globals.css`에 자동 반영:
|
||||
- 빈 값일 때 `'YYYY/MM/DD'` 자리표시 텍스트 숨김 (data-empty="true" 자동)
|
||||
- 캘린더 아이콘 숨김 (`::-webkit-calendar-picker-indicator { display: none }`)
|
||||
- input 영역 어디 클릭해도 picker 자동 표시 (`showPicker()`)
|
||||
- 위 동작은 `frontend/components/ui/input.tsx` + `frontend/app/globals.css`에서 일괄 처리.
|
||||
|
||||
### 8.3 검색 폼 그리드
|
||||
|
||||
- `grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 gap-x-2 gap-y-1.5 p-2 border rounded-md bg-muted/30`
|
||||
- 라벨: `text-[11px] mb-0.5 block text-muted-foreground`
|
||||
- 입력: `h-8 text-xs` (date는 `px-1 flex-1 min-w-0` 추가)
|
||||
|
||||
### 8.4 wace JSP 주석 함정
|
||||
|
||||
검색 폼 추출 시 JSP 끝부분 `<!-- 주석처리된 검색필터 - 필요시 활성화 -->` 블록은 **이식 대상 아님**. 활성/비활성 분리 표로 문서화. 자세한 내용은 메모리 [feedback_wace_jsp_columns](../../../../.claude/projects/-Users-jhj-vexplor-rps/memory/feedback_wace_jsp_columns.md).
|
||||
|
||||
Reference in New Issue
Block a user