Преглед изворни кода

메인 전시 GNB 탭 임시저장

bin2107 пре 5 година
родитељ
комит
0c89bb1afc

+ 48 - 1
src/main/java/com/style24/admin/biz/service/TsaDisplayService.java

@@ -15,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Collection;
 
 /**
@@ -497,7 +498,47 @@ public class TsaDisplayService {
 	 * @since 2021. 2. 23
 	 */
 	public Collection<Contents> getContentsPreviewList(Contents contents) {
-		return displayDao.getContentsPreviewList(contents);
+		if("STAB001".equals(contents.getContentsLoc())){
+			Collection<Contents> contentsList = displayDao.getContentsPreviewList(contents);
+			for(Contents contentsInfo : contentsList){
+				if("B".equals(contentsInfo.getContentsType())){
+					log.info("contentsInfo.getStrVar2()::{}",contentsInfo.getStrVar2().substring(1,contentsInfo.getStrVar2().length()));
+					log.info("contentsInfo.getStrVar3()::{}",contentsInfo.getStrVar3());
+					log.info("contentsInfo.getStrVar4()::{}",contentsInfo.getStrVar4());
+					//String[] temp1Arr = contentsInfo.getStrVar2().split(",");
+					String brand1 = contentsInfo.getStrVar2().substring(1,contentsInfo.getStrVar2().length());
+					String[] brand1Split = brand1.split(",");
+
+					log.info("brand1Split::::",brand1Split);
+					/*for(int i in brand1Split){
+						brand1Arr.push(brand1Split[i]);
+					}*/
+					contentsInfo.setBrandGroup1Arr(contentsInfo.getStrVar2().split(","));
+
+					//log.info("temp1Arr:::{}",temp1Arr);
+					/*for (String temp1 : temp1Arr) {
+						MenuRole menuRole = new MenuRole();
+						menuRole.setRoleCd(roleCd);
+						menuRole.setMenuId(menu.getMenuId());
+						menuRole.setRegNo(TsaSession.getInfo().getUserNo());
+						menuRole.setUpdNo(TsaSession.getInfo().getUserNo());
+					}
+
+					String[] temp1Arr = contentsInfo.getStrVar2().split(",");
+					//contentsInfo.setBrandGroup1Arr(temp1Arr);
+					String[] temp2Arr = contentsInfo.getStrVar3().split(",");
+					//contentsInfo.setBrandGroup2Arr(temp2Arr);
+					String[] temp3Arr = contentsInfo.getStrVar4().split(",");*/
+					//contentsInfo.setBrandGroup3Arr(temp3Arr);
+				}
+				log.info("getBrandGroup1Arr::{}",contentsInfo.getBrandGroup1Arr());
+				log.info("getBrandGrou2Arr::{}",contentsInfo.getBrandGroup2Arr());
+				log.info("getBrandGroup3Arr::{}",contentsInfo.getBrandGroup3Arr());
+			}
+			return null;
+		}else{
+			return displayDao.getContentsPreviewList(contents);
+		}
 	}
 
 	/**
@@ -549,10 +590,13 @@ public class TsaDisplayService {
 
 		int ind = 1;
 		for (Contents contents : contentsList) {
+			log.info("1==========={}");
 			if (contents != null && contents.getDispStdt() != null && !contents.getDispStdt().equals("")) {
 				// 브랜드 이미지 변경이 일어났을 경우
+				log.info("2==========={}");
 				String brandGroupImg = contents.getBrandGroupImg();
 				if(brandGroupImg != null && !brandGroupImg.equals("")){
+					log.info("3==========={}");
 					String imgInd = "01";
 					String bannerUploadPath = env.getProperty("upload.default.target.path");
 					bannerUploadPath = bannerUploadPath + "/display/";
@@ -572,9 +616,12 @@ public class TsaDisplayService {
 				}
 
 				int cnt = 1;
+				log.info("4==========={}");
 				for (String newImgFile : contents.getNewImgFileArr()) {
+					log.info("5==========={}");
 					//이미지 변경이 일어났을 경우
 					if (newImgFile != null && !newImgFile.equals("")) {
+						log.info("6==========={}");
 						String imgInd = String.valueOf(ind);
 						if (ind < 10) {
 							imgInd = "0" + imgInd;

+ 9 - 1
src/main/java/com/style24/persistence/domain/Contents.java

@@ -16,7 +16,7 @@ public class Contents extends TscBaseDomain {
     private String contentsType;
     private String dispStdt;
     private String dispEddt;
-    private Integer dispOrd;
+    private int dispOrd;
     private String contentsYn;
     private String imgPath1;
     private String imgPath2;
@@ -58,6 +58,7 @@ public class Contents extends TscBaseDomain {
     private String goodsImgList;
 
     List<Contents> dataList;
+    List<BrandGroup> brandGroupdList;
 
     @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
     private String[] contentsLocArr;
@@ -69,4 +70,11 @@ public class Contents extends TscBaseDomain {
     private String[] goodsNmArr;
     @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
     private String[] goodsImgArr;
+
+    @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+    private String[] brandGroup1Arr;
+    @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+    private String[] brandGroup2Arr;
+    @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+    private String[] brandGroup3Arr;
 }

+ 317 - 23
src/main/webapp/WEB-INF/views/display/MainGnbContentsPopupForm.html

@@ -27,7 +27,7 @@
 					</li>
 					<li class="aR">
 						<button type="button" class="btn btn btn-base btn-sm" onclick="fnAddTab(this);">TAB 컨텐츠 추가</button>
-						<button type="button" class="btn btn btn-dark btn-sm" id="btnPopSave">임시저장</button>
+						<button type="button" class="btn btn btn-dark btn-sm" id="btnGnbTabSave">임시저장</button>
 					</li>
 				</ul>
 			</div>
@@ -92,32 +92,53 @@
 
 	var fnChangeCateType = function (obj, idx){
 		let cateType = $("#tabTable"+idx).find("input:radio[name=cateType"+idx+"]:checked").val();
-		console.log('cateType>>>'+cateType);
 
 		var html = '';
-		if(cateType=='brand'){
+		if(cateType=='B'){
 			$(obj).closest("table").find("[name=tabBrandRow]").show();
 			$(obj).closest("table").find("[name=tabCateRow]").hide();
 			$(obj).closest("table").find("[name=tabOutletRow]").hide();
 			$(obj).closest("table").find("[name=tabLinkTitleRow]").hide();
 			$(obj).closest("table").find("[name=tabLinkRow]").hide();
-		}else if(cateType=='category'){
+			/*$(obj).closest("table").find("[name=title]").val("브랜드");
+			$(obj).closest("table").find("[name=link]").val("/brand/list");
+			$(obj).closest("table").find("[name=title]").attr("readOnly",true);
+			$(obj).closest("table").find("[name=link]").attr("readOnly",true);*/
+		}else if(cateType=='C'){
 			$(obj).closest("table").find("[name=tabBrandRow]").hide();
+			$(obj).closest("table").find("[name=tabBrandTitle]").hide();
+			$(obj).closest("table").find("[name=tabBrandLink]").hide();
 			$(obj).closest("table").find("[name=tabCateRow]").show();
 			$(obj).closest("table").find("[name=tabOutletRow]").hide();
 			$(obj).closest("table").find("[name=tabLinkTitleRow]").hide();
 			$(obj).closest("table").find("[name=tabLinkRow]").hide();
-		}else if(cateType=='outlet'){
+			/*$(obj).closest("table").find("[name=title]").val("");
+			$(obj).closest("table").find("[name=link]").val("/category/form");
+			$(obj).closest("table").find("[name=title]").attr("readOnly",true);
+			$(obj).closest("table").find("[name=link]").attr("readOnly",true);*/
+		}else if(cateType=='O'){
 			$(obj).closest("table").find("[name=tabBrandRow]").hide();
+			$(obj).closest("table").find("[name=tabBrandTitle]").hide();
+			$(obj).closest("table").find("[name=tabBrandLink]").hide();
 			$(obj).closest("table").find("[name=tabCateRow]").hide();
 			$(obj).closest("table").find("[name=tabLinkTitleRow]").hide();
 			$(obj).closest("table").find("[name=tabLinkRow]").hide();
-		}else if(cateType=='link'){
+			/*$(obj).closest("table").find("[name=title]").val("아울렛");
+			$(obj).closest("table").find("[name=link]").val("/outlet/main");
+			$(obj).closest("table").find("[name=title]").attr("readOnly",true);
+			$(obj).closest("table").find("[name=link]").attr("readOnly",true);*/
+		}else if(cateType=='L'){
 			$(obj).closest("table").find("[name=tabBrandRow]").hide();
+			$(obj).closest("table").find("[name=tabBrandTitle]").hide();
+			$(obj).closest("table").find("[name=tabBrandLink]").hide();
 			$(obj).closest("table").find("[name=tabCateRow]").hide();
 			$(obj).closest("table").find("[name=tabOutletRow]").hide();
 			$(obj).closest("table").find("[name=tabLinkTitleRow]").show();
 			$(obj).closest("table").find("[name=tabLinkRow]").show();
+			/*$(obj).closest("table").find("[name=title]").val("");
+			$(obj).closest("table").find("[name=link]").val("#");
+			$(obj).closest("table").find("[name=title]").attr("readOnly",false);
+			$(obj).closest("table").find("[name=link]").attr("readOnly",false);*/
 		}
 	}
 
@@ -126,7 +147,14 @@
 	 */
 	var tabIdx = 0;
 	var fnAddTab = function (param){
+		if(gagajf.isNull($(".tabTable").find("input[data-id]").val())){
+			tabIdx = 0;
+		}else{
+			tabIdx = parseInt($(".tabTable").find("input[data-id]").val())+1;
+		}
+
 		var html = '<table class="frmStyle tabTable" style="margin-bottom:30px" id="tabTable'+tabIdx+'">';
+		html += '<input type="hidden" name="idxTest" value="'+tabIdx+'" data-id="'+tabIdx+'">';
 		html += '<colgroup>';
 		html += '<col style="width:10%;"/>';
 		html += '<col style="width:55%;"/>';
@@ -159,15 +187,23 @@
 		html += '	<tr name="tabBrandRow" style="display:none;">';
 		html += '		<th>캐주얼<br><button type="button" class="btn btn-base btn-lg" onclick="fnSearchBrand(\''+tabIdx+'\',1);">브랜드조회</button></th>';
 		html += '		<td colspan="3" id="tabBrand1">';
+		html += '			<ul class="brandGroupUl">';
+		html += '			</ul>';
 		html += '		</td>';
 		html += '	</tr>';
 		html += '	<tr name="tabBrandRow" style="display:none;">';
 		html += '		<th>골프<br><button type="button" class="btn btn-base btn-lg" onclick="fnSearchBrand(\''+tabIdx+'\',2);">브랜드조회</button></th>';
-		html += '		<td colspan="3" id="tabBrand2"></td>';
+		html += '		<td colspan="3" id="tabBrand2">';
+		html += '			<ul class="brandGroupUl">';
+		html += '			</ul>';
+		html += '		</td>';
 		html += '	</tr>';
 		html += '	<tr name="tabBrandRow" style="display:none;">';
 		html += '		<th>키즈<br><button type="button" class="btn btn-base btn-lg" onclick="fnSearchBrand(\''+tabIdx+'\',3);">브랜드조회</button></th>';
-		html += '		<td colspan="3" id="tabBrand3"></td>';
+		html += '		<td colspan="3" id="tabBrand3">';
+		html += '			<ul class="brandGroupUl">';
+		html += '			</ul>';
+		html += '		</td>';
 		html += '	</tr>';
 		html += '	<tr name="tabCateRow" style="display:none;">';
 		html += '		<th>카테고리</th>';
@@ -186,7 +222,7 @@
 		html += '	</tr>';
 		html += '	<tr name="tabLinkRow" style="display:none;">';
 		html += '		<th>링크 (없으면 #)</th>';
-		html += '		<td><input name="link" type="text" maxlength="200" required="required" data-valid-name="링크" value=""/></td>';
+		html += '		<td><input name="link" type="text" maxlength="200" data-valid-name="링크" value=""/></td>';
 		html += '	</tr>';
 		html += '</tbody>';
 		html += '</table>';
@@ -200,20 +236,25 @@
 			defaultDate: $('.schDate').val()
 		});
 		tabIdx++;
-		//fnResetTabIdx();
+		fnResetTabIdx();
 		//fnResetCateTypeIdx();
 	}
 
 	var cateTypeIdx = 0;
 	var fnCateTypeArea = function (){
+		if(gagajf.isNull($(".tabTable").find("input[data-id]").val())){
+			cateTypeIdx = 0;
+		}else{
+			cateTypeIdx = parseInt($(".tabTable").find("input[data-id]").val())+1;
+		}
 		var html = '';
 		html += '<tr class="cateTypeTr">';
 		html += '<th>유형선택</th>';
 		html += '<td colspan="3">';
-		html += '<label class="rdoBtn"><input type="radio" name="cateType'+cateTypeIdx+'" value="brand" onclick="fnChangeCateType(this,'+cateTypeIdx+');"/>브랜드</label>';
-		html += '<label class="rdoBtn"><input type="radio" name="cateType'+cateTypeIdx+'" value="category" onclick="fnChangeCateType(this,'+cateTypeIdx+');"/>대카테고리</label>';
-		html += '<label class="rdoBtn"><input type="radio" name="cateType'+cateTypeIdx+'" value="outlet" onclick="fnChangeCateType(this,'+cateTypeIdx+');"/>아울렛</label>';
-		html += '<label class="rdoBtn"><input type="radio" name="cateType'+cateTypeIdx+'" value="link" onclick="fnChangeCateType(this,'+cateTypeIdx+');"/>이벤트링크</label>';
+		html += '<label class="rdoBtn"><input type="radio" name="cateType'+cateTypeIdx+'" value="B" onclick="fnChangeCateType(this,'+cateTypeIdx+');"/>브랜드</label>';
+		html += '<label class="rdoBtn"><input type="radio" name="cateType'+cateTypeIdx+'" value="C" onclick="fnChangeCateType(this,'+cateTypeIdx+');"/>대카테고리</label>';
+		html += '<label class="rdoBtn"><input type="radio" name="cateType'+cateTypeIdx+'" value="O" onclick="fnChangeCateType(this,'+cateTypeIdx+');"/>아울렛</label>';
+		html += '<label class="rdoBtn"><input type="radio" name="cateType'+cateTypeIdx+'" value="L" onclick="fnChangeCateType(this,'+cateTypeIdx+');"/>이벤트링크</label>';
 		html += '</td>';
 		html += '</tr>';
 
@@ -223,7 +264,7 @@
 
 	var fnResetTabIdx = function (){
 		$(".tabTable").each(function(i){
-			$(this).attr('id','tabTable'+i);
+			//$(this).attr('id','tabTable'+i);
 			$(this).find("input[name=dispOrd]").val(i+1);
 		});
 
@@ -245,34 +286,287 @@
 		cfnOpenBrandGroupListPopup("callBackBrandGroup", "S", "S");
 	}
 
+	var brandCdIdx=0;
 	var callBackBrandGroup = function (result){
+		if(gagajf.isNull($("#tabTable"+tabTableRow+" #tabBrand"+callbackBrandTr +" .brandGroupUl").find("input[data-id]:last").val())){
+			brandCdIdx = 0;
+		}else{
+			brandCdIdx = parseInt($("#tabTable"+tabTableRow+" #tabBrand"+callbackBrandTr +" .brandGroupUl").find("input[data-id]:last").val())+1;
+		}
 		var html = '';
 
 		for(let i=0; i<result.length; i++){
 			console.log('brandGroupNo:::'+result[i].brandGroupNo);
-			html += '<ul id="brandUl'+i+'">';
-			html += '<span id="brandSpan'+i+'">';
-			html += '	<input type="hidden" name="brandGroupNo" value="'+result[i].brandGroupNo+'"/>'
-			html += '	<span style="margin-right:10px;">'+result[i].brandGroupNo+'<a href="javascript:void(0);" onclick="fnRemoveBrand(this,'+i+');">X</a></span>';
+			html += '<span id="brandSpan'+brandCdIdx+'">';
+			html += '<input type="hidden" name="hIdx" value="'+brandCdIdx+'" data-id="'+brandCdIdx+'">';
+			html += '	<input type="text" class="w100" name="brandGroupNo" id="brandGroupNo_'+brandCdIdx+'" value="'+result[i].brandGroupNo+'" disabled="disabled"/>'
+			html += '	<span style="margin-right:10px;"><a href="javascript:void(0);" onclick="fnRemoveBrand(this,'+brandCdIdx+');">X</a></span>';
 			html += '</span>';
-			html += '</ul>';
-		}
 
-		$("#tabTable"+tabTableRow +" #tabBrand"+callbackBrandTr).append(html);
+		}
+		$("#tabTable"+tabTableRow +" #tabBrand"+callbackBrandTr+" .brandGroupUl").append(html);
 	}
 
 	var fnRemoveBrand = function (obj, idx){
-		var divId = $(obj).closest('ul').attr('id');
+		var divId = $(obj).closest('td').attr('id');
 		$("#"+divId+" #brandSpan"+idx).remove();
 	}
 
 	// 컨텐츠 행삭제
 	var fnDeleteContentsRow = function (obj){
 		$(obj).closest("table").remove();
+		fnResetTabIdx();
+	}
+
+	/**
+	 * 임시저장
+	 */
+	var dataArr = [];
+	$("#btnGnbTabSave").on('click',function (){
+		if(!gagajf.checkRequired("#gnbTabList")){
+			return;
+		}
+		dataArr = [];
+		console.log('1');
+		$(".tabTable").each(function (){
+			console.log('2');
+			//var brandCasualArr = [];
+			//var brandGolfArr = [];
+			//var brandKidsArr = [];
+			var strTitle1 = "";		// 타이틀
+			var strTitle2 = "";		// category 일때, 카테코드
+			var strVar1 = "";		// 링크
+
+			var brnadCasualList = "";
+			var brnadGolfList = "";
+			var brnadKidsList = "";
+
+			var radioNm = $(this).find(".rdoBtn input").attr("name");
+			var radioValue = $(this).find("input:radio[name="+radioNm+"]:checked").val();
+
+			if(radioValue=='B'){
+				$(this).find("#tabBrand1 >ul >span").each(function (){
+					//brandCasualArr.push($(this).find("input[name=brandGroupNo]").val());
+					brnadCasualList += ','+$(this).find("input[name=brandGroupNo]").val();
+				});
+				$(this).find("#tabBrand2 >ul >span").each(function (){
+					//brandCasualArr.push($(this).find("input[name=brandGroupNo]").val());
+					brnadGolfList += ','+$(this).find("input[name=brandGroupNo]").val();
+				});
+				$(this).find("#tabBrand3 >ul >span").each(function (){
+					//brandCasualArr.push($(this).find("input[name=brandGroupNo]").val());
+					brnadKidsList += ','+$(this).find("input[name=brandGroupNo]").val();
+				});
+				strTitle1 = "브랜드";
+				strVar1 = "/brand/list";
+			}
+
+			if(radioValue=='C'){
+				var cateText = $(this).find("tr[name=tabCateRow]").find("select[name=cate1List] option:selected").text();
+				var cateValue = $(this).find("tr[name=tabCateRow]").find("select[name=cate1List] option:selected").val();
+				var cateTextArr = cateText.split(" ");
+				strTitle1 = cateTextArr[1];
+				strVar1 = "/category/form";
+				strVar2 = cateValue;
+			}
+
+			if(radioValue=='O'){
+				strTitle1 = "아울렛";
+				strVar1 = "/outlet/main";
+			}
+
+			if(radioValue=='L'){
+				strTitle1 = $(this).find("input[name=title]").val();
+				strVar1 = $(this).find("input[name=link]").val();
+			}
+
+			var dispStdt = $(this).find("[name=dispStdt]").val().replace(/[^0-9]/g, '') + "" +$(this).find("[name=stTimeHour]").val().replace('시', '') + "" +$(this).find("[name=stTimeMin]").val().replace('분', '') + "00";
+			var dispEddt = $(this).find("[name=dispEddt]").val().replace(/[^0-9]/g, '') + "" +$(this).find("[name=edTimeHour]").val().replace('시', '') + "" +$(this).find("[name=edTimeMin]").val().replace('분', '') + "59";
+			var dispOrd = $(this).find("[name=dispOrd]").val();
+			var newImgFileArr = [];
+
+			var data = {
+				cateNo : cateNo
+				, contentsLoc : contentsLoc
+				, contentsType : radioValue
+				, dispOrd : dispOrd
+				, dispStdt : dispStdt
+				, dispEddt : dispEddt
+				, newImgFileArr : newImgFileArr
+				, strVar1 : strVar1
+				, strVar2 : brnadCasualList
+				, strVar3 : brnadGolfList
+				, strVar4 : brnadKidsList
+				, strTitle1 : strTitle1
+				, strTitle2 : strTitle2
+				, useYn : 'Y'
+			}
+			dataArr.push(data);
+		});
+		var jsonData = JSON.stringify(dataArr);
+		mcxDialog.confirm('컨텐츠를 저장 하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				gagajf.ajaxJsonSubmit('/display/contents/preview/save', jsonData, fnGetGnbTabContentsPreviewList);
+			}
+		});
+	});
+
+	var fnGetGnbTabContentsPreviewList = function (){
+		console.log('등록이되었다!');
+		$("#gnbTabList").html('');
+		var data = {cateNo : cateNo
+			,contentsLoc : contentsLoc
+		};
+		var jsonData = JSON.stringify(data);
+		gagajf.ajaxJsonSubmit('/display/contents/preview/list', jsonData, fnCreateGnbTabLayout);
+	}
+
+
+
+	var tableIdx = 0;
+	var fnCreateGnbTabLayout = function (result){
+		/*if(gagajf.isNull($(".tabTable").find("input[data-id]").val())){
+			tabIdx = 0;
+		}else{
+			tabIdx = parseInt($(".tabTable").find("input[data-id]").val())+1;
+		}*/
+		var html = '';
+		for(var i=0; i<result.length; i++){
+			var dispStdt = result[i].dispStdt.split(" ");
+			var dispEddt = result[i].dispEddt.split(" ");
+
+			html += '<table class="frmStyle tabTable" style="margin-bottom:30px" id="tabTable'+i+'">';
+			html += '<input type="hidden" name="idxTest" value="'+i+'" data-id="'+i+'">';
+			html += '<colgroup>';
+			html += '<col style="width:10%;"/>';
+			html += '<col style="width:55%;"/>';
+			html += '<col/>';
+			html += '</colgroup>';
+			html += '<thead>';
+			html += '<tr class="cateTypeTr">';
+			html += '<th>유형선택</th>';
+			html += '<td colspan="3">';
+			if(result[i].contentsType=='B'){
+				html += '<label class="rdoBtn"><input type="radio" name="cateType'+i+'" value="B" onclick="fnChangeCateType(this,'+i+');" checked="checked"/>브랜드</label>';
+			}else{
+				html += '<label class="rdoBtn"><input type="radio" name="cateType'+i+'" value="B" onclick="fnChangeCateType(this,'+i+');"/>브랜드</label>';
+			}
+			if(result[i].contentsType=='C'){
+				html += '<label class="rdoBtn"><input type="radio" name="cateType'+i+'" value="C" onclick="fnChangeCateType(this,'+i+');" checked="checked"/>대카테고리</label>';
+			}else{
+				html += '<label class="rdoBtn"><input type="radio" name="cateType'+i+'" value="C" onclick="fnChangeCateType(this,'+i+');"/>대카테고리</label>';
+			}
+			if(result[i].contentsType=='O'){
+				html += '<label class="rdoBtn"><input type="radio" name="cateType'+i+'" value="O" onclick="fnChangeCateType(this,'+i+');" checked="checked"/>아울렛</label>';
+			}else{
+				html += '<label class="rdoBtn"><input type="radio" name="cateType'+i+'" value="O" onclick="fnChangeCateType(this,'+i+');"/>아울렛</label>';
+			}
+			if(result[i].contentsType=='L'){
+				html += '<label class="rdoBtn"><input type="radio" name="cateType'+i+'" value="L" onclick="fnChangeCateType(this,'+i+');" checked="checked"/>이벤트링크</label>';
+			}else{
+				html += '<label class="rdoBtn"><input type="radio" name="cateType'+i+'" value="L" onclick="fnChangeCateType(this,'+i+');"/>이벤트링크</label>';
+			}
+			html += '</td>';
+			html += '</tr>';
+			html += '<tr><th>전시일시</th><td><input name="dispStdt" type="text" class="w80 schDate" maxlength="10" required="required" data-valid-name="노출시작일" data-valid-type="calendar" value="'+dispStdt[0]+'"/>';
+			html += '<select name="stTimeHour" required="required" data-valid-name="노출기간 시작시간">';
+			html += fnCreateTimeOption(24);
+			html += '</select>';
+			html += '<select name="stTimeMin" required="required" data-valid-name="노출기간 시작시간">';
+			html += fnCreateTimeOption(60);
+			html += '</select>';
+			html += '<span> ~ </span>';
+			html += '<input name="dispEddt" type="text" class="w80 schDate" maxlength="10" required="required" data-valid-name="노출종료일" data-valid-type="calendar" value="'+dispEddt[0]+'"/>';
+			html += '<select name="edTimeHour" required="required" data-valid-name="노출기간 종료시간">';
+			html += fnCreateTimeOption(24,23);
+			html += '</select>';
+			html += '<select name="edTimeMin" required="required" data-valid-name="노출기간 종료시간">';
+			html += fnCreateTimeOption(60,59);
+			html += '</select>';
+			html += '<input name="dispOrd" type="text" class="w80"placeholder="전시순서" style="margin-left:5px; text-align:center" value="'+result[i].dispOrd+'"/>';
+			html += '</td>';
+			html += '<td class="aL cateTypeBtnArea">';
+			html += '<button type="button" class="btn btn-danger btn-lg" onclick="fnDeleteContentsRow(this);">삭제</button></td>';
+			html += '</tr>';
+			html += '</thead>';
+			html += '<tbody>';
+			if(result[i].contentsType=='B'){
+				html += '	<tr name="tabBrandRow">';
+				html += '		<th>캐주얼<br><button type="button" class="btn btn-base btn-lg" onclick="fnSearchBrand(\''+i+'\',1);">브랜드조회</button></th>';
+				html += '		<td colspan="3" id="tabBrand1">';
+				html += '			<ul class="brandGroupUl">';
+
+				html += '			</ul>';
+				html += '		</td>';
+				html += '	</tr>';
+				html += '	<tr name="tabBrandRow">';
+				html += '		<th>골프<br><button type="button" class="btn btn-base btn-lg" onclick="fnSearchBrand(\''+i+'\',2);">브랜드조회</button></th>';
+				html += '		<td colspan="3" id="tabBrand2">';
+				html += '			<ul class="brandGroupUl">';
+
+				html += '			</ul>';
+				html += '		</td>';
+				html += '	</tr>';
+				html += '	<tr name="tabBrandRow">';
+				html += '		<th>키즈<br><button type="button" class="btn btn-base btn-lg" onclick="fnSearchBrand(\''+i+'\',3);">브랜드조회</button></th>';
+				html += '		<td colspan="3" id="tabBrand3">';
+				html += '			<ul class="brandGroupUl">';
+
+				html += '			</ul>';
+				html += '		</td>';
+				html += '	</tr>';
+			}
+			else if(result[i].contentsType=='C'){
+				html += '	<tr name="tabCateRow">';
+				html += '		<th>카테고리</th>';
+				html += '		<td colspan="3">카테고리선택';
+				html += '			<select name="cate1List">';
+				html += '				<option value="">[선택]</option>';
+				for(let i=0; i<cate1List.length; i++){
+					if(strTitle2==cate1List[i].cd){
+						html += '<option value="'+cate1List[i].cd+'" selected="selected">['+cate1List[i].cd+'] '+cate1List[i].cdNm+'</option>';
+					}else{
+						html += '<option value="'+cate1List[i].cd+'">['+cate1List[i].cd+'] '+cate1List[i].cdNm+'</option>';
+					}
+				}
+				html += '			</select>';
+				html += '		</td>';
+				html += '	</tr>';
+			}
+			else if(result[i].contentsType=='L'){
+				html += '	<tr name="tabLinkTitleRow" style="display:none;">';
+				html += '		<th>타이틀</th>';
+				html += '		<td><input name="title" type="text" maxlength="200" data-valid-name="타이틀" value="'+result[i].strTitle1+'"/></td>';
+				html += '	</tr>';
+				html += '	<tr name="tabLinkRow" style="display:none;">';
+				html += '		<th>링크 (없으면 #)</th>';
+				html += '		<td><input name="link" type="text" maxlength="200" data-valid-name="링크" value="'+result[i].strVar1+'"/></td>';
+				html += '	</tr>';
+			}
+			html += '</tbody>';
+			html += '</table>';
+		}
+		$("#gnbTabList").append(html);
+		$("#gnbTabList").sortable();
+		$('.schDate').datepicker("destroy");
+		$('.schDate').datepicker({
+			changeMonth: true,
+			changeYear: true,
+			defaultDate: $('.schDate').val()
+		});
 	}
 
 	$(document).ready(function() {
 		$("#gnbTabList").disableSelection();
+		$("#gnbTabList").sortable({
+			stop: function(event, ui) {
+				fnResetTabIdx();
+			}
+		});
+
+		fnGetGnbTabContentsPreviewList();
 	});
 /*]]>*/
 </script>