|
@@ -15,7 +15,9 @@ import { creativeConfig, overrideCanvasHeadOptionEnum } from './config'
|
|
|
import BrandImage from './brandImage'
|
|
|
import HeadNickJump from './headNickJump'
|
|
|
import moment from 'moment'
|
|
|
-import { txtLength } from '@/utils/utils'
|
|
|
+import { getVideoImgUrl, txtLength } from '@/utils/utils'
|
|
|
+import VideoNews from '@/pages/launchSystemNew/components/newsModal/videoNews'
|
|
|
+import VideoFrame from '@/pages/launchSystemNew/components/videoFrame'
|
|
|
interface Props {
|
|
|
queryForm: Partial<CreateAdProps>,
|
|
|
title?: string,
|
|
@@ -128,6 +130,8 @@ function CreativePup(props: Props) {
|
|
|
let videoOver = Form.useWatch('videoOver', form)
|
|
|
let endPageDesc = Form.useWatch('endPageDesc', form)
|
|
|
let linkPageType = Form.useWatch('linkPageType', form)
|
|
|
+ let short_video1 = Form.useWatch('short_video1', form)
|
|
|
+ let video = Form.useWatch('video', form)
|
|
|
|
|
|
// 确定事件
|
|
|
const handleOk = useCallback(() => {
|
|
@@ -667,6 +671,7 @@ function CreativePup(props: Props) {
|
|
|
message.warning('请先选择视频文件!!!')
|
|
|
}
|
|
|
}, [videoMaterialConfig.list])
|
|
|
+
|
|
|
return <Modal
|
|
|
visible={visible}
|
|
|
title={type === 'add' ? '新建创意' : type === 'look' ? '创意详情' : '编辑创意'}
|
|
@@ -764,12 +769,12 @@ function CreativePup(props: Props) {
|
|
|
})
|
|
|
}, 100)
|
|
|
}}>
|
|
|
- <p>
|
|
|
- {videoMaterialConfig?.list[0] ? <video src={videoMaterialConfig?.list[0].url} controls /> : <>
|
|
|
+ <div className={styles.p}>
|
|
|
+ {videoMaterialConfig?.list[0] ? <VideoNews src={videoMaterialConfig?.list[0].url} style={{ display: 'block', width: 'auto', margin: 0, height: '100%' }} maskImgStyle={{ position: 'absolute', top: '50%', left: '50%', width: 40, height: 40, transform: 'translate(-50%, -50%)', zIndex: 10 }} /> : <>
|
|
|
<span>{`推荐尺寸(${adcreativeTemplateId === 1708 ? 1280 : item.restriction.videoRestriction.minWidth} x ${adcreativeTemplateId === 1708 ? 720 : item.restriction.videoRestriction.minHeight})`}</span>
|
|
|
<span>{`${item.restriction.videoRestriction.fileFormat?.map(str => str?.replace('MEDIA_TYPE_', ''))};< ${item.restriction.videoRestriction.fileSize / 1024}M;时长 ≥ ${item.restriction.videoRestriction.minDuration}s,≤ ${item.restriction.videoRestriction.maxDuration}s,必须带有声音`}</span>
|
|
|
</>}
|
|
|
- </p>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</Form.Item>}
|
|
|
{/* 单图 */}
|
|
@@ -779,26 +784,36 @@ function CreativePup(props: Props) {
|
|
|
name={item.name}
|
|
|
style={item.description === '图片' && adcreative_template?.adcreativeElements?.some(item => item.name === 'video') ? { order: 2 } : {}}
|
|
|
>
|
|
|
- <div className={`${styles.box} ${styles.image}`} onClick={() => {
|
|
|
- init({ mediaType: 'IMG', cloudSize: [[{ relation: '=', width: item.restriction.imageRestriction.width, height: item.restriction.imageRestriction.height }]], maxSize: item.restriction.imageRestriction.fileSize * 1024 })
|
|
|
- setimgType('single')
|
|
|
- setTimeout(() => {
|
|
|
- set_selectImgVisible(true)
|
|
|
- setImgMaterialConfig({
|
|
|
- ...imgMaterialConfig,
|
|
|
- type: item.name,
|
|
|
- max: 1,
|
|
|
- adcreativeTemplateId
|
|
|
- })
|
|
|
- }, 100)
|
|
|
-
|
|
|
- }}>
|
|
|
- <p>
|
|
|
- {imgMaterialConfig?.list[0] ? <img src={imgMaterialConfig?.list[0].url} /> : <>
|
|
|
- <span>{`推荐尺寸(${item.restriction.imageRestriction.width} x ${item.restriction.imageRestriction.height})`}</span>
|
|
|
- <span>{`${item.restriction.imageRestriction.fileFormat?.map(str => str?.replace('IMAGE_TYPE_', ''))};小于 ${item.restriction.imageRestriction.fileSize}KB`}</span>
|
|
|
- </>}
|
|
|
- </p>
|
|
|
+ <div className={styles.cjBox}>
|
|
|
+ <div className={`${styles.box} ${styles.image}`} onClick={() => {
|
|
|
+ init({ mediaType: 'IMG', cloudSize: [[{ relation: '=', width: item.restriction.imageRestriction.width, height: item.restriction.imageRestriction.height }]], maxSize: item.restriction.imageRestriction.fileSize * 1024 })
|
|
|
+ setimgType('single')
|
|
|
+ setTimeout(() => {
|
|
|
+ set_selectImgVisible(true)
|
|
|
+ setImgMaterialConfig({
|
|
|
+ ...imgMaterialConfig,
|
|
|
+ type: item.name,
|
|
|
+ max: 1,
|
|
|
+ adcreativeTemplateId
|
|
|
+ })
|
|
|
+ }, 100)
|
|
|
+ }}>
|
|
|
+ <p>
|
|
|
+ {imgMaterialConfig?.list[0] ? <img src={imgMaterialConfig?.list[0].url} /> : <>
|
|
|
+ <span>{`推荐尺寸(${item.restriction.imageRestriction.width} x ${item.restriction.imageRestriction.height})`}</span>
|
|
|
+ <span>{`${item.restriction.imageRestriction.fileFormat?.map(str => str?.replace('IMAGE_TYPE_', ''))};小于 ${item.restriction.imageRestriction.fileSize}KB`}</span>
|
|
|
+ </>}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ {adcreative_template?.adcreativeElements.some(item => item.name === 'short_video1' || item.name === 'video') && <div style={{ width: 32 }}>
|
|
|
+ {videoMaterialConfig?.list?.[0]?.url && <VideoFrame
|
|
|
+ onChange={(e) => {
|
|
|
+ setImgMaterialConfig({ ...imgMaterialConfig, type: 'image', adcreativeTemplateId, list: [{ url: e }] })
|
|
|
+ form.setFieldsValue({ image: 'image' })
|
|
|
+ }}
|
|
|
+ url={videoMaterialConfig?.list[0].url}
|
|
|
+ />}
|
|
|
+ </div>}
|
|
|
</div>
|
|
|
</Form.Item>}
|
|
|
{/* 多图 */}
|
|
@@ -1160,12 +1175,16 @@ function CreativePup(props: Props) {
|
|
|
visible={selectVideoVisible}
|
|
|
onClose={() => set_selectVideoVisible(false)}
|
|
|
sliderImgContent={videoMaterialConfig.list}
|
|
|
- onChange={(content) => {
|
|
|
+ onChange={(content: any) => {
|
|
|
if (content.length > 0) {
|
|
|
form.setFieldsValue({ [videoMaterialConfig.type]: videoMaterialConfig.type })
|
|
|
}
|
|
|
setVideoMaterialConfig({ ...videoMaterialConfig, list: content })
|
|
|
set_selectVideoVisible(false)
|
|
|
+ if (adcreative_template?.adcreativeElements.some(item => item.name === 'image') && content.length > 0) {
|
|
|
+ setImgMaterialConfig({ ...imgMaterialConfig, type: 'image', adcreativeTemplateId, list: [{ url: getVideoImgUrl(content[0]?.url) }] })
|
|
|
+ form.setFieldsValue({ image: 'image' })
|
|
|
+ }
|
|
|
}}
|
|
|
/>}
|
|
|
{/* 视频封面图弹窗 */}
|