Jelajahi Sumber

优化页面内嵌iframe切换tab不刷新数据

RuoYi 2 tahun lalu
induk
melakukan
9a895763d5

+ 5 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java

@@ -19,6 +19,11 @@ public class Constants
      */
     public static final String GBK = "GBK";
 
+    /**
+     * www主域
+     */
+    public static final String WWW = "www.";
+
     /**
      * http请求
      */

+ 2 - 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java

@@ -529,7 +529,7 @@ public class SysMenuServiceImpl implements ISysMenuService
      */
     public String innerLinkReplaceEach(String path)
     {
-        return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS },
-                new String[] { "", "" });
+        return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, "." },
+                new String[] { "", "", "", "/" });
     }
 }

+ 14 - 9
ruoyi-ui/src/store/modules/tagsView.js

@@ -6,11 +6,12 @@ const state = {
 
 const mutations = {
   ADD_IFRAME_VIEW: (state, view) => {
-    if (state.iframeViews.some(v => v.path === view.path)) {
-      return
-    } else {
-      state.iframeViews.push(view)
-    }
+    if (state.iframeViews.some(v => v.path === view.path)) return
+    state.iframeViews.push(
+      Object.assign({}, view, {
+        title: view.meta.title || 'no-name'
+      })
+    )
   },
   ADD_VISITED_VIEW: (state, view) => {
     if (state.visitedViews.some(v => v.path === view.path)) return
@@ -87,10 +88,12 @@ const mutations = {
       if (i > -1) {
         state.cachedViews.splice(i, 1)
       }
+      if(item.meta.link) {
+        const fi = state.iframeViews.findIndex(v => v.path === item.path)
+        state.iframeViews.splice(fi, 1)
+      }
       return false
     })
-    const iframeIndex = state.iframeViews.findIndex(v => v.path === view.path)
-    state.iframeViews = state.iframeViews.filter((item, idx) => idx <= iframeIndex)
   },
   DEL_LEFT_VIEWS: (state, view) => {
     const index = state.visitedViews.findIndex(v => v.path === view.path)
@@ -105,10 +108,12 @@ const mutations = {
       if (i > -1) {
         state.cachedViews.splice(i, 1)
       }
+      if(item.meta.link) {
+        const fi = state.iframeViews.findIndex(v => v.path === item.path)
+        state.iframeViews.splice(fi, 1)
+      }
       return false
     })
-    const iframeIndex = state.iframeViews.findIndex(v => v.path === view.path)
-    state.iframeViews = state.iframeViews.filter((item, idx) => idx >= iframeIndex)
   }
 }