Quellcode durchsuchen

fix 修复 内链iframe没有传递参数问题

疯狂的狮子Li vor 1 Jahr
Ursprung
Commit
cc326e36cc

+ 12 - 4
ruoyi-ui-vue3/src/layout/components/IframeToggle/index.vue

@@ -5,15 +5,23 @@
       :key="item.path"
       :iframeId="'iframe' + index"
       v-show="route.path === item.path"
-      :src="item.meta.link"
+      :src="iframeUrl(item.meta.link, item.query)"
     ></inner-link>
   </transition-group>
 </template>
 
 <script setup>
-import InnerLink from "../InnerLink/index"
-import useTagsViewStore from '@/store/modules/tagsView'
+import InnerLink from "../InnerLink/index";
+import useTagsViewStore from "@/store/modules/tagsView";
 
 const route = useRoute();
-const tagsViewStore = useTagsViewStore()
+const tagsViewStore = useTagsViewStore();
+
+function iframeUrl(url, query) {
+  if (Object.keys(query).length > 0) {
+    let params = Object.keys(query).map((key) => key + "=" + query[key]).join("&");
+    return url + "?" + params;
+  }
+  return url;
+}
 </script>

+ 33 - 24
ruoyi-ui/src/layout/components/IframeToggle/index.vue

@@ -1,24 +1,33 @@
-<template>
-  <transition-group name="fade-transform" mode="out-in">
-    <inner-link
-      v-for="(item, index) in iframeViews"
-      :key="item.path"
-      :iframeId="'iframe' + index"
-      v-show="$route.path === item.path"
-      :src="item.meta.link"
-    ></inner-link>
-  </transition-group>
-</template>
-
-<script>
-import InnerLink from "../InnerLink/index"
-
-export default {
-  components: { InnerLink },
-  computed: {
-    iframeViews() {
-      return this.$store.state.tagsView.iframeViews
-    }
-  }
-}
-</script>
+<template>
+  <transition-group name="fade-transform" mode="out-in">
+    <inner-link
+      v-for="(item, index) in iframeViews"
+      :key="item.path"
+      :iframeId="'iframe' + index"
+      v-show="$route.path === item.path"
+      :src="iframeUrl(item.meta.link, item.query)"
+    ></inner-link>
+  </transition-group>
+</template>
+
+<script>
+import InnerLink from "../InnerLink/index";
+
+export default {
+  components: { InnerLink },
+  computed: {
+    iframeViews() {
+      return this.$store.state.tagsView.iframeViews;
+    }
+  },
+  methods: {
+    iframeUrl(url, query) {
+      if (Object.keys(query).length > 0) {
+        let params = Object.keys(query).map((key) => key + "=" + query[key]).join("&");
+        return url + "?" + params;
+      }
+      return url;
+    }
+  }
+}
+</script>