NoMemberCancelFormMob.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643
  1. <!DOCTYPE html>
  2. <html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="mob/common/layout/NoMemberLayoutMob">
  3. <!--
  4. *******************************************************************************
  5. * @source : NoMemberCancelFormMob.html
  6. * @desc : 비회원 > 취소신청 Page
  7. *============================================================================
  8. * STYLE24
  9. * Copyright(C) 2021 TSIT, All rights reserved.
  10. *============================================================================
  11. * VER DATE AUTHOR DESCRIPTION
  12. * === =========== ========== =============================================
  13. * 1.0 2021.05.14 card007 최초 작성
  14. *******************************************************************************
  15. -->
  16. <body>
  17. <th:block layout:fragment="content">
  18. <main class="container my">
  19. <section class="content my_return">
  20. <form id="cancelForm" class="form_wrap">
  21. <input type="hidden" name="accountNo" th:value="${oneData.accountNo}"/>
  22. <input type="hidden" name="accountNm" th:value="${oneData.accountNm}"/>
  23. <input type="hidden" name="bankCd" th:value="${oneData.bankCd}"/>
  24. <div class="inner wide bg_beige">
  25. <div class="order_number">
  26. <dl class="clear">
  27. <dt>주문번호</dt>
  28. <dd th:text="${oneData.ordNo}"></dd>
  29. </dl>
  30. </div>
  31. </div>
  32. <div class="inner">
  33. <div class="part_goods">
  34. <div class="goods_top">
  35. <div class="goods_date">주문일<span class="date" th:text="${oneData.ordDt}"></span></div>
  36. </div>
  37. <!-- 취소상품목록 -->
  38. <th:block th:if="${cancelList.cancelList}" th:each="cancel, status : ${cancelList.cancelList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
  39. <div class="goods_section">
  40. <div class="goods_detail">
  41. <a href="javascript:void(0)" th:attr="goodsCd=${cancel.goodsCd}, optCd1=${cancel.goodsType == 'G056_N' ? cancel.optCd1 : ''}, ithrCd='IN21_03'" onclick="fnGoToGoodsDetail(this)">
  42. <div class="thumb_box">
  43. <img th:src="${imageUrl + '/' + cancel.sysImgNm + '?RS=90'}" width="100%" alt="">
  44. </div>
  45. <div class="info_box">
  46. <div class="od_name">
  47. <div class="brand">
  48. <span th:text="${cancel.brandNm}"></span>
  49. <div class="badge_wrap">
  50. <em class="tag primary" th:if="${cancel.shotDelvYn == 'Y'}">총알배송</em>
  51. <em class="tag" th:if="${cancel.shotDelvYn == 'N' and cancel.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
  52. <em class="tag" th:if="${cancel.selfGoodsYn == 'N'}">업체직배송</em>
  53. </div>
  54. </div>
  55. <div class="name" th:text="${cancel.goodsNm}"></div>
  56. </div>
  57. <div class="od_opt">
  58. <!-- 세트상품일때 -->
  59. <th:block th:if="${cancel.goodsType} == 'G056_S'">
  60. <th:block th:each="option , index2 : ${cancel.colorNmArr}">
  61. <div class="option">
  62. <em th:text="${cancel.itemNmArr[index2.index]}"></em>
  63. <em th:text="${option}"></em>
  64. <em th:text="${cancel.optCd2Arr[index2.index]}"></em>
  65. </div>
  66. </th:block>
  67. </th:block>
  68. <!-- //세트상품일때 -->
  69. <!-- 단품상품일때 -->
  70. <th:block th:unless="${cancel.goodsType} == 'G056_S'">
  71. <div class="option">
  72. <em th:text="${cancel.colorNm}"></em>
  73. <em th:text="${cancel.optCd2}"></em>
  74. </div>
  75. </th:block>
  76. <!-- //단품상품일때 -->
  77. </div>
  78. <div class="od_calc">
  79. <th:block th:if="${(cancel.ordAmt - cancel.cnclRtnAmt) > (cancel.realOrdAmt + cancel.pntDcAmt + cancel.gfcdUseAmt)}">
  80. <p class="sale_price">
  81. <del><em th:text="${#numbers.formatInteger(cancel.ordAmt - cancel.cnclRtnAmt, 1, 'COMMA')}"></em>원</del>
  82. </p>
  83. </th:block>
  84. <p class="price">
  85. <span class="selling_price">
  86. <em th:text="${#numbers.formatInteger(cancel.realOrdAmt + cancel.pntDcAmt + cancel.gfcdUseAmt, 1, 'COMMA')}"></em>원
  87. </span>
  88. </p>
  89. </div>
  90. </div>
  91. </a>
  92. </div>
  93. <div class="goods_select">
  94. <div class="select_custom select_count">
  95. <div class="combo">
  96. <input type="hidden" name="chgQty" value="0" th:attr="ordDtlNo=${cancel.ordDtlNo}, ordCanChgQty=${cancel.ordCanChgQty}"/>
  97. <div class="select">수량 0개</div>
  98. </div>
  99. </div>
  100. </div>
  101. <th:block th:if="${#lists.size(cancelList.cancelList) == status.count}">
  102. <div class="goods_txt">
  103. <p class="cf_txt cf_desc">취소하실 상품의 수량을 선택하신 후<br>주문 취소를 하실 수 있습니다.</p>
  104. </div>
  105. </th:block>
  106. </div>
  107. </th:block>
  108. <!-- //취소상품목록 -->
  109. </div>
  110. </div>
  111. <div class="inner">
  112. <div class="tbl_wrap pay_wrap">
  113. <div class="tbl_tit">
  114. <h3>환불 정보</h3>
  115. <strong class="pay"><span id="returnAmt">0</span>원</strong>
  116. </div>
  117. <div class="tbl type1">
  118. <table>
  119. <colgroup>
  120. <col width="227">
  121. <col width="*">
  122. </colgroup>
  123. <tr>
  124. <td>
  125. <dl class="refund_deduct">
  126. <div>
  127. <dt>상품 취소 금액</dt>
  128. <dd>
  129. <div>
  130. <span id="goodsCancelAmt">0</span>원
  131. </div>
  132. </dd>
  133. </div>
  134. <div>
  135. <dt>배송비</dt>
  136. <dd>
  137. <div>
  138. <span id="deliveryFee">0</span>원
  139. </div>
  140. </dd>
  141. </div>
  142. <div>
  143. <dt>할인 금액 차감</dt>
  144. <dd>
  145. <div>
  146. <span id="deductDcAmt">0</span>원
  147. </div>
  148. </dd>
  149. </div>
  150. </dl>
  151. <dl class="refund_detail">
  152. <div>
  153. <dt>환불 수단</dt>
  154. <dd>
  155. <div>
  156. <span th:if="${paymentInfo.pgGb == 'KCP'}" th:text="${paymentInfo.payMeansNm}"></span>
  157. <span th:if="${paymentInfo.pgGb == 'NAVER'}" th:text="|네이버페이|"></span>
  158. <span th:if="${paymentInfo.pgGb == 'KAKAO'}" th:text="|카카오페이|"></span>
  159. <span th:if="${paymentInfo.pgGb == 'PAYCO'}" th:text="|PAYCO|"></span>
  160. </div>
  161. </dd>
  162. </div>
  163. <div>
  164. <dt>결제금액 환불</dt>
  165. <dd>
  166. <div>
  167. <span id="refundPayAmt">0</span>원
  168. </div>
  169. </dd>
  170. </div>
  171. <div>
  172. <dt>포인트 환불</dt>
  173. <dd>
  174. <div>
  175. <span id="refundPoint">0</span>P
  176. </div>
  177. </dd>
  178. </div>
  179. <div>
  180. <dt>상품권 환불</dt>
  181. <dd>
  182. <div>
  183. <span id="refundGiftCard">0</span>원
  184. </div>
  185. </dd>
  186. </div>
  187. </dl>
  188. </td>
  189. </tr>
  190. </table>
  191. </div>
  192. </div>
  193. <div class="desc_txt">카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이 소요될 수 있습니다.</div>
  194. <div class="required_group" id="addDeliveryFee" style="display:none">
  195. <p>배송비 <span class="c_primary" id="addPayCost">0원</span> 추가 결제가 필요합니다.</p>
  196. </div>
  197. <div class="btn_group btn_group_flex">
  198. <div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_NOMEMBER_ORDER_LIST);"><span>취소</span></button></div>
  199. <div><button type="button" class="btn btn_dark" onclick="fnCancel();"><span>주문 취소</span></button></div>
  200. </div>
  201. </div>
  202. </form>
  203. </section>
  204. </main>
  205. <!-- 210408_취소 수량 선택 팝업 -->
  206. <th:block th:if="${cancelList.cancelList}" th:each="cancel, status : ${cancelList.cancelList}">
  207. <div class="popup_box cancelCountPop">
  208. <div class="lap">
  209. <div class="popup_close">카테고리닫기</div>
  210. <div class="popup_head sr-only">
  211. <h2 class="">주문상태 선택 팝업</h2>
  212. </div>
  213. <div class="popup_con">
  214. <div class="button_list clear">
  215. <button type="button" qty=0 class="on" onclick="fnChangeCancelQty(this);"><span>수량 0개</span></button>
  216. <th:block th:each="num : ${#numbers.sequence(1, cancel.ordCanChgQty)}">
  217. <button type="button" th:qty="${num}" onclick="fnChangeCancelQty(this);"><span th:text="|수량 ${num}개|"></span></button>
  218. </th:block>
  219. <input type="hidden" name="ordDtlNo" th:value="${cancel.ordDtlNo}">
  220. </div>
  221. </div>
  222. </div>
  223. </div>
  224. </th:block>
  225. <!-- //210408_취소 수량 선택 팝업 -->
  226. <!-- 210408_ 추가 : 환불 계좌 등록 팝업 -->
  227. <div id="refundAccountPop" class="popup_box refundAccountPop">
  228. <input type="hidden" name="confirmedAccountNo"/>
  229. <input type="hidden" name="confirmedAccountNm"/>
  230. <input type="hidden" name="confirmedBankCd"/>
  231. <div class="lap">
  232. <div class="popup_close">카테고리닫기</div>
  233. <div class="popup_head sr-only">
  234. <h2 class="">환불 계좌 등록 팝업</h2>
  235. </div>
  236. <div class="popup_con">
  237. <div class="tbl_wrap">
  238. <div class="tbl_tit">
  239. <h3>환불 계좌 등록</h3>
  240. </div>
  241. <div class="tbl type1">
  242. <table>
  243. <colgroup>
  244. <col width="*">
  245. </colgroup>
  246. <tbody>
  247. <tr>
  248. <th>예금주</th>
  249. <td>
  250. <div class="form_field">
  251. <input type="text" name="accountNm" class="form_control" th:value="${ordNm}" placeholder="이름를 입력해 주세요" readonly="readonly">
  252. </div>
  253. </td>
  254. </tr>
  255. <tr>
  256. <th>은행명</th>
  257. <td>
  258. <div class="form_field">
  259. <div class="select_custom select_bank">
  260. <div class="combo">
  261. <div class="select">선택</div>
  262. <input type="hidden" name="bankCd" value=""/>
  263. </div>
  264. </div>
  265. </div>
  266. </td>
  267. </tr>
  268. <tr>
  269. <th>계좌번호</th>
  270. <td>
  271. <div class="input_wrap certi_wrap">
  272. <input type="tel" name="accountNo" class="form_control" value="" placeholder="">
  273. <button type="button" id="btn_bank_certi" class="btn btn_dark"><span>계좌인증</span></button>
  274. </div>
  275. </td>
  276. </tr>
  277. </tbody>
  278. </table>
  279. </div>
  280. </div>
  281. </div>
  282. <div class="pop_foot">
  283. <div class="btn_group_flex">
  284. <div class="">
  285. <button type="submit" id="btn_bank_return" class="btn btn_dark btn_block"><span>계좌 등록 후 환불 신청</span></button>
  286. </div>
  287. </div>
  288. </div>
  289. </div>
  290. </div>
  291. <!-- //210408_ 추가 : 환불 계좌 등록 토스트 팝업 -->
  292. <!-- 210408_ 추가 : 은행 선택 팝업 -->
  293. <div id="refundBankPop" class="popup_box refundBankPop">
  294. <div class="lap">
  295. <div class="popup_close">카테고리닫기</div>
  296. <div class="popup_head sr-only">
  297. <h2 class="">은행 선택 팝업</h2>
  298. </div>
  299. <div class="popup_con">
  300. <div class="button_list clear">
  301. <th:block th:if="${bankList}" th:each="oneData, status : ${bankList}">
  302. <button type="button" th:id="|bankCd_${oneData.cd}|" th:attr="bankCd=${oneData.cd}, bankNm=${oneData.cdNm}"><span th:text="${oneData.cdNm}"></span></button>
  303. </th:block>
  304. </div>
  305. </div>
  306. </div>
  307. </div>
  308. <!-- //210408_ 추가 : 은행 선택 팝업 -->
  309. <script src="/ux/plugins/gaga/gaga.paging.js"></script>
  310. <script th:inline="javascript">
  311. let cancelList = [[${cancelList}]];
  312. let oneData = [[${oneData}]];
  313. let paymentInfo = [[${paymentInfo}]];
  314. let addPayCost = 0;
  315. $(document).ready(function() {
  316. // 타이틀명
  317. $('#htopTitle').text('주문취소');
  318. });
  319. // 취소수량버튼기능
  320. $("#cancelForm .select_custom.select_count").each(function(idx){
  321. $(this).on("click", function(){
  322. // 전체비활성화
  323. $(".cancelCountPop").hide();
  324. // 수량팝업활성화
  325. $(".cancelCountPop").eq(idx).show().addClass("active");
  326. $("body").css({"overflow":"hidden"});
  327. });
  328. });
  329. // 취소 처리
  330. var fnCancel = function() {
  331. // 주문상세번호 및 취소 수량 설정
  332. let ordDtlNoArr = [];
  333. let cnclRtnReqQtyArr = [];
  334. let chkQty = 0;
  335. $.each($('#cancelForm input[name=chgQty]'), function(idx, item) {
  336. let chgQty = $(item).val();
  337. let ordDtlNo = $(item).attr('ordDtlNo');
  338. ordDtlNoArr.push(Number(ordDtlNo));
  339. cnclRtnReqQtyArr.push(Number(chgQty));
  340. chkQty += chgQty;
  341. });
  342. // 취소 수량 체크
  343. if (chkQty == 0) {
  344. mcxDialog.alert('취소하실 상품의 수량을 선택해주세요.');
  345. return false;
  346. }
  347. // 환불계좌 체크
  348. let accountNo = $('#cancelForm input[name=accountNo]').val();
  349. let accountNm = $('#cancelForm input[name=accountNm]').val();
  350. let bankCd = $('#cancelForm input[name=bankCd]').val();
  351. // 무통장입금, 결제완료 일때 환불계좌정보 체크
  352. if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_30' && (gagajf.isNull(accountNo) || gagajf.isNull(accountNm) || gagajf.isNull(bankCd))) {
  353. let data = {};
  354. data.ordNo = oneData.ordNo;
  355. data.accountNm = oneData.accountNm;
  356. $('#refundAccountPop').show().addClass("active");
  357. $("body").css({"overflow":"hidden"});
  358. return false;
  359. }
  360. // 취소요청 데이터 설정
  361. let url = '/noMember/cancel';
  362. // 취소 처리
  363. let data = {};
  364. data.ordNo = oneData.ordNo;
  365. data.chgReason = 'G686_10';
  366. data.chgReasonNm = '고객변심';
  367. data.accountNo = accountNo;
  368. data.accountNm = accountNm;
  369. data.bankCd = bankCd;
  370. data.isCustomer = true;
  371. data.reqGbn = 'cnclComplete';
  372. data.pgTid = paymentInfo.pgTid;
  373. data.payAmt = paymentInfo.payAmt;
  374. data.ordDtlNoArr = ordDtlNoArr;
  375. data.cnclRtnReqQtyArr = cnclRtnReqQtyArr;
  376. let jsonData = JSON.stringify(data);
  377. // 취소 처리 가능 여부 조회
  378. gagajf.ajaxJsonSubmit('/noMember/wms/cancel/available', jsonData, function(result) {
  379. if (result.cancelYn == 'Y') {
  380. // 취소 처리
  381. gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
  382. cfnGoToPage(_PAGE_NOMEMBER_ORDER_LIST);
  383. });
  384. } else {
  385. mcxDialog.alert('이미 배송처리 되어 취소 처리에 실패 하였습니다.');
  386. }
  387. }, true);
  388. }
  389. // 취소 수량 변경 이벤트 처리
  390. var fnChangeCancelQty = function(param) {
  391. let url = '/noMember/cancel/refund/amt/calculate';
  392. // 취소수량설정
  393. if (param != null) {
  394. $("#cancelForm input[name=chgQty]").each(function(idx){
  395. var ordDtlNo = $(this).attr("ordDtlNo");
  396. if (ordDtlNo == $(param).parent().find("input[name=ordDtlNo]").val()) {
  397. $(this).val($(param).attr("qty"));
  398. $(this).parent().find(".select").text($(param).find("span").text());
  399. }
  400. });
  401. }
  402. // 취소 수량 설정
  403. let cnclRtnReqQtyArr = [];
  404. let ordDtlNoArr = [];
  405. let ordCanChgQtyArr = [];
  406. $.each($('#cancelForm input[name=chgQty]'), function(idx, item) {
  407. let chgQty = $(item).val();
  408. let ordDtlNo = $(item).attr('ordDtlNo');
  409. let ordCanChgQty = $(item).attr('ordCanChgQty');
  410. cnclRtnReqQtyArr.push(Number(chgQty));
  411. ordDtlNoArr.push(Number(ordDtlNo));
  412. ordCanChgQtyArr.push(Number(ordCanChgQty));
  413. });
  414. let data = {};
  415. data.ordNo = oneData.ordNo;
  416. data.ordDtlNoArr = ordDtlNoArr;
  417. data.cnclRtnReqQtyArr = cnclRtnReqQtyArr;
  418. let jsonData = JSON.stringify(data);
  419. gagajf.ajaxJsonSubmit(url, jsonData, function (result) {
  420. let refundPoint = Number(result.spanPntDcAmt); // 환불 포인트 금액
  421. let refundGiftCard = Number(result.spanGfcdUseAmt); // 환불 상품권 금액
  422. let spanCnclRtnAmt = Number(result.spanCnclRtnAmt); // 환불 상품 금액
  423. let spanCpnDcAmt = Number(result.spanCpnDcAmt); // 쿠폰 할인 차감 금액
  424. let spanTmtbDcAmt = Number(result.spanTmtbDcAmt); // 다다익선 할인 차감 금액
  425. let spanPrePntDcAmt = Number(result.spanPrePntDcAmt); // 선포인트 할인 차감 금액
  426. let sumDeliveryFee = Number(result.sumDeliveryFee); // 원주문배송비
  427. let spanTotDeliveryFee = Number(result.spanTotDeliveryFee); // 추가배송비 (무료배송비 허들 깨져서 발생한 배송비)
  428. let spanRefundAmt = Number(result.spanRefundAmt); // 환불 예정 금액
  429. let goodsCancelAmt = spanCnclRtnAmt; // 상품취소금액
  430. let deliveryFee = sumDeliveryFee - spanTotDeliveryFee; // 배송비 (마지막 취소 시 돌려줘야할 원주문 배송비 - 추가배송비)
  431. let deductDcAmt = 0 - spanCpnDcAmt - spanTmtbDcAmt - spanPrePntDcAmt; // 할인금액 차감 (쿠폰+다다익선+선포인트)
  432. let refundPayAmt = spanRefundAmt; // 결제금액 환불 (환불상품금액 - 할인차감금액 - 배송비)
  433. let returnAmt = refundPayAmt + refundPoint + refundGiftCard; // 환불예정금액
  434. // 추가배송비 영역 설정
  435. if (refundPayAmt < 0) {
  436. //refundPayAmt = spanRefundAmt;
  437. //$('#addDeliveryFee').css('display', '');
  438. //$('#addPayCost').text(spanTotDeliveryFee.addComma() + '원');
  439. addPayCost = spanTotDeliveryFee;
  440. } else {
  441. addPayCost = 0;
  442. }
  443. // 금액 설정
  444. $('#returnAmt').text(returnAmt.addComma());
  445. $('#goodsCancelAmt').text(goodsCancelAmt.addComma());
  446. $('#deliveryFee').text(deliveryFee.addComma());
  447. $('#deductDcAmt').text(deductDcAmt.addComma());
  448. $('#refundPayAmt').text(refundPayAmt.addComma());
  449. $('#refundPoint').text(refundPoint.addComma());
  450. $('#refundGiftCard').text(refundGiftCard.addComma());
  451. });
  452. // 팝업 닫기
  453. $(".popup_close").trigger("click");
  454. }
  455. let isValid = false;
  456. // 계좌인증
  457. $('#btn_bank_certi').on('click', function () {
  458. if (gagajf.isNull($('#refundAccountPop input[name=bankCd]').val())) {
  459. mcxDialog.alert('은행을 선택해주세요.');
  460. return false;
  461. }
  462. if (gagajf.isNull($('#refundAccountPop input[name=accountNo]').val())) {
  463. mcxDialog.alert('계좌번호를 입력해주세요.');
  464. return false;
  465. }
  466. // 승인된 계좌 정보
  467. let confirmedAccountNm = $('#refundAccountPop input[name=confirmedAccountNm]').val();
  468. let confirmedAccountNo = $('#refundAccountPop input[name=confirmedAccountNo]').val();
  469. let confirmedBankCd = $('#refundAccountPop input[name=confirmedBankCd]').val();
  470. // 계좌정보
  471. let accountNm = $('#refundAccountPop input[name=accountNm]').val();
  472. let accountNo = $('#refundAccountPop input[name=accountNo]').val();
  473. let bankCd = $('#refundAccountPop input[name=bankCd]').val();
  474. if (accountNm != confirmedAccountNm || accountNo != confirmedAccountNo || bankCd != confirmedBankCd) {
  475. isValid = false;
  476. }
  477. if (!isValid) {
  478. let url = '/noMember/account/check';
  479. let data = {};
  480. data.accountNm = accountNm;
  481. data.accountNo = accountNo;
  482. data.bankCd = bankCd;
  483. data.ordNo = oneData.ordNo;
  484. let jsonData = JSON.stringify(data);
  485. gagajf.ajaxJsonSubmit(url, jsonData, function (result) {
  486. isValid = result.isValid;
  487. if (isValid) {
  488. mcxDialog.alert('계좌인증에 성공했습니다.');
  489. // 계좌인증 성공 시 Disabled 처리
  490. //$('#refundAccountPop .select_custom.select_bank').attr('disabled', true);
  491. //$('#refundAccountPop input[name=accountNo]').attr('disabled', true);
  492. $('#refundAccountPop input[name=confirmedAccountNm]').val(accountNm);
  493. $('#refundAccountPop input[name=confirmedAccountNo]').val(accountNo);
  494. $('#refundAccountPop input[name=confirmedBankCd]').val(bankCd);
  495. return false;
  496. } else {
  497. mcxDialog.alert('계좌정보를 다시 확인해주세요.');
  498. return false;
  499. }
  500. }, true);
  501. }
  502. });
  503. //계좌등록 후 환불신청 버튼 클릭 이벤트
  504. $('#btn_bank_return').click(function() {
  505. if (isValid) {
  506. // 승인된 계좌 정보
  507. let confirmedAccountNm = $('#refundAccountPop input[name=confirmedAccountNm]').val();
  508. let confirmedAccountNo = $('#refundAccountPop input[name=confirmedAccountNo]').val();
  509. let confirmedBankCd = $('#refundAccountPop input[name=confirmedBankCd]').val();
  510. // 계좌정보
  511. let accountNm = $('#refundAccountPop input[name=accountNm]').val();
  512. let accountNo = $('#refundAccountPop input[name=accountNo]').val();
  513. let bankCd = $('#refundAccountPop input[name=bankCd]').val();
  514. if (accountNm == confirmedAccountNm && accountNo == confirmedAccountNo && bankCd == confirmedBankCd) {
  515. // 부모창의 input 값으로 환불계좌정보 설정
  516. $('#cancelForm input[name=accountNo]').val(accountNo);
  517. $('#cancelForm input[name=accountNm]').val(accountNm);
  518. $('#cancelForm input[name=bankCd]').val(bankCd);
  519. // 팝업 닫기
  520. $("#refundAccountPop .popup_close").trigger("click");
  521. // 취소신청
  522. fnCancel();
  523. } else {
  524. mcxDialog.alert('인증받은 계좌정보와 다릅니다.');
  525. }
  526. } else {
  527. mcxDialog.alert('계좌인증이 필요합니다.');
  528. }
  529. });
  530. //팝업_닫기
  531. $('.popup_close').on("click",function(){
  532. let id = $(this).parent().parent().attr('id');
  533. $(this).parent().parent().hide().removeClass('active');
  534. if (id != 'refundBankPop') {
  535. $("body").css({"overflow": "visible"});
  536. }
  537. });
  538. </script>
  539. <script>
  540. // 버튼 색
  541. $(document).on('click','.popup_box .button_list button',function(){
  542. //$('.popup_box .button_list button').removeClass('on');
  543. $.each($(this).parent().find('button'), function(idx, item) {
  544. $(item).removeClass('on');
  545. });
  546. $(this).addClass('on');
  547. });
  548. // 210408_송장번호 input 글자 수 제한
  549. function handleOnInput(el, maxlength) {
  550. if(el.value.length > maxlength) {
  551. el.value = el.value.substr(0, maxlength);
  552. }
  553. }
  554. //210408_ 추가 : 환불계좌등록 팝업 스크립트
  555. $(document).on("click","#btn_refund_pop",function(e){
  556. $('#refundAccountPop').show().addClass("active");
  557. $("body").css({"overflow":"hidden"});
  558. });
  559. //210408_ 추가 : 은행선택 팝업 스크립트
  560. $(document).on("click","#refundAccountPop .select_bank",function(e){
  561. $('#refundBankPop').show().addClass("active");
  562. $('#refundBankPop').css({"z-index":"1000"});
  563. $("body").css({"overflow":"hidden"});
  564. });
  565. //210510_추가 : 토스트 팝업 button 클릭 시 팝업 닫기.
  566. $(document).on('click','.popup_box.refundBankPop .button_list button',function(){
  567. let bankCd = $(this).attr('bankCd');
  568. let bankNm = $(this).attr('bankNm');
  569. $('#refundAccountPop input[name=bankCd]').val(bankCd);
  570. $('#refundAccountPop .select_custom.select_bank .combo .select').text(bankNm);
  571. $(this).parents('.popup_box.refundBankPop').hide().removeClass('active');
  572. $("body").css({"overflow":"visible"});
  573. });
  574. </script>
  575. </th:block>
  576. </body>
  577. </html>