Commit 5eddcd3d1716c338e5ce2e3307e31057be470711

Authored by fengwotao
1 parent fbd61b48

perf(src/components): 优化个人头像展示和web站点icon显示

@@ -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: '我的信息',
  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)