|
@@ -2,6 +2,7 @@
|
|
|
<section v-if="bizId !== -1" v-loading="loading" class="case-main">
|
|
|
<iframe
|
|
|
id="useCaseIframe"
|
|
|
+ :class="{ 'full-screen': fullScreen}"
|
|
|
frameborder="0"
|
|
|
scrolling="no"
|
|
|
:src="src"
|
|
@@ -18,7 +19,8 @@ export default {
|
|
|
return {
|
|
|
ifr: null,
|
|
|
srcHost: '/case/caseList/zhihui/',
|
|
|
- loading: true
|
|
|
+ loading: true,
|
|
|
+ fullScreen: false, // 是否全屏
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -30,7 +32,7 @@ export default {
|
|
|
: getEnv() === 'pre'
|
|
|
? 'http://agiletc-pre.intra.xiaojukeji.com/#'
|
|
|
: 'http://agiletc.intra.xiaojukeji.com/#'
|
|
|
- const src = `${host}${this.srcHost}${encodeURIComponent(bizId)}`
|
|
|
+ const src = `${host}${this.$route.query.detailCaseUrl?'/case/caseManager/zhihui/' : this.srcHost }${ this.$route.query.detailCaseUrl || encodeURIComponent(bizId)}`
|
|
|
return src
|
|
|
}
|
|
|
},
|
|
@@ -49,6 +51,26 @@ export default {
|
|
|
this.loading = false
|
|
|
this.loaded()
|
|
|
}
|
|
|
+ if(e.data && e.data.event){
|
|
|
+ const { event, payload } = e.data;
|
|
|
+ const { href, hash } = window.location;
|
|
|
+ // 链接跳转时发送message的data
|
|
|
+ if (event === 'case-link') {
|
|
|
+ const detailCaseUrl = payload.url.replace(/http.*zhihui\//, ''); // 截取 iframe 传递过来的页面地址
|
|
|
+ if(detailCaseUrl.search(/http/) > -1) return; // 字符串截取失败终止
|
|
|
+ let websiteUrl = `${ href }&detailCaseUrl=${encodeURIComponent(detailCaseUrl)}`; // 新的页面地址
|
|
|
+ // 如果当前打开页面地址是已分享地址,则将原有的 detailCaseUrl 值替换
|
|
|
+ if (hash.search(/detailCaseUrl/) > -1) {
|
|
|
+ websiteUrl = href.replace(/detailCaseUrl=.*/,`detailCaseUrl=${encodeURIComponent(detailCaseUrl)}`);
|
|
|
+ }
|
|
|
+ // 改变浏览器历史URL
|
|
|
+ window.history.pushState({url: websiteUrl, title: document.title}, document.title, websiteUrl)
|
|
|
+ }
|
|
|
+ // 全屏操作时发送message的data
|
|
|
+ if (event === 'case-operations') {
|
|
|
+ this.fullScreen = payload.fullScreen
|
|
|
+ }
|
|
|
+ }
|
|
|
}, false)
|
|
|
},
|
|
|
beforeDestroy() {
|
|
@@ -77,4 +99,13 @@ export default {
|
|
|
width: 100%;
|
|
|
height: 100vh;
|
|
|
}
|
|
|
+.full-screen {
|
|
|
+ position: fixed;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ top: 0;
|
|
|
+ bottom: 0;
|
|
|
+ z-index: 999;
|
|
|
+}
|
|
|
+
|
|
|
</style>
|