replyTicket.blade.php 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link href="/assets/global/plugins/datatables/datatables.min.css" rel="stylesheet" type="text/css" />
  4. <link href="/assets/global/plugins/datatables/plugins/bootstrap/datatables.bootstrap.css" rel="stylesheet" type="text/css" />
  5. @endsection
  6. @section('title', '控制面板')
  7. @section('content')
  8. <!-- BEGIN CONTENT BODY -->
  9. <div class="page-content" style="padding-top:0;">
  10. <!-- BEGIN PAGE BASE CONTENT -->
  11. <div class="row">
  12. <div class="col-md-12">
  13. <div class="portlet light portlet-fit bordered">
  14. <div class="portlet-title">
  15. <div class="caption">
  16. <i class="icon-question font-green"></i>
  17. <span class="caption-subject bold font-green uppercase"> {{$ticket->title}} </span>
  18. </div>
  19. <div class="actions">
  20. @if($ticket->status != 2)
  21. <div class="btn-group btn-group-devided" data-toggle="buttons">
  22. <a class="btn red btn-outline sbold" data-toggle="modal" href="#closeTicket"> 关闭 </a>
  23. </div>
  24. @endif
  25. </div>
  26. </div>
  27. <div class="portlet-body">
  28. <div class="timeline">
  29. <div class="timeline-item">
  30. <div class="timeline-badge">
  31. <div class="timeline-icon">
  32. <i class="icon-user font-green-haze"></i>
  33. </div>
  34. </div>
  35. <div class="timeline-body">
  36. <div class="timeline-body-arrow"></div>
  37. <div class="timeline-body-head">
  38. <div class="timeline-body-head-caption">
  39. <span class="timeline-body-alerttitle font-blue-madison">{{$ticket->user->username}}</span>
  40. <span class="timeline-body-time font-grey-cascade"> {{$ticket->created_at}} </span>
  41. </div>
  42. <div class="timeline-body-head-actions"></div>
  43. </div>
  44. <div class="timeline-body-content">
  45. <span class="font-grey-cascade"> {!! $ticket->content !!} </span>
  46. </div>
  47. </div>
  48. </div>
  49. @if (!$replyList->isEmpty())
  50. @foreach ($replyList as $reply)
  51. <div class="timeline-item">
  52. <div class="timeline-badge">
  53. @if ($reply->user->is_admin)
  54. <img class="timeline-badge-userpic" src="/assets/images/avatar.jpg">
  55. @else
  56. <div class="timeline-icon">
  57. <i class="icon-user font-green-haze"></i>
  58. </div>
  59. @endif
  60. </div>
  61. <div class="timeline-body">
  62. <div class="timeline-body-arrow"></div>
  63. <div class="timeline-body-head">
  64. <div class="timeline-body-head-caption">
  65. @if($reply->user->is_admin)
  66. <a href="javascript:;" class="timeline-body-title font-red-intense">管理员</a>
  67. @else
  68. <span class="timeline-body-alerttitle font-blue-madison">{{$reply->user->username}}</span>
  69. @endif
  70. <span class="timeline-body-time font-grey-cascade"> {{$reply->created_at}} </span>
  71. </div>
  72. <div class="timeline-body-head-actions"></div>
  73. </div>
  74. <div class="timeline-body-content">
  75. <span class="font-grey-cascade"> {!! $reply->content !!} </span>
  76. </div>
  77. </div>
  78. </div>
  79. @endforeach
  80. @endif
  81. </div>
  82. @if($ticket->status != 2)
  83. <hr />
  84. <div class="row">
  85. <div class="col-md-12">
  86. <script id="editor" type="text/plain" style="padding-bottom:10px;"></script>
  87. <button class="btn blue" type="button" onclick="replyTicket()"> 回 复 </button>
  88. </div>
  89. </div>
  90. @endif
  91. </div>
  92. </div>
  93. <!-- 关闭工单弹窗 -->
  94. <div class="modal fade" id="closeTicket" tabindex="-1" role="basic" aria-hidden="true">
  95. <div class="modal-dialog">
  96. <div class="modal-content">
  97. <div class="modal-header">
  98. <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  99. <h4 class="modal-title">关闭工单</h4>
  100. </div>
  101. <div class="modal-body"> 您确定要关闭该工单吗? </div>
  102. <div class="modal-footer">
  103. <button type="button" class="btn dark btn-outline" data-dismiss="modal">取消</button>
  104. <button type="button" class="btn red" onclick="closeTicket()">确定</button>
  105. </div>
  106. </div>
  107. <!-- /.modal-content -->
  108. </div>
  109. <!-- /.modal-dialog -->
  110. </div>
  111. </div>
  112. </div>
  113. <!-- END PAGE BASE CONTENT -->
  114. </div>
  115. <!-- END CONTENT BODY -->
  116. @endsection
  117. @section('script')
  118. <script src="/assets/global/plugins/bootbox/bootbox.min.js" type="text/javascript"></script>
  119. <script src="/js/ueditor/ueditor.config.js" type="text/javascript" charset="utf-8"></script>
  120. <script src="/js/ueditor/ueditor.all.js" type="text/javascript" charset="utf-8"></script>
  121. <script src="/js/layer/layer.js" type="text/javascript"></script>
  122. <script type="text/javascript">
  123. @if($ticket->status != 2)
  124. // 百度富文本编辑器
  125. var ue = UE.getEditor('editor', {
  126. toolbars:[['source','undo','redo','bold','italic','underline','insertimage','insertvideo','lineheight','fontfamily','fontsize','justifyleft','justifycenter','justifyright','justifyjustify','forecolor','backcolor','link','unlink']],
  127. wordCount:true, //关闭字数统计
  128. elementPathEnabled : false, //是否启用元素路径
  129. maximumWords:300, //允许的最大字符数
  130. initialContent:'', //初始化编辑器的内容
  131. initialFrameWidth:null, //初始化宽度
  132. autoClearinitialContent:false, //是否自动清除编辑器初始内容
  133. });
  134. @endif
  135. // 关闭工单
  136. function closeTicket() {
  137. $.ajax({
  138. type: "POST",
  139. url: "{{url('ticket/closeTicket')}}",
  140. async: true,
  141. data: {_token:'{{csrf_token()}}', id:'{{$ticket->id}}'},
  142. dataType: 'json',
  143. success: function (ret) {
  144. layer.msg(ret.message, {time:1000}, function() {
  145. if (ret.status == 'success') {
  146. window.location.href = '{{url('ticket/ticketList')}}';
  147. }
  148. });
  149. }
  150. });
  151. }
  152. // 回复工单
  153. function replyTicket() {
  154. var content = UE.getEditor('editor').getContent();
  155. $.ajax({
  156. type: "POST",
  157. url: "{{url('ticket/replyTicket')}}",
  158. async: true,
  159. data: {_token:'{{csrf_token()}}', id:'{{$ticket->id}}', content:content},
  160. dataType: 'json',
  161. success: function (ret) {
  162. layer.msg(ret.message, {time:1000}, function() {
  163. if (ret.status == 'success') {
  164. window.location.reload();
  165. }
  166. });
  167. }
  168. });
  169. }
  170. </script>
  171. @endsection