From 494e0160b79a22b2e0df71e61d9bb4de333cadbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=AB=E5=9C=B0=E5=83=A7?= <357099073@qq.com> Date: Sun, 2 Nov 2025 13:17:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A7=9F=E6=88=B7=E5=82=A8?= =?UTF-8?q?=E5=AD=98=E5=AE=B9=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc/src/components/CommonAside.vue | 2 +- pc/src/router/index.js | 50 - pc/src/views/Main.vue | 167 ++- .../views/apps/knowledge/category/index.vue | 170 +++- .../apps/knowledge/components/detail.vue | 319 +++--- .../views/apps/knowledge/components/edit.vue | 368 +++---- pc/src/views/apps/knowledge/index.vue | 923 ++++++----------- pc/src/views/apps/knowledge/tag/index.vue | 175 ++++ pc/src/views/dashboard/index.vue | 962 +++++++++++------- .../views/system/tenant/components/audit.vue | 227 +++++ .../views/system/tenant/components/detail.vue | 215 ++++ .../views/system/tenant/components/edit.vue | 236 +++++ pc/src/views/system/tenant/index.vue | 738 +++++--------- server/models/tenant.go | 14 +- 14 files changed, 2621 insertions(+), 1945 deletions(-) diff --git a/pc/src/components/CommonAside.vue b/pc/src/components/CommonAside.vue index 75a5155..f0565a2 100644 --- a/pc/src/components/CommonAside.vue +++ b/pc/src/components/CommonAside.vue @@ -362,7 +362,7 @@ const findMenuItemByPath = (menus, path) => { } h3{ - line-height: 60px; + line-height: 80px; display: flex; align-items: center; justify-content: center; diff --git a/pc/src/router/index.js b/pc/src/router/index.js index c79a119..c3969cf 100644 --- a/pc/src/router/index.js +++ b/pc/src/router/index.js @@ -65,28 +65,22 @@ export async function loadAndAddDynamicRoutes() { // 创建加载 Promise routesLoadingPromise = (async () => { try { - console.log('[路由加载] 开始从 API 加载动态路由...'); - // 直接从 API 获取菜单数据 const { getAllMenus } = await import("@/api/menu"); const res = await getAllMenus(); if (res && res.success && res.data) { - console.log('[路由加载] API 返回菜单数量:', res.data.length); // 添加动态路由 addDynamicRoutes(res.data); - console.log('[路由加载] 动态路由加载完成'); dynamicRoutesAdded = true; routesLoadingPromise = null; return Promise.resolve(); } else { - console.warn('[路由加载] API 返回数据格式异常:', res); dynamicRoutesAdded = true; routesLoadingPromise = null; return Promise.resolve(); } } catch (error) { - console.error('[路由加载] 加载动态路由失败:', error); // 即使出错也标记为已加载,避免无限重试 dynamicRoutesAdded = true; routesLoadingPromise = null; @@ -100,15 +94,11 @@ export async function loadAndAddDynamicRoutes() { // 添加动态路由到 Main 的 children 中 function addDynamicRoutes(menus) { if (!menus?.length) { - console.warn('[路由加载] 菜单数据为空,跳过添加动态路由'); return; } - console.log('[路由加载] 开始添加动态路由,菜单数量:', menus.length); - // 如果已经添加过,先移除旧路由(刷新时可能需要重新添加) if (dynamicRoutesAdded) { - console.log('[路由加载] 检测到已添加的路由,先移除旧路由'); // 移除 Main 路由以便重新添加 if (router.hasRoute('Main')) { router.removeRoute('Main'); @@ -120,18 +110,10 @@ function addDynamicRoutes(menus) { const filteredMenus = menus.filter(menu => menu.id !== 1); const dynamicRoutes = convertMenusToRoutes(filteredMenus); - console.log('[路由加载] 转换后的动态路由数量:', dynamicRoutes.length); - console.log('[路由加载] 动态路由列表:', dynamicRoutes.map(r => ({ - path: r.path, - name: r.name, - hasComponent: !!r.component, - childrenCount: r.children?.length || 0 - }))); // 获取主路由 const mainRoute = router.getRoutes().find(r => r.name === 'Main'); if (!mainRoute) { - console.error('[路由加载] 找不到 Main 路由'); return; } @@ -157,7 +139,6 @@ function addDynamicRoutes(menus) { }; router.addRoute(newMainRoute); - console.log('[路由加载] Main 路由已更新,子路由总数:', newMainRoute.children.length); // 添加知识库的子路由(详情页和编辑页) // 直接在 Main 路由下添加完整路径的子路由 @@ -227,22 +208,16 @@ router.beforeEach(async (to, from, next) => { // 3. 已登录,确保动态路由已加载(必须在检查 404 之前) if (!dynamicRoutesAdded) { - console.log('[路由守卫] 开始加载动态路由, 目标路径:', to.path); await loadAndAddDynamicRoutes(); - console.log('[路由守卫] 动态路由加载完成, dynamicRoutesAdded:', dynamicRoutesAdded); - // 如果路由加载后仍然未添加(API 失败) if (!dynamicRoutesAdded) { - console.warn('[路由守卫] 路由加载失败,可能是 API 错误或 token 无效'); // 重新检查 token,如果 token 不存在或无效,跳转到登录页 const currentToken = localStorage.getItem('token'); if (!currentToken) { - console.log('[路由守卫] 未找到 token,跳转到登录页'); next({ path: "/login", query: { redirect: to.path } }); return; } // 如果 token 存在但路由加载失败,可能是 token 过期或无效,清除 token 并跳转登录 - console.warn('[路由守卫] Token 存在但路由加载失败,清除 token 并跳转登录页'); localStorage.removeItem('token'); localStorage.removeItem('userInfo'); next({ path: "/login", query: { redirect: to.path } }); @@ -254,23 +229,14 @@ router.beforeEach(async (to, from, next) => { // 重新解析路径检查是否能匹配 const resolved = router.resolve(to.path); - console.log('[路由守卫] 路由解析结果:', { - path: to.path, - resolved: resolved.path, - matched: resolved.matched.length, - name: resolved.name, - matchedRoutes: resolved.matched.map(m => ({ name: m.name, path: m.path })) - }); // 如果能匹配到路由,使用完整路径重新导航(确保Vue Router正确更新) if (resolved.matched.length > 0 && resolved.name !== "NotFound") { - console.log('[路由守卫] 路由匹配成功,重新导航确保正确加载'); next({ path: to.fullPath || to.path, replace: true }); return; } // 如果无法匹配,使用原始路径重新导航 - console.log('[路由守卫] 路由未匹配,重新导航到:', to.path); next({ path: to.fullPath || to.path, replace: true }); return; } @@ -278,29 +244,13 @@ router.beforeEach(async (to, from, next) => { // 3.5 如果路由已加载但当前路径未匹配,可能是刷新问题 // 注意:这里需要排除根路径和已知的静态路由 if (to.matched.length === 0 && to.name !== "NotFound" && to.path !== "/" && to.path !== "/dashboard") { - console.log('[路由守卫] 路由已加载但未匹配,尝试重新解析:', to.path); // 重新解析路径,看看是否能够匹配 const resolved = router.resolve(to.path); - console.log('[路由守卫] 重新解析结果:', { - matched: resolved.matched.length, - name: resolved.name, - matchedRoutes: resolved.matched.map(m => ({ name: m.name, path: m.path })) - }); if (resolved.matched.length > 0 && resolved.name !== "NotFound") { // 能够匹配,说明路由表正常,使用路径重新导航 - console.log('[路由守卫] 重新解析匹配成功,重新导航'); next({ path: to.path, replace: true }); return; - } else { - console.warn('[路由守卫] 路由确实无法匹配,可能是路径错误:', to.path); - // 打印所有已注册的路由用于调试 - const allRoutes = router.getRoutes(); - console.log('[路由守卫] 所有已注册的路由:', allRoutes.map(r => ({ - name: r.name, - path: r.path, - children: r.children?.map(c => ({ name: c.name, path: c.path })) - }))); } } diff --git a/pc/src/views/Main.vue b/pc/src/views/Main.vue index 1477cca..9e9ef1c 100644 --- a/pc/src/views/Main.vue +++ b/pc/src/views/Main.vue @@ -4,7 +4,7 @@ import CommonHeader from '@/components/CommonHeader.vue'; import { useTabsStore } from '@/stores'; import { useRouter, useRoute } from 'vue-router'; import { ref, watch, reactive, nextTick, onMounted } from 'vue'; -import { More, DArrowRight } from '@element-plus/icons-vue' +import { More, Close, CircleClose } from '@element-plus/icons-vue' const tabsStore = useTabsStore(); const router = useRouter(); @@ -175,16 +175,20 @@ function closeAllTabs() { @contextmenu="onTabContextMenu($event, tab)" /> - -
全国单一窗口同步更新,实时最新
+ +全国单一窗口同步更新,实时最新
- -点击下方按钮创建您的第一个知识库
-暂无共享内容
-