index.tsx 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import React, { useEffect, useState } from "react"
  2. import '../../tencentAdPutIn/index.less'
  3. import { Button, Card, Input, message, Select, 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. import { getErpUserAll } from "@/services/launchAdq/adq"
  10. /**
  11. * 文案库
  12. * @returns
  13. */
  14. const CopyWriting: React.FC = () => {
  15. /*************************************/
  16. const [queryForm, setQueryForm] = useState<{ category?: string, content?: string, createBy?: number, pageNum: number, pageSize: number }>({ pageNum: 1, pageSize: 20 })
  17. const [queryFormNew, setQueryFormNew] = useState<{ category?: string, content?: string, createBy?: number, pageNum: number, pageSize: number }>({ pageNum: 1, pageSize: 20 })
  18. const [initialValues, setInitialValues] = useState<any>()
  19. const [visible, setVisible] = useState<boolean>(false)
  20. const getCopyWritingList = useAjax((params) => getCopyWritingListApi(params))
  21. const delCopyWriting = useAjax((params) => delCopyWritingApi(params))
  22. const allOfMember = useAjax(() => getErpUserAll())
  23. /*************************************/
  24. useEffect(() => {
  25. allOfMember.run()
  26. }, [])
  27. useEffect(() => {
  28. getCopyWritingList.run(queryFormNew)
  29. }, [queryFormNew])
  30. const del = (id: number) => {
  31. delCopyWriting.run(id).then(res => {
  32. if (res) {
  33. message.success('删除成功')
  34. getCopyWritingList.refresh()
  35. }
  36. })
  37. }
  38. const update = (data: any) => {
  39. setInitialValues(data)
  40. setVisible(true)
  41. }
  42. return <Card
  43. className="cardResetCss"
  44. title={<div className="flexStart" style={{ gap: 8 }}>
  45. <Select
  46. showSearch
  47. placeholder="请选择创建人"
  48. onChange={(e) => setQueryForm({ ...queryForm, createBy: e, pageNum: 1 })}
  49. filterOption={(input, option) =>
  50. (option?.label as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
  51. }
  52. allowClear
  53. style={{ width: 140 }}
  54. options={allOfMember?.data?.map((item: { userId: any; nickname: string }) => ({
  55. value: item.userId,
  56. label: item.nickname,
  57. }))}
  58. />
  59. <Input style={{ width: 200 }} placeholder="文案分类" value={queryForm?.category} allowClear onChange={(e) => setQueryForm({ ...queryForm, category: e.target.value, pageNum: 1 })} />
  60. <Input style={{ width: 200 }} placeholder="关键字" value={queryForm?.content} allowClear onChange={(e) => setQueryForm({ ...queryForm, content: e.target.value, pageNum: 1 })} />
  61. <Button type="primary" icon={<SearchOutlined />} onClick={() => setQueryFormNew({ ...queryForm })}>搜索</Button>
  62. <Button type="primary" icon={<PlusOutlined />} onClick={() => { setVisible(true) }}>新增文案</Button>
  63. </div>}
  64. >
  65. <Table
  66. columns={columns(del, update)}
  67. dataSource={getCopyWritingList.data?.records}
  68. size="small"
  69. loading={getCopyWritingList?.loading}
  70. scroll={{ y: 600, x: 1100 }}
  71. bordered
  72. rowKey={'id'}
  73. pagination={{
  74. defaultPageSize: 20,
  75. current: getCopyWritingList.data?.current || 1,
  76. pageSize: getCopyWritingList.data?.size || 10,
  77. total: getCopyWritingList.data?.total || 0
  78. }}
  79. onChange={(pagination) => {
  80. const { current, pageSize } = pagination
  81. setQueryForm({ ...queryForm, pageNum: current || 1, pageSize: pageSize || 10 })
  82. setQueryFormNew({ ...queryForm, pageNum: current || 1, pageSize: pageSize || 10 })
  83. }}
  84. />
  85. {/* 新增文案修改文案 */}
  86. {visible && <ModifyCopyWriting
  87. visible={visible}
  88. initialValues={initialValues}
  89. onChange={() => {
  90. setInitialValues(undefined)
  91. setVisible(false)
  92. getCopyWritingList.refresh()
  93. }}
  94. onClose={() => {
  95. setInitialValues(undefined)
  96. setVisible(false)
  97. }}
  98. />}
  99. </Card>
  100. }
  101. export default CopyWriting