import React, { useContext } from "react" import { DispatchMiniPageCreate } from "./drawerMini"; import { useDrop } from "ahooks"; import './global.less' import { topImageContent, topShortVideoContent, topVideoContent } from "./const"; import { DeleteOutlined } from '@ant-design/icons'; import { Swiper, SwiperSlide } from 'swiper/react' import 'swiper/css' import { ReactComponent as TopNullBack } from '../../../../public/svg/topNullBack.svg' import { ReactComponent as TopImgSvg } from '../../../../public/svg/topimg.svg' import { ReactComponent as EditSvg } from '../../../../public/svg/edit.svg' import { ReactComponent as TopVideoSvg } from '../../../../public/svg/topvideo.svg' import VideoNews from "../../components/newsModal/videoNews"; import { Button } from "antd"; import UploadLoad from "../../components/materialMould/uploadLoad"; const CenterTop: React.FC = () => { /**************************************/ const { dragging, pageSpecs, setDragging, setPageSpecs, installActive, setTopUrl, setTopShortVideoUrl } = useContext(DispatchMiniPageCreate)!; const { pageElementsSpecList, globalElementsSpecList, pageType } = pageSpecs const topSpec = pageElementsSpecList?.[0] /**************************************/ // 头部内容拖到接收区 const [dropProps] = useDrop({ onDom: (key: string) => { // 头部 const newPageElementsSpecList = pageElementsSpecList?.map(item => ({ ...item, comptActive: false })) const newGlobalElementsSpecList = globalElementsSpecList?.map(item => ({ ...item, comptActive: false })) if (key === 'TOP_IMAGE') { newPageElementsSpecList[0] = { ...topImageContent, comptActive: true } } else if (key === 'TOP_VIDEO') { newPageElementsSpecList[0] = { ...topVideoContent, comptActive: true } } else if (key === 'TOP_SHORT_VIDEO') { newPageElementsSpecList[0] = { ...topShortVideoContent, comptActive: true } } else { return } setPageSpecs({ ...pageSpecs, pageElementsSpecList: newPageElementsSpecList, globalElementsSpecList: newGlobalElementsSpecList }) } }); const delTopSpec = (e: React.MouseEvent) => { e.stopPropagation(); setDragging(null); const newPageSpecs = JSON.parse(JSON.stringify(pageSpecs)) newPageSpecs.pageElementsSpecList[0] = { elementType: 'empty' } setPageSpecs(newPageSpecs) } if (topSpec?.elementType) { switch (topSpec.elementType) { case "TOP_IMAGE": return
{ installActive(e, 0) }}>
{topSpec?.url ? :
}
{!topSpec?.url &&
{ }}>上传图片} onChange={(value) => { setTopUrl(value) }} />
}
{topSpec?.url && }>} onChange={(value) => { setTopUrl(value) }} />}
case "TOP_VIDEO": return
{ installActive(e, 0) }}>
{topSpec?.url ?
:
}
{!topSpec?.url &&
{ }}>上传视频} onChange={(value) => { setTopUrl(value) }} />
}
{topSpec?.url && }>} onChange={(value) => { setTopUrl(value) }} />}
case "TOP_SHORT_VIDEO": return
{ installActive(e, 0) }}> {topSpec?.data?.map((item, index) =>
{item?.url ?
:
}
{!item?.url &&
上传视频} onChange={(value, videoInfo) => { setTopShortVideoUrl(value, videoInfo, index) }} />
}
)}
default: return pageType === 'LANDING_PAGE' ?
{dragging ?
拖至此处
: <>

顶部组件区

在左上方,选择顶部组件添加到此处
}
:
{dragging ?
拖至此处
: <>

短视频组件区

在左上方,选择顶部组件添加到此处
}
} } return 页面BUG,刷新页面后尝试 } export default React.memo(CenterTop)