_wf_field.blade.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. {{--
  2. Частичный шаблон: рендер одного поля веб-формы.
  3. Используется внутри components/web-form.blade.php.
  4. Переменная: $field — массив {label, name, type, width, required, options}
  5. --}}
  6. @php
  7. $required = !empty($field['required']);
  8. $type = $field['type'] ?? 'text';
  9. $name = $field['name'] ?? '';
  10. $label = $field['label'] ?? '';
  11. $options = $field['options'] ?? [];
  12. @endphp
  13. @if($type !== 'checkbox')
  14. <label>{{ $label }}@if($required) <span style="color:var(--red)">*</span>@endif</label>
  15. @endif
  16. @if($type === 'textarea')
  17. <textarea data-wf-name="{{ $name }}"
  18. {{ $required ? 'required' : '' }}
  19. placeholder="{{ $label }}"
  20. rows="4"></textarea>
  21. @elseif($type === 'select')
  22. <select data-wf-name="{{ $name }}" {{ $required ? 'required' : '' }}>
  23. <option value="">— Выберите —</option>
  24. @foreach($options as $opt)
  25. <option value="{{ $opt }}">{{ $opt }}</option>
  26. @endforeach
  27. </select>
  28. @elseif($type === 'checkbox')
  29. <div style="display:flex;align-items:center;gap:10px">
  30. <input type="checkbox" data-wf-name="{{ $name }}" id="wf_{{ $name }}"
  31. {{ $required ? 'required' : '' }}
  32. style="width:16px;height:16px;accent-color:var(--red);cursor:pointer;flex-shrink:0">
  33. <label for="wf_{{ $name }}" style="font-size:13px;color:var(--muted);cursor:pointer;margin:0">
  34. {{ $label }}
  35. </label>
  36. </div>
  37. @else
  38. <input type="{{ $type }}" data-wf-name="{{ $name }}"
  39. {{ $required ? 'required' : '' }}
  40. placeholder="{{ $label }}">
  41. @endif