FaqFormMob.html 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  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/CallcenterLayoutMob">
  6. <!--
  7. *******************************************************************************
  8. * @source : FaqFormMob.html
  9. * @desc : FAQ Page
  10. *============================================================================
  11. * STYLE24
  12. * Copyright(C) 2020 TSIT, All rights reserved.
  13. *============================================================================
  14. * VER DATE AUTHOR DESCRIPTION
  15. * === =========== ========== =============================================
  16. * 1.0 2021.03.09 gagamel 최초 작성
  17. *******************************************************************************
  18. -->
  19. <body>
  20. <th:block layout:fragment="content">
  21. <main role="" id="" class="container cs">
  22. <!-- 고객센터 Gnb -->
  23. <nav class="pnb" id="callcenterGnb">
  24. </nav>
  25. <!-- //고객센터 Gnb -->
  26. <!-- ★ 컨텐츠 시작 -->
  27. <section class="cs_faq_1">
  28. <div class="inner sr-only"><h2 class="title">FAQ 리스트</h2></div>
  29. <div class="inner">
  30. <!-- 탭 -->
  31. <div class="search_wrap">
  32. <form id="faqForm" name="faqForm" action="#" th:action="@{'/callcenter/faq/list'}" th:method="post" onsubmit="fnSearchFaq(); return false;">
  33. <input type="hidden" name="faqType"/>
  34. <input type="hidden" name="pageNo" value ="1"/>
  35. <input type="hidden" name="pageSize" value ="10"/>
  36. <input type="text" class="form_control cs_search_input" name="searchTxt" placeholder="검색어를 입력해주세요" maxlength="50"/>
  37. <button class="btn_x" type="button" onclick="fnRemoveFaq()"><span>검색어 지우기</span></button> <!-- 210514_ 추가 : 검색어 지우기 버튼 [.btn_x] 추가. -->
  38. <button class="btn_sch" type="button" onclick="fnSearchFaq(); return false;">search</button> <!-- 210514_ 추가 : .btn_sch 클래스 추가. -->
  39. <p>찾으시는 문의 내용이 없으시면 1:1 문의를 이용해 주세요.</p>
  40. </form>
  41. </div>
  42. <div class="fold_nav">
  43. <ul id="ulFaqType">
  44. <li><a href="#none;" onclick="fnGetList(this, '', true);" class="on">전체</a></li>
  45. <li th:if="${faqTypeList != null and !faqTypeList.empty}" th:each="oneData, status : ${faqTypeList}">
  46. <a href="javascript:void(0);" th:onclick='fnGetList(this, [[${oneData.cd}]], true);' th:text="${oneData.cdNm}">상품문의</a>
  47. </li>
  48. </ul>
  49. </div>
  50. <!-- //탭 -->
  51. </div>
  52. <div class="inner wide">
  53. <!-- 폴딩리스트 -->
  54. <div class="ui_row" id="divFaq"> <!-- 데이터 없을시 클래스 nodata 추가 -->
  55. <div class="foldGroup case1">
  56. <!-- 리스트1 -->
  57. <ul id="ulFaq">
  58. </ul>
  59. <!-- //리스트1 -->
  60. </div>
  61. </div>
  62. <div class="ui_foot">
  63. <button class="btn btnM btnIcon_more" id="btnFaqMore">더보기</button>
  64. </div>
  65. <!-- //폴딩리스트 -->
  66. </div>
  67. </section>
  68. <!-- ★ 컨텐츠 종료 -->
  69. </main>
  70. <script th:inline="javascript">
  71. /*<![CDATA[*/
  72. $(document).ready(function() {
  73. // 타이틀명
  74. $('#htopTitle').text('고객센터');
  75. // 고객센터 GNB 설정
  76. fnSetCallcenterGnb(1);
  77. $('#btnFaqMore').trigger('click');
  78. });
  79. // 더보기
  80. $('#btnFaqMore').on('click', function() {
  81. gagajf.ajaxFormSubmit($('#faqForm').prop('action'), '#faqForm', fnGetListCallback);
  82. });
  83. // FAQ 목록
  84. var fnGetList = function(obj, faqType, isCallTab) {
  85. if (typeof(obj) != 'undefined') {
  86. $li = $(obj).parent('li').parent('ul').find('li>a');
  87. $li.each(function(i) {
  88. $(this).removeClass('on');
  89. });
  90. $(obj).addClass('on');
  91. }
  92. if (!gagajf.isNull(faqType)) {
  93. $('#faqForm input[name=faqType]').val(faqType);
  94. } else {
  95. $('#faqForm input[name=faqType]').val('');
  96. }
  97. if (isCallTab) {
  98. $('#faqForm input[name=searchTxt]').val('');
  99. }
  100. $('#faqForm input[name=pageNo]').val(1);
  101. $('#ulFaq').html('');
  102. $('#btnFaqMore').trigger('click');
  103. }
  104. // FAQ 목록 콜백함수
  105. var fnGetListCallback = function(result) {
  106. if (result.dataList != null && result.dataList.length > 0) {
  107. $.each(result.dataList, function(idx, item) {
  108. let tag = '<li>\n';
  109. tag += ' <div class="fold_head">\n';
  110. tag += ' <a href="javascript:void(0)">\n';
  111. tag += ' <div>\n';
  112. tag += ' <div class="fold_tit">\n';
  113. tag += ' <div class="lap1">\n';
  114. tag += ' <span class="prod">' + item.faqTypeNm + '</span>\n';
  115. tag += ' </div>\n';
  116. tag += ' <div class="lap2"><span>' + item.question + '</span></div>\n';
  117. tag += ' </div>\n';
  118. tag += ' </div>\n';
  119. tag += ' </a>\n';
  120. tag += ' </div>\n';
  121. tag += ' <div class="fold_cont">\n';
  122. tag += ' <div class="fold_answer">\n';
  123. tag += ' <div class="answer_body">' + item.answer.escapeHtml().replace(/\n/g,'<br/>') + '</div>\n';
  124. tag += ' </div>\n';
  125. tag += ' </div>\n';
  126. tag += '</li>\n';
  127. $('#ulFaq').append(tag);
  128. });
  129. $('#divFaq').removeClass('nodata');
  130. } else {
  131. // 퍼블로 처리함으로 아래 2줄 주석 처리
  132. // let tag = '<li>검색어 조건에 맞는 항목이 없습니다.</li>\n';
  133. // $('#ulFaq').append(tag);
  134. $('#divFaq').addClass('nodata');
  135. }
  136. if (result.paging.pageable.totalPage > result.paging.pageable.pageNo) {
  137. $('#btnFaqMore').parent().show();
  138. $('#faqForm input[name=pageNo]').val(result.paging.pageable.pageNo + 1);
  139. } else {
  140. $('#btnFaqMore').parent().hide();
  141. }
  142. }
  143. // 검색어 입력
  144. let fnSearchFaq = function() {
  145. if (gagajf.isNull($('#faqForm input[name=searchTxt]').val())) {
  146. mcxDialog.alert('검색어를 입력해 주세요.');
  147. return;
  148. }
  149. $('#faqForm input[name=faqType]').val('');
  150. // $('#btnFaqMore').trigger('click');
  151. fnGetList($('#ulFaqType>li').eq(0).find('a'));
  152. }
  153. // 검색어 삭제
  154. let fnRemoveFaq = function() {
  155. $("#faqForm input[name=searchTxt]").val('');
  156. }
  157. /*]]>*/
  158. </script>
  159. </th:block>
  160. </body>
  161. </html>