astraSupport‌.tsx 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import { useAjax } from '@/Hook/useAjax';
  2. import { getCorpWechatAllApi } from '@/services/adqV3/global';
  3. import { getCorpUserDayListApi, GetCorpUserDayListProps } from '@/services/adqV3/monitorEWList';
  4. import { Button, Card, DatePicker, Input, Select, Table } from 'antd';
  5. import React, { useEffect, useState } from 'react';
  6. import moment from 'moment';
  7. import { CorpUserDayListTableConfig } from './tableConfig';
  8. /**
  9. * 客服号加粉数据
  10. * @returns
  11. */
  12. const AstraSupport: React.FC = () => {
  13. /*******************************************/
  14. const [corpWechatList, setCorpWechatList] = useState<{ label: string, value: string }[]>([]);
  15. const [queryParamsNew, setQueryParamsNew] = useState<GetCorpUserDayListProps>({ pageNum: 1, pageSize: 20 });
  16. const [queryParams, setQueryParams] = useState<GetCorpUserDayListProps>({ pageNum: 1, pageSize: 20 });
  17. const getCorpWechatAll = useAjax((params) => getCorpWechatAllApi(params))
  18. const getCorpUserDayList = useAjax((params) => getCorpUserDayListApi(params))
  19. /*******************************************/
  20. useEffect(() => {
  21. getCorpWechatAll.run({}).then((res) => {
  22. if (res && res.length > 0) {
  23. setCorpWechatList(res.map((item: { corpName: string; localCorpId: string; }) => ({ label: item.corpName, value: item.localCorpId })));
  24. }
  25. })
  26. }, [])
  27. useEffect(() => {
  28. getCorpUserDayList.run(queryParamsNew)
  29. }, [queryParamsNew])
  30. return <Card
  31. title={<div style={{ display: 'flex', gap: 8 }}>
  32. <DatePicker
  33. value={queryParams?.day ? moment(queryParams.day) : undefined}
  34. onChange={(_, dateString) => {
  35. setQueryParams({ ...queryParams, day: dateString, pageNum: 1 })
  36. }}
  37. />
  38. <Select
  39. showSearch
  40. placeholder="请选择企业"
  41. filterOption={(input, option) =>
  42. ((option?.label ?? '') as any).toLowerCase().includes(input.toLowerCase())
  43. }
  44. style={{ width: 140 }}
  45. allowClear
  46. value={queryParams?.corpId}
  47. loading={getCorpWechatAll.loading}
  48. onChange={(e) => {
  49. setQueryParams({ ...queryParams, corpId: e, pageNum: 1 })
  50. }}
  51. options={corpWechatList}
  52. />
  53. <Input value={queryParams?.corpUserName} style={{ width: 140 }} placeholder='客服号名称' onChange={(e) => setQueryParams({ ...queryParams, corpUserName: e.target.value, pageNum: 1 })} allowClear />
  54. <Button type='primary' onClick={() => {
  55. setQueryParamsNew({ ...queryParams })
  56. }}>搜索</Button>
  57. </div>}
  58. headStyle={{ padding: '0 16px' }}
  59. bodyStyle={{ padding: 16 }}
  60. >
  61. <Table
  62. dataSource={getCorpUserDayList?.data?.records}
  63. columns={CorpUserDayListTableConfig()}
  64. size='small'
  65. bordered
  66. rowKey={'id'}
  67. loading={getCorpUserDayList.loading}
  68. scroll={{ x: 1200 }}
  69. pagination={{
  70. total: getCorpUserDayList.data?.total,
  71. defaultPageSize: 20,
  72. current: queryParamsNew.pageNum,
  73. pageSize: queryParamsNew.pageSize,
  74. }}
  75. onChange={(pagination, _, sorter: any) => {
  76. const { current, pageSize } = pagination
  77. const newQueryForm = JSON.parse(JSON.stringify(queryParams))
  78. const newQueryFormNew = JSON.parse(JSON.stringify(queryParamsNew))
  79. if (sorter && sorter?.order) {
  80. newQueryForm['sortAsc'] = sorter?.order === 'ascend' ? true : false
  81. newQueryForm['sortFiled'] = sorter?.field
  82. newQueryFormNew['sortAsc'] = sorter?.order === 'ascend' ? true : false
  83. newQueryFormNew['sortFiled'] = sorter?.field
  84. } else {
  85. delete newQueryForm['sortAsc']
  86. delete newQueryForm['sortFiled']
  87. delete newQueryFormNew['sortAsc']
  88. delete newQueryFormNew['sortFiled']
  89. }
  90. newQueryForm.pageNum = current || newQueryForm.pageNum
  91. newQueryForm.pageSize = pageSize || newQueryForm.pageSize
  92. newQueryFormNew.pageNum = current || newQueryFormNew.pageNum
  93. newQueryFormNew.pageSize = pageSize || newQueryFormNew.pageSize
  94. setQueryParamsNew({ ...newQueryFormNew })
  95. setQueryParams({ ...newQueryForm })
  96. }}
  97. />
  98. </Card>
  99. };
  100. export default React.memo(AstraSupport);