|
@@ -4,11 +4,13 @@ import { Button, Drawer, Select, Space } from "antd"
|
|
|
import React, { useEffect, useState } from "react"
|
|
|
import { useModel } from "umi"
|
|
|
import TableData from "../../components/TableData"
|
|
|
+import BatchCreativeCopy from "./batchCreativeCopy"
|
|
|
import tableConfig from './logTableConfig'
|
|
|
|
|
|
interface Props {
|
|
|
taskId: number, // 任务ID
|
|
|
campaignName: string, // 计划名称
|
|
|
+ allData: any, // 所有数据
|
|
|
visible?: boolean,
|
|
|
onClose?: () => void
|
|
|
}
|
|
@@ -19,13 +21,16 @@ interface Props {
|
|
|
const Log: React.FC<Props> = (props) => {
|
|
|
|
|
|
/*****************************/
|
|
|
- const { taskId, campaignName, visible, onClose } = props
|
|
|
+ const { taskId, campaignName, allData, visible, onClose } = props
|
|
|
const [queryForm, setQueryForm] = useState<TaskLogListProps>({ pageNum: 1, pageSize: 20, taskId })
|
|
|
+ const [selectedRowKeys, setSelectedRowKeys] = useState<any[]>([])
|
|
|
+ const [visibleCopy, setVisibleCopy] = useState<boolean>(false)
|
|
|
+ const [data, setData] = useState<any>({})
|
|
|
|
|
|
const { getAdAccount } = useModel('useLaunchAdq.useAdAuthorize')
|
|
|
const getTaskLogList = useAjax((params) => getTaskLogListApi(params), { formatResult: true })
|
|
|
/*****************************/
|
|
|
-
|
|
|
+
|
|
|
useEffect(() => {
|
|
|
getAdAccount.run()
|
|
|
}, [])
|
|
@@ -34,13 +39,24 @@ const Log: React.FC<Props> = (props) => {
|
|
|
getList()
|
|
|
}, [queryForm])
|
|
|
|
|
|
+ /** 获取列表 */
|
|
|
const getList = () => {
|
|
|
getTaskLogList.run(queryForm)
|
|
|
}
|
|
|
|
|
|
- return <Drawer bodyStyle={{ padding: 0 }} title={campaignName + ' 日志'} width={1000} placement="right" onClose={() => { onClose && onClose() }} visible={visible}>
|
|
|
+ /** 批量复制 */
|
|
|
+ const copyCreative = (data: any) => {
|
|
|
+ console.log(data);
|
|
|
+ setData(data)
|
|
|
+ setVisibleCopy(true)
|
|
|
+ }
|
|
|
+
|
|
|
+ return <Drawer bodyStyle={{ padding: 0 }} title={campaignName + ' 日志'} width={1200} placement="right" onClose={() => { onClose && onClose() }} visible={visible}>
|
|
|
+ <Space>
|
|
|
+ <Button></Button>
|
|
|
+ </Space>
|
|
|
<TableData
|
|
|
- columns={() => tableConfig()}
|
|
|
+ columns={() => tableConfig(copyCreative)}
|
|
|
ajax={getTaskLogList}
|
|
|
dataSource={getTaskLogList?.data?.data?.records}
|
|
|
loading={getTaskLogList?.loading}
|
|
@@ -48,6 +64,28 @@ const Log: React.FC<Props> = (props) => {
|
|
|
total={getTaskLogList?.data?.data?.total}
|
|
|
page={getTaskLogList?.data?.data?.current}
|
|
|
pageSize={getTaskLogList?.data?.data?.size}
|
|
|
+ rowSelection={{
|
|
|
+ type: 'checkbox',
|
|
|
+ selectedRowKeys: selectedRowKeys?.map((item: {id: number}) => item.id.toString()),
|
|
|
+ onSelect: (record: any, selected: boolean, selectedRows: any, nativeEvent: any) => {
|
|
|
+ let oldSelectedRowKeys: any[] = JSON.parse(JSON.stringify(selectedRowKeys))
|
|
|
+ if (selected) { // 新增
|
|
|
+ oldSelectedRowKeys.push(record)
|
|
|
+ } else { // 减少
|
|
|
+ oldSelectedRowKeys = oldSelectedRowKeys.filter((item: {id: number}) => item.id != record.id)
|
|
|
+ }
|
|
|
+ setSelectedRowKeys(oldSelectedRowKeys)
|
|
|
+ },
|
|
|
+ onSelectAll: (selected: boolean, selectedRows: any, changeRows: any) => {
|
|
|
+ let oldSelectedRowKeys: any[] = JSON.parse(JSON.stringify(selectedRowKeys))
|
|
|
+ if (selected) {
|
|
|
+ oldSelectedRowKeys = [...oldSelectedRowKeys, ...changeRows]
|
|
|
+ } else {
|
|
|
+ oldSelectedRowKeys = oldSelectedRowKeys.filter((item: {id: number}) => !changeRows?.some((item1: {id: number}) => item1.id == item.id))
|
|
|
+ }
|
|
|
+ setSelectedRowKeys(oldSelectedRowKeys)
|
|
|
+ }
|
|
|
+ }}
|
|
|
leftChild={<Space>
|
|
|
<Select
|
|
|
placeholder="媒体账户"
|
|
@@ -69,11 +107,14 @@ const Log: React.FC<Props> = (props) => {
|
|
|
</Select>
|
|
|
</Space>}
|
|
|
onChange={(props: any) => {
|
|
|
- let { sortData, pagination } = props
|
|
|
+ let { pagination } = props
|
|
|
let { current, pageSize } = pagination
|
|
|
setQueryForm({ ...queryForm, pageNum: current, pageSize })
|
|
|
}}
|
|
|
/>
|
|
|
+
|
|
|
+ {/* 批量复制 */}
|
|
|
+ {visibleCopy && <BatchCreativeCopy data={data} publicData={allData} visible={visibleCopy} onClose={() => setVisibleCopy(false)} onChange={() => { }}/>}
|
|
|
</Drawer>
|
|
|
}
|
|
|
|