index.blade.php 4.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. @extends('layouts.app')
  2. @section('content')
  3. <div class="row mb-2 page-header-row">
  4. <div class="col-12 col-md-4 page-header-title">
  5. <h3>МАФ</h3>
  6. </div>
  7. <div class="col-auto col-md-4 text-md-center page-header-year">
  8. @include('partials.year-switcher')
  9. </div>
  10. <div class="col-auto col-md-4 text-md-end page-header-actions">
  11. @if(hasRole('admin'))
  12. <button type="button" class="btn btn-sm mb-1 btn-primary page-action-btn" data-bs-toggle="modal" data-bs-target="#importModal" aria-label="Импорт">
  13. <i class="bi bi-upload page-action-btn__icon"></i>
  14. <span class="page-action-btn__label">Импорт</span>
  15. </button>
  16. <button type="button" class="btn btn-sm mb-1 btn-primary page-action-btn" data-bs-toggle="modal" data-bs-target="#exportModal" aria-label="Экспорт">
  17. <i class="bi bi-download page-action-btn__icon"></i>
  18. <span class="page-action-btn__label">Экспорт</span>
  19. </button>
  20. @endif
  21. </div>
  22. </div>
  23. @include('partials.table', [
  24. 'id' => $id,
  25. 'header' => $header,
  26. 'strings' => $products_sku,
  27. 'routeName' => 'product_sku.show',
  28. 'routeParam' => 'product_sku',
  29. ])
  30. @include('partials.pagination', ['items' => $products_sku])
  31. <!-- Модальное окно импорта-->
  32. <div class="modal fade" id="importModal" tabindex="-1" aria-labelledby="importModalLabel" aria-hidden="true">
  33. <div class="modal-dialog modal-fullscreen-sm-down">
  34. <div class="modal-content">
  35. <div class="modal-header">
  36. <h1 class="modal-title fs-5" id="importModalLabel">Импорт МАФ</h1>
  37. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
  38. </div>
  39. <div class="modal-body">
  40. <form action="{{ route('import.create') }}" method="post" enctype="multipart/form-data">
  41. @csrf
  42. <input type="hidden" name="type" value="mafs">
  43. @include('partials.input', ['title' => 'XLSX файл', 'name' => 'import_file', 'type' => 'file', 'required' => true])
  44. @include('partials.submit', ['name' => 'Импорт'])
  45. </form>
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. <!-- Модальное окно экспорта-->
  51. <div class="modal fade" id="exportModal" tabindex="-1" aria-labelledby="exportModalLabel" aria-hidden="true">
  52. <div class="modal-dialog modal-fullscreen-sm-down modal-lg">
  53. <div class="modal-content">
  54. <div class="modal-header">
  55. <h1 class="modal-title fs-5" id="exportModalLabel">Экспорт МАФ</h1>
  56. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
  57. </div>
  58. <div class="modal-body">
  59. <form action="{{ route('mafs.export') }}" method="post" enctype="multipart/form-data">
  60. @csrf
  61. @include('partials.checkbox', ['title' => 'С учётом текущего фильтра и поиска', 'name' => 'withFilter', 'type' => 'checkbox', 'value' => 'yes', 'checked' => false])
  62. <div class="d-none">
  63. @if(request()->s)
  64. @include('partials.input', ['name' => 's', 'title' => 'поиск', 'value' => request()->s])
  65. @endif
  66. @if(request()->filters)
  67. @foreach(request()->filters as $filterName => $filterValue)
  68. @include('partials.input', ['name' => 'filters[' . $filterName .']', 'title' => $filterName, 'value' => $filterValue])
  69. @endforeach
  70. @endif
  71. </div>
  72. @include('partials.submit', ['name' => 'Экспорт'])
  73. </form>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. @endsection
  79. @push('scripts')
  80. <script type="module">
  81. $('#select_maf').on('change', function () {
  82. $('#product_id').val($(this).val());
  83. $('#product_name').val($('#select_maf option:selected').text()).slideDown();
  84. $('#select_maf_form').slideUp();
  85. $('#sku_form').slideDown();
  86. });
  87. </script>
  88. @endpush