فهرست منبع

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.admin.git into develop

gagamel 5 سال پیش
والد
کامیت
7a9871b160

+ 1 - 0
src/main/java/com/style24/persistence/domain/SupplyCompany.java

@@ -55,6 +55,7 @@ public class SupplyCompany extends TscBaseDomain {
 	private String econtractYn;			// 전자계약여부
 	private String remarks;				// 비고
 	private String useYn;				// 사용여부
+	private String note;				// 배송안내정보(상품상세FRONT노출용)
 
 	// 검색조건
 	private String searchGb;			// 검색구분

+ 4 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaBusiness.xml

@@ -139,6 +139,7 @@
 		     , SC.ECONTRACT_YN                                         /*전자계약여부*/
 		     , SC.REMARKS                                              /*비고*/
 		     , SC.USE_YN                                               /*사용여부*/
+		     , SC.NOTE                                                 /*배송안내*/
 		FROM   TB_SUPPLY_COMPANY SC
 		     , TB_SUPPLY_VENDOR SV
 		WHERE  SC.SUPPLY_VENDOR_CD = SV.SUPPLY_VENDOR_CD
@@ -213,6 +214,7 @@
 		     , ECONTRACT_YN
 		     , REMARKS
 		     , USE_YN
+		     , NOTE
 		     , REG_NO
 		     , REG_DT
 		     , UPD_NO
@@ -249,6 +251,7 @@
 		     , #{econtractYn}
 		     , #{remarks}
 		     , #{useYn}
+		     , #{note}
 		     , #{regNo}
 		     , NOW()
 		     , #{updNo}
@@ -279,6 +282,7 @@
 		     , ECONTRACT_YN = #{econtractYn}
 		     , REMARKS = #{remarks}
 		     , USE_YN = #{useYn}
+		     , NOTE = #{note}
 		     , UPD_NO = #{updNo}
 		     , UPD_DT = NOW()
 		WHERE  SUPPLY_COMP_CD = #{supplyCompCd}

+ 4 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -3429,6 +3429,10 @@
 		     , #{updNo}
 		     , NOW()
 		)
+		ON DUPLICATE KEY UPDATE
+		       DISP_ORD = #{dispOrd}
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = NOW()
 	</insert>
 	
 	<!-- 광고 키워드 삭제 -->

+ 14 - 1
src/main/webapp/WEB-INF/views/business/SupplyCompanyForm.html

@@ -258,6 +258,12 @@
 							<textarea name="remarks" class="textareaR2"  data-valid-name="비고" ></textarea>
 						</td>
 					</tr>
+					<tr>
+						<th>배송안내</th>
+						<td colspan="7">
+							<textarea class="textareaR3" name="note" id="note"  data-valid-name="배송안내"></textarea>
+						</td>
+					</tr>
 				</table>
 			</form>
 			
@@ -469,6 +475,9 @@
 			$('#detailForm input:radio[name=shotDelvYn]').eq(1).trigger('click');
 		}
 		
+		// 공지내용. Summernote에 값 세팅
+		gagaSn.setContents('#note', event.data.note);
+		
 		// 배송비 정책 조회
 		fnGetDeliveryFeePolicy(event.data.supplyCompCd);
 	}
@@ -489,7 +498,7 @@
 	// 신규버튼
 	$('#btnNew').on('click', function() {
 		$("#detailForm")[0].reset();
-		
+		gagaSn.setContents('#note', '');
 		// 배송비 정책 초기화
 		$('#tbodyDelvFeePolicy').html('');
 		$('.delvFeePolicy').hide();
@@ -679,6 +688,10 @@
 	$(document).ready(function() {
 		// Create a agGrid
 		gagaAgGrid.createGrid('gridList', gridOptions);
+		
+		// Create a summernote
+		var snOptions = gagaSn.getToolbarOptions('media');
+		gagaSn.createSummernote(snOptions, '#note');
 	});
 /*]]>*/
 </script>

+ 119 - 9
src/main/webapp/WEB-INF/views/display/LookbookBannerPopupForm.html

@@ -14,15 +14,28 @@
  * 1.0  2021.03.05   bin2107     최초 작성
  *******************************************************************************
  -->
-<div class="modalPopup" data-width="1400" data-height="750">
-	<div class="panelStyle" >
+<div class="modalPopup" data-width="1600" data-height="850">
+	<div class="panelStyle" style="overflow-y:scroll;">
 		<form id="lbBannerForm" name="lbBannerForm" action="#" th:action="@{'/display/lookbook/save'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
 			<input type="hidden" id="siteCd" name="siteCd" value="G00_10"/>
 			<input type="hidden" id="lookbookSq" name="lookbookSq" th:value="${lookbookSq}"/>
+			<input type="hidden" name="uploadDefaultBannerUrlPop" id="uploadDefaultBannerUrlPop" th:value="${@environment.getProperty('upload.image.view') + '/display/lookbook/banner/'}"/>
 			<div class="panelTitle">
-				<h2 th:text="${'룩북 ' + (mode == 'N' ? '등록1' : '상세')}"></h2>
+				<h2 th:text="${'룩북 ' + (mode == 'N' ? '등록' : '상세')}"></h2>
 				<button type="button" class="close" onclick="uifnPopupClose('popupLookbookBanner');"><i class="fa fa-times"></i></button>
 			</div>
+			<div class="panelContent">
+				<ul class="panelBar">
+					<li class="aL">
+						<span class="cBlue">* 상단으로 드래그&amp;드랍하여 배너 순서 변경 가능합니다.</span><br>
+						<span class="cBlue">* 배너 PICKER는 저장 후 배너 상세 팝업에서 등록할 수 있습니다.</span>
+					</li>
+					<li class="aR">
+						<button type="button" class="btn btn-success btn-lg" id="btnAddBanner">배너추가</button>
+						<button type="button" class="btn btnRight btn-success btn-lg" id="btnSave">저장</button>
+					</li>
+				</ul>
+			</div>
 			<div>
 				<table class="frmStyle">
 					<colgroup>
@@ -105,17 +118,86 @@
 					</tbody>
 				</table>
 			</div>
+			<div id="bannerDiv">
+				<input type="hidden" name="uploadDefaultBannerUrl" id="uploadDefaultBannerUrl" th:value="${@environment.getProperty('upload.image.view') + '/display/lookbook/banner/'}"/>
+				<!-- posistion picker -->
+				<!-- //posistion picker -->
+			</div>
 		</form>
-		<ul class="panelBar">
-			<li  class="right">
-				<button type="button" class="btn btnRight btn-success btn-lg" id="btnSave">저장</button>
-			</li>
-		</ul>
 	</div>
 </div>
 <script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js?v=2019072202"></script>
 <script th:inline="javascript">
 
+	var bannerIdx = 0;
+	$("#btnAddBanner").on('click', function(){
+		var html = '';
+		html += '<table class="frmStyle bannerTableC" id="bannerTable'+bannerIdx+'">';
+		html += '	<colgroup>';
+		html += '		<col style="width:10%"/>';
+		html += '		<col style="width:30%"/>';
+		html += '		<col style="width:10%"/>';
+		html += '		<col style="width:45%"/>';
+		html += '		<col style="width:5%"/>';
+		html += '	</colgroup>';
+		html += '	<thead>';
+		html += '		<tr>';
+		html += '			<th>배너이미지</th>';
+		html += '			<td>';
+		html += '				<div class="uFile w300">';
+		html += '					<input id="bannerFile'+bannerIdx+'" name="file" type="file" class="uFileInput w300" onchange="fnBannerImgFileUpload(this, ' + bannerIdx + ')"">';
+		html += '					<label for="bannerFile'+bannerIdx+'" class="uFileLabel">파일선택</label>';
+		html += '					<input type="hidden" name="bannerImgPath" value="">';
+		html += '					<input type="hidden" name="bannerNewImgFile" value="">';
+		html += '				</div>';
+		html += '				<div id="bannerImgView_' + bannerIdx + '">';
+		html += '					<img id="bannerPreViewUrl_' + bannerIdx + '" src="" style="height:100px; max-width:500px;"/>';
+		html += '				</div>';
+		html += '			</td>';
+		html += '			<th>이미지설명</th>';
+		html += '			<td><textarea class="textareaR4" name="imgDesc" id="imgDesc'+bannerIdx+'"></textarea></td>';
+		html += '			<td><input name="dispOrd" type="text" class="w80" placeholder="전시순서" style="margin-left:5px; text-align:center"/><button type="button" class="btn btn-danger btn-lg" onclick="fnDeleteBanner(this);">삭제</button></td>';
+		html += '		</tr>';
+		html += '	</thead>';
+		html += '</table>';
+
+		bannerIdx++;
+		$("#bannerDiv").append(html);
+		$("#bannerDiv").sortable();
+		fnResetIdx();
+	});
+
+	// 배너삭제
+	var fnDeleteBanner = function (obj){
+		$(obj).closest("table").remove();
+		fnResetIdx();
+	}
+
+	var fnBannerImgFileUpload = function (obj, idx){
+		var file = obj.files[0];
+		file.name = 'test';
+		if (typeof(file) == 'undefined'){
+			return;
+		}
+		// 파일 업로드
+		gagajf.ajaxFileUpload('/common/file/upload?subDir=/display/lookbook/banner/'
+				, file
+				, function(result) {
+					$(obj).closest('div').find('input:hidden[name=bannerNewImgFile]').val(result.newFileName);
+					$("#lbBannerForm #bannerPreViewUrl_"+idx).attr('src', $("#lbBannerForm #uploadDefaultBannerUrlPop").val()+result.newFileName);
+					$("#lbBannerForm #bannerImgView_"+idx).removeClass("off").addClass("on");
+				}
+				, 'image'
+		);
+	}
+
+	var fnResetIdx = function (){
+		$(".bannerTableC").each(function (i){
+			$(this).attr('id','bannerTable'+i);
+			$(this).find("input[name=dispOrd]").val(i+1);
+		});
+	}
+
 	/**
 	 * 저장
 	 */
@@ -137,6 +219,22 @@
 		var fromDate = $('#lbBannerForm input[name=lbDispStdt]').val().replace(/[^0-9]/g, '')+$('#lbBannerForm #lbStTimeHour').val()+$('#lbBannerForm #lbStTimeMin').val()+'00';
 		var toDate = $('#lbBannerForm input[name=lbDispEddt]').val().replace(/[^0-9]/g, '')+$('#lbBannerForm #lbEdTimeHour').val()+$('#lbBannerForm #lbEdTimeMin').val()+'59';
 
+		var bannerList = [];
+
+		var bannerIndex=0;
+		$(".bannerTableC").each(function (){
+			var bannerInfo = {
+				orgFileNm : $(this).find("input[name=bannerNewImgFile]").val()
+				,sysFileNm : $(this).find("input[name=bannerNewImgFile]").val()
+				,imgDesc : $(this).find("textarea[name=imgDesc]").val()
+				,dispOrd : $(this).find("input[name=dispOrd]").val()
+				,dispYn : 'Y'
+			};
+			bannerList.push(bannerInfo);
+
+			bannerIndex++;
+		});
+
 		mcxDialog.confirm('저장하시겠습니까?', {
 			cancelBtnText: "취소",
 			sureBtnText: "확인",
@@ -153,6 +251,7 @@
 					,newSysTnfileNm : newSysTnfileNm
 					,mainDispYn : 'N'
 					,dispOrd : 1
+					,bannerList : bannerList
 				};
 
 				var jsonData = JSON.stringify(data);
@@ -198,9 +297,20 @@
 		);
 	});
 
+	$(".bannerTableC").each(function (){
+		if(gagajf.isNull($(this).find("input[name=bannerNewImgFile]").val())){
+			mcxDialog.alert('배너 이미지가 없습니다.');
+			return false;
+		}
+	});
+
 	$(document).ready(function() {
 		//sortable Item List
-		//fnSearchData();
+		$("#bannerDiv").sortable({
+			stop: function(event, ui) {
+				fnResetIdx();
+			}
+		});
 	});
 </script>
 </html>

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

@@ -320,7 +320,7 @@
 											<td>
 												<select name="downAblYn" id="downAblYn" required="required" data-valid-name="다운로드가능여부">
 													<option value="Y">Y</option>
-													<option value="Y" selected="selected">N</option>
+													<option value="N" selected="selected">N</option>
 												</select>
 											</td>
 										</tr>

+ 17 - 0
src/main/webapp/ux/css/admin.ui.css

@@ -860,6 +860,23 @@ table.mtz-monthpicker {border:1px solid #ddd; border-top:none;}
 .noticeWrap .download a{border-bottom:1px solid #337ab7;color:#337ab7;}
 .noticeWrap .download a:visited{border-bottom:1px solid #999;color:#333;}
 
+/* 이미지 좌표값 가져오기 */
+.pictureOffset > li{vertical-align:top;}
+.pictureOffset > li:nth-of-type(1){width:700px;padding-right:20px;-webkit-user-select:none;user-select:none;}
+.pictureOffset .picWrap{overflow:hidden;position:relative;width:700px;height:700px;background-color:#ddd;}
+.pictureOffset .picWrap .picture{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:auto;height:auto;max-height:100%;max-width:100%;}
+.pictureOffset .dataWrap{min-width:727px;}
+.pictureOffset .dataWrap th{background:#e9f7ff;}
+.pictureOffset .dataWrap td{padding-left:20px;}
+.pictureOffset .dataWrap td input{margin:0 0 0 10px;}
+.pictureOffset .dataWrap td span{margin-right:30px;}
+.pictureOffset .dataWrap td span:nth-of-type(1) input{width:70px;}
+.pictureOffset .dataWrap td span .per{display:inline-block;padding-left:5px;line-height:30px;color:#777;font-size:13px;}
+.pictureOffset .dataWrap td span:nth-of-type(2) input{width:70px;}
+.pictureOffset .dataWrap td span:nth-of-type(3) input{width:120px;}
+.pictureOffset .dataWrap .btnDel{position:absolute;right:4px;margin-right:0;}
+.pictureOffset .pos{position:absolute;width:0px;height:0px;}
+.pictureOffset .pos i{overflow:hidden;position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:40px;height:40px;line-height:1;color:#fff;font-size:20px;text-align:center;background-color:#fd4802;border-radius:100%;box-sizing:border-box;padding-top:10px;}
 
 /* 반응형:GNB 유저명,등급,로그아웃 --------------- */
 @media ( max-width:1370px ) {