Fix: Загрузка существующих групп при инициализации

 API возвращает группы при пустом запросе с user_id
 Фильтрация по названию только если query не пустой
 Компонент передаёт user_id при загрузке тегов

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
mirivlad 2026-03-30 14:18:11 +08:00
parent 3dfe1e5a2c
commit 3b390c8358
2 changed files with 11 additions and 8 deletions

View File

@ -13,11 +13,6 @@ class GroupSearchController extends Controller
$query = $request->get('q', '');
$userId = $request->get('user_id', null);
// Если запрос пустой - возвращаем пустой массив
if (empty(trim($query))) {
return response()->json([]);
}
$groupsQuery = Group::query()->with('organization');
// Если указан user_id - фильтруем по доступным группам
@ -37,8 +32,12 @@ class GroupSearchController extends Controller
}
}
// Если запрос не пустой - фильтруем по названию
if (!empty(trim($query))) {
$groupsQuery->where('name', 'like', "%{$query}%");
}
$groups = $groupsQuery
->where('name', 'like', "%{$query}%")
->orderBy('name')
->limit(50)
->get()

View File

@ -148,10 +148,14 @@ document.addEventListener('DOMContentLoaded', function() {
@if(count($value) > 0)
const existingIds = {!! json_encode(array_map('strval', is_array($value) ? $value : [])) !!};
if (existingIds.length > 0) {
// Загружаем все группы и фильтруем нужные
fetch('{{ $url }}?q=')
// Загружаем все доступные группы (с user_id для фильтрации)
let url = '{{ $url }}?q=';
@if(isset($user_id) && $user_id)url += '&user_id={{ $user_id }}';@endif
fetch(url)
.then(response => response.json())
.then(allItems => {
// Фильтруем только нужные группы
const items = allItems.filter(item => existingIds.includes(String(item.id)));
items.forEach(item => {
select.addOption(item);