DelvAddrModifyPopMob.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. <form name="deliveryModifyForm" id="deliveryModifyForm">
  2. <input type="hidden" class="form_control" name="custDelvAddrSq" th:value="${deliveryAddrInfo.custDelvAddrSq}">
  3. <div class="modal-header htop">
  4. <h5 class="modal-title" id="adrsModifyLabel">배송지 수정</h5>
  5. </div>
  6. <div class="modal-body">
  7. <div class="pop_cont">
  8. <div class="inner wide">
  9. <div class="tbl_wrap">
  10. <div class="tbl tbl_dlvr">
  11. <table>
  12. <colgroup>
  13. <col width="*">
  14. </colgroup>
  15. <tbody>
  16. <tr>
  17. <td>
  18. <span class="sr-only">받는분</span>
  19. <input type="text"class="form_control" name="recipNm" placeholder="받는분" th:value="${deliveryAddrInfo.recipNm}">
  20. </td>
  21. </tr>
  22. <tr>
  23. <td>
  24. <span class="sr-only">휴대폰 번호</span>
  25. <input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호" th:value="${deliveryAddrInfo.recipPhnno}">
  26. </td>
  27. </tr>
  28. <tr>
  29. <td>
  30. <span class="sr-only">배송 주소</span>
  31. <div class="input_wrap">
  32. <input type="hidden" name="recipZipcode" placeholder="우편번호" th:value="${deliveryAddrInfo.recipZipcode}" readonly="readonly">
  33. <input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소"th:value="${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
  34. <input type="text" class="form_control" placeholder="배송주소" name="recipAddr" th:value="${deliveryAddrInfo.recipZipcode} + ' '+ ${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
  35. <input type="text" class="form_control" placeholder="상세주소" name="recipDtlAddr" th:value="${deliveryAddrInfo.recipDtlAddr}">
  36. <button type="button" class="btn btn_sch" onclick="fnOpenDaumAddr();">
  37. <span class="sr-only">우편번호 찾기</span>
  38. </button>
  39. </div>
  40. <div class="default_addrs">
  41. <div class="form_field">
  42. <th:block th:if="${deliveryAddrInfo.defaultYn} == 'Y'">
  43. <input id="chk-default-addrs1" type="checkbox" name="defaultYn" checked>
  44. </th:block>
  45. <th:block th:if="${deliveryAddrInfo.defaultYn} == 'N'">
  46. <input id="chk-default-addrs1" type="checkbox" name="defaultYn">
  47. </th:block>
  48. <label for="chk-default-addrs1"><span>기본배송지로 등록</span></label>
  49. </div>
  50. </div>
  51. </td>
  52. </tr>
  53. </tbody>
  54. </table>
  55. </div>
  56. </div>
  57. <div class="tbl_wrap">
  58. <div class="tbl_tit">
  59. <h3>배송 요청사항</h3>
  60. </div>
  61. <div class="tbl tbl_request">
  62. <table>
  63. <colgroup>
  64. <col width="*">
  65. </colgroup>
  66. <tbody>
  67. <tr>
  68. <th class="sr-only">문 앞</th>
  69. <td>
  70. <div class="form_field">
  71. <input type="radio" name="rdi-request1" id="rdi-1" value="문 앞">
  72. <label for="rdi-1"><span>문 앞</span></label>
  73. </div>
  74. </td>
  75. </tr>
  76. <tr>
  77. <th class="sr-only">직접 받고 부재 시 문 앞</th>
  78. <td>
  79. <div class="form_field">
  80. <input type="radio" name="rdi-request1" id="rdi-2" value="직접 받고 부재 시 문 앞">
  81. <label for="rdi-2"><span>직접 받고 부재 시 문 앞</span></label>
  82. </div>
  83. </td>
  84. </tr>
  85. <tr>
  86. <th class="sr-only">경비실</th>
  87. <td>
  88. <div class="form_field">
  89. <input type="radio" name="rdi-request1" id="rdi-3" value="경비실"><label
  90. for="rdi-3"><span>경비실</span></label>
  91. </div>
  92. </td>
  93. </tr>
  94. <tr>
  95. <th class="sr-only">택배함</th>
  96. <td>
  97. <div class="form_field">
  98. <input type="radio" name="rdi-request1" id="rdi-4" value="택배함">
  99. <label for="rdi-4"><span>택배함</span></label>
  100. </div>
  101. </td>
  102. </tr>
  103. <tr>
  104. <th class="sr-only">기타사항</th>
  105. <td>
  106. <div class="form_field">
  107. <input type="radio" name="rdi-request1" id="rdi-5" value="5">
  108. <label for="rdi-5"><span>기타사항</span></label>
  109. </div>
  110. </td>
  111. </tr>
  112. <tr>
  113. <th class="sr-only">보관 장소만 입력(필수)</th>
  114. <td>
  115. <div class="form_text">
  116. <input type="text" name="delvMemoText" placeholder="보관 장소만 입력 (필수)" maxlength="30" disabled>
  117. <p class="desc_txt">보관 장소 외 다른 내용 입력시 통보 없이 삭제 될 수 있습니다.</p>
  118. </div>
  119. </td>
  120. </tr>
  121. </tbody>
  122. </table>
  123. </div>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. <div class="modal-footer">
  129. <button type="button" class="btn btn_dark" id="btn_delivery_modi_save"><span>배송지 등록</span></button>
  130. </div>
  131. </form>
  132. <script th:inline="javascript">
  133. var delvMemo = [[${deliveryAddrInfo.delvMemo}]];
  134. //컨텐츠 호출
  135. $(document).ready( function() {
  136. var delvMemoArr = ["문 앞", "직접 받고 부재 시 문 앞", "경비실", "택배함"];
  137. var tempMemo = true;
  138. // 배송요청사항설정
  139. for (i=0 ; i<delvMemoArr.length ; i++) {
  140. if (delvMemoArr[i] == delvMemo) {
  141. tempMemo = false;
  142. }
  143. }
  144. if (tempMemo) {
  145. $("#deliveryModifyForm input[name=rdi-request1]").eq(4).attr("checked", true);
  146. $("#deliveryModifyForm input[name=delvMemoText]").attr("disabled", false);
  147. $("#deliveryModifyForm input[name=delvMemoText]").val(delvMemo);
  148. }
  149. $("#deliveryModifyForm input[name=rdi-request1]").each(function(){
  150. var temp = $(this).parent().find('span').text();
  151. if (delvMemo == temp) {
  152. $(this).attr("checked", true);
  153. }
  154. });
  155. // 배송요청사항 버튼기능
  156. $("#deliveryModifyForm input[name=rdi-request1]").each(function(){
  157. // 버튼기능
  158. $(this).on("click", function(){
  159. var temp = $(this).parent().find('span').text();
  160. $("#deliveryModifyForm input[name=delvMemoText]").val("");
  161. if (temp == "기타사항") {
  162. $("#deliveryModifyForm input[name=delvMemoText]").attr("disabled", false);
  163. } else {
  164. $("#deliveryModifyForm input[name=delvMemoText]").attr("disabled", true);
  165. }
  166. });
  167. });
  168. });
  169. // 배송지등록버튼
  170. $("#btn_delivery_modi_save").on("click", function(){
  171. // 유효성체크
  172. if (!deliveryModifyFormCheck()){
  173. return false;
  174. }
  175. // 기본배송지여부
  176. var defaultYn = "N";
  177. if ($("#deliveryModifyForm input[name=defaultYn]").is(":checked")) {
  178. defaultYn = "Y";
  179. }
  180. // 기타사항일때 텍스트 등록
  181. var delvMemo = $("#deliveryModifyForm input[name=rdi-request1]:checked").parent().find('span').text();
  182. if ("기타사항" == delvMemo) {
  183. delvMemo = $("#deliveryModifyForm input[name=delvMemoText]").val();
  184. }
  185. // 2021.04.29 추가
  186. if (gagajf.isNull(delvMemo)) {
  187. mcxDialog.alert("기타사항을 입력해주세요.");
  188. $("#deliveryAddForm input[name=delvMemoText]").focus();
  189. return false;
  190. }
  191. // 배송지정보설정
  192. var jsonObj = {
  193. "defaultYn" : defaultYn
  194. , "custDelvAddrSq" : parseInt($("#deliveryModifyForm input[name=custDelvAddrSq]").val())
  195. , "recipNm" : $("#deliveryModifyForm input[name=recipNm]").val()
  196. , "recipPhnno" : $("#deliveryModifyForm input[name=recipPhnno]").val()
  197. , "recipZipcode" : $("#deliveryModifyForm input[name=recipZipcode]").val()
  198. , "recipBaseAddr" : $("#deliveryModifyForm input[name=recipBaseAddr]").val()
  199. , "recipDtlAddr" : $("#deliveryModifyForm input[name=recipDtlAddr]").val()
  200. , "delvMemo" : delvMemo
  201. }
  202. var jsonData = JSON.stringify(jsonObj);
  203. $.ajax( {
  204. type : "POST",
  205. url : '/common/updateCustDeliveryAddr',
  206. data : jsonData,
  207. dataType : 'html',
  208. beforeSend : function(xhr, settings) {
  209. xhr.setRequestHeader("AJAX" , "true");
  210. xhr.setRequestHeader('Accept' , 'application/json');
  211. xhr.setRequestHeader('Content-Type' , 'application/json');
  212. },
  213. success : function(result) {
  214. // custDelvAddrSq 부모창으로 전달
  215. var delvObj = {
  216. "custDelvAddrSq" : parseInt($("#deliveryModifyForm input[name=custDelvAddrSq]").val())
  217. , "dispYn" : "Y"
  218. , "recipNm" : $("#deliveryModifyForm input[name=recipNm]").val()
  219. , "recipPhnno" : $("#deliveryModifyForm input[name=recipPhnno]").val()
  220. , "recipZipcode" : $("#deliveryModifyForm input[name=recipZipcode]").val()
  221. , "recipBaseAddr" : $("#deliveryModifyForm input[name=recipBaseAddr]").val()
  222. , "recipDtlAddr" : $("#deliveryModifyForm input[name=recipDtlAddr]").val()
  223. , "delvMemo" : delvMemo
  224. }
  225. // 부모장으로 값 전닫
  226. delvAddrSet(delvObj);
  227. // 팝업닫기
  228. $(".close-modal").trigger("click");
  229. }
  230. });
  231. });
  232. // 유효성체크 함수
  233. var deliveryModifyFormCheck = function() {
  234. // TODO 유효성 체크 추가
  235. if (gagajf.isNull($("#deliveryModifyForm input[name=recipNm]").val())) {
  236. mcxDialog.alert("받는분을 입력해주세요.");
  237. $('#deliveryModifyForm input[name=custNm]').focus();
  238. return false;
  239. }
  240. if (gagajf.isNull($("#deliveryModifyForm input[name=recipZipcode]").val())) {
  241. mcxDialog.alert("배송주소를 입력해주세요.");
  242. $('#deliveryModifyForm input[name=recipAddr]').focus();
  243. return false;
  244. }
  245. if (gagajf.isNull($("#deliveryModifyForm input[name=recipBaseAddr]").val())) {
  246. mcxDialog.alert("배송주소를 입력해주세요.");
  247. $('#deliveryModifyForm input[name=recipAddr]').focus();
  248. return false;
  249. }
  250. if (gagajf.isNull($("#deliveryModifyForm input[name=recipDtlAddr]").val())) {
  251. mcxDialog.alert("상세주소를 입력해주세요.");
  252. $('#deliveryModifyForm input[name=recipDtlAddr]').focus();
  253. return false;
  254. }
  255. return true;
  256. }
  257. // 우편번호 DAUM을 이용한 우편번호 팝업 레이어
  258. var fnOpenDaumAddr = function() {
  259. $("body").css("overflow", "hidden");
  260. let daumZip = new daum.Postcode({
  261. oncomplete: function(data) {
  262. $('#deliveryModifyForm input[name=recipAddr]').val(data.zonecode + ' ' + cfnGetDaumRoadAddr(data));
  263. $('#deliveryModifyForm input[name=recipZipcode]').val(data.zonecode);
  264. $('#deliveryModifyForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
  265. $('#deliveryModifyForm input[name=recipDtlAddr]').focus();
  266. cfnCloseDaumAddr();
  267. $("#adrsModifyPop").modal("show");
  268. },
  269. width: '100%'
  270. });
  271. cfnOpenDaumAddr(daumZip);
  272. }
  273. //2021.04.09 하이픈처리
  274. $(document).on("keyup", "#deliveryModifyForm input[name=recipPhnno]", function() {
  275. $(this).val( $(this).val().replace(/[^0-9]/g, "").replace(/(^02|^0505|^1[0-9]{3}|^0[0-9]{2})([0-9]+)?([0-9]{4})$/,"$1-$2-$3").replace("--", "-") );
  276. });
  277. </script>