Browse Source

添加根据查询页面跳转

乐菲 1 week ago
parent
commit
4e2a9b3566
2 changed files with 160 additions and 133 deletions
  1. 55 29
      src/permission.js
  2. 105 104
      src/store/modules/permission.js

+ 55 - 29
src/permission.js

@@ -4,14 +4,21 @@ import NProgress from "nprogress";
 import "nprogress/nprogress.css";
 import { setTenantId, setToken } from "@/utils/auth";
 import { Message, MessageBox } from "element-ui";
-import { getPath } from '@/utils/ruoyi'
+import { getPath } from "@/utils/ruoyi";
 import { getItem, removeItem } from "@/utils/cookie";
 import { isRelogin } from "@/utils/request";
 
-NProgress.configure({ showSpinner: false })
+NProgress.configure({ showSpinner: false });
 
 // 增加三方登陆 update by 芋艿
-const whiteList = ['/login', '/social-login',  '/auth-redirect', '/bind', '/register', '/oauthLogin/gitee']
+const whiteList = [
+  "/login",
+  "/social-login",
+  "/auth-redirect",
+  "/bind",
+  "/register",
+  "/oauthLogin/gitee",
+];
 
 function routerAction(to, from, next) {
   // 解决多级路由无法缓存
@@ -46,7 +53,14 @@ function routerAction(to, from, next) {
           });
         });
     } else {
-      next();
+      if (!!to.meta.queryManageId) {
+        next({
+          ...to,
+          path: `/querymanage/queryFormNew?id=${to.meta?.queryManageId}`,
+        });
+      } else {
+        next();
+      }
     }
   }
 }
@@ -64,54 +78,66 @@ router.beforeEach((to, from, next) => {
     // 没有token
     if (whiteList.indexOf(to.path) !== -1) {
       // 在免登录白名单,直接进入
-      next()
+      next();
     } else {
-      if(window.location.hostname === '113.105.183.190' && process.env.VUE_APP_TITLE === '麦禾田WMS管理系统') {
+      if (
+        window.location.hostname === "113.105.183.190" &&
+        process.env.VUE_APP_TITLE === "麦禾田WMS管理系统"
+      ) {
         window.location.href =
-            'http://113.105.183.190:8263/login?redirect=%2Findex'
+          "http://113.105.183.190:8263/login?redirect=%2Findex";
       }
-      if(window.location.hostname === '113.105.183.190' && process.env.VUE_APP_TITLE === '东苏发WMS管理系统') {
+      if (
+        window.location.hostname === "113.105.183.190" &&
+        process.env.VUE_APP_TITLE === "东苏发WMS管理系统"
+      ) {
         window.location.href =
-            'http://113.105.183.190:8263/login?redirect=%2Findex'
+          "http://113.105.183.190:8263/login?redirect=%2Findex";
       }
-      if(window.location.hostname === '113.105.183.190' && process.env.VUE_APP_TITLE === '东旭达WMS管理系统') {
+      if (
+        window.location.hostname === "113.105.183.190" &&
+        process.env.VUE_APP_TITLE === "东旭达WMS管理系统"
+      ) {
         window.location.href =
-            'http://113.105.183.190:8267/login?redirect=%2Findex'
+          "http://113.105.183.190:8267/login?redirect=%2Findex";
       }
       switch (window.location.hostname) {
-        case '192.168.1.163':
+        case "192.168.1.163":
           window.location.href =
-              'http://192.168.1.163:8282/login?redirect=%2Findex'
-          break
+            "http://192.168.1.163:8282/login?redirect=%2Findex";
+          break;
         // case '218.2.10.30':
         default:
           // location.href = "http://localhost:81/login?redirect=%2Findex";
-          MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
-            confirmButtonText: '重新登录',
-            cancelButtonText: '取消',
-            type: 'warning'
-          }
+          MessageBox.confirm(
+            "登录状态已过期,您可以继续留在该页面,或者重新登录",
+            "系统提示",
+            {
+              confirmButtonText: "重新登录",
+              cancelButtonText: "取消",
+              type: "warning",
+            }
           ).then(() => {
             // 清除localStorage存储
-            localStorage.clear()
+            localStorage.clear();
             // 清除cookie,防止接口卡死
-            removeItem('tenantId')
-            removeItem('accessToken')
-            removeItem('refreshToken')
+            removeItem("tenantId");
+            removeItem("accessToken");
+            removeItem("refreshToken");
             next(`/login?redirect=${encodeURIComponent(to.fullPath)}`);
             // store.dispatch('LogOut').then(() => {
             //   // 源代码
             //   location.href = getPath('/login');
             // })
-          })
-          break
-        }
+          });
+          break;
+      }
       // next(`/login?redirect=${encodeURIComponent(to.fullPath)}`); // 否则全部重定向到登录页 encodeURIComponent对fullpath做转码处理,解决缺少参数
       // NProgress.done();
     }
   }
-})
+});
 
 router.afterEach(() => {
-  NProgress.done()
-})
+  NProgress.done();
+});

+ 105 - 104
src/store/modules/permission.js

@@ -6,124 +6,125 @@ import ParentView from "@/components/ParentView";
 import { toCamelCase } from "@/utils";
 
 const permission = {
-    state: {
-        routes: [],
-        addRoutes: [],
-        sidebarRouters: [],
+  state: {
+    routes: [],
+    addRoutes: [],
+    sidebarRouters: [],
+  },
+  mutations: {
+    SET_ROUTES: (state, routes) => {
+      state.addRoutes = routes;
+      state.routes = constantRoutes.concat(routes);
     },
-    mutations: {
-        SET_ROUTES: (state, routes) => {
-            state.addRoutes = routes;
-            state.routes = constantRoutes.concat(routes);
-        },
-        SET_DEFAULT_ROUTES: (state, routes) => {
-            state.defaultRoutes = constantRoutes.concat(routes);
-        },
-        SET_TOPBAR_ROUTES: (state, routes) => {
-            state.topbarRouters = routes;
-        },
-        SET_SIDEBAR_ROUTERS: (state, routes) => {
-            state.sidebarRouters = routes;
-        },
+    SET_DEFAULT_ROUTES: (state, routes) => {
+      state.defaultRoutes = constantRoutes.concat(routes);
     },
-    actions: {
-        // 生成路由
-        GenerateRoutes({ commit }) {
-            return new Promise((resolve) => {
-                // 向后端请求路由数据
-                const params = { zone: 2 };
-                getInfo(params).then((res) => {
-                    const sdata = JSON.parse(JSON.stringify(res.data.menus));
-                    const rdata = JSON.parse(JSON.stringify(res.data.menus));
-                    const sidebarRoutes = filterAsyncRouter(sdata);
-                    const rewriteRoutes = filterAsyncRouter(rdata, false, true);
-                    rewriteRoutes.push({ path: "*", redirect: "/404", hidden: true });
-                    commit("SET_ROUTES", rewriteRoutes);
-                    commit("SET_SIDEBAR_ROUTERS", constantRoutes.concat(sidebarRoutes));
-                    commit("SET_DEFAULT_ROUTES", sidebarRoutes);
-                    commit("SET_TOPBAR_ROUTES", sidebarRoutes);
-                    resolve(rewriteRoutes);
-                });
-            });
-        },
+    SET_TOPBAR_ROUTES: (state, routes) => {
+      state.topbarRouters = routes;
     },
+    SET_SIDEBAR_ROUTERS: (state, routes) => {
+      state.sidebarRouters = routes;
+    },
+  },
+  actions: {
+    // 生成路由
+    GenerateRoutes({ commit }) {
+      return new Promise((resolve) => {
+        // 向后端请求路由数据
+        const params = { zone: 2 };
+        getInfo(params).then((res) => {
+          const sdata = JSON.parse(JSON.stringify(res.data.menus));
+          const rdata = JSON.parse(JSON.stringify(res.data.menus));
+          const sidebarRoutes = filterAsyncRouter(sdata);
+          const rewriteRoutes = filterAsyncRouter(rdata, false, true);
+          rewriteRoutes.push({ path: "*", redirect: "/404", hidden: true });
+          commit("SET_ROUTES", rewriteRoutes);
+          commit("SET_SIDEBAR_ROUTERS", constantRoutes.concat(sidebarRoutes));
+          commit("SET_DEFAULT_ROUTES", sidebarRoutes);
+          commit("SET_TOPBAR_ROUTES", sidebarRoutes);
+          resolve(rewriteRoutes);
+        });
+      });
+    },
+  },
 };
 
 // 遍历后台传来的路由字符串,转换为组件对象
 function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
-    return asyncRouterMap.filter((route) => {
-        // 将 ruoyi 后端原有耦合前端的逻辑,迁移到此处
-        // 处理 meta 属性
-        route.meta = {
-            title: route.name,
-            icon: route.icon,
-            activeMenu: route.activeMenu,
-            id: route.id,
-            noCache: !route.keepAlive,
-            reportId: route.reportId,
-            reportList: route.reportList,
-            bpmnModelId: route.bpmnModelId,
-            componentName: route.componentName,
-        };
-        // 路由地址转首字母大写驼峰,作为路由名称,适配keepAlive
-        // route.name = toCamelCase(route.path, true)
-        // 开始调用后端返回的组件名
-        route.name = route.componentName;
-        route.hidden = !route.visible;
-        // 处理 component 属性
-        if (route.children) {
-            // 父节点
-            route.component = route.parentId === 0 ? Layout : ParentView;
-            // if (route.parentId === 0) {
-            //   route.component = Layout
-            // } else {
-            //   route.component = ParentView
-            // }
-        } else {
-            // 根节点
-            route.component = loadView(route.component);
-        }
+  return asyncRouterMap.filter((route) => {
+    // 将 ruoyi 后端原有耦合前端的逻辑,迁移到此处
+    // 处理 meta 属性
+    route.meta = {
+      title: route.name,
+      icon: route.icon,
+      activeMenu: route.activeMenu,
+      id: route.id,
+      noCache: !route.keepAlive,
+      reportId: route.reportId,
+      reportList: route.reportList,
+      bpmnModelId: route.bpmnModelId,
+      componentName: route.componentName,
+      queryManageId: route.queryManageId,
+    };
+    // 路由地址转首字母大写驼峰,作为路由名称,适配keepAlive
+    // route.name = toCamelCase(route.path, true)
+    // 开始调用后端返回的组件名
+    route.name = route.componentName;
+    route.hidden = !route.visible;
+    // 处理 component 属性
+    if (route.children) {
+      // 父节点
+      route.component = route.parentId === 0 ? Layout : ParentView;
+      // if (route.parentId === 0) {
+      //   route.component = Layout
+      // } else {
+      //   route.component = ParentView
+      // }
+    } else {
+      // 根节点
+      route.component = loadView(route.component);
+    }
 
-        // filterChildren
-        if (type && route.children) {
-            route.children = filterChildren(route.children);
-        }
-        if (route.children != null && route.children && route.children.length) {
-            route.children = filterAsyncRouter(route.children, route, type);
-        } else {
-            delete route["children"];
-        }
-        return true;
-    });
+    // filterChildren
+    if (type && route.children) {
+      route.children = filterChildren(route.children);
+    }
+    if (route.children != null && route.children && route.children.length) {
+      route.children = filterAsyncRouter(route.children, route, type);
+    } else {
+      delete route["children"];
+    }
+    return true;
+  });
 }
 
 function filterChildren(childrenMap, lastRouter = false) {
-    var children = [];
-    childrenMap.forEach((el, index) => {
-        if (el.children && el.children.length) {
-            if (el.component === "ParentView" && !lastRouter) {
-                el.children.forEach((c) => {
-                    c.path = el.path + "/" + c.path;
-                    if (c.children && c.children.length) {
-                        children = children.concat(filterChildren(c.children, c));
-                        return;
-                    }
-                    children.push(c);
-                });
-                return;
-            }
-        }
-        if (lastRouter) {
-            el.path = lastRouter.path + "/" + el.path;
-        }
-        children = children.concat(el);
-    });
-    return children;
+  var children = [];
+  childrenMap.forEach((el, index) => {
+    if (el.children && el.children.length) {
+      if (el.component === "ParentView" && !lastRouter) {
+        el.children.forEach((c) => {
+          c.path = el.path + "/" + c.path;
+          if (c.children && c.children.length) {
+            children = children.concat(filterChildren(c.children, c));
+            return;
+          }
+          children.push(c);
+        });
+        return;
+      }
+    }
+    if (lastRouter) {
+      el.path = lastRouter.path + "/" + el.path;
+    }
+    children = children.concat(el);
+  });
+  return children;
 }
 
 export const loadView = (view) => {
-    // 路由懒加载
-    return (resolve) => require([`@/views/${view}`], resolve);
+  // 路由懒加载
+  return (resolve) => require([`@/views/${view}`], resolve);
 };
 
 export default permission;