Browse Source

feat: save

gemercheung 1 year ago
parent
commit
adc50ff83b
2 changed files with 26 additions and 18 deletions
  1. 3 3
      src/store/user.ts
  2. 23 15
      src/view/layout/nav.vue

+ 3 - 3
src/store/user.ts

@@ -25,9 +25,9 @@ export const login = async (props: LoginProps) => {
   await getUserInfo();
 };
 
-export const logout = async () => {
-  await loginOutFetch();
-  localStorage.removeItem("token");
+export const logout = async (isLogin = false) => {
+  isLogin && await loginOutFetch();
+  isLogin && localStorage.removeItem("token");
   userStatus.value = UserStatus.NOT_LOGIN;
 };
 

+ 23 - 15
src/view/layout/nav.vue

@@ -2,7 +2,13 @@
   <div class="main-layout">
     <div class="header" :class="{ [name]: true }">
       <span class="title-span">
-        <el-button :icon="Back" circle type="primary" @click="router.back()" v-if="showBack" />
+        <el-button
+          :icon="Back"
+          circle
+          type="primary"
+          @click="router.back()"
+          v-if="showBack"
+        />
         <span v-if="!name">不可移动文物管理平台</span>
       </span>
       <el-dropdown placement="bottom-end" class="avatar" v-if="user">
@@ -13,7 +19,9 @@
         </span>
         <template #dropdown>
           <el-dropdown-menu>
-            <el-dropdown-item @click="passwordHandler">修改密码</el-dropdown-item>
+            <el-dropdown-item @click="passwordHandler"
+              >修改密码</el-dropdown-item
+            >
             <el-dropdown-item @click="logoutHandler">退出登录</el-dropdown-item>
           </el-dropdown-menu>
         </template>
@@ -41,22 +49,21 @@ import { errorHook } from "@/request/state";
 import lySlide from "./slide/index.vue";
 import { usersPasswordEdit } from "@/view/quisk";
 import avatarDefault from "@/assets/avatar.png";
-import {
-  UserType,
-  changePassword,
-} from "@/request";
-
+import { UserType, changePassword } from "@/request";
 
 const name = computed(() => router.currentRoute.value.meta?.navClass as string);
 const routeName = computed(() => router.currentRoute.value.name as string);
+let isLogout = false;
 const logoutHandler = () => {
-  logout();
+  if (!isLogout) {
+    logout(true);
+    isLogout = true;
+  }
   router.replace({ name: "login" });
 };
 const passwordHandler = async () => {
-
   const userObj = reactive<UserType>({
-    orgName: '',
+    orgName: "",
     createBy: "",
     createTime: "",
     fdkkId: 0,
@@ -69,16 +76,17 @@ const passwordHandler = async () => {
     updateTime: "",
     userId: 0,
     userName: "",
-    roleNames: ""
-  })
+    roleNames: "",
+  });
   const userinfo = {
     ...userObj,
     ...user.value,
     phoneNum: user.value.userName,
   } as any as UserType;
-  console.log('passwordHandler', userinfo)
+  console.log("passwordHandler", userinfo);
   await usersPasswordEdit({
-    user: userinfo, submit: changePassword
+    user: userinfo,
+    submit: changePassword,
   });
 };
 errorHook.push((code) => {
@@ -184,7 +192,7 @@ const showBack = computed(() => {
   display: flex;
   align-items: center;
 
-  >span {
+  > span {
     margin-left: 10px;
   }
 }