From 4041e019bb3ebfe0c388ab63e2dc90ee5e53ba03 Mon Sep 17 00:00:00 2001 From: ZLY Date: Fri, 26 Sep 2025 09:40:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(=5Fapp):=20=E7=99=BB=E5=BD=95=E5=90=8E?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E4=B8=8B?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E6=89=80=E6=9C=89=E7=BB=84=E4=BB=B6=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/_app.tsx | 66 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index a05d996..af21796 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -20,6 +20,9 @@ import { getUserInfo } from '@/api/user'; import { setSessionUserInfo } from '@/utils/auth'; import store from '@/store'; import { updateUserInfo } from '@/store/user'; +import { getMyComponents, getPubComponents, getTeamComponents } from '@/api/components'; +import { getPublishPage } from '@/api/flow'; +import dayjs from 'dayjs'; interface RenderConfig { @@ -55,9 +58,72 @@ export default function MyApp({ store.dispatch(updateUserInfo({ userInfo: { ...res.data } })); } + const getComponentData = async () => { + try { + const requests = [ + { promise: getMyComponents(), key: 'myLibs' }, + { promise: getPubComponents(), key: 'pubLibs' }, + { promise: getTeamComponents(), key: 'teamLibs' }, + { promise: getPublishPage(), key: 'pubFlow' } + // {promise: appId ? getMineSubs({id: appId}) : Promise.resolve(null), key: 'myFlow'}, + // {promise: getEventList(), key: 'eventList'} + ]; + + const obj: any = { + myLibs: null, + pubLibs: null, + teamLibs: null, + pubFlow: null, + // myFlow: null, + updateTime: dayjs().format('YYYY-MM-DD HH:mm:ss') + }; + + const userInfo = JSON.parse(sessionStorage.getItem('userInfo') || '{}'); + + // 分别处理每个请求 + for (const { promise, key } of requests) { + try { + const res: any = await promise; + if (res?.code === 200 && res.data?.length > 0) { + // if (key === 'myLibs') { + // addCompInfo(res.data); + // libsStore.setMyLibs(res.data); + // } else if (key === 'pubLibs') { + // addCompInfo(res.data); + // libsStore.setPubLibs(res.data); + // } else if (key === 'teamLibs') { + // addCompInfo(res.data); + // libsStore.setTeamLibs(res.data); + // } else if (key === 'pubFlow') { + // addCompInfo(res.data, true); + // libsStore.setPubFlow(res.data); + // } + // else if (key === 'myFlow') { + // let newData = formatFlowMy(res.data); + // addCompInfo(newData, true); + // libsStore.setMyFlow(newData); + // } + // else if (key === 'eventList') { + // eventStore.setEventList(res.data); + // } + } + + // 更新本地存储数据 + obj[key] = res?.data || null; + sessionStorage.setItem(`compLibs${userInfo.userId}`, JSON.stringify(obj)); + } catch (error) { + console.error(`加载${key}失败:`, error); + } + } + } catch (error) { + console.error('加载组件库失败:', error); + } + }; + useEffect(() => { if (checkLogin()) { fetchUserInfo(); + getComponentData(); } else if (window.location.pathname.replace(/\//g, '') !== 'login') { Message.error('token过期,请重新登录');