OneToOneQnaFormMob.html 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  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/CallcenterLayoutWeb">
  6. <!--
  7. *******************************************************************************
  8. * @source : OneToOneQnaFormWeb.html
  9. * @desc : 1:1문의 Page
  10. *============================================================================
  11. * STYLE24
  12. * Copyright(C) 2020 TSIT, All rights reserved.
  13. *============================================================================
  14. * VER DATE AUTHOR DESCRIPTION
  15. * === =========== ========== =============================================
  16. * 1.0 2021.02.19 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="content cs_contactUs_1">
  28. <div class="inner sr-only"><h2 class="title">1:1문의</h2></div>
  29. <div class="inner wide">
  30. <!-- 게시판info -->
  31. <ul class="inquiry_box">
  32. <li>
  33. <p th:text="${qnaCountInfo.totCnt}">999</p>
  34. <p>총 문의</p>
  35. </li>
  36. <li>
  37. <p th:text="${qnaCountInfo.ansCnt}">456</p>
  38. <p>답변완료</p>
  39. </li>
  40. <li>
  41. <p th:text="${qnaCountInfo.ingCnt}">690</p>
  42. <p>처리 중</p>
  43. </li>
  44. </ul>
  45. <!-- //게시판info -->
  46. </div>
  47. <div class="inner wide">
  48. <!-- 폴딩리스트2 -->
  49. <div class="ui_row" id="divQna"> <!-- 데이터 없을시 클래스 nodata 추가 -->
  50. <div class="foldGroup case2">
  51. <!-- list2 -->
  52. <ul id="ulQna">
  53. </ul>
  54. <!-- //list2 -->
  55. </div>
  56. </div>
  57. <div class="ui_foot" id="nextPage">
  58. <button class="btn btnM btnIcon_more" onclick="fnGetList();">더보기</button>
  59. </div>
  60. </div>
  61. </section>
  62. <!-- ★ 컨텐츠 종료 -->
  63. </main>
  64. <div class="cs_contactUs_my_footer">
  65. <a href="#none" class="questionMy"><p>1:1문의</p></a>
  66. </div>
  67. <!-- 모달영역 -->
  68. <div>
  69. <div class="modal pop_full fade" id="thumb_pic" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true" style="display: none;">
  70. <div class="modal-dialog" role="document">
  71. <div class="modal-content">
  72. <div class="modal-header">
  73. <h5 class="modal-title sr-only">문의이미지슬라이드</h5>
  74. </div>
  75. <div class="modal-body">
  76. <div class="pop_cont">
  77. <!-- Swiper -->
  78. <div class="swiper-container cs_pop">
  79. <div class="swiper-wrapper">
  80. <div class="swiper-slide"><div class="pop_img" style="background-image: url(/images/mo/cs_pop_people.png);"></div></div>
  81. <div class="swiper-slide"><div class="pop_img" style="background-image: url(/images/mo/cs_pop_people2.png);"></div></div>
  82. </div>
  83. <!-- Add Pagination -->
  84. <div class="swiper-pagination"></div>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. </div>
  91. </div>
  92. <!-- //모달끝 -->
  93. <form id="qnaForm" name="qnaForm" action="#" th:action="@{'/callcenter/onetoone/qna/list'}">
  94. <input type="hidden" name="pageNo" value ="1"/>
  95. <input type="hidden" name="pageSize" value ="10"/>
  96. </form>
  97. <script src="/ux/plugins/gaga/gaga.paging.js"></script>
  98. <script th:inline="javascript">
  99. /*<![CDATA[*/
  100. // JQUERY를 이용한 버튼 모달 팝업
  101. $(".thumb_pic").click(function() {
  102. $("#thumb_pic").modal("show");
  103. });
  104. // 슬라이더_팝업에 문의이미지슬라이드
  105. var swiper = new Swiper('#thumb_pic .swiper-container.cs_pop', {
  106. observer: true,
  107. observeParents: true,
  108. pagination: {
  109. el: '#thumb_pic .swiper-pagination',
  110. },
  111. });
  112. $(document).ready(function() {
  113. // 고객센터 GNB 설정
  114. fnSetCallcenterGnb(2);
  115. fnGetList(1);
  116. });
  117. let fnGetList = function(page) {
  118. // Initialize a pagination
  119. gagaPaging.init('qnaForm', fnGetListCallback, 'pageNav', 10);
  120. // Load data
  121. gagaPaging.load(page);
  122. }
  123. var fnGetListCallback = function(result) {
  124. $('#ulQna').html('');
  125. // 목록
  126. if (result.dataList != null && result.dataList.length > 0) {
  127. $.each(result.dataList, function(idx, item) {
  128. let tag = '<li>\n';
  129. tag += ' <div class="inner wide">\n';
  130. tag += ' <div class="ui_row">\n'; //데이터 없을시 클래스 nodata 추가
  131. tag += ' <div class="foldGroup case2">\n';
  132. tag += ' <ul>\n';
  133. tag += ' <li>\n';
  134. tag += ' <div class="fold_head">\n';
  135. tag += ' <a href="javascript:void(0)">\n';
  136. tag += ' <div>\n';
  137. tag += ' <div class="fold_tit">\n';
  138. tag += ' <div class="lap1">\n';
  139. tag += ' <span class="fold_state ' + (item.ansStat == "G060_10" ? "doing" : "done") + '">' + item.ansStatNm + '</span>\n'; //답변완료 : done / 처리중 : doing
  140. tag += ' <span class="prod">' + item.counselClsfNm + '</span>\n';
  141. tag += ' </div>\n';
  142. tag += ' <div class="lap2"><span>' + item.questTitle + '</span></div>\n';
  143. tag += ' </div>\n';
  144. tag += ' <span class="data">' + item.questDt + '</span>\n';
  145. tag += ' </div>\n';
  146. tag += ' </a>\n';
  147. tag += ' </div>\n';
  148. tag += ' <div class="fold_cont">\n';
  149. tag += ' <div class="fold_detail">\n';
  150. tag += ' <div>' + item.questContent + '</p>\n';
  151. if (!gagajf.isNull(item.sysFileNm1) || !gagajf.isNull(item.sysFileNm2)) {
  152. tag += ' <p class="img_group">\n';
  153. if (!gagajf.isNull(item.sysFileNm1)) {
  154. tag += ' <span class="thumb_pic">\n';
  155. tag += ' <img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm1 + '" alt="" onerror="this.src=\'/image/bg_profile.png\'">\n';
  156. tag += ' </span>\n';
  157. }
  158. if (!gagajf.isNull(item.sysFileNm2)) {
  159. tag += ' <span class="thumb_pic">\n';
  160. tag += ' <img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm2 + '" alt="" onerror="this.src=\'/image/bg_profile.png\'">\n';
  161. tag += ' </span>\n';
  162. }
  163. tag += ' </p>\n';
  164. }
  165. tag += ' </div>\n';
  166. tag += ' </div>\n';
  167. if (item.ansStat == 'G060_20') { // 답변완료 상태일 때
  168. tag += ' <div class="fold_answer">\n';
  169. tag += ' <div>\n';
  170. tag += ' <div class="answer_body">' + item.ansContent + '</div>\n';
  171. tag += ' <div class="answer_foot">\n';
  172. tag += ' <span class="data">' + item.ansDt + '</span>\n';
  173. if (item.ansStat == 'G060_10') { // 처리중일때
  174. // tag += ' <button type="button" class="btn_delete" onclick="fnDeleteQna(' + item.counselSq + ');"><span>삭제</span></button>
  175. }
  176. tag += ' </div>\n';
  177. tag += ' </div>\n';
  178. tag += ' </div>\n';
  179. }
  180. tag += ' </div>\n';
  181. tag += ' </div>\n';
  182. tag += '</li>\n';
  183. $('#ulQna').append(tag);
  184. });
  185. } else {
  186. let tag = '<li>내역이 없습니다.</li>\n';
  187. $('#ulQna').append(tag);
  188. $('#divQna').addClass('nodata');
  189. }
  190. // 더보기 버튼 노출/미노출
  191. if (result.paging.pageable.totalPage == result.paging.pageable.currPage) {
  192. $('#nextPage').hide();
  193. } else {
  194. $('#nextPage').show();
  195. }
  196. }
  197. // 삭제
  198. let fnDeleteQna = function(counselSq) {
  199. mcxDialog.confirm("등록된 내용을 삭제하시겠습니까?", {
  200. cancelBtnText: "취소",
  201. sureBtnText: "확인",
  202. sureBtnClick: function() {
  203. let params = new Object();
  204. params.counselSq = counselSq;
  205. var jsonData = JSON.stringify(params);
  206. gagajf.ajaxJsonSubmit('/callcenter/onetoone/qna/delete'
  207. , jsonData
  208. , function() {
  209. fnGetList();
  210. });
  211. }
  212. });
  213. }
  214. /*]]>*/
  215. </script>
  216. </th:block>
  217. </body>
  218. </html>