Forráskód Böngészése

增加功能:关闭当前页面

jiawuxian 2 éve
szülő
commit
6f61304460

+ 46 - 26
src/plugins/tab.js

@@ -1,5 +1,5 @@
-import store from '@/store'
-import router from '@/router';
+import store from "@/store";
+import router from "@/router";
 
 export default {
   // 刷新当前tab页签
@@ -8,19 +8,19 @@ export default {
     if (obj === undefined) {
       matched.forEach((m) => {
         if (m.components && m.components.default && m.components.default.name) {
-          if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
+          if (!["Layout", "ParentView"].includes(m.components.default.name)) {
             obj = { name: m.components.default.name, path: path, query: query };
           }
         }
       });
     }
-    return store.dispatch('tagsView/delCachedView', obj).then(() => {
-      const { path, query } = obj
+    return store.dispatch("tagsView/delCachedView", obj).then(() => {
+      const { path, query } = obj;
       router.replace({
-        path: '/redirect' + path,
-        query: query
-      })
-    })
+        path: "/redirect" + path,
+        query: query,
+      });
+    });
   },
   // 关闭当前tab页签,打开新页签
   closeOpenPage(obj) {
@@ -32,40 +32,60 @@ export default {
   // 关闭指定tab页签
   closePage(obj) {
     if (obj === undefined) {
-      return store.dispatch('tagsView/delView', router.currentRoute).then(({ visitedViews }) => {
-        const latestView = visitedViews.slice(-1)[0]
-        if (latestView) {
-            return router.push(latestView.fullPath)
-        }
-        return router.push('/');
-      });
+      return store
+        .dispatch("tagsView/delView", router.currentRoute)
+        .then(({ visitedViews }) => {
+          const latestView = visitedViews.slice(-1)[0];
+          if (latestView) {
+            return router.push(latestView.fullPath);
+          }
+          return router.push("/");
+        });
     }
-    return store.dispatch('tagsView/delView', obj);
+
+    return store.dispatch("tagsView/delView", obj);
+  },
+  closePageAndPushPrev(obj) {
+    if (obj === undefined) {
+      obj = router.currentRoute;
+    }
+
+    return store.dispatch("tagsView/delView", obj).then(({ visitedViews }) => {
+      //因为首页一直会存在
+      if (visitedViews.length === 1) {
+        return router.push("/home");
+      }
+
+      router.go(-1);
+    });
   },
   // 关闭所有tab页签
   closeAllPage() {
-    return store.dispatch('tagsView/delAllViews');
+    return store.dispatch("tagsView/delAllViews");
   },
   // 关闭左侧tab页签
   closeLeftPage(obj) {
-    return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute);
+    return store.dispatch("tagsView/delLeftTags", obj || router.currentRoute);
   },
   // 关闭右侧tab页签
   closeRightPage(obj) {
-    return store.dispatch('tagsView/delRightTags', obj || router.currentRoute);
+    return store.dispatch("tagsView/delRightTags", obj || router.currentRoute);
   },
   // 关闭其他tab页签
   closeOtherPage(obj) {
-    return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute);
+    return store.dispatch(
+      "tagsView/delOthersViews",
+      obj || router.currentRoute
+    );
   },
   // 添加tab页签
   openPage(title, url, params) {
-    var obj = { path: url, meta: { title: title } }
-    store.dispatch('tagsView/addView', obj);
+    var obj = { path: url, meta: { title: title } };
+    store.dispatch("tagsView/addView", obj);
     return router.push({ path: url, query: params });
   },
   // 修改tab页签
   updatePage(obj) {
-    return store.dispatch('tagsView/updateVisitedView', obj);
-  }
-}
+    return store.dispatch("tagsView/updateVisitedView", obj);
+  },
+};

+ 4 - 1
src/views/safetycheck/taskManager/components/register.vue

@@ -153,7 +153,7 @@
     </div>
 
     <div class="dialog-footer">
-      <el-button>关闭</el-button>
+      <el-button @click="onClose">关闭</el-button>
       <el-button
         @click="onGrant"
         v-if="showGrantBtn"
@@ -320,6 +320,9 @@ export default {
         this.$message.info("没有可新增的检查内容");
       }
     },
+    onClose(){
+      this.$tab.closePageAndPushPrev();
+    },
     onDeletePoint(area, item, point) {
       if (point.isAdd === 0) {
         this.$message.warning("不可删除计划的检查内容");