replyTicket.blade.php 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. @extends('user.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', trans('home.panel'))
  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">{{trans('home.ticket_reply_me')}}</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.png">
  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">{{trans('home.ticket_reply_master')}}</a>
  67. @else
  68. <span class="timeline-body-alerttitle font-blue-madison">{{trans('home.ticket_reply_me')}}</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()"> {{trans('home.ticket_reply_button')}} </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="/js/ueditor/ueditor.config.js" type="text/javascript" charset="utf-8"></script>
  119. <script src="/js/ueditor/ueditor.all.js" type="text/javascript" charset="utf-8"></script>
  120. <script src="/js/layer/layer.js" type="text/javascript"></script>
  121. <script type="text/javascript">
  122. @if($ticket->status != 2)
  123. // 百度富文本编辑器
  124. var ue = UE.getEditor('editor', {
  125. toolbars:[['source','undo','redo','bold','italic','underline','insertimage','insertvideo','lineheight','fontfamily','fontsize','justifyleft','justifycenter','justifyright','justifyjustify','forecolor','backcolor','link','unlink']],
  126. wordCount:true, //关闭字数统计
  127. elementPathEnabled : false, //是否启用元素路径
  128. maximumWords:300, //允许的最大字符数
  129. initialContent:'', //初始化编辑器的内容
  130. initialFrameWidth:null, //初始化宽度
  131. autoClearinitialContent:false, //是否自动清除编辑器初始内容
  132. });
  133. @endif
  134. // 关闭工单
  135. function closeTicket() {
  136. $.ajax({
  137. type: "POST",
  138. url: "{{url('user/closeTicket')}}",
  139. async: true,
  140. data: {_token:'{{csrf_token()}}', id:'{{$ticket->id}}'},
  141. dataType: 'json',
  142. success: function (ret) {
  143. layer.msg(ret.message, function() {
  144. if (ret.status == 'success') {
  145. window.location.href = '{{url('user/ticketList')}}';
  146. }
  147. });
  148. }
  149. });
  150. }
  151. // 回复工单
  152. function replyTicket() {
  153. var content = UE.getEditor('editor').getContent();
  154. $.ajax({
  155. type: "POST",
  156. url: "{{url('user/replyTicket')}}",
  157. async: true,
  158. data: {_token:'{{csrf_token()}}', id:'{{$ticket->id}}', content:content},
  159. dataType: 'json',
  160. success: function (ret) {
  161. layer.msg(ret.message, {time:1000}, function() {
  162. if (ret.status == 'success') {
  163. window.location.reload();
  164. }
  165. });
  166. }
  167. });
  168. }
  169. </script>
  170. @endsection