feat: 转盘活动页与路由放行,轮播增加点单背景/横幅选项

修复侧栏可见但点转盘被踢到板块配置的问题;Carousel 增加 boss_center 与 accept_order_banner2。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-22 20:21:55 +08:00
parent 69fe2a51e0
commit 772d142a40
6 changed files with 313 additions and 10 deletions

View File

@@ -3,7 +3,7 @@ const CLUB_SCOPE_KEY = 'admin_club_scope';
const CLUB_CONTEXT_KEY = 'admin_club_context';
const MENU_ACCESS_KEY = 'kefu_menu_access';
const MENU_SESSION_KEY = 'kefu_menu_session_v';
const MENU_SESSION_VERSION = '24';
const MENU_SESSION_VERSION = '25';
const DEFAULT_CLUB_ID = 'xq';
let menuAccessInflight = null;
@@ -146,8 +146,9 @@ const KEFU_MENU_ROWS = [
{ page_id: 'gongdan', parent_id: '', path: '/gongdan', sort_order: 81, perm_codes: ['gdck666', 'gdcl666'] },
{ page_id: 'product.list', parent_id: 'product', path: '/product/list', sort_order: 91, perm_codes: ['2200a'] },
{ page_id: 'product.type-zone', parent_id: 'product', path: '/product/type-zone', sort_order: 92, perm_codes: ['7007a'] },
{ page_id: 'product.data', parent_id: 'product', path: '/product/data', sort_order: 93, perm_codes: ['2200a'] },
{ page_id: 'product.fake-orders', parent_id: 'product', path: '/product/fake-orders', sort_order: 94, perm_codes: ['2200a'] },
{ page_id: 'product.turntable', parent_id: 'product', path: '/product/turntable', sort_order: 93, perm_codes: ['2200a'] },
{ page_id: 'product.data', parent_id: 'product', path: '/product/data', sort_order: 94, perm_codes: ['2200a'] },
{ page_id: 'product.fake-orders', parent_id: 'product', path: '/product/fake-orders', sort_order: 95, perm_codes: ['2200a'] },
{ page_id: 'member.list', parent_id: 'member', path: '/member/list', sort_order: 101, perm_codes: ['3300a'] },
{ page_id: 'member.data', parent_id: 'member', path: '/member/data', sort_order: 102, perm_codes: ['3300a'] },
{ page_id: 'miniapp.carousel', parent_id: 'miniapp', path: '/miniapp/carousel', sort_order: 111, perm_codes: ['8080a'] },
@@ -170,7 +171,7 @@ const KEFU_MENU_PARENT_IDS = {
'cross-platform': ['cross-platform.order', 'cross-platform.settings', 'cross-platform.data', 'cross-platform.pre'],
user: ['user.player', 'user.guanli', 'user.shangjia', 'user.zuzhang', 'user.identity-tag'],
withdraw: ['withdraw.audit', 'withdraw.data', 'withdraw.settings'],
product: ['product.list', 'product.type-zone', 'product.data', 'product.fake-orders'],
product: ['product.list', 'product.type-zone', 'product.turntable', 'product.data', 'product.fake-orders'],
member: ['member.list', 'member.data'],
miniapp: ['miniapp.carousel', 'miniapp.assets', 'miniapp.popup', 'miniapp.leixing', 'miniapp.kaohe-tags', 'miniapp.dashou-exam', 'miniapp.withdraw-settings'],
shop: ['shop.list', 'shop.withdraw', 'shop.products'],
@@ -205,6 +206,19 @@ export function getEffectiveVisiblePaths(access = null) {
return Array.isArray(paths) ? paths : [];
}
/**
* 兼容尚未 seed 到服务端的新菜单:本地已定义且 canShowMenuPage 通过即可进路由。
* 避免「侧栏看得见、点进去却被踢到默认页(如板块配置)」。
*/
export function isLocallyDefinedMenuPathAllowed(path) {
if (!path) return false;
const row = KEFU_MENU_ROWS.find(
(r) => r.path && (path === r.path || path.startsWith(`${r.path}/`)),
);
if (!row) return false;
return canShowMenuPage(row.page_id);
}
export function hasPermCode(access, ...codes) {
if (!access || !codes.length) return false;
const list = access.permission_codes || [];