ChangeOptionPopupFormWeb.html 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <!-- 배송지변경 팝업 -->
  2. <div class="modal-header">
  3. <h5 class="modal-title" id="exchangeLabel">교환 옵션 변경</h5>
  4. </div>
  5. <div class="modal-body">
  6. <div class="pop_cont">
  7. <form class="form_wrap">
  8. <div class="modify_option_area" id="modifyOptionArea">
  9. <th:block th:if="${exchangeOptionInfo}" th:each="oneData, status : ${exchangeOptionInfo}">
  10. <div class="modify_box" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, num=${num}">
  11. <div class="name_blk" th:if="${oneData.goodsType == 'G056_S'}" th:text="|${oneData.itemNm} / ${oneData.colorNm} / ${oneData.optCd2}|"></div>
  12. <div class="name_blk" th:unless="${oneData.goodsType == 'G056_S'}" th:text="|${oneData.colorNm} / ${oneData.optCd2}|"></div>
  13. <div class="select_blk">
  14. <!-- 옵션교환 라디오 형태 -->
  15. <div class="sel_radio" th:if="${oneData.selfGoodsYn == 'Y'}">
  16. <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}">
  17. <div th:class="|form_field ${oneData.ordDtlItemSq}|">
  18. <div th:if="${oneData.optCd2Arr.length > 0}" th:each="option, idx : ${oneData.optCd2Arr}">
  19. <input type="radio" 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);">
  20. <label th:for="|${oneData.ordDtlItemSq}_${option}|"><span th:text="${option}"></span></label>
  21. </div>
  22. </div>
  23. </div>
  24. <!-- //옵션교환 라디오 형태 -->
  25. <!-- 옵션교환 셀렉트박스 형태 -->
  26. <div class="sel_select" th:unless="${oneData.selfGoodsYn == 'Y'}">
  27. <div class="form_field">
  28. <div class="select_custom exchange_option">
  29. <div class="combo">
  30. <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}">
  31. <div class="select" th:text="${oneData.optCd2}"></div>
  32. <ul class="list">
  33. <!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" / 품절표기 data-soldout="true" 추가 -->
  34. <!-- <li class="selected" th:attr="ordDtlItemSq=${oneData.ordDtlItemSq}, optCd2=''" onclick="fnSelectOption(this);">옵션 선택</li>-->
  35. <th:block th:each="option, idx : ${oneData.optCd2Arr}">
  36. <li th:if="${oneData.optCd2Arr.length} > 0 and (${#numbers.formatInteger(oneData.currStockQtyArr[idx.index],0)} <= 0 or ${oneData.soldoutYnArr[idx.index]} == 'Y')" th:classappend="${option == oneData.optCd2} ? 'selected'" th:text="${option}" aria-disabled="true" data-soldout="true" th:attr="optCd2=''" onclick="fnSelectOption(this);"></li>
  37. <li th:if="${oneData.optCd2Arr.length} > 0 and ${#numbers.formatInteger(oneData.currStockQtyArr[idx.index],0)} > 0 and ${oneData.soldoutYnArr[idx.index]} == 'N'" th:classappend="${option == oneData.optCd2} ? 'selected'" th:text="${option}" th:attr="optCd2=${option}" onclick="fnSelectOption(this);"></li>
  38. </th:block>
  39. </ul>
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. <!-- //옵션교환 셀렉트박스 형태 -->
  45. </div>
  46. </div>
  47. </th:block>
  48. </div>
  49. </form>
  50. </div>
  51. </div>
  52. <div class="modal-footer">
  53. <button type="button" id="" class="btn btn_dark" onclick="fnSaveOption();"><span>옵션 저장</span></button>
  54. </div>
  55. <script th:inline="javascript">
  56. let oneData = [[${oneData}]];
  57. let chgQty = [[${chgQty}]];
  58. $(document).ready( function() {
  59. // 셀렉트박스 활성화
  60. $('#exchangePop .select_custom.exchange_option').each(function() {
  61. new sCombo($(this));
  62. });
  63. });
  64. // 라디오 클릭 이벤트
  65. var fnRadioOption = function(param) {
  66. $(param).parent().parent().parent().find('input[name=chgOptCd2]').val($(param).val());
  67. }
  68. // 셀렉트박스 클릭 이벤트
  69. var fnSelectOption = function(param) {
  70. $(param).parent().parent().find('input[name=chgOptCd2]').val($(param).attr('optCd2'));
  71. }
  72. // 옵션 저장 버튼 클릭 이벤트
  73. var fnSaveOption = function() {
  74. // 변경 옵션 처리
  75. let dataArr = [];
  76. $.each($('input[name=chgOptCd2]'), function(idx, item) {
  77. let ordDtlItemSq = $(item).attr('ordDtlItemSq');
  78. let colorNm = $(item).attr('colorNm');
  79. let itemNm = $(item).attr('itemNm');
  80. let goodsType = $(item).attr('goodsType');
  81. let chgOptCd2 = $(item).val();
  82. let data = {};
  83. data.ordDtlNo = oneData.ordDtlNo;
  84. data.ordDtlItemSq = ordDtlItemSq;
  85. data.chgQty = chgQty;
  86. data.colorNm = colorNm;
  87. data.itemNm = itemNm;
  88. data.goodsType = goodsType;
  89. data.chgOptCd2 = chgOptCd2;
  90. dataArr.push(data);
  91. });
  92. console.log(dataArr);
  93. fnChangeOptionCallback(dataArr)
  94. $('.close-modal').trigger('click');
  95. }
  96. </script>