84 lines
3.1 KiB
HTML
84 lines
3.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Search Hub</title>
|
|
<link rel="stylesheet" href="/static/css/bootstrap.min.css">
|
|
<link rel="stylesheet" href="/static/css/style.css">
|
|
<style>
|
|
.initial-title { display: block; }
|
|
.initial-title.has-results { display: none; }
|
|
.compact-title { display: none; }
|
|
.compact-title.has-results { display: block; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<!-- 顶部导航 -->
|
|
<div class="navbar">
|
|
<a href="/" class="navbar-brand">Search Hub</a>
|
|
<div class="navbar-links">
|
|
<a href="/admin">管理面板</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 搜索区域 -->
|
|
<div class="search-section" id="search-section">
|
|
<div class="search-title" id="search-title">Search Hub</div>
|
|
<div class="search-box">
|
|
<input type="text" id="search-input" placeholder="搜索..." autofocus>
|
|
<button id="search-btn">搜索</button>
|
|
<button id="summarize-btn" class="summarize-btn-inline">AI 总结</button>
|
|
</div>
|
|
<div class="source-bar">
|
|
<span class="source-label">搜索源:</span>
|
|
<span class="source-tag source-active" data-source="auto">自动</span>
|
|
{% for s in sources if s.name not in ('ai',) %}
|
|
<span class="source-tag {% if not s.available %}source-disabled{% endif %}"
|
|
data-source="{{ s.name }}"
|
|
{% if not s.available %}title="不可用"{% endif %}>
|
|
{{ s.display_name }}
|
|
</span>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 搜索历史 -->
|
|
<div id="history-section">
|
|
<div id="history-list" class="d-flex flex-wrap gap-2 justify-content-center"></div>
|
|
</div>
|
|
|
|
<!-- 状态 -->
|
|
<div id="status-bar"></div>
|
|
|
|
<!-- 加载中(初始隐藏) -->
|
|
<div id="loading" style="display:none">搜索中<span class="typing-indicator"><span></span><span></span><span></span></span></div>
|
|
|
|
<!-- AI总结区域 — 在结果上方 -->
|
|
<div id="summary-section">
|
|
<div class="summary-card">
|
|
<div class="summary-header">AI 综合总结</div>
|
|
<div id="summary-content" class="summary-content">
|
|
<div class="summary-input-placeholder" id="summary-placeholder">
|
|
<div class="typing-indicator">
|
|
<span></span><span></span><span></span>
|
|
</div>
|
|
AI 总结中...
|
|
</div>
|
|
</div>
|
|
<div id="summary-meta" class="summary-meta"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 搜索结果 -->
|
|
<div id="results-section"></div>
|
|
|
|
<!-- 空状态 -->
|
|
<div id="empty-state">暂无搜索结果</div>
|
|
</div>
|
|
|
|
<script src="/static/js/app.js"></script>
|
|
</body>
|
|
</html>
|