Ver código fonte

接入登录/登出

xuexiaobo 6 anos atrás
pai
commit
2ed92b82c4
4 arquivos alterados com 51 adições e 26 exclusões
  1. 5 5
      package-lock.json
  2. 26 8
      src/components/commons/Header.vue
  3. 1 0
      src/js/api.js
  4. 19 13
      src/js/index.js

+ 5 - 5
package-lock.json

@@ -538,7 +538,7 @@
     },
     "axios": {
       "version": "0.19.0",
-      "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.19.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.19.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.19.0.tgz",
       "integrity": "sha1-jgm/89kSLhM/e4EByPvdAO09Krg=",
       "requires": {
         "follow-redirects": "1.5.10",
@@ -547,7 +547,7 @@
       "dependencies": {
         "debug": {
           "version": "3.1.0",
-          "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz",
           "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
           "requires": {
             "ms": "2.0.0"
@@ -555,7 +555,7 @@
         },
         "follow-redirects": {
           "version": "1.5.10",
-          "resolved": "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz",
+          "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz",
           "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=",
           "requires": {
             "debug": "=3.1.0"
@@ -563,7 +563,7 @@
         },
         "is-buffer": {
           "version": "2.0.3",
-          "resolved": "http://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.3.tgz",
+          "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.3.tgz",
           "integrity": "sha1-Ts8/z3ScvR5HJonhCaxmJhol5yU="
         }
       }
@@ -6899,7 +6899,7 @@
     },
     "normalize-wheel": {
       "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
+      "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
       "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
     },
     "npm-run-path": {

+ 26 - 8
src/components/commons/Header.vue

@@ -35,12 +35,16 @@
             </router-link>
           </li>
           <li class="dropdown nav-item">
-            <router-link to="/mine">
+            <router-link v-if="isLogin" to="/mine">
               <a class="dropdown-toggle nav-link" data-toggle="dropdown">
                 <img class="icon" src="@/assets/img/mine_icon.svg">
                 <span>我的众测</span>
               </a>
             </router-link>
+              <a v-if="!isLogin" class="dropdown-toggle nav-link" data-toggle="dropdown" href="http://user.mooctest.net:8081/page/login?redirect=http%3a%2f%2fcrowd.mooctest.net%2f%23%2fmine">
+                <img class="icon" src="@/assets/img/mine_icon.svg">
+                <span>登录</span>
+              </a>
             <div class="dropdown-menu dropdown-with-icons">
               <a href="./sections.html#headers" class="dropdown-item">
                 <i class="material-icons"></i> Headers
@@ -50,14 +54,20 @@
               </a>
             </div>
           </li>
+          <li>
+            <a v-if="isLogin" class="dropdown-toggle nav-link" data-toggle="dropdown" href="#" @click="userLogout()">
+              <span>登出</span>
+            </a>
+          </li>
         </ul>
       </div>
     </div>
+    
   </nav>
 </template>
 
 <script>
-import {getCurrentUser, storageGet, storageSave} from '@/js/index'
+import {getCurrentUser, storageGet, storageSave, logout} from '@/js/index'
 import {notify} from '@/constants/index'
 
 export default {
@@ -66,8 +76,14 @@ export default {
     return {
       openNavBar: false,
       userIdentity: '',
+      isLogin: false
     }
   },
+  mounted () {
+    this.$nextTick(() => {
+      this.setUserInfo()
+    })
+  },
   methods: {
     openNavBarFunc () {
       this.openNavBar = !this.openNavBar
@@ -76,21 +92,23 @@ export default {
       if (storageGet('user') == null) {
         getCurrentUser().then((res) => {
           storageSave('user', res)
+          this.isLogin = true;
         }).catch(error => {
           console.log(error)
           if (error.status == 401) {
-            notify('error', error.data)
+            notify('warning', error.data)
           } else {
             notify('error', error.data)
           }
         })
+      } else {
+        this.isLogin = true;
       }
     },
-  },
-  mounted () {
-    this.$nextTick(() => {
-      this.setUserInfo()
-    })
+    userLogout(){
+      logout()
+      this.isLogin = false
+    }
   },
 }
 </script>

+ 1 - 0
src/js/api.js

@@ -42,6 +42,7 @@ export default {
     GET_CURRENT_USER: '/api/common/currentUser/',
     GET_USER_IDENTITY: '',
     GET_AUTH_URLS: '',
+    LOGOUT: '/api/common/logout',
     SUBMIT_INDIVIDUAL_AUTHENTICATION_INFO: '/api/user/{userId}/individual/',
     SUBMIT_ENTERPRISE_AUTHENTICATION_INFO: '/api/user/{userId}/enterprise/',
     SUBMIT_AGENCY_AUTHENTICATION_INFO: '/api/user/{userId}/agency/'

+ 19 - 13
src/js/index.js

@@ -1,6 +1,7 @@
 import Http from './http'
 import Apis from './api'
 import ProvinceJson from '../constants/provinceCity'
+import http from './http';
 
 //存session
 export const storageSave = (key, value) => {
@@ -19,19 +20,24 @@ export const getUserIdentity = () => {
 
 //获取用户信息
 export const getCurrentUser = () => {
-  const data = {
-    userVO: {
-      id: 3,
-      name: '郭超',
-      mobile: '110',
-      email: '12345@qq.com',
-    },
-    agency: '',
-  }
-  return new Promise((resolve) => {
-    resolve(data)
-  })
-  //return Http.get(Apis.USER.GET_CURRENT_USER)
+  // const data = {
+  //   userVO: {
+  //     id: 3,
+  //     name: '郭超',
+  //     mobile: '110',
+  //     email: '12345@qq.com',
+  //   },
+  //   agency: '',
+  // }
+  // return new Promise((resolve) => {
+  //   resolve(data)
+  // })
+  return Http.get(Apis.USER.GET_CURRENT_USER)
+}
+
+export const logout = () => {
+  sessionStorage.removeItem('user')
+  return Http.get(Apis.USER.LOGOUT)
 }
 
 //上传文档