refactor: establish standalone application boundary
This commit is contained in:
+1536
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,55 @@
|
||||
<section id="themeLibraryView" class="workspace-view page redesigned-theme-view">
|
||||
<header class="theme-page-head-v2 lad-head">
|
||||
<div class="theme-title-v2">
|
||||
<div><h2>题材库</h2><span>题材行情与成分股</span></div>
|
||||
<span id="themeDateLabel" class="theme-date-v2">--</span>
|
||||
</div>
|
||||
<div class="theme-head-actions-v2">
|
||||
<label class="theme-search-v2">
|
||||
<i data-lucide="search" aria-hidden="true"></i>
|
||||
<span class="visually-hidden">搜索题材</span>
|
||||
<input id="themeSearch" type="search" placeholder="搜索题材名称或代码" autocomplete="off">
|
||||
</label>
|
||||
<button id="themeRefreshButton" class="button theme-refresh-v2" type="button"><i data-lucide="refresh-cw"></i><span>刷新题材</span></button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div id="themeSummary" class="theme-summary-v2" aria-live="polite"></div>
|
||||
|
||||
<div class="theme-library-workspace-v2 theme-grid">
|
||||
<aside class="theme-directory-card-v2 card" aria-label="题材列表">
|
||||
<header class="theme-card-head-v2 card-h">
|
||||
<div><h3>题材排行</h3><span>按当日热度与行情排列</span></div>
|
||||
<strong id="themeResultCount">0 个</strong>
|
||||
</header>
|
||||
<div class="theme-directory-labels-v2" aria-hidden="true"><span>题材</span><span>当日涨跌</span></div>
|
||||
<div id="themeDirectory" class="theme-directory-v2"></div>
|
||||
</aside>
|
||||
|
||||
<section class="theme-detail-column-v2" aria-live="polite">
|
||||
<div id="themeDetailEmpty" class="empty-state theme-detail-empty-v2">选择题材查看行情与成分股</div>
|
||||
<div id="themeDetailContent" class="theme-detail-stack-v2" hidden>
|
||||
<section class="theme-market-card-v2 card">
|
||||
<header class="theme-detail-heading-v2">
|
||||
<div class="theme-detail-identity-v2">
|
||||
<span class="theme-detail-kicker-v2">题材行情</span>
|
||||
<div class="theme-detail-name-line-v2"><h3 id="themeDetailName">--</h3><small id="themeDetailCode">--</small></div>
|
||||
</div>
|
||||
<div class="theme-change-v2"><span>当日涨幅</span><strong id="themeDetailChange">--</strong></div>
|
||||
</header>
|
||||
<div id="themeDetailMetrics" class="theme-detail-metrics-v2"></div>
|
||||
</section>
|
||||
|
||||
<section class="theme-members-card-v2 card">
|
||||
<header class="theme-members-heading-v2">
|
||||
<div><h3>成分股</h3><span>点击股票查看完整行情详情</span></div>
|
||||
<strong id="themeMemberCount">0 只</strong>
|
||||
</header>
|
||||
<div class="theme-members-frame-v2 tbl-wrap">
|
||||
<table class="data-table tbl theme-members-table-v2"><thead><tr><th class="num">序号</th><th>股票</th><th class="number num sortable">涨跌幅(%)<span class="arr">↕</span></th><th class="number num sortable">收盘价(元)<span class="arr">↕</span></th><th class="number num sortable">成交额(亿)<span class="arr">↕</span></th></tr></thead><tbody id="themeMemberTableBody"></tbody></table>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,8 +1,8 @@
|
||||
window.XiaobaiPageModules.register("themes", ["themeLibraryView"], {
|
||||
bind: bindThemeLibraryEvents,
|
||||
enter: ["loadThemes"],
|
||||
});
|
||||
|
||||
/* PRESERVATION-SOURCE-BEGIN app.js:2482-2583 */
|
||||
async function loadThemeLibrary(force = false) {
|
||||
if (state.themeLoading) return;
|
||||
state.themeLoading = true;
|
||||
@@ -105,4 +105,15 @@ function renderThemeDetail() {
|
||||
renderThemeDirectory();
|
||||
}
|
||||
|
||||
/* PRESERVATION-SOURCE-END app.js:2482-2583 */
|
||||
|
||||
function bindThemeLibraryEvents() {
|
||||
document.querySelector("#themeRefreshButton").addEventListener("click", () => loadThemeLibrary(true));
|
||||
document.querySelector("#themeSearch").addEventListener("input", (event) => {
|
||||
state.themeQuery = event.target.value.trim().toLocaleLowerCase("zh-CN");
|
||||
renderThemeDirectory();
|
||||
});
|
||||
document.querySelector("#themeDirectory").addEventListener("click", (event) => {
|
||||
const button = event.target.closest("[data-theme-code]");
|
||||
if (button) selectTheme(button.dataset.themeCode);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user