index.blade.php 5.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. @extends('admin.table_layouts')
  2. @section('content')
  3. <div class="page-content container-fluid">
  4. <x-admin.table-panel :title="trans('admin.menu.shop.coupon')" :theads="[
  5. '#',
  6. trans('model.coupon.name'),
  7. trans('model.coupon.sn'),
  8. trans('model.coupon.logo'),
  9. trans('model.common.type'),
  10. trans('model.coupon.priority'),
  11. trans('model.coupon.usable_times'),
  12. trans('admin.coupon.discount'),
  13. trans('common.available_date'),
  14. trans('common.status.attribute'),
  15. trans('common.action'),
  16. ]" :count="trans('admin.coupon.counts', ['num' => $couponList->total()])" :pagination="$couponList->links()" :delete-config="['url' => route('admin.coupon.destroy', 'PLACEHOLDER'), 'attribute' => trans('model.coupon.attribute')]">
  17. @canany(['admin.coupon.export', 'admin.coupon.create'])
  18. <x-slot:actions>
  19. <div class="btn-group">
  20. @can('admin.coupon.export')
  21. <button class="btn btn-info" onclick="exportCoupon()"><i class="icon wb-code"></i>{{ trans('admin.massive_export') }}</button>
  22. @endcan
  23. @can('admin.coupon.create')
  24. <a class="btn btn-primary" href="{{ route('admin.coupon.create') }}"><i class="icon wb-plus"></i> {{ trans('common.add') }}</a>
  25. @endcan
  26. </div>
  27. </x-slot:actions>
  28. @endcanany
  29. <x-slot:filters>
  30. <x-admin.filter.input class="col-lg-3 col-sm-4" name="sn" :placeholder="trans('model.coupon.sn')" />
  31. <x-admin.filter.selectpicker class="col-lg-3 col-sm-4" name="type" :title="trans('model.common.type')" :options="[1 => trans('admin.coupon.type.voucher'), 2 => trans('admin.coupon.type.discount'), 3 => trans('admin.coupon.type.charge')]" />
  32. <x-admin.filter.selectpicker class="col-lg-3 col-sm-4" name="status" :title="trans('common.status.attribute')" :options="[0 => trans('common.status.available'), 1 => trans('common.status.used'), 2 => trans('common.status.expire')]" />
  33. </x-slot:filters>
  34. <x-slot:tbody>
  35. @foreach ($couponList as $coupon)
  36. <tr>
  37. <td> {{ $coupon->id }} </td>
  38. <td> {{ $coupon->name }} </td>
  39. <td> {{ $coupon->sn }} </td>
  40. <td>
  41. @if ($coupon->logo)
  42. <img class="h-50" src="{{ asset($coupon->logo) }}" alt="{{ trans('model.coupon.logo') }}" />
  43. @endif
  44. </td>
  45. <td>
  46. {{ [trans('common.status.unknown'), trans('admin.coupon.type.voucher'), trans('admin.coupon.type.discount'), trans('admin.coupon.type.charge')][$coupon->type] }}
  47. </td>
  48. <td> {{ $coupon->priority }} </td>
  49. <td> {{ $coupon->type === 3 ? trans('admin.coupon.single_use') : $coupon->usable_times ?? trans('common.unlimited') }} </td>
  50. <td>
  51. {{ trans_choice('admin.coupon.value', $coupon->type, ['num' => $coupon->type === 2 ? $coupon->value : \App\Utils\Helpers::getPriceTag($coupon->value)]) }}
  52. </td>
  53. <td> {{ $coupon->start_time }} ~ {{ $coupon->end_time }} </td>
  54. <td>
  55. <span class="badge badge-lg @if ($coupon->status) badge-default @else badge-success @endif">
  56. {{ [trans('common.status.available'), trans('common.status.used'), trans('common.status.expire')][$coupon->status] }}
  57. </span>
  58. </td>
  59. <td>
  60. <div class="btn-group">
  61. @can('admin.coupon.show')
  62. <a class="btn btn-info" href="{{ route('admin.coupon.show', $coupon) }}" target="_blank">
  63. <i class="icon wb-eye"></i>
  64. </a>
  65. @endcan
  66. @if ($coupon->status !== 1)
  67. @can('admin.coupon.destroy')
  68. <button class="btn btn-danger" data-action="delete">
  69. <i class="icon wb-close"></i>
  70. </button>
  71. @endcan
  72. @endif
  73. </div>
  74. </td>
  75. </tr>
  76. @endforeach
  77. </x-slot:tbody>
  78. </x-admin.table-panel>
  79. </div>
  80. @endsection
  81. @can('admin.coupon.export')
  82. @push('javascript')
  83. <script>
  84. function exportCoupon() { // 批量导出卡券
  85. showConfirm({
  86. title: '{{ trans('admin.coupon.export_title') }}',
  87. text: '{{ trans('admin.confirm.export') }}',
  88. onConfirm: function() {
  89. window.location.href = '{{ route('admin.coupon.export') }}';
  90. }
  91. });
  92. }
  93. </script>
  94. @endpush
  95. @endcan