MypagePointFormWeb.html 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  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/MypageLayoutWeb">
  6. <!--
  7. *******************************************************************************
  8. * @source : MypagePointForm.html
  9. * @desc : 마이페이지 > STYLE24포인트 Page
  10. *============================================================================
  11. * STYLE24
  12. * Copyright(C) 2021 TSIT, All rights reserved.
  13. *============================================================================
  14. * VER DATE AUTHOR DESCRIPTION
  15. * === =========== ========== =============================================
  16. * 1.0 2021.02.25 csh9191 최초 작성
  17. *******************************************************************************
  18. -->
  19. <body>
  20. <th:block layout:fragment="content">
  21. <div class="my_cont">
  22. <div class="sec_head">
  23. <h3>STYLE24 포인트</h3>
  24. </div>
  25. <div class="sec_body">
  26. <div class="save_area mypage_coupon">
  27. <p>사용 가능한 보유 포인트<strong th:text="${#numbers.formatDecimal(pointInfo.rmPntAmt, 0, 'COMMA', 0, 'POINT')}"></strong>P</p>
  28. <ul>
  29. <li>적립 예정 포인트 <span>
  30. <th:block th:text="${#numbers.formatDecimal(expectedpointInfo.expectedPntAmt, 0, 'COMMA', 0, 'POINT')}"></th:block>P
  31. </span></li>
  32. <li>한달 이내 소멸 예정 <span>
  33. <th:block th:text="${#numbers.formatDecimal(extinctpointInfo.expectedExpirePntAmt, 0, 'COMMA', 0, 'POINT')}"></th:block>P
  34. </span></li>
  35. </ul>
  36. </div>
  37. <div class="my_tab coupon_tab">
  38. <ul>
  39. <li><a href="javascript:void(0);" id="SearchFullHistory">전체내역</a></li>
  40. <li><a href="javascript:void(0);" id="SearchCollectHistory">적립내역</a></li>
  41. <li><a href="javascript:void(0);" id="SearchUsedHistory">사용내역</a></li>
  42. </ul>
  43. <!-- <div class="form_field"> -->
  44. <!-- <select id="searchDt" name="searchDt" onchange="fnSearchDate(this);"> -->
  45. <!-- </select> -->
  46. <!-- </div> -->
  47. <div class="form_field">
  48. <div class="select_custom type1">
  49. <div class="combo">
  50. <div class="select"></div> <!-- 셀렉박스 -->
  51. <ul id="searchDt" class="list" style="width:200px; margin:0 auto">
  52. </ul>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. <div class="order_list">
  58. <section class="order_row">
  59. <div class="tbl point_tbl track_tbl type2">
  60. <table>
  61. <colgroup>
  62. <col width="150px">
  63. <col width="660px">
  64. <col width="*">
  65. <col width="200px">
  66. </colgroup>
  67. <thead>
  68. <tr>
  69. <th>사유</th>
  70. <th>내용</th>
  71. <th id="plusMinus"></th>
  72. <th>일자</th>
  73. </tr>
  74. </thead>
  75. <tbody id="pointAjaxList">
  76. </tbody>
  77. </table>
  78. </div>
  79. </section>
  80. </div>
  81. </div>
  82. </div>
  83. <script th:inline="javascript">
  84. // select 날짜 생성
  85. var date = new Date();
  86. var year = date.getFullYear();
  87. var month = date.getMonth() +1;
  88. var oneYearAgo = year -1;
  89. var oneYearLater = year +1;
  90. if(10 > month){
  91. month = 0 + "" + (date.getMonth()+1);
  92. }
  93. // Select this year month
  94. var checkYm = year + "" + month;
  95. for(var i = 1;i <= 12; i++){
  96. if(i < 10 && i != month){
  97. $("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + 0 + i +"'>"+ year + "년" + " " + i + "월" +"</li>");
  98. }
  99. else if(i < 10 && i == month){
  100. $(".select").append("<li class='selected' value='"+ year + "" + 0 + i +"'>" + year + "년" + " " + i + "월" +"</li>");
  101. $("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + 0 + i +"'>" + year + "년" + " " + i + "월" +"</li>");
  102. }
  103. else if(i > 9 && i != month){
  104. $("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + i +"'>"+ year + "년" + " " + i + "월" +"</li>");
  105. }
  106. else if(i > 9 && i == month){
  107. $("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + i +"'>"+ year + "년" + " " + i + "월" +"</li>");
  108. }
  109. }
  110. // 날짜변경 이벤트
  111. var fnChangeDate = function(parm) {
  112. let url = '/mypage/allpoint/list';
  113. let data = {};
  114. data.searchDt = $('#searchDt').find('.selected').val();
  115. var jsonData = JSON.stringify(data);
  116. gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
  117. if($("#SearchFullHistory").hasClass("on")){
  118. $("#SearchFullHistory").click();
  119. }else if($("#SearchCollectHistory").hasClass("on")){
  120. $("#SearchCollectHistory").click();
  121. }else if($("#SearchUsedHistory").hasClass("on")){
  122. $("#SearchUsedHistory").click();
  123. }
  124. });
  125. }
  126. // 전체내역 조회
  127. $("#SearchFullHistory").click(function(){
  128. // class제거 추가
  129. $("#SearchCollectHistory").removeClass("on");
  130. $("#SearchUsedHistory").removeClass("on");
  131. $("#SearchFullHistory").addClass("on");
  132. $("#plusMinus").text("증감/차감");
  133. let data = {};
  134. // 처음 화면 로딩시 이번 달 선택
  135. if($('.select').find('.selected').val() == checkYm){
  136. data.searchDt = $('.select').find('.selected').val();
  137. }else{
  138. data.searchDt = $('#searchDt').find('.selected').val();
  139. }
  140. var jsonData = JSON.stringify(data);
  141. $.ajax(
  142. {
  143. type : "POST",
  144. data : jsonData,
  145. url : '/mypage/allpoint/list',
  146. contentType: 'application/json',
  147. dataType : 'json',
  148. success : function(result){
  149. PointAllListInfo(result);
  150. }
  151. }
  152. )
  153. });
  154. function PointAllListInfo(result) {
  155. let allPointList = result.allPointList;
  156. let tmtbHtml = "";
  157. for(let i=0; i<allPointList.length; i++){
  158. let point = allPointList[i];
  159. tmtbHtml +='<tr>';
  160. tmtbHtml +='<td>'+ point.occurGb + '</td>';
  161. tmtbHtml += '<td class="t_l pl40">'+ point.occurDtlDesc + '</td>';
  162. if(point.pntAmt > 0){
  163. tmtbHtml += '<td class="c_blue">'+ point.pntAmt + '</td>';
  164. }else{
  165. tmtbHtml += '<td class="c_primary">'+ point.pntAmt + '</td>';
  166. }
  167. tmtbHtml += '<td>'+ point.pntUploadDt + '</td>';
  168. tmtbHtml += '</tr>';
  169. }
  170. $("#pointAjaxList").html(tmtbHtml);
  171. }
  172. // 적립내역 조회
  173. $("#SearchCollectHistory").click(function(){
  174. // Class제거 추가
  175. $("#SearchFullHistory").removeClass("on");
  176. $("#SearchUsedHistory").removeClass("on");
  177. $("#SearchCollectHistory").addClass("on");
  178. // 적립내역 포인트 블루
  179. $("#pntAmt").removeClass("c_primary");
  180. $("#pntAmt").addClass("c_blue");
  181. $("#plusMinus").text("증감");
  182. let data = {};
  183. if($('.select').find('.selected').val() == checkYm){
  184. data.searchDt = $('.select').find('.selected').val();
  185. }else{
  186. data.searchDt = $('#searchDt').find('.selected').val();
  187. }
  188. let jsonData = JSON.stringify(data);
  189. $.ajax(
  190. {
  191. type : "POST",
  192. data : jsonData,
  193. url : '/mypage/point/list',
  194. contentType: 'application/json',
  195. dataType : 'json',
  196. success : function(result){
  197. PointCollectListInfo(result);
  198. }
  199. }
  200. )
  201. });
  202. function PointCollectListInfo(result) {
  203. let pointList = result.accumulatePointList;
  204. let tmtbHtml = "";
  205. for(let i=0; i<pointList.length; i++){
  206. let point = pointList[i];
  207. tmtbHtml +='<tr>';
  208. tmtbHtml +='<td>'+ point.occurGb + '</td>';
  209. tmtbHtml += '<td class="t_l pl40">'+ point.occurDtlDesc + '</td>';
  210. tmtbHtml += '<td class="c_blue">'+ point.pntAmt + '</td>';
  211. tmtbHtml += '<td>'+ point.pntUploadDt + '</td>';
  212. tmtbHtml += '</tr>';
  213. }
  214. $("#pointAjaxList").html(tmtbHtml);
  215. }
  216. // 사용내역 조회
  217. $("#SearchUsedHistory").click(function(){
  218. // Class제거 추가
  219. $("#SearchCollectHistory").removeClass("on");
  220. $("#SearchFullHistory").removeClass("on");
  221. $("#SearchUsedHistory").addClass("on");
  222. // 사용내역 포인트 블루
  223. $("#pntAmt").removeClass("c_blue");
  224. $("#pntAmt").addClass("c_primary");
  225. $("#plusMinus").text("차감");
  226. let data = {};
  227. if($('.select').find('.selected').val() == checkYm){
  228. data.searchDt = $('.select').find('.selected').val();
  229. }else{
  230. data.searchDt = $('#searchDt').find('.selected').val();
  231. }
  232. let jsonData = JSON.stringify(data);
  233. $.ajax(
  234. {
  235. type : "POST",
  236. data : jsonData,
  237. url : '/mypage/usepoint/list',
  238. contentType: 'application/json',
  239. dataType : 'json',
  240. success : function(result){
  241. UsePointListInfo(result);
  242. }
  243. }
  244. )
  245. });
  246. function UsePointListInfo(result) {
  247. let usePointList = result.usePointList;
  248. let tmtbHtml = "";
  249. for(let i=0; i<usePointList.length; i++){
  250. let usePoint = usePointList[i];
  251. tmtbHtml +='<tr>';
  252. tmtbHtml +='<td>'+ usePoint.occurGb + '</td>';
  253. tmtbHtml += '<td class="t_l pl40">'+ usePoint.occurDtlDesc + '</td>';
  254. tmtbHtml += '<td class="c_primary">'+ usePoint.pntAmt + '</td>';
  255. tmtbHtml += '<td>'+ usePoint.pntUploadDt + '</td>';
  256. tmtbHtml += '</tr>';
  257. }
  258. $("#pointAjaxList").html(tmtbHtml);
  259. }
  260. $(document).ready(function() {
  261. // 마이페이지 LNB 설정
  262. fnSetMypageLnbList(5);
  263. // 마이페이지 location 설정
  264. fnSetMypageLocation('STYLE24 포인트', '_PAGE_MYPAGE_POINT');
  265. // 전체내역 표시
  266. $("#SearchFullHistory").trigger('click');
  267. // 셀렉트박스 활성화
  268. $('.select_custom.type1').each(function(index) {
  269. var selecter01 = new sCombo($(this));
  270. });
  271. });
  272. </script>
  273. </th:block>
  274. </body>
  275. </html>