import HocError from '@/Hoc/HocError' import { Col, Modal, Row, Input, message, Space, Tabs, Button, Radio, Select } from 'antd' import React, { useCallback, useEffect, useState } from 'react' import { columnsMp } from './tableConfig' import { useAjax } from '@/Hook/useAjax' import { getAdAccountGameListApi, GetAdAccountParams, putAdAccountApi } from '@/services/launchAdq/adAuthorize' import style from './index.less' import TableData from '../../components/TableData' import GroupLeft from './groupLeft' import QQAuth from '../components/qqAuto' import { MenuFoldOutlined, MenuUnfoldOutlined, PlusOutlined, SwapOutlined } from '@ant-design/icons' import TeamMembers from '../../components/teamMembers' import { getAdAccountAllOfMemberGame, getErpUserAll, getServiceProviderAll, putConfigServiceProvider, putRefreshTokenApi } from '@/services/launchAdq/adq' import AddAccountToGroup from './addAccountToGroup' import { delAccountToGroupApi } from '@/services/launchAdq/subgroup' import { useModel } from 'umi' import ChangeRecord from './changeRecord' import CheckAccount from './checkAccount' import AppointPut from './appointPut' import SetEarlyWarningsAccount from '@/components/EarlyWarning/setEarlyWarningsAccount' /** 投放管理 */ const AdAuthorize: React.FC = () => { let [visible, setVisible] = useState(false) let [newVisible, setNewVisible] = useState(false) /*************************/ const { groupListInit } = useModel('useLaunchAdq.useAdAuthorize') const userInfo = useModel('@@initialState', model => model.initialState?.currentUser) const [queryForm, setQueryForm] = useState({ pageNum: 1, pageSize: 20 }) const [remarkData, set_remarkData] = useState<{ visible: boolean, remark: string, data: any }>({ visible: false, remark: '', data: null }) const [activeKey, setActiveKey] = useState('1') const [showLeft, setShowLeft] = useState(false) const [crShow, setCrShow] = useState(false) // 变更记录控制 const [crData, setCrData] = useState<{ name: number, id: number } | null>(null) const [checkAccShow, setCheckAccShow] = useState(false) const [openServer, setOpenServer] = useState([])//配置服务商数据 const [serverName, setServerName] = useState(null)//选择的服务商名称 const [data, setData] = useState<{ putResourceId?: number | undefined, beginTime?: string | undefined, gdtAccountId?: number, accountIds?: string, accountId?: string, gdtAccountIds?: string, advertiserId?: string, accountName?: string, account?: string, accountPassword?: string, quickAppAccountIds?: string resourceNames?: string } | undefined>(undefined) const [selectAccData, setSelectAccData] = useState([]) const [puShow, setPuShow] = useState(false) const [puData, setPuData] = useState([]) const [switchType, setSwitchType] = useState<'account' | 'putUser' | 'setServer'>('account') const putRemark = useAjax((adAccountId: any, remark: any) => putAdAccountApi(adAccountId, remark)) const delAccountToGroup = useAjax((params) => delAccountToGroupApi(params)) const getAdAccountList = useAjax((params) => getAdAccountGameListApi(params), { formatResult: true }) const allOfMemberGame = useAjax(() => getAdAccountAllOfMemberGame(), { formatResult: true }) const erpUserALL = useAjax(() => getErpUserAll(), { formatResult: true }) const api_getServiceProviderAll = useAjax(() => getServiceProviderAll(), { formatResult: true }) const api_putConfigServiceProvider = useAjax((params) => putConfigServiceProvider(params), { formatResult: true }) const putRefreshToken = useAjax((params) => putRefreshTokenApi(params), { formatResult: true }) /*************************/ useEffect(() => { groupListInit() !erpUserALL.data && erpUserALL.run() !api_getServiceProviderAll.data && api_getServiceProviderAll.run() }, []) useEffect(() => { getList() }, [queryForm]) /** 获取账号列表 */ const getList = () => { let params = JSON.parse(JSON.stringify(queryForm)) if (params.accountIds) { params.accountIds = params.accountIds.split(/[\,\,]/) } else { delete params?.accountIds } getAdAccountList.run(params) } const remark = () => { if (remarkData.remark && remarkData.data) { putRemark.run(remarkData.data.accountId, remarkData.remark).then(res => { set_remarkData({ ...remarkData, visible: false, remark: '', data: null }) getList() }) } else { message.error('请输入备注!') } } const edit = useCallback((data) => { set_remarkData({ ...remarkData, visible: true, data, remark: data.remark }) }, [remarkData]) /** 移除分组里账号 */ const del = (groupId: number, accountId: number) => { delAccountToGroup.run({ currGroupId: groupId, accountIds: [accountId] }).then(res => { message.success('移出成功') getAdAccountList.refresh() }) } /** 切号 */ const checkAccount = (value: any[]) => { let ids = value?.map((item: any) => item.id) setData({ resourceNames: value?.map((item: any) => item.putResourceName).toString(), accountIds: value?.map((item: any) => item.accountId).toString(), gdtAccountIds: ids.toString(), putResourceId: undefined, beginTime: undefined }) setCheckAccShow(true); } /** 变更记录 */ const changeRecord = (name: number, id: number) => { setCrData({ name, id }) setCrShow(true) } /** 指派投手 */ const putUserHandle = (data: any[]) => { setPuData(data) setPuShow(true) } // 批量配置服务商 const setServiceProviderName = (accountIds: any) => { api_putConfigServiceProvider.run({ accountIds, serviceProviderName: serverName.label }).then(res => { if (res.data) { message.success("配置成功!") setOpenServer([]); setServerName(null) getAdAccountList.refresh() } else { message.error("配置失败!") } }) } /** 刷新token */ const handleRefreshToken = () => { putRefreshToken.run(selectAccData.map(item => item.accountId)).then(res => { console.log(res) if (res?.data?.length) { message.error(res.data.toString()) } else { setSelectAccData([]) message.success('刷新成功') } }) } // return
setVisible(true)}>广告账号授权} onChange={(activeKey) => { if (activeKey !== 'contract') { let newQueryForm = JSON.parse(JSON.stringify(queryForm)) delete newQueryForm?.groupId delete newQueryForm?.putUserId setQueryForm(newQueryForm) setActiveKey(activeKey) } else { setShowLeft(!showLeft) } }} > : } key='contract' />
{!showLeft && activeKey === '1' && setQueryForm({ ...queryForm, groupId, pageNum: 1 })} value={queryForm?.groupId} />} {!showLeft && activeKey === '2' && setQueryForm({ ...queryForm, putUserId, pageNum: 1 })} value={queryForm?.putUserId} />}
columnsMp(edit, setOpenServer, del, checkAccount, changeRecord, putUserHandle, () => getAdAccountList.refresh(), activeKey, userInfo?.userId?.toString(), queryForm?.groupId, getAdAccountList)} total={getAdAccountList?.data?.data?.total} page={getAdAccountList?.data?.data?.current} pageSize={getAdAccountList?.data?.data?.size} size="small" scroll={{ y: 600 }} leftChild={ { setQueryForm({ ...queryForm, addV3: e }) }} value={queryForm?.addV3} options={[{ label: '是', value: true }, { label: '否', value: false }]} /> { setServerName(option) }} filterOption={(input, option: any) => (option?.label ?? '').toLowerCase().includes(input.toLowerCase()) } value={serverName} options={api_getServiceProviderAll?.data?.data?.map((item: { id: any, serviceProviderName: any }) => { return { value: item.id, label: item.serviceProviderName } })} /> } {/* 广告授权 */} {visible && setVisible(false)} adAppType={1} title='游戏广告账号授权' isOld={true}/>} {/* 广告业务单元批量授权 */} {newVisible && setNewVisible(false)} adAppType={1} smType={"WX"} title='游戏广告业务单元批量授权'/>} {/* 变更记录 */} {crShow && { setCrShow(false); setCrData(null) }} />} {/* 切号 */} {checkAccShow && { getList(); setCheckAccShow(false); setSelectAccData([]) }} onClose={() => { setCheckAccShow(false) }} />} {/* 指派 */} {puShow && { setPuShow(false) }} allOfMember={erpUserALL} onChange={() => { setPuShow(false); getAdAccountList.refresh(); setSelectAccData([]) }} />} {remarkData.visible && { set_remarkData({ ...remarkData, visible: false, data: null }) }} onOk={remark} confirmLoading={putRemark.loading} > 广告主ID:{remarkData?.data.accountId} 类型:{remarkData?.data.sourceType === 0 ? '微信' : 'QQ'} 公众号信息:{remarkData?.data.wechatAccountName || '无'} 企业名称:{remarkData?.data.corporationName || '无'} 服务商ID列表:{remarkData?.data.agencyIdList ? remarkData.data.agencyIdList?.join() : '无'} 行业ID:{remarkData?.data.systemIndustryId || '无'} 授权状态:{remarkData?.data.authStatus || '无'} 日限额(分):{remarkData?.data.dailyBudget || '无'} 授权时间:{remarkData?.data.createTime || '无'} 备注: { let value = e.target.value set_remarkData({ ...remarkData, remark: value }) }} /> }
} export default HocError(AdAuthorize)