ChangeOptionPopupFormMob.html 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <div class="modal-header htop">
  2. <h5 class="modal-title" id="optionChangeLabel">교환 옵션 변경</h5>
  3. </div>
  4. <div class="modal-body">
  5. <div class="pop_cont">
  6. <th:block th:if="${exchangeOptionInfo}" th:each="oneData, status : ${exchangeOptionInfo}">
  7. <div class="option_list">
  8. <ul>
  9. <!-- 자사일때 opt2 교환 -->
  10. <th:block th:if="${oneData.selfGoodsYn == 'Y'}">
  11. <input type="hidden" name="chgOptCd2" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, itemNm=${oneData.itemNm}, colorNm=${oneData.colorNm}, orgOptCd2=${oneData.optCd2}, goodsType=${oneData.goodsType}" th:value="${oneData.optCd2}">
  12. <li>
  13. <div class="option_name">
  14. <span th:if="${oneData.goodsType == 'G056_S'}">
  15. <em th:text="${oneData.itemNm}"></em> / <em th:text="${oneData.colorNm}"></em> / <em th:text="${oneData.optCd2}"></em>
  16. </span>
  17. <span th:unless="${oneData.goodsType == 'G056_S'}">
  18. <em th:text="${oneData.colorNm}"></em> / <em th:text="${oneData.optCd2}"></em>
  19. </span>
  20. </div>
  21. <div class="option_box">
  22. <th:block th:if="${oneData.optCd2Arr.length > 0}" th:each="option, idx : ${oneData.optCd2Arr}">
  23. <button type="button" class="btn btn_default" th:name="${oneData.ordDtlItemSq}" th:id="|${oneData.ordDtlItemSq}_${option}|" th:value="${option}" th:disabled="${#numbers.formatInteger(oneData.currStockQtyArr[idx.index], 0)} <= 0 or ${oneData.soldoutYnArr[idx.index] == 'Y'}" th:checked="${option == oneData.optCd2}" onclick="fnRadioOption(this);">
  24. <span th:text="${option}"></span>
  25. </button>
  26. </th:block>
  27. </div>
  28. </li>
  29. </th:block>
  30. <!-- //자사일때 opt2 교환 -->
  31. <!-- 입점일때 opt2 교환 -->
  32. <th:block th:unless="${oneData.selfGoodsYn == 'Y'}">
  33. <li>
  34. <div class="option_name">
  35. <span th:if="${oneData.goodsType == 'G056_S'}">
  36. <em th:text="${oneData.itemNm}"></em> / <em th:text="${oneData.colorNm}"></em> / <em th:text="${oneData.optCd2}"></em>
  37. </span>
  38. <span th:unless="${oneData.goodsType == 'G056_S'}">
  39. <em th:text="${oneData.colorNm}"></em> / <em th:text="${oneData.optCd2}"></em>
  40. </span>
  41. </div>
  42. <div class="option_select">
  43. <div class="select_custom select_option">
  44. <div class="combo">
  45. <div class="select" th:text="${oneData.optCd2}">선택</div>
  46. </div>
  47. </div>
  48. </div>
  49. </li>
  50. </th:block>
  51. <!-- //입점일때 opt2 교환 -->
  52. </ul>
  53. </div>
  54. </th:block>
  55. </div>
  56. </div>
  57. <div class="modal-footer">
  58. <div class="btn_group_flex">
  59. <div><button type="button" class="btn btn_dark" onclick="fnSaveOption();"><span>옵션 저장</span></button></div>
  60. </div>
  61. </div>
  62. <!-- 210408_ 추가 : 교환 옵션 선택 팝업 -->
  63. <div id="exchangeOptionPop" class="popup_box exchangeOptionPop">
  64. <div class="lap">
  65. <div class="popup_close">카테고리닫기</div>
  66. <div class="popup_head sr-only">
  67. <h2 class="">주문상태 선택 팝업</h2>
  68. </div>
  69. <div class="popup_con">
  70. <div class="button_list">
  71. <th:block th:each="option, idx : ${oneData.optCd2Arr}">
  72. <button type="button" th:disabled="${oneData.optCd2Arr.length} > 0 and (${#numbers.formatInteger(oneData.currStockQtyArr[idx.index],0)} <= 0 or ${oneData.soldoutYnArr[idx.index]} == 'Y')" th:attr="optCd2=${option}" th:checked="${oneData.optCd2 == option}" onclick="fnSelectOption(this);">
  73. <span th:text="${option}"></span>
  74. </button>
  75. </th:block>
  76. </th:block>
  77. </div>
  78. <input type="hidden" name="chgOptCd2" th:unless="${oneData.selfGoodsYn == 'Y'}" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, itemNm=${oneData.itemNm}, colorNm=${oneData.colorNm}, orgOptCd2=${oneData.optCd2}, goodsType=${oneData.goodsType}" th:value="${oneData.optCd2}" />
  79. </div>
  80. </div>
  81. </div>
  82. <!-- //210408_ 추가 : 교환 옵션 선택 팝업 -->
  83. <script th:inline="javascript">
  84. var oneData1 = [[${oneData}]];
  85. var chgQty1 = [[${chgQty}]];
  86. $(document).ready( function() {
  87. $.each($('.optionChangePop .option_box button'), function(idx ,item) {
  88. if ($(item).attr('checked') == 'checked') {
  89. $(item).addClass('on');
  90. }
  91. });
  92. $.each($('.popup_box .button_list button'), function(idx ,item) {
  93. if ($(item).attr('checked') == 'checked') {
  94. $(item).addClass('on');
  95. }
  96. });
  97. });
  98. // 라디오 클릭 이벤트
  99. var fnRadioOption = function(param) {
  100. $(param).parent().parent().parent().find('input[name=chgOptCd2]').val($(param).val());
  101. }
  102. // 셀렉트박스 클릭 이벤트
  103. var fnSelectOption = function(param) {
  104. $("#exchangePop .option_list .option_select .select_custom.select_option .select").text($(param).attr('optCd2'));
  105. $(param).parent().parent().find('input[name=chgOptCd2]').val($(param).attr('optCd2'));
  106. $('.exchangeOptionPop').hide().removeClass('active');
  107. }
  108. // 옵션 저장 버튼 클릭 이벤트
  109. var fnSaveOption = function() {
  110. // 변경 옵션 처리
  111. let dataArr = [];
  112. $.each($('#exchangePop input[name=chgOptCd2]'), function(idx, item) {
  113. let ordDtlItemSq = $(item).attr('ordDtlItemSq');
  114. let colorNm = $(item).attr('colorNm');
  115. let itemNm = $(item).attr('itemNm');
  116. let goodsType = $(item).attr('goodsType');
  117. let chgOptCd2 = $(item).val();
  118. let data = {};
  119. data.ordDtlNo = oneData1.ordDtlNo;
  120. data.ordDtlItemSq = ordDtlItemSq;
  121. data.chgQty = chgQty1;
  122. data.colorNm = colorNm;
  123. data.itemNm = itemNm;
  124. data.goodsType = goodsType;
  125. data.chgOptCd2 = chgOptCd2;
  126. dataArr.push(data);
  127. });
  128. fnChangeOptionCallback(dataArr);
  129. $('.close-modal').trigger('click');
  130. }
  131. // 버튼 색
  132. $(document).on('click','.optionChangePop .option_box button',function(){
  133. //$('.optionChangePop .option_box button').removeClass('on');
  134. $.each($(this).parent().find('button'), function(idx, item) {
  135. $(item).removeClass('on');
  136. });
  137. $(this).addClass('on');
  138. });
  139. // 버튼 색
  140. $(document).on('click','.popup_box .button_list button',function(){
  141. $('.popup_box .button_list button').removeClass('on');
  142. $(this).addClass('on');
  143. });
  144. // 반품 사유 선택 팝업
  145. $(document).on("click",".select_custom.select_option",function(e){
  146. $('#exchangeOptionPop').show().addClass("active");
  147. $("body").css({"overflow":"hidden"});
  148. });
  149. //팝업_닫기
  150. $('.exchangeOptionPop .popup_close').on("click",function(){
  151. $('.exchangeOptionPop').hide().removeClass('active');
  152. });
  153. </script>