index.tsx 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import { useAjax } from "@/Hook/useAjax"
  2. import { PromotedObjectType } from "@/services/launchAdq/enum"
  3. import { getTaskListApi, TaskListProps } from "@/services/launchAdq/taskList"
  4. import { Input, Select, Space } from "antd"
  5. import React, { useEffect, useState } from "react"
  6. import TableData from "../../components/TableData"
  7. import Log from "./log"
  8. import tableConfig from './tableConfig'
  9. const TaskList: React.FC = () => {
  10. /*************************/
  11. const [queryForm, setQueryForm] = useState<TaskListProps>({ pageSize: 20, pageNum: 1 })
  12. const [logVisible, setLogVisible] = useState<boolean>(false)
  13. const [logData, setLogData] = useState<{ taskId: number, campaignName: string } | number>({ taskId: 0, campaignName: '' })
  14. const [allData, setAllData] = useState<any>({})
  15. const getTaskList = useAjax((params) => getTaskListApi(params), { formatResult: true })
  16. /*************************/
  17. useEffect(() => {
  18. let campaignName = sessionStorage.getItem('CAMP')
  19. if (campaignName) {
  20. setQueryForm({ ...queryForm, campaignName })
  21. sessionStorage.removeItem('CAMP')
  22. }
  23. }, [])
  24. useEffect(() => {
  25. getList()
  26. }, [queryForm])
  27. const getList = () => {
  28. getTaskList.run(queryForm)
  29. }
  30. const callback = (data: any, type: 'log' | 'page' | 'copy', allData?: any) => {
  31. switch (type) {
  32. case 'log':
  33. setLogData({ ...data })
  34. setLogVisible(true)
  35. setAllData(allData)
  36. break
  37. case 'copy':
  38. console.log('111111111111--->', data);
  39. sessionStorage.setItem('TASKID', data.taskId)
  40. sessionStorage.setItem('LAUNCHMODE', data.putModel)
  41. window.location.href = '/#/launchSystemNew/launchManage/createAd'
  42. break
  43. }
  44. }
  45. return <>
  46. <TableData
  47. columns={() => tableConfig(callback)}
  48. ajax={getTaskList}
  49. dataSource={getTaskList?.data?.data?.records}
  50. loading={getTaskList?.loading}
  51. scroll={{ y: 600,x:1500}}
  52. total={getTaskList?.data?.data?.total}
  53. page={getTaskList?.data?.data?.current}
  54. pageSize={getTaskList?.data?.data?.size}
  55. leftChild={<Space>
  56. <Input placeholder="计划名称" style={{ width: 150 }} allowClear value={queryForm?.campaignName} onChange={(e) => {setQueryForm({ ...queryForm, campaignName: e.target.value, pageNum: 1 }); sessionStorage.removeItem('CAMP')}} />
  57. <Select
  58. placeholder="计划类型"
  59. maxTagCount={1}
  60. allowClear
  61. style={{ width: 150 }}
  62. value={queryForm?.campaignType}
  63. onChange={(e) => { setQueryForm({ ...queryForm, campaignType: e }) }}
  64. >
  65. <Select.Option value='CAMPAIGN_TYPE_NORMAL'>普通展示广告</Select.Option>
  66. <Select.Option value='CAMPAIGN_TYPE_WECHAT_MOMENTS'>微信朋友圈广告</Select.Option>
  67. </Select>
  68. <Select style={{ width: 150 }} allowClear value={queryForm?.promotedObjectType} placeholder="推广目标" showSearch filterOption={(input: any, option: any) =>
  69. (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase())
  70. } onChange={(e) => { setQueryForm({ ...queryForm, promotedObjectType: e }) }}>
  71. {Object.keys(PromotedObjectType).map(key => {
  72. return <Select.Option value={key} key={key}>{PromotedObjectType[key]}</Select.Option>
  73. })}
  74. </Select>
  75. </Space>}
  76. onChange={(props: any) => {
  77. let { pagination } = props
  78. let { current, pageSize } = pagination
  79. setQueryForm({ ...queryForm, pageNum: current, pageSize })
  80. }}
  81. />
  82. {/* 日志 */}
  83. {logVisible && <Log {...logData as any} visible={logVisible} onClose={() => setLogVisible(false)} allData={allData}/>}
  84. </>
  85. }
  86. export default React.memo(TaskList)