1
0

invite.blade.php 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. @extends('admin.table_layouts')
  2. @section('content')
  3. <div class="page-content container">
  4. <x-admin.table-panel title="<span class='cyan-600'><i class='icon wb-extension'></i>{{ trans('user.invite.attribute') }}</span>" :theads="[
  5. '#',
  6. trans('user.invite.attribute'),
  7. trans('common.available_date'),
  8. trans('user.inviter'),
  9. trans('common.status.attribute'),
  10. trans('user.invitee'),
  11. ]"
  12. :count="trans('user.invite.counts', ['num' => $inviteList->total()])" :pagination="$inviteList->links()">
  13. <x-slot:actions>
  14. <div class="btn-group">
  15. @can('admin.invite.create')
  16. <button class="btn btn-primary btn-animate btn-animate-side" type="button" onclick="makeInvite()">
  17. <i class="icon wb-plus"></i> {{ trans('common.generate_item', ['attribute' => trans('user.invite.attribute')]) }}
  18. </button>
  19. @endcan
  20. <button class="btn btn-info" onclick="exportInvite()">{{ trans('admin.massive_export') }}</button>
  21. </div>
  22. </x-slot:actions>
  23. <x-slot:body>
  24. <x-alert type="info" :message="trans('user.invite.tips', ['num' => 10, 'days' => sysConfig('user_invite_days')])" />
  25. </x-slot:body>
  26. <x-slot:tbody>
  27. @foreach ($inviteList as $invite)
  28. <tr>
  29. <td> {{ $invite->id }} </td>
  30. <td>
  31. <a class="mt-clipboard" href="javascript:void(0)">{{ $invite->code }}</a>
  32. </td>
  33. <td> {{ $invite->dateline }} </td>
  34. <td>
  35. {{ $invite->inviter_id === null ? trans('admin.system_generate') : $invite->inviter->username ?? '【' . trans('common.deleted_item', ['attribute' => trans('common.account')]) . '】' }}
  36. </td>
  37. <td>
  38. {!! $invite->status_label !!}
  39. </td>
  40. <td>
  41. {{ $invite->status === 1 ? $invite->invitee->username ?? '【' . trans('common.deleted_item', ['attribute' => trans('common.account')]) . '】' : '' }}
  42. </td>
  43. </tr>
  44. @endforeach
  45. </x-slot:tbody>
  46. </x-admin.table-panel>
  47. </div>
  48. @endsection
  49. @push('javascript')
  50. <script>
  51. @can('admin.invite.create')
  52. // 生成邀请码
  53. function makeInvite() {
  54. ajaxPost('{{ route('admin.invite.create') }}');
  55. }
  56. @endcan
  57. @can('admin.invite.export')
  58. // 导出邀请码
  59. function exportInvite() {
  60. showConfirm({
  61. title: '{{ trans('admin.hint') }}',
  62. text: '{{ trans('admin.confirm.export') }}',
  63. onConfirm: function() {
  64. window.location.href = '{{ route('admin.invite.export') }}';
  65. }
  66. });
  67. }
  68. @endcan
  69. $(document).on('click', '.mt-clipboard', function(e) {
  70. e.preventDefault();
  71. copyToClipboard(jsRoute('{{ route('register', ['code' => 'PLACEHOLDER']) }}', $(this).text()));
  72. });
  73. </script>
  74. @endpush