index.tsx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import TreeNodeSelect from '@/pages/Project/Management/List/components/TreeNodeSelect'
  2. import { linkRoleAccount } from '@/services/permission'
  3. import { PlusOutlined } from '@ant-design/icons'
  4. import ProForm, { ModalForm } from '@ant-design/pro-form'
  5. import { Button, message } from 'antd'
  6. import { useRef } from 'react'
  7. import type { ProFormInstance } from '@ant-design/pro-form'
  8. import { useRequest } from '@umijs/max'
  9. const ConnectModal = ({ dataId, onReload }) => {
  10. const formRef = useRef<ProFormInstance>(null)
  11. const { run: tryConnectRoleAccount } = useRequest(
  12. (params: API.LinkAccountParams) => linkRoleAccount(params),
  13. {
  14. manual: true,
  15. onSuccess: async () => {
  16. await onReload()
  17. }
  18. }
  19. )
  20. return (
  21. <ModalForm
  22. formRef={formRef}
  23. title="添加用户"
  24. width="30%"
  25. onVisibleChange={visible => !visible && formRef.current?.resetFields()}
  26. layout="horizontal"
  27. trigger={
  28. <Button size="small" type="primary" ghost>
  29. <PlusOutlined />
  30. 添加用户
  31. </Button>
  32. }
  33. onFinish={async values => {
  34. await tryConnectRoleAccount({ ...values, ID: dataId })
  35. message.success('添加成功')
  36. return true
  37. }}>
  38. <ProForm.Item label="选择用户" name="accountIDs" rules={[{ required: true, message: '请选择创建人' }]}>
  39. <TreeNodeSelect exclusionRoleID={dataId} />
  40. </ProForm.Item>
  41. </ModalForm>
  42. )
  43. }
  44. export default ConnectModal