index.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * @Author: code4eat awesomedema@gmail.com
  3. * @Date: 2022-12-20 15:24:11
  4. * @LastEditors: code4eat awesomedema@gmail.com
  5. * @LastEditTime: 2023-11-22 16:36:30
  6. * @FilePath: /BudgetManaSystem/src/components/BMSTable/index.tsx
  7. * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  8. */
  9. import { ProTable, ProTableProps } from '@ant-design/pro-components';
  10. import { useMemo } from 'react';
  11. import './style.less';
  12. export type KCIMTablePropsType<T, U, ValueType> = ProTableProps<
  13. T,
  14. U,
  15. ValueType
  16. > & {};
  17. export const KCIMTablePageDefaultConfig = {
  18. defaultPageSize: 10,
  19. };
  20. export const KCIMTable = (props: KCIMTablePropsType<any, any, any>) => {
  21. const { params, options = false, request, columns, ...rest } = props;
  22. const mergedColumns = useMemo(
  23. () => columns?.map((column) => ({ ...column, ellipsis: true })),
  24. [columns],
  25. );
  26. const mergedParams = useMemo(
  27. () => (params ? { ...params } : params),
  28. [params],
  29. );
  30. const wrappedRequest = useMemo(() => {
  31. if (!request) return undefined;
  32. return (requestParams: any, sort: any, filter: any) =>
  33. request({ ...requestParams }, sort, filter);
  34. }, [request]);
  35. return (
  36. <ProTable
  37. tableClassName="KCIMTable"
  38. toolBarRender={false}
  39. options={options}
  40. columns={mergedColumns}
  41. pagination={{
  42. showSizeChanger: true,
  43. ...KCIMTablePageDefaultConfig,
  44. }}
  45. //locale={{emptyText:'暂无数据'}}
  46. params={mergedParams}
  47. bordered={false}
  48. search={false}
  49. tableStyle={{
  50. border: '1px solid #DAE2F2',
  51. borderRadius: '8px',
  52. }}
  53. request={wrappedRequest}
  54. {...rest}
  55. />
  56. );
  57. };