import { Button, Card, Drawer, Input, Space, Typography, message } from "antd" import React, { useEffect, useState } from "react" import '../../index.less' import New1Radio from "@/pages/launchSystemV3/components/New1Radio"; import style from '../index.less' import { CheckOutlined, CloseOutlined, PlusOutlined, SearchOutlined, UndoOutlined } from "@ant-design/icons"; import AddTarget from "./addTarget"; import { useAjax } from "@/Hook/useAjax"; import { getTargetingListApi } from "@/services/adqV3"; import Tables from "@/components/Tables"; import { TableConfig } from "./tableConfig"; import { getTargetingGagsApi } from "@/services/adqV3/global"; import { randomString } from "@/utils/utils"; const { Title, Text } = Typography; interface Props { value?: any, putInType?: 'NOVEL' | 'GAME' visible?: boolean onClose?: () => void onChange?: (value: any) => void } /** * 添加定向 * @param param0 * @returns */ const SelectTarget: React.FC = ({ value = [], putInType, visible, onChange, onClose }) => { /*****************************/ const [distributionRule, setDistributionRule] = useState<'1' | '2'>('1') const [addTemVisible, setAddTemVisible] = useState(false) const [queryParams, setQueryParams] = useState({ pageNum: 1, pageSize: 20 }) const [queryParamsNew, setQueryParamsNew] = useState({ pageNum: 1, pageSize: 20 }) const [geoLocationList, setGeoLocationList] = useState({}) // 所有地域列表 const [modelList, setModelList] = useState({}) // 所有品牌手机 const [modifyDta, setModifyDta] = useState() const [selectedTargetKeys, setSelectedTargetKeys] = useState(value) const getTargetingGags = useAjax((params) => getTargetingGagsApi(params)) const getTargetingList = useAjax((params) => getTargetingListApi(params)) /*****************************/ // 设置地域 useEffect(() => { async function handle() { await getTargetingGags.run({ type: 'REGION' }).then(res => { if (res && Array.isArray(res)) { setGeoLocationList(() => (res as any[])?.reduce((prev: any, cur: { id: number }) => { prev[cur.id] = cur return prev }, {})) } }) await getTargetingGags.run({ type: 'DEVICE_BRAND_MODEL' }).then(res => { if (res && Array.isArray(res)) { setModelList(() => (res as any[])?.reduce((prev: any, cur: { id: number }) => { prev[cur.id] = cur return prev }, {})) } }) } handle() }, []) useEffect(() => { getTargetingList.run({...queryParamsNew, taskType: putInType}) }, [queryParamsNew]) /** 编辑 复制 */ const editHandle = (data: any, isCopy?: boolean) => { const { targetingName, targeting, description, id, accountId, taskType } = data let newModifyDta = { ...targeting, targetingName, description, accountId: accountId || undefined, taskType } if (!isCopy) { newModifyDta.id = id } else { newModifyDta.targetingName = newModifyDta.targetingName + `_副本${randomString(true, 3, 5)}` newModifyDta.isCopy = isCopy } setModifyDta(newModifyDta) setAddTemVisible(true) } const handleOk = () => { if (selectedTargetKeys?.length > 0) { onChange?.(selectedTargetKeys) } else { message.error('请选择定向模板') } } return 定向模板} open={visible} onClose={onClose} width={1200} headerStyle={{ padding: '10px 16px' }} maskClosable={false} className={`modalResetCss targetingSelect`} >
定向模板分配规则 setDistributionRule(e)} />
{distributionRule === '2' &&

媒体账户

{ }} className={`${style.accItem}`}> 43151494
}
setQueryParams({ ...queryParams, targetingName: e.target.value, pageNum: 1 })} />
item?.id?.toString()), onChange: (_: React.Key[], selectedRows: any) => { setSelectedTargetKeys(selectedRows) } }} total={getTargetingList?.data?.total} defaultPageSize={20} current={getTargetingList?.data?.current} pageSize={getTargetingList?.data?.size} pageChange={(page: number, pageSize?: number) => { setQueryParamsNew({ ...queryParamsNew, pageNum: page, pageSize: pageSize as number || 20 }) setQueryParams({ ...queryParams, pageNum: page, pageSize: pageSize as number || 20 }) }} />
已选:{selectedTargetKeys?.length || 0}
{selectedTargetKeys?.map((item: any) =>
{item.targetingName}
)}
{/* 新增修改定向模板 */} {addTemVisible && { setAddTemVisible(false) setModifyDta(undefined) }} onChange={() => { setAddTemVisible(false) setModifyDta(undefined) getTargetingList.refresh() }} />}
} export default React.memo(SelectTarget)