ERP-node/frontend
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
..
app 로그 제거 2025-11-12 15:12:12 +09:00
components feat: 화면 복사 기능 개선 및 버튼 모달 설정 수정 2025-11-13 12:17:10 +09:00
constants 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
contexts 로그 제거 2025-11-12 15:12:12 +09:00
docs 액션 노드들 로직 구현 2025-10-02 17:51:15 +09:00
hooks 회원관련 로직 삭제 2025-11-11 17:42:22 +09:00
lib feat: 화면 복사 기능 개선 및 버튼 모달 설정 수정 2025-11-13 12:17:10 +09:00
providers 현대적 라이브러리 도입 완료 2025-09-02 18:25:44 +09:00
public 날씨 2025-10-23 13:17:21 +09:00
scripts ui 수정 및 시현할 기능 업데이트 2025-10-02 14:34:15 +09:00
stores feat: 엑셀 다운로드 기능 개선 2025-11-10 18:12:09 +09:00
test-scenarios 타입 관리 개선 및 화면 비율조정 중간커밋 2025-09-19 18:43:55 +09:00
types feat: 테이블 검색 필터 개선 - 필터 너비 설정 및 자동 wrap 기능 2025-11-12 14:50:06 +09:00
utils ConnectionSetupModal 리팩터링 2025-09-16 15:43:18 +09:00
.dockerignore 최초커밋 2025-08-21 09:41:46 +09:00
.gitignore 최초커밋 2025-08-21 09:41:46 +09:00
.prettierignore 최초커밋 2025-08-21 09:41:46 +09:00
.prettierrc 최초커밋 2025-08-21 09:41:46 +09:00
README.md 화면관리 삭제기능구현 2025-09-08 13:10:09 +09:00
components.json 최초커밋 2025-08-21 09:41:46 +09:00
eslint.config.mjs 자바스크립트용 no-unused-vars 규칙 끄기 2025-08-26 17:21:27 +09:00
middleware.ts 로그인 되어있을 시 /main 으로 이동 2025-10-24 10:09:19 +09:00
next.config.mjs 이희진 진행사항 중간세이브 2025-10-28 13:40:17 +09:00
package-lock.json 엑셀 다운로드, 업로드, 사진촬영(바코드 스캔기능) 추가 2025-11-04 09:41:58 +09:00
package.json 엑셀 다운로드, 업로드, 사진촬영(바코드 스캔기능) 추가 2025-11-04 09:41:58 +09:00
postcss.config.mjs 최초커밋 2025-08-21 09:41:46 +09:00
tsconfig.json 배치관리 중간커밋 2025-09-24 10:46:55 +09:00

README.md

This is a Next.js project bootstrapped with create-next-app.

Environment Setup

환경변수 설정

개발 환경에서 파일 미리보기가 정상 작동하도록 하려면 다음 환경변수를 설정하세요:

  1. .env.local 파일을 생성하고 다음 내용을 추가:
# 개발 환경 (Next.js rewrites 사용)
NEXT_PUBLIC_API_URL=/api

# 운영 환경에서는 실제 백엔드 URL 사용
# NEXT_PUBLIC_API_URL=http://39.117.244.52:8080/api
  1. 백엔드 서버가 포트 3000에서 실행되고 있는지 확인
  2. Next.js 개발 서버는 포트 9771에서 실행

파일 미리보기 문제 해결

파일 미리보기에서 CORS 오류가 발생하는 경우:

  1. 백엔드 서버가 정상 실행 중인지 확인
  2. Next.js rewrites 설정이 올바른지 확인 (next.config.mjs)
  3. 환경변수 NEXT_PUBLIC_API_URL이 올바르게 설정되었는지 확인

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.