6 changed files with 110 additions and 35 deletions
@ -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" |
|||
|
|||
export default { |
|||
components: { InnerLink }, |
|||
computed: { |
|||
iframeViews() { |
|||
return this.$store.state.tagsView.iframeViews |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,27 +1,47 @@ |
|||
<script> |
|||
export default { |
|||
data() { |
|||
return {}; |
|||
}, |
|||
render() { |
|||
const { $route: { meta: { link } }, } = this; |
|||
if ({ link }.link === "") { |
|||
return "404"; |
|||
} |
|||
let url = { link }.link; |
|||
const height = document.documentElement.clientHeight - 94.5 + "px"; |
|||
const style = { height: height }; |
|||
|
|||
return ( |
|||
<div style={style}> |
|||
<template> |
|||
<div :style="'height:' + height" v-loading="loading" element-loading-text="正在加载页面,请稍候!"> |
|||
<iframe |
|||
src={url} |
|||
frameborder="no" |
|||
:id="iframeId" |
|||
style="width: 100%; height: 100%" |
|||
scrolling="auto" |
|||
: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> |
|||
|
Loading…
Reference in new issue