import React, { useState, useEffect } from 'react';
import { Table, Card, Button, Modal, Form, Input, Select, Space, message, Popconfirm, Tag, Avatar } from 'antd';
import { PlusOutlined, EditOutlined, DeleteOutlined, UserOutlined } from '@ant-design/icons';
import { userAPI } from '../../services/api';
const { Option } = Select;
const UserManagement = () => {
const [form] = Form.useForm();
const [modalVisible, setModalVisible] = useState(false);
const [editingRecord, setEditingRecord] = useState(null);
const [loading, setLoading] = useState(false);
const [users, setUsers] = useState([]);
const [pagination, setPagination] = useState({
current: 1,
pageSize: 10,
total: 0,
});
const [filters, setFilters] = useState({});
// 获取用户列表
const fetchUsers = async (params = {}) => {
try {
setLoading(true);
const queryParams = {
page: pagination.current,
size: pagination.pageSize,
...filters,
...params,
};
const response = await userAPI.getUserList(queryParams);
if (response.code === 0) {
setUsers(response.data.content || []);
setPagination(prev => ({
...prev,
total: response.data.totalElements || 0,
}));
}
} catch (error) {
console.error('获取用户列表失败:', error);
message.error('获取用户列表失败');
} finally {
setLoading(false);
}
};
// 页面初始化加载数据
useEffect(() => {
fetchUsers();
}, [pagination.current, pagination.pageSize]);
// 处理分页变化
const handleTableChange = (paginationInfo) => {
setPagination(prev => ({
...prev,
current: paginationInfo.current,
pageSize: paginationInfo.pageSize,
}));
};
const columns = [
{
title: '用户',
key: 'user',
render: (_, record) => (
管理系统用户账号和权限