index.blade.php 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link href="/assets/global/vendor/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
  4. @endsection
  5. @section('content')
  6. <div class="page-content container-fluid">
  7. <div class="panel">
  8. <div class="panel-heading">
  9. <h3 class="panel-title">{{ trans('admin.article.title') }}</h3>
  10. @can('admin.article.create')
  11. <div class="panel-actions">
  12. <a href="{{route('admin.article.create')}}" class="btn btn-primary">
  13. <i class="icon wb-plus" aria-hidden="true"></i> {{ trans('common.add') }}
  14. </a>
  15. </div>
  16. @endcan
  17. </div>
  18. <div class="panel-body">
  19. <form class="form-row">
  20. <div class="form-group col-xxl-1 col-lg-1 col-md-1 col-sm-4">
  21. <input type="number" class="form-control" name="id" value="{{Request::query('id')}}" placeholder="ID"/>
  22. </div>
  23. <div class="form-group col-xxl-1 col-lg-3 col-md-3 col-4">
  24. <select class="form-control" id="type" name="type">
  25. <option value="" hidden>{{ trans('model.common.type') }}</option>
  26. <option value="1">{{ trans('admin.article.type.knowledge') }}</option>
  27. <option value="2">{{ trans('admin.article.type.announcement') }}</option>
  28. </select>
  29. </div>
  30. <div class="form-group col-xxl-1 col-lg-3 col-md-3 col-4">
  31. <select class="form-control" id="category" name="category">
  32. <option value="" hidden>{{ trans('model.article.category') }}</option>
  33. @foreach($categories as $category)
  34. <option value="{{$category->category}}">{{$category->category}}</option>
  35. @endforeach
  36. </select>
  37. </div>
  38. <div class="form-group col-xxl-1 col-lg-3 col-md-3 col-4">
  39. <select class="form-control" id="language" name="language">
  40. <option value="" hidden>{{ trans('model.article.language') }}</option>
  41. @foreach (config('common.language') as $key => $value)
  42. <option value="{{$key}}">
  43. <i class="fi fi-{{$value[1]}}" aria-hidden="true"></i>
  44. <span style="padding: inherit;">{{$value[0]}}</span>
  45. </option>
  46. @endforeach
  47. </select>
  48. </div>
  49. <div class="form-group col-xxl-1 col-lg-3 col-md-3 col-4 btn-group">
  50. <button type="submit" class="btn btn-primary">{{ trans('common.search') }}</button>
  51. <a href="{{route('admin.article.index')}}" class="btn btn-danger">{{ trans('common.reset') }}</a>
  52. </div>
  53. </form>
  54. <table class="text-md-center" data-toggle="table" data-mobile-responsive="true">
  55. <thead class="thead-default">
  56. <tr>
  57. <th> #</th>
  58. <th> {{ trans('model.common.type') }}</th>
  59. <th> {{ trans('model.article.category') }}</th>
  60. <th> {{ trans('validation.attributes.title') }}</th>
  61. <th> {{ trans('model.article.language') }}</th>
  62. <th> {{ trans('model.common.sort') }}</th>
  63. <th> {{ trans('model.article.created_at') }}</th>
  64. <th> {{ trans('common.action') }}</th>
  65. </tr>
  66. </thead>
  67. <tbody>
  68. @foreach($articles as $article)
  69. <tr>
  70. <td> {{$article->id}} </td>
  71. @if ($article->type === 1)
  72. <td> {{ trans('admin.article.type.knowledge') }}</td>
  73. @elseif ($article->type === 2)
  74. <td> {{ trans('admin.article.type.announcement') }}</td>
  75. @else
  76. <td> {{ trans('common.status.unknown') }}</td>
  77. @endif
  78. <td class="text-left">
  79. {{ Str::limit($article->category, 30) }}
  80. </td>
  81. <td class="text-left">
  82. {{ Str::limit($article->title, 50) }}
  83. </td>
  84. <td>
  85. {!! isset(config('common.language')[$article->language]) ? '<i class="fi fi-'.config('common.language')[$article->language][1].' aria-hidden="true"></i>
  86. <span style="padding: inherit;">'.config('common.language')[$article->language][0].'</span>': __('common.status.unknown') !!}
  87. <td> {{$article->sort}} </td>
  88. <td> {{$article->created_at}} </td>
  89. <td>
  90. @canany(['admin.article.edit', 'admin.article.destroy'])
  91. <div class="btn-group">
  92. @can('admin.article.show')
  93. <a href="{{route('admin.article.show',$article)}}" class="btn btn-outline-success">
  94. <i class="icon wb-eye" aria-hidden="true"></i></a>
  95. @endcan
  96. @can('admin.article.edit')
  97. <a href="{{route('admin.article.edit',['article'=>$article->id, 'page'=>Request::query('page')])}}" class="btn btn-outline-primary">
  98. <i class="icon wb-edit" aria-hidden="true"></i></a>
  99. @endcan
  100. @can('admin.article.destroy')
  101. <a class="btn btn-outline-danger" href="javascript:delArticle('{{route('admin.article.destroy',$article->id)}}', '{{$article->id}}')">
  102. <i class="icon wb-close" aria-hidden="true"></i></a>
  103. @endcan
  104. </div>
  105. @endcanany
  106. </td>
  107. </tr>
  108. @endforeach
  109. </tbody>
  110. </table>
  111. </div>
  112. <div class="panel-footer">
  113. <div class="row">
  114. <div class="col-sm-4">
  115. {!! trans('admin.article.counts', ['num' => $articles->total()]) !!}
  116. </div>
  117. <div class="col-sm-8">
  118. <nav class="Page navigation float-right">
  119. {{$articles->links()}}
  120. </nav>
  121. </div>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. @endsection
  127. @section('javascript')
  128. <script src="/assets/global/vendor/bootstrap-table/bootstrap-table.min.js"></script>
  129. <script src="/assets/global/vendor/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js"></script>
  130. @can('admin.article.destroy')
  131. <script>
  132. $(document).ready(function() {
  133. $('#id').val('{{Request::query('id')}}');
  134. $('#type').val('{{Request::query('type')}}');
  135. $('#category').val('{{Request::query('category')}}');
  136. $('#language').val('{{Request::query('language')}}');
  137. $('select').on('change', function() {
  138. this.form.submit();
  139. });
  140. });
  141. // 删除文章
  142. function delArticle(url, id) {
  143. swal.fire({
  144. title: '{{ trans('admin.confirm.delete.0', ['attribute' => trans('model.article.attribute')]) }}' + id +
  145. '{{ trans('admin.confirm.delete.1') }}',
  146. icon: 'question',
  147. showCancelButton: true,
  148. cancelButtonText: '{{ trans('common.close') }}',
  149. confirmButtonText: '{{ trans('common.confirm') }}',
  150. }).then((result) => {
  151. if (result.value) {
  152. $.ajax({
  153. method: 'DELETE',
  154. url: url,
  155. data: {_token: '{{csrf_token()}}'},
  156. dataType: 'json',
  157. success: function(ret) {
  158. if (ret.status === 'success') {
  159. swal.fire({
  160. title: ret.message,
  161. icon: 'success',
  162. timer: 1000,
  163. showConfirmButton: false,
  164. }).then(() => window.location.reload());
  165. } else {
  166. swal.fire({title: ret.message, icon: 'error'}).then(() => window.location.reload());
  167. }
  168. },
  169. });
  170. }
  171. });
  172. }
  173. </script>
  174. @endcan
  175. @endsection