MypageCancelFormMob.html 22 KB

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