Remove the mentor immersive rules in shared/shell.css that hid the module nav, header actions, market tape, overview strip and status bar while mentorView was active, which made the page look like an independent site. Mentor now stays inside the canonical 小白复盘 shell and owns its own "问师 + 数据日期" title header inside #mentorView (B-92 content intact). Also fix the shell's latent 1024px overflow: .main min-width 1080 now only applies at >=1280, and the overview strip scrolls internally instead of clipping its right side when it is wider than the content column. Update the contract and e2e baselines to assert the shell stays visible and usable on mentor, page switching leaves no residue, and add a dedicated shell-integration e2e test. Co-authored-by: multica-agent <github@multica.ai>
117 lines
8.2 KiB
HTML
117 lines
8.2 KiB
HTML
<section id="mentorView" class="workspace-view page member-feature-view redesigned-mentor-view">
|
|
<div class="member-gate" hidden><div class="member-gate-icon"><i data-lucide="lock-keyhole"></i></div><div><strong>问师仅对会员开放</strong><span>开通会员后可使用思维模型进行对话。会员状态可从顶部账号标识进入。</span></div></div>
|
|
<div id="mentorNotice" class="inline-notice" hidden></div>
|
|
<header class="mentor-page-header" aria-label="问师">
|
|
<div class="mentor-page-title">
|
|
<h2>问师</h2>
|
|
<p id="mentorPageSubtitle">与不同交易思维模型持续对话 · 数据日期 --</p>
|
|
</div>
|
|
</header>
|
|
<div class="mentor-layout">
|
|
<aside class="mentor-sidebar" aria-label="思维模型目录">
|
|
<div class="mentor-directory-tools">
|
|
<label class="mentor-search-field">
|
|
<span class="visually-hidden">搜索思维模型</span>
|
|
<i data-lucide="search"></i>
|
|
<input id="mentorSearchInput" type="search" maxlength="50" placeholder="搜索联系人或标签" autocomplete="off">
|
|
</label>
|
|
<div class="mentor-filter-menu">
|
|
<button id="mentorFilterToggle" class="mentor-filter-toggle" type="button" aria-haspopup="menu" aria-expanded="false" aria-label="筛选思维模型" title="筛选思维模型"><i data-lucide="filter"></i></button>
|
|
<div id="mentorFilterOptions" class="mentor-filter-options" role="menu" hidden>
|
|
<button type="button" class="active" data-mentor-grade="all" role="menuitem">全部<span id="mentorCount">0 位</span></button>
|
|
<button type="button" data-mentor-grade="A" role="menuitem">A级</button>
|
|
<button type="button" data-mentor-grade="B" role="menuitem">B级</button>
|
|
<button type="button" data-mentor-grade="C" role="menuitem">C级</button>
|
|
</div>
|
|
</div>
|
|
<button id="mentorSortToggle" class="mentor-sort-toggle" type="button" aria-pressed="false" title="整理联系人顺序"><i data-lucide="list-ordered"></i><span>整理</span></button>
|
|
</div>
|
|
<div id="mentorList" class="mentor-list"></div>
|
|
<div id="mentorListEmpty" class="mentor-list-empty" hidden>没有符合条件的思维模型</div>
|
|
<p id="mentorSortHint" class="mentor-sort-hint" hidden>拖动联系人,或使用箭头调整顺序</p>
|
|
</aside>
|
|
|
|
<section class="mentor-chat-panel" aria-label="问师对话">
|
|
<header class="mentor-chat-header">
|
|
<div class="mentor-chat-identity">
|
|
<span id="activeMentorAvatar" class="mentor-avatar" aria-hidden="true">师</span>
|
|
<div>
|
|
<div class="mentor-active-title"><h3 id="activeMentorName">--</h3></div>
|
|
<p id="activeMentorStatus">思维模型已就绪</p>
|
|
</div>
|
|
</div>
|
|
<div class="mentor-chat-actions">
|
|
<button id="mentorPinButton" class="icon-button mentor-header-action" type="button" aria-label="置顶当前思维模型" title="置顶"><i data-lucide="pin"></i></button>
|
|
<button id="mentorNoteButton" class="icon-button mentor-header-action" type="button" aria-label="备注标签" title="备注标签"><i data-lucide="tag"></i></button>
|
|
<button id="mentorProfileButton" class="icon-button mentor-header-action" type="button" aria-label="游资档案" title="游资档案"><i data-lucide="id-card"></i></button>
|
|
<button id="clearMentorChatButton" class="icon-button mentor-clear-button" type="button" disabled aria-label="清空当前对话" title="清空对话"><i data-lucide="trash-2"></i></button>
|
|
</div>
|
|
</header>
|
|
<div id="mentorMessages" class="mentor-messages" aria-live="polite"></div>
|
|
<div id="mentorQuickPrompts" class="mentor-quick-prompts">
|
|
<span class="mentor-prompt-label">开始一个话题</span>
|
|
<button type="button" data-mentor-prompt="怎么看今天的市场环境?"><i data-lucide="activity"></i>市场环境</button>
|
|
<button type="button" data-mentor-prompt="当前的市场主线和情绪周期是什么?"><i data-lucide="route"></i>主线与周期</button>
|
|
<button type="button" data-mentor-prompt="如果今天是空仓状态,你会怎么制定操作预案?"><i data-lucide="notebook-tabs"></i>空仓预案</button>
|
|
<button type="button" data-mentor-prompt="现在最需要防范的风险是什么?"><i data-lucide="shield-alert"></i>风险检查</button>
|
|
</div>
|
|
<form id="mentorChatForm" class="mentor-chat-form">
|
|
<div class="mentor-composer-main">
|
|
<label class="visually-hidden" for="mentorQuestion">向当前思维模型提问</label>
|
|
<textarea id="mentorQuestion" maxlength="2000" placeholder="输入市场、板块、个股代码或交易问题"></textarea>
|
|
<span class="mentor-composer-hint">Enter 发送 · Shift + Enter 换行</span>
|
|
</div>
|
|
<div class="mentor-composer-actions">
|
|
<button id="stopMentorQuestion" class="button ghost mentor-stop-button" type="button" hidden><i data-lucide="square"></i><span>停止</span></button>
|
|
<button id="sendMentorQuestion" class="button primary mentor-send-button" type="submit"><i data-lucide="send-horizontal"></i><span>发送</span></button>
|
|
</div>
|
|
</form>
|
|
</section>
|
|
|
|
</div>
|
|
<footer class="mentor-workspace-footer">
|
|
<span class="mentor-evidence-legend">等级仅表示公开素材完整度</span>
|
|
<p class="mentor-disclaimer">基于公开资料提炼的思维模型模拟,不代表本人观点,不构成投资建议。</p>
|
|
</footer>
|
|
|
|
<dialog id="mentorNoteDialog" class="mentor-floating-dialog mentor-note-dialog" aria-labelledby="mentorNoteDialogTitle">
|
|
<div class="mentor-dialog-head">
|
|
<div><span class="dialog-eyebrow">问师</span><h3 id="mentorNoteDialogTitle">备注标签</h3></div>
|
|
<button type="button" class="icon-button mentor-dialog-close" data-mentor-dialog-close="mentorNoteDialog" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
|
</div>
|
|
<div class="mentor-dialog-body">
|
|
<label class="visually-hidden" for="mentorNoteInput">备注标签</label>
|
|
<textarea id="mentorNoteInput" maxlength="2000" placeholder="为该思维模型记录备注或标签"></textarea>
|
|
</div>
|
|
</dialog>
|
|
|
|
<dialog id="mentorProfileDialog" class="mentor-floating-dialog mentor-profile-dialog" aria-labelledby="mentorProfileDialogTitle">
|
|
<div class="mentor-dialog-head">
|
|
<div><span class="dialog-eyebrow">问师</span><h3 id="mentorProfileDialogTitle">游资档案</h3></div>
|
|
<button type="button" class="icon-button mentor-dialog-close" data-mentor-dialog-close="mentorProfileDialog" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
|
</div>
|
|
<div class="mentor-profile-dialog-body">
|
|
<div class="mentor-profile-hero">
|
|
<span id="mentorProfileDialogAvatar" class="mentor-profile-avatar" aria-hidden="true">师</span>
|
|
<h3 id="mentorProfileDialogName">--</h3>
|
|
<p id="mentorProfileDialogTagline">--</p>
|
|
<div id="mentorProfileDialogBadges" class="mentor-profile-badges"></div>
|
|
</div>
|
|
<section class="mentor-profile-section">
|
|
<h4>关注维度</h4>
|
|
<div id="mentorProfileDialogFocus" class="mentor-active-focus"></div>
|
|
</section>
|
|
<section class="mentor-profile-section">
|
|
<h4>资料依据</h4>
|
|
<strong id="mentorProfileDialogSource">--</strong>
|
|
<p id="mentorProfileDialogEvidence">--</p>
|
|
</section>
|
|
<section class="mentor-profile-section mentor-profile-boundary">
|
|
<h4>数据边界</h4>
|
|
<p><i data-lucide="calendar-days"></i><span id="mentorProfileDialogDataDate">--</span></p>
|
|
<p><i data-lucide="database"></i><span>仅使用网页已提供的市场数据</span></p>
|
|
</section>
|
|
</div>
|
|
</dialog>
|
|
</section>
|