import { useAjax } from '@/Hook/useAjax' import { PromotedObjectType } from '@/services/launchAdq/enum' import { Col, Row, Input, Select, message } from 'antd' import React, { useEffect, useCallback, useState } from 'react' import TableData from '../../components/TableData' import tableConfig from './tableConfig' import { getAdqAdcreativeList, putAdqTargetingSyncAll } from '@/services/launchAdq/adq' type Props = { accountId: string, adAccountId: string, userId: string, queryParmas: { accountId?: string,//账户ID campaignId?: string,//计划ID adgroupId?: string,//广告ID adcreativeId?: string,//创意ID pageId?: string,//落地页ID targetingId?: string,//定向ID} }, tableIdClick: (props: { activeKey: string, parma: { accountId?: string,//账户ID campaignId?: string,//计划ID adgroupId?: string,//广告ID adcreativeId?: string,//创意ID pageId?: string,//落地页ID targetingId?: string,//定向ID } }) => void } function Creative(props: Props) { let { accountId, adAccountId, userId, tableIdClick, queryParmas } = props // api方法 const listAjax = useAjax((params) => getAdqAdcreativeList(params), { formatResult: true }) const syncAjax = useAjax((adAccountId) => putAdqTargetingSyncAll(adAccountId)) const [queryFrom,set_queryFrom]=useState<{ pageNum: number; pageSize: number; accountId?: string; adcreativeName?: string; adcreativeId?: string; }>({pageNum:1,pageSize:20}) console.log('创意=====》') useEffect(() => { getList({ pageNum: 1, pageSize: 20, accountId, ...queryParmas }) }, [accountId, userId, queryParmas]) // 获取列表 const getList = useCallback((params: { pageNum: number; pageSize: number; accountId?: string; adcreativeName?: string; adcreativeId?: string; }) => { if (!params.adcreativeName || params.adcreativeName !== listAjax?.params[0]?.adcreativeName) { !params.adcreativeName && delete params.adcreativeName } listAjax.run({ ...params, userId }) }, [userId, listAjax]) // 同步 const sync = useCallback(() => { if (!adAccountId) { message.error('请先选择要同步的广点通账号!') return } syncAjax.run(adAccountId).then(res => { console.log(res) res && listAjax.refresh() res ? message.success('同步成功!') : message.error('同步失败!') }) }, [adAccountId, listAjax]) return
tableConfig(tableIdClick)} ajax={listAjax} syncAjax={sync} dataSource={listAjax?.data?.data?.records} loading={listAjax?.loading || syncAjax?.loading} scroll={{ x: 1200, y: 550 }} total={listAjax?.data?.data?.total} page={listAjax?.data?.data?.current} pageSize={listAjax?.data?.data?.size} myKey={'adcreativeId'} leftChild={<> { let value = e.target.value set_queryFrom({...queryFrom,accountId: value }) getList({...queryFrom, pageNum: 1, accountId: value }) }} onKeyDownCapture={(e: any) => { let key = e.key if (key === 'Enter') { let value = e.target.value set_queryFrom({...queryFrom,accountId: value }) getList({...queryFrom, pageNum: 1,accountId: value }) } }} onChange={(e) => { let value = e.target.value if (!value) { set_queryFrom({...queryFrom,accountId: value }) getList({ ...queryFrom,pageNum: 1, accountId: value }) } }} /> { let value = e.target.value set_queryFrom({...queryFrom,adcreativeName: value }) getList({...queryFrom, pageNum: 1, adcreativeName: value }) }} onKeyDownCapture={(e: any) => { let key = e.key if (key === 'Enter') { let value = e.target.value set_queryFrom({...queryFrom,adcreativeName: value }) getList({ ...queryFrom,pageNum: 1, adcreativeName: value }) } }} onChange={(e) => { let value = e.target.value if (!value) { set_queryFrom({...queryFrom,adcreativeName: value }) getList({ ...queryFrom,pageNum: 1, adcreativeName: value }) } }} /> { let value = e.target.value set_queryFrom({...queryFrom,adcreativeId: value }) getList({...queryFrom, pageNum: 1, adcreativeId: value }) }} onKeyDownCapture={(e: any) => { let key = e.key if (key === 'Enter') { let value = e.target.value set_queryFrom({...queryFrom,adcreativeId: value }) getList({...queryFrom, pageNum: 1, adcreativeId: value }) } }} onChange={(e) => { let value = e.target.value if (!value) { set_queryFrom({...queryFrom,adcreativeId: value }) getList({...queryFrom, pageNum: 1, adcreativeId: value }) } }} /> } onChange={(props: any) => { let { sortData, pagination } = props let { current, pageSize } = pagination set_queryFrom({...queryFrom,pageNum:current,pageSize}) getList({...queryFrom, pageNum: current, pageSize }) }} />
} export default Creative