From 172818bd20fb21800b1f5ecdc9e2b45860933d9f Mon Sep 17 00:00:00 2001 From: jlzhangyx5 Date: Fri, 16 May 2025 13:36:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/System/Department/index.tsx | 15 +- src/pages/System/{SysRole => Role}/index.tsx | 0 src/pages/System/{SysRole => Role}/service.ts | 0 src/pages/System/User/index.tsx | 290 ++++++++++++++++++ src/pages/System/User/service.ts | 89 ++++++ 5 files changed, 387 insertions(+), 7 deletions(-) rename src/pages/System/{SysRole => Role}/index.tsx (100%) rename src/pages/System/{SysRole => Role}/service.ts (100%) create mode 100644 src/pages/System/User/index.tsx create mode 100644 src/pages/System/User/service.ts diff --git a/src/pages/System/Department/index.tsx b/src/pages/System/Department/index.tsx index c652ac8..4f361ac 100644 --- a/src/pages/System/Department/index.tsx +++ b/src/pages/System/Department/index.tsx @@ -142,7 +142,7 @@ const Index: React.FC<{}> = () => { const { data } = await fetchAllDepartment(params); console.log('org data:', data); // orgSet(data.children); - orgSet(data); + orgSet(data); let result = { // data: data.children, data: data, @@ -164,12 +164,13 @@ const Index: React.FC<{}> = () => { options={false} rowKey="orgId" size="small" - // pagination={{ - // defaultPageSize: 10, - // showSizeChanger: false, - // onChange: (page, pageSize) => pageDataSet({ pageNo: page, pageSize: pageSize }), - // onShowSizeChange: (current, size) => pageDataSet({ pageNo: current, pageSize: size }), - // }} + pagination={{ + defaultPageSize: 10, + showSizeChanger: true, + showQuickJumper: true, + size: 'default', + showTotal: (total) => <>{`共${total}条`}, + }} pagination={false} toolBarRender={() => [ + // , + // + ] + }, + ]; + //分配角色查询数据 + const chooseRole = (record: any) => { + roleModalForm.resetFields(); + spinSet(true); + allocationIF(record.userId) + .then((res: any) => { + if (res?.code === 200) { + console.log("roleIds",res?.data?.roleIds); + setRoles( + res?.data?.allRole?.map((item: any) => ({ label: item.roleName, value: item.roleId })), + ); + roleModalForm.setFieldsValue({ ...record, roleIds: res?.data?.roleIds }); + } + }) + .finally(() => { + spinSet(false); + }); + setOpen(true); + }; + + const closeModal = async () => { + actionRef.current?.reload(); + roleModalForm.resetFields(); + setOpen(false); + }; + + const onAssignsRoles = async () => { + const values = await roleModalForm.validateFields(); + try { + const { success } = await assignsRoles(values ); + if (success) { + message.success('操作成功!'); + } + closeModal(); + } catch (error) { + console.error(error); + } + }; + const setRoleModal = ( + setOpen(false)}>关闭} + onOk={onAssignsRoles} + onCancel={() => closeModal()} + > +
+ + + + + + + + + + + {roles?.map((v: any, i: number) => ( + + {v.label} + + ))} + + + +
+
+ ); + const [treeDataList, treeDataListSet] = useState([]); + const [orgId, setOrgId] = useState(''); + const [expandedKeys, setExpandedKeys] = useState([]); + const [searchValue, setSearchValue] = useState(''); + const [autoExpandParent, setAutoExpandParent] = useState(true); + const [allData, allDataSet] = useState([]); + const onChange: (e: any) => void = (e) => { + const { value } = e.target; + let keys: any = []; + if (value !== '') { + const newExpandedKeys = treeDataList + .map((item: { title: string | any[]; key: any }) => { + if (item.title.indexOf(value) > -1) { + return getParentKey(item.key, allData); + } + return null; + }) + .filter((item: any, i: any, self: string | any[]) => { + return item && self.indexOf(item) === i; + }); + keys = newExpandedKeys; + } + setExpandedKeys(keys as React.Key[]); + setSearchValue(value); + setAutoExpandParent(value !== ''); + }; + const getDepartmentList = async () => { + try { + const { data } = await fetchAllDepartment({}); + allDataSet(data); + const dataList: { key: React.Key; title: string }[] = []; + const generateList = (data: any[]) => { + for (let i = 0; i < data.length; i++) { + const node = data[i]; + const { key } = node; + dataList.push({ key, title: node.title }); + if (node.children) { + generateList(node.children); + } + } + }; + generateList(data); + treeDataListSet(dataList); + } catch (e) { } + }; + + const getParentKey = (key: React.Key, tree: any): React.Key => { + let parentKey: React.Key; + for (let i = 0; i < tree.length; i++) { + const node = tree[i]; + if (node.children) { + if (node.children.some((item) => item.key === key)) { + parentKey = node.key; + } else if (getParentKey(key, node.children)) { + parentKey = getParentKey(key, node.children); + } + } + } + return parentKey!; + }; + const onExpand = (newExpandedKeys: any[]) => { + setExpandedKeys(newExpandedKeys); + setAutoExpandParent(false); + }; + const onDepartmentClick = (selectedKeys: any, e: any) => { + setOrgId(selectedKeys[0]); + setTimeout(() => { + actionRef.current?.reload(); + }, 200); + }; + const treeData = useMemo(() => { + const loop = (data: any): any[] => { + console.log('data', data); + let res: any[] = []; + data.map((item: any, i: any) => { + const strTitle = item.title as string; + const index = strTitle.indexOf(searchValue); + const beforeStr = strTitle.substring(0, index); + const afterStr = strTitle.slice(index + searchValue.length); + const title = + index > -1 ? ( + + {beforeStr} + {searchValue} + {afterStr} + + ) : ( + {strTitle} + ); + if (expandedKeys.includes(item.key) || index > -1) { + if (item.children) { + res.push({ title, key: item.key, children: loop(item.children) }); + } else { + res.push({ title, key: item.key }); + } + } + }); + return res; + }; + if (searchValue !== '') { + let returnData = loop(allData); + return returnData; + } else { + return allData; + } + }, [searchValue, allData]); + return ( + + +
+
+
+ +
+ +
+
+
+ + actionRef={actionRef}//action触发后更新表格 + columns={columns}//表格 + options={false} + bordered={false} + className='tableSearch' + size='small' + search={{ labelWidth: 'auto', span: 6 }} + request={(params) => + getPage({ + ...params, + orgId: orgId, + basePageRequest: { pageNo: pageData.pageNo, pageSize: pageData.pageSize }, + }).then((res) => { + const result = { + data: res.data.records, + total: res.data.total, + success: res.success, + pageSize: res.data.size, + current: res.data.current + } + return result; + }) + } + toolBarRender={() => [ + // , + ] + } + pagination={{ + defaultPageSize: 10, + showSizeChanger: false, + onChange: (page, pageSize) => pageDataSet({ pageNo: page, pageSize: pageSize }), + onShowSizeChange: (current, size) => pageDataSet({ pageNo: current, pageSize: size }), + }} + onReset={() => { pageDataSet({ pageNo: 1, pageSize: 10 }); setOrgId(''); }} + /> + {setRoleModal} +
+
+
+ {/* 查看 */} +
+ ) +}; +export default entrust; \ No newline at end of file diff --git a/src/pages/System/User/service.ts b/src/pages/System/User/service.ts new file mode 100644 index 0000000..c0c6d65 --- /dev/null +++ b/src/pages/System/User/service.ts @@ -0,0 +1,89 @@ +import { request } from 'umi'; + +// 分页查询角色 +export async function getPage(params: any) { + return request('/api/sys-manager-ebtp-project/v1/sysuser/getPage', { + method: 'post', + data: params, + }); +} +export async function getDataById(id: any) { + return request(`/api/sys-manager-ebtp-project/v1/sysuser/${id}`, { + method: 'get', + }); +} +export async function deleteRole(id: any) { + return request(`/api/sys-manager-ebtp-project/v1/sysuser/del/${id}`, { + method: 'get', + }); +} +export async function addRole(params: any) { + return request('/api/sys-manager-ebtp-project/v1/sysuser/insert', { + method: 'post', + data: params, + }); +} +export async function updateRole(params: any) { + return request('/api/sys-manager-ebtp-project/v1/sysuser/update', { + method: 'post', + data: params, + }); +} + +//分配人员查询数据 +export async function allocationIF(userId: any) { + return request(`/api/sys-manager-ebtp-project/v1/sysrole/role/assign/${userId}`, { + method: 'get', + }); +} + +export async function assignsRoles(params: any) { + return request('/api/sys-manager-ebtp-project/v1/sysuserrole/assignsRoles', { + method: 'post', + data: params, + }); +} +// import { TreeDataNode } from 'antd'; + +// export function userList(options?: { [key: string]: any }): Promise<{ data: any }> { +// return request('/api/system/userList', { +// method: 'GET', +// ...(options || {}), +// }); +// } + +// export function treeData(options?: { [key: string]: any }): Promise<{ data: TreeDataNode[] }> { +// return request('/api/system/treeData', { +// method: 'GET', +// ...(options || {}), +// }); +// } + +// export function fetchUserList(options?: any) { +// return request('/api/sysuser/getPage', { +// method: 'POST', +// data: options, +// }); +// } +// //获取用户数据 +// export function getUser(userId?: any) { +// return request(`/api/sysuser/${userId}`, { +// method: 'get', +// }); +// } + +// export function assignsRoles(options?: { [key: string]: any }): Promise { +// return request('/api/sysuser/assignsRoles', { +// method: 'post', +// ...(options || {}), +// }); +// } + +// //查询用户详情 +// export function getOneUserAll(options?: { [key: string]: any }): Promise<{ data: TreeDataNode[] }> { +// return request(`/api/sysuser/getOneUserAll/${options?.id}`, { +// method: 'GET', +// params: options, +// ...(options || {}), +// }); +// }