Ver Fonte

2/5 csh

- MailHeaderFooter.html - 버튼 위치 수정
- MailTemplate - 불필요한 import 삭ㅈ
- MktmailManagement - Mkt메일관리 도메인 임시커밋
- MktmailmanagementDetailForm - Mkt상세화면 임시커밋
- MktmailmanagementForm - Mkt관리화면 임시커밋

Service, Dao - 임시커밋
Con - MKT 메일관리 상세화면 임시커밋
ChoiSooHwan há 5 anos atrás
pai
commit
fa85b7bfdd

+ 11 - 0
src/main/java/com/style24/admin/biz/dao/TsaMailTemplateDao.java

@@ -4,6 +4,7 @@ import java.util.Collection;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.MailTemplate;
+import com.style24.persistence.domain.MktmailManagement;
 
 /**
  * 메일헤더푸터관리 Dao
@@ -47,4 +48,14 @@ public interface TsaMailTemplateDao {
 	 * @since 2021. 02. 03
 	 */
 	void deleteMailHFList(MailTemplate mailtemplate);
+	
+	/**
+	 * mkt메일관리 상세
+	 * @param mktmailManagement - 메일관련 정보
+	 * @return
+	 * @author csh9191
+	 * @since 2021. 02. 05
+	 */
+	MktmailManagement getMktmailManagementDetail(Integer mktmailManagement);
+
 }

+ 13 - 0
src/main/java/com/style24/admin/biz/service/TsaMailTemplateService.java

@@ -9,6 +9,7 @@ import org.springframework.transaction.annotation.Transactional;
 import com.style24.admin.biz.dao.TsaMailTemplateDao;
 import com.style24.admin.support.security.session.TsaSession;
 import com.style24.persistence.domain.MailTemplate;
+import com.style24.persistence.domain.MktmailManagement;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -82,4 +83,16 @@ public class TsaMailTemplateService {
 			mailtempletDao.deleteMailHFList(mailtemplate);
 		}
 	}
+	
+	/**
+	 * MKT메일관리 상세화면
+	 * @param mktmailManagement - 메일템플릿관련 정보
+	 * @return
+	 * @author csh9191
+	 * @since 2021. 02. 05
+	 */
+	public MktmailManagement getMktmailManagementDetail(Integer mktmailManagement) {
+		return mailtempletDao.getMktmailManagementDetail(mktmailManagement);
+	}
+	
 }

+ 29 - 1
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -44,6 +44,7 @@ import com.style24.persistence.domain.CouponRefval;
 import com.style24.persistence.domain.CustCoupon;
 import com.style24.persistence.domain.FreeGoodsPromotion;
 import com.style24.persistence.domain.MailTemplate;
+import com.style24.persistence.domain.MktmailManagement;
 import com.style24.persistence.domain.MoreBetter;
 import com.style24.persistence.domain.MoreBetterBurden;
 import com.style24.persistence.domain.MoreBetterGoods;
@@ -955,8 +956,35 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @author csh9191
 	 * @since 2021. 02. 05
 	 */
-	//TODO
+	@GetMapping("/mktmailmanagement/form")
+	public ModelAndView mktmailManagementForm() {
+		ModelAndView mav = new ModelAndView();
+
+		mav.setViewName("marketing/MktmailmanagementForm");
+		return mav;
+	}
 	
+	/**
+	 * MKT 메일관리 상세화면
+	 * @param mode - 모드(N:신규, U:상세)
+	 * @return
+	 * @author csh9191
+	 * @since 2021. 02. 01
+	 */
+	@GetMapping("/mktmailmanagement/detail/form")
+	public ModelAndView mktmailManagementDetailForm(@RequestParam(value = "mode") String mode, @RequestParam(value = "mailtSq", required = false) Integer mailtSq) {
+		ModelAndView mav = new ModelAndView();
+		// 모드 값
+		mav.addObject("mode", mode);
+
+		if ("U".equals(mode)) {
+			mav.addObject("mailhfInfo", mailTemplateService.getMktmailManagementDetail(mailtSq));
+		}
+
+		mav.setViewName("marketing/MktmailmanagementDetailForm");
+
+		return mav;
+	}
 	
 	/* // CSB 진행 */
 

+ 0 - 3
src/main/java/com/style24/persistence/domain/MailTemplate.java

@@ -1,8 +1,5 @@
 package com.style24.persistence.domain;
 
-import java.util.Collection;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 
 import lombok.Data;

+ 38 - 0
src/main/java/com/style24/persistence/domain/MktmailManagement.java

@@ -0,0 +1,38 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * MKT메일관리 Domain
+ *
+ * @author csh9191
+ * @since 2021. 02. 05
+ */
+@SuppressWarnings("serial")
+@Data
+public class MktmailManagement extends TscBaseDomain{
+	
+	// MKT 메일관리
+	private Integer mailtSq; 				// 메일템플릿 번호
+	private String mailtNm;					// 메일템플릿 명
+	private String mailGb;					// 메일템플릿 구분
+	private String mailHsq;					// 메일헤더 일련번호
+	private String mailFsq;					// 메일푸터 일련번호
+	private String mailContent;				// 메일 내용
+	private String useYn;					// 사용구분
+	private String regDt;					// 등록일시
+	private String updDt;					// 수정일시
+	
+	
+	
+	// 메일템플릿 코너 등록
+	
+	
+	// 메일템플릿 코너 상품
+	
+	
+	private String searchTxt;				// 검색어
+	
+}

+ 1 - 1
src/main/webapp/WEB-INF/views/marketing/MailHeaderFooterForm.html

@@ -60,8 +60,8 @@
 				
 				<ul class="panelBar">
 					<li class="center">
-						<button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
 						<button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset();">초기화</button>
+						<button type="button" class="btn btn-info btn-lg" id="btnSearch">조회</button>
 					</li>
 				</ul>
 			</form>

+ 505 - 0
src/main/webapp/WEB-INF/views/marketing/MktmailmanagementDetailForm.html

@@ -0,0 +1,505 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : MktmailmanagementDetailForm.html
+ * @desc    : MktmailmanagementDetailForm 등록/수정 상세 팝업화면
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021. 02. 05   csh9191     최초 작성
+ *******************************************************************************
+ -->
+<div class="modalPopup" data-width="1200" id="popupMailHF">
+	<div class="panelStyle" style="max-height:700px;overflow-y:scroll;">
+		<!-- 팝업창 타이틀 -->
+		<div class="panelTitle">
+			<strong th:text="${'이메일' + (mode == 'N' ? '등록' : '상세')}">이메일</strong>
+			<button type="button" class="close" onclick="uifnPopupClose('popupMailHF');"><em class="fa fa-times"></em></button>
+		</div>
+		<!-- 팝업창 타이틀 -->
+		
+		<!-- 팝업창 상단부분 시작-->
+		<div class="panelContent">
+			<form id="mailHFForm" name="mailHFForm" action="#" th:action="@{'/marketing/mailtemplate/save'}" th:method="post">
+				<input type="hidden" name="mode" th:value="${mode}"/>
+				
+				<table class="frmStyle" aria-describedby="">
+					<colgroup>
+						<col style="width:10%;"/>
+						<col/>
+					</colgroup>
+					<tbody>
+						<tr>
+							<th>메일번호</th>
+							<td>
+								<input type="text" name="mailtSq" maxlength="20" placeholder="자동생성" readonly="readonly"/>								
+							</td>
+						</tr>
+						<tr>
+							<th>헤더</th>
+							<td><select name="mailHsq">
+									<option value="">[전체]</option>
+									<option th:if="${mailHsqList}"
+										th:each="oneData, status : ${mailHsqList}"
+										th:value="${oneData.cd}"
+										th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+							</select></td>
+						</tr>
+						<tr>
+							<th>푸터</th>
+							<td><select name="mailHsq">
+									<option value="">[전체]</option>
+									<option th:if="${mailFsq}"
+										th:each="oneData, status : ${mailFsqList}"
+										th:value="${oneData.cd}"
+										th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+							</select></td>
+						</tr>
+						<tr>
+							<th>타이틀</th>
+							<td><input type="text" name="mailhfNm" maxlength="50" required="required" data-valid-name="타이틀" /></td>
+						</tr>
+						
+						<tr>
+							<th>HTML / 이미지 설정<em class="required" title="필수"></em></th>
+							<td>
+								<textarea class="textareaR4" id="mailContent" name="mailContent" data-valid-name="내용"></textarea>
+							</td>
+						</tr>
+					</tbody>
+					
+				</table>
+			</form>
+		</div>
+		<!-- 팝업창 상단부분 끝-->
+		
+		<!-- 팡업창 하단부분 시작 -->
+		<div class="panelStyle" style="margin:unset;">
+				<!-- TITLE -->
+				<div class="panelTitle">
+					<h2>상품 전시 설정</h2>
+					<span class="panelControl">
+						<i class="fa inner-fa-chevron-up"></i>    <!-- 열림/닫힘 화살표 -->
+					</span>
+				</div>
+				<!-- //상품 전시 설정 -->
+				<div class="inner-panelContent">
+					<div class="panelContent">
+					<ul class="panelBar">
+						<li class="left">
+							<p>최대 5개 까지 상품 전시 구분을 추가하실 수 있습니다.</p>
+							<p>상품은 구분자 당 최대 40 개 까지만 등록하실 수 있습니다.</p>
+						</li>
+						<li class="right">
+							<button type="button" class="btn btnRight btn-success btn-lg" id="btnAddGrid" onclick="btnAddGrid();">구분추가하기</button>
+						</li>
+					</ul>
+						<!-- 구분 1 -->
+						<form id="searchForm1" name="searchForm1" action="#" th:action="@{'/'}">
+						<div class="inner-panelContent" id="btnAddGridNum" style="display:none;">
+							<div class="panelContent">
+								<table class="frmStyle">
+									<colgroup>
+										<col width="10%"/>
+										<col width="90%"/>
+									</colgroup>
+									<tr>
+										<th>상품 구분 1<br><br>
+											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum();">구분 삭제</button>
+										</th>
+										<td>
+											<div class="">
+												<table  class="frmStyle">
+													<tr>
+														<th class="w100">번호</th>
+														<td>
+															<input type="text" name="" placeholder="자동생성" readonly="readonly"/>								
+														</td>
+													</tr>
+													<tr>
+														<th>링크</th>
+														<td>
+															<input type="text" name=""/>								
+														</td>
+													</tr>
+													<tr>
+														<th>상품 노출 기준</th>
+														<td>
+															<label class="rdoBtn"><input type="radio" name=""/>1개</label>
+															<label class="rdoBtn"><input type="radio" name=""/>2개</label>
+															<label class="rdoBtn"><input type="radio" name="" checked/>3개</label>						
+															<label class="rdoBtn"><input type="radio" name=""/>4개</label>
+															<label class="rdoBtn"><input type="radio" name=""/>5개</label>
+														</td>
+													</tr>
+												</table>
+												<ul class="panelBar">
+													<li class="left">
+														<button type="button" class="btn btn-danger btn-lg" id="">상품삭제</button>
+													</li>
+													<li class="right">
+														<button type="button" class="btn btn-info btn-lg" id="">상품추가</button>
+													</li>													
+												</ul>
+												<!-- Agrid -->
+												<div id="gridSectionGbList1" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+											</div>
+										</td>
+									</tr>
+								</table>
+							</div>
+						</div>
+						</form> <!-- 구분1 -->
+						<!-- 구분 1 -->
+						
+						<!-- 구분2 -->
+						<form id="searchForm2" name="searchForm2" action="#" th:action="@{'/'}">
+						<div class="inner-panelContent" id="btnAddGridNum2" style="display:none;">
+							<div class="panelContent">
+								<table class="frmStyle">
+									<colgroup>
+										<col width="10%"/>
+										<col width="90%"/>
+									</colgroup>
+									<tr>
+										<th>상품 구분 2<br><br>
+											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum2();">구분 삭제</button>
+										</th>
+										<td>
+											<div class="">
+												<table  class="frmStyle">
+													<tr>
+														<th class="w100">번호</th>
+														<td>
+															<input type="text" name="" placeholder="자동생성" readonly="readonly"/>								
+														</td>
+													</tr>
+													<tr>
+														<th>링크</th>
+														<td>
+															<input type="text" name=""/>								
+														</td>
+													</tr>
+													<tr>
+														<th>상품 노출 기준</th>
+														<td>
+															<label class="rdoBtn"><input type="radio" name=""/>1개</label>
+															<label class="rdoBtn"><input type="radio" name=""/>2개</label>
+															<label class="rdoBtn"><input type="radio" name="" checked/>3개</label>						
+															<label class="rdoBtn"><input type="radio" name=""/>4개</label>
+															<label class="rdoBtn"><input type="radio" name=""/>5개</label>
+														</td>
+													</tr>
+												</table>
+												<ul class="panelBar">
+													<li class="left">
+														<button type="button" class="btn btn-danger btn-lg" id="" >상품삭제</button>
+													</li>
+													<li class="right">
+														<button type="button" class="btn btn-info btn-lg" id="">상품추가</button>
+													</li>													
+												</ul>
+												<!-- Agrid -->
+												<div id="gridSectionGbList2" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+											</div>
+										</td>
+									</tr>
+								</table>
+							</div>
+						</div>
+						</form>
+						<!-- 구분2  -->
+						
+						<!-- 구분3 -->
+						<form id="searchForm3" name="searchForm3" action="#" th:action="@{'/'}">
+						<div class="inner-panelContent" id="btnAddGridNum3" style="display:none;">
+							<div class="panelContent">
+								<table class="frmStyle">
+									<colgroup>
+										<col width="10%"/>
+										<col width="90%"/>
+									</colgroup>
+									<tr>
+										<th>상품 구분 3<br><br>
+											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum3();">구분 삭제</button>
+										</th>
+										<td>
+											<div class="">
+												<table  class="frmStyle">
+													<tr>
+														<th class="w100">번호</th>
+														<td>
+															<input type="text" name="" placeholder="자동생성" readonly="readonly"/>								
+														</td>
+													</tr>
+													<tr>
+														<th>링크</th>
+														<td>
+															<input type="text" name=""/>								
+														</td>
+													</tr>
+													<tr>
+														<th>상품 노출 기준</th>
+														<td>
+															<label class="rdoBtn"><input type="radio" name=""/>1개</label>
+															<label class="rdoBtn"><input type="radio" name=""/>2개</label>
+															<label class="rdoBtn"><input type="radio" name="" checked/>3개</label>						
+															<label class="rdoBtn"><input type="radio" name=""/>4개</label>
+															<label class="rdoBtn"><input type="radio" name=""/>5개</label>
+														</td>
+													</tr>
+												</table>
+												<ul class="panelBar">
+													<li class="left">
+														<button type="button" class="btn btn-danger btn-lg" id="" >상품삭제</button>
+													</li>
+													<li class="right">
+														<button type="button" class="btn btn-info btn-lg" id="">상품추가</button>
+													</li>													
+												</ul>
+												<!-- Agrid -->
+												<div id="gridSectionGbList3" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+											</div>
+										</td>
+									</tr>
+								</table>
+							</div>
+						</div>
+						</form>
+						<!-- 구분3 -->
+						
+						<!-- 구분4 -->
+						<form id="searchForm4" name="searchForm4" action="#" th:action="@{'/'}">
+						<div class="inner-panelContent" id="btnAddGridNum4" style="display:none;">
+							<div class="panelContent">
+								<table class="frmStyle">
+									<colgroup>
+										<col width="10%"/>
+										<col width="90%"/>
+									</colgroup>
+									<tr>
+										<th>상품 구분 4<br><br>
+											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum4();">구분 삭제</button>
+										</th>
+										<td>
+											<div class="">
+												<table  class="frmStyle">
+													<tr>
+														<th class="w100">번호</th>
+														<td>
+															<input type="text" name="" placeholder="자동생성" readonly="readonly"/>								
+														</td>
+													</tr>
+													<tr>
+														<th>링크</th>
+														<td>
+															<input type="text" name=""/>								
+														</td>
+													</tr>
+													<tr>
+														<th>상품 노출 기준</th>
+														<td>
+															<label class="rdoBtn"><input type="radio" name=""/>1개</label>
+															<label class="rdoBtn"><input type="radio" name=""/>2개</label>
+															<label class="rdoBtn"><input type="radio" name="" checked/>3개</label>						
+															<label class="rdoBtn"><input type="radio" name=""/>4개</label>
+															<label class="rdoBtn"><input type="radio" name=""/>5개</label>
+														</td>
+													</tr>
+												</table>
+												<ul class="panelBar">
+													<li class="left">
+														<button type="button" class="btn btn-danger btn-lg" id="" >상품삭제</button>
+													</li>
+													<li class="right">
+														<button type="button" class="btn btn-info btn-lg" id="">상품추가</button>
+													</li>													
+												</ul>
+												<!-- Agrid -->
+												<div id="gridSectionGbList4" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+											</div>
+										</td>
+									</tr>
+								</table>
+							</div>
+						</div>
+						</form>
+						<!-- 구분4 -->
+						
+						<!-- 구분5 -->
+						<form id="searchForm5" name="searchForm5" action="#" th:action="@{'/'}">
+						<div class="inner-panelContent" id="btnAddGridNum5" style="display:none;">
+							<div class="panelContent">
+								<table class="frmStyle">
+									<colgroup>
+										<col width="10%"/>
+										<col width="90%"/>
+									</colgroup>
+									<tr>
+										<th>상품 구분 5<br><br>
+											<button type="button" class="btn btn-danger btn-lg" id="" onclick="btnDeleteGridNum5();">구분 삭제</button>
+										</th>
+										<td>
+											<div class="">
+												<table  class="frmStyle">
+													<tr>
+														<th class="w100">번호</th>
+														<td>
+															<input type="text" name="" placeholder="자동생성" readonly="readonly"/>								
+														</td>
+													</tr>
+													<tr>
+														<th>링크</th>
+														<td>
+															<input type="text" name=""/>								
+														</td>
+													</tr>
+													<tr>
+														<th>상품 노출 기준</th>
+														<td>
+															<label class="rdoBtn"><input type="radio" name=""/>1개</label>
+															<label class="rdoBtn"><input type="radio" name=""/>2개</label>
+															<label class="rdoBtn"><input type="radio" name="" checked/>3개</label>						
+															<label class="rdoBtn"><input type="radio" name=""/>4개</label>
+															<label class="rdoBtn"><input type="radio" name=""/>5개</label>
+														</td>
+													</tr>
+												</table>
+												<ul class="panelBar">
+													<li class="left">
+														<button type="button" class="btn btn-danger btn-lg" id="" >상품삭제</button>
+													</li>
+													<li class="right">
+														<button type="button" class="btn btn-info btn-lg" id="">상품추가</button>
+													</li>													
+												</ul>
+												<!-- Agrid -->
+												<div id="gridSectionGbList5" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+											</div>
+										</td>
+									</tr>
+								</table>
+							</div>
+						</div>
+						</form>
+						<!-- 구분5 -->
+					
+						
+					</div> <!-- panelContent -->
+				</div> <!-- end of inner-panelContent -->
+			</div>
+			<!-- 팡업창 하단부분 끝 -->
+
+		<!-- 버튼 배치 영역 -->
+		<ul class="panelBar">
+			<li class="left"  th:if="${mode  == 'N' }">
+				<button type="button" class="btn btn-danger btn-lg" id="btndeleteMailHF">삭제</button>
+			</li>
+			<li class="right">
+				<button type="button" class="btn btn-info btn-lg" id="btnSaveMailHF">저장</button>
+			</li>
+		</ul>
+		<!-- //버튼 배치 영역 -->
+	</div>
+</div>
+
+<script type="text/javascript" src="/ux/plugins/summernote/summernote.js?v=2020102902"></script>
+<script type="text/javascript" src="/ux/plugins/gaga/gaga.summernote.js?v=20201030"></script>
+<script th:inline="javascript">
+/*<![CDATA[*/
+
+		// 상품 구분 추가 버튼
+		// 추가 버튼 표시는 1~5까지 순서대로 표시
+		function btnAddGrid(){
+			if($('#btnAddGridNum').css('display') == 'none'){
+				$('#btnAddGridNum').show();('#searchForm1')
+			}else if($('#btnAddGridNum2').css('display') == 'none'){
+				$('#btnAddGridNum2').show();('#searchForm2')
+			}else if($('#btnAddGridNum3').css('display') == 'none' && $('#btnAddGridNum2').css('display') != 'none'){
+				$('#btnAddGridNum3').show();('#searchForm3')
+			}else if($('#btnAddGridNum4').css('display') == 'none' && $('#btnAddGridNum3').css('display') != 'none'){
+				$('#btnAddGridNum4').show();('#searchForm4')
+			}else if($('#btnAddGridNum5').css('display') == 'none' && $('#btnAddGridNum4').css('display') != 'none'){
+				$('#btnAddGridNum5').show();('#searchForm5')
+			}else if($('#btnAddGridNum5').css('display') != 'none'){
+				mcxDialog.alertC("구분자는 최대 5개까지 등록가능합니다.", {
+					sureBtnText: "확인"
+				});
+				return false;
+			}
+		} //end of btnAddGrid
+		
+		// 상품 구분 삭제 버튼
+		// 삭제는 해당 하는 폼이 삭제
+		function btnDeleteGridNum(){
+			if($('#btnAddGridNum').css('display') !='none'){
+				$('#btnAddGridNum').hide();
+				$('#btnAddGridNum')[0].reset();
+			}
+		}		
+		function btnDeleteGridNum2(){
+			if($('#btnAddGridNum2').css('display') !='none'){
+				$('#btnAddGridNum2').hide();
+				$('#searchForm2')[0].reset();
+			}			
+		}			
+		function btnDeleteGridNum3(){
+			if ($('#btnAddGridNum3').css('display') !='none'){
+				$('#btnAddGridNum3').hide();
+				$('#searchForm3')[0].reset();
+			}			
+		}		
+		function btnDeleteGridNum4(){
+			if ($('#btnAddGridNum4').css('display') !='none'){
+				$('#btnAddGridNum4').hide();
+				$('#searchForm3')[0].reset();
+			}			
+		}
+		function btnDeleteGridNum5(){
+			if ($('#btnAddGridNum5').css('display') !='none'){
+				$('#btnAddGridNum5').hide();
+				$('#searchForm5')[0].reset();
+			}			
+		}
+
+	
+		//상품 전시 그리드 그리기
+		var columnMktProductList = [
+		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+		{headerName: "Product ID", field: "" , width: 120, cellClass: 'text-center'},
+		{headerName: "상품명", field: "" , width: 200, cellClass: 'text-center'},
+		{headerName: "판매상태", field: "" , width: 120, cellClass: 'text-center'},
+		{headerName: "정상가", field: "" , width: 120, cellClass: 'text-center'},
+		{headerName: "판매가", field: "" , width: 120, cellClass: 'text-center'},
+		{headerName: "순번", field: "" , width: 120, cellClass: 'text-center'},
+	];
+	
+		//리스토 값 전달
+		var gridOptionsMktProductList = gagaAgGrid.getGridOptions(columnMktProductList);
+		
+		
+		
+		$(document).ready(function() {
+		
+		gagaAgGrid.createGrid("gridSectionGbList1", gridOptionsMktProductList);
+		gagaAgGrid.createGrid("gridSectionGbList2", gridOptionsMktProductList);
+		gagaAgGrid.createGrid("gridSectionGbList3", gridOptionsMktProductList);
+		gagaAgGrid.createGrid("gridSectionGbList4", gridOptionsMktProductList);
+		gagaAgGrid.createGrid("gridSectionGbList5", gridOptionsMktProductList);
+
+		
+		// Create a summernote
+		let snOptions = gagaSn.getToolbarOptions();
+		gagaSn.createSummernote(snOptions, '#mailContent');
+		
+		
+	});
+/*]]>*/
+</script>
+
+</html>

+ 161 - 0
src/main/webapp/WEB-INF/views/marketing/MktmailmanagementForm.html

@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : MktmailmanagementForm.html
+ * @desc    : MKT 메일관리
+ *============================================================================
+ * SISUN
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.05   csh9191     최초 작성
+ *******************************************************************************
+ -->
+	<div id="main">
+		<!-- 메인타이틀 영역 -->
+		<div class="main-title"></div>
+		<!-- //메인타이틀 영역 -->
+		
+		<!-- 메뉴 설명 -->
+		<div class="infoBox menu-desc"></div>
+
+		<form id="searchForm" name="searchForm" action="#" th:action="@{'/marketing/Mktmailmanagement/list'}">
+
+			<!-- 검색조건 영역 -->
+			<div class="panelStyle" >
+				<!-- //TITLE -->
+				<div class="panelContent">
+					<table class="frmStyle">
+						<colgroup>
+							<col style="width: 7%;"/>
+							<col/>
+						</colgroup>
+
+						<tr>
+							<th>기간<em class="required" title="필수"></em></th>
+							<td id="sellTerms"></td>
+						</tr>
+
+						<tr>
+							<th>조회</th>
+							<td>
+								<label class="rdoBtn"><input type="radio" name="mailtSq"  checked/>메일번호</label>
+								<label class="rdoBtn"><input type="radio" name="mailtNm"/>타이틀</label>
+								<input type="text" class="w900" name="searchTxt" id="searchTxt"/>
+							</td>
+						</tr>
+					</table>
+					<ul class="panelBar">
+						<li class="center">
+							<button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset();" >초기화</button>
+							<button type="button" class="btn btn-info btn-lg" id="btnSearch" >조회</button>
+						</li>
+					</ul>
+				</div>
+			</div>
+			<!-- 검색조건 영역 -->
+
+			<!-- 리스트 영역 -->
+			<div class="panelStyle">
+				<!-- 버튼 배치 영역 -->
+				<ul class="panelBar">
+					<li class="left">
+						<button type="button" class="btn btn-danger btn-lg" id="btnDeleteRow">선택삭제</button>	
+					</li>
+					<li class="right">
+						<button type="button" class="btn btn-info btn-lg" onclick="fnOpenMailHFPopup('N');">메일템플릿 등록</button>
+						<!-- 상세보기 로직 완성 후 삭제할것 -->
+						<button type="button" class="btn btn-warning btn-lg" onclick="fnOpenMailHFPopup('U');">상세보기 임시버튼</button>
+				</ul>
+				<!-- //버튼 배치 영역 -->
+				<div id="gridList" style="width: 100%; height: 570px" class="ag-theme-balham"></div>
+			</div>
+		<!-- //리스트 영역 -->
+		</form>
+	</div>
+<script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js"></script>
+<script th:inline="javascript">
+
+/*<![CDATA[*/
+	var columnDefs = [];
+	columnDefs = [
+		{
+			width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false
+		},
+		{headerName: "메일번호", field: "mailtSq", width: 100, cellClass: 'text-center'
+		},
+		{
+			headerName: "타이틀", field: "mailtNm", width: 350, cellClass: 'text-center'
+		},
+		{	//미리보기 
+			headerName: "", field: "", width: 150, cellClass: 'text-center',
+			cellRenderer: function(params) { 
+				return '<a href="javascript:void(0);">' + params.value + '</a>'; 
+			}
+		},
+		{
+			headerName: "등록자", field: "regNm", width: 150, cellClass: 'text-center'},
+		{
+			headerName: "등록일시", field: "regDt", width: 200, cellClass: 'text-center',
+			cellRenderer: function(params) { return gagaAgGrid.toDateTimeFormat(params.value); }
+		},
+		{
+			headerName: "수정자", field: "updNm", width: 150, cellClass: 'text-center'},
+		{
+			headerName: "수정일시", field: "updDt", width: 200, cellClass: 'text-center', 
+			cellRenderer: function(params) { return gagaAgGrid.toDateTimeFormat(params.value); }
+		}
+	];
+	
+	// Get GridOptions
+	var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+	
+	//검색 조건 확인
+	//TODO
+	
+	
+	// 선택삭제 버튼 다중 선택 추가
+	gridOptions.rowSelection = 'multiple';	
+	
+	//셀 클릭 이벤트 -> 팝업창
+	gridOptions.onCellClicked = function(event) {
+		if (event.colDef.field != 'mailhfNm')
+			return;
+		
+		fnOpenMailHFPopup('U', event.data.mailhfSq);
+	}
+	
+	
+	// 조회버튼 - 검색
+	$('#btnSearch').on('click', function() {
+		var formId = "#searchForm";
+		gagaAgGrid.fetch($(formId).prop('action'), gridOptions, formId);
+	});
+	
+	
+	// 등록/상세 팝업
+	var fnOpenMailHFPopup = function(mode, mailtSq) {
+		var actionUrl = '/marketing/mktmailmanagement/detail/form' + '?mode=' + mode;
+		if (!gagajf.isNull(mailtSq)) actionUrl += '&mailtSq=' + mailtSq;
+		cfnOpenModalPopup(actionUrl, 'popupMailHF');
+	}
+	
+	
+	
+	$(document).ready(function() {
+	
+		cfnCreateCalendar('#sellTerms', 'tmtbStdt', 'tmtbEddt', true);
+	
+		// Create a agGrid
+		gagaAgGrid.createGrid('gridList', gridOptions);
+		gagaAgGrid.hideStatusBar('gridList');
+	
+	});
+
+/*]]>*/
+
+</script>
+</html>