wjx 2 dní pred
rodič
commit
a0d324498a

+ 29 - 7
src/pages/iaaData/novel/tencent/dynamic/index.tsx

@@ -34,6 +34,7 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: 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 [dataList, setDataList] = useState<any[]>([])
 
     const updateBatchDynamicCreativesInfo = useAjax((params) => updateBatchDynamicCreativesInfoApi(params))
     const getDynamicList = useAjax((params) => getNovelDynamicListApi(params))
@@ -42,7 +43,7 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
 
     useEffect(() => {
         if (initialState?.iaaApp?.length && initialState?.productType) {
-            getDynamicList.run({ ...queryForm, appId: initialState.iaaApp, productType: initialState.productType })
+            getList()
             getDynamicTotal.run({ ...queryForm, appId: initialState.iaaApp, productType: initialState.productType }).then((res: { data: { dynamicCreativeId: number; accountId: string } }) => {
                 if (res?.data) {
                     let data = res?.data
@@ -55,10 +56,18 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
             })
         } else {
             setTotalData([{ dynamicCreativeId: 1, accountId: '总计' }])
-            getDynamicList.mutate({ data: undefined })
+            setDataList([])
         }
     }, [queryForm, initialState?.iaaApp, initialState?.productType])
 
+    const getList = () => {
+        if (initialState?.iaaApp?.length && initialState?.productType) {
+            getDynamicList.run({ ...queryForm, appId: initialState.iaaApp, productType: initialState.productType }).then(res => {
+                setDataList(res?.data?.records?.map((item: any) => ({ ...item, id: item.dynamicCreativeId })) || [])
+            })
+        }
+    }
+
     const dayHandle = (data: any) => {
         setVisible(true)
         setAdName(data.dynamicCreativeName)
@@ -67,7 +76,8 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
     }
 
     const dynamicHandle = (type: '删除' | '启动' | '暂停', data?: any) => {
-        let accountAdgroupMaps = data ? [data.accountId + ',' + data.dynamicCreativeId] : [...new Set(selectedRows?.map(item => item.accountId + ',' + item.dynamicCreativeId))]
+        const accountAdgroupMaps = data ? [data.accountId + ',' + data.dynamicCreativeId] : [...new Set(selectedRows?.map(item => item.accountId + ',' + item.dynamicCreativeId))]
+        const dynamicCreativeIdList = data ? [data.dynamicCreativeId] : selectedRows?.map(item => item.dynamicCreativeId)
         let hide: any
         if (data) {
             hide = message.loading(`正在设置...`, 0, () => {
@@ -80,7 +90,12 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
                 updateBatchDynamicCreativesInfo.run({ accountAdgroupMaps, suspend: type === '暂停' }).then(res => {
                     if (res?.data?.failIdList?.length === 0) {
                         message.success(`修改操作完成!`)
-                        getDynamicList.refresh()
+                        setDataList(d => d.map(i => {
+                            if (dynamicCreativeIdList.includes(i.id)) {
+                                return {...i, configuredStatus: type === '暂停' ? 'AD_STATUS_SUSPEND' : 'AD_STATUS_NORMAL' }
+                            }
+                            return i
+                        }))
                         setSelectedRows([])
                     } else {
                         setFailIdList(res?.data?.list || [])
@@ -144,7 +159,14 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
             />}
             isZj={isZj}
             totalData={totalData}
-            config={columns12(dayHandle, () => { getDynamicList.refresh() })}
+            config={columns12(dayHandle, (data) => {
+                setDataList(d => d.map(i => {
+                    if (i.id === data.id) {
+                        return data
+                    }
+                    return i
+                }))
+            })}
             configName={configName || '腾讯小说创意列表'}
             fixed={{ left: 4, right: 2 }}
             scroll={{ x: 1000, y: 620 }}
@@ -155,7 +177,7 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
             page={getDynamicList?.data?.data?.current || 1}
             pageSize={getDynamicList?.data?.data?.size || 20}
             total={getDynamicList?.data?.data?.total || 0}
-            dataSource={getDynamicList?.data?.data?.records?.map((item: any) => ({ ...item, id: item.dynamicCreativeId }))}
+            dataSource={dataList}
             onChange={(pagination: any, _: any, sortData: any) => {
                 let { current, pageSize } = pagination
                 let newQueryForm = JSON.parse(JSON.stringify(queryForm))
@@ -210,7 +232,7 @@ const DynamicNovel: React.FC<{ configName?: string, dayConfigName?: string }> =
         />
 
         {visible && <DayAd
-            appId={initialState?.iaaApp as number[]} 
+            appId={initialState?.iaaApp as number[]}
             productType={initialState?.productType as string}
             adName={adName}
             visible={visible}

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

@@ -1,5 +1,5 @@
 import { useAjax } from "@/Hook/useAjax"
-import { newEditAdqAdgroupsDataApi, updateBatchDynamicCreativesInfoApi } from "@/services/gameData"
+import { updateBatchDynamicCreativesInfoApi } from "@/services/gameData"
 import { message, notification, Switch } from "antd"
 import React from "react"
 
@@ -13,13 +13,13 @@ interface Props {
     isDeleted?: boolean,
     accountId: number,
     dynamicCreativeId: number,
-    onChange?: () => void
+    onChange?: (configuredStatus: 'AD_STATUS_NORMAL' | 'AD_STATUS_SUSPEND') => void
 }
 const SwitchStatus: React.FC<Props> = (prosp) => {
 
     const { configuredStatus, isDeleted, accountId, dynamicCreativeId, onChange } = prosp
     const updateBatchDynamicCreativesInfo = useAjax((params) => updateBatchDynamicCreativesInfoApi(params))
-    
+
     const switchHandle = (status: boolean) => {
         updateBatchDynamicCreativesInfo.run({ accountAdgroupMaps: [accountId + ',' + dynamicCreativeId], suspend: !status }).then(res => {
             message.success(`${configuredStatus === 'AD_STATUS_NORMAL' ? '启动' : '暂停'}成功`)
@@ -30,11 +30,11 @@ const SwitchStatus: React.FC<Props> = (prosp) => {
                     duration: 0
                 });
             }
-            onChange?.()
+            onChange?.(configuredStatus === 'AD_STATUS_NORMAL' ? 'AD_STATUS_SUSPEND' : 'AD_STATUS_NORMAL')
         })
     }
 
-    return <Switch size="small" checked={configuredStatus === 'AD_STATUS_NORMAL'} loading={updateBatchDynamicCreativesInfo.loading} disabled={isDeleted} onChange={(checked) => switchHandle(checked)}/>
+    return <Switch size="small" checked={configuredStatus === 'AD_STATUS_NORMAL'} loading={updateBatchDynamicCreativesInfo.loading} disabled={isDeleted} onChange={(checked) => switchHandle(checked)} />
 }
 
 

+ 2 - 2
src/pages/iaaData/novel/tencent/dynamic/tableConfig.tsx

@@ -6,7 +6,7 @@ import SwitchStatus from "./switchStatus"
 import CreativePreview from "../../../components/CreativePreview"
 import { DELIVERY_MODE_Enum } from "./const"
 
-function columns12(dayHandle: (data: any) => void, onChange?: () => void): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
+function columns12(dayHandle: (data: any) => void, onChange?: (data: any) => void): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
 
 
     return [
@@ -856,7 +856,7 @@ function columns12(dayHandle: (data: any) => void, onChange?: () => void): { lab
                         if (b?.accountId === '总计') {
                             return '--'
                         }
-                        return <SwitchStatus configuredStatus={a} isDeleted={b?.dynamicCreativeIsDeleted == 1} accountId={b?.accountId} dynamicCreativeId={b?.dynamicCreativeId} onChange={onChange} />
+                        return <SwitchStatus configuredStatus={a} isDeleted={b?.dynamicCreativeIsDeleted == 1} accountId={b?.accountId} dynamicCreativeId={b?.dynamicCreativeId} onChange={(a) => onChange?.({...b, configuredStatus: a})} />
                     }
                 }
             ]