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