소스 검색

一级域名保持登录状态

liutian 2 년 전
부모
커밋
65949666b6
5개의 변경된 파일19개의 추가작업 그리고 15개의 파일을 삭제
  1. 9 2
      src/components/progress/Progress.vue
  2. 0 1
      src/router/index.ts
  3. 4 2
      src/store/loginStore.ts
  4. 1 4
      src/views/login.vue
  5. 5 6
      src/views/projects/dashboard.vue

+ 9 - 2
src/components/progress/Progress.vue

@@ -17,11 +17,16 @@
 </template>
 
 <script lang="ts">
-import { Vue, Component } from 'vue-property-decorator'
+import { Vue, Component, Prop } from 'vue-property-decorator'
 import { getPackageBalance } from '@/request/api'
 
 @Component
 export default class Progress extends Vue {
+  @Prop() init!: {
+    type: boolean,
+    default: true
+  }
+
   // inject: ['reload'], // 注入App里的reload方法
   usedAmount = 0
   totalAmount = 0
@@ -29,7 +34,9 @@ export default class Progress extends Vue {
   isShow = true
 
   created () {
-    this.getFileAmount()
+    if (this.init) {
+      this.getFileAmount()
+    }
   }
 
   refresh () {

+ 0 - 1
src/router/index.ts

@@ -127,7 +127,6 @@ router.beforeEach(async (to, from, next) => {
     if (from.path === '/login' && user) {
       next()
     } else {
-      debugger
       if (user) {
         next()
       } else {

+ 4 - 2
src/store/loginStore.ts

@@ -1,8 +1,7 @@
 import { defineStore } from 'pinia'
 import Cookie from 'js-cookie'
-import { getUserInfo } from '@/request/api'
 
-const rawUser = localStorage.getItem('user')
+const rawUser = Cookie.get('user')
 const user = rawUser && JSON.parse(rawUser)
 export const loginStore = defineStore('login', {
   state: () => ({
@@ -33,6 +32,7 @@ export const loginStore = defineStore('login', {
     setUser (user: any) {
       if (user) {
         this.user = user
+        Cookie.set('user', JSON.stringify(user), { expires: 14 })
       } else {
         this.user = {
           name: ''
@@ -42,7 +42,9 @@ export const loginStore = defineStore('login', {
     // 清除token
     clearToken () {
       this.token = ''
+      this.user = null
       Cookie.remove('access_token')
+      Cookie.remove('user')
     }
   }
 })

+ 1 - 4
src/views/login.vue

@@ -43,6 +43,7 @@
 
 <script lang="ts">
 import { Vue, Component, Watch } from 'vue-property-decorator'
+import Cookie from 'js-cookie'
 import { loginStore } from '@/store/loginStore'
 import { apiLogin, getUserInfo } from '@/request/api'
 import crypto from '@/crypto/crypto'
@@ -125,10 +126,6 @@ export default class Login extends Vue {
         getUserInfo({}).then((res: any) => {
           if (res.code === 200) {
             loginStore().setAuth(true)
-            localStorage.setItem('user', JSON.stringify({
-              email: this.ruleForm.email,
-              name: res.data.full_name
-            }))
             loginStore().setUser({
               email: this.ruleForm.email,
               name: res.data.full_name

+ 5 - 6
src/views/projects/dashboard.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="dashboard container">
     <h1>Dashboard</h1>
-    <Progress class="process"></Progress>
+    <Progress ref="progress" class="process" :init="false" />
     <div class="board block">
       <div class="top-select">
         <ul class="select-time">
@@ -180,11 +180,10 @@ export default class dashBoard extends Vue {
   showCalender = false
   userFirstLogin = ''
 
-  created () {
-    this.getProjectsList()
-    this.getToolsList()
-    this.getFourAnalysisData()
-    this.getChartsData(1)
+  async created () {
+    await Promise.all([this.getProjectsList(), this.getToolsList(), this.getFourAnalysisData(), this.getChartsData(1)])
+    const el = this.$refs.progress as any
+    el && el.getFileAmount()
     this.getFirstLoginTime()
   }