Browse Source

修复内链iframe没有传递参数问题(I8DUOJ)

RuoYi 1 year ago
parent
commit
46da1d5ed1
2 changed files with 13 additions and 5 deletions
  1. 12 4
      src/layout/components/IframeToggle/index.vue
  2. 1 1
      src/layout/index.vue

+ 12 - 4
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>

+ 1 - 1
src/layout/index.vue

@@ -9,7 +9,7 @@
       </div>
       <app-main />
       <settings ref="settingRef" />
-    </div> 
+    </div>
   </div>
 </template>