diff --git a/apps/web/src/app/admin/base-setting/page.tsx b/apps/web/src/app/admin/base-setting/page.tsx index b4a6b0b..d4a4efa 100755 --- a/apps/web/src/app/admin/base-setting/page.tsx +++ b/apps/web/src/app/admin/base-setting/page.tsx @@ -40,7 +40,7 @@ export default function BaseSettingPage() { form.setFieldsValue(baseSetting); } setIsFormChanged(false); - } + } function onSaveClick() { if (form) form.submit(); } @@ -56,7 +56,7 @@ export default function BaseSettingPage() { meta: { ...baseSetting, appConfig: { - ...baseSetting.appConfig, + ...(baseSetting?.appConfig || {}), ...appConfig, }, }, diff --git a/apps/web/src/app/main/home/components/HeroSection.tsx b/apps/web/src/app/main/home/components/HeroSection.tsx index 404ea27..c20ada6 100755 --- a/apps/web/src/app/main/home/components/HeroSection.tsx +++ b/apps/web/src/app/main/home/components/HeroSection.tsx @@ -49,10 +49,26 @@ const HeroSection = () => { const carouselRef = useRef(null); const { statistics, baseSetting } = useAppConfig(); const platformStats: PlatformStat[] = [ - { icon: , value: statistics.staffs.toString(), label: "注册学员" }, - { icon: , value: statistics.courses.toString(), label: "精品课程" }, - { icon: , value: statistics.lectures.toString(), label: '课程章节' }, - { icon: , value: statistics.reads.toString(), label: "观看次数" }, + { + icon: , + value: statistics.staffs.toString(), + label: "注册学员", + }, + { + icon: , + value: statistics.courses.toString(), + label: "精品课程", + }, + { + icon: , + value: statistics.lectures.toString(), + label: "课程章节", + }, + { + icon: , + value: statistics.reads.toString(), + label: "观看次数", + }, ]; const handlePrev = useCallback(() => { carouselRef.current?.prev(); @@ -61,10 +77,10 @@ const HeroSection = () => { const handleNext = useCallback(() => { carouselRef.current?.next(); }, []); - const { slides } = useAppConfig() + const { slides } = useAppConfig(); useEffect(() => { - console.log(statistics) - }, [statistics]) + console.log(statistics); + }, [statistics]); return (
@@ -76,8 +92,8 @@ const HeroSection = () => { dots={{ className: "carousel-dots !bottom-32 !z-20", }}> - {Array.isArray(slides)? - (slides.map((item, index) => ( + {Array.isArray(slides) ? ( + slides.map((item, index) => (
void; + value?: string[]; + onChange?: (value: string[]) => void; } export function MultiAvatarUploader({ - value, - onChange, + value, + onChange, }: MultiAvatarUploaderProps) { - const [imageList, setImageList] = useState(value || []) - const [previewImage, setPreviewImage] = useState(""); - useEffect(() => { - if (!isEqual(value, imageList)) { - setImageList(value || []); - } - }, [value]); - useEffect(() => { - onChange?.(imageList) - }, [imageList]) - return <> -
- {imageList.map((image, index) => { - return ( -
- - setPreviewImage(visible ? image || "" : "") - }} > - -
- ) - })} -
-
- { - console.log(value); - setImageList([...imageList, value]) - }}> -
- - ; + const [imageList, setImageList] = useState(value || []); + const [previewImage, setPreviewImage] = useState(""); + useEffect(() => { + if (!isEqual(value, imageList)) { + setImageList(value || []); + } + }, [value]); + useEffect(() => { + onChange?.(imageList); + }, [imageList]); + return ( + <> +
+ {(imageList || [])?.map((image, index) => { + return ( +
+ + setPreviewImage( + visible ? image || "" : "" + ), + }}> +
+ ); + })} +
+
+ { + console.log(value); + setImageList([...imageList, value]); + }}> +
+ + ); } -export default MultiAvatarUploader; \ No newline at end of file +export default MultiAvatarUploader;