import { Button, Card, Input, message, Popconfirm, Select, Table } from "antd" import React, { useEffect, useState } from "react" import '../../tencentAdPutIn/index.less' import { delPageApi, getAdqLandingPageListApi, getWXDownPageAuthInfoListApi } from "@/services/adqV3/global"; import { useAjax } from "@/Hook/useAjax"; import { useModel } from "umi"; import { SearchOutlined } from "@ant-design/icons"; import columns from "./tableConfig"; import CopyPage from "./copyPage"; interface AjaxProps { pageNum: number; pageSize: number; accountId?: number; pageName?: string; pageType?: string; pageStatus?: string; ownerUid?: number; } /** * 原生推广页 * @returns */ const WechatCanvasPage: React.FC = () => { /********************************/ const { getAllUserAccount } = useModel('useLaunchAdq.useAdAuthorize') const [queryParamsNew, setQueryParamsNew] = useState({ pageNum: 1, pageSize: 20 }) const [visible, setVisible] = useState(false) const [pageData, setPageData] = useState() const [selectedRows, setSelectedRows] = useState([]) const getAdqLandingPageList = useAjax((params) => getAdqLandingPageListApi(params)) const getWXDownPageAuthInfoList = useAjax((params) => getWXDownPageAuthInfoListApi(params)) const delPage = useAjax((params) => delPageApi(params)) /********************************/ useEffect(() => { // 获取账户列表 getAllUserAccount.run().then(res => { setQueryParamsNew({ ...queryParamsNew, accountId: res?.data?.[0]?.accountId }) }) }, []) // 落地页列表 useEffect(() => { if (queryParamsNew?.accountId) { getAdqLandingPageList.run(queryParamsNew) } }, [queryParamsNew]) // 授权落地页 useEffect(() => { if (queryParamsNew?.accountId) { getWXDownPageAuthInfoList.run(queryParamsNew.accountId) } }, [queryParamsNew.accountId]) // 批量复制 const handleCopy = (data: any) => { setVisible(true) setPageData(data) } const handleDel = () => { delPage.run({ accountId: queryParamsNew.accountId, pageIds: selectedRows.map(item => item.pageId) }).then(res => { if (res?.length === 0) { message.success('删除成功,结果可能会延迟几分钟返回') getAdqLandingPageList.refresh() setSelectedRows([]) } }) } return {queryParamsNew?.accountId && <> setQueryParamsNew({ ...queryParamsNew, pageNum: 1, pageName: e.target.value })} /> } handleDel?.()} > } > getAdqLandingPageList.refresh(), queryParamsNew.accountId)} dataSource={getAdqLandingPageList.data?.records} size="small" loading={getAdqLandingPageList?.loading || getAllUserAccount.loading} scroll={{ y: 600 }} bordered rowKey={'pageId'} pagination={{ total: getAdqLandingPageList.data?.total, defaultPageSize: 20, current: getAdqLandingPageList.data?.current, pageSize: getAdqLandingPageList.data?.size }} onChange={(pagination) => { const { current, pageSize } = pagination setQueryParamsNew({ ...queryParamsNew, pageNum: current as number, pageSize: pageSize as number || 20 }) }} rowSelection={{ selectedRowKeys: selectedRows.map(item => item.pageId), getCheckboxProps: (record: any) => { return { disabled: !!queryParamsNew?.ownerUid || record?.canvasType === 'COMMON_PAGE' } }, onSelect: (record: { pageId: number }, selected: boolean) => { if (selected) { selectedRows.push({ ...record }) setSelectedRows([...selectedRows]) } else { let newSelectAccData = selectedRows.filter((item: { pageId: number }) => item.pageId !== record.pageId) setSelectedRows([...newSelectAccData]) } }, onSelectAll: (selected: boolean, selectedRowss: { pageId: number }[], changeRows: { pageId: number }[]) => { if (selected) { let newSelectAccData = [...selectedRows] changeRows.forEach((item: { pageId: number }) => { let index = newSelectAccData.findIndex((ite: { pageId: number }) => ite.pageId === item.pageId) if (index === -1) { let data: any = { ...item } newSelectAccData.push(data) } }) setSelectedRows([...newSelectAccData]) } else { let newSelectAccData = selectedRows.filter((item: { pageId: number }) => { let index = changeRows.findIndex((ite: { pageId: number }) => ite.pageId === item.pageId) if (index !== -1) { return false } else { return true } }) setSelectedRows([...newSelectAccData]) } } }} /> {visible && { setVisible(false) setPageData(undefined) }} onChange={() => { setVisible(false) setPageData(undefined) getAdqLandingPageList.refresh() }} />} } export default WechatCanvasPage