import { useAjax } from "@/Hook/useAjax" import { appAccountConfig, doAuthOfBUnit, getAppAccountConfig, tencentAdAccountDoAuth, tencentAdAccountToAuth } from "@/services/miniApp/adBack" import { BetaSchemaForm, PageContainer, ProCard, ProFormInstance} from "@ant-design/pro-components" import { history, useModel } from "@umijs/max" import { Button, message, Modal, Radio, Space } from "antd" import { useEffect, useRef, useState } from "react" import formConfig from "./formConfig" import { searchToObj } from "@/utils" function Auth() { let { getEnum } = useModel('global') let { initialState } = useModel("@@initialState") let [key, setKey] = useState() let [isEdit, setIsEdit] = useState(false) const [readonly, setReadonly] = useState(false); const formRef = useRef(); const [accountData, setAccountData] = useState(null) const [accountId, setAccountId] = useState(null) let TencentAdAccountToAuth = useAjax((params) => tencentAdAccountToAuth(params))//获取授权地址 let TencentAdAccountDoAuth = useAjax((params) => tencentAdAccountDoAuth(params))//开始授权 let GetAppAccountConfig = useAjax((params) => getAppAccountConfig(params))//获取回传配置 let AppAccountConfig = useAjax((params) => appAccountConfig(params))//设置配置 let DoAuthOfBUnit = useAjax((params) => doAuthOfBUnit(params))//广告业务单元授权 // 获取广告回传列表 useEffect(() => { // 授权回调 if (history.location.search) { let obj = searchToObj(history.location.search) if (obj?.state && obj?.authorization_code) { TencentAdAccountDoAuth.run({ "state": obj.state, "authorizationCode": obj.authorization_code, "callbackPage": "https://testdistribution.zanxiangwl.com/miniApp/adBack" }).then(res => { if (res.code === 200) { // 授权失败 if (res.data.authorizationStatus == 1) { setAccountData(res.data) } else { message.success("授权成功") setTimeout(() => { location.href = location.origin + '/miniApp/adBack' }, 1000) } } else { setTimeout(() => { history.push("/miniApp/adBack") }, 1000) } }) } } getConfig() }, []) //获取回传配置 const getConfig = () => { GetAppAccountConfig.run({ appType: initialState?.selectApp?.appType, appId: initialState?.selectApp?.id }) } // 授权 const auth = () => { TencentAdAccountToAuth.run({ appType: initialState?.selectApp?.appType, appId: initialState?.selectApp?.id, advertisingChannel: key, callbackPage: "https://testdistribution.zanxiangwl.com/miniApp/adBack" }).then(res => { if (res.code === 200) { window.open(res.data) } }) } // submit const submit = async (values: any) => { console.log("values",values) // 遍历 firstBackRate 数组,并将 backRate 转换为字符串 if (values.firstBackRate) { values.firstBackRate = values.firstBackRate.map((item: any) => { if (Array.isArray(item.backRate)) { item.backRate = item.backRate.join(":"); // 转换数组为 'min:max' 字符串 } return item; }); } if (values.otherBackRate) { values.otherBackRate = values.otherBackRate.map((item: any) => { if (Array.isArray(item.backRate)) { item.backRate = item.backRate.join(":"); // 转换数组为 'min:max' 字符串 } return item; }); } if (values.markUpBackRate) { values.markUpBackRate = values.markUpBackRate.map((item: any) => { if (Array.isArray(item.backRate)) { item.backRate = item.backRate.join(":"); // 转换数组为 'min:max' 字符串 } return item; }); } // 打印转换后的数据 console.log("处理后的表单数据: ", values); AppAccountConfig.run({ appType: initialState?.selectApp?.appType, appId: initialState?.selectApp?.id, advertisingChannel: key, policyType: 1, policyContentOfDefault: values }).then(res => { if (res.code === 200) { message.success("配置成功!") GetAppAccountConfig.refresh() setIsEdit(false) } }) } // lock or edit const edit = () => { setIsEdit(true) if (GetAppAccountConfig?.data?.data[key]?.distributorAppAdBackPolicy?.policyContentOfDefault) { setTimeout(() => { formRef?.current?.setFieldsValue(GetAppAccountConfig?.data?.data[key]?.distributorAppAdBackPolicy?.policyContentOfDefault) }, 100) } } // 广告单元授权 const ad = () => { doAuthOfBUnit({ state: accountData?.state, accountId }).then(res => { if (res.code === 200) { message.success("授权成功") setAccountData(null) setAccountId(null) } setTimeout(() => { location.href = location.origin + '/miniApp/adBack' }, 1000) }) } return { if (index === 0 && !key) { setKey(item.key) } return { tab: item.label, key: item.key } })} tabProps={{ type: 'card', hideAdd: true, onChange: (e) => setKey(e), }} > } >
归因方式: 数据源ID
数据源类型: {getEnum("TENCENT_USER_ACTION_TYPE", 'map').get(GetAppAccountConfig?.data?.data[key]?.tencentAdAccount?.userActionSets?.type) || "-"}
数据源ID: {GetAppAccountConfig?.data?.data[key]?.tencentAdAccount?.userActionSets?.userActionSetId || "-"}
已授权账号ID: {GetAppAccountConfig?.data?.data[key]?.tencentAdAccount?.userActionSets?.accountId || "-"}
{GetAppAccountConfig?.data?.data[key]?.tencentAdAccount &&
授权:
}
} >
回传类型: {getEnum("CALLBACK_TYPE", "map")?.get(GetAppAccountConfig?.data?.data[key]?.distributorAppAdBackPolicy?.policyContentOfDefault?.backUnit) || "-"}
VIP回传策略: {getEnum("VIP_CALLBACK", "map")?.get(GetAppAccountConfig?.data?.data[key]?.distributorAppAdBackPolicy?.policyContentOfDefault?.vipOrderBackType) || "-"}
是否补单: {new Map([true, false].map(key => [key, key ? "是" : "否"])).get(GetAppAccountConfig?.data?.data[key]?.distributorAppAdBackPolicy?.policyContentOfDefault?.markUpOrder) || "-"}
单用户最大回传订单数: {GetAppAccountConfig?.data?.data[key]?.distributorAppAdBackPolicy?.policyContentOfDefault?.maxBackCountOfUser || "-"}
注册充值回传的最大间隔时间: {GetAppAccountConfig?.data?.data[key]?.distributorAppAdBackPolicy?.policyContentOfDefault?.regPayIntervalTime ? GetAppAccountConfig?.data?.data[key]?.distributorAppAdBackPolicy?.policyContentOfDefault?.regPayIntervalTime + "分钟" : "-"}
{GetAppAccountConfig?.data?.data[key]?.distributorAppAdBackPolicy?.policyContentOfDefault &&
更多内容:
}
{/* 回传配置 */} title={"回传策略配置"} formRef={formRef} open={isEdit} onOpenChange={(b) => { if (!b) { setIsEdit(b) setReadonly(false) } }} layoutType={"ModalForm"} labelCol={{ span: 24 }} colProps={{ span: 8 }} grid={true} layout="vertical" onFinish={submit} columns={formConfig()} submitter={readonly ? false : { render: (props, dom) => [...dom] }} modalProps={{ destroyOnClose: true }} /> {/* 业务单元授权 */} { setAccountData(null); setAccountId(null) }} onOk={ad} > { let value = e.target.value setAccountId(value) }} value={accountId} > { accountData?.accountIdList?.map((id: any) => { return {id} }) }
} export default Auth