Initial commit: Telegram Management System
Some checks failed
Deploy / deploy (push) Has been cancelled
Some checks failed
Deploy / deploy (push) Has been cancelled
Full-stack web application for Telegram management - Frontend: Vue 3 + Vben Admin - Backend: NestJS - Features: User management, group broadcast, statistics 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
129
debug-menu-loading.js
Normal file
129
debug-menu-loading.js
Normal file
@@ -0,0 +1,129 @@
|
||||
const { chromium } = require('playwright');
|
||||
|
||||
(async () => {
|
||||
let browser;
|
||||
|
||||
try {
|
||||
console.log('启动浏览器调试菜单加载...');
|
||||
browser = await chromium.launch({
|
||||
headless: false,
|
||||
slowMo: 300,
|
||||
devtools: true // 打开开发者工具
|
||||
});
|
||||
|
||||
const context = await browser.newContext({
|
||||
viewport: { width: 1920, height: 1080 }
|
||||
});
|
||||
|
||||
const page = await context.newPage();
|
||||
|
||||
// 监听控制台输出
|
||||
page.on('console', msg => {
|
||||
console.log('浏览器控制台:', msg.type(), msg.text());
|
||||
});
|
||||
|
||||
// 登录
|
||||
console.log('\n执行登录...');
|
||||
await page.goto('http://localhost:5174/', { waitUntil: 'networkidle' });
|
||||
await page.fill('[name="username"]', 'admin');
|
||||
await page.fill('[name="password"]', '111111');
|
||||
await page.click('button:has-text("登录")');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// 访问首页
|
||||
if (page.url().includes('login')) {
|
||||
await page.goto('http://localhost:5174/dashboard/home', { waitUntil: 'networkidle' });
|
||||
}
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// 在浏览器中执行JavaScript检查
|
||||
console.log('\n检查菜单数据...');
|
||||
|
||||
const menuInfo = await page.evaluate(() => {
|
||||
// 尝试获取Vue/React实例
|
||||
const app = window.__app__ || window.app || window.$app;
|
||||
|
||||
// 检查localStorage中的数据
|
||||
const accessMenus = localStorage.getItem('access-menus');
|
||||
const accessToken = localStorage.getItem('access_token');
|
||||
const userInfo = localStorage.getItem('user_info');
|
||||
|
||||
// 检查DOM中的菜单元素
|
||||
const menuElements = {
|
||||
antMenu: document.querySelectorAll('.ant-menu').length,
|
||||
menuItems: document.querySelectorAll('.ant-menu-item').length,
|
||||
subMenus: document.querySelectorAll('.ant-menu-submenu').length,
|
||||
roleMenu: document.querySelectorAll('[role="menu"]').length,
|
||||
sider: document.querySelectorAll('.ant-layout-sider').length
|
||||
};
|
||||
|
||||
// 检查Pinia store
|
||||
let storeInfo = null;
|
||||
try {
|
||||
if (window.__PINIA__) {
|
||||
const stores = window.__PINIA__._s;
|
||||
storeInfo = {
|
||||
storeCount: stores.size,
|
||||
storeKeys: Array.from(stores.keys())
|
||||
};
|
||||
}
|
||||
} catch (e) {
|
||||
storeInfo = { error: e.message };
|
||||
}
|
||||
|
||||
return {
|
||||
localStorage: {
|
||||
hasAccessMenus: !!accessMenus,
|
||||
accessMenusLength: accessMenus ? JSON.parse(accessMenus).length : 0,
|
||||
hasAccessToken: !!accessToken,
|
||||
hasUserInfo: !!userInfo
|
||||
},
|
||||
dom: menuElements,
|
||||
app: !!app,
|
||||
pinia: storeInfo,
|
||||
url: window.location.href,
|
||||
title: document.title
|
||||
};
|
||||
});
|
||||
|
||||
console.log('\n菜单调试信息:');
|
||||
console.log(JSON.stringify(menuInfo, null, 2));
|
||||
|
||||
// 尝试手动触发菜单加载
|
||||
console.log('\n尝试手动触发菜单加载...');
|
||||
|
||||
await page.evaluate(() => {
|
||||
// 尝试调用菜单API
|
||||
if (window.getAllMenusApi) {
|
||||
console.log('找到 getAllMenusApi,调用中...');
|
||||
window.getAllMenusApi().then(menus => {
|
||||
console.log('菜单数据:', menus);
|
||||
});
|
||||
}
|
||||
|
||||
// 检查路由
|
||||
if (window.$router) {
|
||||
console.log('路由列表:', window.$router.getRoutes().map(r => r.path));
|
||||
}
|
||||
});
|
||||
|
||||
await page.waitForTimeout(3000);
|
||||
|
||||
// 再次检查菜单元素
|
||||
const finalMenuCount = await page.locator('.ant-menu-item, .ant-menu-submenu').count();
|
||||
console.log(`\n最终菜单元素数量: ${finalMenuCount}`);
|
||||
|
||||
// 截图
|
||||
await page.screenshot({ path: 'test-screenshots/menu-debug.png', fullPage: true });
|
||||
|
||||
console.log('\n调试完成,保持浏览器打开...');
|
||||
await new Promise(() => {});
|
||||
|
||||
} catch (error) {
|
||||
console.error('出错了:', error);
|
||||
if (browser) {
|
||||
await browser.close();
|
||||
}
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user