RolePerm.tsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import ProForm from '@ant-design/pro-form'
  2. import type { ProFormInstance } from '@ant-design/pro-form'
  3. import React, { useEffect, useRef } from 'react'
  4. import { useRequest } from 'umi'
  5. import { setProjectPersonor } from '@/services/api/project'
  6. import { Card, Form, message } from 'antd'
  7. import TreeNodeSelect from '../../List/components/TreeNodeSelect'
  8. type RolePermProps = {
  9. dataID: string
  10. defaultFormData: {
  11. createdID: string
  12. reportAccount: string[]
  13. }
  14. }
  15. export default function RolePerm(props: RolePermProps) {
  16. const { dataID, defaultFormData } = props
  17. const ref = useRef<ProFormInstance>(null)
  18. const { run: trySetProjectPersonor } = useRequest(setProjectPersonor, {
  19. manual: true,
  20. onSuccess: () => {
  21. message.success('提交成功')
  22. }
  23. })
  24. useEffect(() => {
  25. if (dataID) {
  26. ref.current?.setFieldsValue({ ...defaultFormData })
  27. }
  28. }, [dataID])
  29. return (
  30. <Card>
  31. <div className="max-w-320px">
  32. <ProForm
  33. formRef={ref}
  34. onFinish={formData => trySetProjectPersonor({ ...formData, ID: dataID })}>
  35. <Form.Item
  36. tooltip="创建项目、管理编辑者、上传项目数据、编制项目、添加批注"
  37. label="创建人"
  38. name="createdID"
  39. rules={[{ required: true, message: '请选择创建人' }]}>
  40. <TreeNodeSelect params={{ isCreated: 1 }} />
  41. </Form.Item>
  42. <Form.Item label="编辑者" name="reportAccount" tooltip="编制项目、上传项目数据、添加批注">
  43. <TreeNodeSelect multiple />
  44. </Form.Item>
  45. </ProForm>
  46. </div>
  47. </Card>
  48. )
  49. }