ruleLog.tsx 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { useAjax } from "@/Hook/useAjax"
  2. import TableData from "@/pages/launchSystemNew/components/TableData"
  3. import { GetAdWarningLogRuleProps, getAdWarningLogRuleListApi } from "@/services/adMonitor/earlyWarning"
  4. import { Drawer, Input, Select, Space } from "antd"
  5. import React, { useEffect, useState } from "react"
  6. import { ruleLogTableConfig } from "./tableConfig"
  7. export const OperationType = [
  8. { label: '告警', value: 0 },
  9. { label: '暂停广告', value: 1 },
  10. { label: '广告置顶标黄', value: 5 },
  11. { label: '广告置顶标红', value: 6 }
  12. ]
  13. export const OperationTypeObj = { 0: '告警', 1: '暂停广告', 5: '广告置顶标黄', 6: '广告置顶标红' }
  14. interface Props {
  15. ruleName: string,
  16. ruleId: number,
  17. onClose?: () => void
  18. visible?: boolean
  19. }
  20. /**
  21. * 通过规则获取日志
  22. * @returns
  23. */
  24. const RuleLog: React.FC<Props> = ({ ruleName, ruleId, onClose, visible }) => {
  25. /****************************/
  26. const [queryForm, setQueryForm] = useState<GetAdWarningLogRuleProps>({ pageNum: 1, pageSize: 20, ruleId })
  27. const getAdWarningLogRuleList = useAjax((params) => getAdWarningLogRuleListApi(params))
  28. /****************************/
  29. useEffect(() => {
  30. getAdWarningLogRuleList.run(queryForm)
  31. }, [queryForm])
  32. return <Drawer title={`${ruleName} 操作日志`} placement="right" width={'70%'} onClose={onClose} open={visible}>
  33. <TableData
  34. size="small"
  35. isCard={false}
  36. columns={() => ruleLogTableConfig()}
  37. ajax={getAdWarningLogRuleList}
  38. dataSource={getAdWarningLogRuleList?.data?.records}
  39. loading={getAdWarningLogRuleList?.loading}
  40. total={getAdWarningLogRuleList?.data?.total}
  41. page={queryForm.pageNum}
  42. pageSize={queryForm.pageSize}
  43. onChange={({ pagination }: any) => {
  44. let { current, pageSize } = pagination
  45. let newQueryForm = JSON.parse(JSON.stringify(queryForm))
  46. newQueryForm.pageNum = current
  47. newQueryForm.pageSize = pageSize
  48. setQueryForm(newQueryForm)
  49. }}
  50. gutter={[0, 10]}
  51. scroll={{ x: 1200 }}
  52. leftChild={<Space>
  53. <Input placeholder="请输入广告账号" allowClear value={queryForm.accountId} onChange={(e) => setQueryForm({ ...queryForm, accountId: e.target.value, pageNum: 1 })} />
  54. <Input placeholder="请输入广告ID" allowClear value={queryForm.adgroupId} onChange={(e) => setQueryForm({ ...queryForm, adgroupId: e.target.value, pageNum: 1 })} />
  55. <Select
  56. style={{ width: 150 }}
  57. showSearch
  58. allowClear
  59. placeholder="选择操作类型"
  60. filterOption={(input, option) =>
  61. ((option?.label ?? '') as any).toLowerCase().includes(input.toLowerCase())
  62. }
  63. value={queryForm.operationType}
  64. onChange={(e) => setQueryForm({ ...queryForm, operationType: e, pageNum: 1 })}
  65. >
  66. {OperationType.map((item, index) => <Select.Option value={item.value} key={item.value}>{item.label}</Select.Option>)}
  67. </Select>
  68. </Space>}
  69. />
  70. </Drawer>
  71. }
  72. export default React.memo(RuleLog)