import { fetchRoleListByMenu, fetchRoleListByRoleId, UnLinkRoleAccountItem } from '@/services/permission' import { DeleteOutlined } from '@ant-design/icons' import { PageContainer } from '@ant-design/pro-layout' import { message, Popconfirm, Table, Tabs } from 'antd' import type { ColumnsType } from 'antd/lib/table' import React, { useEffect, useState } from 'react' import { useRequest } from 'umi' import ConnectModal from './components/ConnectModal' import RoleLeftMenu from './components/RoleLeftMenu' import SetPermission from './components/SetPermission' const Role = () => { const [state, setState] = useState({ ID: '', roleStaff: [], activeKey: '' }) const [menuRoles, setMenuRoles] = useState([]) const onSelect = (ID: string) => { setState({ ...state, ID }) } const { TabPane } = Tabs // const { run: tryFetchRoleListByMenu } = useRequest(() => fetchRoleListByMenu(), { // manual: true, // onSuccess: result => { // setMenuRoles(result) // // setState({ ...state, ID: result[0]['ID'] }) // } // }) const { run: tryGetRoleStaffList } = useRequest( (roleID: string) => fetchRoleListByRoleId({ roleID }), { manual: true, onSuccess: result => { setState({ ...state, roleStaff: result.items }) } } ) const { run: tryUnLinkRoleAccount } = useRequest( (params: API.LinkAccountItem) => UnLinkRoleAccountItem(params), { manual: true, onSuccess: async () => { message.success('移除成功') await tryGetRoleStaffList(state.ID) } } ) useEffect(() => { // tryFetchRoleListByMenu() if (state.ID) { tryGetRoleStaffList(state.ID) } }, [state.ID]) const columns: ColumnsType = [ { title: '账号', dataIndex: 'account', width: '15%' }, { title: '姓名', dataIndex: 'name', width: '15%' }, { title: '企事业名称', dataIndex: 'institutionID', width: '35%', render: (_, record) => record.institution.name }, { title: '操作', dataIndex: 'operation', width: '10%', render: (_, record) => ( tryUnLinkRoleAccount({ ID: state.ID, accountID: record.ID })}> ) } ] return (
{state.ID && ( tryGetRoleStaffList(state.ID)} /> )}
columns={columns} dataSource={state.roleStaff} rowKey={row => row.id} />
) } export default Role