search.blade.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. {{-- resources/views/library/search.blade.php
  2. 全站统一搜索结果页。
  3. 路由:/library/search?q=&type=&category=&lang=
  4. 原 wiki/search.blade.php 移至此处,@extends 路径更新,
  5. 搜索框改用 <x-ui.search-input>,空状态改用 <x-ui.empty-state>。
  6. --}}
  7. @extends('library.wiki.layouts.app')
  8. @section('title', $query ? '"' . $query . '" 的搜索结果 · WikiPāli' : '搜索 · WikiPāli')
  9. @section('wiki-content')
  10. {{-- 搜索框 --}}
  11. <div class="wiki-search-bar-wrap">
  12. <x-ui.search-input
  13. :action="route('library.search')"
  14. :value="$query"
  15. placeholder="搜索条目、巴利文、梵文…"
  16. :autofocus="true"
  17. :hidden-fields="array_filter(['category' => $category !== 'all' ? $category : null])" />
  18. </div>
  19. {{-- 结果摘要 --}}
  20. <div class="wiki-search-summary">
  21. @if ($query)
  22. 搜索 <strong>「{{ $query }}」</strong>
  23. @if ($pagination['total'] > 0)
  24. ,共找到 <strong>{{ $pagination['total'] }}</strong> 条结果
  25. @if ($pagination['last_page'] > 1)
  26. (第 {{ $pagination['current_page'] }} / {{ $pagination['last_page'] }} 页)
  27. @endif
  28. @else
  29. ,未找到相关条目
  30. @endif
  31. @endif
  32. </div>
  33. {{-- 结果列表 --}}
  34. @if (count($results) > 0)
  35. <div class="wiki-card wiki-search-results">
  36. @foreach ($results as $result)
  37. <x-wiki.search-result-card :result="$result" :lang="$lang" />
  38. @endforeach
  39. </div>
  40. {{-- 分页 --}}
  41. @if ($pagination['last_page'] > 1)
  42. <x-wiki.pagination
  43. :pagination="$pagination"
  44. routeName="library.search"
  45. :queryParams="array_filter([
  46. 'q' => $query,
  47. 'lang' => $lang,
  48. 'category' => $category !== 'all' ? $category : null,
  49. ])" />
  50. @endif
  51. @else
  52. <div class="wiki-card">
  53. <x-ui.empty-state
  54. title="未找到相关条目"
  55. desc="请尝试其他关键词" />
  56. </div>
  57. @endif
  58. @endsection
  59. @section('wiki-sidebar')
  60. {{-- 分类筛选 --}}
  61. <div class="wiki-sidebar-section">
  62. <div class="wiki-sidebar-title">按分类筛选</div>
  63. <ul class="wiki-cat-list">
  64. <li>
  65. <a href="{{ route('library.search', ['q' => $query]) }}"
  66. class="{{ $category === 'all' ? 'active' : '' }}">
  67. 全部
  68. <span class="wiki-cat-count">{{ $pagination['total'] }}</span>
  69. </a>
  70. </li>
  71. @isset($filters)
  72. @foreach ($filters as $cat)
  73. <li>
  74. <a href="{{ route('library.search', ['q' => $query, 'category' => $cat->key]) }}"
  75. class="{{ $category === $cat->key ? 'active' : '' }}">
  76. {{ $cat->key }}
  77. <span class="wiki-cat-count">{{ $cat->doc_count }}</span>
  78. </a>
  79. </li>
  80. @endforeach
  81. @endisset
  82. </ul>
  83. </div>
  84. {{-- 近似词条(无结果时显示) --}}
  85. @if (count($results) === 0 && $query)
  86. <div class="wiki-sidebar-section">
  87. <div class="wiki-sidebar-title">你可能在找</div>
  88. <ul class="wiki-related-list">
  89. <li>
  90. <a href="{{ route('library.search', ['q' => substr($query, 0, -1), 'lang' => $lang]) }}">
  91. {{ substr($query, 0, -1) }}
  92. </a>
  93. </li>
  94. </ul>
  95. </div>
  96. @endif
  97. @endsection