import React, { useContext, useEffect, useState } from "react" import style from '../index.less' import { DispatchAddelivery } from ".."; import { Button, Empty, Typography } from "antd"; import { FolderOpenOutlined, RedoOutlined } from "@ant-design/icons"; import AddMaterial from "./addMaterial"; import VideoNews from "@/pages/launchSystemNew/components/newsModal/videoNews"; const { Title } = Typography; const Material: React.FC<{ adData?: any[] }> = ({ adData }) => { /***************************************/ const { materialData, addelivery, setAddelivery, clearData, accountCreateLogs } = useContext(DispatchAddelivery)!; const { dynamic, dynamicMaterialDTos, mediaType, targeting, adgroups: { marketingAssetOuterSpec } } = addelivery const { creativeTemplateId, deliveryMode } = dynamic const [adLength, setAdLength] = useState(0) const [newVisible, setNewVisible] = useState(false) const [mType, setMtype] = useState() /***************************************/ useEffect(() => { if (materialData && Object.keys(materialData).length > 0) { let type = Object.keys(materialData)[0]; setMtype(type) } }, [materialData]) // 获取广告总数 useEffect(() => { if (adData && adData?.length > 0) { setAdLength(adData.length) } else if (accountCreateLogs?.length > 0 && marketingAssetOuterSpec?.marketingTargetType) { let adLength = 0 accountCreateLogs.forEach(item => { let productList: any[] = [] if (['MARKETING_TARGET_TYPE_FICTION'].includes(marketingAssetOuterSpec?.marketingTargetType)) { // 小说 productList = item?.productList || [] } else if (['MARKETING_TARGET_TYPE_WECHAT_OFFICIAL_ACCOUNT'].includes(marketingAssetOuterSpec?.marketingTargetType)) { // 公众号 productList = item?.wechatChannelList || [] } adLength += productList.length * targeting.length }) setAdLength(adLength) } }, [accountCreateLogs, marketingAssetOuterSpec, adData]) return
创意素材 已选 {dynamicMaterialDTos?.dynamicGroup?.length || 0} {(dynamicMaterialDTos && Object.keys(dynamicMaterialDTos).length > 0) ? : null}
{(dynamicMaterialDTos && Object.keys(dynamicMaterialDTos).length > 0) ? <> {mediaType === 0 ? '全账号复用' : mediaType === 1 ? '创意组平均分配到广告' : null}
{dynamicMaterialDTos.dynamicGroup.map((item: any, index: number) => { return
创意组{index + 1} {mType ? ['short_video', 'video'].includes(mType) ?
{item?.cover_id &&
}
: ['image_list'].includes(mType) ?
{item?.image_list?.map((item: { url: string | undefined; }, index: undefined) =>
)}
: ['element_story'].includes(mType) ?
{item?.element_story?.map((item: { url: string | undefined; }, index: undefined) =>
)}
: ['image'].includes(mType) ?
: null : null}
})}
:
} {((dynamic && Object.keys(dynamic).length > 0) && !(materialData && Object.keys(materialData).length > 0)) &&
无需设置创意素材
}
{newVisible && { setNewVisible(false) }} onChange={({ dynamicMaterialDTos, mediaType }) => { setAddelivery({ ...addelivery, dynamicMaterialDTos, mediaType }) setNewVisible(false) clearData() }} />}
} export default React.memo(Material)