diff --git a/src/components/Icon/icon.vue b/src/components/Icon/icon.vue
index faa6240293589eca458a1d867c9ef06f34eb0d7f..ea7c620b85b2c7b110a7f7c630d57c33ca1c088e 100644
--- a/src/components/Icon/icon.vue
+++ b/src/components/Icon/icon.vue
@@ -32,8 +32,8 @@ export default {
   created() {},
   mounted() {},
   methods: {
-    clickEvent() {
-      this.$emit("click");
+    clickEvent(e) {
+      this.$emit("click", e);
     },
   },
 };
diff --git a/src/views/layout/components/Header.vue b/src/views/layout/components/Header.vue
index 0bec8dcd958ce6a0287c77c5092dec92c7fd765d..ae959624225914457a40907194001be98450c913 100644
--- a/src/views/layout/components/Header.vue
+++ b/src/views/layout/components/Header.vue
@@ -44,6 +44,7 @@ export default {
     loginOut() {
       this.$apis.LOGINOUT().then((res) => {
         if (res.returnCode) {
+          this.$store.commit("common/setMenuStack", []);
           this.$router.push("/login");
         } else {
           this.$message.error(res.returnMsg || "退出失败");
diff --git a/src/views/layout/components/menu/subMenu.vue b/src/views/layout/components/menu/subMenu.vue
index e3cc3219ab8fe5c39b6f3513ce750ac9145a5587..32ed6f914e03af9745ac937828b39fae81236f7a 100644
--- a/src/views/layout/components/menu/subMenu.vue
+++ b/src/views/layout/components/menu/subMenu.vue
@@ -8,8 +8,8 @@
       :to="item.path"
     >
       {{ item.title }}
-      <Icon
-        @click="closeMenu(index)"
+      <Icon v-if="menuStack.length>1"
+        @click="(e)=>closeMenu(e, index)"
         :name="isVisit(item.path) ? 'ssiclose_active' : 'ssiclose'"
         :size="16"
       />
@@ -31,7 +31,8 @@ export default {
       const path = this.$route.path;
       return path === val;
     },
-    closeMenu(index) {
+    closeMenu(e, index) {
+      e.stopPropagation();
       const menuStack = JSON.parse(JSON.stringify(this.menuStack));
       const isVisit = this.isVisit(menuStack[index].path);
       menuStack.splice(index, 1);