| 
					
				 | 
			
			
				@@ -0,0 +1,118 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Empty, Popover, Space, Typography } from "antd" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import React from "react" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import style from '../index.less' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import styles from '../Material/index.less' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import VideoNews from "@/pages/launchSystemNew/components/newsModal/videoNews"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const { Title, Text } = Typography; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 预览创意素材 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @returns  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const PreviewImg: React.FC<{ strategyValue: { dynamicMaterialDTos: any, mediaType: number, deliveryMode: string, creativeTemplateId: number, dynamicCreativesTextDTOS: any } }> = ({ strategyValue: { dynamicMaterialDTos, mediaType, deliveryMode, creativeTemplateId, dynamicCreativesTextDTOS } }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return <Space> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <Popover 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            destroyTooltipOnHide={true} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mouseEnterDelay={0.5} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            content={<div className={style.detail} style={{ width: 500, maxWidth: 500 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div className={style.detail_body}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    {(dynamicMaterialDTos && Object.keys(dynamicMaterialDTos).length > 0) ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <Title level={5} style={{ fontSize: 12 }}>{mediaType === 0 ? '全账号复用' : mediaType === 1 ? '平均分配到广告' : mediaType === 2 ? '顺序分配到广告' : null}</Title> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <div className={style.detail_body_m}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                {dynamicMaterialDTos.dynamicGroup.map((item: any, index: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    let dynamicGroup = item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (deliveryMode === 'DELIVERY_MODE_CUSTOMIZE') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        let keys = Object.keys(dynamicGroup) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        return <div key={index} style={{ width: deliveryMode === 'DELIVERY_MODE_CUSTOMIZE' ? [641, 642, 643].includes(creativeTemplateId) ? '100%' : [720, 721, 722, 1529, 618].includes(creativeTemplateId) ? '50%' : '25%' : '100%' }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            <Title level={5} style={{ fontSize: 12 }}>创意组{index + 1}</Title> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            {(keys.includes('video_id') || keys.includes('short_video1')) ? <div className={style.video}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                <VideoNews src={item?.video_id?.url || item?.short_video1?.url} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                {item?.cover_id && <div className={style.cover_image}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    <img src={item?.cover_id?.url} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                </div>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            </div> : (keys.includes('image_list') || keys.includes('element_story')) ? <div className={style.imageList}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                {item?.image_list?.map((item: { url: string | undefined; }, index: undefined) => <div className={style.cover_image} key={index}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    <img src={item?.url} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                </div>)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            </div> : keys.includes('image_id') ? <div className={style.cover_image}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                <img src={item?.image_id?.url} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            </div> : null} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        return <div key={index} style={{ width: '100%' }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            <Title level={5} style={{ fontSize: 12 }}>创意组{index + 1}</Title> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            <div style={{ display: 'flex', gap: 5, flexWrap: 'wrap' }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                {item?.list?.map((item: any, index: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    if (Array.isArray(item)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        let length = item.length 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        return <div className={styles.boxList_body_item} key={index} style={{ width: 60, height: 60 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                            <div className={styles.tag}>{length}图</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                            <div className={styles.content} style={{ width: 60, height: 60 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                                {item.map((l, i) => <img src={l?.url} key={i} style={{ width: length === 6 ? 19.9 : 29.9 }} />)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    } else if (item?.url?.includes('mp4')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        return <div className={styles.boxList_body_item} key={index} style={{ width: 60, height: 60 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                            <div className={styles.content} style={{ width: 60, height: 60 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                                <VideoNews src={item?.url} style={{ width: 60, height: 60 }} maskBodyStyle={{ backgroundColor: "rgba(242, 246, 254, 0.1)" }} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        return <div className={styles.boxList_body_item} key={index} style={{ width: 60, height: 60 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                            <div className={styles.content} style={{ width: 60, height: 60 }}><img src={item?.url} /></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                })} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                })} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </> : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div className={style.empty_block}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <Empty description="暂无素材" imageStyle={{ height: 50 }} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </div>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            title="预览" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <a style={{ fontSize: 12 }}>素材预览</a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </Popover> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <Popover 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            destroyTooltipOnHide={true} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mouseEnterDelay={0.5} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            content={<div className={style.detail} style={{ minWidth: 200, maxWidth: 250 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div className={style.detail_body}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <Title level={5} style={{ fontSize: 12 }} ellipsis>{dynamicCreativesTextDTOS?.type === 0 ? '全部相同' : dynamicCreativesTextDTOS?.type === 1 ? '按创意组一一对应' : dynamicCreativesTextDTOS?.type === 2 ? '按文案顺序分配' : dynamicCreativesTextDTOS?.type === 3 ? '先分配创意组,文案后叉乘' : dynamicCreativesTextDTOS?.type === 4 ? '创意组和文案叉乘打乱后分配' : null}</Title> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    {dynamicCreativesTextDTOS?.dynamicCreativesTextDetailDTOList?.map((item: { [x: string]: (boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined)[]; }, index: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let keys = Object.keys(item) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return <div key={index}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                {keys.includes('description') ? <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <Title level={5} style={{ fontSize: 12 }}>文案</Title> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    {item['description'].map((t, index) => <div className={style.text} key={index}><Text ellipsis={{ tooltip: true }}>{t}</Text></div>)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                </> : keys.includes('title') ? <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <Title level={5} style={{ fontSize: 12 }}>标题</Title> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    {item['title'].map((t, index) => <div className={style.text} key={index}><Text ellipsis={{ tooltip: true }}>{t}</Text></div>)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                </> : null} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    })} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            title="预览" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <a style={{ fontSize: 12 }}>文案预览</a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </Popover> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </Space> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default React.memo(PreviewImg) 
			 |