zhibo/Zhibo/admin/diagnose_menu_404.js

128 lines
4.5 KiB
JavaScript
Raw Normal View History

/**
* 点赞管理和收藏管理404问题诊断脚本
* 在浏览器控制台中运行此脚本
*/
console.log('========================================');
console.log('开始诊断点赞管理和收藏管理404问题');
console.log('========================================');
console.log('');
// 1. 检查路由配置
console.log('1. 检查前端路由配置:');
try {
const router = window.$nuxt ? window.$nuxt.$router : (window.app ? window.app.$router : null);
if (router) {
const routes = router.options.routes;
const contentManage = routes.find(r => r.path === '/contentManage');
if (contentManage) {
console.log('✓ 找到 contentManage 路由');
const likeRoute = contentManage.children?.find(c => c.path === 'like/list');
const collectRoute = contentManage.children?.find(c => c.path === 'collect/list');
if (likeRoute) {
console.log('✓ 找到点赞管理路由:', likeRoute);
} else {
console.log('✗ 未找到点赞管理路由');
}
if (collectRoute) {
console.log('✓ 找到收藏管理路由:', collectRoute);
} else {
console.log('✗ 未找到收藏管理路由');
}
} else {
console.log('✗ 未找到 contentManage 路由');
}
} else {
console.log('⚠ 无法访问路由对象请在Vue应用中运行此脚本');
}
} catch (e) {
console.log('✗ 检查路由时出错:', e.message);
}
console.log('');
// 2. 检查动态路由
console.log('2. 检查动态路由从store获取');
try {
const store = window.$nuxt ? window.$nuxt.$store : (window.app ? window.app.$store : null);
if (store) {
const permissionRoutes = store.state.permission?.routes || [];
console.log('动态路由数量:', permissionRoutes.length);
const contentManage = permissionRoutes.find(r => r.name === 'ContentManage' || r.url === '/contentManage');
if (contentManage) {
console.log('✓ 找到内容管理菜单');
console.log('子菜单:', contentManage.child?.map(c => c.name) || []);
const likeMenu = contentManage.child?.find(c => c.name === '点赞管理' || c.url === '/contentManage/like/list');
const collectMenu = contentManage.child?.find(c => c.name === '收藏管理' || c.url === '/contentManage/collect/list');
if (likeMenu) {
console.log('✓ 找到点赞管理菜单:', likeMenu);
} else {
console.log('✗ 未找到点赞管理菜单');
}
if (collectMenu) {
console.log('✓ 找到收藏管理菜单:', collectMenu);
} else {
console.log('✗ 未找到收藏管理菜单');
}
} else {
console.log('✗ 未找到内容管理菜单');
}
} else {
console.log('⚠ 无法访问store对象');
}
} catch (e) {
console.log('✗ 检查动态路由时出错:', e.message);
}
console.log('');
// 3. 检查组件是否存在
console.log('3. 尝试加载组件:');
console.log('请手动检查以下文件是否存在:');
console.log('- src/views/like/index.vue');
console.log('- src/views/collect/index.vue');
console.log('- src/api/userActivity.js');
console.log('');
// 4. 检查当前路由
console.log('4. 当前路由信息:');
try {
const router = window.$nuxt ? window.$nuxt.$router : (window.app ? window.app.$router : null);
if (router) {
console.log('当前路径:', router.currentRoute.path);
console.log('当前路由名称:', router.currentRoute.name);
console.log('路由参数:', router.currentRoute.params);
}
} catch (e) {
console.log('✗ 获取当前路由时出错:', e.message);
}
console.log('');
// 5. 诊断建议
console.log('========================================');
console.log('诊断建议:');
console.log('========================================');
console.log('');
console.log('如果未找到路由或菜单,请检查:');
console.log('1. 数据库中菜单配置是否正确(执行 check_like_collect_menu.sql');
console.log('2. 是否重新登录(菜单在登录时加载)');
console.log('3. 前端是否重新编译npm run build:prod');
console.log('4. 前端文件是否重新部署');
console.log('5. 浏览器缓存是否清除Ctrl+Shift+Delete');
console.log('');
console.log('如果找到了路由但仍然404请检查');
console.log('1. 组件文件是否存在');
console.log('2. 编译后的dist目录是否包含这些组件');
console.log('3. Network标签中是否有组件加载失败的请求');
console.log('');
console.log('========================================');