补充前端交互边界注释
This commit is contained in:
@@ -94,6 +94,7 @@ export async function bankAction(type) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 提交期间禁用按钮,避免连续点击重复发起同一笔存取款请求。
|
||||||
btnEl.disabled = true;
|
btnEl.disabled = true;
|
||||||
try {
|
try {
|
||||||
const response = await fetch(`/bank/${type}`, {
|
const response = await fetch(`/bank/${type}`, {
|
||||||
@@ -112,6 +113,7 @@ export async function bankAction(type) {
|
|||||||
inputEl.value = "";
|
inputEl.value = "";
|
||||||
await bankLoadInfo();
|
await bankLoadInfo();
|
||||||
|
|
||||||
|
// 如果用户正停留在排行榜页,存取款成功后同步刷新当前页余额排名。
|
||||||
if (document.getElementById("bank-view-ranking")?.style.display !== "none") {
|
if (document.getElementById("bank-view-ranking")?.style.display !== "none") {
|
||||||
await fetchBankRanking(bankRankPage);
|
await fetchBankRanking(bankRankPage);
|
||||||
}
|
}
|
||||||
@@ -311,6 +313,7 @@ function syncRankingButtons(lastPage) {
|
|||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
function renderRankingRow(user, index) {
|
function renderRankingRow(user, index) {
|
||||||
|
// 排行榜接口每页 20 条,这里用当前页和页内索引还原全局名次。
|
||||||
const absoluteRank = (bankRankPage - 1) * 20 + index + 1;
|
const absoluteRank = (bankRankPage - 1) * 20 + index + 1;
|
||||||
let rankClass = "";
|
let rankClass = "";
|
||||||
if (bankRankSort === "desc" && bankRankPage === 1) {
|
if (bankRankSort === "desc" && bankRankPage === 1) {
|
||||||
|
|||||||
@@ -347,6 +347,7 @@ export function bindMobileDrawerControls() {
|
|||||||
scheduleRenderMobileUserList();
|
scheduleRenderMobileUserList();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 只有名单抽屉打开时才立即重渲染,关闭状态下等下次打开再读取最新 onlineUsers。
|
||||||
window.addEventListener("chatroom:users-updated", () => {
|
window.addEventListener("chatroom:users-updated", () => {
|
||||||
if (mobileDrawerOpen === "users") {
|
if (mobileDrawerOpen === "users") {
|
||||||
renderMobileUserList();
|
renderMobileUserList();
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ let blockMenuEventsBound = false;
|
|||||||
* @returns {{blocked_system_senders:string[],sound_muted:boolean}}
|
* @returns {{blocked_system_senders:string[],sound_muted:boolean}}
|
||||||
*/
|
*/
|
||||||
export function normalizeChatPreferences(raw, blockableSystemSenders = BLOCKABLE_SYSTEM_SENDERS) {
|
export function normalizeChatPreferences(raw, blockableSystemSenders = BLOCKABLE_SYSTEM_SENDERS) {
|
||||||
|
// 服务端或旧本地缓存可能包含已下架发送者,规整时只保留当前白名单。
|
||||||
const blocked = Array.isArray(raw?.blocked_system_senders)
|
const blocked = Array.isArray(raw?.blocked_system_senders)
|
||||||
? raw.blocked_system_senders.filter((sender) => blockableSystemSenders.includes(sender))
|
? raw.blocked_system_senders.filter((sender) => blockableSystemSenders.includes(sender))
|
||||||
: [];
|
: [];
|
||||||
@@ -317,6 +318,7 @@ export function bindBlockMenuControls() {
|
|||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
export function shouldMigrateLocalChatPreferences(serverPreferences, localBlockedSenders, localMuted) {
|
export function shouldMigrateLocalChatPreferences(serverPreferences, localBlockedSenders, localMuted) {
|
||||||
|
// 只有服务端尚无偏好时才迁移旧本地设置,避免覆盖已同步的账号配置。
|
||||||
const hasServerPreferences = (serverPreferences?.blocked_system_senders || []).length > 0
|
const hasServerPreferences = (serverPreferences?.blocked_system_senders || []).length > 0
|
||||||
|| Boolean(serverPreferences?.sound_muted);
|
|| Boolean(serverPreferences?.sound_muted);
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ export function renderRoomStatusRow(room, options = {}) {
|
|||||||
? '<span style="font-size:9px;color:#7090b0;margin-left:3px;">当前</span>'
|
? '<span style="font-size:9px;color:#7090b0;margin-left:3px;">当前</span>'
|
||||||
: '<span style="font-size:9px;color:#336699;opacity:.7;margin-left:3px;">当前</span>')
|
: '<span style="font-size:9px;color:#336699;opacity:.7;margin-left:3px;">当前</span>')
|
||||||
: "";
|
: "";
|
||||||
|
// 当前房间不生成跳转事件,避免重复进入同一房间触发无意义刷新。
|
||||||
const clickHandler = isCurrent ? "" : buildRoomClickHandler(room.id, options.roomUrlResolver);
|
const clickHandler = isCurrent ? "" : buildRoomClickHandler(room.id, options.roomUrlResolver);
|
||||||
const badge = room.online > 0
|
const badge = room.online > 0
|
||||||
? `<span style="background:#e8f5e9;color:#2e7d32;border-radius:8px;padding:0 ${variant === "mobile" ? "6px" : "5px"};font-size:10px;font-weight:bold;white-space:nowrap;flex-shrink:0;">${room.online}${variant === "mobile" ? "" : " "}人</span>`
|
? `<span style="background:#e8f5e9;color:#2e7d32;border-radius:8px;padding:0 ${variant === "mobile" ? "6px" : "5px"};font-size:10px;font-weight:bold;white-space:nowrap;flex-shrink:0;">${room.online}${variant === "mobile" ? "" : " "}人</span>`
|
||||||
|
|||||||
Reference in New Issue
Block a user