Commit Graph

967 Commits

Author SHA1 Message Date
kjs e6949bdd67 fix: 수주등록 모달 및 품목 검색 UI 개선
- 품목 검색 모달에서 컬럼명 대신 라벨명 표시
  * ItemSelectionModal에 columnLabels prop 추가
  * ModalRepeaterTableComponent에서 columns 설정의 라벨 매핑 생성
  * 테이블 헤더에 한글 라벨 표시 (품번, 품명, 규격, 재질 등)

- 이미 추가된 품목은 검색 결과에서 완전 제외
  * filteredResults로 중복 항목 필터링
  * 회색 표시 대신 목록에서 아예 제거
  * 사용자 친화적인 안내 메시지 추가

- 수주등록 버튼 크기 및 렌더링 수정
  * 기본 크기를 200x40에서 120x40으로 변경 (다른 버튼과 통일)
  * h-full w-full 클래스 적용하여 컨테이너 크기에 맞게 렌더링
  * style prop의 width/height 제거하여 Tailwind 클래스 우선순위 문제 해결

- 수주등록 모달에 판매 유형 및 무역 정보 추가
  * 국내/해외 판매 선택 기능
  * 해외 판매 시 무역 정보 섹션 표시 (인코텀즈, 결제조건, 통화 등)
  * 거래처 정보 확장 (담당자, 납품처, 납품장소)

- 품목 반복 테이블 컬럼 조정
  * 품목번호를 품번으로 변경
  * 비고 컬럼 제거
  * 규격, 재질 컬럼 추가
  * 납품일을 납기일로 변경
2025-11-14 16:19:27 +09:00
kjs 64e6fd1920 feat: 수주등록 모달 및 범용 컴포넌트 개발
- 범용 컴포넌트 3종 개발 및 레지스트리 등록:
  * AutocompleteSearchInput: 자동완성 검색 입력 컴포넌트
  * EntitySearchInput: 엔티티 검색 모달 컴포넌트
  * ModalRepeaterTable: 모달 기반 반복 테이블 컴포넌트

- 수주등록 전용 컴포넌트:
  * OrderCustomerSearch: 거래처 검색 (AutocompleteSearchInput 래퍼)
  * OrderItemRepeaterTable: 품목 관리 (ModalRepeaterTable 래퍼)
  * OrderRegistrationModal: 수주등록 메인 모달

- 백엔드 API:
  * Entity 검색 API (멀티테넌시 지원)
  * 수주 등록 API (자동 채번)

- 화면 편집기 통합:
  * 컴포넌트 레지스트리에 등록
  * ConfigPanel을 통한 설정 기능
  * 드래그앤드롭으로 배치 가능

- 개발 문서:
  * 수주등록_화면_개발_계획서.md (상세 설계 문서)
2025-11-14 14:43:53 +09:00
dohyeons 5533a134c6 리스크 위젯 날짜 형식 통일 2025-11-14 13:47:55 +09:00
dohyeons 02d4a3a3d3 리스크 알림 위젯 날짜 포맷 변경 2025-11-14 12:10:10 +09:00
dohyeons 05273daa92 커스텀 통계 카드 위젯을 수정 2025-11-14 11:35:16 +09:00
dohyeons 2eb8c3a61b 리스트 카드 렌더링 문제 해결 2025-11-14 11:16:03 +09:00
dohyeons a491f08337 지도 위젯에서도 마커 종류 선택 가능하게 구현 2025-11-14 10:49:11 +09:00
dohyeons a3503c0b9f 지도 위젯 별 polling 설정 구현 2025-11-14 10:26:09 +09:00
kjs 2a52f25c10 feat: 모달 저장 후 부모 화면 테이블 자동 새로고침 기능 추가
- ScreenModal에 onRefresh 콜백 추가하여 refreshTable 이벤트 발송
- InteractiveScreenViewerDynamic에 onRefresh, onFlowRefresh prop 추가 및 하위 컴포넌트로 전달
- TableListComponent에 refreshTable 이벤트 리스너 추가
- SplitPanelLayoutComponent에 refreshTable 이벤트 리스너 추가하여 좌/우측 패널 모두 새로고침
- 모달에서 데이터 저장 시 부모 화면의 모든 테이블 컴포넌트가 자동으로 새로고침되도록 개선

변경된 파일:
- frontend/components/common/ScreenModal.tsx
- frontend/components/screen/InteractiveScreenViewerDynamic.tsx
- frontend/lib/registry/components/table-list/TableListComponent.tsx
- frontend/lib/registry/components/split-panel-layout/SplitPanelLayoutComponent.tsx
2025-11-13 17:42:20 +09:00
kjs ab1cbd37b3 Merge branch 'feature/screen-management' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-13 17:06:42 +09:00
kjs 296ee3e825 테이블 데이터 필터링 기능 및 textarea컴포넌트 자동 매핑 삭제 2025-11-13 17:06:41 +09:00
kjs 2663400e26 Merge branch 'main' into feature/screen-management 2025-11-13 15:28:25 +09:00
kjs a828f54663 feat: 카테고리 배지 없음 옵션 추가
- 카테고리 색상 설정 시 '배지 없음' 옵션 추가
- color='none'일 때 배지 대신 일반 텍스트로 표시
- CategoryValueEditDialog, CategoryValueAddDialog에 배지 없음 버튼 추가
- InteractiveDataTable, TableListComponent에서 배지 없음 처리
- CategoryValueManager에서 배지 없음 표시 추가
- 기본 색상을 배지 없음으로 변경
2025-11-13 15:24:31 +09:00
kjs f73f788b0a fix: 카테고리 컬럼 중복 데이터 문제 해결
- table_column_category_values JOIN 시 회사 데이터만 사용하도록 수정
- 공통 데이터(company_code='*') 사용 금지
- is_active=true 필터 추가로 활성화된 카테고리만 조회
- entityJoinService.ts의 buildJoinQuery 및 buildCountQuery 수정
- 품목 정보 테이블 등에서 발생하던 2배 중복 문제 해결
2025-11-13 15:16:36 +09:00
kjs 36bff64145 feat: 카테고리 컬럼 메뉴별 매핑 기능 구현
- category_column_mapping 테이블 생성 (마이그레이션 054)
- 테이블 타입 관리에서 2레벨 메뉴 선택 기능 추가
- 카테고리 컬럼 조회 시 현재 메뉴 및 상위 메뉴 매핑 자동 조회
- 캐시 무효화 로직 개선
- 메뉴별 카테고리 설정 저장 및 불러오기 기능 구현
2025-11-13 14:41:24 +09:00
kjs 3ddca95af5 feat: 메뉴 관리에서 화면 할당 해제 기능 추가
## 문제점
- URL 직접 입력 모드에서 빈 값으로 저장 시 menu_url은 비워지지만
- screen_code는 기존 값이 남아있어 화면 할당이 해제되지 않음

## 해결방법

### 백엔드 (adminController.ts)
- updateMenu: menu_url이 비어있으면 screen_code도 null로 자동 설정
- 로직: menuUrl ? screenCode : null

### 프론트엔드 (MenuFormModal.tsx, menu.ts)
- 화면 선택 시 screenCode도 함께 formData에 저장
- URL 타입 변경 시 screenCode 초기화
- MenuFormData 인터페이스에 screenCode 필드 추가

## 동작 방식
1. 화면 할당: menuUrl + screenCode 함께 저장
2. URL 직접 입력: menuUrl만 저장, screenCode는 undefined
3. 빈 값 저장: menuUrl = null, screenCode = null (자동)

이제 메뉴에서 화면 할당을 완전히 해제할 수 있습니다.
2025-11-13 12:22:33 +09:00
kjs 658211b9d1 feat: 화면 복사 기능 개선 및 버튼 모달 설정 수정
## 주요 변경사항

### 1. 화면 복사 기능 강화
- 최고 관리자가 다른 회사로 화면 복사 가능하도록 개선
- 메인 화면과 연결된 모달 화면 자동 감지 및 일괄 복사
- 복사 시 버튼의 targetScreenId 자동 업데이트
- 일괄 이름 변경 기능 추가 (복사본 텍스트 제거)
- 중복 화면명 체크 기능 추가

#### 백엔드 (screenManagementService.ts)
- generateMultipleScreenCodes: 여러 화면 코드 일괄 생성 (Advisory Lock 사용)
- detectLinkedModalScreens: edit 액션도 모달로 감지하도록 개선
- checkDuplicateScreenName: 중복 화면명 체크 API 추가
- copyScreenWithModals: 메인+모달 일괄 복사 및 버튼 업데이트
- updateButtonTargetScreenIds: 복사된 모달로 버튼 targetScreenId 업데이트
- updated_date 컬럼 제거 (screen_layouts 테이블에 존재하지 않음)

#### 프론트엔드 (CopyScreenModal.tsx)
- 회사 선택 UI 추가 (최고 관리자 전용)
- 연결된 모달 화면 자동 감지 및 표시
- 일괄 이름 변경 기능 (텍스트 제거/추가)
- 실시간 미리보기
- 중복 화면명 체크

### 2. 버튼 설정 모달 화면 선택 개선
- 편집 중인 화면의 company_code 기준으로 화면 목록 조회
- 최고 관리자가 다른 회사 화면 편집 시 해당 회사의 모달 화면만 표시
- targetScreenId 문자열/숫자 타입 불일치 수정

#### 백엔드 (screenManagementController.ts)
- getScreens API에 companyCode 쿼리 파라미터 추가
- 최고 관리자는 다른 회사의 화면 목록 조회 가능

#### 프론트엔드
- ButtonConfigPanel: currentScreenCompanyCode props 추가
- DetailSettingsPanel: currentScreenCompanyCode 전달
- UnifiedPropertiesPanel: currentScreenCompanyCode 전달
- ScreenDesigner: selectedScreen.companyCode 전달
- targetScreenId 비교 시 parseInt 처리 (문자열→숫자)

### 3. 카테고리 메뉴별 컬럼 분리 기능
- 메뉴별로 카테고리 컬럼을 독립적으로 관리
- 카테고리 컬럼 추가/삭제 시 메뉴 스코프 적용

## 수정된 파일
- backend-node/src/services/screenManagementService.ts
- backend-node/src/controllers/screenManagementController.ts
- backend-node/src/routes/screenManagementRoutes.ts
- frontend/components/screen/CopyScreenModal.tsx
- frontend/components/screen/config-panels/ButtonConfigPanel.tsx
- frontend/components/screen/panels/DetailSettingsPanel.tsx
- frontend/components/screen/panels/UnifiedPropertiesPanel.tsx
- frontend/components/screen/ScreenDesigner.tsx
- frontend/lib/api/screen.ts
2025-11-13 12:17:10 +09:00
dohyeons bb9124d75b Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into common/feat/dashboard-map 2025-11-13 12:10:54 +09:00
dohyeons 3b9327f64c 데이터 새로고침으로 수정 2025-11-13 12:10:04 +09:00
dohyeons 800bd85811 팝업 수정 가능하게 수정 2025-11-12 19:08:41 +09:00
kjs b77fffbad7 리포트 모달문제 수정 2025-11-12 18:51:20 +09:00
dohyeons 5e8e714e8a 지도 위젯 헤더 및 새로고침 버튼 삭제 2025-11-12 18:22:02 +09:00
dohyeons c5d8569522 데이터소스 삭제 로직 수정 2025-11-12 17:58:22 +09:00
dohyeons adb1056b3f "지도가 표시되었습니다" 메시지 제거 2025-11-12 17:53:38 +09:00
kjs 214bd829e9 테이블 컬럼추가 오류 수정 2025-11-12 17:52:08 +09:00
dohyeons d3b7859668 적용 버튼 비활성화 조건 추가 2025-11-12 17:39:03 +09:00
dohyeons 54b7cae218 polling 및 마커 종류 설정 추가 2025-11-12 17:21:08 +09:00
dohyeons 68184ac49f 에러 수정 2025-11-12 16:57:21 +09:00
kjs 7b84a81a96 fix: 분할 패널 컬럼 순서 변경 및 필터링 개선
문제:
1. ColumnVisibilityPanel에서 순서 변경 후 onColumnOrderChange가 호출되지 않음
2. 필터 입력 시 데이터가 제대로 필터링되지 않음
3. useAuth 훅 import 경로 오류 (@/hooks/use-auth → @/hooks/useAuth)

해결:
1. ColumnVisibilityPanel.handleApply()에 onColumnOrderChange 호출 추가
2. 필터 변경 감지 및 데이터 로드 로직 디버깅 로그 추가
3. useAuth import 경로 수정

테스트:
- 거래처관리 화면에서 컬럼 순서 변경 → 실시간 반영 
- 페이지 새로고침 → 순서 유지 (localStorage) 
- 필터 입력 → 필터 변경 감지 (추가 디버깅 필요)
2025-11-12 16:33:08 +09:00
dohyeons cbdd9fef0f http polling 주기를 5초로 변경 2025-11-12 15:46:24 +09:00
kjs 41404e021e Merge branch 'feature/screen-management' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-12 15:12:15 +09:00
kjs 4cdc72e360 로그 제거 2025-11-12 15:12:12 +09:00
kjs 6d1743c524 feat: 테이블 검색 필터 개선 - 필터 너비 설정 및 자동 wrap 기능
- FilterPanel: 필터별 너비(width) 설정 기능 추가 (50-500px)
- TableSearchWidget: 필터가 여러 줄로 자동 wrap되도록 flex-wrap 적용
- TableSearchWidget: 필터 너비 설정을 localStorage에 저장/복원
- InteractiveScreenViewerDynamic: TableSearchWidget의 높이를 auto로 설정하여 콘텐츠에 맞게 자동 조정
- globals.css: 입력 필드 포커스 시 검정 테두리 제거 (combobox, input)

주요 변경사항:
1. 필터 설정에서 각 필터의 표시 너비를 개별 설정 가능
2. 필터가 많을 때 자동으로 여러 줄로 배치 (overflow 방지)
3. 설정된 필터 너비가 새로고침 후에도 유지됨
4. TableSearchWidget 높이가 콘텐츠에 맞게 자동 조정

TODO: TableSearchWidget 높이 변화 시 아래 컴포넌트 자동 재배치 기능 구현 예정
2025-11-12 14:50:06 +09:00
kjs 58870237b6 feat: 선택(select) 타입 필터 동적 옵션 로드 기능 추가
- TableRegistration에 getColumnUniqueValues 콜백 함수 추가
- TableListComponent에서 현재 데이터의 고유 값 추출 함수 구현
- TableSearchWidget에서 select 타입 필터의 옵션을 자동으로 로드
- 테이블 데이터가 변경되면 필터 옵션도 자동 업데이트
- 데이터 건수 표시 기능도 함께 수정 (등록 순서 문제 해결)
2025-11-12 12:06:58 +09:00
kjs 33ba13b070 fix: 테이블 컬럼 설정 개선
- 체크박스 컬럼 위치 보존 (드래그 순서 변경 시 맨 오른쪽으로 이동하는 문제 해결)
- 사용자별 컬럼 설정 localStorage 저장 및 불러오기 기능 추가
- useAuth 훅으로 userId 가져오기
- 초기 로드 시 저장된 설정 자동 복원
2025-11-12 11:15:44 +09:00
kjs c6941bc41f feat: 테이블 검색 필터 위젯 구현 완료
- TableOptionsContext 기반 테이블 자동 감지 시스템 구현
- 독립 위젯으로 드래그앤드롭 배치 가능
- 3가지 기능: 컬럼 가시성, 필터 설정, 그룹 설정
- FlowWidget, TableList, SplitPanel 등 모든 테이블 컴포넌트 지원
- 유틸리티 카테고리에 등록 (1920×80px)
- 위젯 크기 제어 가이드 룰 파일에 추가
2025-11-12 10:48:24 +09:00
kjs f046493960 Merge branch 'main' into feature/screen-management 2025-11-11 18:33:34 +09:00
dohyeons aeef1dc215 회원관련 로직 삭제 2025-11-11 17:42:22 +09:00
dohyeons c18cd26ab4 모달 수정 2025-11-11 17:35:24 +09:00
kjs 6534d03ecd feat: 화면 편집기에서 메뉴 기반 데이터 스코프 적용
- 백엔드: screenManagementService에 getMenuByScreen 함수 추가
- 백엔드: GET /api/screen-management/screens/:id/menu 엔드포인트 추가
- 프론트엔드: screenApi.getScreenMenu() 함수 추가
- ScreenDesigner: 화면 로드 시 menu_objid 자동 조회
- ScreenDesigner: menuObjid를 RealtimePreview와 UnifiedPropertiesPanel에 전달
- UnifiedPropertiesPanel: menuObjid를 DynamicComponentConfigPanel에 전달

이로써 화면 편집기에서 코드/카테고리/채번규칙이 해당 화면이 할당된 메뉴 기준으로 필터링됨
2025-11-11 16:28:17 +09:00
kjs 32d4575fb5 feat: 코드 컴포넌트에 메뉴 스코프 적용
- useCodeOptions 훅에 menuObjid 파라미터 추가
- commonCodeApi.codes.getList에 menuObjid 전달
- SelectBasicComponent에서 menuObjid 받아서 useCodeOptions로 전달
- InteractiveScreenViewer에서 DynamicWebTypeRenderer로 menuObjid 전달
- 화면 페이지에서 RealtimePreview로 menuObjid 전달

이제 코드 위젯도 카테고리처럼 형제 메뉴별로 격리됩니다.
2025-11-11 15:25:07 +09:00
kjs 6ebe551caa feat: 카테고리 컴포넌트 메뉴 스코프 전환 완료
- 형제 메뉴의 카테고리 컬럼 조회 API 구현
- column_labels 테이블에서 컬럼 라벨 조회
- table_labels 테이블에서 테이블 라벨 조회
- 프론트엔드: 테이블명 대신 테이블 라벨 표시
- 카테고리 값 조회/추가 시 menuObjid 전달
2025-11-11 15:00:03 +09:00
dohyeons 27e4fb3933 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node 2025-11-11 14:46:23 +09:00
kjs 23911d3dd8 feat: 카테고리 컴포넌트 메뉴 스코프 전환 완료
 구현 내용:
1. 백엔드 API 추가
   - GET /api/table-management/menu/:menuObjid/category-columns
   - 형제 메뉴들의 테이블에서 카테고리 타입 컬럼 조회
   - menuService.getSiblingMenuObjids() 재사용

2. 프론트엔드 CategoryWidget 수정
   - menuObjid를 props로 받아 CategoryColumnList에 전달
   - effectiveMenuObjid로 props.menuObjid도 처리
   - 선택된 컬럼에 tableName 포함하여 상태 관리

3. CategoryColumnList 수정
   - menuObjid 기반으로 형제 메뉴의 모든 카테고리 컬럼 조회
   - 테이블명+컬럼명 함께 표시
   - onColumnSelect에 tableName 전달

4. 메뉴 네비게이션 수정
   - AppLayout.tsx: 화면 이동 시 menuObjid를 URL 쿼리 파라미터로 전달
   - useMenu.ts: 동일하게 menuObjid 전달
   - page.tsx: 자식 컴포넌트에도 menuObjid 전달

🎯 효과:
- 이제 형제 메뉴들이 서로 다른 테이블을 사용해도 카테고리 공유 가능
- 메뉴 클릭 → 화면 이동 시 자동으로 menuObjid 전달
- 카테고리 위젯이 형제 메뉴의 모든 카테고리 컬럼 표시
2025-11-11 14:44:22 +09:00
kjs 668b45d4ea feat: 채번규칙 메뉴 스코프 전환 완료
 주요 변경사항:
- 백엔드: menuService.ts 추가 (형제 메뉴 조회 유틸리티)
- 백엔드: numberingRuleService.getAvailableRulesForMenu() 메뉴 스코프 적용
- 백엔드: tableCategoryValueService 메뉴 스코프 준비 (menuObjid 파라미터 추가)
- 프론트엔드: TextInputConfigPanel에 부모 메뉴 선택 UI 추가
- 프론트엔드: 메뉴별 채번규칙 필터링 (형제 메뉴 공유)

🔧 기술 세부사항:
- getSiblingMenuObjids(): 같은 부모를 가진 형제 메뉴 OBJID 조회
- 채번규칙 우선순위: menu (형제) > table > global
- 사용자 메뉴(menu_type='1') 레벨 2만 부모 메뉴로 선택 가능

📝 다음 단계:
- 카테고리 컴포넌트도 메뉴 스코프로 전환 예정
2025-11-11 14:32:00 +09:00
kjs bab960b50e feat: 엑셀 다운로드 파일명을 메뉴 이름으로 변경
- 메뉴 클릭 시 localStorage에 메뉴 이름 저장 (useMenu, AppLayout)
- 엑셀 다운로드 시 localStorage의 메뉴 이름을 파일명으로 사용
- 백엔드 카테고리 컬럼 조회 쿼리 파라미터 버그 수정
- API 호출 시 불필요한 autoFilter 파라미터 제거

파일명 형식: {메뉴이름}_{날짜}.xlsx
예시: 품목등록테스트_2025-11-11.xlsx
2025-11-11 10:29:47 +09:00
dohyeons 786d71a697 feat: 회원가입 페이지 및 폼 유효성 검사 구현
- 회원가입 페이지 및 폼 컴포넌트 추가
  - 로그인 페이지와 일관된 디자인
  - 아이디, 비밀번호, 이름, 차량번호, 휴대폰번호 입력 필드
  - 비밀번호 확인 필드 추가

- 유효성 검사 기능 구현
  - 차량번호: 한국 차량번호 형식 검증 (12가3456, 123가4567, 서울12가3456 등)
  - 휴대폰번호: 하이픈 포함 형식 검증 (010-1234-5678)
  - 비밀번호: 최소 6자 이상, 확인 일치 검증
  - 사용자ID: 최소 4자 이상
  - 이름: 최소 2자 이상

- UI/UX 개선
  - 각 필드별 실시간 유효성 검사 및 에러 메시지 표시
  - 비밀번호 표시/숨김 토글 버튼
  - 자동 설정된 필드에 안내 문구 표시
  - 로그인 페이지로 돌아가기 버튼 추가
  - 로그인 페이지에 회원가입 링크 추가

- 타입 및 훅 추가
  - RegisterFormData, RegisterResponse 타입 정의
  - useRegister 훅으로 비즈니스 로직 분리
  - auth API mock 함수 (백엔드 연동 준비)

- 사용자 경험 고려
  - 입력 필드별 placeholder 예시 제공
  - 도움말 텍스트로 입력 형식 안내
  - 로딩 상태 표시
2025-11-10 17:12:47 +09:00
kjs ccbb6924c8 feat: writer 컬럼 자동 user_name 변환 기능 추가
- 문제: 테이블 리스트에서 writer 컬럼이 user_id로 표시됨
- 해결:
  1. 백엔드: entityJoinService에서 writer 컬럼 자동 감지
  2. writer 컬럼 발견 시 user_info 테이블과 자동 조인
  3. writer_name 별칭으로 user_name 반환
  4. 프론트엔드: writer 컬럼일 때 writer_name 우선 표시
- 영향:
  - writer 컬럼이 있는 모든 테이블에서 자동으로 작성자명 표시
  - 기존 entity 조인 설정과 충돌 없이 작동
  - column_labels 설정 불필요
2025-11-10 16:32:00 +09:00
kjs 0e95f8ed66 fix: RealtimePreviewDynamic에서 component.style의 width/height가 size를 덮어쓰는 문제 수정
- 문제: 속성 패널에서 너비 입력 시 size.width는 변경되지만 화면에 반영되지 않음
- 원인: RealtimePreviewDynamic의 baseStyle에서 componentStyle을 getWidth() 이후에 스프레드하여 size.width를 덮어씀
- 해결:
  1. componentStyle에서 width, height 제거
  2. 나머지 스타일만 먼저 적용
  3. getWidth(), getHeight()로 size 기반 크기를 마지막에 설정
- 영향:
  - 속성 패널에서 입력한 너비/높이가 화면에 즉시 반영됨
  - component.style의 width/height는 무시되고 size.width/height만 사용됨
- 디버깅 로그 제거
2025-11-10 16:09:38 +09:00
kjs 8e74429a83 fix: updateComponentProperty에서 gridColumns 관련 자동 크기 조정 제거
- 문제: 속성 패널에서 너비를 입력해도 화면에 반영되지 않음
- 원인: updateComponentProperty에서 gridColumns 변경 시 자동으로 너비를 재계산
- 해결:
  1. gridColumns 변경 시 updateSizeFromGridColumns 호출 제거
  2. gridColumns 변경 시 calculateWidthFromColumns 호출 제거
- 영향:
  - 속성 패널에서 입력한 너비가 화면에 즉시 반영됨
  - gridColumns는 더 이상 너비를 자동으로 조정하지 않음
2025-11-10 15:58:56 +09:00
kjs 2148e8e019 fix: 너비 입력 시 완전 자유 입력 허용 (로컬 상태 사용)
- 문제: 너비 입력 시 onChange에서 즉시 업데이트되어 30에서 3을 지우기 어려움
- 해결:
  1. localWidth 상태 추가
  2. onChange: 로컬 상태만 업데이트 (완전 자유 입력)
  3. onBlur/Enter: 실제 업데이트 + 10px 단위 스냅
  4. useEffect로 컴포넌트 변경 시 localWidth 동기화
- 영향:
  - 30 입력 시 3, 0 모두 자유롭게 지우고 입력 가능
  - 포커스 아웃 시에만 10px 단위로 정렬
2025-11-10 15:54:07 +09:00
kjs 5d374f902a fix: 너비/높이 입력 시 자유 입력 가능하도록 수정 및 포커스 아웃 시 10px 단위 스냅
- 문제: 너비/높이 입력 시 즉시 10px 단위로 스냅되어 자유 입력 불가
- 해결:
  1. 너비: onChange에서는 입력값 그대로 반영, onBlur에서 10px 단위로 스냅
  2. 높이: 로컬 상태로 자유 입력 허용, onBlur/Enter 시 10px 단위로 스냅
  3. step을 10에서 1로 변경하여 자유 입력 가능
- 영향:
  - 입력 중에는 원하는 값 입력 가능
  - 입력 완료 시(포커스 아웃 또는 Enter) 자동으로 10px 단위로 정렬
2025-11-10 15:51:37 +09:00
kjs 99468ca250 fix: 속성 패널에서 너비/높이 직접 입력 시 격자 스냅 제거
- 문제: 속성 패널에서 너비/높이 입력 시 격자 시스템이 자동으로 값을 변경
- 원인: updateComponentProperty에서 size.width/height 변경 시 무조건 격자 스냅 적용
- 해결: 직접 입력 시에는 격자 스냅을 적용하지 않도록 로직 주석 처리
- 영향:
  - 속성 패널에서 원하는 크기로 자유롭게 설정 가능
  - 드래그/리사이즈 시에는 별도 로직에서 격자 스냅 처리
- 디버깅 로그 제거
2025-11-10 15:49:48 +09:00
kjs 99deab05d8 fix: gridUtils 함수들 import 누락 수정
- 문제: adjustGridColumnsFromSize 등 gridUtils 함수들이 import되지 않아 런타임 오류 발생
- 해결:
  1. gridUtils에서 필요한 함수들 import 추가
  2. 3개 파라미터를 받는 snap 함수 호출을 올바른 함수로 변경
     - snapSizeTo10px -> snapSizeToGrid
     - snapPositionTo10px -> snapToGrid
- 영향: 컴포넌트 크기/위치 조정 시 격자 스냅 기능 정상 작동
2025-11-10 15:45:51 +09:00
kjs 5f11b5083f fix: gridInfo 미정의 오류 수정
- 문제: updateComponentProperty 함수 내에서 정의되지 않은 gridInfo 변수 참조
- 해결: gridInfo 조건을 prevLayout.gridSettings 체크로 변경
- 영향: 컴포넌트 속성 업데이트 시 런타임 오류 해결
2025-11-10 15:42:35 +09:00
kjs cdf9c0e562 fix: 화면 편집기에서 버튼 컴포넌트 선택 가능하도록 수정
- 문제: 버튼 컴포넌트 클릭 시 버튼 동작이 실행되어 선택되지 않음
- 해결:
  1. ButtonPrimaryComponent에서 디자인 모드일 때 <button> 대신 <div>로 렌더링
  2. ScreenDesigner의 ScreenPreviewProvider에서 isPreviewMode를 false로 설정
  3. 디자인 모드에서는 버튼 액션이 실행되지 않고 onClick만 전달되도록 수정
- 영향: button-primary 타입 버튼이 화면 편집기에서 정상적으로 선택 가능
2025-11-10 15:36:18 +09:00
kjs 2d832c56b6 feat: 차지 컬럼 수를 픽셀 기반 너비 입력으로 변경 (10px 단위) 2025-11-10 15:17:33 +09:00
kjs 1d26b979ac fix: handleComponentDrop에서 gridInfo 참조 제거 및 10px 스냅 적용 2025-11-10 15:10:42 +09:00
kjs 2a2bf86d12 fix: calculateGridInfo 더미 함수 추가 및 드래그 앤 드롭 수정 2025-11-10 15:09:27 +09:00
kjs d7e598435c fix: UnifiedPropertiesPanel에서도 컬럼 수/간격/여백 설정 제거 2025-11-10 15:06:46 +09:00
kjs 0af0b53638 fix: 컬럼 수, 간격, 여백 설정 완전 제거 (10px 고정) 2025-11-10 15:05:34 +09:00
kjs ed351f7044 fix: layout.gridSettings 문법 오류 수정 2025-11-10 14:54:53 +09:00
kjs d0ddc702ac fix: 모든 snapToGrid 문법 오류 최종 수정 2025-11-10 14:52:20 +09:00
kjs eb8e5da329 fix: console.log 내 snapToGrid 문법 오류 수정 2025-11-10 14:51:36 +09:00
kjs e7cbbe39a6 fix: 마지막 snapToGrid 문법 오류 수정 2025-11-10 14:51:01 +09:00
kjs 8f41cf7919 fix: 모든 snapToGrid 문법 오류 수정 2025-11-10 14:50:24 +09:00
kjs 4cd9629a1d fix: snapToGrid 문법 오류 수정 - 항상 true로 설정 2025-11-10 14:48:53 +09:00
kjs 7f68a70b0f wip: snapToGrid 의존성 제거 2025-11-10 14:47:59 +09:00
kjs 0474937e57 wip: gridInfo 의존성 제거 2025-11-10 14:46:30 +09:00
kjs d8bba7cfc1 wip: 격자 함수 호출을 10px 스냅으로 일괄 교체
- snapToGrid -> snapPositionTo10px
- snapSizeToGrid -> snapSizeTo10px
- 격자 라인을 10px 단위로 변경
- gridInfo 의존성 제거 (진행중)
2025-11-10 14:45:19 +09:00
kjs 554cdbdea5 wip: 격자 시스템 제거 시작 - 10px 스냅 함수 추가 2025-11-10 14:43:09 +09:00
kjs c4290f2d0e refactor: 격자 시스템을 10px 단위로 단순화
- 복잡한 컬럼 시스템 제거
- 웹타입별 고정 픽셀 너비 사용 (10px 단위)
- 격자 설정 패널 단순화 (컬럼 수 설정 제거)
- 간격/여백 조정을 10px 단위로 변경
- 더 직관적이고 예측 가능한 레이아웃 시스템
2025-11-10 14:41:58 +09:00
kjs 7ab3781372 feat: 드래그 드롭 컬럼 라벨 숨김 및 placeholder 표시
- 테이블 탭에서 드래그 드롭으로 배치되는 컬럼의 라벨 자동 숨김 (labelDisplay: false)
- placeholder에 컬럼 라벨명 자동 표시
- 폼 컨테이너 및 캔버스 직접 드롭 모두 적용
- 더 깔끔한 UI 제공
2025-11-10 14:36:53 +09:00
kjs 3f32996014 fix: 날짜 입력 필드 높이 반응형 개선
- 드래그 드롭으로 배치되는 인풋 필드 기본 높이 30px로 변경
- 날짜 입력 컴포넌트의 모든 외부 div에 h-full 추가
- 모든 input 요소에 min-h-full 추가하여 부모 높이를 제대로 따르도록 수정
- daterange, year 타입도 동일하게 적용
2025-11-10 14:33:15 +09:00
kjs a868c5c413 feat: 테이블 탭에서 시스템 컬럼 5개 숨김 처리
- id, created_date, updated_date, writer, company_code 컬럼 필터링
- 대소문자 구분 없이 시스템 컬럼 제외
- 화면 편집기 테이블 탭에서 비즈니스 컬럼만 표시
2025-11-10 14:24:16 +09:00
kjs 15f21a1142 revert: e27845a 커밋의 변경사항 되돌림 - 화면 레이아웃 문제 수정 2025-11-10 14:21:29 +09:00
kjs e2f4b47588 모달 잘 보이게 수정 2025-11-10 09:33:29 +09:00
kjs 1d6418ca63 fix: SaveModal을 ResizableDialog로 수정하여 크기 조절 가능하도록 개선
주요 변경사항:
- Dialog/DialogContent를 ResizableDialog/ResizableDialogContent로 변경
- DialogTitle을 ResizableDialogTitle로 변경
- 내부 컨텐츠 컨테이너를 유연한 크기(w-full h-full)로 변경
- minWidth/minHeight 사용으로 최소 크기 보장

참고:
- 컴포넌트 레이아웃이 화면관리에서 설정된 대로 정확히 렌더링됨
- 레이아웃 자체의 문제는 화면관리에서 재설계 필요

파일 변경:
- frontend/components/screen/SaveModal.tsx
2025-11-07 17:39:51 +09:00
kjs e27845a82f feat: 테이블 탭 드래그앤드롭 개선 및 AI-개발자 협업 규칙 수립
주요 변경사항:
- 드래그앤드롭 컬럼의 라벨 숨김 및 placeholder로 라벨명 표시
- 기본 높이 30px로 변경
- 5개 시스템 컬럼(id, created_date, updated_date, writer, company_code) 숨김
- AI-개발자 협업 작업 수칙 문서 작성 및 .cursorrules에 통합

파일 변경:
- frontend/components/screen/ScreenDesigner.tsx
  * getDefaultHeight(): 기본 높이를 30px로 변경
  * handleDrop(): labelDisplay false, placeholder 추가
- frontend/components/screen/panels/TablesPanel.tsx
  * hiddenColumns Set으로 시스템 컬럼 필터링
- .cursor/rules/ai-developer-collaboration-rules.mdc (신규)
  * 확인 우선, 한 번에 하나, 철저한 마무리 원칙
  * 데이터베이스 검증, 코드 수정, 테스트, 커뮤니케이션 규칙
- .cursorrules
  * 필수 확인 규칙 섹션 추가
  * 모든 작업 시작/완료 시 협업 규칙 확인 강제화
2025-11-07 17:12:01 +09:00
kjs 4294fbf608 feat: 채번 규칙 테이블 기반 자동 필터링 구현
- 채번 규칙 scope_type을 table로 단순화
- 화면의 테이블명을 자동으로 감지하여 채번 규칙 필터링
- TextInputConfigPanel에 screenTableName prop 추가
- getAvailableNumberingRulesForScreen API로 테이블 기반 조회
- NumberingRuleDesigner에서 자동으로 테이블명 설정
- webTypeConfigConverter 유틸리티 추가 (기존 화면 호환성)
- AutoGenerationConfig 타입 개선 (enabled, options.numberingRuleId)
- 채번 규칙 선택 UI에서 ID 제거, 설명 추가
- 불필요한 console.log 제거

Backend:
- numberingRuleService: 테이블 기반 필터링 로직 구현
- numberingRuleController: available-for-screen 엔드포인트 수정

Frontend:
- TextInputConfigPanel: 테이블명 기반 채번 규칙 로드
- NumberingRuleDesigner: 적용 범위 UI 제거, 테이블명 자동 설정
- ScreenDesigner: webTypeConfig → autoGeneration 변환 로직 통합
- DetailSettingsPanel: autoGeneration 속성 매핑 개선
2025-11-07 14:27:07 +09:00
kjs 5b79bfb19d 화면 컴포넌트 위치문제 수정 2025-11-07 11:36:58 +09:00
dohyeons 03bce9d643 프론트 빌드 에러 해결 2025-11-07 11:05:19 +09:00
dohyeons 732928ac0f 프론트 필드 에러 해결 2025-11-07 10:32:30 +09:00
hjlee 0313c83a65 Merge pull request '오늘의 타협점' (#193) from lhj into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/193
2025-11-06 19:01:58 +09:00
leeheejin 20e2729bf7 오늘의 타협점 2025-11-06 19:01:44 +09:00
kjs 0e4cf7b641 쿼리 에러 수정 2025-11-06 18:10:21 +09:00
kjs 5d9233203c Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-06 18:10:05 +09:00
leeheejin 2f39b541dd 화면 고치기 2025-11-06 18:08:28 +09:00
kjs a2637f4dbb Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-06 17:33:29 +09:00
leeheejin ead3433f3e 기능추가 2025-11-06 17:32:29 +09:00
leeheejin b3cd771b99 버튼 수정과 그룹드롭다운, 품목복사기능, 연속입력기능추가 2025-11-06 17:32:24 +09:00
kjs f2500865a6 격자 저장문제 수정 2025-11-06 17:01:13 +09:00
kjs 786576bb76 커밋 2025-11-06 14:46:15 +09:00
kjs 832e80cd7f 배지 표시 수정 2025-11-06 14:18:36 +09:00
kjs 2e674e13d0 fix: resizable-dialog 주석 처리된 객체 리터럴 파싱 에러 수정
- 여러 줄 객체 리터럴을 한 줄로 변경
- console.log 주석이 파싱 에러를 일으키는 문제 해결
- 빌드 에러 해결
2025-11-06 13:26:54 +09:00
kjs bc826e8e49 chore: resizable-dialog 디버깅 로그 모두 제거
- console.log 20개 주석 처리
- 콘솔 스팸 방지
- 불필요한 로그 제거로 성능 개선
2025-11-06 12:46:08 +09:00
kjs f53a818f2f fix: 카테고리 매핑 변경 시 강제 리렌더링 추가
- categoryMappingsKey 상태 추가로 매핑 변경 감지
- 매핑 업데이트 시 key 증가로 tbody 리렌더링 강제
- 간헐적으로 배지가 표시되지 않던 타이밍 이슈 해결
- 카테고리 배지 렌더링 디버깅 로그 추가
2025-11-06 12:39:56 +09:00
kjs b526d8ea2c fix: 카테고리 배지 표시 개선 및 디버깅 로그 추가
- 매핑이 없어도 항상 배지로 표시
- 매핑 없을 시 코드값 그대로 + 기본 slate 색상 사용
- 카테고리 매핑 로드 과정 로그 추가
- 기존 데이터에 기본 색상 추가하는 마이그레이션 스크립트 생성
2025-11-06 12:15:47 +09:00
leeheejin 3f890cdbfa Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into lhj
; Conflicts:
;	frontend/components/admin/CreateTableModal.tsx
;	frontend/components/screen/CopyScreenModal.tsx
;	frontend/components/screen/MenuAssignmentModal.tsx
;	frontend/components/screen/ScreenList.tsx
;	frontend/components/screen/widgets/FlowWidget.tsx
;	frontend/lib/registry/components/table-list/TableListComponent.tsx
2025-11-06 12:14:07 +09:00
kjs 7581cd1582 feat: 테이블 리스트에서 카테고리 값을 배지로 표시
- 카테고리 타입 컬럼을 배지 형태로 렌더링
- 사용자가 설정한 색상 적용
- categoryMappings에 라벨과 색상 모두 저장
- 기본 색상: #3b82f6 (파란색)
- 텍스트 색상: 흰색으로 고정하여 가독성 확보
2025-11-06 12:12:19 +09:00
leeheejin 0839f7f603 리사이징, 체크박스,엔터치면 다음 칸으로 이동, 표수정, 컬럼에서 이미지 넣는거 등등 2025-11-06 12:11:49 +09:00
kjs 1d87b6c3ac feat: 카테고리 값에 배지 색상 설정 기능 추가
- 카테고리 값 추가/편집 다이얼로그에 색상 선택기 추가
- 18가지 기본 색상 팔레트 제공
- 선택한 색상의 실시간 배지 미리보기
- color 필드를 통해 DB에 저장
- 테이블 리스트에서 배지 형태로 표시할 준비 완료
2025-11-06 12:09:28 +09:00
kjs a1cb9d2a8e fix: 카테고리 타입 컬럼 라벨 표시 및 빌드 오류 수정
- 카테고리 타입 컬럼이 테이블 리스트/플로우 위젯에서 코드값 대신 라벨로 표시되도록 수정
  - InteractiveDataTable: categoryMappings 상태 추가 및 formatCellValue에서 카테고리 라벨 변환
  - FlowWidget: categoryMappings 상태 추가 및 formatValue에서 카테고리 라벨 변환
  - TableListComponent: categoryMappings 상태 추가 및 formatCellValue에서 카테고리 라벨 변환

- FlowWidget 런타임 에러 수정
  - formatValue 함수를 categoryMappings 상태 선언 이후로 이동
  - useCallback 의존성 배열 오류 해결

- Dialog 컴포넌트 빌드 오류 수정
  - CopyScreenModal: DialogFooter → ResizableDialogFooter 태그 일치
  - MenuAssignmentModal: 모든 Dialog 컴포넌트를 ResizableDialog 버전으로 변경
    - Dialog → ResizableDialog
    - DialogContent → ResizableDialogContent
    - DialogFooter → ResizableDialogFooter
    - DialogHeader → ResizableDialogHeader
    - DialogTitle → ResizableDialogTitle
    - DialogDescription → ResizableDialogDescription

- 불필요한 console.log 제거
  - InteractiveDataTable, FlowWidget, TableListComponent에서 디버깅 로그 정리
2025-11-06 12:03:28 +09:00
kjs e25f8893b0 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-06 11:58:09 +09:00
kjs fe306aed26 feat: 카테고리 위젯에 드래그 가능한 리사이저 추가
- 좌우 영역을 드래그로 조절 가능
- 리사이저: GripVertical 아이콘으로 시각적 표시
- 좌측 영역: 최소 10%, 최대 40%로 제한
- 호버 시 배경색 변경으로 피드백 제공
- 드래그 중 커서 및 텍스트 선택 방지
2025-11-06 11:40:59 +09:00
kjs 4b568f86b1 style: 카테고리 위젯 좌측 영역 더 축소
- 좌측 영역: 20% → 15%
- 우측 영역: 80% → 85%
- 최소한의 공간으로 컬럼 목록 표시
2025-11-06 11:40:19 +09:00
kjs 107ca3b0b8 style: 카테고리 위젯 좌우 비율 조정
- 좌측 영역: 30% → 20%
- 우측 영역: 70% → 80%
- 좌측은 컬럼 목록만 표시하므로 좁게 조정
- 우측 값 관리 영역에 더 많은 공간 확보
2025-11-06 11:39:21 +09:00
kjs 7efb31a367 feat: 카테고리 컬럼 카드에 항목 개수 표시
- 컬럼명(column_name) 제거
- 우측에 해당 카테고리의 항목 개수 표시
- getCategoryValues API로 각 컬럼의 값 개수 조회
- 'N개' 형식으로 깔끔하게 표시
- 로딩 중에는 '...' 표시
2025-11-06 11:36:45 +09:00
kjs 9f9e9ecd82 style: 카테고리 컬럼 카드 상하 패딩 8px로 조정
- CategoryColumnList 카드: p-4 → px-4 py-2
- 상하 여백 16px → 8px
- 좌우 여백은 16px 유지
- 채번규칙과 일관된 레이아웃
2025-11-06 11:34:08 +09:00
kjs ec2f544a3e style: 채번규칙 규칙명과 미리보기를 한 줄로 배치
- 규칙명과 미리보기를 flex로 나란히 배치
- 각각 flex-1로 동일한 너비 (50:50)
- gap-3로 간격 설정
- 공간 효율성 향상
2025-11-06 11:26:38 +09:00
kjs e964c04523 style: 채번규칙 미리보기 UI 간소화
- '미리보기' 제목 및 Card 컴포넌트 제거
- '코드 미리보기' 라벨 제거
- 한 줄로 간결하게 표현 (px-3 py-2)
- 불필요한 여백 제거로 깔끔한 레이아웃
2025-11-06 11:25:59 +09:00
kjs fc18523bb6 feat: 채번규칙 적용 범위 UI 제거 및 기본값 '메뉴 적용'으로 변경
- 적용 범위 선택 섹션 제거 (UI 간소화)
- 새 규칙 생성 시 scopeType 기본값: 'global' → 'menu'
- 모든 규칙이 자동으로 메뉴별 적용으로 생성됨
2025-11-06 11:23:27 +09:00
kjs 8fa068222e style: 채번규칙 카드에서 코드 미리보기 제거
- NumberingRulePreview 컴포넌트 제거
- CardContent 섹션 제거
- 규칙 이름과 삭제 버튼만 표시하는 심플한 레이아웃
2025-11-06 11:22:22 +09:00
kjs 654cc4575b style: 채번규칙 카드 상하 패딩 8px로 조정
- py-0 → py-2 (8px)
- 적절한 여백 유지하면서 컴팩트한 레이아웃
2025-11-06 11:21:02 +09:00
kjs 1ee2d8f365 style: 채번규칙 카드 자체의 상하 패딩 제거
- Card 컴포넌트에 py-0 추가
- 카드 내부 여백 최소화
2025-11-06 11:20:13 +09:00
kjs f7f410dbbe style: 채번규칙 카드 내부 상하 여백 완전 제거
- CardHeader, CardContent의 py를 0으로 설정
- 좌우 여백(px-3)만 유지
- 최대한 컴팩트한 카드 레이아웃
2025-11-06 10:44:08 +09:00
kjs 7132f4a90f style: 채번규칙 카드 내부 여백 축소
- CardHeader: py-3 → py-2 (12px → 8px)
- CardContent: py-3 → pb-2 (하단만 8px)
- 더 컴팩트한 카드 레이아웃
2025-11-06 10:42:55 +09:00
kjs 38734079e8 style: 채번규칙 카드 UI 개선
- '규칙 N개' 텍스트 제거 (불필요한 정보)
- 카드 내부 상하 여백 명시적으로 12px(py-3)로 설정
2025-11-06 10:41:01 +09:00
kjs 44def0979c fix: 화면 편집기 높이 입력 필드 1px 단위 조절 가능하도록 수정
- 문제: 높이 입력 시 10 단위로만 입력 가능 (예: 1080 입력 불가)
- 원인: 격자 스냅 로직이 onChange마다 높이를 10/20 단위로 강제 반올림
- 해결:
  1. 모든 number input 필드에 step="1" 추가
  2. ScreenDesigner.tsx의 격자 스냅 로직 수정 (높이 스냅 제거)
  3. UnifiedPropertiesPanel.tsx에 로컬 상태 추가하여 입력 중 스냅 방지
  4. onBlur/Enter 시에만 실제 값 업데이트

수정 파일:
- frontend/components/screen/ScreenDesigner.tsx
- frontend/components/screen/panels/UnifiedPropertiesPanel.tsx
- frontend/components/screen/panels/PropertiesPanel.tsx
- frontend/components/screen/panels/ResolutionPanel.tsx
- frontend/components/screen/panels/RowSettingsPanel.tsx
- frontend/components/screen/panels/webtype-configs/NumberTypeConfigPanel.tsx
- frontend/components/screen/panels/webtype-configs/TextTypeConfigPanel.tsx
2025-11-06 10:37:20 +09:00
kjs cf9e81a216 테이블에 카테고리 값 보이기 2025-11-05 18:28:43 +09:00
kjs ad46249c8b 카테고리 2025-11-05 18:09:16 +09:00
kjs bc029d1df8 카테고리 구현 2025-11-05 18:08:51 +09:00
dohyeons 4a1900bdfa 모달 관련 에러 해결 2025-11-05 16:53:21 +09:00
dohyeons e65f97b3fe Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feat/dashboard 2025-11-05 16:41:40 +09:00
kjs f3bed0d713 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-05 16:38:30 +09:00
leeheejin 0b676098a5 버튼 문제 수정 및 여러가지 2025-11-05 16:36:32 +09:00
dohyeons 8b03f3a495 분할 패널 높이 조정 수정 2025-11-05 16:18:00 +09:00
dohyeons 9429033e2c Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feat/dashboard 2025-11-05 15:39:11 +09:00
dohyeons 8489ff03c2 파일 업로드 구조 개선 2025-11-05 15:39:02 +09:00
kjs 573a300a4a 카테고리 기능 구현 2025-11-05 15:23:57 +09:00
leeheejin c6b2a30651 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into lhj
; Please enter a commit message to explain why this merge is necessary,
; especially if it merges an updated upstream into a topic branch.
;
; Lines starting with ';' will be ignored, and an empty message aborts
; the commit.
2025-11-05 13:10:25 +09:00
leeheejin b4cc844675 엑셀 다운로드 문제 해결 2025-11-05 10:23:00 +09:00
hjlee 6c713a11d8 Merge pull request '행 이동 화면 할당한 상황에서도 가능하게, 코드병합 버튼액션에 추가' (#183) from lhj into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/183
2025-11-04 18:34:43 +09:00
leeheejin 82ff18e388 행 이동 화면 할당한 상황에서도 가능하게, 코드병합 버튼액션에 추가 2025-11-04 18:31:26 +09:00
kjs 10c7c9a0b1 컴포넌트 높이 조절기능 2025-11-04 17:44:10 +09:00
kjs 198f678b68 채번 자동생성기능 2025-11-04 17:35:02 +09:00
dohyeons 36ea8115cb Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feat/dashboard 2025-11-04 16:27:01 +09:00
dohyeons 01e03dedbf 파일 업로드 컴포넌트 높이 조절 수정 2025-11-04 16:26:53 +09:00
kjs b8e30c9557 컬럼 제한 삭제 2025-11-04 16:21:24 +09:00
kjs 37796ecc9d fix: FileComponentConfigPanel에 cn 함수 import 추가 2025-11-04 16:18:12 +09:00
kjs 6901baab8e feat(screen-designer): 그리드 컬럼 시스템 개선 및 컴포넌트 너비 렌더링 수정
주요 변경사항:
- 격자 설정을 편집 탭에서 항상 표시 (해상도 설정 하단)
- 그리드 컬럼 수 동적 조정 가능 (1-24)
- 컴포넌트 생성 시 현재 그리드 컬럼 수 기반 자동 계산
- 컴포넌트 너비가 설정한 컬럼 수대로 정확히 표시되도록 수정

수정된 파일:
- ScreenDesigner: 컴포넌트 드롭 시 gridColumns와 style.width 동적 계산
- UnifiedPropertiesPanel: 격자 설정 UI 통합, 차지 컬럼 수 설정 시 width 자동 계산
- RealtimePreviewDynamic: getWidth 우선순위 수정, DOM 크기 디버깅 로그 추가
- 8개 컴포넌트: componentStyle.width를 항상 100%로 고정
  * ButtonPrimaryComponent
  * TextInputComponent
  * NumberInputComponent
  * TextareaBasicComponent
  * DateInputComponent
  * TableListComponent
  * CardDisplayComponent

문제 해결:
- 컴포넌트 내부에서 component.style.width를 재사용하여 이중 축소 발생
- 해결: 부모 컨테이너(RealtimePreviewDynamic)가 width 제어, 컴포넌트는 항상 100%
- 결과: 파란 테두리와 내부 콘텐츠가 동일한 크기로 정확히 표시
2025-11-04 16:17:19 +09:00
dohyeons 5b8bad17ef 이미지 컴포넌트 오류나는거 해결 2025-11-04 15:52:41 +09:00
kjs 9f131a80ab Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-04 15:16:48 +09:00
dohyeons 39080dff59 autofill 기능 구현 2025-11-04 14:33:39 +09:00
kjs 7cf455083d 채번 컴포넌트 생성 2025-11-04 13:58:21 +09:00
kjs 07ff643a19 Merge branch 'feature/screen-management' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-11-04 11:41:22 +09:00
kjs d64ca5a8c0 버튼 수정 2025-11-04 11:41:20 +09:00
dohyeons 4dde008c6d Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feat/dashboard 2025-11-04 09:44:09 +09:00
leeheejin 7425c37094 엑셀 다운로드, 업로드, 사진촬영(바코드 스캔기능) 추가 2025-11-04 09:41:58 +09:00
dohyeons d428a70b69 회원 검색 기능 보완 2025-11-04 09:34:22 +09:00