팝업관리 기능 추가

This commit is contained in:
CSKIM
2026-06-01 16:49:09 +09:00
parent 6acb13c165
commit c9855a7196
17 changed files with 1352 additions and 44 deletions
+52
View File
@@ -0,0 +1,52 @@
# 팝업관리 기능 작업내용
## 작업 개요
- 관리자에 `팝업관리` 메뉴를 추가했습니다.
- 배너관리와 동일한 목록, 등록, 수정, 삭제, 순서 변경 흐름으로 구성했습니다.
- 팝업 등록/수정 화면에는 기존 TipTap 에디터를 재사용해 텍스트와 이미지를 함께 입력할 수 있도록 적용했습니다.
- 사용자 메인 index 진입 시 노출 대상 팝업이 있으면 모달 캐러셀로 표시되도록 추가했습니다.
## DB 스키마
- `TN_MAIN_POPUP` 테이블을 추가했습니다.
- 주요 컬럼은 다음과 같습니다.
- `POPUP_IDNTF_NO`: 팝업 식별번호
- `TTL`: 제목
- `CN`: 에디터 본문 HTML
- `SORT_ORDR`: 노출 순서
- `USE_YN`: 노출 여부
- `REG_DT`: 작성일시
- `REG_USER_IDNTF_NO`: 작성자
- `DEL_YN`: 삭제 여부
- `UPD_DT`: 수정일시
- 정렬 및 노출 조회용 인덱스를 추가했습니다.
## 관리자 기능
- 신규 URL
- 목록: `/mfuc/popup/list.do`
- 등록/수정: `/mfuc/popup/form.do`
- 저장: `/mfuc/popup/save.do`
- 삭제: `/mfuc/popup/delete.do`
- 순서 변경: `/mfuc/popup/move.do`
- 목록 화면에 작성자, 작성일시, 노출여부를 표시했습니다.
- 등록 시 로그인한 관리자 식별번호를 작성자로 저장합니다.
- 수정 시 기존 작성자 정보는 유지합니다.
## 사용자 메인 팝업
- 메인 페이지 진입 시 `USE_YN = 'Y'`, `DEL_YN = 'N'` 팝업만 노출합니다.
- 여러 팝업이 있으면 5초 간격으로 자동 이동합니다.
- 마지막 팝업 이후에는 첫 번째 팝업으로 돌아갑니다.
- 좌우 이동 버튼과 하단 불릿 이동을 지원합니다.
- 우측 상단 닫기 버튼을 추가했습니다.
- 우측 하단 `오늘 하루 표시하지않기` 체크 후 닫으면 로컬스토리지에 오늘 날짜를 저장합니다.
- 로컬스토리지 키는 `iotdoor.mainPopup.hiddenDate`입니다.
- 팝업 창은 고정 폭 기반으로 구성했고, 본문 영역만 세로 스크롤되도록 처리했습니다.
- 모바일에서는 화면 폭에 맞춰 좁혀지고 좌우 버튼은 숨기도록 적용했습니다.
## 검증
- `npm run build:admin-js`
- `.\gradlew.bat test`