فهرست منبع

fix:切换等级后未重新获取info

snow 2 سال پیش
والد
کامیت
38ecf360d5
3فایلهای تغییر یافته به همراه25 افزوده شده و 11 حذف شده
  1. 2 2
      src/layout/components/navbar.vue
  2. 15 4
      src/router/utils.ts
  3. 8 5
      src/store/modules/user.ts

+ 2 - 2
src/layout/components/navbar.vue

@@ -94,7 +94,6 @@ async function onSwitchAccountMode() {
       <!-- 采销系统入口 -->
       <el-tooltip placement="left" content="登录采销平台">
         <el-button
-          v-if="isSuperUser"
           size="large"
           class="fixed"
           style="bottom: 100px; right: 60px"
@@ -107,6 +106,7 @@ async function onSwitchAccountMode() {
       <!--  超管切换至供应商和业务公司    -->
       <el-tooltip placement="left" :content="switchAccountModeText">
         <el-button
+          v-if="isSuperUser"
           size="large"
           class="fixed"
           style="bottom: 160px; right: 60px"
@@ -125,7 +125,7 @@ async function onSwitchAccountMode() {
       </p>
 
       <!-- 全屏 -->
-      <screenfull id="header-screenfull" v-show="!deviceDetection()" />
+      <!-- <screenfull id="header-screenfull" v-show="!deviceDetection()" /> -->
 
       <!-- 退出登录 -->
       <el-dropdown trigger="click">

+ 15 - 4
src/router/utils.ts

@@ -15,6 +15,7 @@ import { usePermissionStoreHook } from "/@/store/modules/permission";
 const Layout = () => import("/@/layout/index.vue");
 const IFrame = () => import("/@/layout/frameView.vue");
 import { useUserStoreHook } from "/@/store/modules/user";
+import { getAsyncRoutes } from "../api/user";
 // https://cn.vitejs.dev/guide/features.html#glob-import
 const modulesRoutes = import.meta.glob("/src/views/**/*.{vue,tsx}");
 
@@ -112,14 +113,18 @@ function resetRouter(): void {
   });
 }
 
+const whiteRoutes = ["Welcome", "/", "Login", "Accept", "Redirect"];
+
 // 初始化路由
 function initRouter(data = {}) {
+  // removeRoutes();
   return new Promise((resolve, reject) => {
     useUserStoreHook()
       .postMenuList(data)
       .then(({ code, data }) => {
         if (code === 0) {
           const arrag: Array<any> = [];
+
           data.forEach(e => {
             const [icon] = e.menu_img.split("ep:");
             const eitem = {
@@ -142,13 +147,13 @@ function initRouter(data = {}) {
                 meta: {
                   icon: s.menu_img,
                   showLink: s.is_private + "" === "1",
-                  title: `${s.menu_name}`
+                  title: `${s.menu_name} `
                 }
               };
               // console.log(sitem);
               eitem.children.push(sitem);
               if (si === 0) {
-                eitem.redirect += `/${s.menu_route}`;
+                eitem.redirect += `/ ${s.menu_route} `;
               }
             });
             arrag.push(eitem);
@@ -172,7 +177,12 @@ function initRouter(data = {}) {
                   router.options.routes[0].children.push(v);
                   // 最终路由进行升序
                   ascending(router.options.routes[0].children);
-                  if (!router.hasRoute(v?.name)) router.addRoute(v);
+                  v.name = v.path;
+
+                  if (!router.hasRoute(v?.name)) {
+                    router.addRoute(v);
+                  }
+
                   const flattenRouters = router
                     .getRoutes()
                     .find(n => n.path === "/");
@@ -215,6 +225,7 @@ function formatFlatteningRoutes(routesList: RouteRecordRaw[]) {
         .concat(hierarchyList[i].children, hierarchyList.slice(i + 1));
     }
   }
+
   return hierarchyList;
 }
 
@@ -231,7 +242,7 @@ function formatTwoStageRoutes(routesList: RouteRecordRaw[]) {
     if (v.path === "/") {
       newRoutesList.push({
         component: v.component,
-        name: v.name,
+        name: v.path,
         path: v.path,
         redirect: v.redirect,
         meta: v.meta,

+ 8 - 5
src/store/modules/user.ts

@@ -126,8 +126,12 @@ export const useUserStore = defineStore({
       this.info = data;
       if (Number(code) === 0) {
         const { role_level, level } = data;
+
+        if (this.level === "0") {
+          this.level = level;
+        }
+
         this.isSuperUser = role_level === "1";
-        this.level = level;
         const code = getRelaComNo();
         const companyName = getRelaComName();
         if (!this.isSuperUser && this.companyList.length === 0) {
@@ -161,10 +165,8 @@ export const useUserStore = defineStore({
     // 获取当前账号菜单数据
     async postMenuList(form) {
       try {
-        if (this.level === "0") {
-          await this.requesetUserInfo();
-          await this.requsetSystemInfo();
-        }
+        await this.requesetUserInfo();
+        await this.requsetSystemInfo();
 
         return new Promise((resolve, reject) => {
           getAsyncRoutes(form)
@@ -209,6 +211,7 @@ export const useUserStore = defineStore({
     logOut() {
       this.token = "";
       this.name = "";
+      this.level = "0";
       removeToken();
       removeAction();
       storageSession.clear();