import { useAjax } from "@/Hook/useAjax" import { AD_STATUS_ENUM, BID_MODE_ENUM, MARKETING_GOAL_ENUM, MARKETING_TARGET_TYPE_ENUM, OPTIMIZATIONGOAL_ENUM, PromotedObjectType } from "@/pages/iaaData/const" import { getPutUserListApi } from "@/services/iaaData" import { Button, Col, Form, Row, Space, DatePicker, Select, Input, InputNumber } from "antd" import { RangePickerProps } from "antd/lib/date-picker" import React, { useEffect, useState } from "react" import { useModel } from "umi" interface Props { onChange?: (data: any) => void /** 默认值 */ initialValues?: any /** 是否开启 广告账号 搜索 */ isAccountId?: boolean /** 是否开启 当前出价 搜索 */ isCpaBid?: boolean /** 是否开启 广告名称 搜索 */ isAdgroupName?: boolean /** 是否开启 广告ID 搜索 */ isAdgroupId?: boolean /** 是否开启 创意名称 搜索 */ isDynamicCreativeName?: boolean /** 是否开启 创意ID 搜索 */ isDynamicCreativeId?: boolean /** 是否开启 腾讯备注 搜索 */ isMemo?: boolean /** 是否开启 本地备注 搜索 */ isRemark?: boolean /** 是否开启 投手 搜索 */ isPutUserId?: boolean /** 是否开启 投手 搜索 */ isPutUserIdList?: boolean /** 是否开启 出价方式 搜索 */ isPricing?: boolean, /** 是否开启 广告状态 搜索 */ isStatus?: boolean, /** 是否开启 删除状态 搜索 */ isDeleted?: boolean, /** 是否开启 是否深度优化 搜索 */ isDeepConversionSpec?: boolean, /** 是否开启 启用禁用状态 搜索 */ isConfiguredStatus?: boolean, /** 是否开启 营销目的 搜索 */ isMarketingGoal?: boolean, /** 是否开启 营销目的 搜索 */ isMarketingTargetType?: boolean, /** 是否开启 推广目标类型 搜索 */ isPromotedObjectType?: boolean, /** 是否开启 推广目标名称 搜索 */ isPromotedObjectName?: boolean, /** 是否开启 优化目标类型 搜索 */ isOptimizationGoal?: boolean, /** 是否开启 投放模式 搜索 */ isDeliveryMode?: boolean, /** 是否开启 日期 搜索 */ day1?: RangePickerProps /** 是否开启 日期 搜索 */ day2?: RangePickerProps /** 是否开启 日期 搜索 */ day3?: RangePickerProps /** 是否开启 最小总消耗 搜索 */ isCostTotalMin?: boolean /** 是否开启 最低总千次曝光成本 搜索 */ isThousandDisplayPriceTotalMin?: boolean /** 是否开启 最低转化数 搜索 */ isConversionsCountTotalMin?: boolean /** 是否开启 激活首日广告变现ROI 搜索 */ isIncomeRoi1?: boolean /** 是否开启 注册成本 搜索 */ isRegCost?: boolean /** 是否开启 注册成本(平台上报+广告主上报 搜索 */ isRegCostPla?: boolean /** 是否开启 点击均价 搜索 */ isCpc?: boolean } /** * 游戏数据系统 请求参数 * @returns */ const QueryFormNovel: React.FC = (props) => { /**************************/ const { initialState } = useModel('@@initialState'); const { onChange, initialValues, isAccountId, isAdgroupName, isAdgroupId, isDynamicCreativeName, isDynamicCreativeId, isMemo, isRemark, isCpaBid, isPutUserId, isPutUserIdList, isPricing, isStatus, isMarketingGoal, isMarketingTargetType, isPromotedObjectType, isPromotedObjectName, isOptimizationGoal, isDeliveryMode, isDeleted, isDeepConversionSpec, isConfiguredStatus, day1, day2, day3, isCostTotalMin, isThousandDisplayPriceTotalMin, isConversionsCountTotalMin, isIncomeRoi1, isRegCost, isRegCostPla, isCpc } = props const [form] = Form.useForm() const [putUserList, setPutUserList] = useState<{ label: string, value: string }[]>([]) const getPutUserList = useAjax((params) => getPutUserListApi(params)) /**************************/ useEffect(() => { if ((isPutUserId || isPutUserIdList) && initialState?.productType) { getPutUserList.run({ productType: initialState?.productType }).then(res => { if (res?.data) { setPutUserList(Object.keys(res.data).map(key => ({ value: key, label: res.data[key] }))) } }) } }, [isPutUserId, isPutUserIdList, initialState?.productType]) const onFinish = (data: any) => { console.log('更新了字段---->', data); onChange && onChange(data) } return
{/* 广告账号 */} {isAccountId && } {/* 广告名称 */} {isAdgroupName && } {/* 广告ID */} {isAdgroupId && } {/* 创意名称 */} {isDynamicCreativeName && } {/* 创意ID */} {isDynamicCreativeId && } {/* 腾讯备注 */} {isMemo && } {/* 腾讯备注 */} {isRemark && } {/* 出价 */} {isCpaBid && } {/* 投手 */} {isPutUserId && (option?.label as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0 } maxTagCount={1} loading={getPutUserList.loading} options={putUserList} /> } {/* 出价方式 */} {isPricing && (option?.label as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0 } options={Object.keys(AD_STATUS_ENUM).map(key => ({ label: AD_STATUS_ENUM[key as keyof typeof AD_STATUS_ENUM], value: key }))} /> } {/* 营销目的 */} {isMarketingGoal && (option?.label as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0 } options={Object.keys(MARKETING_TARGET_TYPE_ENUM).map(key => ({ label: MARKETING_TARGET_TYPE_ENUM[key as keyof typeof MARKETING_TARGET_TYPE_ENUM], value: key }))} /> } {/* 推广目标 */} {isPromotedObjectType && } {/* 优化目标 */} {isOptimizationGoal && (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase()) } mode="multiple" > 自定义创意 组件化创意 } {/* 是否删除 */} {isDeleted && } {/* 是否删除 */} {isDeepConversionSpec && } {/* 启用禁用状态 */} {isConfiguredStatus && } {/* 日期选择框 */} {day1 && {/* @ts-ignore */} } {/* 日期选择框 */} {day2 && {/* @ts-ignore */} } {/* 日期选择框 */} {day3 && {/* @ts-ignore */} } {/* 最小总消耗 */} {isCostTotalMin && } {/* 最低转化数 */} {isConversionsCountTotalMin && } {/* 最低总千次曝光成本 */} {isThousandDisplayPriceTotalMin && } {/* 激活首日广告变现ROI */} {isIncomeRoi1 && <> } {/* 注册成本(平台上报+广告主上报 */} {isRegCost && <> } {/* 注册成本(平台上报+广告主上报 */} {isRegCostPla && <> } {/* 注册成本(平台上报+广告主上报 */} {isCpc && <> }
} export default React.memo(QueryFormNovel)