提交 | 用户 | age
|
b54b79
|
1 |
import { watch, unref } from 'vue'; |
979058
|
2 |
import { useI18n } from '/@/hooks/web/useI18n'; |
V |
3 |
import { useTitle as usePageTitle } from '@vueuse/core'; |
|
4 |
import { useGlobSetting } from '/@/hooks/setting'; |
b54b79
|
5 |
import { useRouter } from 'vue-router'; |
979058
|
6 |
|
V |
7 |
import { REDIRECT_NAME } from '/@/router/constant'; |
|
8 |
|
56a966
|
9 |
/** |
V |
10 |
* Listening to page changes and dynamically changing site titles |
|
11 |
*/ |
979058
|
12 |
export function useTitle() { |
V |
13 |
const { title } = useGlobSetting(); |
|
14 |
const { t } = useI18n(); |
b54b79
|
15 |
const { currentRoute } = useRouter(); |
979058
|
16 |
|
V |
17 |
const pageTitle = usePageTitle(); |
|
18 |
|
b54b79
|
19 |
watch( |
V |
20 |
() => currentRoute.value.path, |
|
21 |
() => { |
|
22 |
const route = unref(currentRoute); |
56a966
|
23 |
|
b54b79
|
24 |
if (route.name === REDIRECT_NAME) { |
V |
25 |
return; |
|
26 |
} |
979058
|
27 |
|
b54b79
|
28 |
const tTitle = t(route?.meta?.title as string); |
V |
29 |
pageTitle.value = tTitle ? ` ${tTitle} - ${title} ` : `${title}`; |
|
30 |
}, |
56a966
|
31 |
{ immediate: true }, |
b54b79
|
32 |
); |
979058
|
33 |
} |