index.tsx 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import React, { useEffect, useState } from "react"
  2. import '../../tencentAdPutIn/index.less'
  3. import { Button, Card, Input, message, Table } from "antd"
  4. import { PlusOutlined, SearchOutlined } from "@ant-design/icons"
  5. import { useAjax } from "@/Hook/useAjax"
  6. import { delCopyWritingApi, getCopyWritingListApi } from "@/services/adqV3/global"
  7. import ModifyCopyWriting from "./modifyCopyWriting"
  8. import columns from "./tableConfig"
  9. /**
  10. * 文案库
  11. * @returns
  12. */
  13. const CopyWriting: React.FC = () => {
  14. /*************************************/
  15. const [queryForm, setQueryForm] = useState<{ category?: string, content?: string, pageNum: number, pageSize: number }>({ pageNum: 1, pageSize: 20 })
  16. const [queryFormNew, setQueryFormNew] = useState<{ category?: string, content?: string, pageNum: number, pageSize: number }>({ pageNum: 1, pageSize: 20 })
  17. const [initialValues, setInitialValues] = useState<any>()
  18. const [visible, setVisible] = useState<boolean>(false)
  19. const getCopyWritingList = useAjax((params) => getCopyWritingListApi(params))
  20. const delCopyWriting = useAjax((params) => delCopyWritingApi(params))
  21. /*************************************/
  22. useEffect(() => {
  23. getCopyWritingList.run(queryFormNew)
  24. }, [queryFormNew])
  25. const del = (id: number) => {
  26. delCopyWriting.run(id).then(res => {
  27. if (res) {
  28. message.success('删除成功')
  29. getCopyWritingList.refresh()
  30. }
  31. })
  32. }
  33. const update = (data: any) => {
  34. setInitialValues(data)
  35. setVisible(true)
  36. }
  37. return <Card
  38. className="cardResetCss"
  39. title={<div className="flexStart" style={{ gap: 8 }}>
  40. <Input style={{ width: 200 }} placeholder="文案分类" value={queryForm?.category} allowClear onChange={(e) => setQueryForm({ ...queryForm, category: e.target.value, pageNum: 1 })} />
  41. <Input style={{ width: 200 }} placeholder="关键字" value={queryForm?.content} allowClear onChange={(e) => setQueryForm({ ...queryForm, content: e.target.value, pageNum: 1 })} />
  42. <Button type="primary" icon={<SearchOutlined />} onClick={() => setQueryFormNew({ ...queryForm })}>搜索</Button>
  43. <Button type="primary" icon={<PlusOutlined />} onClick={() => { setVisible(true) }}>新增文案</Button>
  44. </div>}
  45. >
  46. <Table
  47. columns={columns(del, update)}
  48. dataSource={getCopyWritingList.data?.records}
  49. size="small"
  50. loading={getCopyWritingList?.loading}
  51. scroll={{ y: 600, x: 1100 }}
  52. bordered
  53. rowKey={'id'}
  54. pagination={{
  55. defaultPageSize: 20,
  56. current: getCopyWritingList.data?.current || 1,
  57. pageSize: getCopyWritingList.data?.size || 10,
  58. total: getCopyWritingList.data?.total || 0
  59. }}
  60. onChange={(pagination) => {
  61. const { current, pageSize } = pagination
  62. setQueryForm({ ...queryForm, pageNum: current || 1, pageSize: pageSize || 10 })
  63. setQueryFormNew({ ...queryForm, pageNum: current || 1, pageSize: pageSize || 10 })
  64. }}
  65. />
  66. {/* 新增文案修改文案 */}
  67. {visible && <ModifyCopyWriting
  68. visible={visible}
  69. initialValues={initialValues}
  70. onChange={() => {
  71. setInitialValues(undefined)
  72. setVisible(false)
  73. getCopyWritingList.refresh()
  74. }}
  75. onClose={() => {
  76. setInitialValues(undefined)
  77. setVisible(false)
  78. }}
  79. />}
  80. </Card>
  81. }
  82. export default CopyWriting