晓晓晓晓丶vv 4 år sedan
förälder
incheckning
7e010818d5
3 ändrade filer med 35 tillägg och 4 borttagningar
  1. 7 0
      src/api/index.ts
  2. 20 1
      src/layout/components/AppHeaderUser.vue
  3. 8 3
      src/views/put/put-book.vue

+ 7 - 0
src/api/index.ts

@@ -122,3 +122,10 @@ export const addDeliveryBook = (data: {
 }) => {
   return axios.post("/addDeliveryBook", data);
 };
+
+/**
+ * 退出登录
+ */
+export const logout = () => {
+  return axios("/logout");
+};

+ 20 - 1
src/layout/components/AppHeaderUser.vue

@@ -2,7 +2,8 @@
   <a-popover trigger="click">
     <template v-slot:content>
       <div class="setting-group">
-        <p class="cursor">
+        <p class="cursor"
+           @click="onLogout">
           <PoweroffOutlined />安全退出
         </p>
       </div>
@@ -22,6 +23,9 @@ import {
   CaretDownFilled,
   PoweroffOutlined,
 } from "@ant-design/icons-vue";
+import useApp from "@/hooks/useApp";
+import { logout } from "@/api";
+import { MutationType } from "@/store/modules/app/_type";
 
 const AppHeaderUser = defineComponent({
   components: {
@@ -32,6 +36,21 @@ const AppHeaderUser = defineComponent({
   props: {
     name: String,
   },
+  setup() {
+    const { store, router } = useApp();
+
+    const onLogout = async () => {
+      try {
+        await logout();
+        store.commit(MutationType.setUser, {});
+        router.replace("/login");
+      } catch (error) {
+        console.log("logout error");
+      }
+    };
+
+    return { onLogout };
+  },
 });
 
 export default AppHeaderUser;

+ 8 - 3
src/views/put/put-book.vue

@@ -16,8 +16,9 @@
     <!-- 添加 -->
     <a-modal title="投放书籍添加"
              width="400px"
-             :confirm-loading="addFormState.inConfirm"
              v-model:visible="open"
+             :confirm-loading="addFormState.inConfirm"
+             :after-close="onReset"
              @ok="onAdd">
       <a-form :model="addFormState"
               :labelCol="labelCol"
@@ -71,11 +72,11 @@ import useApp from "@/hooks/useApp";
 import usePagination from "@/hooks/usePagination";
 import useFormLayout from "@/hooks/useFormLayout";
 import useDebounceFn from "@/hooks/useDebounceFn";
+import useValidate from "@/hooks/useValidate";
 
 import { getDeliveryBookList, getBooksByName, addDeliveryBook } from "@/api";
 import { TableColumnOfPutBooks } from "../_pageOptions/table-put";
 import { IBookSearchResult, IDeliveryBook } from "@/types/api";
-import useValidate from "../../hooks/useValidate";
 
 const PutBooks = defineComponent({
   components: {
@@ -129,7 +130,6 @@ const PutBooks = defineComponent({
     }, 500);
 
     const onBookCheck = (value: number, options: any) => {
-      console.log(value, options);
       addFormState.book = options.key;
     };
 
@@ -168,6 +168,11 @@ const PutBooks = defineComponent({
         this.addFormState.inConfirm = false;
       }
     },
+    onReset() {
+      this.addFormState.official_id = "";
+      this.addFormState.platform = "";
+      this.addFormState.book = {};
+    },
   },
 });