import { FnAjax, useAjax } from "@/Hook/useAjax" import { ListData, SysAdgroupsDTO } from "@/services/launchAdq" import { getSysAdgroupsList } from "@/services/launchAdq/localAd" import { Col, Input, Modal, Row } from "antd" import React, { useCallback, useEffect, useState } from "react" import TableData from "../TableData" import tableConfig from "./tableConfig" /** 广告选择 */ interface Props { promotedObjectType: string, visible?: boolean, onClose?: () => void, onChange?: (data: any) => void, } const AdModal: React.FC = (props) => { /**********************/ const { visible, onClose, onChange, promotedObjectType } = props const [oldsearchData, setOldsearchData] = useState(null) const sysAdgroupsList: FnAjax> = useAjax((params) => getSysAdgroupsList(params)) const [selectedRowKeys, setSelectedRowKeys] = useState([]) /**********************/ // 初始获取列表 useEffect(() => { getList({ pageSize: 20, pageNum: 1, promotedObjectType }) }, []) // 获取列表 const getList = useCallback((arg: { pageSize: number, pageNum: number, adgroupName?: string, promotedObjectType?: string }) => { Object.keys(arg).forEach(key => { !arg[key] && delete arg[key] }) if (JSON.stringify(arg) !== JSON.stringify(oldsearchData)) { setOldsearchData(arg) sysAdgroupsList.run(arg) } }, [oldsearchData]) // 确定 const handleOk = () => { onChange && onChange(selectedRowKeys.toString()) } return { onClose && onClose() }}> { setSelectedRowKeys(selectedRowKeys) } }} leftChild={<> { let value = e.target.value getList({ pageNum: 1, pageSize: 20, adgroupName: value }) }} onKeyDownCapture={(e: any) => { let key = e.key if (key === 'Enter') { let value = e.target.value getList({ pageNum: 1, pageSize: 20, adgroupName: value }) } }} onChange={(e) => { let value = e.target.value if (!value) { getList({ pageNum: 1, pageSize: 20, adgroupName: value }) } }} /> } onChange={(props: any) => { let { sortData, pagination } = props let { current, pageSize } = pagination getList({ pageNum: current, pageSize }) }} /> } export default React.memo(AdModal)