index.blade.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. @extends('layouts.app')
  2. @section('content')
  3. <div class="container-fluid">
  4. <div class="row">
  5. <div class="col-12">
  6. <h3>{{ $title }}</h3>
  7. {{-- Навигация --}}
  8. <ul class="nav nav-tabs mb-3">
  9. <li class="nav-item">
  10. <a class="nav-link" href="{{ route('spare_parts.index') }}">
  11. Каталог
  12. </a>
  13. </li>
  14. <li class="nav-item">
  15. <a class="nav-link" href="{{ route('spare_part_orders.index') }}">
  16. Заказы деталей
  17. </a>
  18. </li>
  19. <li class="nav-item">
  20. <a class="nav-link" href="{{ route('spare_part_inventory.index') }}">
  21. Контроль наличия
  22. </a>
  23. </li>
  24. <li class="nav-item">
  25. <a class="nav-link active" href="{{ route('pricing_codes.index') }}">
  26. Справочник расшифровок
  27. </a>
  28. </li>
  29. <li class="nav-item">
  30. <a class="nav-link {{ ($tab ?? '') === 'help' ? 'active' : '' }}"
  31. href="{{ route('spare_parts.help') }}">
  32. <i class="bi bi-question-circle"></i> Справка
  33. </a>
  34. </li>
  35. </ul>
  36. {{-- Кнопки управления --}}
  37. <div class="mb-3">
  38. <button type="button" class="btn btn-sm btn-primary" data-bs-toggle="modal" data-bs-target="#addCodeModal">
  39. Добавить код
  40. </button>
  41. </div>
  42. @if(isset($pricing_codes))
  43. @include('partials.table', [
  44. 'id' => $id,
  45. 'header' => $header,
  46. 'strings' => $pricing_codes,
  47. 'searchFields' => $searchFields,
  48. 'sortBy' => $sortBy,
  49. 'orderBy' => $orderBy,
  50. 'filters' => [],
  51. 'ranges' => [],
  52. 'dates' => [],
  53. 'enableColumnFilters' => false,
  54. ])
  55. {{ $pricing_codes->links() }}
  56. @endif
  57. </div>
  58. </div>
  59. </div>
  60. {{-- Модальное окно добавления кода --}}
  61. <div class="modal fade" id="addCodeModal" tabindex="-1" aria-labelledby="addCodeModalLabel" aria-hidden="true">
  62. <div class="modal-dialog">
  63. <div class="modal-content">
  64. <div class="modal-header">
  65. <h1 class="modal-title fs-5" id="addCodeModalLabel">Добавить код расценки</h1>
  66. <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
  67. </div>
  68. <form action="{{ route('pricing_codes.store') }}" method="POST">
  69. @csrf
  70. <div class="modal-body">
  71. <div class="mb-3">
  72. <label for="type" class="form-label">Тип</label>
  73. <select class="form-select" id="type" name="type" required>
  74. <option value="tsn_number">№ по ТСН</option>
  75. <option value="pricing_code">Шифр расценки</option>
  76. </select>
  77. </div>
  78. <div class="mb-3">
  79. <label for="code" class="form-label">Код</label>
  80. <input type="text" class="form-control" id="code" name="code" required>
  81. </div>
  82. <div class="mb-3">
  83. <label for="description" class="form-label">Расшифровка</label>
  84. <input type="text" class="form-control" id="description" name="description">
  85. </div>
  86. </div>
  87. <div class="modal-footer">
  88. <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Отмена</button>
  89. <button type="submit" class="btn btn-primary">Добавить</button>
  90. </div>
  91. </form>
  92. </div>
  93. </div>
  94. </div>
  95. @push('scripts')
  96. <script type="module">
  97. function waitForJQuery(callback) {
  98. if (typeof window.$ !== 'undefined') {
  99. callback();
  100. } else {
  101. setTimeout(() => waitForJQuery(callback), 50);
  102. }
  103. }
  104. waitForJQuery(function() {
  105. // Редактирование описания
  106. $('.edit-description').on('click', function() {
  107. const id = $(this).data('id');
  108. $('.description-text-' + id).hide();
  109. $(this).hide();
  110. $('.edit-form-' + id).show();
  111. });
  112. // Отмена редактирования
  113. $('.cancel-edit').on('click', function() {
  114. const id = $(this).data('id');
  115. $('.edit-form-' + id).hide();
  116. $('.description-text-' + id).show();
  117. $('.edit-description[data-id="' + id + '"]').show();
  118. });
  119. $('.js-confirm-submit').on('submit', function(e) {
  120. e.preventDefault();
  121. const form = this;
  122. const message = $(form).data('confirm-message') || 'Подтвердите действие';
  123. customConfirm(message, function () {
  124. form.submit();
  125. }, 'Подтверждение удаления');
  126. });
  127. });
  128. </script>
  129. @endpush
  130. @endsection