MypagePointFormMob.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  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="mob/common/layout/MypageLayoutMob">
  6. <!--
  7. *******************************************************************************
  8. * @source : MypagePointFormMob.html
  9. * @desc : 마이페이지 > 포인트 Page
  10. *============================================================================
  11. * STYLE24
  12. * Copyright(C) 2020 TSIT, All rights reserved.
  13. *============================================================================
  14. * VER DATE AUTHOR DESCRIPTION
  15. * === =========== ========== =============================================
  16. * 1.0 2021.04.19 sowon 최초 작성
  17. *******************************************************************************
  18. -->
  19. <body>
  20. <th:block layout:fragment="content">
  21. <main role="" id="" class="container my">
  22. <section class="content point">
  23. <div class="inner">
  24. <div class="highlight_area">
  25. <div class="have_amount">
  26. <div class="total_amount">
  27. 보유 포인트&nbsp;<span><em th:text="${#numbers.formatDecimal(rmPntAmt, 0, 'COMMA', 0, 'POINT')}"></em>P</span>
  28. </div>
  29. </div>
  30. </div>
  31. <div class="have_amount">
  32. <dl>
  33. <div>
  34. <dt>적립 예정 포인트</dt>
  35. <dd><em th:text="${#numbers.formatDecimal(expectedPntAmt, 0, 'COMMA', 0, 'POINT')}"></em>P</dd>
  36. </div>
  37. </dl>
  38. <dl>
  39. <div>
  40. <dt>한 달 이내 소멸 예정<span class="tag primary_line">D-<em>30</em></span></dt>
  41. <dd><em th:text="${#numbers.formatDecimal(expectedExpirePntAmt, 0, 'COMMA', 0, 'POINT')}"></em>P</dd>
  42. </div>
  43. </dl>
  44. </div>
  45. </div>
  46. <div class="inner wide">
  47. <div class="select_box ">
  48. <div class="form_field">
  49. <div class="select_custom month sup">
  50. <!-- 210408_ 수정 : 스크립트없는 기본 셀렉터 사용으로 변경 -->
  51. <div class="select pure">
  52. <select name="month" id="month" onchange='fnChangeDate(this.value)' >
  53. </select>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="tabWrap">
  59. <ul class="tabIndex">
  60. <li id="allPointList"><a href="javascript:void(0);">전체 내역</a></li>
  61. <li id="accumulatePointList"><a href="javascript:void(0);">적립 내역</a></li>
  62. <li id="usePointList"><a href="javascript:void(0);">사용 내역</a></li>
  63. </ul>
  64. <div class="tabContents">
  65. <div class="tab_cont active" id="pointAjaxList">
  66. <!-- // tab_cont End -->
  67. </div>
  68. </div>
  69. <div class="nodata">
  70. <div class="txt_box">
  71. <p>
  72. STYLE 포인트 적립/사용내역이 없습니다.<br>
  73. </p>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. </section>
  79. </main>
  80. <script th:inline="javascript">
  81. let accumulatePointList = [[${accumulatePointList}]];
  82. let usePointList = [[${usePointList}]];
  83. let allPointList = [[${allPointList}]];
  84. let date = [[${date}]];
  85. var year = date[0].year;
  86. var month = date[0].month;
  87. //동적으로 날짜 년도 append
  88. function appendYear() {
  89. for (var i = 0; i < date.length; i++) {
  90. $("#month").append( "<option value='"+ date[i].year + "" + date[i].month + "'>" + date[i].year + "년" +' '+ date[i].month + "월 </option>")
  91. }
  92. //$(".month").append("<option class='selected' value='"+date[0].year+""+date[0].month+"'>"+ date[0].year + "년" + date[0].month + "월 </option>"); // 현재년도 선택 */
  93. }
  94. appendYear($("#month"));
  95. //날짜변경 이벤트
  96. var fnChangeDate = function(param) {
  97. let url = '/mypage/allpoint/list';
  98. let searchDt;
  99. if (typeof param == 'undefined') {
  100. searchDt = year + month;
  101. }else{
  102. searchDt = param;
  103. }
  104. // 포인트화면 로딩시 이번달 설정 리스트 표시하기 위함
  105. let data = {
  106. searchDt : searchDt
  107. };
  108. var jsonData = JSON.stringify(data);
  109. gagajf.ajaxJsonSubmit('/mypage/allpoint/list', jsonData, function(result){
  110. accumulatePointList = result.accumulatePointList;
  111. usePointList = result.usePointList;
  112. allPointList = result.allPointList;
  113. // 클릭상태 확인
  114. if($("#accumulatePointList").hasClass("active")){
  115. $("#accumulatePointList").click();
  116. // 첫화면 전체내역 조회
  117. fnGetPointTableInfo(result.accumulatePointList);
  118. }else if($("#usePointList").hasClass("active")){
  119. $("#usePointList").click();
  120. fnGetPointTableInfo(usePointList);
  121. }else if($("#allPointList").hasClass("active")) {
  122. $("#allPointList").click();
  123. fnGetPointTableInfo(allPointList);
  124. }
  125. });
  126. }
  127. // HTML 그리기
  128. var fnGetPointTableInfo = function(param) {
  129. $('.nodata').hide();
  130. $("#pointAjaxList").html('');
  131. let tag = "";
  132. if(param != null && param.length > 0){
  133. $.each(param, function(idx,item){
  134. tag += '<ul>';
  135. tag += ' <li>';
  136. tag += ' <div>';
  137. if(item.pntAmt > 0){
  138. tag += ' <span class="tag primary">적립</span>';
  139. }else{
  140. tag += ' <span class="tag deepgray">차감</span>';
  141. }
  142. tag += ' <span class="tag_name">'+item.occurGb+'</span>';
  143. tag += ' <span class="txt_content">'+ item.occurDtlDesc + '</span>';
  144. tag += ' <span class="txt_time">'+item.pntUploadDt+'</span>';
  145. tag += ' </div>';
  146. tag += ' <div>';
  147. if(item.pntAmt > 0){
  148. tag += ' <span class="amount_plus">';
  149. tag += ' <em>+'+item.pntAmt.addComma()+'</em>P';
  150. tag += ' </span>';
  151. }else{
  152. tag += ' <span class="amount_minus">';
  153. tag += ' <em>'+item.pntAmt.addComma()+'</em>P';
  154. tag += ' </span>';
  155. }
  156. tag += ' </div>';
  157. tag += ' </li>';
  158. tag += '</ul>';
  159. });
  160. $("#pointAjaxList").html(tag);
  161. }else{
  162. $('.nodata').show();
  163. }
  164. }
  165. // 전체내역 조회
  166. $("#allPointList").click(function(){
  167. $("#accumulatePointList").removeClass("active");
  168. $("#usePointList").removeClass("active");
  169. $("#allPointList").addClass("active");
  170. //$("#plusMinus").text("증감/차감");
  171. fnGetPointTableInfo(allPointList);
  172. });
  173. // 적립내역 조회
  174. $("#accumulatePointList").click(function(){
  175. $("#allPointList").removeClass("active");
  176. $("#usePointList").removeClass("active");
  177. $("#accumulatePointList").addClass("active");
  178. //$("#plusMinus").text("증감");
  179. fnGetPointTableInfo(accumulatePointList);
  180. });
  181. // 사용내역 조회
  182. $("#usePointList").click(function(){
  183. $("#accumulatePointList").removeClass("active");
  184. $("#allPointList").removeClass("active");
  185. $("#usePointList").addClass("active");
  186. //$("#plusMinus").text("차감");
  187. fnGetPointTableInfo(usePointList);
  188. });
  189. $(document).ready(function() {
  190. $('#htopTitle').text('STYLE 포인트');
  191. // 전체내역 표시
  192. $("#allPointList").trigger("click");
  193. // 셀렉트박스 활성화
  194. $('.select_custom').each(function(index) {
  195. var selecter01 = new sCombo($(this));
  196. });
  197. // 셀렉트박스 데이터 설정
  198. fnChangeDate();
  199. });
  200. </script>
  201. </th:block>
  202. </body>
  203. </html>