zhibo/Zhibo/admin/diagnose_menu_404.js

128 lines
4.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 点赞管理和收藏管理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('========================================');