import { useAjax } from "@/Hook/useAjax" import { getAdAccountApi, getAllUserAccountApi } from "@/services/launchAdq/adAuthorize" import { addNewAccountToGroupApi, getAccountListApi, getGroupListApi } from "@/services/launchAdq/subgroup" import { PlusOutlined } from "@ant-design/icons" import { Button, Form, message, Modal, Select, Transfer } from "antd" import React, { useEffect, useState } from "react" import { useModel } from "umi" interface Props { onChange?: () => void } /** * 新增至分组 * @param props * @returns */ const AddAccountToGroup: React.FC = (props) => { /*********************************/ const { onChange } = props const [form] = Form.useForm(); let currGroupId = Form.useWatch('currGroupId', form) const [visible, setVisible] = useState(false) const [mockData, setMockData] = useState<{ key: string, title: string }[]>([]) const { getGroupList } = useModel('useLaunchAdq.useAdAuthorize') const getAccountList = useAjax((params) => getAccountListApi(params)) const addNewAccountToGroup = useAjax((params) => addNewAccountToGroupApi(params)) const getAllUserAccount = useAjax(() => getAllUserAccountApi()) /*********************************/ useEffect(() => { if (currGroupId) { getAccountList.run(currGroupId).then(res => { console.log(res); form.setFieldsValue({ accountIds: res?.adAccountList?.map((item: { accountId: string }) => item.accountId.toString()) || [] }) }) } }, [currGroupId]) const addAccountToGroupHandle = () => { setVisible(true) getAllUserAccount.run().then(res => { setMockData(res?.map((item: { accountId: string, remark: string }) => ({ key: item.accountId.toString(), title: `${item.accountId}${item.remark ? '_' + item.remark : ''}` }))) }) } const handleOk = () => { form.validateFields().then(values => { addNewAccountToGroup.run(values).then(res => { message.success('修改成功') closeHandle() onChange?.() }) }) } const closeHandle = () => { setVisible(false) form.setFieldsValue({ currGroupId: undefined, accountIds: undefined }) } return <> {visible &&
分组} name='currGroupId' rules={[{ required: true, message: '请选择分组' }]}> {currGroupId && 账号} name='accountIds' valuePropName='targetKeys' rules={[{ required: true, message: '请选择账号' }]}> { let newInput: string[] = input ? input?.split(/[,,\n\s]+/ig).filter((item: any) => item) : [] return newInput?.some(val => option!.title?.toString().toLowerCase()?.includes(val)) }} listStyle={{ minHeight: 320 }} render={item => item.title} /> }
} } export default React.memo(AddAccountToGroup)