view.tpl 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. {include file='admin/tabler_header.tpl'}
  2. <div class="page-wrapper">
  3. <div class="container-xl">
  4. <div class="page-header d-print-none text-white">
  5. <div class="row align-items-center">
  6. <div class="col">
  7. <h2 class="page-title" style="line-height: unset;">
  8. <span class="home-title">工单回复</span>
  9. </h2>
  10. <div class="page-pretitle">
  11. <span class="home-subtitle">你可以在这里查看历史消息并添加回复</span>
  12. </div>
  13. </div>
  14. <div class="col-auto ms-auto d-print-none">
  15. <div class="btn-list">
  16. {if $ticket->status !== 'closed'}
  17. <button href="#" class="btn btn-red d-none d-sm-inline-block" data-bs-toggle="modal"
  18. data-bs-target="#close_ticket_confirm_dialog">
  19. <i class="icon ti ti-x"></i>
  20. 关闭
  21. </button>
  22. <button href="#" class="btn btn-red d-sm-none btn-icon" data-bs-toggle="modal"
  23. data-bs-target="#close_ticket_confirm_dialog">
  24. <i class="icon ti ti-x"></i>
  25. </button>
  26. {/if}
  27. <button href="#" class="btn btn-primary d-none d-sm-inline-block" data-bs-toggle="modal"
  28. data-bs-target="#add-reply">
  29. <i class="icon ti ti-plus"></i>
  30. 回复
  31. </button>
  32. <button href="#" class="btn btn-primary d-sm-none btn-icon" data-bs-toggle="modal"
  33. data-bs-target="#add-reply">
  34. <i class="icon ti ti-plus"></i>
  35. </button>
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. </div>
  41. <div class="page-body">
  42. <div class="container-xl">
  43. <div class="row row-cards">
  44. <div class="col-12">
  45. <div class="card">
  46. <div class="card-body">
  47. <div class="h1 my-2 mb-3">#{$ticket->id} {$ticket->title}</div>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. <div class="row justify-content-center my-3">
  53. <div class="col-12">
  54. <div class="card">
  55. <div class="card-body">
  56. <div class="divide-y">
  57. {foreach $comments as $comment}
  58. <div>
  59. <div class="row">
  60. <div class="col">
  61. <div>
  62. {nl2br($comment['comment'])}
  63. </div>
  64. <div class="text-muted my-1">{$comment['commenter_name']} 回复于 {Tools::toDateTime($comment['datetime'])}
  65. </div>
  66. </div>
  67. <div class="col-auto">
  68. <div>
  69. # {$comment['comment_id'] + 1}
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. {/foreach}
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. <div class="modal modal-blur fade" id="add-reply" tabindex="-1" role="dialog" aria-hidden="true">
  83. <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
  84. <div class="modal-content">
  85. <div class="modal-header">
  86. <h5 class="modal-title">添加回复</h5>
  87. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  88. </div>
  89. <div class="modal-body">
  90. <div class="mb-3">
  91. <textarea id="reply-comment" class="form-control" rows="12" placeholder="请输入回复内容"></textarea>
  92. </div>
  93. </div>
  94. <div class="modal-footer">
  95. <button type="button" class="btn me-auto" data-bs-dismiss="modal">取消</button>
  96. <button id="reply" type="button" class="btn btn-primary" data-bs-dismiss="modal">回复</button>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. <div class="modal modal-blur fade" id="close_ticket_confirm_dialog" tabindex="-1" role="dialog" aria-hidden="true">
  102. <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
  103. <div class="modal-content">
  104. <div class="modal-header">
  105. <h5 class="modal-title">关闭工单</h5>
  106. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  107. </div>
  108. <div class="modal-body">
  109. <div class="mb-3">
  110. <p>
  111. 确认关闭工单?
  112. <p>
  113. </div>
  114. </div>
  115. <div class="modal-footer">
  116. <button type="button" class="btn me-auto" data-bs-dismiss="modal">取消</button>
  117. <button id="confirm_close" type="button" class="btn btn-primary" data-bs-dismiss="modal">确认</button>
  118. </div>
  119. </div>
  120. </div>
  121. </div>
  122. <script>
  123. $("#reply").click(function() {
  124. $.ajax({
  125. url: "/admin/ticket/{$ticket->id}",
  126. type: 'PUT',
  127. dataType: "json",
  128. data: {
  129. comment: $('#reply-comment').val()
  130. },
  131. success: function(data) {
  132. if (data.ret == 1) {
  133. $('#success-message').text(data.msg);
  134. $('#success-dialog').modal('show');
  135. } else {
  136. $('#fail-message').text(data.msg);
  137. $('#fail-dialog').modal('show');
  138. }
  139. }
  140. })
  141. });
  142. $("#confirm_close").click(function() {
  143. $.ajax({
  144. url: "/admin/ticket/{$ticket->id}/close",
  145. type: 'PUT',
  146. dataType: "json",
  147. success: function(data) {
  148. if (data.ret == 1) {
  149. $('#success-message').text(data.msg);
  150. $('#success-dialog').modal('show');
  151. } else {
  152. $('#fail-message').text(data.msg);
  153. $('#fail-dialog').modal('show');
  154. }
  155. }
  156. })
  157. });
  158. $("#success-confirm").click(function() {
  159. location.reload();
  160. });
  161. </script>
  162. {include file='admin/tabler_footer.tpl'}