refactor: establish standalone application boundary
This commit is contained in:
+1172
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,19 @@
|
||||
<section id="ladderView" class="workspace-view page redesigned-ladder-view">
|
||||
<div class="section-toolbar lad-head redesigned-page-head ladder-page-head">
|
||||
<div class="section-title-group">
|
||||
<h2>市场天梯</h2>
|
||||
<span class="section-subtitle">按连板高度观察空间板与梯队完整度 · <b id="ladderDateRange">--</b></span>
|
||||
</div>
|
||||
<div class="ladder-head-actions">
|
||||
<div id="ladderSortSegment" class="ladder-sort-segment" role="group" aria-label="天梯排序">
|
||||
<button type="button" class="active" data-ladder-sort="time" aria-pressed="true">按封板时间</button>
|
||||
<button type="button" data-ladder-sort="open" aria-pressed="false">按开板次数</button>
|
||||
</div>
|
||||
<button id="ladderExportButton" class="button" type="button">导出 CSV</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="market-ladder-workspace lad-grid">
|
||||
<div id="ladderBoard" class="market-ladder-board"></div>
|
||||
<aside id="ladderInsights" class="market-ladder-insights" aria-label="天梯结构解读"></aside>
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,6 +1,5 @@
|
||||
window.XiaobaiPageModules.register("ladder", ["ladderView"]);
|
||||
window.XiaobaiPageModules.register("ladder", ["ladderView"], { bind: bindLadderEvents });
|
||||
|
||||
/* PRESERVATION-SOURCE-BEGIN app.js:2125-2216 */
|
||||
function renderLadderMini(ladders) {
|
||||
const container = document.querySelector("#ladderMini");
|
||||
const highest = ladders.length ? Math.max(...ladders.map((item) => number(item.level))) : 0;
|
||||
@@ -93,4 +92,18 @@ function renderLadderBoard(ladders) {
|
||||
refreshIcons();
|
||||
}
|
||||
|
||||
/* PRESERVATION-SOURCE-END app.js:2125-2216 */
|
||||
|
||||
function bindLadderEvents() {
|
||||
document.querySelectorAll("[data-ladder-sort]").forEach((button) => {
|
||||
button.addEventListener("click", () => {
|
||||
state.ladderSortMode = button.dataset.ladderSort === "open" ? "open" : "time";
|
||||
document.querySelectorAll("[data-ladder-sort]").forEach((item) => {
|
||||
const active = item === button;
|
||||
item.classList.toggle("active", active);
|
||||
item.setAttribute("aria-pressed", String(active));
|
||||
});
|
||||
renderLadderBoard(state.dashboard?.ladders || []);
|
||||
});
|
||||
});
|
||||
document.querySelector("#ladderExportButton").addEventListener("click", exportLadder);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user