Files
efc-workload-base-web/src/page/Dashboard/UserManagement/UserInfoTable.jsx
Vectorune 24a2218430 改善
2025-09-13 18:17:24 +08:00

65 lines
2.6 KiB
JavaScript

import React from 'react';
import PropTypes from 'prop-types';
import {Button, Flex, Pagination, Spin, Table} from "antd";
import UserInfoTableColumn from "./UserInfoTableColumn";
import AccountInfoDrawer from "./AccountInfoDrawer";
import {UserAddOutlined} from "@ant-design/icons";
import AddUserDrawer from "./AddUserDrawer";
const UserInfoTable = props => {
const {fetchUserInfo, spinLoading, queryRequest, setQueryRequest, queryResponse, messageApi, commonAxios} = props;
const [drawerOpen, setDrawerOpen] = React.useState(false);
const [drawerUserInfo, setDrawerUserInfo] = React.useState({});
const [addUserDrawerOpen, setAddUserDrawerOpen] = React.useState(false);
const openUserInfoDetails = (record) => {
setDrawerOpen(true);
setDrawerUserInfo(record);
}
return (
<div>
<Flex justify={"space-between"} align={"center"} style={{marginBottom: 10}}>
<h3>教师管理</h3>
<Button shape={'round'} icon={<UserAddOutlined/>} type={'default'}
onClick={() => setAddUserDrawerOpen(true)}>添加教师</Button>
</Flex>
<AccountInfoDrawer fetchUserInfoList={fetchUserInfo} open={drawerOpen} setOpen={setDrawerOpen}
userInfoDetails={drawerUserInfo} commonAxios={commonAxios} messageApi={messageApi}/>
<AddUserDrawer open={addUserDrawerOpen} setOpen={setAddUserDrawerOpen} commonAxios={commonAxios}
fetchUserInfoList={fetchUserInfo} messageApi={messageApi}/>
<Spin spinning={spinLoading}>
<Table
columns={UserInfoTableColumn(openUserInfoDetails)}
dataSource={queryResponse.list}
pagination={false}
rowKey="id"
/>
</Spin>
<Pagination
defaultCurrent={1}
showSizeChanger
total={queryResponse.total}
align={'end'}
style={{marginTop: 20}}
onChange={(page, pageSize) => {
setQueryRequest({...queryRequest, page: page, size: pageSize});
}}
/>
</div>
);
};
UserInfoTable.propTypes = {
fetchUserInfo: PropTypes.func.isRequired,
spinLoading: PropTypes.bool.isRequired,
queryRequest: PropTypes.object.isRequired,
setQueryRequest: PropTypes.func.isRequired,
queryResponse: PropTypes.object.isRequired,
messageApi: PropTypes.object.isRequired,
commonAxios: PropTypes.func.isRequired,
};
export default UserInfoTable;