wjx hace 8 meses
padre
commit
5184f0b3b9

+ 10 - 10
src/pages/iaaData/components/UpdateAd3/index.tsx

@@ -57,11 +57,11 @@ const UpdateAd3: React.FC<Props> = ({ visible, type, onClose, onChange, updateDa
                     paramsCj.bidAmount = values?.bidAmount
                 }
                 modifyAmountBatch.run({ accountAdgroupMaps, ...paramsCj }).then(res => {
-                    if (res?.failIdList?.length === 0) {
+                    if (res?.data?.failIdList?.length === 0) {
                         message.success(`修改操作完成!`)
                         onChange?.()
                     } else {
-                        setFailIdList(res?.list || [])
+                        setFailIdList(res?.data?.failIdList || [])
                         setFailVisible(true)
                     }
                 })
@@ -83,11 +83,11 @@ const UpdateAd3: React.FC<Props> = ({ visible, type, onClose, onChange, updateDa
                     params2 = values
                 }
                 updateBatchAdgroupInfo.run({ accountAdgroupMaps, ...params2 }).then(res => {
-                    if (res?.failIdList?.length === 0) {
+                    if (res?.data?.failIdList?.length === 0) {
                         message.success(`修改操作完成!`)
                         onChange?.()
                     } else {
-                        setFailIdList(res?.list || [])
+                        setFailIdList(res?.data?.failIdList || [])
                         setFailVisible(true)
                     }
                 })
@@ -104,33 +104,33 @@ const UpdateAd3: React.FC<Props> = ({ visible, type, onClose, onChange, updateDa
                 delete params.timeSeriesType
                 delete params.date
                 modifyAdTimeBatch.run(params).then(res => {
-                    if (res?.failIdList?.length === 0) {
+                    if (res?.data?.failIdList?.length === 0) {
                         message.success(`修改操作完成!`)
                         onChange?.()
                     } else {
-                        setFailIdList(res?.list || [])
+                        setFailIdList(res?.data?.failIdList || [])
                         setFailVisible(true)
                     }
                 })
                 break
             case '修改日限额':
                 modifyDailyBudgetBatch.run({ accountAdgroupMaps, ...values }).then(res => {
-                    if (res?.failIdList?.length === 0) {
+                    if (res?.data?.failIdList?.length === 0) {
                         message.success(`修改操作完成!`)
                         onChange?.()
                     } else {
-                        setFailIdList(res?.list || [])
+                        setFailIdList(res?.data?.failIdList || [])
                         setFailVisible(true)
                     }
                 })
                 break
             case '删除':
                 delBatch.run({ accountAdgroupMaps }).then(res => {
-                    if (res?.failIdList?.length === 0) {
+                    if (res?.data?.failIdList?.length === 0) {
                         message.success(`删除广告操作完成!`)
                         onChange?.()
                     } else {
-                        setFailIdList(res?.list || [])
+                        setFailIdList(res?.data?.failIdList || [])
                         setFailVisible(true)
                     }
                 })

+ 20 - 24
src/pages/iaaData/game/tencent/adList/index.tsx

@@ -6,8 +6,8 @@ import columns12 from "./tableConfig"
 import QueryForm from "@/components/QueryForm"
 import moment from "moment"
 import { useModel } from "umi"
-import { Button, Dropdown, message, notification, Space } from "antd"
-import { newEditAdqAdgroupsDataApi } from "@/services/gameData"
+import { Button, Dropdown, message, Space } from "antd"
+import { modifyStatusBatchApi } from "@/services/gameData"
 import { DeleteOutlined, DownOutlined, PauseCircleOutlined, PlayCircleOutlined } from "@ant-design/icons"
 import DayAd from "./dayAd"
 import AutoAcquisitionSet from "@/pages/iaaData/novel/tencent/adList/autoAcquisitionSet"
@@ -35,7 +35,7 @@ const TencentIaaAd: React.FC = () => {
     const [updateData, setUpdateDate] = useState<{ visible: boolean, type: '修改出价' | '修改名称' | '修改日限额' | '修改投放时间' | '删除' | '深度优化ROI' | '修改投放首日开始时间' }>({ visible: false, type: '修改出价' })
     const [autoAcqVisible, setAutoAcqVisible] = useState<boolean>(false)
 
-    const editAdqAdgroupsData = useAjax((params) => newEditAdqAdgroupsDataApi(params))
+    const modifyStatusBatch = useAjax((params) => modifyStatusBatchApi(params))
     const getGDTList = useAjax((params) => getGDTListApi(params))
     const getGDTTotal = useAjax((params) => getGDTTotalApi(params))
     /****************************************/
@@ -65,30 +65,26 @@ const TencentIaaAd: React.FC = () => {
     }
 
     // 批量启停
-    const adStatus = (type: 'play' | 'suspend') => {
-        let params: any = {}
-        if (type === 'play') {
-            params.configuredStatus = 'AD_STATUS_NORMAL'
-            params.adgroupIds = selectedRows.filter((item: { configuredStatus: string, promotionId: number }) => item.configuredStatus === 'AD_STATUS_SUSPEND').map(item => item.promotionId)
+    const adStatus = (type: boolean) => {
+        let newSelectedRows = []
+        if (type) {
+            newSelectedRows = selectedRows.filter((item: { configuredStatus: string, promotionId: number }) => item.configuredStatus === 'AD_STATUS_SUSPEND')
         } else {
-            params.configuredStatus = 'AD_STATUS_SUSPEND'
-            params.adgroupIds = selectedRows.filter((item: { configuredStatus: string, promotionId: number }) => item.configuredStatus === 'AD_STATUS_NORMAL').map(item => item.promotionId)
+            newSelectedRows = selectedRows.filter((item: { configuredStatus: string, promotionId: number }) => item.configuredStatus === 'AD_STATUS_NORMAL')
         }
-        if (params.adgroupIds.length === 0) {
-            message.warn(`所以账号都是${type === 'play' ? '启动' : '暂停'}状态,无需${type === 'play' ? '启动' : '暂停'}操作`)
+        if (newSelectedRows.length === 0) {
+            message.warn(`所有广告都是${type ? '启动' : '暂停'}状态,无需${type ? '启动' : '暂停'}操作`)
             return
         }
-        editAdqAdgroupsData.run(params).then(res => {
-            message.success(`${type === 'play' ? '启动' : '暂停'}成功: ${res.success},失败: ${res.fail}`)//
-            if (res?.fail) {
-                notification.error({
-                    message: `${type === 'play' ? '启动' : '暂停'}失败`,
-                    description: `成功: ${res.success},修改失败${res.fail}条,失败的请到任务列表查看`,
-                    duration: 0
-                });
+        let accountAdgroupMaps = [...new Set(newSelectedRows?.map(item => item.accountId + ',' + item.promotionId))]
+        modifyStatusBatch.run({ accountAdgroupMaps, suspend: !type }).then(res => {
+            if (res?.data?.failIdList?.length === 0) {
+                message.success(`${type ? '启动' : '暂停'}成功`)
+                getGDTList.refresh()
+                setSelectedRows([])
+            } else {
+                message.success(`${type ? '启动' : '暂停'}失败,${JSON.stringify(res?.data?.failIdList)}`)
             }
-            getGDTList.refresh()
-            setSelectedRows([])
         })
     }
 
@@ -97,8 +93,8 @@ const TencentIaaAd: React.FC = () => {
         <TablePro
             czChild={<Space>
                 {/* <Switch checkedChildren="开启全选" unCheckedChildren="关闭全选" checked={!isZj} onChange={(e) => { setIsZj(!e); }} /> */}
-                <Button type='primary' size="small" style={{ background: '#67c23a', borderColor: '#67c23a' }} loading={editAdqAdgroupsData.loading} icon={<PlayCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => adStatus('play')}>启动</Button>
-                <Button type='primary' size="small" style={{ background: '#e6a23c', borderColor: '#e6a23c' }} loading={editAdqAdgroupsData.loading} icon={<PauseCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => adStatus('suspend')}>暂停</Button>
+                <Button type='primary' size="small" style={{ background: '#67c23a', borderColor: '#67c23a' }} loading={modifyStatusBatch.loading} icon={<PlayCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => adStatus(true)}>启动</Button>
+                <Button type='primary' size="small" style={{ background: '#e6a23c', borderColor: '#e6a23c' }} loading={modifyStatusBatch.loading} icon={<PauseCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => adStatus(false)}>暂停</Button>
                 <Button type='primary' danger icon={<DeleteOutlined />} disabled={selectedRows.length === 0} onClick={() => {
                     setUpdateDate({ visible: true, type: '删除' })
                 }}>删除</Button>

+ 14 - 15
src/pages/iaaData/game/tencent/adList/switchStatus.tsx

@@ -1,6 +1,6 @@
 import { useAjax } from "@/Hook/useAjax"
-import { newEditAdqAdgroupsDataApi } from "@/services/gameData"
-import { message, notification, Switch } from "antd"
+import { modifyStatusBatchApi } from "@/services/gameData"
+import { message, Switch } from "antd"
 import React from "react"
 
 
@@ -12,28 +12,27 @@ interface Props {
     configuredStatus: string,
     isDeleted?: boolean,
     adgroupId: number,
+    accountId: number,
     onChange?: () => void
 }
 const SwitchStatus: React.FC<Props> = (prosp) => {
 
-    const { configuredStatus, isDeleted, adgroupId, onChange } = prosp
-    const editAdqAdgroupsData = useAjax((params) => newEditAdqAdgroupsDataApi(params))
+    const { configuredStatus, isDeleted, adgroupId, accountId, onChange } = prosp
     
-    const switchHandle = (adgroupIds: number[], configuredStatus: string) => {
-        editAdqAdgroupsData.run({ adgroupIds, configuredStatus }).then(res => {
-            message.success(`${configuredStatus === 'AD_STATUS_NORMAL' ? '启动' : '暂停'}成功`)
-            if (res?.fail) {
-                notification.error({
-                    message: `${configuredStatus === 'AD_STATUS_NORMAL' ? '启动' : '暂停'}失败`,
-                    description: `修改失败${res.fail}条,失败的请到任务列表查看`,
-                    duration: 0
-                });
+    const modifyStatusBatch = useAjax((params) => modifyStatusBatchApi(params))
+    
+    const switchHandle = (accountAdgroupMaps: string[], type: boolean) => {
+        modifyStatusBatch.run({ accountAdgroupMaps, suspend: !type }).then(res => {
+            if (res?.data?.failIdList?.length === 0) {
+                message.success(`${type ? '启动' : '暂停'}成功,结果有延迟请手动刷新`)
+                // onChange?.()
+            } else {
+                message.success(`${type ? '启动' : '暂停'}失败,${JSON.stringify(res?.data?.failIdList)}`)
             }
-            onChange?.()
         })
     }
 
-    return <Switch size="small" checked={configuredStatus === 'AD_STATUS_NORMAL'} loading={editAdqAdgroupsData.loading} disabled={isDeleted} onChange={(checked) => switchHandle([adgroupId] ,checked ? 'AD_STATUS_NORMAL' : 'AD_STATUS_SUSPEND')}/>
+    return <Switch size="small" checked={configuredStatus === 'AD_STATUS_NORMAL'} loading={modifyStatusBatch.loading} disabled={isDeleted} onChange={(checked) => switchHandle([accountId + ',' + adgroupId] ,checked)}/>
 }
 
 

+ 1 - 1
src/pages/iaaData/game/tencent/adList/tableConfig.tsx

@@ -581,7 +581,7 @@ function columns12(dayHandle: (data: any) => void, onChange?: () => void): { lab
                         if (b?.accountId === '总计') {
                             return '--'
                         }
-                        return <SwitchStatus configuredStatus={a} isDeleted={b?.isDeleted} adgroupId={b?.promotionId} onChange={onChange} />
+                        return <SwitchStatus configuredStatus={a} isDeleted={b?.isDeleted} accountId={b?.accountId} adgroupId={b?.promotionId} onChange={onChange} />
                     }
                 }
             ]

+ 2 - 2
src/pages/iaaData/novel/tencent/adList/autoAcquisitionSet.tsx

@@ -53,11 +53,11 @@ const AutoAcquisitionSet: React.FC<Props> = ({ selectAdList, visible, onChange,
         if (params?.autoAcquisitionBudgetPercent !== null && params?.autoAcquisitionBudgetPercent !== undefined) params.autoAcquisitionBudgetPercent = params?.autoAcquisitionBudgetPercent / 100
         let accountAdgroupMaps = [...new Set(selectAdList?.map(item => item.accountId + ',' + item.adgroupId))]
         updateBatchAdgroupInfo.run({ accountAdgroupMaps, ...params }).then(res => {
-            if (res?.failIdList?.length === 0) {
+            if (res?.data?.failIdList?.length === 0) {
                 message.success(`修改操作完成!`)
                 onChange?.()
             } else {
-                setFailIdList(res?.list || [])
+                setFailIdList(res?.data?.failIdList || [])
                 setFailVisible(true)
             }
         })

+ 32 - 32
src/pages/iaaData/novel/tencent/adList/index.tsx

@@ -5,8 +5,8 @@ import TablePro from "@/components/TablePro"
 import columns12 from "./tableConfig"
 import moment from "moment"
 import { useModel } from "umi"
-import { Button, Dropdown, message, notification, Select, Space } from "antd"
-import { newEditAdqAdgroupsDataApi } from "@/services/gameData"
+import { Button, Dropdown, message, Select, Space, Switch } from "antd"
+import { modifyStatusBatchApi } from "@/services/gameData"
 import { DeleteOutlined, DownOutlined, PauseCircleOutlined, PlayCircleOutlined } from "@ant-design/icons"
 import DayAd from "./dayAd"
 import QueryFormNovel from "@/components/QueryForm/queryFormNovel"
@@ -35,13 +35,18 @@ const TencentNovelAd: React.FC<{ configName?: string, dayConfigName?: string }>
     const [updateData, setUpdateDate] = useState<{ visible: boolean, type: '修改出价' | '修改名称' | '修改日限额' | '修改投放时间' | '删除' | '深度优化ROI' | '修改投放首日开始时间' }>({ visible: false, type: '修改出价' })
     const [autoAcqVisible, setAutoAcqVisible] = useState<boolean>(false)
     const [handleType, setHandleType] = useState<number>(1)
+    const [isZj, setIsZj] = useState<boolean>(true)
 
-    const editAdqAdgroupsData = useAjax((params) => newEditAdqAdgroupsDataApi(params))
+    const modifyStatusBatch = useAjax((params) => modifyStatusBatchApi(params))
     const getGDTList = useAjax((params) => getNovelGDTListApi(params))
     const getGDTTotal = useAjax((params) => getNovelGDTTotalApi(params))
     /****************************************/
 
     useEffect(() => {
+        getList()
+    }, [queryForm, initialState?.iaaApp])
+
+    const getList = () => {
         if (initialState?.iaaApp) {
             const [appId, productType] = initialState.iaaApp.split('||')
             getGDTList.run({ ...queryForm, appId, productType })
@@ -56,8 +61,7 @@ const TencentNovelAd: React.FC<{ configName?: string, dayConfigName?: string }>
                 }
             })
         }
-
-    }, [queryForm, initialState?.iaaApp])
+    }
 
     const dayHandle = (data: any) => {
         setVisible(true)
@@ -66,37 +70,33 @@ const TencentNovelAd: React.FC<{ configName?: string, dayConfigName?: string }>
     }
 
     // 批量启停
-    const adStatus = (type: 'play' | 'suspend') => {
-        let params: any = {}
-        if (type === 'play') {
-            params.configuredStatus = 'AD_STATUS_NORMAL'
-            params.adgroupIds = selectedRows.filter((item: { configuredStatus: string, adgroupId: number }) => item.configuredStatus === 'AD_STATUS_SUSPEND').map(item => item.adgroupId)
+    const adStatus = (type: boolean) => {
+        let newSelectedRows = []
+        if (type) {
+            newSelectedRows = selectedRows.filter((item: { configuredStatus: string, adgroupId: number }) => item.configuredStatus === 'AD_STATUS_SUSPEND')
         } else {
-            params.configuredStatus = 'AD_STATUS_SUSPEND'
-            params.adgroupIds = selectedRows.filter((item: { configuredStatus: string, adgroupId: number }) => item.configuredStatus === 'AD_STATUS_NORMAL').map(item => item.adgroupId)
+            newSelectedRows = selectedRows.filter((item: { configuredStatus: string, adgroupId: number }) => item.configuredStatus === 'AD_STATUS_NORMAL')
         }
-        if (params.adgroupIds.length === 0) {
-            message.warn(`所以账号都是${type === 'play' ? '启动' : '暂停'}状态,无需${type === 'play' ? '启动' : '暂停'}操作`)
+        if (newSelectedRows.length === 0) {
+            message.warn(`所有广告都是${type ? '启动' : '暂停'}状态,无需${type ? '启动' : '暂停'}操作`)
             return
         }
-        editAdqAdgroupsData.run(params).then(res => {
-            message.success(`${type === 'play' ? '启动' : '暂停'}成功: ${res.success},失败: ${res.fail}`)//
-            if (res?.fail) {
-                notification.error({
-                    message: `${type === 'play' ? '启动' : '暂停'}失败`,
-                    description: `成功: ${res.success},修改失败${res.fail}条,失败的请到任务列表查看`,
-                    duration: 0
-                });
+        let accountAdgroupMaps = [...new Set(newSelectedRows?.map(item => item.accountId + ',' + item.adgroupId))]
+        modifyStatusBatch.run({ accountAdgroupMaps, suspend: !type }).then(res => {
+            if (res?.data?.failIdList?.length === 0) {
+                message.success(`${type ? '启动' : '暂停'}成功`)
+                getGDTList.refresh()
+                setSelectedRows([])
+            } else {
+                message.success(`${type ? '启动' : '暂停'}失败,${JSON.stringify(res?.data?.failIdList)}`)
             }
-            getGDTList.refresh()
-            setSelectedRows([])
         })
     }
 
     return <div>
         <TablePro
             czChild={<Space>
-                {/* <Switch checkedChildren="开启全选" unCheckedChildren="关闭全选" checked={!isZj} onChange={(e) => { setIsZj(!e); }} /> */}
+                <Switch checkedChildren="开启全选" unCheckedChildren="关闭全选" checked={!isZj} onChange={(e) => { setIsZj(!e); }} />
                 <Select
                     style={{ width: 120 }}
                     onChange={(e) => {
@@ -107,8 +107,8 @@ const TencentNovelAd: React.FC<{ configName?: string, dayConfigName?: string }>
                     dropdownMatchSelectWidth={false}
                     options={[{ label: '广告操作', value: 1 }, { label: '修改深度优化期望ROI', value: 3 }]}
                 />
-                <Button type='primary' style={{ background: '#67c23a', borderColor: '#67c23a' }} loading={editAdqAdgroupsData.loading} icon={<PlayCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => adStatus('play')}>启动</Button>
-                <Button type='primary' style={{ background: '#e6a23c', borderColor: '#e6a23c' }} loading={editAdqAdgroupsData.loading} icon={<PauseCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => adStatus('suspend')}>暂停</Button>
+                <Button type='primary' style={{ background: '#67c23a', borderColor: '#67c23a' }} loading={modifyStatusBatch.loading} icon={<PlayCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => adStatus(true)}>启动</Button>
+                <Button type='primary' style={{ background: '#e6a23c', borderColor: '#e6a23c' }} loading={modifyStatusBatch.loading} icon={<PauseCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => adStatus(false)}>暂停</Button>
                 {handleType === 1 ? <>
                     <Button type='primary' danger icon={<DeleteOutlined />} disabled={selectedRows.length === 0} onClick={() => {
                         setUpdateDate({ visible: true, type: '删除' })
@@ -227,17 +227,17 @@ const TencentNovelAd: React.FC<{ configName?: string, dayConfigName?: string }>
                     setQueryForm({ ...newQueryForm, ...params })
                 }}
             />}
-            isZj
+            isZj={isZj}
             totalData={totalData}
-            config={columns12(dayHandle, () => { getGDTList.refresh() })}
+            config={columns12(dayHandle, () => { getList() })}
             configName={configName || '腾讯小说广告列表'}
             fixed={{ left: 4, right: 2 }}
             scroll={{ x: 1000, y: 620 }}
             title='腾讯广告列表'
             loading={getGDTList.loading}
             ajax={getGDTList}
-            page={getGDTList?.data?.data?.current || 1}
-            pageSize={getGDTList?.data?.data?.size || 20}
+            page={queryForm?.pageNum || 1}
+            pageSize={queryForm?.pageSize || 20}
             total={getGDTList?.data?.data?.total || 0}
             dataSource={getGDTList?.data?.data?.records?.map((item: any) => ({ ...item, id: item.adgroupId, deepConversionSpec: item?.deepConversionSpecJson ? JSON.parse(item.deepConversionSpecJson) : {} }))}
             onChange={(pagination: any, _: any, sortData: any) => {
@@ -257,7 +257,7 @@ const TencentNovelAd: React.FC<{ configName?: string, dayConfigName?: string }>
             rowSelection={{
                 selectedRowKeys: selectedRows.map(item => item.adgroupId + ''),
                 getCheckboxProps: (record: any) => ({
-                    disabled: handleType === 3 ?  record.status === 'STATUS_DELETED' || record?.accountId === '总计' || !(record?.deepConversionSpec?.deepConversionWorthSpec?.goal === 'GOAL_1DAY_PURCHASE_ROAS') : record.status === 'STATUS_DELETED' || record?.accountId === '总计'
+                    disabled: handleType === 3 ? record.status === 'STATUS_DELETED' || record?.accountId === '总计' || !(record?.deepConversionSpec?.deepConversionWorthSpec?.goal === 'GOAL_1DAY_PURCHASE_ROAS') : record.status === 'STATUS_DELETED' || record?.accountId === '总计'
                 }),
                 onSelect: (record: { adgroupId: number }, selected: boolean) => {
                     if (selected) {

+ 13 - 15
src/pages/iaaData/novel/tencent/adList/switchStatus.tsx

@@ -1,5 +1,5 @@
 import { useAjax } from "@/Hook/useAjax"
-import { newEditAdqAdgroupsDataApi } from "@/services/gameData"
+import { modifyStatusBatchApi } from "@/services/gameData"
 import { message, notification, Switch } from "antd"
 import React from "react"
 
@@ -10,30 +10,28 @@ import React from "react"
  */
 interface Props {
     configuredStatus: string,
+    accountId: number
+    adgroupId: number
     isDeleted?: boolean,
-    adgroupId: number,
     onChange?: () => void
 }
 const SwitchStatus: React.FC<Props> = (prosp) => {
 
-    const { configuredStatus, isDeleted, adgroupId, onChange } = prosp
-    const editAdqAdgroupsData = useAjax((params) => newEditAdqAdgroupsDataApi(params))
+    const { configuredStatus, isDeleted, adgroupId, accountId, onChange } = prosp
+    const modifyStatusBatch = useAjax((params) => modifyStatusBatchApi(params))
     
-    const switchHandle = (adgroupIds: number[], configuredStatus: string) => {
-        editAdqAdgroupsData.run({ adgroupIds, configuredStatus }).then(res => {
-            message.success(`${configuredStatus === 'AD_STATUS_NORMAL' ? '启动' : '暂停'}成功`)
-            if (res?.fail) {
-                notification.error({
-                    message: `${configuredStatus === 'AD_STATUS_NORMAL' ? '启动' : '暂停'}失败`,
-                    description: `修改失败${res.fail}条,失败的请到任务列表查看`,
-                    duration: 0
-                });
+    const switchHandle = (accountAdgroupMaps: string[], type: boolean) => {
+        modifyStatusBatch.run({ accountAdgroupMaps, suspend: !type }).then(res => {
+            if (res?.data?.failIdList?.length === 0) {
+                message.success(`${type ? '启动' : '暂停'}成功,结果有延迟请手动刷新`)
+                // onChange?.()
+            } else {
+                message.success(`${type ? '启动' : '暂停'}失败,${JSON.stringify(res?.data?.failIdList)}`)
             }
-            onChange?.()
         })
     }
 
-    return <Switch size="small" checked={configuredStatus === 'AD_STATUS_NORMAL'} loading={editAdqAdgroupsData.loading} disabled={isDeleted} onChange={(checked) => switchHandle([adgroupId] ,checked ? 'AD_STATUS_NORMAL' : 'AD_STATUS_SUSPEND')}/>
+    return <Switch size="small" checked={configuredStatus === 'AD_STATUS_NORMAL'} loading={modifyStatusBatch.loading} disabled={isDeleted} onChange={(checked) => switchHandle([accountId + ',' + adgroupId] ,checked)}/>
 }
 
 

+ 1 - 1
src/pages/iaaData/novel/tencent/adList/tableConfig.tsx

@@ -666,7 +666,7 @@ function columns12(dayHandle: (data: any) => void, onChange?: () => void): { lab
                         if (b?.accountId === '总计') {
                             return '--'
                         }
-                        return <SwitchStatus configuredStatus={a} isDeleted={b?.isDeleted} adgroupId={b?.adgroupId} onChange={onChange} />
+                        return <SwitchStatus configuredStatus={a} isDeleted={b?.isDeleted} adgroupId={b?.adgroupId} accountId={b?.accountId} onChange={onChange} />
                     }
                 }
             ]

+ 6 - 5
src/pages/iaaData/novel/tencent/dynamic/index.tsx

@@ -5,7 +5,7 @@ import TablePro from "@/components/TablePro"
 import columns12 from "./tableConfig"
 import moment from "moment"
 import { useModel } from "umi"
-import { Button, message, Modal, Space, Table } from "antd"
+import { Button, message, Modal, Space, Switch, Table } from "antd"
 import { updateBatchDynamicCreativesInfoApi } from "@/services/gameData"
 import { PauseCircleOutlined, PlayCircleOutlined } from "@ant-design/icons"
 import DayAd from "./dayAd"
@@ -33,6 +33,7 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
     const [adName, setAdName] = useState<string>('')
     const [failIdList, setFailIdList] = useState<{ adgroupId: number, code: number, message: string, messageCn: string }[]>([])
     const [failVisible, setFailVisible] = useState<boolean>(false)
+    const [isZj, setIsZj] = useState<boolean>(true)
 
     const updateBatchDynamicCreativesInfo = useAjax((params) => updateBatchDynamicCreativesInfoApi(params))
     const getDynamicList = useAjax((params) => getNovelDynamicListApi(params))
@@ -76,12 +77,12 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
             case '启动':
             case '暂停':
                 updateBatchDynamicCreativesInfo.run({ accountAdgroupMaps, suspend: type === '暂停' }).then(res => {
-                    if (res?.failIdList?.length === 0) {
+                    if (res?.data?.failIdList?.length === 0) {
                         message.success(`修改操作完成!`)
                         getDynamicList.refresh()
                         setSelectedRows([])
                     } else {
-                        setFailIdList(res?.list || [])
+                        setFailIdList(res?.data?.failIdList || [])
                         setFailVisible(true)
                     }
                     if (hide) {
@@ -96,7 +97,7 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
     return <div>
         <TablePro
             czChild={<Space>
-                {/* <Switch checkedChildren="开启全选" unCheckedChildren="关闭全选" checked={!isZj} onChange={(e) => { setIsZj(!e); }} /> */}
+                <Switch checkedChildren="开启全选" unCheckedChildren="关闭全选" checked={!isZj} onChange={(e) => { setIsZj(!e); }} />
                 <Button type='primary' size="small" style={{ background: '#67c23a', borderColor: '#67c23a' }} loading={updateBatchDynamicCreativesInfo.loading} icon={<PlayCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => dynamicHandle('启动')}>启动</Button>
                 <Button type='primary' size="small" style={{ background: '#e6a23c', borderColor: '#e6a23c' }} loading={updateBatchDynamicCreativesInfo.loading} icon={<PauseCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => dynamicHandle('暂停')}>暂停</Button>
                 <span style={{ color: 'red' }}>操作完数据结果延时5分钟之内,即时结果去腾讯后台查看</span>
@@ -140,7 +141,7 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
                     setQueryForm({ ...newQueryForm, ...params })
                 }}
             />}
-            isZj
+            isZj={isZj}
             totalData={totalData}
             config={columns12(dayHandle, () => { getDynamicList.refresh() })}
             configName={configName || '腾讯小说创意列表'}

+ 12 - 0
src/services/gameData/index.ts

@@ -227,6 +227,18 @@ export async function newEditAdqAdgroupsDataApi(data: EditAdqAdgroupsProps) {
     });
 }
 
+/**
+ * 启停
+ * @param data 
+ * @returns 
+ */
+export async function modifyStatusBatchApi(data: ADQV3.ModifyStatusBatchProps) {
+    return request(api + '/adq/adgroup/modifyStatusBatch', {
+        method: 'PUT',
+        data
+    });
+}
+
 /**
  * 删除广告
  * @param data