Explorar o código

perf: 调整退出登录方法的操作方式

zhupei@smartai.com hai 1 ano
pai
achega
19bff1b08a
Modificáronse 2 ficheiros con 38 adicións e 10 borrados
  1. 19 0
      src/views/account/use-logout.js
  2. 19 10
      src/views/common/header-btns/ModalLogout.vue

+ 19 - 0
src/views/account/use-logout.js

@@ -0,0 +1,19 @@
+import { useRouter } from 'vue-router';
+import { kuky_Authorization } from '../../base/storage';
+import { resetHasRouteFlag } from '../../router';
+
+/**
+ * 退出登录的方法
+ * @returns
+ */
+export default function useLogout() {
+  const router = useRouter();
+
+  return () => {
+    kuky_Authorization.remove();
+
+    // 重置路由守卫标志位
+    resetHasRouteFlag();
+    router.push({ path: '/login', replace: true });
+  };
+}

+ 19 - 10
src/views/common/header-btns/ModalLogout.vue

@@ -1,6 +1,13 @@
 <template>
-  <a-modal width="420px" :visible="showModal" @ok="handleOk" @cancel="handleCancel" :okText="$t('login.okBtn')"
-    :cancelText="$t('login.cancelBtn')" unmountOnClose>
+  <a-modal
+    width="420px"
+    :visible="showModal"
+    @ok="handleOk"
+    @cancel="handleCancel"
+    :okText="$t('login.okBtn')"
+    :cancelText="$t('login.cancelBtn')"
+    unmountOnClose
+  >
     <template #title><icon-exclamation-circle-fill class="tips-icon" /> {{ $t('login.tip') }} </template>
     <div>{{ $t('login.okText') }}</div>
   </a-modal>
@@ -8,9 +15,12 @@
 
 <script setup>
 import { computed } from 'vue';
-import { useRouter } from 'vue-router';
-import { kuky_Authorization } from '../../../base/storage';
-import { resetHasRouteFlag } from '../../../router';
+// import { useRouter } from 'vue-router';
+// import { kuky_Authorization } from '../../../base/storage';
+// import { resetHasRouteFlag } from '../../../router';
+
+import useLogout from '../../account/use-logout';
+
 const props = defineProps({
   visible: {
     type: Boolean,
@@ -18,15 +28,14 @@ const props = defineProps({
   }
 });
 const emit = defineEmits(['update:visible']);
-const router = useRouter();
+// const router = useRouter();
 const showModal = computed(() => props.visible);
 
+const logout = useLogout();
+
 const handleOk = () => {
-  kuky_Authorization.remove();
+  logout();
 
-  // 重置路由守卫标志位
-  resetHasRouteFlag();
-  router.push({ path: '/login', replace: true });
   emit('update:visible', false);
 };
 const handleCancel = () => {