- BASE_PATH="" for deployment at www.ityb.me root (no /careerbot prefix) - Root redirect route only registered when BASE is non-empty - Add secondary /careerbot/uploads mount for backward compat with trunk-uploaded photo URLs (shared DB scenario) - Hide chat FAB and chat panel on index.html (display:none) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
82 lines
3.2 KiB
HTML
82 lines
3.2 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>CareerBot</title>
|
|
<link rel="stylesheet" href="{{ base }}/static/css/style.css">
|
|
</head>
|
|
<body>
|
|
|
|
<div class="container">
|
|
<!-- Profile Section -->
|
|
<div class="profile-card">
|
|
<div class="profile-photo" id="profile-photo"></div>
|
|
<div class="profile-info">
|
|
<h1 id="profile-name">Loading...</h1>
|
|
<div class="info-grid" id="profile-info-grid"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Summary -->
|
|
<div class="summary-card" id="summary-text"></div>
|
|
|
|
<!-- Skills -->
|
|
<h2 class="section-title">核心技能与亮点</h2>
|
|
<div class="skills-grid" id="skills-container"></div>
|
|
|
|
<!-- Education -->
|
|
<h2 class="section-title">教育背景</h2>
|
|
<div class="accordion" id="education-container"></div>
|
|
|
|
<!-- Work Experience -->
|
|
<h2 class="section-title">职业履历</h2>
|
|
<div class="accordion" id="experience-container"></div>
|
|
</div>
|
|
|
|
<!-- Chat Widget (FAB hidden in branch1: display-only variant for main domain www.ityb.me) -->
|
|
<button class="chat-fab" id="chat-fab" title="智能职业助手" style="display:none;">
|
|
<span class="fab-inner">
|
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
|
|
</svg>
|
|
<span class="fab-label">AI 对话</span>
|
|
</span>
|
|
</button>
|
|
|
|
<div class="chat-panel" id="chat-panel" style="display:none;">
|
|
<div class="chat-header">
|
|
<span>智能职业助手</span>
|
|
<button id="chat-close">×</button>
|
|
</div>
|
|
<div class="chat-messages" id="chat-messages">
|
|
<div class="message-bubble message-assistant" id="greeting-msg"></div>
|
|
</div>
|
|
<div class="typing-indicator" id="typing-indicator">正在思考中...</div>
|
|
<div class="file-preview" id="file-preview">
|
|
<span id="file-name"></span>
|
|
<button class="remove-file" id="remove-file">×</button>
|
|
</div>
|
|
<div class="chat-input-area">
|
|
<button class="btn-upload" id="chat-upload" title="上传JD文件">
|
|
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"></path>
|
|
</svg>
|
|
</button>
|
|
<input type="file" id="chat-file" hidden accept=".txt,.pdf,.docx,.doc,.png,.jpg,.jpeg,.gif,.bmp,.webp">
|
|
<input type="text" id="chat-input" placeholder="请输入您的问题...">
|
|
<button class="btn-send" id="chat-send" title="发送">
|
|
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<line x1="22" y1="2" x2="11" y2="13"></line>
|
|
<polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
|
|
</svg>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<script>window.BASE_PATH = "{{ base }}";</script>
|
|
<script src="{{ base }}/static/js/main.js"></script>
|
|
<script src="{{ base }}/static/js/chat.js"></script>
|
|
</body>
|
|
</html>
|