Commit Graph

1646 Commits

Author SHA1 Message Date
kjs
b8860e56e5 refactor: Update category value handling to make menuObjid optional
- Modified the addCategoryValue function to allow menuObjid to be optional, accommodating scenarios where it may not be provided, such as in global management screens.
- Adjusted related service and controller logic to handle the absence of menuObjid gracefully, ensuring that the application remains robust and user-friendly.
- Enhanced the frontend components to reflect these changes, improving the overall user experience when adding category values across multiple companies.
2026-04-10 14:17:35 +09:00
kjs
2733685df7 feat: Refactor table components for improved layout and usability
- Updated the BOM management page to streamline the layout by moving the edit button to the top right for better accessibility.
- Enhanced the DataGrid and EDataTable components to support a no-wrapper option, allowing for sticky headers to function correctly with parent overflow settings.
- Adjusted the Sales Order page to utilize the new noWrapper feature for the table, ensuring consistent styling and behavior.
- Enabled sticky headers in the V2 table list definition for improved data visibility during scrolling.

These changes aim to enhance the user experience by providing a more intuitive and organized interface for managing BOM and sales order data across multiple companies.
2026-04-09 18:09:17 +09:00
kjs
518990171e feat: Enhance monitoring pages with dynamic settings and themes
- Integrated monitoring settings and theme management into the Equipment, Production, and Quality monitoring pages.
- Updated auto-refresh functionality to utilize user-defined settings for refresh intervals.
- Improved UI elements with dynamic theming for better visual consistency across COMPANY_10, COMPANY_16, and COMPANY_29.
- Added settings button to access monitoring configuration, enhancing user experience in managing monitoring preferences.

These changes aim to provide a more customizable and user-friendly interface for monitoring operations across multiple companies.
2026-04-09 15:12:36 +09:00
kjs
fc61a66287 feat: Enhance smart factory schedule management
- Added dailyCount parameter to the upsertSchedule function, allowing for the configuration of daily access limits for users.
- Updated the smartFactoryLog interface to include daily_count, ensuring proper data handling for schedule management.
- Removed the runScheduleNowHandler function from the smartFactoryLogController and adminRoutes, streamlining the API for schedule management.
- Modified the frontend SmartFactoryLogPage to support dailyCount selection, improving user experience in managing schedules.

These changes aim to enhance the flexibility and usability of the smart factory schedule management system, allowing for better control over user access and scheduling operations.
2026-04-07 17:29:03 +09:00
kjs
1b7842c305 feat: Implement smart factory log management features
- Added new API endpoints for retrieving company-specific user lists and sending immediate logs for selected users.
- Enhanced the smartFactoryLogController with functions to handle user retrieval and immediate log sending, improving operational efficiency.
- Updated adminRoutes to include routes for the new functionalities, ensuring proper access control for super admins.
- Refactored the sendSmartFactoryLog function to improve logging and error handling, providing better insights into the log transmission process.

These changes aim to enhance the smart factory log management capabilities, facilitating better user interaction and operational tracking.
2026-04-07 16:45:52 +09:00
kjs
57b64653c0 merge: resolve conflicts accepting incoming changes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 14:44:17 +09:00
kjs
c3e973bb1a feat: Implement smart factory schedule management functionality
- Added new API endpoints for managing smart factory schedules, including retrieval, creation, updating, and deletion of schedules.
- Integrated schedule management into the smart factory log controller, enhancing the overall functionality.
- Implemented a scheduler initialization process to automate daily plan generation and scheduled sends.
- Developed a frontend page for monitoring equipment, production, and quality, with real-time data fetching and auto-refresh capabilities.

These changes aim to provide comprehensive scheduling capabilities for smart factory operations, improving efficiency and operational visibility for users.
2026-04-07 14:16:26 +09:00
SeongHyun Kim
450247026c feat: POP 작업상세 체크리스트 UI를 judgment_criteria 기반으로 매핑
- 백엔드: /api/pop/production/checklist-items/:processId 신규 추가
  process_work_result ⟕ inspection_standard(judgment_criteria) LEFT JOIN으로
  한 번에 반환 (inspection_code 미설정 시 null로 안전)

- 프론트: resolveInputType + normalizeByJudgmentCriteria + normalizeByDetailType
  1순위: judgment_criteria (CAT_JC_01~04) → inspect/numeric_range/ox/select/text
  2순위: detail_type 폴백
    - checklist/equip_inspection → check(토글)
    - inspection/equip_condition/production_result → inspect(숫자 키패드)
    - lookup → input(텍스트)
    - material_input → material(BOM 자재)
  기존 canonical 값은 건드리지 않아 회귀 없음

- fetchData는 전용 API 사용 + 실패 시 기존 dataApi.getTableData로 폴백
2026-04-07 12:06:01 +09:00
SeongHyun Kim
9361b2484a feat: POP 작업상세 체크리스트 터치 UX 개선
- 숫자 키패드 모달 추가 (NumericKeypadModal) — 64x64px 버튼
- input_type별 분기 렌더링:
  * checkbox: 큰 터치 토글 버튼 (확인/미확인) 56px+
  * number: 터치 시 숫자 키패드 모달 (기준치 ±범위 표시)
  * select: 큰 선택 버튼 56px+
  * text: 입력칸 높이 56px로 키움
- MaterialQtyInput 컴포넌트: 자재 투입 수량도 키패드 모달 사용
- 모든 터치 영역 ISA-101 기준 (56px+) 적용
2026-04-07 11:25:01 +09:00
SeongHyun Kim
495a5f034b feat: POP 작업상세 자재투입(material-input) 섹션 UI 구현
- BOM 기반 자재 목록 표시 + 소요량 자동 계산
- 작업자 실제 투입량 입력 (참고 모드 — 유연 입력)
- 기준량 ±20% 범위 검증 + 경고 표시 (차단 아님)
- 투입 이력 테이블 표시
- ISA-101 터치 기준 (입력 56px+, 버튼 56px+)
2026-04-07 10:57:56 +09:00
kjs
822f9ac35a feat: Implement smart factory log functionality
- Added a new controller for managing smart factory logs, including retrieval and statistics endpoints.
- Integrated smart factory log migration to set up the necessary database structure.
- Enhanced the authentication controller to include user name in log submissions.
- Developed a frontend page for displaying and filtering smart factory logs, accessible only to super admins.
- Implemented API calls for fetching logs and statistics, improving data visibility and management.

These changes aim to provide comprehensive logging capabilities for smart factory activities, enhancing monitoring and analysis for administrators.
2026-04-07 10:35:16 +09:00
kjs
cf9f53e4c5 feat: Enhance process and work standard management functionalities
- Updated the processInfoController to allow for flexible use_yn filtering, supporting both "Y" and "N" values along with their corresponding "USE_Y" and "USE_N" mappings.
- Modified the processWorkStandardController to include selected_bom_items in work item details, enabling better management of BOM data.
- Improved the productionPlanService to handle order summaries more effectively, incorporating legacy and detail data through a unified query structure.
- Enhanced the receiving and outbound pages with new filtering and grouping functionalities, improving user experience and data handling.

These changes aim to streamline process management and improve overall functionality across various modules.
2026-04-06 15:50:33 +09:00
kjs
e25ca7beca feat: Enhance outbound and receiving functionalities
- Updated inventory history insertion logic in both outbound and receiving controllers to use consistent field names and types.
- Added a new endpoint for retrieving warehouse locations, improving the ability to manage inventory locations.
- Enhanced the outbound page to include location selection based on the selected warehouse, improving user experience and data accuracy.
- Implemented validation for warehouse code duplication during new warehouse registration in the warehouse management page.

These changes aim to streamline inventory management processes and enhance the overall functionality of the logistics module.
2026-04-03 17:38:14 +09:00
a477295afd Merge branch 'jskim-node' of https://g.wace.me/jskim/vexplor_dev into ycshin-node 2026-04-01 12:27:59 +09:00
kjs
ccb0c8df4c Add environment variable example and update .gitignore
- Created a new .env.example file to provide a template for environment variables, including database connection details, JWT settings, encryption keys, and external API keys.
- Updated .gitignore to include additional test output directories and archive files, ensuring that unnecessary files are not tracked by Git.
- Removed outdated approval test reports and scripts that are no longer needed, streamlining the project structure.

These changes improve the clarity of environment configuration and maintain a cleaner repository.
2026-04-01 12:12:15 +09:00
kjs
18f78a6702 Enhance receiving and sales management functionality
- Updated the getItems function in receivingController to include a division filter, allowing for more refined item retrieval based on division.
- Added state management for continuous input in EquipmentInfoPage, enabling users to clear forms after saving or keep them open for further entries.
- Implemented deletion functionality for selected customer mappings in SalesItemPage, improving data management capabilities.
- Enhanced ShippingOrderPage to visually indicate selected orders, improving user interaction and experience.

These changes collectively improve the efficiency and usability of the receiving and sales management features.
2026-03-31 14:34:43 +09:00
kjs
2d8d78b0b9 Merge branch 'kwshin-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-31 11:19:55 +09:00
4c42cc7b53 feat: 사용자 메일 관리 IMAP 구현
- IMAP 계정 등록/수정/삭제/연결테스트
- SSE 스트리밍으로 메일 목록 로드 (폴더별 지원)
- 메일 상세 조회, 읽음 처리, 삭제(휴지통 이동), 폴더 이동
- 첨부파일 다운로드 (ReadableStream 진행바)
- SMTP 발송, 답장, 전달
- imapConnectionPool, mailCache 서비스
- encryptionService Node 22+ 호환 수정
- authMiddleware query token 지원 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 17:17:20 +09:00
kmh
4e4088eb71 feat: 입고/자재현황/분석리포트 컨트롤러 및 프론트엔드 개선
- receivingController: 헤더-디테일 JOIN 구조로 변경, 검색/조회 로직 개선
- materialStatusController: work_instruction 테이블 기반으로 쿼리 수정
- analyticsReportController: 구매 리포트 company_code 필터링 로직 개선
- material-status 페이지: COMPANY_29/COMPANY_7 프론트엔드 업데이트

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 17:01:26 +09:00
kjs
f980bffed4 Merge branch 'mhkim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-30 11:58:19 +09:00
kmh
b97ca1a1c5 Enhance backend controllers, frontend pages, and V2 components
- Fix department, receiving, shippingOrder, shippingPlan controllers
- Update admin pages (company management, disk usage)
- Improve sales/logistics pages (order, shipping, outbound, receiving)
- Enhance V2 components (file-upload, split-panel-layout, table-list)
- Add SmartSelect common component
- Update DataGrid, FullscreenDialog common components
- Add gitignore rules for personal pipeline tools

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 11:52:03 +09:00
kjs
3c25466c3e Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-30 11:51:45 +09:00
kjs
08a095a8e5 feat: COMPANY_29 및 COMPANY_7 고객 관리 및 부서 관리 페이지 개선
- 부서 등록 시 부서코드 자동 생성 로직 수정
- 고객 관리 페이지에서 거래처 담당자 및 사내 담당자 컬럼 추가
- 고객 관리 페이지에서 사원 목록 로드 기능 추가
- 다중 선택 기능을 위한 포털 구현 및 외부 클릭 시 저장 기능 추가
- 테이블 컴포넌트에서 다중 선택 컬럼 자동 감지 기능 추가

이 커밋은 부서 및 고객 관리 기능을 개선하고, 사용자 경험을 향상시키기 위한 여러 변경 사항을 포함합니다.
2026-03-30 11:51:12 +09:00
SeongHyun Kim
1532184065 feat: field-only INSERT + pop-field key 수정 + 모달 접근성 개선
- popActionRoutes.ts: 카드리스트 없이 필드만으로 INSERT 가능 (field-only 분기)
- PopFieldComponent.tsx: React duplicate key 에러 수정 (staticOptions 문자열 변환 + key fallback)
- pop-field/index.tsx: preview nested map key fallback
- PopViewerWithModals.tsx: 모달 제목 없을 때 sr-only 접근성 처리
- PopWorkDetailComponent.tsx: 모달 내부 헤더 중복 제거 + isInModal 자동 감지
2026-03-30 10:16:27 +09:00
kjs
ac5292f9b0 feat: COMPANY_29 부서 등록 및 사용자 관리 페이지 개선
- 부서 등록 시 자동 생성 부서코드 기능 추가
- 사용자 관리에서 부서 필수 입력 검증 추가
- 품목 정보 페이지에서 입력 필드에 placeholder 추가
- 고객 관리 페이지에서 원본 카테고리 코드 보관 및 빈 문자열을 null로 변환하는 로직 추가
- 판매 주문 페이지에서 품목 검색 필터에 관리품목 선택 기능 추가

이 커밋은 부서 및 사용자 관리 기능을 개선하고, 사용자 경험을 향상시키기 위한 여러 변경 사항을 포함합니다.
2026-03-29 20:04:52 +09:00
SeongHyun Kim
6fe7bfbefc feat: pop-card-list 업그레이드 — cart-outbound 삭제 + 프리셋 + 검사 연동 + UI 수정
- pop-cart-outbound 컴포넌트 완전 삭제 (4개 화면 pop-card-list로 교체 완료)
- 레지스트리/팔레트/타입에서 cart-outbound 참조 제거
- PopRenderer 뷰모드 label prop 제거 (컴포넌트 라벨 노출 버그 수정)
- dataFetcher SUM/AVG varchar CAST 처리 (Dashboard 500 수정)
- PopCardListConfig 장바구니 목록모드 섹션 프리셋 사용 시 숨김
- types.ts에 CardListPresetMode, CardListInspectionConfig 타입 추가
2026-03-27 18:11:08 +09:00
SeongHyun Kim
eacfe60f89 WIP: preset + inspection (임시, 나중에 squash) 2026-03-27 17:05:36 +09:00
SeongHyun Kim
0aef19578a Merge remote-tracking branch 'origin/main' 2026-03-27 10:56:31 +09:00
SeongHyun Kim
590ae8fbb7 fix: pop-work-detail 버튼/입력 크기 원복 (design-v2-final)
- DESIGN.button.height: 56 → 60 원복
- DESIGN.input.height: 56 → 52 원복
- GlossyButton default minHeight: 56 → 60, fontSize: 20 → 18
- 타이머 버튼(시작/일시정지/재개/완료): minHeight 56 → 48, fontSize 20 → 16 원복
- GroupCompleteButton: minHeight 56 → 64, fontSize 20 → 18 원복
- InspectNumericInput 저장버튼: minHeight 56 → 48, fontSize 20 → 16
- InspectNumericInput 입력필드: height 56 → 48
- InspectSelectInput 버튼: minHeight 56 → 52, fontSize 20 → 16
- InspectTextInput 입력/버튼: height 56 → 48, fontSize 20 → 15
- MaterialInputOnly 입력/버튼: height 56 → 48, fontSize 20 → 15
- ResultInputOnly 입력/버튼: height 56 → 44, fontSize 20 → 15
- CheckInputOnly 체크박스: h-10 w-10 → h-8 w-8
- ProcedureInputOnly 체크박스: h-10 w-10 → h-5 w-5
- InputOnlyItem 입력필드: height 56 → 48
- O/X 버튼(InspectOXInput): 56px, 20px 유지 (변경 없음)
2026-03-26 18:09:43 +09:00
SeongHyun Kim
5cad4ed7fd feat(pop-work-detail): 모든 그룹 작업완료 버튼 항상 표시 + 타이머 완료 버튼 추가
- GroupCompleteButton: !isGroupCompleted 조건 제거 → 모든 그룹에서 항상 표시
  - 이미 완료된 그룹에서는 "작업완료됨" 완료 표시 렌더링
  - isGroupCompleted prop 추가
- GroupTimerHeader: isGroupStarted 상태(진행 중/일시정지)에 완료 버튼 추가
  - GlossyButton green variant, onTimerAction("complete") 호출
2026-03-26 17:43:15 +09:00
SeongHyun Kim
f471ce245a feat(pop-work-detail): 작업완료 후 다음 그룹 자동 이동 + 사이드바 숫자 구조 변경
- GroupCompleteButton onComplete: 그룹 완료 처리 후 다음 그룹(같은 phase 또는 다음 phase)으로 자동 이동
- 사이드바 phase 라벨 옆 숫자: 완료/전체 체크리스트 수 → 그룹 개수 (n) 형태로 변경
- 사이드바 각 그룹 항목 옆에 해당 그룹의 체크리스트 완료/전체 수 표시 (g.completed/g.total)
2026-03-26 17:39:42 +09:00
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
kjs
0a6922edeb feat: enhance v2-split-panel-layout component
SplitPanelLayoutComponent, ConfigPanel, types 개선

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 12:12:56 +09:00
kjs
348da95823 Merge branch 'mhkim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-25 18:48:37 +09:00
kjs
70e040db39 Enhance user management and token invalidation features
- Added comprehensive validation for user data during registration and updates, including email format, company code existence, user type validation, and password length checks.
- Implemented JWT token invalidation for users when their status changes or when roles are updated, ensuring security and compliance with the latest policies.
- Introduced a new TokenInvalidationService to manage token versioning and invalidation processes efficiently.
- Updated the admin controller to provide detailed error messages and success responses for user status changes and validations.
- Enhanced the authentication middleware to check token versions against the database, ensuring that invalidated tokens cannot be used.

This commit improves the overall security and user management experience within the application.
2026-03-25 18:47:50 +09:00
kmh
02ac36c94f Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into mhkim-node 2026-03-25 18:39:07 +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
kjs
782ebb1b33 Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-25 15:18:40 +09:00
kjs
df6c479589 Update project memory and enhance table settings functionality
- Updated project memory configuration to reflect recent access counts and timestamps for various components.
- Modified SQL queries in the processInfoController to utilize the correct equipment management table for improved data retrieval.
- Enhanced the TableManagementService to automatically fill display columns for entity types during both creation and update processes.
- Introduced new TableSettingsModal components across multiple pages for better user control over table configurations.
- Improved the DynamicSearchFilter component to accept external filter configurations, enhancing the filtering capabilities for various data grids.
2026-03-25 15:18:38 +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
kmh
e67e43cd7d feat: update shipping-plan page and FieldDetailSettingsModal
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 14:36:57 +09:00
kjs
bc186111ef Merge branch 'main' into jskim-node 2026-03-25 11:45:27 +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