|
@@ -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}
|