import React, { useEffect } from 'react'; import { Table, Typography, Button, DatePicker, Input, Breadcrumb, Card, } from '@arco-design/web-react'; import { useSelector, useDispatch } from 'react-redux'; import axios from 'axios'; import { UPDATE_FORM_PARAMS, UPDATE_LIST, UPDATE_LOADING, UPDATE_PAGINATION, } from './redux/actionTypes'; import useLocale from '../../utils/useLocale'; import { ReducerState } from '../../redux'; import styles from './style/index.module.less'; function SearchTable() { const locale = useLocale(); const columns = [ { title: locale['searchTable.columns.name'], dataIndex: 'name', }, { title: locale['searchTable.columns.workflow'], dataIndex: 'workflow', render: (value) => {value}, }, { title: locale['searchTable.columns.period'], dataIndex: 'period', }, { title: locale['searchTable.columns.statistic'], dataIndex: 'statistic', }, { title: locale['searchTable.columns.createdTime'], dataIndex: 'createdTime', }, { title: locale['searchTable.columns.deadline'], dataIndex: 'deadline', }, { title: locale['searchTable.columns.operations'], dataIndex: 'operations', render: () => (
), }, ]; const searchTableState = useSelector((state: ReducerState) => state.searchTable); const { data, pagination, loading, formParams } = searchTableState; const dispatch = useDispatch(); useEffect(() => { fetchData(); }, []); function fetchData(current = 1, pageSize = 10, params = {}) { dispatch({ type: UPDATE_LOADING, payload: { loading: true } }); axios .get(`/api/policy`, { params: { page: current, pageSize, ...params, }, }) .then((res) => { dispatch({ type: UPDATE_LIST, payload: { data: res.data.list } }); dispatch({ type: UPDATE_PAGINATION, payload: { pagination: { ...pagination, current, pageSize, total: res.data.total } }, }); dispatch({ type: UPDATE_LOADING, payload: { loading: false } }); dispatch({ type: UPDATE_FORM_PARAMS, payload: { params } }); }); } function onChangeTable(pagination) { const { current, pageSize } = pagination; fetchData(current, pageSize, formParams); } function onSearch(keyword) { fetchData(1, pagination.pageSize, { keyword }); } function onDateChange(date) { const [start, end] = date; fetchData(1, pagination.pageSize, { createdTimeStart: start, createdTimeEnd: end, }); } return (
{locale['menu.list']} {locale['menu.list.searchTable']}
); } export default SearchTable;