|  | @@ -1,27 +1,32 @@
 | 
											
												
													
														|  | 
 |  | +import Tables from "@/components/Tables"
 | 
											
												
													
														|  |  import { useAjax } from "@/Hook/useAjax"
 |  |  import { useAjax } from "@/Hook/useAjax"
 | 
											
												
													
														|  |  import { CreateAdProps } from "@/services/launchAdq/createAd"
 |  |  import { CreateAdProps } from "@/services/launchAdq/createAd"
 | 
											
												
													
														|  |  import { BidModeEnum, BidStrategyEnum, OptimizationGoalEnum, PromotedObjectType, SiteSetEnum } from "@/services/launchAdq/enum"
 |  |  import { BidModeEnum, BidStrategyEnum, OptimizationGoalEnum, PromotedObjectType, SiteSetEnum } from "@/services/launchAdq/enum"
 | 
											
												
													
														|  |  import { getSysAdgroupsInfo } from "@/services/launchAdq/localAd"
 |  |  import { getSysAdgroupsInfo } from "@/services/launchAdq/localAd"
 | 
											
												
													
														|  |  import { getsysTargetingInfo } from "@/services/launchAdq/targeting"
 |  |  import { getsysTargetingInfo } from "@/services/launchAdq/targeting"
 | 
											
												
													
														|  | -import { CloseOutlined } from "@ant-design/icons"
 |  | 
 | 
											
												
													
														|  | -import { Button, Card, Col, Empty, Row, Select, Space, Spin, Tooltip } from "antd"
 |  | 
 | 
											
												
													
														|  | 
 |  | +import { CloseOutlined, SearchOutlined } from "@ant-design/icons"
 | 
											
												
													
														|  | 
 |  | +import { Button, Card, Col, Empty, Row, Select, Space, Spin, Tooltip, Image, message } from "antd"
 | 
											
												
													
														|  |  import React, { useEffect, useState } from "react"
 |  |  import React, { useEffect, useState } from "react"
 | 
											
												
													
														|  |  import { useModel } from "umi"
 |  |  import { useModel } from "umi"
 | 
											
												
													
														|  |  import AdModal from "../../components/adModal"
 |  |  import AdModal from "../../components/adModal"
 | 
											
												
													
														|  |  import DataSourceModal from "../../components/dataSourceModal"
 |  |  import DataSourceModal from "../../components/dataSourceModal"
 | 
											
												
													
														|  |  import GoodsModal from "../../components/goodsModal"
 |  |  import GoodsModal from "../../components/goodsModal"
 | 
											
												
													
														|  |  import IdModal from "../../components/idModal"
 |  |  import IdModal from "../../components/idModal"
 | 
											
												
													
														|  | 
 |  | +import LookLanding from "../../components/lookLanding"
 | 
											
												
													
														|  |  import SelectCloud from "../../components/selectCloud"
 |  |  import SelectCloud from "../../components/selectCloud"
 | 
											
												
													
														|  |  import TargetingModal from "../../components/targetingModal"
 |  |  import TargetingModal from "../../components/targetingModal"
 | 
											
												
													
														|  | 
 |  | +import { WxAutoButton } from "../../req"
 | 
											
												
													
														|  |  import style from './index.less'
 |  |  import style from './index.less'
 | 
											
												
													
														|  |  import Selector from "./selector"
 |  |  import Selector from "./selector"
 | 
											
												
													
														|  | 
 |  | +import SubmitModal from "./submitModal"
 | 
											
												
													
														|  | 
 |  | +import columns from "./tableConfig"
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  const CreateAd: React.FC = () => {
 |  |  const CreateAd: React.FC = () => {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      /*************************/
 |  |      /*************************/
 | 
											
												
													
														|  |      const { getAdAccount } = useModel('useLaunchAdq.useAdAuthorize')
 |  |      const { getAdAccount } = useModel('useLaunchAdq.useAdAuthorize')
 | 
											
												
													
														|  |      const [queryForm, setQueryForm] = useState<Partial<CreateAdProps>>({
 |  |      const [queryForm, setQueryForm] = useState<Partial<CreateAdProps>>({
 | 
											
												
													
														|  | -        campaignName: '',
 |  | 
 | 
											
												
													
														|  | 
 |  | +        campaignName: '',  // 计划名称
 | 
											
												
													
														|  |          campaignType: 'CAMPAIGN_TYPE_NORMAL', // 计划类型 CAMPAIGN_TYPE_NORMAL CAMPAIGN_TYPE_SEARCH 
 |  |          campaignType: 'CAMPAIGN_TYPE_NORMAL', // 计划类型 CAMPAIGN_TYPE_NORMAL CAMPAIGN_TYPE_SEARCH 
 | 
											
												
													
														|  |          promotedObjectType: 'PROMOTED_OBJECT_TYPE_WECHAT_OFFICIAL_ACCOUNT', // 推广目标类型
 |  |          promotedObjectType: 'PROMOTED_OBJECT_TYPE_WECHAT_OFFICIAL_ACCOUNT', // 推广目标类型
 | 
											
												
													
														|  |          speedMode: 'SPEED_MODE_STANDARD', // 投放速度模式
 |  |          speedMode: 'SPEED_MODE_STANDARD', // 投放速度模式
 | 
											
										
											
												
													
														|  | @@ -40,9 +45,14 @@ const CreateAd: React.FC = () => {
 | 
											
												
													
														|  |      const [sourceVisible, setSourceVisible] = useState<boolean>(false) // 选择数据源弹窗控制
 |  |      const [sourceVisible, setSourceVisible] = useState<boolean>(false) // 选择数据源弹窗控制
 | 
											
												
													
														|  |      const [idVisible, setIdVisible] = useState<boolean>(false) // 选择转化ID弹窗控制
 |  |      const [idVisible, setIdVisible] = useState<boolean>(false) // 选择转化ID弹窗控制
 | 
											
												
													
														|  |      const [selectImgVisible, setSelectImgVisible] = useState<boolean>(false) // 选择转化ID弹窗控制
 |  |      const [selectImgVisible, setSelectImgVisible] = useState<boolean>(false) // 选择转化ID弹窗控制
 | 
											
												
													
														|  | 
 |  | +    const [lookVisible, setLookVisible] = useState<boolean>(false) // 选择转化ID弹窗控制
 | 
											
												
													
														|  | 
 |  | +    const [subVisible, setSubVisible] = useState<boolean>(false) // 选择设置名称弹窗控制
 | 
											
												
													
														|  |      const getSysAdgroups = useAjax((params) => getSysAdgroupsInfo(params))
 |  |      const getSysAdgroups = useAjax((params) => getSysAdgroupsInfo(params))
 | 
											
												
													
														|  |      const getsysTargeting = useAjax((params) => getsysTargetingInfo(params))
 |  |      const getsysTargeting = useAjax((params) => getsysTargetingInfo(params))
 | 
											
												
													
														|  | -    const { init } = useModel('useLaunchAdq.useBdMediaPup')
 |  | 
 | 
											
												
													
														|  | 
 |  | +    const [wxButtonList, setWxButtonList] = useState<WxAutoButton[]>([])
 | 
											
												
													
														|  | 
 |  | +    const [tableData, setTableData] = useState<any[]>([])   // 预览表格
 | 
											
												
													
														|  | 
 |  | +    const [tableSelect, setTableSelect] = useState<any[]>([])
 | 
											
												
													
														|  | 
 |  | +    const { init, get } = useModel('useLaunchAdq.useBdMediaPup')
 | 
											
												
													
														|  |      /*************************/
 |  |      /*************************/
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      // 获取账户列表
 |  |      // 获取账户列表
 | 
											
										
											
												
													
														|  | @@ -64,6 +74,17 @@ const CreateAd: React.FC = () => {
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |      }, [queryForm?.sysTargetingId])
 |  |      }, [queryForm?.sysTargetingId])
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    /** 获取落地页详情 */
 | 
											
												
													
														|  | 
 |  | +    useEffect(() => {
 | 
											
												
													
														|  | 
 |  | +        if (queryForm?.sysPageId) {
 | 
											
												
													
														|  | 
 |  | +            get.run({ mediaType: 'PAGE', sysMediaId: queryForm?.sysPageId }).then(res => {
 | 
											
												
													
														|  | 
 |  | +                let data = res
 | 
											
												
													
														|  | 
 |  | +                let pageElementsSpecList = data?.pageSpecsList[0]?.pageElementsSpecList
 | 
											
												
													
														|  | 
 |  | +                setWxButtonList(() => (pageElementsSpecList as any[])?.filter((item: { elementType: string }) => item?.elementType === 'ENTERPRISE_WX'))
 | 
											
												
													
														|  | 
 |  | +            })
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +    }, [queryForm?.sysPageId])
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      /** 删除商品内容 */
 |  |      /** 删除商品内容 */
 | 
											
												
													
														|  |      const goodsDel = (index: number) => {
 |  |      const goodsDel = (index: number) => {
 | 
											
												
													
														|  |          let newArr = JSON.parse(JSON.stringify(accountCreateLogs))
 |  |          let newArr = JSON.parse(JSON.stringify(accountCreateLogs))
 | 
											
										
											
												
													
														|  | @@ -81,191 +102,300 @@ const CreateAd: React.FC = () => {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      /** 设置落地页 */
 |  |      /** 设置落地页 */
 | 
											
												
													
														|  |      const setPage = (e: any) => {
 |  |      const setPage = (e: any) => {
 | 
											
												
													
														|  | -        console.log(22222, e)
 |  | 
 | 
											
												
													
														|  | 
 |  | +        setQueryForm({ ...queryForm, sysPageId: e[0]?.id || undefined })
 | 
											
												
													
														|  | 
 |  | +        setSelectImgVisible(false)
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    return <Card title={<div className={style.cardTitle}>配置区</div>} className={style.createAd} hoverable>
 |  | 
 | 
											
												
													
														|  | -        <Space>
 |  | 
 | 
											
												
													
														|  | -            <Selector label="媒体账户">
 |  | 
 | 
											
												
													
														|  | -                <Select
 |  | 
 | 
											
												
													
														|  | -                    mode="multiple"
 |  | 
 | 
											
												
													
														|  | -                    style={{ minWidth: 200 }}
 |  | 
 | 
											
												
													
														|  | -                    placeholder="请选择媒体账户"
 |  | 
 | 
											
												
													
														|  | -                    maxTagCount={1}
 |  | 
 | 
											
												
													
														|  | -                    allowClear
 |  | 
 | 
											
												
													
														|  | -                    bordered={false}
 |  | 
 | 
											
												
													
														|  | -                    filterOption={(input: any, option: any) =>
 |  | 
 | 
											
												
													
														|  | -                        (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase())
 |  | 
 | 
											
												
													
														|  | -                    }
 |  | 
 | 
											
												
													
														|  | -                    onChange={(e, option) => {
 |  | 
 | 
											
												
													
														|  | -                        setAccountCreateLogs(option?.map((item: any) => ({ adAccountId: item?.children, id: item?.value })))
 |  | 
 | 
											
												
													
														|  | -                    }}
 |  | 
 | 
											
												
													
														|  | -                >
 |  | 
 | 
											
												
													
														|  | -                    {getAdAccount?.data?.data?.map((item: any) => <Select.Option value={item.id} key={item.id}>{item.accountId}</Select.Option>)}
 |  | 
 | 
											
												
													
														|  | -                    {/* <Select.OptGroup label="Engineer">
 |  | 
 | 
											
												
													
														|  | -                        <Select.Option value="20632113">20632113</Select.Option>
 |  | 
 | 
											
												
													
														|  | -                    </Select.OptGroup> */}
 |  | 
 | 
											
												
													
														|  | -                </Select>
 |  | 
 | 
											
												
													
														|  | -            </Selector>
 |  | 
 | 
											
												
													
														|  | 
 |  | +    /** 预览 */
 | 
											
												
													
														|  | 
 |  | +    const preview = () => {
 | 
											
												
													
														|  | 
 |  | +        if (accountCreateLogs?.length === 0) {
 | 
											
												
													
														|  | 
 |  | +            message.error('请选择媒体账户')
 | 
											
												
													
														|  | 
 |  | +            return
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (!queryForm.promotedObjectType) {
 | 
											
												
													
														|  | 
 |  | +            message.error('请选择推广目标')
 | 
											
												
													
														|  | 
 |  | +            return
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (!queryForm.sysAdgroupsId) {
 | 
											
												
													
														|  | 
 |  | +            message.error('请先设置广告基本信息')
 | 
											
												
													
														|  | 
 |  | +            return
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (!queryForm.sysTargetingId) {
 | 
											
												
													
														|  | 
 |  | +            message.error('请选择定向')
 | 
											
												
													
														|  | 
 |  | +            return
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        // if (!queryForm.sysAdcreativeId) {
 | 
											
												
													
														|  | 
 |  | +        //     message.error('请设置创意的基本信息')
 | 
											
												
													
														|  | 
 |  | +        //     return
 | 
											
												
													
														|  | 
 |  | +        // }
 | 
											
												
													
														|  | 
 |  | +        if (!queryForm.sysPageId) {
 | 
											
												
													
														|  | 
 |  | +            message.error('请选择落地页')
 | 
											
												
													
														|  | 
 |  | +            return
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        let data = accountCreateLogs.map((item: any, index) => {
 | 
											
												
													
														|  | 
 |  | +            return { ...item, id: index + 1, ...queryForm, sysAdGroupData: getSysAdgroups?.data, targetingData: getsysTargeting?.data, pageData: get?.data }
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        console.log('data--->', data)
 | 
											
												
													
														|  | 
 |  | +        setTableData(data)
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    const submit = (data: { adName: string, campaignName: string }) => {
 | 
											
												
													
														|  | 
 |  | +        console.log(111111, tableSelect);
 | 
											
												
													
														|  | 
 |  | +        console.log(222222, data)
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -            <Selector label="推广目标">
 |  | 
 | 
											
												
													
														|  | -                <Select style={{ width: 200 }} value={queryForm?.promotedObjectType} placeholder="请选择推广目标" bordered={false} showSearch filterOption={(input: any, option: any) =>
 |  | 
 | 
											
												
													
														|  | -                    (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase())
 |  | 
 | 
											
												
													
														|  | -                } onChange={(e) => { setQueryForm({ ...queryForm, promotedObjectType: e }) }}>
 |  | 
 | 
											
												
													
														|  | -                    {Object.keys(PromotedObjectType).map(key => {
 |  | 
 | 
											
												
													
														|  | -                        return <Select.Option value={key} key={key}>{PromotedObjectType[key]}</Select.Option>
 |  | 
 | 
											
												
													
														|  | -                    })}
 |  | 
 | 
											
												
													
														|  | -                </Select>
 |  | 
 | 
											
												
													
														|  | -            </Selector>
 |  | 
 | 
											
												
													
														|  | -        </Space>
 |  | 
 | 
											
												
													
														|  | 
 |  | +    return <Space direction="vertical" style={{ width: '100%' }}>
 | 
											
												
													
														|  | 
 |  | +        <Card title={<div className={style.cardTitle}>配置区</div>} className={style.createAd} hoverable>
 | 
											
												
													
														|  | 
 |  | +            <Space>
 | 
											
												
													
														|  | 
 |  | +                <Selector label="媒体账户">
 | 
											
												
													
														|  | 
 |  | +                    <Select
 | 
											
												
													
														|  | 
 |  | +                        mode="multiple"
 | 
											
												
													
														|  | 
 |  | +                        style={{ minWidth: 200 }}
 | 
											
												
													
														|  | 
 |  | +                        placeholder="请选择媒体账户"
 | 
											
												
													
														|  | 
 |  | +                        maxTagCount={1}
 | 
											
												
													
														|  | 
 |  | +                        allowClear
 | 
											
												
													
														|  | 
 |  | +                        bordered={false}
 | 
											
												
													
														|  | 
 |  | +                        filterOption={(input: any, option: any) =>
 | 
											
												
													
														|  | 
 |  | +                            (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase())
 | 
											
												
													
														|  | 
 |  | +                        }
 | 
											
												
													
														|  | 
 |  | +                        onChange={(e, option) => {
 | 
											
												
													
														|  | 
 |  | +                            setAccountCreateLogs(option?.map((item: any) => ({ adAccountId: item?.children, id: item?.value })))
 | 
											
												
													
														|  | 
 |  | +                        }}
 | 
											
												
													
														|  | 
 |  | +                    >
 | 
											
												
													
														|  | 
 |  | +                        {getAdAccount?.data?.data?.map((item: any) => <Select.Option value={item.id} key={item.id}>{item.accountId}</Select.Option>)}
 | 
											
												
													
														|  | 
 |  | +                        {/* <Select.OptGroup label="Engineer">
 | 
											
												
													
														|  | 
 |  | +                            <Select.Option value="20632113">20632113</Select.Option>
 | 
											
												
													
														|  | 
 |  | +                        </Select.OptGroup> */}
 | 
											
												
													
														|  | 
 |  | +                    </Select>
 | 
											
												
													
														|  | 
 |  | +                </Selector>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +                <Selector label="推广目标">
 | 
											
												
													
														|  | 
 |  | +                    <Select style={{ width: 200 }} value={queryForm?.promotedObjectType} placeholder="请选择推广目标" bordered={false} showSearch filterOption={(input: any, option: any) =>
 | 
											
												
													
														|  | 
 |  | +                        (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase())
 | 
											
												
													
														|  | 
 |  | +                    } onChange={(e) => { setQueryForm({ ...queryForm, promotedObjectType: e }) }}>
 | 
											
												
													
														|  | 
 |  | +                        {Object.keys(PromotedObjectType).map(key => {
 | 
											
												
													
														|  | 
 |  | +                            return <Select.Option value={key} key={key}>{PromotedObjectType[key]}</Select.Option>
 | 
											
												
													
														|  | 
 |  | +                        })}
 | 
											
												
													
														|  | 
 |  | +                    </Select>
 | 
											
												
													
														|  | 
 |  | +                </Selector>
 | 
											
												
													
														|  | 
 |  | +            </Space>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -        <div className={style.cardBody}>
 |  | 
 | 
											
												
													
														|  | -            <Row className={style.content}>
 |  | 
 | 
											
												
													
														|  | -                <Col span={16} className={style.conLeft}>
 |  | 
 | 
											
												
													
														|  | -                    <Row className={`${style.conTitle} ${style.conRightBorder}`}><Col span={24}>广告</Col></Row>
 |  | 
 | 
											
												
													
														|  | -                    <Row className={style.items}>
 |  | 
 | 
											
												
													
														|  | -                        {/* =============广告基本信息=========== */}
 |  | 
 | 
											
												
													
														|  | -                        <Col className={style.conRightBorder}>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.top}>广告基本信息</div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.center}>
 |  | 
 | 
											
												
													
														|  | -                                <Spin spinning={getSysAdgroups.loading}>
 |  | 
 | 
											
												
													
														|  | 
 |  | +            <div className={style.cardBody}>
 | 
											
												
													
														|  | 
 |  | +                <Row className={style.content}>
 | 
											
												
													
														|  | 
 |  | +                    <Col span={16} className={style.conLeft}>
 | 
											
												
													
														|  | 
 |  | +                        <Row className={`${style.conTitle} ${style.conRightBorder}`}><Col span={24}>广告</Col></Row>
 | 
											
												
													
														|  | 
 |  | +                        <Row className={style.items}>
 | 
											
												
													
														|  | 
 |  | +                            {/* =============广告基本信息=========== */}
 | 
											
												
													
														|  | 
 |  | +                            <Col className={style.conRightBorder}>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.top}>广告基本信息</div>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.center}>
 | 
											
												
													
														|  | 
 |  | +                                    <Spin spinning={getSysAdgroups.loading}>
 | 
											
												
													
														|  | 
 |  | +                                        <div className={style.centerContent}>
 | 
											
												
													
														|  | 
 |  | +                                            {getSysAdgroups?.data ? <>
 | 
											
												
													
														|  | 
 |  | +                                                <div>广告名称: {getSysAdgroups?.data?.adgroupName}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>推广目标: {PromotedObjectType[getSysAdgroups?.data?.promotedObjectType]}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>广告版位: {getSysAdgroups?.data?.siteSet?.map((item: string) => SiteSetEnum[item]).toString()}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>投放日期: {getSysAdgroups?.data?.endDate ? getSysAdgroups?.data?.beginDate + '~' + getSysAdgroups?.data?.endDate : getSysAdgroups?.data?.beginDate + '~' + '长期投放'}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>出价方式: {BidModeEnum[getSysAdgroups?.data?.bidMode]}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>优化目标: {OptimizationGoalEnum[getSysAdgroups?.data?.optimizationGoal]}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>出价类型: {getSysAdgroups?.data?.smartBidType === 'SMART_BID_TYPE_CUSTOM' ? '手动出价' : '自动出价'}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>出价策略: {BidStrategyEnum[getSysAdgroups?.data?.bidStrategy]}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>广告出价: {getSysAdgroups?.data?.bidAmount}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>广告日预算: {getSysAdgroups?.data?.dailyBudget || '不限'}</div>
 | 
											
												
													
														|  | 
 |  | +                                            </> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />}
 | 
											
												
													
														|  | 
 |  | +                                        </div>
 | 
											
												
													
														|  | 
 |  | +                                    </Spin>
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.bottom}>
 | 
											
												
													
														|  | 
 |  | +                                    {queryForm?.promotedObjectType ? <span onClick={() => { setAdVisible(true) }}>{getSysAdgroups?.data ? '修改' : '添加'}</span> : <Tooltip title="请先选择推广目标">
 | 
											
												
													
														|  | 
 |  | +                                        <span>添加</span>
 | 
											
												
													
														|  | 
 |  | +                                    </Tooltip>}
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                            </Col>
 | 
											
												
													
														|  | 
 |  | +                            {/* =============定向包=========== */}
 | 
											
												
													
														|  | 
 |  | +                            <Col className={style.conRightBorder}>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.top}>
 | 
											
												
													
														|  | 
 |  | +                                    定向{/* <span>已选:{1}</span> */}
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.center}>
 | 
											
												
													
														|  | 
 |  | +                                    <Spin spinning={getsysTargeting.loading}>
 | 
											
												
													
														|  | 
 |  | +                                        <div className={style.centerContent}>
 | 
											
												
													
														|  | 
 |  | +                                            {getsysTargeting?.data ? <>
 | 
											
												
													
														|  | 
 |  | +                                                <div>定向名称: {getsysTargeting?.data?.targetingName}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>定向描述: {getsysTargeting?.data?.description}</div>
 | 
											
												
													
														|  | 
 |  | +                                            </> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />}
 | 
											
												
													
														|  | 
 |  | +                                        </div>
 | 
											
												
													
														|  | 
 |  | +                                    </Spin>
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.bottom}><span onClick={() => { setDxVisible(true) }}>{getsysTargeting?.data ? '修改' : '添加'}</span></div>
 | 
											
												
													
														|  | 
 |  | +                            </Col>
 | 
											
												
													
														|  | 
 |  | +                            {/* =============商品=========== */}
 | 
											
												
													
														|  | 
 |  | +                            <Col className={style.conRightBorder}>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.top}>
 | 
											
												
													
														|  | 
 |  | +                                    商品{/* <span>已选:{1}</span> */}
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.center}>
 | 
											
												
													
														|  |                                      <div className={style.centerContent}>
 |  |                                      <div className={style.centerContent}>
 | 
											
												
													
														|  | -                                        {getSysAdgroups?.data ? <>
 |  | 
 | 
											
												
													
														|  | -                                            <div>广告名称: {getSysAdgroups?.data?.adgroupName}</div>
 |  | 
 | 
											
												
													
														|  | -                                            <div>推广目标: {PromotedObjectType[getSysAdgroups?.data?.promotedObjectType]}</div>
 |  | 
 | 
											
												
													
														|  | -                                            <div>广告版位: {getSysAdgroups?.data?.siteSet?.map((item: string) => SiteSetEnum[item]).toString()}</div>
 |  | 
 | 
											
												
													
														|  | -                                            <div>投放日期: {getSysAdgroups?.data?.endDate ? getSysAdgroups?.data?.beginDate + '~' + getSysAdgroups?.data?.endDate : getSysAdgroups?.data?.beginDate + '~' + '长期投放'}</div>
 |  | 
 | 
											
												
													
														|  | -                                            <div>出价方式: {BidModeEnum[getSysAdgroups?.data?.bidMode]}</div>
 |  | 
 | 
											
												
													
														|  | -                                            <div>优化目标: {OptimizationGoalEnum[getSysAdgroups?.data?.optimizationGoal]}</div>
 |  | 
 | 
											
												
													
														|  | -                                            <div>出价类型: {getSysAdgroups?.data?.smartBidType === 'SMART_BID_TYPE_CUSTOM' ? '手动出价' : '自动出价'}</div>
 |  | 
 | 
											
												
													
														|  | -                                            <div>出价策略: {BidStrategyEnum[getSysAdgroups?.data?.bidStrategy]}</div>
 |  | 
 | 
											
												
													
														|  | -                                            <div>广告出价: {getSysAdgroups?.data?.bidAmount}</div>
 |  | 
 | 
											
												
													
														|  | -                                            <div>广告日预算: {getSysAdgroups?.data?.dailyBudget || '不限'}</div>
 |  | 
 | 
											
												
													
														|  | -                                        </> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />}
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                        {accountCreateLogs?.map((item: any, index: number) => {
 | 
											
												
													
														|  | 
 |  | +                                            if (item?.productList) {
 | 
											
												
													
														|  | 
 |  | +                                                return <div className={style.acc} key={index}>
 | 
											
												
													
														|  | 
 |  | +                                                    <div className={style.accName}>{item.adAccountId}</div>
 | 
											
												
													
														|  | 
 |  | +                                                    {
 | 
											
												
													
														|  | 
 |  | +                                                        item?.productList?.map((pack: { productName: string, author: string, id: number }, index: number) => {
 | 
											
												
													
														|  | 
 |  | +                                                            return <div className={style.accCon} key={pack.id}>{pack.productName}<CloseOutlined className={style.close} onClick={() => {
 | 
											
												
													
														|  | 
 |  | +                                                                goodsDel(index)
 | 
											
												
													
														|  | 
 |  | +                                                            }} /></div>
 | 
											
												
													
														|  | 
 |  | +                                                        })
 | 
											
												
													
														|  | 
 |  | +                                                    }
 | 
											
												
													
														|  | 
 |  | +                                                </div>
 | 
											
												
													
														|  | 
 |  | +                                            } else {
 | 
											
												
													
														|  | 
 |  | +                                                return null
 | 
											
												
													
														|  | 
 |  | +                                            }
 | 
											
												
													
														|  | 
 |  | +                                        })}
 | 
											
												
													
														|  |                                      </div>
 |  |                                      </div>
 | 
											
												
													
														|  | -                                </Spin>
 |  | 
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.bottom}>
 |  | 
 | 
											
												
													
														|  | -                                {queryForm?.promotedObjectType ? <span onClick={() => { setAdVisible(true) }}>{getSysAdgroups?.data ? '修改' : '添加'}</span> : <Tooltip title="请先选择推广目标">
 |  | 
 | 
											
												
													
														|  | -                                    <span>添加</span>
 |  | 
 | 
											
												
													
														|  | -                                </Tooltip>}
 |  | 
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                        </Col>
 |  | 
 | 
											
												
													
														|  | -                        {/* =============定向包=========== */}
 |  | 
 | 
											
												
													
														|  | -                        <Col className={style.conRightBorder}>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.top}>
 |  | 
 | 
											
												
													
														|  | -                                定向{/* <span>已选:{1}</span> */}
 |  | 
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.center}>
 |  | 
 | 
											
												
													
														|  | -                                <Spin spinning={getsysTargeting.loading}>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.bottom}>
 | 
											
												
													
														|  | 
 |  | +                                    {accountCreateLogs?.length > 0 ? <span onClick={() => { setGoodsVisible(true) }}>编辑</span> : <Tooltip title="请先选择媒体账户">
 | 
											
												
													
														|  | 
 |  | +                                        <span>编辑</span>
 | 
											
												
													
														|  | 
 |  | +                                    </Tooltip>}
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                            </Col>
 | 
											
												
													
														|  | 
 |  | +                            {/* 数据源 */}
 | 
											
												
													
														|  | 
 |  | +                            <Col className={style.conRightBorder}>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.top}>
 | 
											
												
													
														|  | 
 |  | +                                    数据源 {/* <span>已选:{1}</span> */}
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.center}>
 | 
											
												
													
														|  | 
 |  | +                                    {/* userActionSetsList */}
 | 
											
												
													
														|  |                                      <div className={style.centerContent}>
 |  |                                      <div className={style.centerContent}>
 | 
											
												
													
														|  | -                                        {getsysTargeting?.data ? <>
 |  | 
 | 
											
												
													
														|  | -                                            <div>定向名称: {getsysTargeting?.data?.targetingName}</div>
 |  | 
 | 
											
												
													
														|  | -                                            <div>定向描述: {getsysTargeting?.data?.description}</div>
 |  | 
 | 
											
												
													
														|  | -                                        </> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />}
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                        {accountCreateLogs?.map((item: any, index: number) => {
 | 
											
												
													
														|  | 
 |  | +                                            if (item?.userActionSetsList && item?.userActionSetsList?.length > 0) {
 | 
											
												
													
														|  | 
 |  | +                                                return <div className={style.acc} key={index}>
 | 
											
												
													
														|  | 
 |  | +                                                    <div className={style.accName}>{item.adAccountId}</div>
 | 
											
												
													
														|  | 
 |  | +                                                    {
 | 
											
												
													
														|  | 
 |  | +                                                        item?.userActionSetsList?.map((pack: { name: string, type: string, id: number }, index1: number) => {
 | 
											
												
													
														|  | 
 |  | +                                                            return <div className={style.accCon} key={pack.id}> <span className={style.title}>{pack.name}{' > '}{pack.type}</span> <CloseOutlined className={style.close} onClick={() => {
 | 
											
												
													
														|  | 
 |  | +                                                                sourceDel(index, index1)
 | 
											
												
													
														|  | 
 |  | +                                                            }} /></div>
 | 
											
												
													
														|  | 
 |  | +                                                        })
 | 
											
												
													
														|  | 
 |  | +                                                    }
 | 
											
												
													
														|  | 
 |  | +                                                </div>
 | 
											
												
													
														|  | 
 |  | +                                            } else {
 | 
											
												
													
														|  | 
 |  | +                                                return null
 | 
											
												
													
														|  | 
 |  | +                                            }
 | 
											
												
													
														|  | 
 |  | +                                        })}
 | 
											
												
													
														|  |                                      </div>
 |  |                                      </div>
 | 
											
												
													
														|  | -                                </Spin>
 |  | 
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.bottom}><span onClick={() => { setDxVisible(true) }}>{getsysTargeting?.data ? '修改' : '添加'}</span></div>
 |  | 
 | 
											
												
													
														|  | -                        </Col>
 |  | 
 | 
											
												
													
														|  | -                        {/* =============商品=========== */}
 |  | 
 | 
											
												
													
														|  | -                        <Col className={style.conRightBorder}>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.top}>
 |  | 
 | 
											
												
													
														|  | -                                商品{/* <span>已选:{1}</span> */}
 |  | 
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.center}>
 |  | 
 | 
											
												
													
														|  | -                                <div className={style.centerContent}>
 |  | 
 | 
											
												
													
														|  | -                                    {accountCreateLogs?.map((item: any, index: number) => {
 |  | 
 | 
											
												
													
														|  | -                                        if (item?.productList) {
 |  | 
 | 
											
												
													
														|  | -                                            return <div className={style.acc} key={index}>
 |  | 
 | 
											
												
													
														|  | -                                                <div className={style.accName}>{item.adAccountId}</div>
 |  | 
 | 
											
												
													
														|  | -                                                {
 |  | 
 | 
											
												
													
														|  | -                                                    item?.productList?.map((pack: { productName: string, author: string, id: number }, index: number) => {
 |  | 
 | 
											
												
													
														|  | -                                                        return <div className={style.accCon} key={pack.id}>{pack.productName}<CloseOutlined className={style.close} onClick={() => {
 |  | 
 | 
											
												
													
														|  | -                                                            goodsDel(index)
 |  | 
 | 
											
												
													
														|  | -                                                        }} /></div>
 |  | 
 | 
											
												
													
														|  | -                                                    })
 |  | 
 | 
											
												
													
														|  | -                                                }
 |  | 
 | 
											
												
													
														|  | -                                            </div>
 |  | 
 | 
											
												
													
														|  | -                                        } else {
 |  | 
 | 
											
												
													
														|  | -                                            return null
 |  | 
 | 
											
												
													
														|  | -                                        }
 |  | 
 | 
											
												
													
														|  | -                                    })}
 |  | 
 | 
											
												
													
														|  |                                  </div>
 |  |                                  </div>
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.bottom}>
 |  | 
 | 
											
												
													
														|  | -                                {accountCreateLogs?.length > 0 ? <span onClick={() => { setGoodsVisible(true) }}>编辑</span> : <Tooltip title="请先选择媒体账户">
 |  | 
 | 
											
												
													
														|  | -                                    <span>编辑</span>
 |  | 
 | 
											
												
													
														|  | -                                </Tooltip>}
 |  | 
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                        </Col>
 |  | 
 | 
											
												
													
														|  | -                        {/* 数据源 */}
 |  | 
 | 
											
												
													
														|  | -                        <Col className={style.conRightBorder}>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.top}>
 |  | 
 | 
											
												
													
														|  | -                                数据源 {/* <span>已选:{1}</span> */}
 |  | 
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.center}>
 |  | 
 | 
											
												
													
														|  | -                                {/* userActionSetsList */}
 |  | 
 | 
											
												
													
														|  | -                                <div className={style.centerContent}>
 |  | 
 | 
											
												
													
														|  | -                                    {accountCreateLogs?.map((item: any, index: number) => {
 |  | 
 | 
											
												
													
														|  | -                                        if (item?.userActionSetsList && item?.userActionSetsList?.length > 0) {
 |  | 
 | 
											
												
													
														|  | -                                            return <div className={style.acc} key={index}>
 |  | 
 | 
											
												
													
														|  | -                                                <div className={style.accName}>{item.adAccountId}</div>
 |  | 
 | 
											
												
													
														|  | -                                                {
 |  | 
 | 
											
												
													
														|  | -                                                    item?.userActionSetsList?.map((pack: { name: string, type: string, id: number }, index1: number) => {
 |  | 
 | 
											
												
													
														|  | -                                                        return <div className={style.accCon} key={pack.id}> <span className={style.title}>{pack.name}{' > '}{pack.type}</span> <CloseOutlined className={style.close} onClick={() => {
 |  | 
 | 
											
												
													
														|  | -                                                            sourceDel(index, index1)
 |  | 
 | 
											
												
													
														|  | -                                                        }} /></div>
 |  | 
 | 
											
												
													
														|  | -                                                    })
 |  | 
 | 
											
												
													
														|  | -                                                }
 |  | 
 | 
											
												
													
														|  | -                                            </div>
 |  | 
 | 
											
												
													
														|  | -                                        } else {
 |  | 
 | 
											
												
													
														|  | -                                            return null
 |  | 
 | 
											
												
													
														|  | -                                        }
 |  | 
 | 
											
												
													
														|  | -                                    })}
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.bottom}>
 | 
											
												
													
														|  | 
 |  | +                                    {accountCreateLogs?.length > 0 ? <span onClick={() => { setSourceVisible(true) }}>编辑</span> : <Tooltip title="请先选择媒体账户">
 | 
											
												
													
														|  | 
 |  | +                                        <span>编辑</span>
 | 
											
												
													
														|  | 
 |  | +                                    </Tooltip>}
 | 
											
												
													
														|  |                                  </div>
 |  |                                  </div>
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.bottom}>
 |  | 
 | 
											
												
													
														|  | -                                {accountCreateLogs?.length > 0 ? <span onClick={() => { setSourceVisible(true) }}>编辑</span> : <Tooltip title="请先选择媒体账户">
 |  | 
 | 
											
												
													
														|  | -                                    <span>编辑</span>
 |  | 
 | 
											
												
													
														|  | -                                </Tooltip>}
 |  | 
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                        </Col>
 |  | 
 | 
											
												
													
														|  | -                    </Row>
 |  | 
 | 
											
												
													
														|  | -                </Col>
 |  | 
 | 
											
												
													
														|  | -                {/* =============广告创意=========== */}
 |  | 
 | 
											
												
													
														|  | -                <Col span={8} className={style.conRight}>
 |  | 
 | 
											
												
													
														|  | -                    <Row className={style.conTitle}><Col span={24}>广告创意</Col></Row>
 |  | 
 | 
											
												
													
														|  | -                    <Row className={style.items}>
 |  | 
 | 
											
												
													
														|  | -                        <Col span={12} className={style.conRightBorder}>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.top}>创意基本信息</div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.center}>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                            </Col>
 | 
											
												
													
														|  | 
 |  | +                        </Row>
 | 
											
												
													
														|  | 
 |  | +                    </Col>
 | 
											
												
													
														|  | 
 |  | +                    {/* =============广告创意=========== */}
 | 
											
												
													
														|  | 
 |  | +                    <Col span={8} className={style.conRight}>
 | 
											
												
													
														|  | 
 |  | +                        <Row className={style.conTitle}><Col span={24}>广告创意</Col></Row>
 | 
											
												
													
														|  | 
 |  | +                        <Row className={style.items}>
 | 
											
												
													
														|  | 
 |  | +                            <Col span={12} className={style.conRightBorder}>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.top}>创意基本信息</div>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.center}>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.bottom}><span onClick={() => { }}>编辑</span></div>
 |  | 
 | 
											
												
													
														|  | -                        </Col>
 |  | 
 | 
											
												
													
														|  | -                        <Col span={12} >
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.top}>落地页</div>
 |  | 
 | 
											
												
													
														|  | -                            <div className={style.center}>
 |  | 
 | 
											
												
													
														|  | -                                <div className={style.centerContent}>
 |  | 
 | 
											
												
													
														|  | -                                    <div>落地页:{queryForm?.sysAdgroupsId ? <Button type="link" onClick={() => { setSelectImgVisible(true) }}>选择落地页</Button> : <Tooltip title="请先设置广告基本信息">
 |  | 
 | 
											
												
													
														|  | -                                        <Button type="link">选择落地页</Button>
 |  | 
 | 
											
												
													
														|  | -                                    </Tooltip>}
 |  | 
 | 
											
												
													
														|  | -                                    </div>
 |  | 
 | 
											
												
													
														|  |                                  </div>
 |  |                                  </div>
 | 
											
												
													
														|  | -                            </div>
 |  | 
 | 
											
												
													
														|  | -                            {/* <div className={style.bottom}><span>添加</span></div> */}
 |  | 
 | 
											
												
													
														|  | -                        </Col>
 |  | 
 | 
											
												
													
														|  | -                    </Row>
 |  | 
 | 
											
												
													
														|  | -                </Col>
 |  | 
 | 
											
												
													
														|  | -            </Row>
 |  | 
 | 
											
												
													
														|  | -            {/* =============广告底部按钮=========== */}
 |  | 
 | 
											
												
													
														|  | -            {/* <Space className={style.bts}>
 |  | 
 | 
											
												
													
														|  | -                <Button type='primary' onClick={severBd}>暂存到本地</Button>
 |  | 
 | 
											
												
													
														|  | -                <Button type='primary' onClick={preview}><SearchOutlined /> 批量预览广告</Button>
 |  | 
 | 
											
												
													
														|  | -                <Button onClick={delBdPlan}>清空本地配置</Button>
 |  | 
 | 
											
												
													
														|  | -            </Space> */}
 |  | 
 | 
											
												
													
														|  | -        </div>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.bottom}><span onClick={() => { }}>编辑</span></div>
 | 
											
												
													
														|  | 
 |  | +                            </Col>
 | 
											
												
													
														|  | 
 |  | +                            <Col span={12} >
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.top}>
 | 
											
												
													
														|  | 
 |  | +                                    落地页
 | 
											
												
													
														|  | 
 |  | +                                    {wxButtonList?.length > 0 && <Button type="link" size="small">配置客服</Button>}
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.center}>
 | 
											
												
													
														|  | 
 |  | +                                    <Spin spinning={get.loading}>
 | 
											
												
													
														|  | 
 |  | +                                        <div className={style.centerContent}>
 | 
											
												
													
														|  | 
 |  | +                                            {queryForm?.sysPageId ? <>
 | 
											
												
													
														|  | 
 |  | +                                                <div>落地页名称:{get?.data?.pageName || ''}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>分享名称:{get?.data?.shareContentSpec?.shareTitle || ''}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>分享描述:{get?.data?.shareContentSpec?.shareDescription || ''}</div>
 | 
											
												
													
														|  | 
 |  | +                                                <div>原生推广页顶部素材预览:
 | 
											
												
													
														|  | 
 |  | +                                                    <div>{get?.data?.pageSpecsList[0]?.pageElementsSpecList?.filter((item: any, index: number) => index === 0)?.map((item: { elementType: 'TOP_IMAGE' | 'TOP_VIDEO' | 'TOP_SLIDER', topImageSpec: any, topSliderSpec: any, topVideoSpec: any }, index: number) => {
 | 
											
												
													
														|  | 
 |  | +                                                        switch (item?.elementType) {
 | 
											
												
													
														|  | 
 |  | +                                                            case 'TOP_IMAGE':
 | 
											
												
													
														|  | 
 |  | +                                                                return <Image width={80} src={item.topImageSpec.imageUrl} style={{ borderRadius: 8, overflow: 'hidden' }} key={index} />
 | 
											
												
													
														|  | 
 |  | +                                                            case 'TOP_SLIDER':
 | 
											
												
													
														|  | 
 |  | +                                                                return <Space>
 | 
											
												
													
														|  | 
 |  | +                                                                    {item?.topSliderSpec?.imageUrlList?.map((url: string, index: number) => <Image width={80} src={url} style={{ borderRadius: 8 }} key={index} />)}
 | 
											
												
													
														|  | 
 |  | +                                                                </Space>
 | 
											
												
													
														|  | 
 |  | +                                                            case 'TOP_VIDEO':
 | 
											
												
													
														|  | 
 |  | +                                                                return <video src={item.topVideoSpec.videoUrl} width={150} controls key={index}></video>
 | 
											
												
													
														|  | 
 |  | +                                                        }
 | 
											
												
													
														|  | 
 |  | +                                                    })}</div>
 | 
											
												
													
														|  | 
 |  | +                                                </div>
 | 
											
												
													
														|  | 
 |  | +                                            </> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />}
 | 
											
												
													
														|  | 
 |  | +                                        </div>
 | 
											
												
													
														|  | 
 |  | +                                    </Spin>
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                                <div className={style.bottom}>{queryForm?.sysAdgroupsId ? <>
 | 
											
												
													
														|  | 
 |  | +                                    {queryForm?.sysPageId && <Button type="link" onClick={() => { setLookVisible(true) }}>查看</Button>}
 | 
											
												
													
														|  | 
 |  | +                                    <Button type="link" onClick={() => { setSelectImgVisible(true) }}>{queryForm?.sysPageId ? '修改' : '选择落地页'}</Button>
 | 
											
												
													
														|  | 
 |  | +                                </> : <Tooltip title="请先设置广告基本信息和创意">
 | 
											
												
													
														|  | 
 |  | +                                    <Button type="link"><span>选择落地页</span></Button>
 | 
											
												
													
														|  | 
 |  | +                                </Tooltip>}
 | 
											
												
													
														|  | 
 |  | +                                </div>
 | 
											
												
													
														|  | 
 |  | +                            </Col>
 | 
											
												
													
														|  | 
 |  | +                        </Row>
 | 
											
												
													
														|  | 
 |  | +                    </Col>
 | 
											
												
													
														|  | 
 |  | +                </Row>
 | 
											
												
													
														|  | 
 |  | +                {/* =============广告底部按钮=========== */}
 | 
											
												
													
														|  | 
 |  | +                <Space className={style.bts}>
 | 
											
												
													
														|  | 
 |  | +                    {/* <Button type='primary' onClick={severBd}>暂存到本地</Button> */}
 | 
											
												
													
														|  | 
 |  | +                    <Button type='primary' onClick={preview}><SearchOutlined /> 批量预览广告</Button>
 | 
											
												
													
														|  | 
 |  | +                    {/* <Button onClick={delBdPlan}>清空本地配置</Button> */}
 | 
											
												
													
														|  | 
 |  | +                </Space>
 | 
											
												
													
														|  | 
 |  | +            </div>
 | 
											
												
													
														|  | 
 |  | +        </Card>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        <Card
 | 
											
												
													
														|  | 
 |  | +            className={style.createAd}
 | 
											
												
													
														|  | 
 |  | +            hoverable
 | 
											
												
													
														|  | 
 |  | +            extra={tableData?.length > 0 ? <Space>
 | 
											
												
													
														|  | 
 |  | +                <span>推广计划总数:{accountCreateLogs?.length}</span>
 | 
											
												
													
														|  | 
 |  | +                    <span>广告总数:{accountCreateLogs?.length}</span>
 | 
											
												
													
														|  | 
 |  | +                    {tableSelect?.length > 0 && <span> 已选:<span style={{ color: '#1890FF' }}>{tableSelect?.length}</span> 条</span>}
 | 
											
												
													
														|  | 
 |  | +                    {
 | 
											
												
													
														|  | 
 |  | +                        <Button type='primary' onClick={() => {
 | 
											
												
													
														|  | 
 |  | +                            if (tableSelect.length === 0) {
 | 
											
												
													
														|  | 
 |  | +                                message.error('请选择要提交的计划!')
 | 
											
												
													
														|  | 
 |  | +                                return
 | 
											
												
													
														|  | 
 |  | +                            };
 | 
											
												
													
														|  | 
 |  | +                            setSubVisible(true)
 | 
											
												
													
														|  | 
 |  | +                        }}>批量提交审核</Button>
 | 
											
												
													
														|  | 
 |  | +                    }
 | 
											
												
													
														|  | 
 |  | +            </Space> : false
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        >
 | 
											
												
													
														|  | 
 |  | +            {tableData?.length > 0 ? <div className={style.cardBody}>
 | 
											
												
													
														|  | 
 |  | +                <div className={style.content} style={{ marginTop: 20 }}>
 | 
											
												
													
														|  | 
 |  | +                    <Tables
 | 
											
												
													
														|  | 
 |  | +                        columns={columns()}
 | 
											
												
													
														|  | 
 |  | +                        dataSource={tableData}
 | 
											
												
													
														|  | 
 |  | +                        total={0}
 | 
											
												
													
														|  | 
 |  | +                        size="small"
 | 
											
												
													
														|  | 
 |  | +                        bordered
 | 
											
												
													
														|  | 
 |  | +                        scroll={{ x: 1800 }}
 | 
											
												
													
														|  | 
 |  | +                        rowSelection={{
 | 
											
												
													
														|  | 
 |  | +                            selectedRowKeys: tableSelect?.map((item: any) => item?.id.toString()),
 | 
											
												
													
														|  | 
 |  | +                            onChange: (selectedRowKeys: React.Key[], selectedRows: any) => {
 | 
											
												
													
														|  | 
 |  | +                                setTableSelect(selectedRows)
 | 
											
												
													
														|  | 
 |  | +                            }
 | 
											
												
													
														|  | 
 |  | +                        }}
 | 
											
												
													
														|  | 
 |  | +                    />
 | 
											
												
													
														|  | 
 |  | +                </div>
 | 
											
												
													
														|  | 
 |  | +            </div> : <div style={{ minHeight: 400, display: 'flex', justifyContent: 'center', alignItems: 'center' }}>
 | 
											
												
													
														|  | 
 |  | +                <Empty description="请先完成模块配置后,再预览广告计划" />
 | 
											
												
													
														|  | 
 |  | +            </div>}
 | 
											
												
													
														|  | 
 |  | +        </Card>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          {/* 选择广告 */}
 |  |          {/* 选择广告 */}
 | 
											
												
													
														|  |          {adVisible && <AdModal visible={adVisible} onClose={() => setAdVisible(false)} promotedObjectType={queryForm.promotedObjectType as string} onChange={(e) => { setQueryForm({ ...queryForm, sysAdgroupsId: e }); setAdVisible(false) }} />}
 |  |          {adVisible && <AdModal visible={adVisible} onClose={() => setAdVisible(false)} promotedObjectType={queryForm.promotedObjectType as string} onChange={(e) => { setQueryForm({ ...queryForm, sysAdgroupsId: e }); setAdVisible(false) }} />}
 | 
											
										
											
												
													
														|  | @@ -279,7 +409,11 @@ const CreateAd: React.FC = () => {
 | 
											
												
													
														|  |          {idVisible && <IdModal visible={idVisible} data={accountCreateLogs} onClose={() => setIdVisible(false)} onChange={(e) => { setAccountCreateLogs(e); setSourceVisible(false) }} />}
 |  |          {idVisible && <IdModal visible={idVisible} data={accountCreateLogs} onClose={() => setIdVisible(false)} onChange={(e) => { setAccountCreateLogs(e); setSourceVisible(false) }} />}
 | 
											
												
													
														|  |          {/* 选择素材 */}
 |  |          {/* 选择素材 */}
 | 
											
												
													
														|  |          {selectImgVisible && <SelectCloud visible={selectImgVisible} onClose={() => setSelectImgVisible(false)} onChange={setPage} isBack={false} />}
 |  |          {selectImgVisible && <SelectCloud visible={selectImgVisible} onClose={() => setSelectImgVisible(false)} onChange={setPage} isBack={false} />}
 | 
											
												
													
														|  | -    </Card>
 |  | 
 | 
											
												
													
														|  | 
 |  | +        {/* 查看落地页 */}
 | 
											
												
													
														|  | 
 |  | +        {lookVisible && <LookLanding visible={lookVisible} onClose={() => setLookVisible(false)} id={queryForm?.sysPageId as any} />}
 | 
											
												
													
														|  | 
 |  | +        {/* 设置名称 */}
 | 
											
												
													
														|  | 
 |  | +        {subVisible && <SubmitModal visible={subVisible} onClose={() => setSubVisible(false)} onChange={submit}/>}
 | 
											
												
													
														|  | 
 |  | +    </Space>
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 |