RAG/static/chat/index.html

158 lines
6.6 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>RAG 聊天助手</title>
<link rel="stylesheet" href="/static/chat/style.css?v=202601271553">
<script src="/static/chat/script.js?v=202601271553"></script>
<script src="/static/chat/marked.min.js"></script>
</head>
<body>
<!-- 登录模态框 -->
<div class="modal" id="loginModal">
<div class="modal-content">
<div class="modal-header">
<h3>用户登录</h3>
<button class="close-btn" id="loginCloseBtn">&times;</button>
</div>
<div class="modal-body">
<form id="loginForm">
<div class="form-group">
<label for="loginUsername">用户名</label>
<input type="text" id="loginUsername" name="username" required>
</div>
<div class="form-group">
<label for="loginPassword">密码</label>
<input type="password" id="loginPassword" name="password" required>
</div>
<div class="modal-footer">
<button type="button" class="btn secondary" id="showRegisterBtn">注册新用户</button>
<button type="submit" class="btn primary">登录</button>
</div>
</form>
</div>
</div>
</div>
<!-- 注册模态框 -->
<div class="modal" id="registerModal">
<div class="modal-content">
<div class="modal-header">
<h3>用户注册</h3>
<button class="close-btn" id="registerCloseBtn">&times;</button>
</div>
<div class="modal-body">
<form id="registerForm">
<div class="form-group">
<label for="registerUsername">用户名</label>
<input type="text" id="registerUsername" name="username" required>
</div>
<div class="form-group">
<label for="registerPassword">密码</label>
<input type="password" id="registerPassword" name="password" required>
</div>
<div class="form-group">
<label for="registerConfirmPassword">确认密码</label>
<input type="password" id="registerConfirmPassword" name="confirmPassword" required>
</div>
<div class="modal-footer">
<button type="button" class="btn secondary" id="showLoginBtn">已有账号?登录</button>
<button type="submit" class="btn primary">注册</button>
</div>
</form>
</div>
</div>
</div>
<div class="chat-container">
<!-- 侧边栏 -->
<aside class="sidebar">
<div class="sidebar-header">
<h1>💬 RAG 聊天</h1>
<button class="new-chat-btn" id="newChatBtn">+</button>
</div>
<div class="conversations-list" id="conversationsList">
<!-- 对话列表将通过 JavaScript 动态生成 -->
</div>
<div class="sidebar-footer">
<!-- 未登录状态 -->
<div class="user-info not-logged-in" id="notLoggedInInfo" style="display: flex; align-items: center; gap: 10px;">
<div class="user-avatar">
👤
</div>
<button class="login-btn" id="quickLoginBtn">登录</button>
</div>
<!-- 已登录状态 -->
<div class="user-info logged-in" id="loggedInInfo" style="display: none;">
<div class="user-avatar">
👤
</div>
<div class="user-details">
<span class="user-name" id="currentUsername">测试用户</span>
<span class="user-role" id="currentUserRole">用户</span>
</div>
</div>
<button class="logout-btn" id="logoutBtn" style="display: none;">🚪</button>
</div>
</aside>
<!-- 主聊天区域 -->
<main class="chat-main">
<!-- 欢迎界面 -->
<div class="welcome-screen" id="welcomeScreen">
<div class="welcome-content">
🤖
<h2>欢迎使用 RAG 聊天助手</h2>
<p>我是一个基于检索增强生成的智能助手,可以帮助你回答各种问题</p>
<button class="start-chat-btn" id="startChatBtn">开始聊天</button>
</div>
</div>
<!-- 聊天界面 -->
<div class="chat-screen" id="chatScreen" style="display: none;">
<div class="chat-header">
<div class="chat-title" id="chatTitle">新对话</div>
<div class="chat-actions">
<!-- 待开发功能按钮已移除 -->
</div>
</div>
<div class="messages-container" id="messagesContainer">
<!-- 消息将通过 JavaScript 动态生成 -->
</div>
<div class="input-area">
<div class="input-container">
<input type="text" id="messageInput" placeholder="输入消息..." autocomplete="off">
<button class="input-btn" id="sendBtn"></button>
</div>
</div>
</div>
</main>
</div>
<!-- 模态框:删除对话确认 -->
<div class="modal" id="deleteChatModal">
<div class="modal-content">
<div class="modal-header">
<h3>删除对话</h3>
<button class="close-btn">&times;</button>
</div>
<div class="modal-body">
<p>确定要删除这个对话吗?此操作不可恢复。</p>
</div>
<div class="modal-footer">
<button class="cancel-btn">取消</button>
<button class="confirm-btn danger" id="confirmDeleteChat">删除</button>
</div>
</div>
</div>
</body>
</html>