增加资金费率

This commit is contained in:
dekun
2026-05-22 14:00:19 +08:00
parent d7f7259ee0
commit 71ed38b32d
13 changed files with 603 additions and 14 deletions
+16 -4
View File
@@ -26,6 +26,7 @@ const SORT_KEYS = {
if (r.is_high_change) score += 1;
return score;
},
funding_rate: (r) => Number(r.funding_rate_pct) || 0,
};
function formatPeriod(start, end) {
@@ -88,7 +89,7 @@ function renderTable(tableId, tbody) {
const items = sortItems(state.items, state.sortKey, state.sortDir);
if (!items.length) {
tbody.innerHTML = '<tr><td colspan="6" class="loading">暂无数据</td></tr>';
tbody.innerHTML = '<tr><td colspan="7" class="loading">暂无数据</td></tr>';
updateSortHeaders(tableId);
return;
}
@@ -113,6 +114,14 @@ function renderTable(tableId, tbody) {
</td>
<td data-value="${row.quote_volume ?? 0}">${row.quote_volume_fmt || row.quote_volume}</td>
<td class="${pctClass(pct)}" data-value="${pct}">${row.price_change_pct_fmt || pct.toFixed(2) + "%"}</td>
<td class="funding-cell" data-value="${row.funding_rate_pct ?? 0}">
<div class="funding-cell-inner">
<span class="funding-rate-label ${pctClass(row.funding_rate_pct ?? 0)}">${row.funding_rate_fmt || "—"}</span>
<div class="mini-funding-chart" data-symbol="${row.symbol}">
<canvas></canvas>
</div>
</div>
</td>
<td data-value="${tagText(row)}">${renderTags(row)}</td>
</tr>`;
})
@@ -120,6 +129,7 @@ function renderTable(tableId, tbody) {
updateSortHeaders(tableId);
enqueueCharts(tbody);
if (typeof enqueueFundingCharts === "function") enqueueFundingCharts(tbody);
}
function setTableData(tableId, data) {
@@ -165,6 +175,7 @@ function exportCsv(tableId) {
"成交额显示",
"成交额USDT",
"涨跌幅%",
"资金费率%",
"千万+",
"涨跌5%+",
"标记",
@@ -175,6 +186,7 @@ function exportCsv(tableId) {
r.quote_volume_fmt || "",
r.quote_volume ?? "",
r.price_change_pct ?? "",
r.funding_rate_pct ?? "",
r.is_high_volume ? "是" : "否",
r.is_high_change ? "是" : "否",
tagText(r),
@@ -213,7 +225,7 @@ document.querySelectorAll("[data-reset]").forEach((btn) => {
async function loadYesterday() {
const body = document.getElementById("yesterday-body");
body.innerHTML = '<tr><td colspan="6" class="loading">加载中…</td></tr>';
body.innerHTML = '<tr><td colspan="7" class="loading">加载中…</td></tr>';
try {
const res = await fetch("/api/yesterday/top30");
const data = await res.json();
@@ -225,7 +237,7 @@ async function loadYesterday() {
"更新: " + (data.updated_at || "").replace("T", " ").slice(0, 19);
setTableData("yesterday", data);
} catch (e) {
body.innerHTML = `<tr><td colspan="6" class="error">加载失败: ${e.message}</td></tr>`;
body.innerHTML = `<tr><td colspan="7" class="error">加载失败: ${e.message}</td></tr>`;
}
}
@@ -243,7 +255,7 @@ async function loadToday() {
setTableData("today", data);
document.getElementById("status").textContent = "今日数据已刷新";
} catch (e) {
body.innerHTML = `<tr><td colspan="6" class="error">加载失败: ${e.message}</td></tr>`;
body.innerHTML = `<tr><td colspan="7" class="error">加载失败: ${e.message}</td></tr>`;
document.getElementById("status").textContent = e.message;
}
}