import Banner, { type BannerConfig } from "@/components/Banner"; import { useCallback, useEffect, useMemo, useState } from "react"; import ParagraphSection from "@/components/layout/ParagraphSection"; import Section from "@/components/layout/Section"; import AnimateTopCard from "@/components/layout/AnimateTopCard"; import BottomTabs from "@/components/layout/BottomTabsSection/BottomTabs"; import { useStore } from "@/store"; import styles from "./Foundation.module.css"; import TopTabsSection from "@/components/layout/TopTabsSection"; import appApi from "@/api/app"; import ScrollReveal from "@/components/ScrollReveal"; export default function Foundation() { const appConfig = useStore((s) => s.appConfig); const data = appConfig?.social?.foundation; const locale = useStore((s) => s.locale) const categoryList = useStore((s) => s.categoryList) const [activeIndex, setActiveIndex] = useState(0); const banner = data.banner; const section1Data = data.section1Data; const section2Data = data.section2Data; const section3Data = data.section3Data; const section4Data = data.section4Data; const [newsList, setNewsList] = useState([]); const localNewsList = useMemo(() => { return newsList.filter((item: any) => item.lang.toLowerCase() === locale.split('-')[0]); }, [newsList, locale]) const getNewsList = useCallback(() => { appApi.getNewsList({ page: 1, size: 1000, sort: "weight DESC", category_id: String(categoryList?.find((item: any) => item.name.includes('【银泰公益基金会】公益传播'))?.id ?? ''), }).then((res: any) => { setNewsList(res.data.items.map((item: any) => { return { id: item.id, title: item.title, content: item.content, path: '/news/detail/' + item.id, image: item.covers_show === 'image' ? item.covers.image[0] : '', video: item.covers_show === 'video' ? item.covers.video[0] : '', lang: item.lang, moreText: 'moreText', } })); }); }, []) const [fileList, setFileList] = useState([]); const localFileList = useMemo(() => { return fileList.filter((item: any) => item.lang.toLowerCase() === locale.split('-')[0]); }, [fileList, locale]) const getFileList = useCallback(async () => { const res = await appApi.getDocList({ page: 1, size: 1000, // category_id: String(categoryList?.find((item: any) => item.name.includes('社会责任报告'))?.id ?? '') }) const items = res.data.items.filter((item: any) => item.category_name.includes("信息公开")) setFileList(items) }, []) useEffect(() => { getNewsList() getFileList() }, []) return (
} largedesc={banner?.title ?? ""} content={(banner as BannerConfig)?.content} titleSize={(banner as BannerConfig)?.titleSize ?? "medium"} backgroundImage={banner?.backgroundImage ?? "/images/bg-overview.png"} /> {section1Data && (
{section1Data.tabItems && } )} {section2Data && (
{localNewsList?.map((item: any, index: number) => ( ))}
)} {section3Data && (
{localFileList .filter((item: any) => item.category_name.includes( section3Data.tabItems?.[activeIndex]?.tabName ?? '' )) .map((item: any, index: number) => (
  • item.path.includes("/upload") && window.open(item.path, '_blank')}> {item.name}
  • ))}
    )} {section4Data && (
    {section4Data.items?.map((item: any, index: number) => (
    logo
    ))}
    )}
    ); }