wjx 2 år sedan
förälder
incheckning
8bb046554b

+ 1 - 1
src/pages/launchSystemNew/launchManage/createAd/ad/modal/leadAd.tsx

@@ -390,7 +390,7 @@ function LeadAdModal(props: Props) {
             initialValues={
                 {
                     promotedObjectType: queryForm.promotedObjectType,
-                    siteSet: ['SITE_SET_MOMENTS', 'SITE_SET_WECHAT'],
+                    siteSet: ['SITE_SET_MOMENTS', 'SITE_SET_WECHAT', 'SITE_SET_WECHAT_PLUGIN'],
                     bidMode: 'BID_MODE_OCPM',
                     automaticSiteEnabled: false,
                     dateType: '2',

+ 1 - 1
src/pages/launchSystemNew/launchManage/createAd/ad/modal/wechat.tsx

@@ -333,7 +333,7 @@ function WeChatAdModal(props: Props) {
             initialValues={
                 {
                     promotedObjectType: queryForm.promotedObjectType,
-                    siteSet: ['SITE_SET_MOMENTS', 'SITE_SET_WECHAT'],
+                    siteSet: ['SITE_SET_MOMENTS', 'SITE_SET_WECHAT', 'SITE_SET_WECHAT_PLUGIN'],
                     bidMode: 'BID_MODE_OCPM',
                     automaticSiteEnabled: false,
                     dateType: '2',

+ 365 - 397
src/pages/launchSystemNew/launchManage/createAd/creative/modal/index.tsx

@@ -87,6 +87,18 @@ function CreativePup(props: Props) {
         list: [],//素材
         max: 1,//素材数量
     })//图片素材配置
+    const [imgListMaterialConfig, setImgListMaterialConfig] = useState<{
+        adcreativeTemplateId?: number,
+        type: string,
+        cloudSize: { relation: string, width: number, height: number }[],
+        list: any[],
+        max: number
+    }>({
+        type: '',//类型
+        cloudSize: [],//素材搜索条件
+        list: [],//素材
+        max: 1,//素材数量
+    })//图片素材配置
     const [videoMaterialConfig, setVideoMaterialConfig] = useState<{
         adcreativeTemplateId?: number,
         type: string,
@@ -99,6 +111,7 @@ function CreativePup(props: Props) {
         list: [],//素材
         max: 1,//素材数量
     })//图片素材配置
+    const [imgType, setimgType] = useState<'single' | 'many'>('single')
     const [conversionList, setConversionList] = useState<any>(null)
     let pageType = Form.useWatch('pageType', form)
     let adcreativeTemplateId = Form.useWatch('adcreativeTemplateId', form)
@@ -138,7 +151,7 @@ function CreativePup(props: Props) {
                     case 'image_list'://图素材
                         newValues.adcreativeElements = {
                             ...newValues.adcreativeElements,
-                            imageUrlList: imgMaterialConfig.list?.map(item => item.url),
+                            imageUrlList: imgListMaterialConfig.list?.map(item => item.url),
                             description: newValues.description,
                         }
                         delete newValues[key]
@@ -276,7 +289,7 @@ function CreativePup(props: Props) {
             // // 开启存为模板开关执行
             callback(newValues)
         })
-    }, [form, imgMaterialConfig, videoMaterialConfig, queryForm, template_checked, adcreative_template, isShowSc])
+    }, [form, imgMaterialConfig, imgListMaterialConfig, videoMaterialConfig, queryForm, template_checked, adcreative_template, isShowSc])
     // 获取创意形式列表
     useEffect(() => {
         if (siteSet?.length > 0 && promotedObjectType) {
@@ -308,7 +321,11 @@ function CreativePup(props: Props) {
                 })
                 /*****暂时排除激励和banner有问题******/
                 if (siteSet.some((i: string) => i === 'SITE_SET_MOMENTS')) {
-                    newArr = newArr.filter((item: { adcreativeTemplateId: number }) => item.adcreativeTemplateId !== 910 && item.adcreativeTemplateId !== 925)
+                    newArr = newArr.filter((item: { adcreativeTemplateId: number }) => item.adcreativeTemplateId !== 910 && item.adcreativeTemplateId !== 925 && item.adcreativeTemplateId !== 2107 && item.adcreativeTemplateId !== 2109)
+                }
+                /*****暂时排除出框形态 视频合约广告******/
+                if (siteSet.some((i: string) => i === 'SITE_SET_WECHAT')) {
+                    newArr = newArr.filter((item: { adcreativeTemplateId: number }) => item.adcreativeTemplateId !== 1945)
                 }
                 let newArr1: any[] = []
                 let newArr2: any[] = []
@@ -466,11 +483,12 @@ function CreativePup(props: Props) {
     useEffect(() => {
         if (imgMaterialConfig.adcreativeTemplateId && adcreativeTemplateId !== imgMaterialConfig.adcreativeTemplateId) {
             setImgMaterialConfig({ ...imgMaterialConfig, adcreativeTemplateId: undefined, list: [] })
+            setImgListMaterialConfig({ ...imgListMaterialConfig, adcreativeTemplateId: undefined, list: [] })
         }
         if (videoMaterialConfig.adcreativeTemplateId && adcreativeTemplateId !== videoMaterialConfig.adcreativeTemplateId) {
             setVideoMaterialConfig({ ...videoMaterialConfig, adcreativeTemplateId: undefined, list: [] })
         }
-    }, [adcreativeTemplateId, imgMaterialConfig, videoMaterialConfig])
+    }, [adcreativeTemplateId, imgMaterialConfig, videoMaterialConfig, imgListMaterialConfig])
     // 文案助手
     const textList = useCallback((arg: { maxTextLength: number, keyword?: string }) => {
         let { maxTextLength, keyword } = arg
@@ -579,7 +597,7 @@ function CreativePup(props: Props) {
                 obj = { ...obj, image: imageUrl }
             }
             if (imageUrlList) {
-                setImgMaterialConfig({
+                setImgListMaterialConfig({
                     cloudSize: [],
                     list: imageUrlList?.map((url: any) => ({ url })),
                     max: imageUrlList.length,
@@ -710,150 +728,128 @@ function CreativePup(props: Props) {
                         {/* ============================================================素材============================================================= */}
                         {/* 优先展示视频或图片,朋友圈常规不勾选使用外部素材替换内部,隐藏此选项,后期自动将落地页顶部素材添加进入 */}
                         {((overrideCanvasHeadOption !== 'OPTION_CANVAS_OVERRIDE_CREATIVE') || siteSet.every((name: string) => name !== 'SITE_SET_MOMENTS')) && <div style={{ display: 'flex', flexFlow: 'column' }}>
-                            {
-                                adcreative_template?.adcreativeElements?.filter(item => item.required && item.name === 'image_list' || item.name === 'short_video1' || item.name === 'video' || item.name === 'image' || item.name === 'element_story').map(item => {
-                                    return <Form.Item
-                                        label={<strong>{item.description === '图片' && adcreative_template?.adcreativeElements?.some(item => item.name === 'video') ? '视频封面图' : item.description}</strong>}
-                                        key={item.name}
+                            {adcreative_template?.adcreativeElements?.filter(item => item.required && item.name === 'image_list' || item.name === 'short_video1' || item.name === 'video' || item.name === 'image' || item.name === 'element_story').map(item => {
+                                return <Form.Item
+                                    label={<strong>{item.description === '图片' && adcreative_template?.adcreativeElements?.some(item => item.name === 'video') ? '视频封面图' : item.description}</strong>}
+                                    key={item.name}
+                                >
+                                    {/* 视频 */}
+                                    {(item.name === 'short_video1' || item.name === 'video') && <Form.Item
+                                        noStyle
+                                        rules={[{ required: true, message: '请选择素材!' }]}
+                                        name={item.name}
+                                        style={item.description === '图片' && adcreative_template?.adcreativeElements?.some(item => item.name === 'video') ? { order: 2 } : {}}
                                     >
-                                        {/* 视频 */}
-                                        {
-                                            (item.name === 'short_video1' || item.name === 'video') && <Form.Item
-                                                noStyle
-                                                rules={[{ required: true, message: '请选择素材!' }]}
-                                                name={item.name}
-                                                style={item.description === '图片' && adcreative_template?.adcreativeElements?.some(item => item.name === 'video') ? { order: 2 } : {}}
-                                            >
-                                                <div className={`${styles.box} ${styles.video}`} onClick={() => {
-                                                    init({ mediaType: 'VIDEO', cloudSize: adcreativeTemplateId === 1708 ? [[{ relation: '=', width: 1280, height: 720 }]] : [[{ relation: '=', width: item.restriction.videoRestriction.minWidth, height: item.restriction.videoRestriction.minHeight }]], maxSize: item.restriction.videoRestriction.fileSize * 1024 })
-                                                    setTimeout(() => {
-                                                        set_selectVideoVisible(true)
-                                                        setVideoMaterialConfig({
-                                                            ...videoMaterialConfig,
-                                                            type: item.name,
-                                                            max: 1,
-                                                            adcreativeTemplateId
-                                                        })
-                                                    }, 100)
-                                                }}>
-                                                    <p>
-                                                        {
-                                                            videoMaterialConfig?.list[0] ? <video src={videoMaterialConfig?.list[0].url} controls /> : <>
-                                                                <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>
-                                            </Form.Item>
-                                        }
-                                        {/* 单图 */}
-                                        {
-                                            item.name === 'image' && <Form.Item
-                                                noStyle
-                                                rules={[{ required: true, message: '请选择素材!' }]}
-                                                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 })
-                                                    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>
-                                            </Form.Item>
-                                        }
-                                        {/* {
-                                            item.description === '图片' && adcreative_template?.adcreativeElements?.some(item => item.name === 'video') && <Button onClick={videoToImgs} size='small' type='primary' disabled={!videoMaterialConfig.list[0]}>从视频生成封面图</Button>
-                                        } */}
-                                        {/* 多图 */}
-                                        {
-                                            item.name === 'image_list' && <Form.Item
-                                                noStyle
-                                                rules={[{ required: true, message: '请选择素材!' }]}
-                                                name={item.name}
-                                                style={item.description === '图片' && adcreative_template?.adcreativeElements?.some(item => item.name === 'video') ? { order: 2 } : {}}
-                                            >
-                                                <div className={`${styles.box} ${item.arrayProperty.maxNumber >= 3 ? styles.image_list : styles.image}`} onClick={() => {
-                                                    init({ mediaType: 'IMG', num: item.arrayProperty.maxNumber, cloudSize: [[{ relation: '=', width: item.restriction.imageRestriction.width, height: item.restriction.imageRestriction.height }]], maxSize: item.restriction.imageRestriction.fileSize * 1024 })
-                                                    setTimeout(() => {
-                                                        set_selectImgVisible(true)
-                                                        setImgMaterialConfig({
-                                                            ...imgMaterialConfig,
-                                                            type: item.name,
-                                                            max: item.arrayProperty.maxNumber,
-                                                            adcreativeTemplateId
-                                                        })
-                                                    }, 100)
-                                                }}>
-                                                    {
-                                                        Array(item.arrayProperty.maxNumber).fill('').map((arr, index) => {
-                                                            return <p key={index}>
-                                                                {
-                                                                    imgMaterialConfig?.list[index] ? <img src={imgMaterialConfig?.list[index].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>
-                                            </Form.Item>
-                                        }
-                                        {
-                                            item.name === 'element_story' && <Form.Item
-                                                noStyle
-                                                rules={[{ required: true, message: '请选择素材!' }]}
-                                                name={item.name}
-                                                style={item.description === '图片' && adcreative_template?.adcreativeElements?.some(item => item.name === 'video') ? { order: 2 } : {}}
-                                            >
-                                                <div className={`${styles.box} ${item.arrayProperty.maxNumber >= 3 ? styles.image_list : styles.image}`} onClick={() => {
-                                                    init({ mediaType: 'IMG', num: item?.arrayProperty?.maxNumber, cloudSize: [[{ relation: '=', width: item?.restriction.imageRestriction?.width, height: item?.restriction.imageRestriction?.height }]], maxSize: item?.restriction?.imageRestriction?.fileSize * 1024 })
-                                                    setTimeout(() => {
-                                                        set_selectImgVisible(true)
-                                                        setImgMaterialConfig({
-                                                            ...imgMaterialConfig,
-                                                            type: item.name,
-                                                            max: item.arrayProperty.maxNumber,
-                                                            adcreativeTemplateId
-                                                        })
-                                                    }, 100)
-                                                }}>
-                                                    {
-                                                        Array(item.arrayProperty.maxNumber).fill('').map((arr, index) => {
-                                                            return <p key={index}>
-                                                                {
-                                                                    imgMaterialConfig?.list[index] ? <img style={item?.restriction.imageRestriction?.width > item?.restriction.imageRestriction?.height ? { width: '100%', height: 'auto' } : {}} src={imgMaterialConfig?.list[index].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>
-                                                                    </>
-                                                                }
+                                        <div className={`${styles.box} ${styles.video}`} onClick={() => {
+                                            init({ mediaType: 'VIDEO', cloudSize: adcreativeTemplateId === 1708 ? [[{ relation: '=', width: 1280, height: 720 }]] : [[{ relation: '=', width: item.restriction.videoRestriction.minWidth, height: item.restriction.videoRestriction.minHeight }]], maxSize: item.restriction.videoRestriction.fileSize * 1024 })
+                                            setTimeout(() => {
+                                                set_selectVideoVisible(true)
+                                                setVideoMaterialConfig({
+                                                    ...videoMaterialConfig,
+                                                    type: item.name,
+                                                    max: 1,
+                                                    adcreativeTemplateId
+                                                })
+                                            }, 100)
+                                        }}>
+                                            <p>
+                                                {videoMaterialConfig?.list[0] ? <video src={videoMaterialConfig?.list[0].url} controls /> : <>
+                                                    <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>
+                                    </Form.Item>}
+                                    {/* 单图 */}
+                                    {item.name === 'image' && <Form.Item
+                                        noStyle
+                                        rules={[{ required: true, message: '请选择素材!' }]}
+                                        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>
-                                                        })
-                                                    }
-                                                </div>
-                                            </Form.Item>
-                                        }
-                                    </Form.Item>
-                                })
-                            }
+                                        }}>
+                                            <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>
+                                    </Form.Item>}
+                                    {/* 多图 */}
+                                    {item.name === 'image_list' && <Form.Item
+                                        noStyle
+                                        rules={[{ required: true, message: '请选择素材!' }]}
+                                        name={item.name}
+                                        style={item.description === '图片' && adcreative_template?.adcreativeElements?.some(item => item.name === 'video') ? { order: 2 } : {}}
+                                    >
+                                        <div className={`${styles.box} ${item.arrayProperty.maxNumber >= 3 ? styles.image_list : styles.image}`} onClick={() => {
+                                            init({ mediaType: 'IMG', num: item.arrayProperty.maxNumber, cloudSize: [[{ relation: '=', width: item.restriction.imageRestriction.width, height: item.restriction.imageRestriction.height }]], maxSize: item.restriction.imageRestriction.fileSize * 1024 })
+                                            setimgType('many')
+                                            setTimeout(() => {
+                                                set_selectImgVisible(true)
+                                                setImgListMaterialConfig({
+                                                    ...imgListMaterialConfig,
+                                                    type: item.name,
+                                                    max: item.arrayProperty.maxNumber,
+                                                    adcreativeTemplateId
+                                                })
+                                            }, 100)
+                                        }}>
+                                            {Array(item.arrayProperty.maxNumber).fill('').map((arr, index) => {
+                                                return <p key={index}>
+                                                    {imgListMaterialConfig?.list[index] ? <img src={imgListMaterialConfig?.list[index].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>
+                                    </Form.Item>}
+                                    {item.name === 'element_story' && <Form.Item
+                                        noStyle
+                                        rules={[{ required: true, message: '请选择素材!' }]}
+                                        name={item.name}
+                                        style={item.description === '图片' && adcreative_template?.adcreativeElements?.some(item => item.name === 'video') ? { order: 2 } : {}}
+                                    >
+                                        <div className={`${styles.box} ${item.arrayProperty.maxNumber >= 3 ? styles.image_list : styles.image}`} onClick={() => {
+                                            init({ mediaType: 'IMG', num: item?.arrayProperty?.maxNumber, 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: item.arrayProperty.maxNumber,
+                                                    adcreativeTemplateId
+                                                })
+                                            }, 100)
+                                        }}>
+                                            {Array(item.arrayProperty.maxNumber).fill('').map((arr, index) => {
+                                                return <p key={index}>
+                                                    {imgMaterialConfig?.list[index] ? <img style={item?.restriction.imageRestriction?.width > item?.restriction.imageRestriction?.height ? { width: '100%', height: 'auto' } : {}} src={imgMaterialConfig?.list[index].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>
+                                    </Form.Item>}
+                                </Form.Item>
+                            })}
                         </div>}
 
                         {/* 标题 */}
@@ -877,230 +873,199 @@ function CreativePup(props: Props) {
                                             />
                                         </Form.Item>
                                         <span>{`${titles?.length ?? 0}/${item.restriction.textRestriction.maxLength}`}</span>
-                                        {
-                                            titleShow && <List
-                                                loading={getTextLsit?.loading}
-                                                size="small"
-                                                style={{ maxHeight: 300, overflowX: 'auto' }}
-                                                bordered
-                                                dataSource={getTextLsit?.data?.returnTexts}
-                                                renderItem={(item: any) => <List.Item onClick={() => {
-                                                    form.setFieldsValue({ title: item.text })
-                                                    settitleshow(false)
-                                                }}><span >{item.text}{item.tag && <span className={styles.crt}>{'CTR 高'}</span>}</span></List.Item>}
-                                            />
-                                        }
+                                        {titleShow && <List
+                                            loading={getTextLsit?.loading}
+                                            size="small"
+                                            style={{ maxHeight: 300, overflowX: 'auto' }}
+                                            bordered
+                                            dataSource={getTextLsit?.data?.returnTexts}
+                                            renderItem={(item: any) => <List.Item onClick={() => {
+                                                form.setFieldsValue({ title: item.text })
+                                                settitleshow(false)
+                                            }}><span >{item.text}{item.tag && <span className={styles.crt}>{'CTR 高'}</span>}</span></List.Item>}
+                                        />}
                                     </Form.Item>
                                 </div>
                             })
                         }
-                        {//过滤了不必传和品牌名称,品牌标识图(外部传)短视频结构(组装使用)
-                            adcreative_template?.adcreativeElements?.filter(item => item.required && item.name === 'description').map(item => {
-                                let maxNum = adcreativeTemplateId === 1708 || adcreativeTemplateId === 1707 ? pupState.xd_show ? 10 : item.restriction.textRestriction.maxLength : item.restriction.textRestriction.maxLength
-                                return <div key={item.fieldType}>
-                                    <Form.Item label={<strong>{item.description}</strong>} className={'my_description'}>
-                                        <Form.Item name={item.name} noStyle rules={[{ required: true, pattern: RegExp(item.restriction.textRestriction.textPattern?.replace(/\+/ig, `{1,${maxNum}}`)), message: '请输入正确的' + item.description }]}>
-                                            <Input
-                                                placeholder={'请输入' + item.description}
-                                                style={{ width: 500 }}
-                                                onFocus={() => {
-                                                    setdescriptionshow(true)
-                                                    textList({ maxTextLength: maxNum })
-                                                }}
-                                                onChange={(e) => {
-                                                    let value = e.target.value
-                                                    textList({ maxTextLength: maxNum, keyword: value })
-                                                }}
-                                                allowClear
-                                            />
-                                        </Form.Item>
-                                        <span>{`${description?.length ?? 0}/${maxNum}`}</span>
-                                        {
-                                            descriptionShow && <List
-                                                loading={getTextLsit?.loading}
-                                                size="small"
-                                                style={{ maxHeight: 300, overflowX: 'auto' }}
-                                                bordered
-                                                dataSource={getTextLsit?.data?.returnTexts}
-                                                renderItem={(item: any) => <List.Item onClick={(e: any) => {
-                                                    form.setFieldsValue({ description: item.text })
-                                                    setdescriptionshow(false)
-                                                }}><span >{item.text}{item.tag && <span className={styles.crt}>{'CTR 高'}</span>}</span></List.Item>}
-                                            />
-                                        }
+                        {/* 过滤了不必传和品牌名称,品牌标识图(外部传)短视频结构(组装使用) */}
+                        {adcreative_template?.adcreativeElements?.filter(item => item.required && item.name === 'description').map(item => {
+                            let maxNum = adcreativeTemplateId === 1708 || adcreativeTemplateId === 1707 ? pupState.xd_show ? 10 : item.restriction.textRestriction.maxLength : item.restriction.textRestriction.maxLength
+                            return <div key={item.fieldType}>
+                                <Form.Item label={<strong>{item.description}</strong>} className={'my_description'}>
+                                    <Form.Item name={item.name} noStyle rules={[{ required: true, pattern: RegExp(item.restriction.textRestriction.textPattern?.replace(/\+/ig, `{1,${maxNum}}`)), message: '请输入正确的' + item.description }]}>
+                                        <Input
+                                            placeholder={'请输入' + item.description}
+                                            style={{ width: 500 }}
+                                            onFocus={() => {
+                                                setdescriptionshow(true)
+                                                textList({ maxTextLength: maxNum })
+                                            }}
+                                            onChange={(e) => {
+                                                let value = e.target.value
+                                                textList({ maxTextLength: maxNum, keyword: value })
+                                            }}
+                                            allowClear
+                                        />
                                     </Form.Item>
-                                </div>
-                            })
-                        }
+                                    <span>{`${description?.length ?? 0}/${maxNum}`}</span>
+                                    {descriptionShow && <List
+                                        loading={getTextLsit?.loading}
+                                        size="small"
+                                        style={{ maxHeight: 300, overflowX: 'auto' }}
+                                        bordered
+                                        dataSource={getTextLsit?.data?.returnTexts}
+                                        renderItem={(item: any) => <List.Item onClick={(e: any) => {
+                                            form.setFieldsValue({ description: item.text })
+                                            setdescriptionshow(false)
+                                        }}><span >{item.text}{item.tag && <span className={styles.crt}>{'CTR 高'}</span>}</span></List.Item>}
+                                    />}
+                                </Form.Item>
+                            </div>
+                        })}
                         {/* ============================================================落地页============================================================= */}
                         {adcreativeTemplateId ? <Form.Item label={<strong>落地页</strong>} name='pageType' >
                             <Radio.Group>
-                                {
-                                    pageTypeList?.map((item: any) => {
-                                        return <Radio.Button value={item.pageType} key={item.pageType} disabled={!item.description.includes('微信原生推广页')}>{item.description.includes('微信原生推广页') ? '微信原生推广页' : item.description}</Radio.Button>
-                                    })
-                                }
+                                {pageTypeList?.map((item: any) => {
+                                    return <Radio.Button value={item.pageType} key={item.pageType} disabled={!item.description.includes('微信原生推广页')}>{item.description.includes('微信原生推广页') ? '微信原生推广页' : item.description}</Radio.Button>
+                                })}
                             </Radio.Group>
                         </Form.Item> : <div style={{ minHeight: 400, display: 'flex', justifyContent: 'center', alignItems: 'center' }}>
                             <Empty description="请先选择创意形式" />
                         </div>}
-                        {
-                            pageType === 'PAGE_TYPE_CANVAS_WECHAT' && isShowSc && <Form.Item label={<strong>素材选项</strong>} name='overrideCanvasHeadOption'>
-                                <Radio.Group >
-                                    {
-                                        adcreativeTemplateId && creativeConfig[adcreativeTemplateId]?.overrideCanvasHeadOption?.map((item: string | number) => {
-                                            return <Radio value={item} key={item}>{overrideCanvasHeadOptionEnum[item]}</Radio>
-                                        })
-                                    }
-                                </Radio.Group>
-                            </Form.Item>
-                        }
+                        {pageType === 'PAGE_TYPE_CANVAS_WECHAT' && isShowSc && <Form.Item label={<strong>素材选项</strong>} name='overrideCanvasHeadOption'>
+                            <Radio.Group >
+                                {adcreativeTemplateId && creativeConfig[adcreativeTemplateId]?.overrideCanvasHeadOption?.map((item: string | number) => {
+                                    return <Radio value={item} key={item}>{overrideCanvasHeadOptionEnum[item]}</Radio>
+                                })}
+                            </Radio.Group>
+                        </Form.Item>}
                         {/* ============================================================普通行动按钮============================================================= */}
-                        {
-                            pupState.xd_show && <Form.Item hidden={isShowXd} label={<strong>行动按钮</strong>} name='actionBtn' valuePropName="checked">
-                                <Switch checkedChildren="开启" unCheckedChildren="关闭" disabled={isShowXd} />
+                        {pupState.xd_show && <Form.Item hidden={isShowXd} label={<strong>行动按钮</strong>} name='actionBtn' valuePropName="checked">
+                            <Switch checkedChildren="开启" unCheckedChildren="关闭" disabled={isShowXd} />
+                        </Form.Item>}
+                        {actionBtn && <>
+                            <Form.Item name='linkNameType' label={<strong>按钮文案</strong>}>
+                                <Select style={{ width: 200 }} showSearch filterOption={(input, option) =>
+                                    (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase())
+                                } allowClear>
+                                    {linkNameList?.map((item: any) => {
+                                        return <Select.Option value={item.linkNameType} key={item.linkNameType}>{item.description}</Select.Option>
+                                    })}
+                                </Select>
                             </Form.Item>
-                        }
-                        {
-                            actionBtn && <>
-                                <Form.Item name='linkNameType' label={<strong>按钮文案</strong>}>
-                                    <Select style={{ width: 200 }} showSearch filterOption={(input, option) =>
-                                        (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase())
-                                    } allowClear>
-                                        {
-                                            linkNameList?.map((item: any) => {
-                                                return <Select.Option value={item.linkNameType} key={item.linkNameType}>{item.description}</Select.Option>
-                                            })
-                                        }
-                                    </Select>
+                            <Form.Item label={<strong>跳转落地页</strong>}>
+                                <Form.Item name='linkPageType' noStyle>
+                                    <Radio.Group style={{ display: 'flex' }}>
+                                        {linkPageList?.map((item: { linkPageType: string; description: string; }, index: number) => {
+                                            return <Radio.Button value={item.linkPageType} key={item.linkPageType} >{item.description}</Radio.Button>
+                                        })}
+                                    </Radio.Group>
                                 </Form.Item>
-                                <Form.Item label={<strong>跳转落地页</strong>}>
-                                    <Form.Item name='linkPageType' noStyle>
-                                        <Radio.Group style={{ display: 'flex' }}>
-                                            {
-                                                linkPageList?.map((item: { linkPageType: string; description: string; }, index: number) => {
-                                                    return <Radio.Button value={item.linkPageType} key={item.linkPageType} >{item.description}</Radio.Button>
-                                                })
-                                            }
-                                        </Radio.Group>
-                                    </Form.Item>
-                                    {/* 自定义落地页地址 */}
-                                    {linkPageType === "LINK_PAGE_TYPE_DEFAULT" && <Form.Item name='pageUrl' rules={[{ required: true, message: '请输入自定义落地页地址' }]} style={{ marginTop: 10, marginBottom: 0 }}>
-                                        <Input placeholder='请输入自定义落地页地址' style={{ width: 300 }} />
-                                    </Form.Item>}
-                                    {/* 小程序 */}
-                                    {
-                                        linkPageType === "LINK_PAGE_TYPE_MINI_PROGRAM_WECHAT" && <Form.Item noStyle >
-                                            <Form.Item rules={[{ required: true, message: '请输入小程序原始ID' }]} name='miniProgramId' style={{ marginTop: 10, marginBottom: 0 }} >
-                                                <Input placeholder='请输入小程序原始ID' style={{ width: 300 }} />
-                                            </Form.Item>
-                                            <Form.Item rules={[{ required: true, message: '请输入小程序链接' }]} name='miniProgramPath' style={{ marginTop: 10, marginBottom: 0 }}>
-                                                <Input placeholder='请输入小程序链接' style={{ width: 300 }} />
-                                            </Form.Item>
+                                {/* 自定义落地页地址 */}
+                                {linkPageType === "LINK_PAGE_TYPE_DEFAULT" && <Form.Item name='pageUrl' rules={[{ required: true, message: '请输入自定义落地页地址' }]} style={{ marginTop: 10, marginBottom: 0 }}>
+                                    <Input placeholder='请输入自定义落地页地址' style={{ width: 300 }} />
+                                </Form.Item>}
+                                {/* 小程序 */}
+                                {
+                                    linkPageType === "LINK_PAGE_TYPE_MINI_PROGRAM_WECHAT" && <Form.Item noStyle >
+                                        <Form.Item rules={[{ required: true, message: '请输入小程序原始ID' }]} name='miniProgramId' style={{ marginTop: 10, marginBottom: 0 }} >
+                                            <Input placeholder='请输入小程序原始ID' style={{ width: 300 }} />
                                         </Form.Item>
-                                    }
-                                </Form.Item>
-                                {/* 落地页 */}
+                                        <Form.Item rules={[{ required: true, message: '请输入小程序链接' }]} name='miniProgramPath' style={{ marginTop: 10, marginBottom: 0 }}>
+                                            <Input placeholder='请输入小程序链接' style={{ width: 300 }} />
+                                        </Form.Item>
+                                    </Form.Item>
+                                }
+                            </Form.Item>
+                            {/* 落地页 */}
 
-                            </>
-                        }
+                        </>}
                         {/* ============================================================特殊行动按钮============================================================= */}
-                        {
-                            !pupState.xd_show && adcreative_template?.adcreativeElements?.find(item => item.name === 'button_text') && <Form.Item label={<strong>行动按钮</strong>} >
-                                <Form.Item valuePropName="checked" noStyle >
-                                    <Switch checkedChildren="开启" unCheckedChildren="关闭" checked={true} disabled defaultChecked={true} />
-                                </Form.Item>
-                            </Form.Item>
-                        }
-                        {
-                            !pupState.xd_show && adcreative_template?.adcreativeElements?.find(item => item.name === 'button_text') && <Form.Item name='buttonText' label={<strong>按钮文案</strong>} rules={[{ required: true, message: '请选择按钮文案!' }]}>
-                                <Select style={{ width: 200 }} showSearch filterOption={(input, option) =>
-                                    (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase())
-                                } allowClear>
-                                    {
-                                        adcreative_template?.adcreativeElements?.find(item => item.name === 'button_text')?.enumProperty?.enumeration?.map((item: any) => {
-                                            return <Select.Option value={item.value} key={item.value}>{item.value}</Select.Option>
-                                        })
-                                    }
-                                </Select>
+                        {!pupState.xd_show && adcreative_template?.adcreativeElements?.find(item => item.name === 'button_text') && <Form.Item label={<strong>行动按钮</strong>} >
+                            <Form.Item valuePropName="checked" noStyle >
+                                <Switch checkedChildren="开启" unCheckedChildren="关闭" checked={true} disabled defaultChecked={true} />
                             </Form.Item>
-                        }
+                        </Form.Item>}
+                        {!pupState.xd_show && adcreative_template?.adcreativeElements?.find(item => item.name === 'button_text') && <Form.Item name='buttonText' label={<strong>按钮文案</strong>} rules={[{ required: true, message: '请选择按钮文案!' }]}>
+                            <Select style={{ width: 200 }} showSearch filterOption={(input, option) =>
+                                (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase())
+                            } allowClear>
+                                {
+                                    adcreative_template?.adcreativeElements?.find(item => item.name === 'button_text')?.enumProperty?.enumeration?.map((item: any) => {
+                                        return <Select.Option value={item.value} key={item.value}>{item.value}</Select.Option>
+                                    })
+                                }
+                            </Select>
+                        </Form.Item>}
                         {/* ============================================================数据展示============================================================= */}
                         {pupState.sj_show && <Form.Item label={<strong>数据展示</strong>} name='dataShow' valuePropName="checked">
                             <Switch checkedChildren="开启" unCheckedChildren="关闭" />
                         </Form.Item>}
-                        {
-                            dataShow && <>
-                                <Form.Item name='conversionDataType' label={<strong>数据类型</strong>}>
-                                    <Radio.Group>
-                                        {
-                                            conversionList?.conversion_data_type?.map((item: { value: string; description: string; }, index: number) => {
-                                                return <Radio.Button value={item.value} key={item.value}>{item.description}</Radio.Button>
-                                            })
-                                        }
-                                    </Radio.Group>
-                                </Form.Item>
-                                {conversionList?.conversion_target_type && conversionDataType === 'CONVERSION_DATA_ADMETRIC' && <Form.Item name='conversionTargetType' label={<strong>转化行为</strong>}>
-                                    <Radio.Group>
-                                        {
-                                            conversionList?.conversion_target_type?.map((item: { value: string; description: string; }, index: number) => {
-                                                return <Radio.Button value={item.value} key={item.value}>{item.description}</Radio.Button>
-                                            })
-                                        }
-                                    </Radio.Group>
-                                </Form.Item>}
-                            </>
-                        }
+                        {dataShow && <>
+                            <Form.Item name='conversionDataType' label={<strong>数据类型</strong>}>
+                                <Radio.Group>
+                                    {
+                                        conversionList?.conversion_data_type?.map((item: { value: string; description: string; }, index: number) => {
+                                            return <Radio.Button value={item.value} key={item.value}>{item.description}</Radio.Button>
+                                        })
+                                    }
+                                </Radio.Group>
+                            </Form.Item>
+                            {conversionList?.conversion_target_type && conversionDataType === 'CONVERSION_DATA_ADMETRIC' && <Form.Item name='conversionTargetType' label={<strong>转化行为</strong>}>
+                                <Radio.Group>
+                                    {
+                                        conversionList?.conversion_target_type?.map((item: { value: string; description: string; }, index: number) => {
+                                            return <Radio.Button value={item.value} key={item.value}>{item.description}</Radio.Button>
+                                        })
+                                    }
+                                </Radio.Group>
+                            </Form.Item>}
+                        </>}
                         {/* ============================================================视频结束页============================================================= */}
                         {pupState.sp_show && <Form.Item label={<strong>视频结束页</strong>} name='videoOver' valuePropName="checked">
                             <Switch checkedChildren="开启" unCheckedChildren="关闭" />
                         </Form.Item>}
-                        {
-                            videoOver && <>
-                                <Form.Item name='endPageType' label={<strong>视频结束页类型</strong>} >
-                                    <Radio.Group>
-                                        {
-                                            adcreative_template?.adcreativeElements?.filter(item => item.name === 'end_page_type')[0]?.enumProperty?.enumeration?.map((item) => {
-                                                return <Radio.Button value={item.value} key={item.value}>{item.description}</Radio.Button>
-                                            })
-                                        }
-                                    </Radio.Group>
-                                </Form.Item>
-                                <div className={'my_endPageDesc'} >
-                                    <Form.Item label={<strong>结束文案</strong>}>
-                                        <Form.Item name='endPageDesc' rules={[{ required: true, pattern: RegExp("^[^\\<\\>\\&'\\\"\\/\\x08\\x09\\x0A\\x0D\\\\]{1,12}$"), message: '请输入正确的结束页文案' }]} noStyle>
-                                            <Input
-                                                placeholder='请输入结束页文案'
-                                                style={{ width: 300 }}
-                                                onFocus={() => {
-                                                    setendPageDescnshow(true)
-                                                    textList({ maxTextLength: 12 })
-                                                }}
-                                                onChange={(e) => {
-                                                    let value = e.target.value
-                                                    textList({ maxTextLength: 12, keyword: value })
-                                                }}
-                                                allowClear
-                                            />
-                                        </Form.Item>
-                                        <span>{endPageDesc?.length || 0}/12</span>
-                                        {
-                                            endPageDescShow && <List
-                                                loading={getTextLsit?.loading}
-                                                size="small"
-                                                style={{ maxHeight: 300, maxWidth: 300, overflowX: 'auto' }}
-                                                bordered
-                                                dataSource={getTextLsit?.data?.returnTexts}
-                                                renderItem={(item: any) => <List.Item onClick={(e: any) => {
-                                                    form.setFieldsValue({ endPageDesc: item.text })
-                                                    setendPageDescnshow(false)
-                                                }}><span >{item.text}{item.tag && <span className={styles.crt}>{'CTR 高'}</span>}</span></List.Item>}
-                                            />
-                                        }
+                        {videoOver && <>
+                            <Form.Item name='endPageType' label={<strong>视频结束页类型</strong>} >
+                                <Radio.Group>
+                                    {adcreative_template?.adcreativeElements?.filter(item => item.name === 'end_page_type')[0]?.enumProperty?.enumeration?.map((item) => {
+                                        return <Radio.Button value={item.value} key={item.value}>{item.description}</Radio.Button>
+                                    })}
+                                </Radio.Group>
+                            </Form.Item>
+                            <div className={'my_endPageDesc'} >
+                                <Form.Item label={<strong>结束文案</strong>}>
+                                    <Form.Item name='endPageDesc' rules={[{ required: true, pattern: RegExp("^[^\\<\\>\\&'\\\"\\/\\x08\\x09\\x0A\\x0D\\\\]{1,12}$"), message: '请输入正确的结束页文案' }]} noStyle>
+                                        <Input
+                                            placeholder='请输入结束页文案'
+                                            style={{ width: 300 }}
+                                            onFocus={() => {
+                                                setendPageDescnshow(true)
+                                                textList({ maxTextLength: 12 })
+                                            }}
+                                            onChange={(e) => {
+                                                let value = e.target.value
+                                                textList({ maxTextLength: 12, keyword: value })
+                                            }}
+                                            allowClear
+                                        />
                                     </Form.Item>
-                                </div>
-                            </>
-                        }
+                                    <span>{endPageDesc?.length || 0}/12</span>
+                                    {endPageDescShow && <List
+                                        loading={getTextLsit?.loading}
+                                        size="small"
+                                        style={{ maxHeight: 300, maxWidth: 300, overflowX: 'auto' }}
+                                        bordered
+                                        dataSource={getTextLsit?.data?.returnTexts}
+                                        renderItem={(item: any) => <List.Item onClick={(e: any) => {
+                                            form.setFieldsValue({ endPageDesc: item.text })
+                                            setendPageDescnshow(false)
+                                        }}><span >{item.text}{item.tag && <span className={styles.crt}>{'CTR 高'}</span>}</span></List.Item>}
+                                    />}
+                                </Form.Item>
+                            </div>
+                        </>}
                     </>
             }
             {/* ============================================================基本信息============================================================= */}
@@ -1111,67 +1076,70 @@ function CreativePup(props: Props) {
             </Form.Item>
         </Form>
         {/* 选择图片素材 */}
-        {
-            selectImgVisible && <SelectCloud
-                visible={selectImgVisible}
-                onClose={() => {
-                    set_selectImgVisible(false)
-                }}
-                sliderImgContent={imgMaterialConfig.list}
-                onChange={(content) => {
+        {selectImgVisible && <SelectCloud
+            visible={selectImgVisible}
+            onClose={() => {
+                set_selectImgVisible(false)
+            }}
+            sliderImgContent={imgType === 'many' ? imgListMaterialConfig.list : imgMaterialConfig.list}
+            onChange={(content) => {
+                if (imgType === 'many') {
+                    setImgListMaterialConfig({ ...imgListMaterialConfig, list: content })
                     if (content.length > 0) {
-                        form.setFieldsValue({ [imgMaterialConfig.type]: imgMaterialConfig.type })
+                        form.setFieldsValue({ [imgListMaterialConfig.type]: imgListMaterialConfig.type })
                     }
+                } else {
                     setImgMaterialConfig({ ...imgMaterialConfig, list: content })
-                    set_selectImgVisible(false)
-                }} />
-        }
-        {/* 选择视频素材 */}
-        {
-            selectVideoVisible && <SelectCloud
-                visible={selectVideoVisible}
-                onClose={() => set_selectVideoVisible(false)}
-                sliderImgContent={videoMaterialConfig.list}
-                onChange={(content) => {
                     if (content.length > 0) {
-                        form.setFieldsValue({ [videoMaterialConfig.type]: videoMaterialConfig.type })
+                        form.setFieldsValue({ [imgMaterialConfig.type]: imgMaterialConfig.type })
                     }
-                    setVideoMaterialConfig({ ...videoMaterialConfig, list: content })
-                    set_selectVideoVisible(false)
-                }} />
-        }
+                }
+                set_selectImgVisible(false)
+            }}
+        />}
+        {/* 选择视频素材 */}
+        {selectVideoVisible && <SelectCloud
+            visible={selectVideoVisible}
+            onClose={() => set_selectVideoVisible(false)}
+            sliderImgContent={videoMaterialConfig.list}
+            onChange={(content) => {
+                if (content.length > 0) {
+                    form.setFieldsValue({ [videoMaterialConfig.type]: videoMaterialConfig.type })
+                }
+                setVideoMaterialConfig({ ...videoMaterialConfig, list: content })
+                set_selectVideoVisible(false)
+            }}
+        />}
         {/* 视频封面图弹窗 */}
-        {
-            videoImgsVisbile && <Modal
-                visible={videoImgsVisbile}
-                title={<div>生成封面图 <Switch checkedChildren="开启预览" unCheckedChildren="关闭预览" checked={videoImgs.preview} onChange={(checked) => { set_videoImgs({ ...videoImgs, preview: checked }) }} /></div>}
-                onOk={() => {
-                    if (videoImgs.activeUrl) {
-                        setImgMaterialConfig({ ...imgMaterialConfig, list: [{ url: videoImgs.activeUrl }] })
-                        set_videoImgsVisbile(false)
-                    } else {
-                        message.error('请选择图片,获取使用取消按钮关闭弹窗!')
-                    }
-                }}
-                onCancel={() => { set_videoImgsVisbile(false) }}
-                confirmLoading={getVideoCapture.loading}
-                width={600}
-            >
+        {videoImgsVisbile && <Modal
+            visible={videoImgsVisbile}
+            title={<div>生成封面图 <Switch checkedChildren="开启预览" unCheckedChildren="关闭预览" checked={videoImgs.preview} onChange={(checked) => { set_videoImgs({ ...videoImgs, preview: checked }) }} /></div>}
+            onOk={() => {
+                if (videoImgs.activeUrl) {
+                    setImgMaterialConfig({ ...imgMaterialConfig, list: [{ url: videoImgs.activeUrl }] })
+                    set_videoImgsVisbile(false)
+                } else {
+                    message.error('请选择图片,获取使用取消按钮关闭弹窗!')
+                }
+            }}
+            onCancel={() => { set_videoImgsVisbile(false) }}
+            confirmLoading={getVideoCapture.loading}
+            width={600}
+        >
 
-                <Radio.Group className={styles.videoImgs} onChange={(e) => {
-                    let url = e.target.value
-                    set_videoImgs({ ...videoImgs, activeUrl: url })
-                }}>
-                    {
-                        videoImgs?.urlList?.map((item: any, index: number) => {
-                            return <Radio.Button value={item} key={index}>
-                                <Image src={item} preview={videoImgs.preview} />
-                            </Radio.Button>
-                        })
-                    }
-                </Radio.Group>
-            </Modal>
-        }
+            <Radio.Group className={styles.videoImgs} onChange={(e) => {
+                let url = e.target.value
+                set_videoImgs({ ...videoImgs, activeUrl: url })
+            }}>
+                {
+                    videoImgs?.urlList?.map((item: any, index: number) => {
+                        return <Radio.Button value={item} key={index}>
+                            <Image src={item} preview={videoImgs.preview} />
+                        </Radio.Button>
+                    })
+                }
+            </Radio.Group>
+        </Modal>}
     </Modal >
 }
 export default CreativePup

+ 1 - 1
src/pages/launchSystemNew/launchManage/createAd/creativeCL/modal/index.tsx

@@ -308,7 +308,7 @@ function CreativePup(props: Props) {
                 })
                 /*****暂时排除激励和banner有问题******/
                 if (siteSet.some((i: string) => i === 'SITE_SET_MOMENTS')) {
-                    newArr = newArr.filter((item: { adcreativeTemplateId: number }) => item.adcreativeTemplateId !== 910 && item.adcreativeTemplateId !== 925)
+                    newArr = newArr.filter((item: { adcreativeTemplateId: number }) => item.adcreativeTemplateId !== 910 && item.adcreativeTemplateId !== 925 && item.adcreativeTemplateId !== 2107 && item.adcreativeTemplateId !== 2109)
                 }
                 /*****暂时排除出框形态 视频合约广告******/
                 if (siteSet.some((i: string) => i === 'SITE_SET_WECHAT')) {

+ 8 - 1
src/pages/launchSystemNew/launchManage/createAd/index.less

@@ -49,6 +49,11 @@
   .content {
     border: 1px solid #f0f0f0;
     box-sizing: border-box;
+    border-top: none;
+
+    &>div {
+      border-top: 1px solid #f0f0f0;
+    }
 
     .conTitle {
       height: 38px;
@@ -165,7 +170,9 @@
           line-height: 40px;
           display: flex;
           justify-content: center;
-          
+          text-overflow: ellipsis;
+          overflow: hidden;
+          white-space: nowrap;
 
           span {
             cursor: pointer;

+ 4 - 4
src/pages/launchSystemNew/launchManage/createAd/index.tsx

@@ -641,7 +641,7 @@ const CreateAd: React.FC = () => {
             hoverable
             extra={<AddGroup onChange={usersChange} pitcherData={getAdAccount?.data?.data} />}
         >
-            <Space>
+            <Space wrap>
                 <Selector label="媒体账户组">
                     <Select
                         mode="multiple"
@@ -709,7 +709,7 @@ const CreateAd: React.FC = () => {
 
             <div className={style.cardBody}>
                 <Row className={style.content}>
-                    <Col span={launchMode === 1 ? 12 : 8} className={style.conLeft}>
+                    <Col span={launchMode === 1 ? 12 : 8} xl={launchMode === 1 ? 12 : 8} lg={24} md={24} sm={24} xs={24} className={style.conLeft}>
                         <Row className={`${style.conTitle} ${style.conRightBorder}`}><Col span={24}>广告</Col></Row>
                         <Row className={style.items}>
                             {/* =============广告基本信息=========== */}
@@ -796,7 +796,7 @@ const CreateAd: React.FC = () => {
                         </Row>
                     </Col>
                     {/* =============广告创意=========== */}
-                    {launchMode === 1 ? <Col span={12} className={style.conRight}>
+                    {launchMode === 1 ? <Col span={12} xl={12} lg={24} md={24} sm={24} xs={24} className={style.conRight}>
                         <Row className={style.conTitle}><Col span={24}>广告创意</Col></Row>
                         <Row className={style.items}>
                             {/* 创意 */}
@@ -888,7 +888,7 @@ const CreateAd: React.FC = () => {
                                 </div>
                             </Col>
                         </Row>
-                    </Col> : <Col span={16} className={style.conRight}>
+                    </Col> : <Col span={16} xl={16} lg={24} md={24} sm={24} xs={24} className={style.conRight}>
                         <Row className={style.conTitle}><Col span={24}>广告创意</Col></Row>
                         <Row className={style.items}>
                             {/* 创意 */}