Commit 6376d304 authored by yht15023815643's avatar yht15023815643

跳转详情优化

parent 7db30f11
...@@ -130,20 +130,6 @@ export const constantRoutes = [ ...@@ -130,20 +130,6 @@ export const constantRoutes = [
} }
] ]
}, },
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/gzsc/:id',
component: () => import('@/views/market/detail'),
name: 'GzscDetail',
meta: { title: '公招市场详情', icon: 'enterprise'},
}
]
},
{ {
path: '/groupAccount', path: '/groupAccount',
component: Layout, component: Layout,
...@@ -173,6 +159,7 @@ export const constantRoutes = [ ...@@ -173,6 +159,7 @@ export const constantRoutes = [
} }
] ]
}, },
//企业详情
{ {
path: '/company', path: '/company',
component: Layout, component: Layout,
...@@ -181,12 +168,13 @@ export const constantRoutes = [ ...@@ -181,12 +168,13 @@ export const constantRoutes = [
children: [ children: [
{ {
path: '/company/:id', path: '/company/:id',
component: () => import('@/views/detail/party-b/index'), component: () => import('@/views/detail'),
name: 'Company', name: 'Company',
meta: { title: '企业详情' } meta: { title: '企业详情' }
} }
] ]
}, },
//人员详情
{ {
path: '/personnel', path: '/personnel',
component: Layout, component: Layout,
...@@ -194,13 +182,40 @@ export const constantRoutes = [ ...@@ -194,13 +182,40 @@ export const constantRoutes = [
redirect: 'noredirect', redirect: 'noredirect',
children: [ children: [
{ {
path: '/personnel/:id', path: '/personnel/:id.html',
component: () => import('@/views/detail/party-b/index'), component: () => import('@/views/detail'),
name: 'Personnel', name: 'Personnel',
meta: { title: '人员详情' } meta: { title: '人员详情' }
} }
] ]
}, },
//公招市场详情
{
path: '/gzsc',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/gzsc/:id',
component: () => import('@/views/detail'),
name: 'detail-gzsc',
}
]
},
//中标业绩详情
{
path: '',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/performance/zb/:id.html',
component: () => import('@/views/detail'),
}
]
},
{ {
path: '/structure', path: '/structure',
component: Layout, component: Layout,
...@@ -362,8 +377,6 @@ export const constantRoutes = [ ...@@ -362,8 +377,6 @@ export const constantRoutes = [
] ]
}, },
] ]
// 动态路由,基于用户权限动态去加载 // 动态路由,基于用户权限动态去加载
......
<template>
<div v-loading="loading" class="market-container">
<iframe id="companyIframe" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" width="100%" :style="{height:iframeHight+'px'}"
:src="src" />
</div>
</template>
<script>
import { steerScroll } from '@/assets/js/jskplug';
import { dskAccessToken } from '@/api/common';
export default {
name: 'Enterprise',
components: {
},
data() {
return {
loading: false, // 是否加载完成-当前页控制
iframeTimer: '', // 是否加载中定时器-当前页控制
footHeight: 0, //底部高度,若为0(页面内部嵌套或者没有底部板块)
iframeHight: window.innerHeight, // iframe高度-当前页控制
navigation: { isFixed: true, fixedHeight: 56, totalHeight: 68 }, // iframe之外页面顶部对象,ifFixed:是否浮动;fixedHeight:浮动对象高度;totalHeight:顶部整体高度
src: '', //iframe嵌套页面地址
// domain: 'https://plug.jiansheku.com', // 插件地址
domain: 'https://pre-plug.jiansheku.com', // 插件地址测试
// domain: 'http://192.168.60.210:3400',
ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912', // 需要携带的sdkId
timelongs: 7200,//刷新token时间
tokentimer: null,
};
},
created() {
if(window.location.host === 'http://szh.jiansheku.com' || window.location.host === 'szh.jiansheku.com'){
this.domain='https://plug.jiansheku.com'
}else {
this.domain='https://pre-plug.jiansheku.com'
// this.domain='http://192.168.60.210:3400'
}
this.gettokens();
},
mounted() {
this.iframeLoading(); // 判断iframe页面是否加载完成-当前页控制
let that = this
window.addEventListener('message', function (event) {
if(event.data.url){
that.$tab.openPage(event.data.title, event.data.url).then(() => {
// 执行结束的逻辑
})
}
}, false);
steerScroll('companyIframe', this.navigation, this.footHeight, true); // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
},
beforeDestroy() {
clearInterval(this.iframeTimer); // -当前页控制
steerScroll('companyIframe', this.navigation, this.footHeight); // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
clearInterval(this.tokentimer);
},
methods: {
gettokens() {
dskAccessToken().then(res => {
if (res.code == 200) {
this.timelongs = res.data.expire;
this.ak = res.data.accessToken;
let initTime = new Date().getTime()
if(window.location.search){
this.src = `${this.domain+this.$route.fullPath}&ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
}else{
this.src = `${this.domain+this.$route.fullPath}?ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
}
// if(window.location.search){
// this.src = `${this.domain+this.$route.fullPath}&ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
// }else{
// this.src = `${this.domain+this.$route.fullPath}?ak=${this.ak}&initTime=${initTime}&uid=${this.ak}&origin=${window.location.origin}`
// }
// }else{ //更新iframe地址的accessToken
// let ifam = document.getElementById('companyIframe')
// ifam.contentWindow.postMessage({ 'accessToken': this.ak, 'initTime': initTime }, '*')
// }
this.refreshtoken();
} else {
clearTimeout(this.tokentimer);
}
});
},
refreshtoken() {
this.tokentimer = setTimeout(() => {
dskAccessToken().then(res => {
if (res.code == 200) {
this.timelongs = res.data.expire;
this.ak = res.data.accessToken;
let ifam = document.getElementById('companyIframe'); //iframe的id
let akObj = res.data.expire; //accessToken接口的返回值
let initTime = new Date().getTime(); //accessToken接口返回后的当前时间戳
ifam.contentWindow.postMessage({ 'accessToken': akObj.accessToken, 'initTime': initTime }, '*');
} else {
clearTimeout(this.tokentimer);
}
});
}, this.timelongs * 1000);
},
//判断iframe页面是否加载完成-当前页控制
iframeLoading() {
let iframeHeight = document.getElementById("companyIframe").clientHeight, number = 0;
this.iframeTimer = setInterval(() => {
number++;
if (document.getElementById("companyIframe").clientHeight != iframeHeight || number == 5000) {
this.loading = false;
clearInterval(this.iframeTimer);
}
});
}
}
}
</script>
<style lang="scss" scoped>
.market-container {
width: 100%;
height: 100%;
padding: 16px 24px;
box-sizing: border-box;
}
</style>
...@@ -41,11 +41,19 @@ export default { ...@@ -41,11 +41,19 @@ export default {
} else { } else {
this.domain='https://pre-plug.jiansheku.com' this.domain='https://pre-plug.jiansheku.com'
// this.domain = 'http://192.168.60.8:3400'; // this.domain = 'http://192.168.60.8:3400';
// this.domain = 'http://192.168.60.104:3400'; // this.domain = 'http://192.168.60.210:3400';
} }
this.gettokens(); this.gettokens();
this.iframeObserver(); this.iframeObserver();
let that = this
window.addEventListener("message", this.pagecapListener, { passive: true }); window.addEventListener("message", this.pagecapListener, { passive: true });
window.addEventListener('message', function (event) {
if(event.data.url){
that.$tab.openPage(event.data.title, event.data.url).then(() => {
// 执行结束的逻辑
})
}
}, false);
}, },
mounted() { mounted() {
this.iframeLoading(); // 判断iframe页面是否加载完成-当前页控制 this.iframeLoading(); // 判断iframe页面是否加载完成-当前页控制
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment