const TabsPagePlugin = {
|
install(Vue) {
|
Vue.mixin({
|
methods: {
|
$closePage(closeRoute, nextRoute) {
|
const event = new CustomEvent('page:close', {detail:{closeRoute, nextRoute}})
|
window.dispatchEvent(event)
|
},
|
$refreshPage(route) {
|
const path = typeof route === 'object' ? route.path : route
|
const event = new CustomEvent('page:refresh', {detail:{pageKey: path}})
|
window.dispatchEvent(event)
|
},
|
$openPage(route, title) {
|
this.$setPageTitle(route, title)
|
this.$router.push(route)
|
},
|
$setPageTitle(route, title) {
|
if (title) {
|
let path = typeof route === 'object' ? route.path : route
|
path = path && path.split('?')[0]
|
this.$store.commit('setting/setCustomTitle', {path, title})
|
}
|
}
|
},
|
computed: {
|
customTitle() {
|
const customTitles = this.$store.state.setting.customTitles
|
const path = this.$route.path.split('?')[0]
|
const custom = customTitles.find(item => item.path === path)
|
return custom && custom.title
|
}
|
}
|
})
|
}
|
}
|
|
export default TabsPagePlugin
|