From 25df88d0ab9d7444ed1d162b9efa1259ac2f6f66 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 27 四月 2026 10:13:53 +0800
Subject: [PATCH] 小程序对接finish

---
 frontend-admin/src/router/index.ts |   32 +++++++++++++++++++++++++++-----
 1 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/frontend-admin/src/router/index.ts b/frontend-admin/src/router/index.ts
index 9cb5c2b..4820796 100644
--- a/frontend-admin/src/router/index.ts
+++ b/frontend-admin/src/router/index.ts
@@ -37,7 +37,7 @@
         { path: "", redirect: "/dashboard" },
         { path: "dashboard", component: () => import("../views/DashboardView.vue"), meta: { permission: "dashboard:page" } },
         { path: "appointments", component: () => import("../views/AppointmentListView.vue"), meta: { permission: "appointments:page" } },
-        { path: "approvals", component: () => import("../views/ApprovalTodoView.vue"), meta: { permission: "approvals:page" } },
+        { path: "approvals", component: () => import("../views/ApprovalTodoView.vue"), meta: { title: "运维日志", permission: "approvals:page" } },
         { path: "config", redirect: "/system/booking-settings" },
         {
           path: "system/approval-settings",
@@ -59,7 +59,7 @@
           component: () => import("../views/ContentSettingsView.vue"),
           meta: { title: "内容设置", permission: "config:content-settings:page" },
         },
-        { path: "exports", component: () => import("../views/ExportView.vue"), meta: { permission: "exports:page" } },
+        { path: "exports", component: () => import("../views/ExportView.vue"), meta: { title: "操作日志", permission: "exports:page" } },
         { path: "staff/depts", component: () => import("../views/DeptManageView.vue"), meta: { permission: "sys:depts:page" } },
         { path: "staff/employees", component: () => import("../views/StaffEmployeesView.vue"), meta: { permission: "sys:staff:page" } },
         {
@@ -92,7 +92,13 @@
 router.beforeEach((to, _from, next) => {
   const auth = useAuthStore();
   if (to.path === "/login" && auth.token) {
-    next(resolveFirstAllowedPath());
+    const redirectPath = resolveFirstAllowedPath();
+    if (redirectPath === "/login") {
+      auth.clear();
+      next();
+      return;
+    }
+    next(redirectPath);
     return;
   }
   if (to.meta.requiresAuth && !auth.token) {
@@ -101,11 +107,27 @@
   }
   const requiredPermission = typeof to.meta.permission === "string" ? to.meta.permission : "";
   if (requiredPermission && !auth.hasPermission(requiredPermission)) {
-    next(resolveFirstAllowedPath());
+    const redirectPath = resolveFirstAllowedPath();
+    if (redirectPath === to.path) {
+      next();
+      return;
+    }
+    if (redirectPath === "/login") {
+      auth.clear();
+    }
+    next(redirectPath);
     return;
   }
   if (to.path === "/") {
-    next(resolveFirstAllowedPath());
+    const redirectPath = resolveFirstAllowedPath();
+    if (redirectPath === "/") {
+      next();
+      return;
+    }
+    if (redirectPath === "/login" && auth.token) {
+      auth.clear();
+    }
+    next(redirectPath);
     return;
   }
   next();

--
Gitblit v1.7.1