Procházet zdrojové kódy

v3.8.4:优化页面内嵌iframe切换tab不刷新数据

YunaiV před 2 roky
rodič
revize
38d6b51fcc

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
yudao-ui-admin/src/assets/icons/svg/map.svg


+ 24 - 0
yudao-ui-admin/src/layout/components/IframeToggle/index.vue

@@ -0,0 +1,24 @@
+<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.vue"
+
+export default {
+  components: { InnerLink },
+  computed: {
+    iframeViews() {
+      return this.$store.state.tagsView.iframeViews
+    }
+  }
+}
+</script>

+ 47 - 0
yudao-ui-admin/src/layout/components/InnerLink/index.vue

@@ -0,0 +1,47 @@
+<template>
+  <div :style="'height:' + height" v-loading="loading" element-loading-text="正在加载页面,请稍候!">
+    <iframe
+        :id="iframeId"
+        style="width: 100%; height: 100%"
+        :src="src"
+        frameborder="no"
+    ></iframe>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    src: {
+      type: String,
+      default: "/"
+    },
+    iframeId: {
+      type: String
+    }
+  },
+  data() {
+    return {
+      loading: false,
+      height: document.documentElement.clientHeight - 94.5 + "px;"
+    };
+  },
+  mounted() {
+    var _this = this;
+    const iframeId = ("#" + this.iframeId).replace(/\//g, "\\/");
+    const iframe = document.querySelector(iframeId);
+    // iframe页面loading控制
+    if (iframe.attachEvent) {
+      this.loading = true;
+      iframe.attachEvent("onload", function () {
+        _this.loading = false;
+      });
+    } else {
+      this.loading = true;
+      iframe.onload = function () {
+        _this.loading = false;
+      };
+    }
+  }
+};
+</script>

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů