feat: 星之界打手端UI与提现/充值/排行榜等页面同步更新
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -29,7 +29,7 @@ export function userHasHuiyuan(huiyuanList, huiyuanId) {
|
||||
const list = huiyuanList || [];
|
||||
const req = String(huiyuanId);
|
||||
return list.some((h) => {
|
||||
if (String(h.huiyuanid) === req) return true;
|
||||
if (String(h.huiyuanid) === req || String(h.huiyuan_id) === req) return true;
|
||||
const covers = h.included_huiyuan_ids || h.covers || [];
|
||||
return Array.isArray(covers) && covers.some((id) => String(id) === req);
|
||||
});
|
||||
|
||||
@@ -22,22 +22,76 @@ export const ICON_KEYS = {
|
||||
MERCHANT_REFRESH: 'merchant_refresh',
|
||||
FIGHTER_RECHARGE_MEMBER: 'fighter_recharge_member',
|
||||
FIGHTER_RECHARGE_DEPOSIT: 'fighter_recharge_deposit',
|
||||
FIGHTER_RECHARGE_VIP_BG: 'fighter_recharge_vip_bg',
|
||||
FIGHTER_DEPOSIT_BG: 'fighter_deposit_bg',
|
||||
FIGHTER_DEPOSIT_HERO: 'fighter_deposit_hero',
|
||||
FIGHTER_DEPOSIT_BENEFIT_1: 'fighter_deposit_benefit_1',
|
||||
FIGHTER_DEPOSIT_BENEFIT_2: 'fighter_deposit_benefit_2',
|
||||
FIGHTER_DEPOSIT_BENEFIT_3: 'fighter_deposit_benefit_3',
|
||||
FIGHTER_DEPOSIT_BENEFIT_4: 'fighter_deposit_benefit_4',
|
||||
FIGHTER_RECHARGE_BENEFIT_1: 'fighter_recharge_benefit_1',
|
||||
FIGHTER_RECHARGE_BENEFIT_2: 'fighter_recharge_benefit_2',
|
||||
FIGHTER_RECHARGE_BENEFIT_3: 'fighter_recharge_benefit_3',
|
||||
FIGHTER_RECHARGE_ADVANTAGE_1: 'fighter_recharge_advantage_1',
|
||||
FIGHTER_RECHARGE_ADVANTAGE_2: 'fighter_recharge_advantage_2',
|
||||
FIGHTER_RECHARGE_ADVANTAGE_3: 'fighter_recharge_advantage_3',
|
||||
FIGHTER_RECHARGE_ADVANTAGE_4: 'fighter_recharge_advantage_4',
|
||||
FIGHTER_ORDER_PENDING: 'fighter_order_pending',
|
||||
FIGHTER_ORDER_SETTLING: 'fighter_order_settling',
|
||||
FIGHTER_ORDER_DONE: 'fighter_order_done',
|
||||
FIGHTER_ORDER_CLOSED: 'fighter_order_closed',
|
||||
FIGHTER_TRADE_COMMISSION: 'fighter_trade_commission',
|
||||
FIGHTER_TRADE_WITHDRAW: 'fighter_trade_withdraw',
|
||||
FIGHTER_TRADE_SETTLE: 'fighter_trade_settle',
|
||||
FIGHTER_TRADE_DEDUCT: 'fighter_trade_deduct',
|
||||
FIGHTER_TRADE_RECHARGE: 'fighter_trade_recharge',
|
||||
FIGHTER_INVITE_SUBORDINATE: 'fighter_invite_subordinate',
|
||||
FIGHTER_INVITE_POSTER: 'fighter_invite_poster',
|
||||
FIGHTER_INVITE_CODE: 'fighter_invite_code',
|
||||
FIGHTER_KUAISHOU_CASH: 'fighter_kuaishou_cash',
|
||||
FIGHTER_MINE_COPY: 'fighter_mine_copy',
|
||||
FIGHTER_MINE_EDIT: 'fighter_mine_edit',
|
||||
FIGHTER_MINE_QIEPIAN: 'fighter_mine_qiepian',
|
||||
FIGHTER_MINE_PENALTY_TIP: 'fighter_mine_penalty_tip',
|
||||
FIGHTER_MINE_KEFU: 'fighter_mine_kefu',
|
||||
FIGHTER_MINE_SHANGJIA: 'fighter_mine_shangjia',
|
||||
FIGHTER_MINE_PUNISH: 'fighter_mine_punish',
|
||||
FIGHTER_MINE_MEDAL: 'fighter_mine_medal',
|
||||
FIGHTER_MINE_BOOK: 'fighter_mine_book',
|
||||
FIGHTER_MINE_RANK: 'fighter_mine_rank',
|
||||
FIGHTER_MINE_INVITE: 'fighter_mine_invite',
|
||||
FIGHTER_MINE_CONTACT: 'fighter_mine_contact',
|
||||
FIGHTER_MINE_RECORD: 'fighter_mine_record',
|
||||
FIGHTER_MINE_KAOHE_DAFEN: 'fighter_mine_kaohe_dafen',
|
||||
FIGHTER_MINE_KAOHE_JILU: 'fighter_mine_kaohe_jilu',
|
||||
FIGHTER_MINE_KAOHE_ZHONGXIN: 'fighter_mine_kaohe_zhongxin',
|
||||
FIGHTER_MINE_DASHOU_AUTH: 'fighter_mine_dashou_auth',
|
||||
FIGHTER_MINE_CLEAR: 'fighter_mine_clear',
|
||||
FIGHTER_MINE_SWITCH: 'fighter_mine_switch',
|
||||
MINE_PINDAO: 'mine_pindao',
|
||||
ICON_REFRESH: 'icon_refresh',
|
||||
};
|
||||
|
||||
/** 仅后台上传后才展示,不使用 CDN/本地兜底 */
|
||||
/** 仅后台上传后才展示(页面大背景),横幅/功能图标走 resolveMiniappIcon */
|
||||
export const CONFIG_ONLY_ICON_KEYS = new Set([
|
||||
ICON_KEYS.FIGHTER_RECHARGE_MEMBER,
|
||||
ICON_KEYS.FIGHTER_RECHARGE_DEPOSIT,
|
||||
ICON_KEYS.FIGHTER_RECHARGE_VIP_BG,
|
||||
ICON_KEYS.FIGHTER_DEPOSIT_BG,
|
||||
ICON_KEYS.FIGHTER_DEPOSIT_HERO,
|
||||
]);
|
||||
|
||||
export const ICON_FOLDER = 'beijing/tubiao/chengxutubiao';
|
||||
|
||||
/** 逍遥梦原版金牌横幅(硬编码时代 82.png) */
|
||||
export const MERCHANT_GOLD_BANNER_FALLBACK = 'https://bintao.xmxym88.com/xcx/bintao/82.png';
|
||||
|
||||
/** 频道入口图标默认相对路径(拼接 ossImageUrl;后台上传 mine_pindao 后覆盖) */
|
||||
export const PINDAO_ICON_FALLBACK = 'beijing/tubiao/grzx_pindao.jpg';
|
||||
|
||||
/** 打手中心图标默认相对路径(后台未上传时由后端 default 下发,此处仅离线兜底) */
|
||||
export function defaultIconRel(key) {
|
||||
return `${ICON_FOLDER}/${key}.png`;
|
||||
}
|
||||
|
||||
function ossBase(app) {
|
||||
return (app && app.globalData && app.globalData.ossImageUrl) || '';
|
||||
}
|
||||
@@ -69,7 +123,12 @@ export function resolveMiniappIcon(app, key, fallback = '') {
|
||||
}
|
||||
const icons = (app && app.globalData && app.globalData.miniappIcons) || {};
|
||||
const path = icons[key];
|
||||
if (!path) return fallback;
|
||||
if (!path) {
|
||||
if (!fallback) return '';
|
||||
if (fallback.startsWith('http')) return fallback;
|
||||
const base = ossBase(app);
|
||||
return base ? base + fallback : fallback;
|
||||
}
|
||||
if (path.startsWith('http')) return path;
|
||||
return ossBase(app) + path;
|
||||
}
|
||||
@@ -97,7 +156,6 @@ export function resolvePindaoImages(app) {
|
||||
}).filter(Boolean);
|
||||
}
|
||||
|
||||
/** 预加载频道图片,减少弹窗打开后等待 */
|
||||
export function preloadPindaoImages(urls) {
|
||||
(urls || []).forEach((src) => {
|
||||
if (!src) return;
|
||||
@@ -105,7 +163,6 @@ export function preloadPindaoImages(urls) {
|
||||
});
|
||||
}
|
||||
|
||||
/** 打开频道前拉取最新 qdpzhq 配置(避免本地缓存无 pindao 数据) */
|
||||
export async function refreshPindaoConfig(app) {
|
||||
app = app || getApp();
|
||||
try {
|
||||
@@ -131,7 +188,6 @@ export async function refreshPindaoConfig(app) {
|
||||
return { cfg, images };
|
||||
}
|
||||
|
||||
/** 后台静默预热频道(不打断 UI) */
|
||||
export function warmupPindaoConfig(app) {
|
||||
const cached = resolvePindaoImages(app || getApp());
|
||||
if (cached.length) preloadPindaoImages(cached);
|
||||
@@ -154,7 +210,6 @@ export function resolvePosterBg(app, role) {
|
||||
return path.startsWith('http') ? path : base + path;
|
||||
}
|
||||
|
||||
/** 进入海报页拉取当前俱乐部背景配置 */
|
||||
export async function refreshPosterConfig(app) {
|
||||
app = app || getApp();
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user