Commit Graph

3979 Commits

Author SHA1 Message Date
SeongHyun Kim a29691c31e design: 체크리스트 버튼 우측 정렬 + 타이머 최상단 고정 및 크기 확대
- ChecklistRowItem 우측 입력 영역을 justify-center → justify-end로 변경
- 리스트 모드에서 GroupTimerHeader를 스크롤 컨테이너 바깥(최상단)으로 이동
- 타이머 숫자 폰트 26px → 38px, 경과 시간 폰트 14px → 16px
- GroupTimerHeader의 sticky 제거 (외부 배치로 자연스럽게 상단 고정)
2026-03-26 17:33:07 +09:00
SeongHyun Kim 3249611cfc pop-work-detail: 디자인 v2 전면 개편
- 글로시/입체감 버튼 스타일 (GlossyButton 컴포넌트 추가)
- 체크리스트 좌정보/우입력 분할 레이아웃 (여백 최소화)
- 타이머 sticky 고정 + 시작/일시정지/재개 전환 토글
- 풋터 3버튼 제거 → 각 그룹 하단에 작업완료 버튼 배치
- 필수 항목 미체크 시 다음 공정 탭 전환 차단
- 전체 글자 크기 확대 (버튼 18px+, 항목명 15px, 타이머 26px)
- 배경 흰색 유지
2026-03-26 17:25:57 +09:00
SeongHyun Kim 1128a4c278 fix: 대시보드 KPI 글자 크기 반응형 + globals.css !important 예외 처리
ResizeObserver로 컨테이너 크기에 비례하는 동적 폰트 크기 적용.
globals.css의 font-size: 16px !important에서 kpi-dynamic-font 클래스 제외.
2026-03-26 17:05:11 +09:00
SeongHyun Kim cda7e7bbfe feat: KPI 카드 글자 크기를 컨테이너 크기에 비례하도록 개선
ResizeObserver로 실제 컨테이너 픽셀 크기를 감지하여
숫자·라벨·단위 폰트 크기를 동적으로 계산한다.
기존 고정 @container Tailwind 브레이크포인트 방식 대체.
- 숫자: 컨테이너 높이의 42~62% (표시 요소 수에 따라 조정)
- 너비 기준 35% 캡으로 가로로 매우 넓은 셀도 적절히 제한
- 라벨: 높이의 13%, 단위: 숫자의 40%, 추세: 높이의 9%
- valueFontSize(xs/sm/base/lg/xl)는 전체 배율로 계속 동작
2026-03-26 15:03:47 +09:00
SeongHyun Kim 761100a176 feat(pop-dashboard): KPI 카드 글자 크기 제어 및 단위 표시 개선
- ItemStyleConfig에 valueFontSize 옵션 추가 (xs/sm/base/lg/xl)
- KpiCard: valueFontSize에 따라 숫자/단위/라벨 크기 일괄 조정
- 단위 표시: kpiConfig.unit 우선, item.unit fallback 지원 (레거시 호환)
- DashboardItem 타입에 unit, subLabel 최상위 필드 추가 (기존 데이터 호환)
- 4479 화면 config 업데이트: valueFontSize=xl, kpiConfig.unit 설정
2026-03-26 14:43:47 +09:00
SeongHyun Kim bf42f27440 chore: pop-icon.tsx 디버그 console.log 2줄 제거 2026-03-26 14:06:47 +09:00
SeongHyun Kim 8db6b4984b feat: pop-work-detail에 PLC 데이터 섹션 추가
- types.ts: PlcDataConfig 인터페이스 추가, ResultSectionConfig에 plcConfig 필드 추가
- PopWorkDetailConfig.tsx: PLC 데이터 설정 패널 구현
  - 외부 DB 연결 선택 -> 테이블 -> 컬럼 순차 선택
  - 디바이스/태그 유니크값 자동 조회
  - 표시 설정 (라벨, 단위, 갱신주기, 표시방식)
  - 매핑 저장 설정 (대상 테이블/컬럼, 모드)
- PopWorkDetailComponent.tsx: PLC 데이터 런타임 표시 구현
  - 외부 DB에서 값 주기적 폴링
  - 큰 숫자/게이지 표시 + PLC 자동 배지
  - 수동 입력 fallback 제공
  - 매핑 저장 ON 시 값 변경 시 대상 테이블에 저장
2026-03-25 17:26:51 +09:00
SeongHyun Kim 49da393f17 fix: PopFieldComponent preview fetch에 json_extract_lookup 처리 추가
컴포넌트 마운트 시 cart_items.row_data에서 코드값을 추출한 후
참조 테이블에서 표시값을 조회하는 json_extract_lookup을
preview fetch에도 추가한다.
2026-03-25 16:08:32 +09:00
SeongHyun Kim dd3b226917 feat(pop-profile): 앱 모드(풀스크린) 메뉴 항목 추가
POP 프로필 팝오버에 "앱 모드" 메뉴를 추가한다.
Fullscreen API로 브라우저를 전체화면 전환하여 앱처럼 사용 가능.
- showAppMode 설정 옵션 추가 (기본 활성화)
- 풀스크린 진입: document.documentElement.requestFullscreen()
- 풀스크린 해제: document.exitFullscreen()
- 상태에 따라 아이콘/텍스트 전환 (Maximize2/Minimize2, 앱 모드/앱 모드 해제)
- fullscreenchange 이벤트 리스너로 상태 동기화
- 디자이너 설정 패널에 "앱 모드 (풀스크린)" 토글 추가
2026-03-25 15:54:26 +09:00
SeongHyun Kim 6262ddb76b feat(pop-work-detail): combined-final 디자인 시안 적용 — 사이드바 레이아웃
확정된 combined-final.html 시안을 기반으로 PopWorkDetailComponent 전면 리디자인:
레이아웃 구조 변경:
- 탭 바 → 좌측 사이드바(w-52) + 우측 콘텐츠 영역 구조로 전환
- 모달 헤더: "작업 상세" + 작업지시번호 + 닫기(X) 버튼
- 정보바: #1a1a2e 다크 배경, gap-8 간격, label(white/40) + value(white)
- 사이드바: 페이즈별 그룹 (아이콘 + 상태색 + 진행률), 실적 그룹 포함
- KPI 카드: 콘텐츠와 함께 스크롤 (44px/800weight, tabular-nums, divider)
- 풋터: 48px 높이 3버튼 (border-2 + rounded-xl)
스크롤 구조:
- 사이드바: overflow-y-auto (자체 스크롤, thin scrollbar)
- 콘텐츠: overflow-y-auto (KPI + 체크리스트 + 이력 함께 스크롤)
- 정보바 + 풋터: flex-shrink-0 (고정)
스타일 변경:
- DESIGN 토큰: kpi.valueSize 40→44, weight 700→800, section.titleSize 16→13
- 섹션 제목: text-xs uppercase tracking-widest text-gray-400
- 실적 입력: native input + rounded-xl, 2xl font, color-coded borders
- 불량 유형: 카드형 UI (rounded-xl border, severity badge)
- 등록 이력: table 형태 (차수/생산수량/양품/불량/누적/시각)
- GroupTimerHeader: px-8 간격, 미니멀 스타일
기능 유지:
- step 모드 + list 모드 모두 사이드바 구조 안에서 정상 동작
- 체크리스트 입력/저장, 그룹 타이머, 실적 등록/이력 모두 보존
- 2단계 확인 (작업완료), 불량등록 연동 유지
2026-03-25 15:01:53 +09:00
SeongHyun Kim bb6e17ec28 refactor(pop-work-detail): 사이드바→탭 전환, KPI 카드, 풋터 액션바 도입
리서치 반영 UX 구조 대폭 변경:
- 좌측 사이드바(220px) → 상단 탭 바(48px)로 전환 (작업 전|작업 중|작업 후|실적)
- 탭마다 진행률 표시 (예: "작업 전 2/5")
- 고정 헤더: 진한 배경(#263238) + 흰색 텍스트로 작업 정보 표시
- KPI 카드 상시 표시: 접수량/작업완료/잔여/불량 (40px bold, 색상 구분)
- 고정 풋터 액션바: 일시정지(황)/불량등록(적)/작업완료(녹) 3버튼
- 작업완료 2단계 확인 (클릭 → "정말 완료?" 확인)
- 배경색 #F5F5F5 (공장 조명 눈부심 방지)
- 체크리스트 행: 좌측 상태 바 (완료=녹, 필수=적, 기본=회)
- ChecklistRowItem 래퍼로 행 전체 터치 영역 + 시각 피드백
- DESIGN 토큰 확장: tab, footer, header, kpi, bg 추가
- COLORS 확장: kpiInput, kpiComplete, kpiRemaining, kpiDefect 추가
- step 모드와 list 모드 모두 탭 구조 안에서 정상 동작
2026-03-25 11:30:54 +09:00
SeongHyun Kim 525237d42d style(pop-work-detail): ISA-101 디자인 토큰 도입 및 크기 수정
- DESIGN 상수 도입 (button, input, stat, section, sidebar, nav, infoBar, defectRow)
- COLORS 상수 도입 (good, defect, complete, warning, info)
- 버튼 높이: 44px → 56px (ISA-101 장갑 터치 기준)
- 핵심 숫자(수량/실적): 18px → 36px (2-3m 가독성)
- 섹션 제목/라벨: 14px → 16px (1m 가독성)
- 입력 필드 높이: 44px → 56px
- 불량 유형 행 높이: 40px → 56px
- 사이드바 너비: 208px → 220px, 항목 패딩 확대
- 기능 변경 없음 (디자인만 수정)
2026-03-25 10:57:29 +09:00
SeongHyun Kim b677840952 chore: Playwright 테스트 파일을 관제탑(My-agent)으로 이관
테스트 파일은 ERP-node 프로젝트가 아닌 My-agent에서 관리한다.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:23:55 +09:00
SeongHyun Kim 2da1532e65 chore: .gitignore에 Playwright 테스트 파일 제외
테스트 파일은 My-agent 관제탑에서 별도 관리한다.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:23:14 +09:00
SeongHyun Kim e8fe077369 chore: .gitignore에 test-results, .cursor 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:16:24 +09:00
SeongHyun Kim bda77ef844 chore: Playwright 테스트 설정 및 E2E 테스트 추가
pop-cart-outbound 브라우저 테스트 시나리오 10개 포함.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:16:24 +09:00
SeongHyun Kim a8bb72050f Merge branch 'feature/fix-4579-customer-name' into ksh-cart-outbound-test 2026-03-24 19:14:42 +09:00
SeongHyun Kim 9afe98ec60 feat: pop-field에 json_extract_lookup valueSource 추가
cart_items.row_data에서 코드값(partner_id)을 추출한 후
참조 테이블(customer_mng)에서 표시값(customer_name)을 조회하는
json_extract_lookup 기능을 추가한다.
화면 4579(출고 확정)에서 거래처명이 표시되지 않는 문제를 해결한다.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:14:34 +09:00
SeongHyun Kim 4c113f2b8e feat: pop-cart-outbound 출고 전용 장바구니 카드 컴포넌트 추가
출고(판매/기타/외주) 전용 카드 리스트 컴포넌트를 신규 생성한다.
- 세로형 카드 레이아웃: 헤더 + 스탯 그리드 + 수량 입력 + 담기/취소
- ISA-101 산업 현장 디자인 토큰 (56px 버튼, 36px 숫자)
- useCartSync 훅 연동, 이벤트 버스 filter/collect/save 지원
- 디자이너 설정 패널 3탭 (데이터/카드/장바구니)
- React key prop fallback 패턴 적용 (sf.id || idx)
- PopComponentType, ComponentPalette, PopRenderer 레지스트리 등록
- @playwright/test devDependency 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 18:34:05 +09:00
SeongHyun Kim 8ee6d75b3d fix: pop-button showCartBadge 속성으로 장바구니 모드 활성화
cart-save 태스크 없이 배지만 표시하는 경우에도 isCartMode가
활성화되도록 showCartBadge 속성 조건을 추가한다.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 18:33:53 +09:00
SeongHyun Kim 7e54940963 fix: 가나다 필터 검색어 입력 시 전체 범위 검색으로 수정
검색어 입력 시 activeFilterTab(초성/알파벳) 필터가 동시 적용되어
검색 결과가 현재 탭 내로 제한되던 문제를 수정한다.
searchText가 있으면 필터 탭을 무시하고 전체 데이터에서 검색한다.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 18:33:47 +09:00
SeongHyun Kim cbe3242f3a fix: Docker 환경 health check package.json 경로 오류 수정
require("../../package.json")이 Docker 컨테이너(/app/src/)에서
모듈을 찾지 못해 서버가 크래시하는 문제를 try-catch로 해결한다.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 11:59:45 +09:00
SeongHyun Kim 29640063a8 merge: health-check-version (자동 파이프라인) 2026-03-24 11:50:31 +09:00
SeongHyun Kim d061240498 feat: add version info to health check endpoint
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:37:54 +09:00
SeongHyun Kim c54364312a chore: frontend package-lock.json 동기화
npm install로 @tanstack/react-virtual 등 누락된 의존성을 설치한다.
2026-03-23 10:42:17 +09:00
SeongHyun Kim b5e48f0b12 fix: PopCardListV2Component nullish coalescing 연산자 괄호 추가
SWC 빌더에서 ?? 와 || 혼용 시 명시적 괄호를 요구하는 문법 에러를 수정한다.
2026-03-23 10:41:57 +09:00
SeongHyun Kim 678e5fa368 Merge branch 'ksh-v2-work' into main
POP MES 전용 카드 + 디자인 감사 + 장바구니 분리 + 체크리스트/실적 관리 기능을 main에 통합한다.
주요 병합 내용:
- mes-process-card 전용 카드 + batch_done 워크플로우 + 실적 관리 강화
- MES 불량 처분 체계(disposition 3종) + 공정 흐름 스트립 필/칩 UI 개편
- MES 다중작업자 분할접수 4대 연쇄 버그 근본 해결
- MES 체크리스트 자동 복사 + 구조적 버그 3건 수정
- MES 카드 산업용 태블릿 UI 리디자인 (10인치 터치 최적화)
- MES 상태 탭 카드 내장 + pop-search 레거시 정리 + 하위 테이블 자동 판단
- pop-card-list-v2 설정 패널 MES 간소화 + 내 작업 표시 3모드
- BLOCK DETAIL Phase 4: 그룹별 타이머, 터치 최적화 UI, DB 저장 버그 수정
- POP 디자인 감사 + WYSIWYG 정렬 + MES/장바구니 분리
- POP 장바구니 입고 워크플로우 수정 및 접근성/UX 개선
- POP 뷰어 헤더 제거 + 디자이너-뷰어 그리드 칸 수 불일치 수정
- PopFieldConfig JsonKeySelect 개선
충돌 해결: 1건 (.gitignore - 양쪽 추가 항목 통합)
2026-03-23 10:31:45 +09:00
SeongHyun Kim da9bce2301 fix: POP 장바구니 입고 워크플로우 수정 및 접근성/UX 개선
장바구니(cart) 기반 구매입고 흐름에서 버튼 동작, 검색 접근성,
필터 안내 메시지 기능을 수정하여 실제 운영 시나리오에서의
안정성을 확보한다.
[pop-button 장바구니 모드 판단 수정]
- isCartMode: v1 preset뿐 아니라 v2 tasks에 cart-save가 포함된
  경우에도 장바구니 모드로 인식하도록 개선
- resolvedCartScreenId: v2 tasks의 cartScreenId도 참조
- 장바구니 모드 분기를 v2 tasks 처리보다 먼저 실행하여
  cart-save 버튼이 정상 동작하도록 순서 변경
[pop-search 아이콘 카드 접근성]
- IconView의 div 카드에 role="button", tabIndex={0},
  onKeyDown(Enter/Space) 추가
- 브라우저 자동화 및 키보드 사용자가 아이콘 카드를
  인터랙티브 요소로 인식 가능
[필터 필수 안내 메시지 기능]
- pop-card-list(장바구니 목록): requireFilter, requireFilterMessage
  설정 추가, 필터 미선택 시 커스텀 안내 문구 표시
- pop-card-list-v2(MES 공정흐름): hideUntilFilteredMessage
  설정 추가, 기존 필터 전 숨김에 커스텀 문구 지원
- 양쪽 설정 패널에 안내 문구 입력 UI 추가
[원본 화면 선택 Combobox 전환]
- PopCardListConfig 장바구니 모드의 원본 화면 선택을
  Select에서 검색 가능한 Combobox로 변경
- 로그인 계정의 companyCode로 화면 목록 필터링 적용
2026-03-23 10:26:06 +09:00
kjs ca2af56aad Merge pull request 'chpark-sync' (#425) from chpark-sync into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/425
2026-03-23 09:36:34 +09:00
kjs 20126042af Merge branch 'feat/fleet-sso-webview' of https://g.wace.me/chpark/vexplor 2026-03-23 09:21:59 +09:00
SeongHyun Kim 461ff6dbf7 refactor: POP 디자인 감사 + WYSIWYG 정렬 + MES/장바구니 분리 + 장바구니 코드 제거
POP 컴포넌트 전반의 디자인 일관성을 확보하고, 디자이너-뷰어 간 WYSIWYG를
달성하며, MES 공정흐름 컴포넌트에서 장바구니 코드를 완전 분리한다.
[POP 디자인 종합 감사]
- PopRenderer 고스트 보더 제거 (border-2 bg-white -> 투명 래퍼)
- 하드코딩 배경색 -> CSS 변수 hsl(var(--background))
- 빈 상태 메시지 border-dashed bg-muted/30 제거
- 콘텐츠 컴포넌트만 선택적 보더 (rounded-lg border-border/40 bg-card)
[뷰어-디자이너 WYSIWYG 통일]
- PopRenderer 행 높이: 디자이너/뷰어 모두 고정 24px (minmax 제거)
- page.tsx mx-auto + maxWidth 제거 -> 뷰어 전체 폭 채움
- pop-icon 셀 내 스케일링 (maxWidth/maxHeight 100% + aspectRatio)
- pop-icon 라벨 표시 + 배경 투명/아이콘 색상 설정 UI 추가
- pop-profile 반응형, pop-button 오버플로 클리핑
[마키(흐르는 텍스트) 추가]
- pop-text에 marquee 옵션 (marqueeSpeed, marqueeIcon 설정)
- CSS animation + paddingRight 100vw 연속 스크롤
[컴포넌트 이름 명확화]
- pop-card-list-v2: "카드 목록 V2" -> "MES 공정흐름"
- pop-card-list: "카드 목록" -> "장바구니 목록"
[MES 공정흐름에서 장바구니 코드 완전 제거]
- PopCardListV2Component: useCartSync, parseCartRow, isCartListMode,
  selectedKeys, cartRef, cart 이벤트 3개, fetchCartData,
  handleDeleteItem/UpdateQuantity/CartAdd/Cancel/Delete 제거 (~250줄)
- cell-renderers: CartButtonCell, DynamicLucideIcon, ShoppingCart 제거 (~50줄)
- PopCardListV2Config: cart-button 셀 편집 UI 제거
- index.tsx: cart_updated/cart_save_completed/selected_items/
  cart_save_trigger/confirm_trigger 이벤트 메타 제거
- migrate.ts: cartAction/cartListMode 마이그레이션 제거
- types.ts: PopCardListV2Config cartAction/cartListMode 필드,
  CardCellDefinitionV2 cart 4필드, CardCellType "cart-button" 제거
- pop-card-list(장바구니 목록)의 타입/훅은 그대로 유지
- 매 Phase마다 tsc --noEmit 검증, 신규 에러 0건
2026-03-20 16:31:25 +09:00
kjs df86350387 Merge remote-tracking branch 'upstream/main' 2026-03-20 16:17:31 +09:00
kjs e500231474 Merge remote-tracking branch 'upstream/main' 2026-03-20 16:17:26 +09:00
kjs 64e3def7bf Merge pull request 'jskim-node' (#424) from jskim-node into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/424
2026-03-20 16:17:11 +09:00
kjs ebbea636b5 Merge branch 'main' into jskim-node 2026-03-20 16:17:03 +09:00
kjs 875f3a7acb Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-20 16:16:51 +09:00
kjs a6b96a6709 1 2026-03-20 16:16:50 +09:00
kjs 91a0375928 Merge remote-tracking branch 'upstream/main' 2026-03-20 16:10:57 +09:00
kjs 0b81c53127 Merge pull request 'jskim-node' (#423) from jskim-node into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/423
2026-03-20 16:10:31 +09:00
kjs 01a7666b53 Merge branch 'main' into jskim-node 2026-03-20 16:10:24 +09:00
kjs 8c29225043 feat: enhance application with receiving management and global font size adjustments
- Added new route for receiving management, allowing users to manage incoming goods effectively.
- Updated global CSS to unify font sizes across the application, ensuring a consistent user experience.
- Modified customer and sales order fetching logic to improve data retrieval and handling, including enhanced error logging for better debugging.

These changes aim to streamline the receiving process and improve overall UI consistency within the application.
2026-03-20 16:09:39 +09:00
kjs a5eba3a4ca feat: implement routing and work standard management features
- Added new API endpoints for retrieving routing versions and managing work standards associated with work instructions.
- Implemented functionality to update routing versions for work instructions, enhancing the flexibility of the work instruction management process.
- Introduced a new modal for editing work standards, allowing users to manage detailed work items and processes effectively.
- Updated frontend components to integrate routing and work standard functionalities, improving user experience and data management.

These changes aim to enhance the management of work instructions and their associated processes, facilitating better tracking and organization within the application.
2026-03-20 14:18:44 +09:00
Johngreen a238ba3623 feat: V2 WebView 컴포넌트 + SSO 연동 구현
- V2WebView 컴포넌트: iframe 기반 외부 웹 임베딩
- SSO 연동: 현재 로그인 JWT를 sso_token 파라미터로 자동 전달
- /api/system/raw-token: 범용 JWT 토큰 조회 API
- V2WebViewConfigPanel: URL, SSO, sandbox 등 설정 UI + 개발자 가이드

Made-with: Cursor
2026-03-20 13:56:24 +09:00
kjs 199fa60ef5 feat: add BOM materials retrieval functionality
- Implemented a new API endpoint for retrieving BOM materials based on item codes, enhancing the ability to manage and view component materials.
- Added necessary SQL queries to fetch BOM details, ensuring that the data is filtered by company code for multi-tenancy support.
- Updated frontend components to integrate BOM materials fetching, allowing for better visibility and management of materials in the process workflow.

These changes aim to streamline the management of BOM materials, facilitating better tracking and organization within the application.
2026-03-20 13:46:30 +09:00
kjs ffcede7e66 feat: enhance design task management page with employee selection and filtering
- Integrated a combobox for selecting employees, allowing users to assign tasks more efficiently.
- Implemented fetching of employee data to populate the selection options, improving user experience.
- Added functionality to filter tasks based on the current user's related tasks, enhancing task management capabilities.
- Updated the modal states for better handling of designer assignments and task interactions.

These changes aim to streamline the design task management process, facilitating better organization and assignment of tasks within the application.
2026-03-20 11:58:01 +09:00
SeongHyun Kim 73674385be feat: MES 카드 산업용 태블릿 UI 리디자인 (10인치 터치 최적화)
산업현장 10인치 태블릿에서의 가독성과 터치 조작성을 대폭 개선한다.
HTML 시안(pop-design-v2)을 기반으로 기존 기능을 모두 보존하면서 디자인만 변경.
[카드 헤더 재구성]
- 품목명(item_name) 20px bold 강조 (기존: 미표시)
- WO번호+공정명 14px 보조 정보로 전환 (기존: WO번호 13px 주인공)
- 상태 배지 14px rounded-full pill (기존: 10px)
- 재작업 배지 12px (기존: 9px)
- 좌측 컬러바 4px (기존: 3px)
[메트릭 3단 통일 구조]
- 접수가능: 컨텍스트 + 파랑 박스(접수가능 N EA)
- 진행중: 컨텍스트 + 주황 박스(생산 N / N EA) + 칩(양품/불량/잔여)
- 완료: 컨텍스트+수율pill + 초록 박스(최종양품 N EA) + 칩
- 재작업: 컨텍스트 + 주황 박스(재작업 수량 N EA)
- 핵심 수량 36px extrabold, 컨텍스트 14px (기존: 18px/10px)
[카드 높이 일관성]
- 메트릭 영역 flex-1 적용: 같은 행의 카드들이 동일 높이로 정렬
- 공정 흐름/버튼이 항상 카드 하단 고정
[공정 흐름 노드 기반 디자인]
- 텍스트 칩 -> 40x40px 노드 박스 + 라벨 (기존: 10px 칩)
- 커넥터 라인으로 공정 연결 시각화
[액션 버튼 대형화]
- h-14(56px) full-width rounded-xl 17px bold (기존: h-7 28px 11px)
[MES 카드 래퍼 패딩]
- MES 카드 전용 p-1 제거 (카드 내부 충분한 패딩 px-5 보유)
2026-03-20 10:51:26 +09:00
SeongHyun Kim 17fb815513 feat: MES 상태 탭을 카드 컴포넌트에 내장
별도 pop-status-bar 컴포넌트 배치/연결 없이 카드 상단에
MES 고정 상태 탭(전체/대기/접수가능/진행/완료)을 내장한다.
[내장 상태 탭 UI]
- MES_STATUS_TABS 상수: waiting/acceptable/in_progress/completed 고정
- 카드 그리드 상단에 pill 형태 탭 렌더링
- 상태별 카운트 + "전체"는 클론 제외 originalCount 표시
- showStatusTabs && hasProcessFlow 조건부 표시
[자체 카운트/필터]
- statusCounts useMemo: filteredRows 기준 VIRTUAL_SUB_STATUS 집계
- statusFilteredRows useMemo: 선택 탭으로 내부 필터
- displayCards/hasMoreCards/totalPages가 statusFilteredRows 기준으로 동작
- 탭 전환 시 currentPage=1 리셋
[외부 status-bar 하위 호환]
- effectiveExternalFilters: showStatusTabs일 때 _source="status-bar"
  필터 무시 (내장 탭으로 대체, 충돌 방지)
- all_rows 이벤트 발행 유지 (기존 pop-status-bar 연결 안 깨짐)
- rowsForStatusCount: showStatusTabs일 때 filteredRows 직접 반환
[설정 패널]
- 고급 설정에 "상태 탭 내장" Switch 토글 추가
- showStatusTabs?: boolean 타입 추가 (기본 false)
2026-03-19 18:01:57 +09:00
kjs 460757e3a0 feat: add work instruction management features
- Introduced new routes and controllers for managing work instructions, including functionalities for listing, saving, and previewing work instruction numbers.
- Implemented company code filtering for multi-tenancy support, ensuring that users can only access their respective work instructions.
- Added a new Work Instruction page in the frontend for comprehensive management, including search and registration functionalities.

These changes aim to enhance the management of work instructions, facilitating better tracking and organization within the application.
2026-03-19 17:52:17 +09:00
kjs c81594b137 Merge branch 'gbpark-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-19 17:21:00 +09:00
kjs 722cb536ed feat: add design request management page
- Introduced a new Design Request page for managing design requests, including functionalities for creating, updating, and deleting requests.
- Implemented client-side filtering and progress tracking for design requests, enhancing user experience and data management.
- Integrated a combobox for selecting customers and orders, improving the efficiency of data entry.
- Added necessary types and styles for better organization and visual representation of design request statuses.

These changes aim to provide a comprehensive interface for managing design requests, facilitating better tracking and organization within the application.
2026-03-19 17:20:45 +09:00