You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.3 KiB
88 lines
2.3 KiB
<template> |
|
<div :class="['main', { channel: isHome, 'site-en': handleClass() }]"> |
|
<v-head ref="header"></v-head> |
|
<div class="layout"> |
|
<transition name="move" |
|
mode="out-in"> |
|
<router-view class="view"></router-view> |
|
</transition> |
|
<el-backtop target=".layout"></el-backtop> |
|
<v-footer ref="footer"></v-footer> |
|
</div> |
|
</div> |
|
</template> |
|
|
|
<script> |
|
import Util from '@/libs/util' |
|
import Setting from '@/setting' |
|
import vHead from '../header' |
|
import vFooter from '../footer' |
|
import { mapMutations } from 'vuex' |
|
export default { |
|
data () { |
|
return { |
|
enSite: [1, 4, 6] // 英文站点id |
|
}; |
|
}, |
|
components: { |
|
vHead, |
|
vFooter |
|
}, |
|
computed: { |
|
isHome () { |
|
return Util.isIndex() |
|
}, |
|
}, |
|
mounted () { |
|
this.$route.query.siteId && this.setSite(this.$route.query.siteId) |
|
document.body.onclick = e => { |
|
e.stopPropagation() |
|
this.$refs.header.showSearch = false |
|
} |
|
|
|
// seo信息 |
|
this.$get(this.api.seoList, { |
|
siteId: +this.$route.query.siteId || this.$store.state.content.site |
|
}).then(({ data }) => { |
|
if (data.length) { |
|
document.querySelector('meta[name="keywords"]').setAttribute('content', data[0].keyword) |
|
document.querySelector('meta[name="description"]').setAttribute('content', data[0].description) |
|
document.querySelector('title').innerHTML = data[0].title |
|
} |
|
}).catch(err => { }) |
|
}, |
|
methods: { |
|
...mapMutations('content', [ |
|
'setSite' |
|
]), |
|
handleClass () { |
|
return this.enSite.includes(+this.$route.query.siteId || this.$store.state.content.site) |
|
}, |
|
// 长时间未操作,自动退出登录 |
|
autoLogout () { |
|
let lastTime = new Date().getTime(); |
|
document.onmousedown = () => { |
|
lastTime = new Date().getTime(); |
|
}; |
|
|
|
setInterval(() => { |
|
if (Util.local.get(Setting.tokenKey) && (new Date().getTime() - lastTime) > Setting.autoLogoutTime) { |
|
Util.errorMsg("用户登录过期,请重新登录"); |
|
setTimeout(this.logout, 1500); |
|
} |
|
}, 1000); |
|
} |
|
} |
|
}; |
|
</script> |
|
<style lang="scss" scoped> |
|
.main { |
|
min-width: 1050px; |
|
} |
|
.main:not(.channel) { |
|
min-height: calc(100% - 90px); |
|
.layout { |
|
padding-top: 90px; |
|
} |
|
} |
|
</style> |