addSubAccount.tsx 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { Form, message, Modal, Transfer } from "antd"
  2. import React, { useEffect, useState } from "react"
  3. import '../../tencentAdPutIn/index.less'
  4. import { getAccountAllListApi } from "@/services/launchAdq/adAuthorize"
  5. import { useAjax } from "@/Hook/useAjax"
  6. import { authAccountAssetsGroupAccountApi } from "@/services/adqV3/global"
  7. interface Props {
  8. // 主账户
  9. authMainAccountId: string
  10. // 主账户ID
  11. accountAssetsGroupId: number
  12. // 已选账户
  13. selectedAccountIdList: string[]
  14. // 主体名称
  15. corporationName: string,
  16. // 主体编号
  17. corporationLicence: string
  18. visible?: boolean
  19. onClose?: () => void
  20. onChange?: () => void
  21. }
  22. const AddSubAccount: React.FC<Props> = ({ authMainAccountId, accountAssetsGroupId, selectedAccountIdList = [], corporationName, corporationLicence, visible, onClose, onChange }) => {
  23. /************************************/
  24. const [form] = Form.useForm()
  25. const [errorDataList, setErrorDataList] = useState<any[]>([])
  26. const getAccountAllList = useAjax(() => getAccountAllListApi())
  27. const authAccountAssetsGroupAccount = useAjax((params) => authAccountAssetsGroupAccountApi(params))
  28. /************************************/
  29. useEffect(() => {
  30. getAccountAllList.run()
  31. }, [])
  32. const handleOk = () => {
  33. form.validateFields().then(valid => {
  34. console.log(valid)
  35. authAccountAssetsGroupAccount.run({ ...valid, accountAssetsGroupId: accountAssetsGroupId }).then(res => {
  36. console.log(res)
  37. if (res) {
  38. message.success('授权成功')
  39. onChange?.()
  40. }
  41. })
  42. })
  43. }
  44. return <Modal
  45. title={<strong>{authMainAccountId} 授权子账户(<span style={{ color: 'red', fontSize: 12 }}>主体:{corporationName}</span>)</strong>}
  46. open={visible}
  47. onCancel={onClose}
  48. className="modalResetCss"
  49. onOk={handleOk}
  50. confirmLoading={authAccountAssetsGroupAccount.loading}
  51. >
  52. <Form
  53. name="basicAddSub"
  54. form={form}
  55. layout='vertical'
  56. autoComplete="off"
  57. >
  58. <Form.Item label={<strong>请选择账户</strong>} name="accountId" rules={[{ required: true, message: '请选择账户!' }]} valuePropName="targetKeys">
  59. <Transfer
  60. showSearch
  61. filterOption={(inputValue: string, option: any) => {
  62. let newInput: string[] = inputValue ? inputValue?.split(/[,,\n\s]+/ig).filter((item: any) => item) : []
  63. return newInput?.some(val => option!.title?.toString().toLowerCase()?.includes(val))
  64. }}
  65. dataSource={getAccountAllList?.data?.filter((item: { accountId: string, corporationLicence: string }) => item.accountId != authMainAccountId && item.corporationLicence === corporationLicence)?.map((item: { accountId: any }) => ({ title: item.accountId, key: item.accountId, disabled: selectedAccountIdList?.includes(item.accountId) }))}
  66. titles={['所有', '已选']}
  67. oneWay
  68. listStyle={{
  69. height: 450,
  70. width: 222
  71. }}
  72. render={item => <span>{item.title}</span>}
  73. pagination
  74. />
  75. </Form.Item>
  76. </Form>
  77. </Modal>
  78. }
  79. export default React.memo(AddSubAccount)