Преглед изворни кода

Merge branch 'MicroFunction' of http://47.103.92.60:3003/skyversation/qp_onemap_ui

DESKTOP-6LTVLN7\Liumouren пре 3 недеља
родитељ
комит
f01f403b93
3 измењених фајлова са 54 додато и 40 уклоњено
  1. 22 23
      src/components/AppVue/Header.vue
  2. 31 16
      src/main.js
  3. 1 1
      src/store/index.js

+ 22 - 23
src/components/AppVue/Header.vue

@@ -2,25 +2,26 @@
   <div id="header">
     <div class="logo">青浦一张图</div>
     <div class="userdropdown">
-        <User />
+      <User />
     </div>
     <div class="menu">
       <ul class="menu_ul">
-        <li
-          v-for="item in $store.state.menuList"
-          :key="item.path"
-          :class="{ active: $route.path == item.path }"
-          @click="$router.push(item.path)"
-        >
-          {{ item.label }}
-        </li>
+        <template v-for="item in $store.state.menuList" :key="item.path">
+          <li
+            v-if="item.path != '/taskManger' || $getUserType() != 1"
+            :class="{ active: $route.path == item.path }"
+            @click="$router.push(item.path)"
+          >
+            <!-- 任务管理仅对非游客可见 -->
+            {{ item.label }}
+          </li>
+        </template>
       </ul>
     </div>
-    
+
     <el-dialog v-model="dialogLoginVisible" width="500">
       <Login :close="closeLoginDialog" />
     </el-dialog>
-
   </div>
 </template>
 
@@ -31,12 +32,10 @@ export default {
     User,
   },
   data() {
-    return {
-    };
+    return {};
   },
   mounted() {},
-  methods: {
-  },
+  methods: {},
 };
 </script>
 
@@ -83,13 +82,13 @@ export default {
   }
 }
 .userdropdown {
-    float: right;
-    width: 150px;
-    display: flex;
-    align-items: center;
-    height: 70px;
-    justify-content: center;
-    cursor: pointer;
-    border: 0;
+  float: right;
+  width: 150px;
+  display: flex;
+  align-items: center;
+  height: 70px;
+  justify-content: center;
+  cursor: pointer;
+  border: 0;
 }
 </style>

+ 31 - 16
src/main.js

@@ -28,26 +28,41 @@ initApp.config.globalProperties.$getDmsTypes = (cName, index) => {
     return store.state.DmsTypesMap[cName] ? store.state.DmsTypesMap[cName][index + ''] : cName + "_" + index;
 };
 // 添加自定义方法,得到用户类型【1:游客;2:普通用户;3:管理员】
-initApp.config.globalProperties.$getUserType = () => {
-    // 得到用户id
-    let userId = store.state.userInfo.id;
-    // 得到角色ids
-    let roleIds = store.state.userInfo.roleId;
-    // 得到默认游客id
-    let touristUserId = systemConfig.touristUserId;
-    // 得到默认管理员角色id(roleId,在Oauth中配置)
-    let adminRoleId = systemConfig.adminRoleId;
-    if (!store.state.userInfo || !userId || !roleIds || userId == touristUserId) {
+const getUserType = () => {
+    if (store.state.userInfo && store.state.userInfo.id != null) {
+        // 得到用户id
+        let userId = store.state.userInfo.id;
+        // 得到角色ids
+        let roleIds = store.state.userInfo.roleId;
+        // 得到默认游客id
+        let touristUserId = systemConfig.touristUserId;
+        // 得到默认管理员角色id(roleId,在Oauth中配置)
+        let adminRoleId = systemConfig.adminRoleId;
+        if (!store.state.userInfo || !userId || !roleIds || userId == touristUserId) {
+            // 游客
+            return 1;
+        } else if (roleIds.split(',').includes(adminRoleId)) {
+            // 管理员
+            return 3;
+        } else {
+            // 普通用户
+            return 2;
+        }
+    } else {
         // 游客
         return 1;
-    } else if (roleIds.split(',').includes(adminRoleId)) {
-        // 管理员
-        return 3;
-    } else {
-        // 普通用户
-        return 2;
     }
 }
+initApp.config.globalProperties.$getUserType = getUserType;
+// 添加router的前置守卫,判断用户角色,游客不能访问任务管理页面
+router.beforeEach((to, from, next) => {
+    if (to.path == "/taskManger" && getUserType() == 1) {
+        // 游客不能访问任务管理页面
+        next({ path: "/" });
+    } else {
+        next();
+    }
+});
 
 for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
     initApp.component(key, component)

+ 1 - 1
src/store/index.js

@@ -19,7 +19,7 @@ export default createStore({
       { path: "/wgn", label: "微功能" },
       { path: "/yygl", label: "应用管理" },
       { path: "/yxgl", label: "运行管理" },
-      { path: "/taskManger", label: "任务管理" },
+      { path: "/taskManger", label: "任务管理" }
     ],
     sksjgl: {},
     skmh: {},