import React, { useState, useEffect, useMemo } from 'react'; import { Table, Card, PaginationProps, Button, Space, Typography, } from '@arco-design/web-react'; import PermissionWrapper from '@/components/PermissionWrapper'; import { IconDownload, IconPlus } from '@arco-design/web-react/icon'; import axios from 'axios'; import useLocale from '@/utils/useLocale'; import SearchForm from './form'; import locale from './locale'; import styles from './style/index.module.less'; import './mock'; import { getColumns } from './constants'; const { Title } = Typography; export const ContentType = ['图文', '横版短视频', '竖版短视频']; export const FilterType = ['规则筛选', '人工']; export const Status = ['已上线', '未上线']; function SearchTable() { const t = useLocale(locale); const tableCallback = async (record, type) => { console.log(record, type); }; const columns = useMemo(() => getColumns(t, tableCallback), [t]); const [data, setData] = useState([]); const [pagination, setPatination] = useState({ sizeCanChange: true, showTotal: true, pageSize: 10, current: 1, pageSizeChangeResetCurrent: true, }); const [loading, setLoading] = useState(true); const [formParams, setFormParams] = useState({}); useEffect(() => { fetchData(); }, [pagination.current, pagination.pageSize, JSON.stringify(formParams)]); function fetchData() { const { current, pageSize } = pagination; setLoading(true); axios .get('/api/list', { params: { page: current, pageSize, ...formParams, }, }) .then((res) => { setData(res.data.list); setPatination({ ...pagination, current, pageSize, total: res.data.total, }); setLoading(false); }); } function onChangeTable({ current, pageSize }) { setPatination({ ...pagination, current, pageSize, }); } function handleSearch(params) { setPatination({ ...pagination, current: 1 }); setFormParams(params); } return ( {t['menu.list.searchTable']}
); } export default SearchTable;