Просмотр исходного кода

상품상세 - 입점 옵션 구조 변경

eskim 5 лет назад
Родитель
Сommit
db30a3af11

+ 1 - 1
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -911,7 +911,7 @@ public class TsfGoodsController extends TsfBaseController {
 		} else if ("ERROR_30".equals(couponResult)) {
 			result.set("message", "죄송합니다. 쿠폰이 모두 소진되었습니다.");
 		} else {
-			if (goods.getArrCpnId() != null || goods.getArrCpnId().length > 0) {
+			if (goods.getArrCpnId() != null && goods.getArrCpnId().length > 0) {
 				result.set("message", couponResult + "개 쿠폰이 발급되었습니다.");
 			} else {
 				result.set("message", "쿠폰이 발급되었습니다.");

+ 45 - 41
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -225,7 +225,7 @@
 										<div class="select_custom item_opt2" th:classappend="${'item_opt2_'+status.count +' '+goodsCompose.compsGoodsCd}"  disabled>
 											<div class="combo">
 												<div class="select">선택</div>
-												<ul class="list" th:id="|selfGoodsOpt2${goodsCompose.compsGoodsCd}|" >
+												<ul class="list" th:id="|goodsOpt2${goodsCompose.compsGoodsCd}|" >
 													<!-- 옵션2 -->
 												</ul>
 											</div>
@@ -237,28 +237,38 @@
 								</th:block>
 								</th:block>
 								<th:block th:if="${goodsInfo.selfGoodsYn =='N' }"> <!--  입점상품 -->
-								<div class="opt_select" th:if="${goodsOptionList != null and !goodsOptionList.empty}">
+								<div class="opt_select" th:if="${goodsOption1List != null and !goodsOption1List.empty}">
 									<div class="opt_header">
-											<span class="title">옵션</span>
-											<button type="button" id="btn_infoSize_pop" class="btn_popup" th:onclick="cfGoodsSizeInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.colorCd}]] )"><span>사이즈정보</span></button>
-										</div>
+										<span class="title">옵션</span>
+										<button type="button" id="btn_infoSize_pop" class="btn_popup" th:onclick="cfGoodsSizeInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.colorCd}]] )"><span>사이즈정보</span></button>
+									</div>
 									<div class="form_field">
-										<div class="select_custom item_opt1 item_opt1_1">
+										<div class="select_custom item_opt1 item_opt1_1" th:classappend="${goodsInfo.goodsCd}" >
 											<div class="combo">
 												<div class="select">선택</div>
 												<ul class="list">
-													<li class="selected" id="selfNoGoodsOpt">선택</li> 
-													<th:block th:each="goodsOption, status : ${goodsOptionList}" >
-													<li th:attr="aria-disabled=${(goodsOption.soldoutYn == 'Y' or goodsOption.stockQty <= 0)? 'true':''}, data-soldout=${(goodsOption.soldoutYn == 'Y' or goodsOption.stockQty <= 0)? 'true':''}" th:onclick="fnViewStock(this, [[${goodsInfo.goodsCd}]],[[${goodsOption.optCd1}]],[[${goodsOption.optCd}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]] )">
-														<div th:text="${goodsOption.optNm}">상품옵션</div>
+													<li class="selected" th:id="|selfGoodsOpt1${goodsInfo.goodsCd}|" >선택</li> 
+													<th:block th:each="goodsOption, optionStatus : ${goodsOption1List}" >
+													<li th:onclick="fnOption2([[${optionStatus.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],1,[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])">
+														<div th:text="${goodsOption.optCd1}">상품옵션</div>
 														<div th:if="${goodsOption.addPrice > 0}" th:text="|${#numbers.formatInteger(goodsOption.addPrice, 0,'COMMA')}원|">0원</div>
-														<input type="hidden" name="opt" th:value="${goodsOption.goodsCd +'|'+goodsOption.optCd +'|1'}" th:id="${goodsOption.optCd}" th:attr="addPrice=${goodsOption.addPrice}, optCd1=${goodsOption.optCd1},optCd2=${goodsOption.optCd2}, optCd=${goodsOption.optCd}"/>
+														<input type="hidden" name="opt" th:attr="addPrice=${goodsOption.addPrice}, optCd1=${goodsOption.optCd1},optCd2=${goodsOption.optCd2}, optCd=${goodsOption.optCd}"/>
 													</li>
 													</th:block>
 												</ul>
 											</div>
 										</div>
 									</div>
+									<div class="form_field">
+										<div class="select_custom item_opt2 item_opt2_1" th:classappend="${goodsInfo.goodsCd}"  disabled>
+											<div class="combo">
+												<div class="select">선택</div>
+												<ul class="list" th:id="|goodsOpt2${goodsInfo.goodsCd}|" >
+													<!-- 옵션2 -->
+												</ul>
+											</div>
+										</div>
+									</div>
 								</div>
 								</th:block>
 								<!-- 해당 상품 품절시 노출 -->
@@ -781,21 +791,19 @@
 			$target.prop("checked",true);
 			$("#selectOptCd1").html(optCd2);
 		}else{
-			debugger;
-			$target = $obj.find('input[name="opt"]');
+			$target = $obj.find('input[name="opt2"]');
 		}
 		let addPrice  = $target.attr("addPrice");
 		let optCd  = $target.attr("optCd");
-		debugger;
 		$("#selectOptCd1addPrice").html('');
 		if (Number(addPrice) > 0) $("#selectOptCd1addPrice").html("(+" + addPrice.addComma() + ")");
+		
 		$("#cartForm  input[name=optCd]").val(optCd);
 		$("#cartForm  input[name=optCd1]").val(optCd1);
 		$("#cartForm  input[name=optCd2]").val(optCd2);
 		$("#cartForm  input[name=addPrice]").val(addPrice);
 		$("#cartForm  input[name=ordQty]").val("");
 		
-
 		let maxCnt = maxOrdQty;
 		let params = new Object();
 		params.goodsCd = goodsCd;
@@ -982,34 +990,21 @@
 	}
 	
 	//합계 계산
-	var fnSetTotalPrice = function() {debugger;
+	var fnSetTotalPrice = function() {
 		//let f = document.cartForm;
 
 		let totalEa = 0;
 		let totalPrice = 0;
 		
-		$('input[name="cea"]').each(function() {debugger;
+		$('input[name="cea"]').each(function() {
 			let ea = parseInt($(this).val());
 			let addPrice = 0;
-			
-			//let addPrice = parseInt($("#cartForm  input[name=addPrice]").val());
-			
-			if ("N" == [[${goodsInfo.selfGoodsYn}]]){
-				let target=$('.select_custom.item_opt1');
-				target.each(function() {debugger;
-					if (typeof ($(this).find('input[name=opt]').val()) != 'undefined' && !gagajf.isNull($(this).find('input[name=opt]').val())){
-						addPrice += Number($(this).find('input[name=opt]').attr('addPrice'));	
-					}
-				});	
-			}else{
-				let target=$('.select_custom.item_opt2');
-				target.each(function() {
-					if (typeof ($(this).find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('input[name=opt2]').val())){
-						addPrice += Number($(this).find('input[name=opt2]').attr('addPrice'));	
-					}
-				});	
-			}
-			
+			let target=$('.select_custom.item_opt2');
+			target.each(function() {
+				if (typeof ($(this).find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('input[name=opt2]').val())){
+					addPrice += Number($(this).find('input[name=opt2]').attr('addPrice'));	
+				}
+			});	
 			
 			let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
 
@@ -1159,8 +1154,9 @@
 	
 	// 옵션2 조회
 	var fnOption2 = function(ridx, goodsCd, optCd1, qty, minOrdQty, maxOrdQty ){
+		let selfGoodsYn = $("#cartForm  input[name=selfGoodsYn]").val();
 		let data = {goodsCd : goodsCd
-					,colorCd : optCd1
+					,optCd1 : optCd1
 					,adminYn : $("#cartForm  input[name=adminYn]").val()
 					};
 		let jsonData = JSON.stringify(data);
@@ -1172,14 +1168,18 @@
 				let $obj = null;
 				$.each(result.dataList, function(idx, item) {
 					if (idx == 0){
-						$obj = $('#selfGoodsOpt2'+item.goodsCd);
+						$obj = $('#goodsOpt2'+item.goodsCd);
 						$obj.append('');
 						$('.form_field .select_custom.item_opt2.' +item.goodsCd ).attr('disabled', false)
-						tag += '<li class="selected" id="selfGoodsOpt2'+item.goodsCd+'">선택</li>\n';	
+						tag += '<li class="selected" id="goodsOpt2'+item.goodsCd+'">선택</li>\n';	
 					}
 					let soldoutYn = ""; 
 					if ("Y" == item.soldoutYn || item.stockQty <= 0)soldoutYn = "true";
-					tag += '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSet(this, \''+ item.goodsCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';
+					if (selfGoodsYn == "Y"){
+						tag += '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSet(this, \''+ item.goodsCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';	
+					}else{
+						tag += '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \''+ item.goodsCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';
+					}
 					tag += '<div>'+ item.optCd2+'</div>\n';
 					if (item.addPrice > 0){
 						tag += '<div>'+ item.addPrice.addComma() +'원</div>\n';	
@@ -1190,7 +1190,11 @@
 				
 				$obj.append(tag);
 				if (ridx == 1){
-					var opt_selecter02_1 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_1');
+					if (selfGoodsYn == "Y"){
+						var opt_selecter02_1 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_1');	
+					}else{
+						var opt_selecter02 = new sCombo('.opt_select .select_custom.item_opt2.item_opt2_1');
+					}
 				}else if (ridx == 2){
 					var opt_selecter02_2 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_2');	
 				}else if (ridx == 3){