PlanningShotGuideFormWeb.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. <!DOCTYPE html>
  2. <html lang="ko"
  3. xmlns:th="http://www.thymeleaf.org"
  4. xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
  5. layout:decorator="web/common/layout/DefaultLayoutWeb">
  6. <!--
  7. *******************************************************************************
  8. * @source : PlanningShotGuideFormWeb.html
  9. * @desc : 총알배송 Page
  10. *============================================================================
  11. * Pastelmall
  12. * Copyright(C) 2020 TSIT, All rights reserved.
  13. *============================================================================
  14. * VER DATE AUTHOR DESCRIPTION
  15. * === =========== ========== =============================================
  16. * 1.0 2021.3.30 sowon 최초 작성
  17. *******************************************************************************
  18. -->
  19. <body>
  20. <th:block layout:fragment="content">
  21. <!-- // container -->
  22. <div id="container" class="container dp">
  23. <div class="breadcrumb">
  24. <ul>
  25. <li class="bread_home"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
  26. <li class="bread_2depth">총알배송</li>
  27. </ul>
  28. </div>
  29. <div class="wrap">
  30. <div class="content wide dp_Bulletship"> <!-- 페이지특정 클래스 = dp_Bulletship -->
  31. <div class="cont_head">
  32. <div>
  33. <h3>총알배송</h3>
  34. </div>
  35. </div>
  36. <div class="cont_body">
  37. <div class="bulletship">
  38. <!-- <div class="bulletship_head" th:utext="${#strings.replace(#strings.replace(shotHtmlTop.fsrcPc,'&amplt;','<'),'&ampgt;','>')}"> -->
  39. <div class="bulletship_head">
  40. <img src="/images/pc/thumb/bullet_bg1.png" alt="10시까지 주문하면 당일도착">
  41. </div>
  42. <div class="bulletship_body" id="shotHtml">
  43. <!-- 비로그인 상태 or 로그인을 했지만 주소정보를 못 가져오는 경우 -->
  44. <!-- <div class="txt_result">
  45. <p>오전10시 이전 주문 당일도착</p>
  46. <p><span>총알배송이 가능한 지역</span>인지<br>확인해보세요!</p>
  47. <div class="bulletshop_btn">
  48. <button type="button" class="btn btn_default btn_block"><span>내 배송지 확인하기</span></button>
  49. </div>
  50. <p>서울·경기·인천 중 일부지역은 총알배송이 불가합니다.</p>
  51. </div> -->
  52. <!-- 비로그인 상태 or 로그인을 했지만 주소정보를 못 가져오는 경우 -->
  53. </div>
  54. <div class="bulletship_foot">
  55. <div class="bulletship_foot"><br></div>
  56. </div>
  57. <div class="bulletship_foot"><br>
  58. </div>
  59. <!-- <div class="bulletship_foot" th:utext="${#strings.replace(#strings.replace(shotHtmlBtm.fsrcPc,'&amplt;','<'),'&ampgt;','>')}"> -->
  60. <div class="bulletship_foot">
  61. <img src="/images/pc/thumb/bullet_bg2.png" alt="주문/도착, 배송일, 대상상품">
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. <!-- 총알배송 가능 상품 리스트 -->
  67. <div class="content sticky_nav_list" id="cornerList">
  68. <!-- <div class="cont_head">
  69. <div class="sticky_nav">
  70. <ul>
  71. <li><a href="#brand01">모이몰른</a></li> 섹션이동
  72. </ul>
  73. </div>
  74. </div>
  75. <div class="cont_body">
  76. <div class="list_content">
  77. <div id="brand01">
  78. <div class="item_header"> 섹션이동
  79. <h4>모이몰른</h4>
  80. </div>
  81. <div class="itemsGrp"> itemsGrp rank hot deal
  82. <div class="item_prod">
  83. <div class="item_state">
  84. <button type="button" class="itemLike">관심상품 추가</button>
  85. <a href="#none" class="itemLink">
  86. <div class="rank ranker"><span>1</span></div>
  87. <div class="itemPic">
  88. <img alt="BLUE-a" class=" vLHTC pd_img" src="/images/pc/thumb/prod1.jpg">
  89. </div>
  90. <p class="itemBrand">BRAND NAME</p>
  91. <div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
  92. <p class="itemPrice">80,100
  93. <span class="itemPrice_original">89,000</span>
  94. <span class=" itemPercent">10%</span>
  95. </p>
  96. <div class="itemcolorchip">
  97. <span class="chip_color35" value="ABM">BEIGE</span>
  98. <span class="chip_color54" value="BDS">BLACK</span>
  99. <span class="chip_color40" value="YBR">WHITE</span>
  100. </div>
  101. <p class="itemBadge">
  102. <span class="badge13">베스트 </span>
  103. </p>
  104. <div class="itemComment">#주문 폭주 상품</div>
  105. </a>
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. </div> -->
  112. </div>
  113. <!-- //총알배송 가능 상품 리스트 -->
  114. </div>
  115. </div>
  116. <!-- 총알배송 가능여부 결과 팝업 -->
  117. <div class="modal fade bulletShip_pop" id="bulletShipPop" tabindex="-1" role="dialog" aria-labelledby="bulletShipPopLabel" aria-hidden="true">
  118. <div class="modal-dialog" role="document">
  119. <div class="modal-content">
  120. <div class="modal-header">
  121. <h5 class="modal-title" id="bulletShipLabel"><span class="sr-only">총알배송 가능여부 결과</span></h5>
  122. </div>
  123. <div class="modal-body">
  124. <div class="pop_cont">
  125. <div class="txt_result">
  126. <p>고객님이 찾으시는 지역은</p>
  127. <p><span id="shotAdr"></span>&nbsp;가능 지역</p>
  128. <div class="address">
  129. <p id="addr"></p>
  130. </div>
  131. <div class="info">
  132. <p id="infoTxt"></p>
  133. </div>
  134. </div>
  135. </div>
  136. </div>
  137. <div class="modal-footer">
  138. <button type="button" id="" class="btn btn_dark" onclick="$.modal.close();"><span>계속 쇼핑하기</span></button>
  139. </div>
  140. </div>
  141. </div>
  142. <a href="#close-modal" rel="modal:close" id="bulletShipPop_close" class="close-modal">Close</a>
  143. </div>
  144. <!-- //총알배송 가능여부 결과 팝업 -->
  145. <script th:inline="javascript">
  146. /*<![CDATA[*/
  147. let custAddr = [[${custAddr}]];
  148. let customerInfo = [[${customerInfo}]];
  149. let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
  150. let planCornerList = [[${planCornerList}]];
  151. let planCornerGoodsList = [[${planCornerGoodsList}]];
  152. // 로그인 확인
  153. if(planCornerList.length>0){
  154. var html = '';
  155. html += '<div class="cont_head">';
  156. html += ' <div class="sticky_nav">';
  157. html += ' <ul> ';
  158. $.each(planCornerList, function(idx, item) {
  159. html += ' <li><a href="#brand'+idx+'">'+item.cornerNm+'</a></li>';
  160. })
  161. html += ' </ul>';
  162. html += ' </div>';
  163. html += '</div>';
  164. html += '<div class="cont_body">';
  165. html += ' <div class="list_content">';
  166. $.each(planCornerList, function(idx, item) {
  167. html += ' <div id="brand'+idx+'">';
  168. html += ' <div class="item_header">';
  169. html += ' <h4>'+item.cornerNm+'</h4>';
  170. html += ' </div>';
  171. html += ' <div class="itemsGrp';
  172. if (item.cornerDispType == 'G045_1') {
  173. html += ' cut1';
  174. }else if(item.cornerDispType == 'G045_2'){
  175. html += ' cut2';
  176. }else if(item.cornerDispType == 'G045_3'){
  177. html += ' cut3';
  178. }else if(item.cornerDispType == 'G045_4'){
  179. html += ' cut4';
  180. }else if(item.cornerDispType == 'G045_5'){
  181. html += ' cut5';
  182. }
  183. html += '">';
  184. $.each(planCornerGoodsList, function(idx2, item2) {
  185. if (item2.cornerNm == item.cornerNm) {
  186. html += ' <div class="item_prod">';
  187. html += ' <div class="item_state">';
  188. if(item2.likeIt === 'likeit'){
  189. html += ' <button type="button" class="itemLike likeit active"';
  190. }else{
  191. html += ' <button type="button" class="itemLike"';
  192. }
  193. html += ' onClick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
  194. html += ' <a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')" class="itemLink">';
  195. html += ' <div class="itemPic">';
  196. html += ' <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
  197. html += ' </div>';
  198. html += ' <p class="itemBrand">'+item2.brandGroupNm+'</p>';
  199. html += ' <div class="itemName">'+item2.goodsNm+'</div>';
  200. html += ' <p class="itemPrice">'+item2.currPrice.addComma();
  201. if (item2.currPrice != item2.listPrice) {
  202. html += ' <span class="itemPrice_original">'+item2.listPrice.addComma()+'</span>';
  203. }
  204. if (item2.dcRate != 0) {
  205. html += ' <span class=" itemPercent">'+item2.dcRate.addComma()+'%</span>';
  206. }
  207. html += ' </p>';
  208. html += ' <div class="itemcolorchip">';
  209. if(!gagajf.isNull(item2.colorChips)){
  210. var colorArr = item2.colorChips.split(",");
  211. var colorCd = '';
  212. var rgbColor = '';
  213. for(let i=0; i<colorArr.length; i++){
  214. var colorInfo = colorArr[i].split(":");
  215. colorCd = colorInfo[0];
  216. rgbColor = colorInfo[1];
  217. if(rgbColor=='#FFFFFF'){
  218. html += ' <span class="chip_color" style="background-color: '+rgbColor+';border:1px solid #aaa;" value="'+colorCd+'">'+colorCd+'</span>';
  219. }else{
  220. html += ' <span class="chip_color" style="background-color: '+rgbColor+'" value="'+colorCd+'">'+colorCd+'</span>';
  221. }
  222. }
  223. }
  224. html += ' </div>';
  225. if(!gagajf.isNull(item2.icon)){
  226. var iconArr = item2.icon.split(",");
  227. var iconGb = '';
  228. var iconNm = '';
  229. html += ' <p class="itemBadge">';
  230. for(let i=0; i<iconArr.length; i++){
  231. var iconInfo = iconArr[i].split(":");
  232. iconGb = iconInfo[0];
  233. iconNm = iconInfo[1];
  234. html += ' <span class="badge13" value="'+iconGb+'">'+iconNm+' </span>';
  235. }
  236. html += ' </p>';
  237. }
  238. if(item2.goodsTnm != null){
  239. html += ' <div class="itemComment">'+item2.goodsTnm+'</div>';
  240. }
  241. html += ' </a>';
  242. html += ' </div>';
  243. html += ' </div>';
  244. }
  245. })
  246. html += ' </div>';
  247. html += ' </div>';
  248. })
  249. html += ' </div>';
  250. html += ' </div>';
  251. $("#cornerList").append(html);
  252. }
  253. var shotBody = function () {
  254. if (!cfCheckLogin() || (custAddr == null || custAddr == '')) {
  255. html = '';
  256. html += '<div class="txt_result"> ';
  257. html += ' <p>오전10시 이전 주문 당일도착</p> ';
  258. html += ' <p><span>총알배송이 가능한 지역</span>인지<br>확인해보세요!</p> ';
  259. html += ' <div class="bulletshop_btn"> ';
  260. html += ' <button type="button" class="btn btn_default btn_block" onclick="fnOpenDaumAddr();"><span>내 배송지 확인하기</span></button> ';
  261. html += ' </div> ';
  262. html += ' <p>서울&middot;경기&middot;인천 중 일부지역은 총알배송이 불가합니다.</p> ';
  263. html += ' </div> ';
  264. $("#shotHtml").append(html);
  265. }else{
  266. html = '';
  267. html += ' <div class="txt_result">';
  268. html += ' <p><span>'+customerInfo.custNm+'</span>님의 배송지는</p>';
  269. if (custAddr.shotDelvUseYn === 'Y') {
  270. html += ' <p><span>총알배송</span> 가능 지역</p>';
  271. }else{
  272. html += ' <p><span>일반배송</span> 지역</p>';
  273. }
  274. html += ' <div class="bullet_able">';
  275. html += ' <p>'+custAddr.recipBaseAddr+' '+custAddr.recipDtlAddr+'</p>';
  276. html += ' </div>';
  277. html += ' <div class="bulletshop_btn">';
  278. html += ' <button class="btn btn_default btn_block" onclick="fnOpenDaumAddr();"><span>다른 배송지 확인하기</span></button>';
  279. html += ' </div>';
  280. html += ' </div> ';
  281. $("#shotHtml").append(html);
  282. }
  283. }
  284. //우편번호 DAUM을 이용한 우편번호 팝업 레이어
  285. var fnOpenDaumAddr = function() {
  286. let daumZip = new daum.Postcode({
  287. oncomplete: function(data) {
  288. // data.zonecode
  289. $.ajax( {
  290. type : "GET",
  291. url : '/planning/shot/delivery/confirm?recipZipcode='+data.zonecode,
  292. dataType : 'json',
  293. success : function(result) {
  294. if (result != null) {
  295. $('#addr').text(cfnGetDaumRoadAddr(data));
  296. if (result.shotYn != null && result.shortYn != '') {
  297. if(result.shotYn.shotDelvUseYn == "Y"){
  298. $('#shotAdr').text("총알배송");
  299. $("#infoTxt").text("오늘 오전 10시까지 주문하시면 오늘 도착합니다. (토, 일, 공휴일 휴무)");
  300. }
  301. }
  302. else{
  303. $('#shotAdr').text("일반배송");
  304. $("#infoTxt").text("주문시간/배송지에 따라 2~3일 이내 도착합니다. (일, 공휴일 휴무)");
  305. }
  306. $("#bulletShipPop").modal("show");
  307. }
  308. }
  309. });
  310. cfnCloseDaumAddr();
  311. },
  312. width: '100%'
  313. });
  314. cfnOpenDaumAddr(daumZip);
  315. }
  316. $(document).ready(function() {
  317. shotBody();
  318. $("#bulletShipPop_close").click(function() {
  319. $.modal.close();
  320. });
  321. });
  322. /*]]>*/
  323. </script>
  324. </th:block>
  325. </body>
  326. </html>