diff --git a/src/pages/System/User/index.tsx b/src/pages/System/User/index.tsx index dcab4d7..89f3d0b 100644 --- a/src/pages/System/User/index.tsx +++ b/src/pages/System/User/index.tsx @@ -1,19 +1,24 @@ import React, { useState, useRef, useMemo, useEffect } from 'react'; -import { message, Modal, Input, Form, PageHeader, Button, Spin, Tree, Checkbox, Row, Col, Upload } from 'antd'; +import { message, Modal, Input, Form, PageHeader, Button, Spin, Tree, Checkbox, Row, Col, Upload, TreeSelect } from 'antd'; import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table'; import tableProps from '@/utils/tableProps'; import { getPage, getDataById, allocationIF, assignsRoles, updateRole } from './service'; import { fetchAllDepartment } from '../Department/service'; import { getDicData } from '@/utils/session'; import { fetchIamUsers, syncIamUser } from './service'; -import { UploadOutlined, DownloadOutlined } from '@ant-design/icons'; +import { UploadOutlined, DownloadOutlined, EditOutlined } from '@ant-design/icons'; const { Search } = Input; + const entrust: React.FC<{}> = () => { const [roleModalForm] = Form.useForm(); + const [editModalForm] = Form.useForm(); const [open, setOpen] = useState(false); + const [editOpen, setEditOpen] = useState(false); const actionRef = useRef(); const [spin, spinSet] = useState(false); const [roles, setRoles] = useState([]); + const [departments, setDepartments] = useState([]); + const [departmentTreeData, setDepartmentTreeData] = useState([]); //查询分页数据 const [pageData, pageDataSet] = useState({ pageNo: 1, @@ -29,6 +34,8 @@ const entrust: React.FC<{}> = () => { const [iamTotal, setIamTotal] = useState(0); const [iamPage, setIamPage] = useState({ pageNo: 1, pageSize: 10 }); const [iamSearch, setIamSearch] = useState(''); + const [currentUser, setCurrentUser] = useState(null); + useEffect(() => { getDepartmentList(); }, []); @@ -42,15 +49,58 @@ const entrust: React.FC<{}> = () => { { title: '部门', dataIndex: 'orgName', hideInSearch: true }, { title: '邮箱', dataIndex: 'email' }, { - title: '操作', width: '9%', + title: '操作', width: '12%', valueType: 'option', render: (_, record) => [ - - // , - // + , + ] }, ]; + + // 处理修改用户 + const handleEdit = (record: any) => { + setCurrentUser(record); + editModalForm.resetFields(); + editModalForm.setFieldsValue({ + userId: record.userId, + name: record.name, + employeeNumber: record.employeeNumber, + email: record.email, + orgId: record.orgId, + orgName: record.orgName + }); + setEditOpen(true); + }; + + // 关闭修改Modal + const closeEditModal = () => { + editModalForm.resetFields(); + setEditOpen(false); + setCurrentUser(null); + }; + + // 提交修改 + const onEditSubmit = async () => { + try { + const values = await editModalForm.validateFields(); + const { success } = await updateRole(values); + if (success) { + message.success('修改成功!'); + closeEditModal(); + actionRef.current?.reload(); + } + } catch (error) { + console.error(error); + } + }; + + // 部门选择变化 + const handleDepartmentChange = (value: string, labelList: any) => { + const selectedLabel = labelList[labelList.length - 1]; + editModalForm.setFieldsValue({ orgName: selectedLabel }); + }; + //分配角色查询数据 const chooseRole = (record: any) => { roleModalForm.resetFields(); @@ -89,6 +139,68 @@ const entrust: React.FC<{}> = () => { console.error(error); } }; + + // 修改用户Modal + const editUserModal = ( + +
+ + + + + + + + + + + + + + +
+
+ ); + const setRoleModal = ( = () => { }; generateList(data); treeDataListSet(dataList); + setDepartments(dataList); + setDepartmentTreeData(data); } catch (e) { } }; @@ -354,6 +468,7 @@ const entrust: React.FC<{}> = () => { onReset={() => { pageDataSet({ pageNo: 1, pageSize: 10 }); setOrgId(''); }} /> {setRoleModal} + {editUserModal} {/* IAM用户同步Modal */}