|
@@ -2,8 +2,8 @@
|
|
|
import Tables from "@/components/Tables"
|
|
|
import { useAjax } from "@/Hook/useAjax"
|
|
|
import { getAdqLandingPageList, putAdqLandingPage } from "@/services/launchAdq/adq"
|
|
|
-import { CheckOutlined, SyncOutlined } from "@ant-design/icons"
|
|
|
-import { Button, message, Modal, Space } from "antd"
|
|
|
+import { CheckOutlined, QuestionCircleOutlined, SyncOutlined } from "@ant-design/icons"
|
|
|
+import { Button, Input, message, Modal, Space, Tooltip } from "antd"
|
|
|
import React, { useEffect, useState } from "react"
|
|
|
import style from '../goodsModal/index.less'
|
|
|
import columns from "./tableConfig"
|
|
@@ -26,7 +26,7 @@ const PageModal: React.FC<Props> = (props) => {
|
|
|
const { cloudParams, visible, onClose, data: data1, onChange } = props
|
|
|
const [selectAdz, setSelectAdz] = useState<number>(1) // 选择广告主
|
|
|
const [data, setData] = useState<any>(data1 || [])
|
|
|
- const [queryForm, setQueryForm] = useState<{ accountId?: number, pageSize: number, pageNum: number }>({ pageNum: 1, pageSize: 20 })
|
|
|
+ const [queryForm, setQueryForm] = useState<{ accountId?: number, pageName?: string, pageSize: number, pageNum: number }>({ pageNum: 1, pageSize: 20 })
|
|
|
const [loading, setLoading] = useState<boolean>(false)
|
|
|
|
|
|
const listAjax = useAjax((params) => getAdqLandingPageList(params))
|
|
@@ -34,7 +34,7 @@ const PageModal: React.FC<Props> = (props) => {
|
|
|
|
|
|
useEffect(() => {
|
|
|
if (data?.length > 0) {
|
|
|
- setQueryForm({ ...queryForm, accountId: data[selectAdz - 1].adAccountId })
|
|
|
+ setQueryForm({ ...queryForm, pageNum: 1, accountId: data[selectAdz - 1].adAccountId })
|
|
|
}
|
|
|
}, [selectAdz])
|
|
|
|
|
@@ -46,13 +46,10 @@ const PageModal: React.FC<Props> = (props) => {
|
|
|
|
|
|
// 获取落地页列表
|
|
|
const getList = () => {
|
|
|
- console.log('data-->', cloudParams);
|
|
|
-
|
|
|
listAjax.run({ ...queryForm, ...cloudParams, pageStatus: 'NORMAL' })
|
|
|
}
|
|
|
|
|
|
const handleOk = () => {
|
|
|
- console.log('data---->', data);
|
|
|
if (data?.every((item: { pageList: any }) => item.pageList)) {
|
|
|
onChange && onChange(data)
|
|
|
} else {
|
|
@@ -85,6 +82,37 @@ const PageModal: React.FC<Props> = (props) => {
|
|
|
}).catch(() => setLoading(false))
|
|
|
}
|
|
|
|
|
|
+ /** 一键设置 */
|
|
|
+ const setOnekey = () => {
|
|
|
+ let pageName: string = data[selectAdz - 1]['pageList']?.[0]?.pageName
|
|
|
+ let newData = JSON.parse(JSON.stringify(data))
|
|
|
+ const hide = message.loading(`正在设置...`, 0, () => {
|
|
|
+ message.success('设置成功');
|
|
|
+ });
|
|
|
+ let ajax = newData?.filter((item: { adAccountId: number }) => item.adAccountId !== data[selectAdz - 1].adAccountId)?.map((item: { adAccountId: number }) => {
|
|
|
+ return getAdqLandingPageList({ pageName, accountId: item.adAccountId, pageNum: 1, pageSize: 20, pageStatus: 'NORMAL' })
|
|
|
+ })
|
|
|
+ Promise.all(ajax).then(res => {
|
|
|
+ if (res && Array.isArray(res)) {
|
|
|
+ res.forEach((item: any) => {
|
|
|
+ let records = item?.data?.records
|
|
|
+ if (Array.isArray(records) && records?.length > 0) {
|
|
|
+ let record = records[0]
|
|
|
+ newData = newData.map((item: { adAccountId: string }) => {
|
|
|
+ if (item.adAccountId === record.accountId.toString()) {
|
|
|
+ return { ...item, pageList: [{ ...record, id: record.pageId }] }
|
|
|
+ }
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ setData(newData)
|
|
|
+ }
|
|
|
+ message.success('设置完成');
|
|
|
+ hide()
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
return <Modal
|
|
|
title={<Space>
|
|
|
<span>ADQ落地页</span>
|
|
@@ -105,10 +133,20 @@ const PageModal: React.FC<Props> = (props) => {
|
|
|
<div key={index} onClick={() => { handleSelectAdz(index + 1, item) }} className={`${style.accItem} ${selectAdz === index + 1 && style.select} `}>
|
|
|
{item?.adAccountId}
|
|
|
{data[index].pageList?.length > 0 && <CheckOutlined style={{ color: '#1890ff' }} />}
|
|
|
- </div>))}
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
</div>
|
|
|
<div className={style.right}>
|
|
|
<Space style={{ marginBottom: 10 }} align="end">
|
|
|
+ <Input value={queryForm?.pageName} allowClear placeholder='请输入落地页名称' onChange={(e) => setQueryForm({ ...queryForm, pageNum: 1, pageName: e.target.value })}/>
|
|
|
+ {data?.length > 1 && <Button disabled={!data[selectAdz - 1]['pageList']?.length} onClick={setOnekey} type="link" loading={listAjax.loading}>
|
|
|
+ <Space>
|
|
|
+ <span>一键设置</span>
|
|
|
+ <Tooltip color="#FFF" overlayInnerStyle={{ color: '#000' }} title="设置其它账号有相同名称的落地页为那个账号的落地页(注意需要落地页名称相同,否则不设置)">
|
|
|
+ <QuestionCircleOutlined />
|
|
|
+ </Tooltip>
|
|
|
+ </Space>
|
|
|
+ </Button>}
|
|
|
<Button icon={<SyncOutlined />} type='link' loading={listAjax?.loading} onClick={() => { listAjax?.refresh() }}></Button>
|
|
|
</Space>
|
|
|
<Tables
|
|
@@ -120,6 +158,8 @@ const PageModal: React.FC<Props> = (props) => {
|
|
|
bordered
|
|
|
total={listAjax?.data?.total}
|
|
|
defaultPageSize={20}
|
|
|
+ current={listAjax?.data?.current}
|
|
|
+ pageSize={listAjax?.data?.size}
|
|
|
pageChange={(page: number, pageSize?: number) => {
|
|
|
setQueryForm({ ...queryForm, pageNum: page, pageSize: pageSize as number || 20 })
|
|
|
}}
|