迁移银行弹窗基础按钮事件绑定
This commit is contained in:
@@ -19,6 +19,7 @@ export {
|
|||||||
openAdminBaccaratLossCoverModal,
|
openAdminBaccaratLossCoverModal,
|
||||||
submitBaccaratLossCoverEvent,
|
submitBaccaratLossCoverEvent,
|
||||||
} from "./chat-room/baccarat-loss-cover-admin.js";
|
} from "./chat-room/baccarat-loss-cover-admin.js";
|
||||||
|
export { bindBankControls } from "./chat-room/bank-controls.js";
|
||||||
export { bindFishingControls } from "./chat-room/fishing.js";
|
export { bindFishingControls } from "./chat-room/fishing.js";
|
||||||
export { bindProfileControls } from "./chat-room/profile-controls.js";
|
export { bindProfileControls } from "./chat-room/profile-controls.js";
|
||||||
export { bindShopControls } from "./chat-room/shop-controls.js";
|
export { bindShopControls } from "./chat-room/shop-controls.js";
|
||||||
@@ -66,6 +67,7 @@ import {
|
|||||||
openAdminBaccaratLossCoverModal,
|
openAdminBaccaratLossCoverModal,
|
||||||
submitBaccaratLossCoverEvent,
|
submitBaccaratLossCoverEvent,
|
||||||
} from "./chat-room/baccarat-loss-cover-admin.js";
|
} from "./chat-room/baccarat-loss-cover-admin.js";
|
||||||
|
import { bindBankControls } from "./chat-room/bank-controls.js";
|
||||||
import { bindFishingControls } from "./chat-room/fishing.js";
|
import { bindFishingControls } from "./chat-room/fishing.js";
|
||||||
import { bindProfileControls } from "./chat-room/profile-controls.js";
|
import { bindProfileControls } from "./chat-room/profile-controls.js";
|
||||||
import { bindShopControls } from "./chat-room/shop-controls.js";
|
import { bindShopControls } from "./chat-room/shop-controls.js";
|
||||||
@@ -119,6 +121,7 @@ if (typeof window !== "undefined") {
|
|||||||
loadAdminCurrentLossCoverEvent,
|
loadAdminCurrentLossCoverEvent,
|
||||||
openAdminBaccaratLossCoverModal,
|
openAdminBaccaratLossCoverModal,
|
||||||
submitBaccaratLossCoverEvent,
|
submitBaccaratLossCoverEvent,
|
||||||
|
bindBankControls,
|
||||||
bindFishingControls,
|
bindFishingControls,
|
||||||
bindProfileControls,
|
bindProfileControls,
|
||||||
bindShopControls,
|
bindShopControls,
|
||||||
@@ -170,6 +173,7 @@ if (typeof window !== "undefined") {
|
|||||||
bindToolbarControls();
|
bindToolbarControls();
|
||||||
bindAdminMenuControls();
|
bindAdminMenuControls();
|
||||||
bindBaccaratLossCoverAdminControls();
|
bindBaccaratLossCoverAdminControls();
|
||||||
|
bindBankControls();
|
||||||
bindFishingControls();
|
bindFishingControls();
|
||||||
bindProfileControls();
|
bindProfileControls();
|
||||||
bindShopControls();
|
bindShopControls();
|
||||||
|
|||||||
@@ -0,0 +1,84 @@
|
|||||||
|
// 金币银行基础按钮事件绑定,替代 toolbar 银行区域内联 onclick。
|
||||||
|
|
||||||
|
let bankControlEventsBound = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调用银行存量全局函数。
|
||||||
|
*
|
||||||
|
* @param {string} functionName 全局函数名
|
||||||
|
* @param {...unknown} args 参数
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
function callBankGlobal(functionName, ...args) {
|
||||||
|
if (typeof window[functionName] === "function") {
|
||||||
|
window[functionName](...args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从分页文本中解析当前页码。
|
||||||
|
*
|
||||||
|
* @returns {number}
|
||||||
|
*/
|
||||||
|
function resolveCurrentRankPage() {
|
||||||
|
const pageInfo = document.getElementById("bank-rank-page-info")?.textContent || "1 / 1";
|
||||||
|
const currentPage = Number.parseInt(pageInfo.split("/")[0]?.trim() || "1", 10);
|
||||||
|
|
||||||
|
return Number.isInteger(currentPage) && currentPage > 0 ? currentPage : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定银行 tab、存取款、排行榜排序与分页按钮事件。
|
||||||
|
*
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
export function bindBankControls() {
|
||||||
|
if (bankControlEventsBound || typeof document === "undefined") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bankControlEventsBound = true;
|
||||||
|
document.addEventListener("click", (event) => {
|
||||||
|
if (!(event.target instanceof Element)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const tabButton = event.target.closest("[data-bank-tab]");
|
||||||
|
if (tabButton) {
|
||||||
|
event.preventDefault();
|
||||||
|
callBankGlobal("switchBankTab", tabButton.getAttribute("data-bank-tab") || "");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.target.closest("[data-bank-modal-close]")) {
|
||||||
|
event.preventDefault();
|
||||||
|
callBankGlobal("closeBankModal");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const actionButton = event.target.closest("[data-bank-action]");
|
||||||
|
if (actionButton) {
|
||||||
|
event.preventDefault();
|
||||||
|
// 存取款共用原 bankAction,由 type 决定读取哪个输入框和提交哪个接口。
|
||||||
|
callBankGlobal("bankAction", actionButton.getAttribute("data-bank-action") || "");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.target.closest("[data-bank-rank-sort]")) {
|
||||||
|
event.preventDefault();
|
||||||
|
callBankGlobal("toggleBankRankSort");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const pageButton = event.target.closest("[data-bank-rank-page-delta]");
|
||||||
|
if (!pageButton) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
// 分页状态仍由存量脚本维护,这里从显示文本推导目标页,避免依赖其闭包变量。
|
||||||
|
const delta = Number.parseInt(pageButton.getAttribute("data-bank-rank-page-delta") || "0", 10);
|
||||||
|
callBankGlobal("fetchBankRanking", resolveCurrentRankPage() + delta);
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -2447,10 +2447,10 @@ async function generateWechatBindCode() {
|
|||||||
<div style="font-size:15px; font-weight:bold; margin-right:20px;">🏦 金币银行</div>
|
<div style="font-size:15px; font-weight:bold; margin-right:20px;">🏦 金币银行</div>
|
||||||
{{-- Tabs --}}
|
{{-- Tabs --}}
|
||||||
<div style="display:flex; gap:10px; flex:1;">
|
<div style="display:flex; gap:10px; flex:1;">
|
||||||
<button id="bank-tabbtn-account" class="bank-tab-btn active" onclick="switchBankTab('account')">我的账户</button>
|
<button id="bank-tabbtn-account" class="bank-tab-btn active" data-bank-tab="account">我的账户</button>
|
||||||
<button id="bank-tabbtn-ranking" class="bank-tab-btn" onclick="switchBankTab('ranking')">存款排行</button>
|
<button id="bank-tabbtn-ranking" class="bank-tab-btn" data-bank-tab="ranking">存款排行</button>
|
||||||
</div>
|
</div>
|
||||||
<span style="cursor:pointer; font-size:20px; opacity:.8; transition:opacity .15s;" onmouseover="this.style.opacity=1" onmouseout="this.style.opacity=.8" onclick="closeBankModal()">×</span>
|
<span style="cursor:pointer; font-size:20px; opacity:.8; transition:opacity .15s;" onmouseover="this.style.opacity=1" onmouseout="this.style.opacity=.8" data-bank-modal-close>×</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{-- 我的账户 面板 --}}
|
{{-- 我的账户 面板 --}}
|
||||||
@@ -2472,12 +2472,12 @@ async function generateWechatBindCode() {
|
|||||||
<div class="bank-op-row">
|
<div class="bank-op-row">
|
||||||
<span class="bank-op-label" style="color:#3b82f6;">存 入</span>
|
<span class="bank-op-label" style="color:#3b82f6;">存 入</span>
|
||||||
<input type="number" id="bank-deposit-input" class="bank-op-input" min="1" placeholder="输入你想存入银行的金币数量...">
|
<input type="number" id="bank-deposit-input" class="bank-op-input" min="1" placeholder="输入你想存入银行的金币数量...">
|
||||||
<button id="bank-deposit-btn" class="bank-op-btn" style="background:linear-gradient(135deg,#3b82f6,#60a5fa);" onclick="bankAction('deposit')">确认存入</button>
|
<button id="bank-deposit-btn" class="bank-op-btn" style="background:linear-gradient(135deg,#3b82f6,#60a5fa);" data-bank-action="deposit">确认存入</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="bank-op-row" style="margin-bottom:0;">
|
<div class="bank-op-row" style="margin-bottom:0;">
|
||||||
<span class="bank-op-label" style="color:#0891b2;">取 出</span>
|
<span class="bank-op-label" style="color:#0891b2;">取 出</span>
|
||||||
<input type="number" id="bank-withdraw-input" class="bank-op-input" min="1" placeholder="输入你想从银行取回的金币数量...">
|
<input type="number" id="bank-withdraw-input" class="bank-op-input" min="1" placeholder="输入你想从银行取回的金币数量...">
|
||||||
<button id="bank-withdraw-btn" class="bank-op-btn" style="background:linear-gradient(135deg,#0891b2,#22d3ee);" onclick="bankAction('withdraw')">确认取出</button>
|
<button id="bank-withdraw-btn" class="bank-op-btn" style="background:linear-gradient(135deg,#0891b2,#22d3ee);" data-bank-action="withdraw">确认取出</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="bank-op-msg" style="display:none; text-align:center; font-size:12px; font-weight:bold; padding:8px 10px; border-radius:6px; margin-top:12px;"></div>
|
<div id="bank-op-msg" style="display:none; text-align:center; font-size:12px; font-weight:bold; padding:8px 10px; border-radius:6px; margin-top:12px;"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2495,7 +2495,7 @@ async function generateWechatBindCode() {
|
|||||||
<div id="bank-view-ranking" class="bank-view-pane" style="display:none;">
|
<div id="bank-view-ranking" class="bank-view-pane" style="display:none;">
|
||||||
<div style="padding:10px 16px; border-bottom:1px solid #d0e4f5; display:flex; justify-content:space-between; align-items:center; background:#fff;">
|
<div style="padding:10px 16px; border-bottom:1px solid #d0e4f5; display:flex; justify-content:space-between; align-items:center; background:#fff;">
|
||||||
<div style="font-size:13px; color:#336699; font-weight:bold;">🏆 全站存款排行榜</div>
|
<div style="font-size:13px; color:#336699; font-weight:bold;">🏆 全站存款排行榜</div>
|
||||||
<button onclick="toggleBankRankSort()" id="bank-rank-sort-btn" style="background:#f0f6ff; border:1px solid #b0d0ee; color:#336699; padding:4px 12px; border-radius:15px; font-size:12px; cursor:pointer; font-weight:bold; transition:background .2s;">
|
<button data-bank-rank-sort id="bank-rank-sort-btn" style="background:#f0f6ff; border:1px solid #b0d0ee; color:#336699; padding:4px 12px; border-radius:15px; font-size:12px; cursor:pointer; font-weight:bold; transition:background .2s;">
|
||||||
降序 ↓
|
降序 ↓
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -2506,9 +2506,9 @@ async function generateWechatBindCode() {
|
|||||||
|
|
||||||
{{-- 分页控件 --}}
|
{{-- 分页控件 --}}
|
||||||
<div style="padding:10px 16px; border-top:1px solid #d0e4f5; background:#fff; display:flex; justify-content:space-between; align-items:center;">
|
<div style="padding:10px 16px; border-top:1px solid #d0e4f5; background:#fff; display:flex; justify-content:space-between; align-items:center;">
|
||||||
<button class="bank-tab-btn" id="bank-rank-prev" onclick="fetchBankRanking(bankRankPage - 1)" style="color:#336699; border:1px solid #b0d0ee; background:#fff; font-weight:normal;">上一页</button>
|
<button class="bank-tab-btn" id="bank-rank-prev" data-bank-rank-page-delta="-1" style="color:#336699; border:1px solid #b0d0ee; background:#fff; font-weight:normal;">上一页</button>
|
||||||
<div id="bank-rank-page-info" style="font-size:12px; color:#666; font-weight:bold;">1 / 1</div>
|
<div id="bank-rank-page-info" style="font-size:12px; color:#666; font-weight:bold;">1 / 1</div>
|
||||||
<button class="bank-tab-btn" id="bank-rank-next" onclick="fetchBankRanking(bankRankPage + 1)" style="color:#336699; border:1px solid #b0d0ee; background:#fff; font-weight:normal;">下一页</button>
|
<button class="bank-tab-btn" id="bank-rank-next" data-bank-rank-page-delta="1" style="color:#336699; border:1px solid #b0d0ee; background:#fff; font-weight:normal;">下一页</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user