search.blade.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. {{-- resources/views/wiki/search.blade.php --}}
  2. @extends('wiki.layouts.app')
  3. @section('title', $query ? '"' . $query . '" 的搜索结果 · WikiPāli' : '搜索 · WikiPāli')
  4. @section('wiki-content')
  5. {{-- 搜索栏 --}}
  6. <div class="wiki-search-bar-wrap">
  7. <form action="{{ route('library.search') }}"
  8. method="GET"
  9. class="wiki-search-form">
  10. <div class="input-group">
  11. <input
  12. type="text"
  13. name="q"
  14. class="form-control wiki-search-input"
  15. value="{{ $query }}"
  16. placeholder="搜索条目、巴利文、梵文…"
  17. autofocus />
  18. @if ($category !== 'all')
  19. <input type="hidden" name="category" value="{{ $category }}">
  20. @endif
  21. <button class="btn btn-primary" type="submit">搜索</button>
  22. </div>
  23. </form>
  24. </div>
  25. {{-- 结果摘要 --}}
  26. <div class="wiki-search-summary">
  27. @if ($query)
  28. 搜索
  29. <strong>「{{ $query }}」</strong>
  30. @if ($pagination['total'] > 0)
  31. ,共找到 <strong>{{ $pagination['total'] }}</strong> 条结果
  32. @if ($pagination['last_page'] > 1)
  33. (第 {{ $pagination['current_page'] }} / {{ $pagination['last_page'] }} 页)
  34. @endif
  35. @else
  36. ,未找到相关条目
  37. @endif
  38. @endif
  39. </div>
  40. {{-- 结果列表 --}}
  41. @if (count($results) > 0)
  42. <div class="wiki-card wiki-search-results">
  43. @foreach ($results as $result)
  44. <x-wiki.search-result-card :result="$result" :lang="$lang" />
  45. @endforeach
  46. </div>
  47. {{-- 分页 --}}
  48. @if ($pagination['last_page'] > 1)
  49. <x-wiki.pagination
  50. :pagination="$pagination"
  51. routeName="library.search"
  52. :queryParams="array_filter(['q' => $query,'lang' => $lang, 'category' => $category === 'all' ? null : $category])" />
  53. @endif
  54. @else
  55. {{-- 空状态 --}}
  56. <div class="wiki-card wiki-empty-state">
  57. <div class="wiki-empty-icon">
  58. <svg width="32" height="32" viewBox="0 0 24 24" fill="none"
  59. stroke="currentColor" stroke-width="1.5">
  60. <circle cx="11" cy="11" r="8" />
  61. <path d="M21 21l-4.35-4.35" stroke-linecap="round" />
  62. <path d="M8 11h6M11 8v6" stroke-linecap="round" />
  63. </svg>
  64. </div>
  65. <div class="wiki-empty-title">未找到相关条目</div>
  66. <div class="wiki-empty-desc">
  67. 请尝试其他关键词
  68. </div>
  69. </div>
  70. @endif
  71. @endsection
  72. @section('wiki-sidebar')
  73. {{-- 分类筛选 --}}
  74. <div class="wiki-sidebar-section">
  75. <div class="wiki-sidebar-title">按分类筛选</div>
  76. <ul class="wiki-cat-list">
  77. <li>
  78. <a href="{{ route('library.search') }}?q={{ urlencode($query) }}"
  79. class="{{ $category === 'all' ? 'active' : '' }}">
  80. 全部
  81. <span class="wiki-cat-count">{{ $pagination['total'] }}</span>
  82. </a>
  83. </li>
  84. @if(isset($filters))
  85. @foreach ($filters as $cat)
  86. <li>
  87. <a href="{{ route('library.search') }}?q={{ urlencode($query) }}&category={{ $cat->key }}"
  88. class="{{ $category === $cat->key ? 'active' : '' }}">
  89. {{ $cat->key }}
  90. <span class="wiki-cat-count">{{ $cat->doc_count }}</span>
  91. </a>
  92. </li>
  93. @endforeach
  94. @endif
  95. </ul>
  96. </div>
  97. {{-- 近似词条(无结果时显示) --}}
  98. @if (count($results) === 0 && $query)
  99. <div class="wiki-sidebar-section">
  100. <div class="wiki-sidebar-title">你可能在找</div>
  101. <ul class="wiki-related-list">
  102. <li>
  103. <a href="{{ route('library.search', ['lang' => $lang]) }}?q={{ urlencode(substr($query, 0, -1)) }}">
  104. {{ substr($query, 0, -1) }}
  105. </a>
  106. </li>
  107. </ul>
  108. </div>
  109. @endif
  110. @endsection