瀏覽代碼

修改了权限的问题

mageAoe 2 年之前
父節點
當前提交
68d1577378
共有 7 個文件被更改,包括 80 次插入54 次删除
  1. 5 5
      src/api/index.ts
  2. 10 0
      src/components/dialog/Dialog.vue
  3. 13 24
      src/layouts/Header/index.vue
  4. 33 17
      src/router/modules/asyncRouter.ts
  5. 1 0
      src/style.scss
  6. 18 8
      src/utils/common.ts
  7. 0 0
      src/views/home/Home.vue

+ 5 - 5
src/api/index.ts

@@ -61,11 +61,11 @@ class RequestHttp {
 
         // * 在请求结束后,并关闭请求 loading
         loadingInstance.close && loadingInstance.close()
-        // 无权限访问(code == 202)
-        if (data.Code === ResultEnum.ROLE) {
-          // router.replace('/404')
-          return Promise.reject(data)
-        }
+        // 无权限访问 || 登录密码错误(code == 202)
+        // if (data.Code === ResultEnum.ROLE) {
+        //   // router.replace('/404')
+        //   return Promise.reject(data)
+        // }
         // * 登陆失效(code == 201)
         if (data.Code === ResultEnum.OVERDUE) {
           ElNotification.error({

+ 10 - 0
src/components/dialog/Dialog.vue

@@ -39,6 +39,16 @@ defineExpose({
 </template>
 
 <style scoped>
+:deep(.el-dialog){
+  animation: anim-open 1s linear !important;
+}
+.el-dialog__wrapper {
+  transition-duration: 0.1s;
+}
+.el-dialog__wrapper.dialog-fade-enter-active,
+.el-dialog__wrapper.dialog-fade-leave-active {
+  animation: none !important;
+}
 .bottomD {
   animation: anim-open 1s linear !important;
 }

+ 13 - 24
src/layouts/Header/index.vue

@@ -1,4 +1,5 @@
 <script setup lang="ts">
+import { ref} from 'vue'
 import { useRouter } from 'vue-router'
 import { GlobalStore } from '@/stores/index'
 import Breadcrumb from './Breadcrumb.vue'
@@ -14,31 +15,19 @@ const logOut = () => {
   router.replace('/login')
 }
 
-// let time =
-
-// let date = new Date()
-// const getDate = ()=>{
-//   let h = date.getHours()
-//   let m = date.getMinutes()
-//   let s = date.getSeconds()
-
-//   h = getzire(h)
-//   m = getzire(m)
-//   s = getzire(s)
-
-//   return `${h}:${m}:${s} ${ h > 12 ? 'pm' : 'am'}`
-// }
+const getTime = ()=>{
+  return new Date().toLocaleString('en-US', {
+    hour: 'numeric',
+    minute: 'numeric',
+    hour12: true
+  })
+}
 
-// const getzire = (num:number)=>{
-//   if (num < 10){
-//     return '0' + num
-//   }
-//   return num
-// }
+let time = ref(getTime())
 
-// setInterval(() => {
-//   console.log(1)
-// }, 1000)
+setInterval(() => {
+  time.value = getTime()
+}, 1000 * 60)
 </script>
 
 <template>
@@ -87,7 +76,7 @@ const logOut = () => {
           </template>
         </el-dropdown>
       </el-col>
-      <!-- <el-col :xl="2" :sm="3" class="notice">08:20 pm</el-col> -->
+      <el-col :xl="2" :sm="3" class="notice">{{time}}</el-col>
     </el-row>
   </div>
 </template>

+ 33 - 17
src/router/modules/asyncRouter.ts

@@ -6,23 +6,21 @@ import { ElNotification } from 'element-plus'
 // 加载views下面所有的.vue文件
 const modules = import.meta.glob('@/views/**/*.vue')
 
-console.log(modules)
 
-export const asyncAddRouter = () => {
-  const globalStore = GlobalStore()
-  globalStore.GET_Flat_Menu.forEach((item: any) => {
-    item.children && delete item.children
-    if (item.component && typeof item.component == 'string') {
-      // item.component = modules['/src/views' + item.component + '.vue']
-      console.log(item)
-    }
-    if (item.meta.isFull) {
-      router.addRoute(item)
-    } else {
-      router.addRoute('Index', item)
-    }
-  })
-}
+// export const asyncAddRouter = () => {
+//   const globalStore = GlobalStore()
+//   globalStore.GET_Flat_Menu.forEach((item: any) => {
+//     item.children && delete item.children
+//     if (item.component && typeof item.component == 'string') {
+//       item.component = modules['/src/views' + item.component + '.vue']
+//     }
+//     if (item.meta.isFull) {
+//       router.addRoute(item)
+//     } else {
+//       router.addRoute('Index', item)
+//     }
+//   })
+// }
 
 /**
  * 初始化动态路由
@@ -49,7 +47,25 @@ export const initDynamicRouter = async () => {
       return Promise.reject('No permission')
     }
     // 3.添加动态路由
-    asyncAddRouter()
+    globalStore.GET_Flat_Menu.forEach((item: any) => {
+      item.children && delete item.children
+      if (item.component && typeof item.component == 'string') {
+        // console.log(item.component);
+
+        item.component = modules['/src/views' + item.component + '.vue']
+        // console.log(modules['/src/views' + item.component + '.vue'], modules)
+
+        // console.log(item)
+        // /src/views/home/Home.vue
+        // /src/views' + item.component + '.vue
+        // "/home/Home"
+      }
+      if (item.meta.isFull) {
+        router.addRoute(item)
+      } else {
+        router.addRoute('Index', item)
+      }
+    })
 
     // 4.最后添加 notFoundRouter
     router.addRoute(notFoundRouter)

+ 1 - 0
src/style.scss

@@ -119,4 +119,5 @@ body {
   }
 }
 
+
 @import '@/assets/iconfont.css';

+ 18 - 8
src/utils/common.ts

@@ -39,20 +39,30 @@ export const getAllBreadcrumbList = (menuList: any, result: { [key: string]: any
 }
 
 const path = {
-  account: ['/roles', '/users'],
-  salary: ['/salaryCount', '/salaryMy', '/salary'],
-  workAttendance: ['/leave', '/myLeave', '/myOvertime', '/overtime', '/recordsFinance', '/records']
+  home: ["/home"],
+  roles: ['/roles'],
+  users: ['/users'],
+  salary: ['/salary'],
+  salarys: ['/salaryCount', '/salaryMy'],
+  workAttendance: ['/leave', '/myLeave', '/myOvertime', '/overtime', '/recordsFinance'],
+  records: ['/records']
 }
 
 const permissionPath = (permission: string): string => {
-  if (path.account.includes(permission)) {
-    return '/account'
-  } else if (path.salary.includes(permission)) {
+  if (path.roles.includes(permission)) {
+    return '/account/roles'
+  } else if (path.users.includes(permission)) {
+    return '/account/users'
+  } else if (path.salarys.includes(permission)) {
     return '/salary'
-  } else if (path.workAttendance.includes(permission)) {
+  } else if (path.salary.includes(permission)) {
+    return '/salary/salary'
+  }else if (path.workAttendance.includes(permission)) {
     return '/workAttendance'
+  } else if (path.records.includes(permission)) { 
+    return '/workAttendance/records'
   }
-  return ''
+  return '/home'
 }
 
 const get_name = (name: string): string => {

+ 0 - 0
src/views/home/index.vue → src/views/home/Home.vue