Commit 5eddcd3d1716c338e5ce2e3307e31057be470711
1 parent
fbd61b48
perf(src/components): 优化个人头像展示和web站点icon显示
Showing
3 changed files
with
34 additions
and
14 deletions
| @@ -29,9 +29,10 @@ import { GoSystemInfo } from '@/components/GoSystemInfo/index' | @@ -29,9 +29,10 @@ import { GoSystemInfo } from '@/components/GoSystemInfo/index' | ||
| 29 | import { icon } from '@/plugins' | 29 | import { icon } from '@/plugins' |
| 30 | import { useUserStore } from '@/store/external/modules/user' | 30 | import { useUserStore } from '@/store/external/modules/user' |
| 31 | import { useSyncRemote } from '@/views/chart/hooks/external/useRemote.hook' | 31 | import { useSyncRemote } from '@/views/chart/hooks/external/useRemote.hook' |
| 32 | -import { getPlatformInfo } from '@/api/external/common' | ||
| 33 | import Person from './person.png' | 32 | import Person from './person.png' |
| 34 | -import DefaultWebsiteIcon from '../../../../public/favicon.ico' | 33 | +import { useSetWebsiteIcon } from '@/hooks/external/useSetWebsiteIcon.hook' |
| 34 | + | ||
| 35 | +const { getPlatform } = useSetWebsiteIcon() | ||
| 35 | 36 | ||
| 36 | const { PersonIcon, LogOutOutlineIcon, SettingsSharpIcon } = icon.ionicons5 | 37 | const { PersonIcon, LogOutOutlineIcon, SettingsSharpIcon } = icon.ionicons5 |
| 37 | 38 | ||
| @@ -85,18 +86,6 @@ onMounted(() => { | @@ -85,18 +86,6 @@ onMounted(() => { | ||
| 85 | } | 86 | } |
| 86 | }) | 87 | }) |
| 87 | 88 | ||
| 88 | -const getPlatform = async () => { | ||
| 89 | - const rest = await getPlatformInfo() | ||
| 90 | - replaceWebsiteIcon(rest?.icon) | ||
| 91 | -} | ||
| 92 | - | ||
| 93 | -const replaceWebsiteIcon = (icon: string) => { | ||
| 94 | - const linkEl = document.querySelectorAll('link[rel*="icon"]') | ||
| 95 | - linkEl.forEach(item => { | ||
| 96 | - item.setAttribute('href', icon || DefaultWebsiteIcon) | ||
| 97 | - }) | ||
| 98 | -} | ||
| 99 | - | ||
| 100 | const options = ref([ | 89 | const options = ref([ |
| 101 | { | 90 | { |
| 102 | label: '我的信息', | 91 | label: '我的信息', |
src/hooks/external/useSetWebsiteIcon.hook.ts
0 → 100644
| 1 | +import DefaultWebsiteIcon from '../../../public/favicon.ico' | ||
| 2 | +import { getPlatformInfo } from '@/api/external/common' | ||
| 3 | + | ||
| 4 | +export const useSetWebsiteIcon = () => { | ||
| 5 | + const getPlatform = async () => { | ||
| 6 | + //防止接口报错阻塞页面 | ||
| 7 | + try { | ||
| 8 | + const rest = await getPlatformInfo() | ||
| 9 | + replaceWebsiteIcon(rest?.icon || DefaultWebsiteIcon) | ||
| 10 | + } finally { | ||
| 11 | + console.log() | ||
| 12 | + } | ||
| 13 | + } | ||
| 14 | + | ||
| 15 | + const replaceWebsiteIcon = (icon: string) => { | ||
| 16 | + const linkEl = document.querySelectorAll('link[rel*="icon"]') | ||
| 17 | + linkEl.forEach(item => { | ||
| 18 | + item.setAttribute('href', icon) | ||
| 19 | + }) | ||
| 20 | + } | ||
| 21 | + return { | ||
| 22 | + getPlatform | ||
| 23 | + } | ||
| 24 | +} |
| @@ -16,11 +16,18 @@ import 'vue3-sketch-ruler/lib/style.css' | @@ -16,11 +16,18 @@ import 'vue3-sketch-ruler/lib/style.css' | ||
| 16 | 16 | ||
| 17 | // THINGS_KIT 内容安全协议hook | 17 | // THINGS_KIT 内容安全协议hook |
| 18 | import { useWebSecurityPolicy } from './hooks/external/useWebSecurityPolicy' | 18 | import { useWebSecurityPolicy } from './hooks/external/useWebSecurityPolicy' |
| 19 | +// THINGS_KIT web站点icon设置hook | ||
| 20 | +import { useSetWebsiteIcon } from '@/hooks/external/useSetWebsiteIcon.hook' | ||
| 21 | + | ||
| 19 | 22 | ||
| 20 | async function appInit() { | 23 | async function appInit() { |
| 21 | // THINGS_KIT 内容安全协议hook | 24 | // THINGS_KIT 内容安全协议hook |
| 22 | useWebSecurityPolicy() | 25 | useWebSecurityPolicy() |
| 23 | 26 | ||
| 27 | + // THINGS_KIT web站点icon设置hook | ||
| 28 | + const { getPlatform } = useSetWebsiteIcon() | ||
| 29 | + getPlatform() | ||
| 30 | + | ||
| 24 | const goAppProvider = createApp(GoAppProvider) | 31 | const goAppProvider = createApp(GoAppProvider) |
| 25 | 32 | ||
| 26 | const app = createApp(App) | 33 | const app = createApp(App) |