{"version":3,"file":"statics/js/index-2a179645.b9d1636d7.js","mappings":"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,yBAiCI,6CACnCV,EAASI,oBAAsB,CAC9BE,aAAa,EACbC,UAAU,EACVC,WAAY5oB,EAAAA,KAAK6oB,EAAE,sDACnBC,aAAc9oB,EAAAA,KAAK6oB,EAAE,4DAA6D,CAAEE,SAAU,GAAIC,OAAQ,OALxE,eAOnCZ,EAASE,QAAU,CAClBI,aAAa,EACbC,UAAU,EACVC,WAAY5oB,EAAAA,KAAK6oB,EAAE,oDACnBC,aAAc9oB,EAAAA,KAAK6oB,EAAE,sDAXa,eAanCT,EAASG,QAAU,CAClBG,aAAa,EACbC,UAAU,EACVC,WAAY5oB,EAAAA,KAAK6oB,EAAE,uDACnBC,aAAc9oB,EAAAA,KAAK6oB,EAAE,iEAjBa,eAmBnCT,EAASC,UAAY,CACpBK,aAAa,EACbC,UAAU,EACVC,WAAY,GACZE,aAAc,MAvBoB,eAyBnCV,EAASK,WAAa,CACrBC,aAAa,EACbC,UAAU,EACVC,WAAY,GACZE,aAAc,KA7BoB,G,yBAiCA,CACpCG,IAAK,EACLC,OAAQ,EACRC,kBAAmB,EACnBC,SAAU,G,0BAI2B,CACrCC,MAAO,EACPC,KAAM,EACNnB,IAAK,EACLD,GAAI,GAIN,IA+IaqB,EAAkB,GAAH,OA/IR,CAClB,mBAEuB,CACvB,UACA,gBACA,kBACA,uBACA,kBACA,0BACA,iBACA,sBACA,iBACA,eACA,qBACA,yBACA,0BACA,uBACA,yBACA,YACA,yBACA,qBAEiB,CACjB,UACA,iBACA,aACA,gBACA,kBACA,uBACA,YACA,eACA,MACA,gBACA,YACA,iBACA,iBACA,oBACA,gBACA,kBACA,WACA,eACA,oBACA,cACA,qBACA,gBACA,oBACA,YACA,UACA,eACA,cACA,oBACA,wBACA,aACA,0BACA,yBACA,qBACA,wBACA,yBACA,wBACA,eACA,uBACA,kBACA,mBACA,cACA,mBACA,WACA,aACA,iBACA,sBACA,wBACA,cACA,mBACA,iBACA,gBACA,UACA,sBACA,iBACA,gBACA,WACA,iBACA,aACA,sBACA,cACA,oBACA,gBACA,WACA,eACA,6BACA,mBACA,aACA,qBACA,mBACA,qBACA,mBACA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","sources":["webpack:///./src/const/account.js","webpack:///./src/const/agent.js","webpack:///./src/const/apis.js","webpack:///./src/const/boe.js","webpack:///./src/const/column-width.js","webpack:///./src/const/coming_source_type.js","webpack:///./src/const/commonTcc.js","webpack:///./src/const/creative/additionalAdsEnable.js","webpack:///./src/const/creative/identity.js","webpack:///./src/const/currencyLocale.js","webpack:///./src/const/date.js","webpack:///./src/const/defaultParam.js","webpack:///./src/const/feelgood.js","webpack:///./src/const/gcp.js","webpack:///./src/const/href.js","webpack:///./src/const/language.js","webpack:///./src/const/newTask.js","webpack:///./src/const/notification.js","webpack:///./src/const/payment.js","webpack:///./src/const/state/account.js","webpack:///./src/const/state/ad.js","webpack:///./src/const/state/app-profile-page.js","webpack:///./src/const/state/bid-region.js","webpack:///./src/const/state/budget.js","webpack:///./src/const/state/call-to-action.js","webpack:///./src/const/state/campaign.js","webpack:///./src/const/state/catalog.js","webpack:///./src/const/state/creative.js","webpack:///./src/const/state/custom-content.js","webpack:///./src/const/state/downgrade.js","webpack:///./src/const/state/email.js","webpack:///./src/const/state/inventory-type.js","webpack:///./src/const/state/library.js","webpack:///./src/const/state/perf-status.js","webpack:///./src/const/state/select-province.js","webpack:///./src/const/state/self-service-config.js","webpack:///./src/const/state/shop.js","webpack:///./src/const/state/target.js","webpack:///./src/const/state/transaction.js","webpack:///./src/const/state/update-audience.js","webpack:///./src/const/statistic.js","webpack:///./src/const/statistics/basic-asset.js","webpack:///./src/const/statistics/basic-attribute.js","webpack:///./src/const/statistics/basic-base-info.js","webpack:///./src/const/statistics/basic-conversion.js","webpack:///./src/const/statistics/basic-engagement.js","webpack:///./src/const/statistics/basic-inapp-event-skan.js","webpack:///./src/const/statistics/basic-inapp-event.js","webpack:///./src/const/statistics/basic-live.js","webpack:///./src/const/statistics/basic-onsite-event.js","webpack:///./src/const/statistics/basic-performance.js","webpack:///./src/const/statistics/basic-skan.js","webpack:///./src/const/statistics/basic-video-play.js","webpack:///./src/const/statistics/basic-web-event.js","webpack:///./src/const/statistics/formatters.js","webpack:///./src/const/statistics/metrics-emun.js","webpack:///./src/const/statistics/utils.jsx","webpack:///./src/const/transaction.js","webpack:///./src/const/whiteList.js"],"sourcesContent":["export const accoutType = {\n // 已禁用\n STATUS_DISABLE: 0,\n // 待审核, 代理商\n STATUS_PENDING_CONFIRM: 1,\n // 代理商\n STATUS_AGENCY: 1,\n // 待验证\n STATUS_PENDING_VERIFIED: 2,\n // 审核失败/可再次申请\n STATUS_CONFIRM_FAIL: 3,\n // 已审核\n STATUS_ENABLE: 4,\n // 审核失败/最终状态\n STATUS_CONFIRM_FAIL_END: 5,\n // 修改审核\n STATUS_PENDING_CONFIRM_MODIFY: 6,\n // 修改审核失败\n STATUS_CONFIRM_MODIFY_FAIL: 7,\n // 限制\n STATUS_PUNISH: 8,\n // 等待CRM审核\n STATUS_WAIT_FOR_BPM_AUDIT: 9,\n // 自助开户待验证资质\n STATUS_SELF_SERVICE_UNAUDITED: 10,\n // 已审核,头像审核中\n // (没有落地到数据库,广告主的状态实际还是已审核)\n STATUS_ENABLE_AND_AVATAR_AUDITING: 11,\n // SMB客户待合同归档\n STATUS_WAIT_FOR_BPM_FILE_CONTACT: 12,\n // SMB广告主待缴纳开户费\n STATUS_WAIT_FOR_ACCOUNT_FEE: 13,\n // 待对公验证\n STATUS_WAIT_FOR_PUBLIC_AUTH: 14,\n // BM\n STATUS_BUSINESS_MANAGER: 99,\n};\n\nexport const qualificationType = {\n MUSIC: 10, // 音乐资质\n MEDICINES: 11, // 医药资质\n};\n\nexport const auditStatus = {\n /** 未提交资质 */\n NOT_SUBMIT: 0,\n /** 待审核 */\n NOT_STARTED: 1,\n /** 审核中 */\n UNDER_REVIEWING: 2,\n /** 审核通过 */\n APPROVAL: 3,\n /** 不通过 */\n REJECT: 4,\n /** 过期 */\n EXPIRE: 5,\n /** 失效 */\n INVALID: 6,\n};\n\nexport const punishStatus = {\n ADMIN: 1, // 管理员惩罚\n AGENT: 2, // 代理商直接惩罚\n REFUND: 3, // 广告主退款惩罚\n AGENT_RELATE: 4, // 关联惩罚(因为代理商被惩罚,关联惩罚广告主)\n CREDIT_CARD_DEDUCTION_FAIL: 5, // 信用卡扣款失败惩罚\n OVERDUE_PAYMENT: 6, // 逾期欠款惩罚\n NON_TRADE_COMPLIANCE: 7, // 贸易合规惩罚\n};\n// 资质状态\nexport const aduitStatusMap = {\n // 拒审\n [auditStatus.REJECT]: {\n label: 'module_account_qualification_disapproved',\n value: 'reject',\n },\n // 过期\n [auditStatus.EXPIRE]: {\n label: 'module_account_qualification_expired',\n value: 'expire',\n },\n // 审核通过\n [auditStatus.APPROVAL]: {\n label: 'module_account_qualification_approved',\n value: 'approval',\n },\n // 审核中\n [auditStatus.UNDER_REVIEWING]: {\n label: 'module_account_qualification_in_review',\n value: 'under-reviewing',\n },\n // 草稿\n [auditStatus.NOT_SUBMIT]: {\n label: 'module_account_qualification_draft',\n value: 'not-submit',\n },\n};\n\nexport const popupType = {\n CREATION_MODE_BTN: 'creation_mode_switch_weak_guide0',\n CLOSE_ARABIC_TIPS: 'account_banner_SA_field_illegal_confirm0',\n POST_INVOICE_CONFIRM: 'account_post_fulfill_info_confirm0',\n AD_MODE: 'creation_mode_switch_strong_guide0',\n};\n","import { isBOE } from 'src/const/boe';\n/**\n * @file Consts for agent related\n */\n\n/**\n * 代理商平台分配的角色\n */\nexport const EnumAgentRoleAssigned = {\n OBSERVER: 2,\n OPERATOR: 1,\n ADMIN: 0,\n};\n\nexport const bcRole = {\n ADMIN: 0,\n OPERATOR: 1,\n ANALYST: 2,\n};\n\nexport const bcRoleMap = {\n [bcRole.ADMIN]: {\n name_i18n: 'module_bc_role_admin',\n },\n [bcRole.OPERATOR]: {\n name_i18n: 'module_bc_role_operator',\n },\n [bcRole.ANALYST]: {\n name_i18n: 'module_bc_role_analyst',\n },\n};\n\nexport const accountOwnerType = {\n BC: 1,\n PERSONAL: 2,\n};\n\nexport const accountOwnerTypeMap = {\n [accountOwnerType.BC]: {\n value: 1,\n },\n [accountOwnerType.PERSONAL]: {\n value: 2,\n },\n};\n\n// 常用URL\nconst { protocol, host } = window.location;\nconst toBcHostMap = {\n 'boe-ads.tiktok.com': 'boe-business.tiktok.com',\n 'boei18n-ads.byteoversea.net': 'boei18n-business.byteoversea.net',\n};\nconst BOE_BC_HOST = toBcHostMap[host];\nconst NORMAL_BC_HOST = 'business.tiktok.com';\nconst OTHER_BC_HOST = `${host}/bc`;\n\nlet CURRENT_BC_HOST = OTHER_BC_HOST;\nconst isNormal = host === 'ads.tiktok.com';\n\nif (isBOE) CURRENT_BC_HOST = BOE_BC_HOST;\nif (isNormal) CURRENT_BC_HOST = NORMAL_BC_HOST;\n\nexport const BC_ORIGIN = `${protocol}//${CURRENT_BC_HOST}`;\n\nexport const BC_HOME_URL = BC_ORIGIN;\n\nexport const BC_AD_ACCOUNT_URL = `${BC_ORIGIN}/manage/account`;\nexport const bc_info_url = `//${CURRENT_BC_HOST}/manage/info`;\n","import { getLogoutUrl } from 'src/utils/env';\n\nexport default {\n dashboard: {\n dashboardData: '/api/v2/i18n/statistics/report/advertiser_stat/',\n newDashboardData: '/api/v3/i18n/statistics/report/advertiser_stat/',\n dashboardAudience: '/api/v2/i18n/statistics/promote/advertiser_stat/',\n newDashboardAudience: '/api/v3/i18n/statistics/promote/advertiser_stat/',\n dashboardCost: '/api/v3/i18n/statistics/total/advertiser_stat/',\n dashboardDeparting: '/api/v2/i18n/statistics/promote/advertiser_rectangle_stat/',\n newDashboardDeparting: '/api/v3/i18n/statistics/promote/advertiser_rectangle_stat/',\n dashboardAccountStatus: '/api/v2/i18n/statistics/promote/statistics_overview/',\n newDashboardAccountStatus: '/api/v3/i18n/statistics/promote/statistics_overview/',\n optimizeDashboardAccountStatus: '/api/v3/i18n/statistics/dashboard/statistics_overview/',\n dashboardSuggestion: '/api/v2/i18n/statistics/promote/statistics_suggestion/',\n newDashboardSuggestion: '/api/v3/i18n/statistics/promote/statistics_suggestion/',\n optimizeDashboardSuggestion: '/api/v3/i18n/statistics/dashboard/statistics_suggestion/',\n suggestionFilters: '/api/v2/i18n/statistics/filter/suggestion/',\n newSuggestionFilters: '/api/v3/i18n/statistics/filter/suggestion/',\n getBulletBoardData: '/api/v3/i18n/dashboard/mission_list/',\n getShopifyDialogStatus: '/api/v1/self-serve/guideline/manage/',\n getShopifyType: '/api/v1/self-serve/shopify/adv_type/',\n },\n ad: {\n // adgroup\n info: '/api/v3/i18n/perf/ad/detail/', // todo全部走新接口v3\n update: '/api/v3/i18n/perf/ad/update/',\n create: '/api/v3/i18n/perf/ad/create/',\n newUpdate: '/api/v3/i18n/perf/ad/update/',\n newCreate: '/api/v3/i18n/perf/ad/create/',\n copy: '/api/v3/i18n/perf/ad/copy/',\n nav_list: '/api/v2/i18n/perf/ad/list/',\n ad_list: '/api/v2/i18n/overture/ad/ad_list/',\n operator_map: '/api/v3/i18n/perf/tool/mcc_mnc_v2/', // 运营商的表\n checkAdGroup: '/api/v3/i18n/perf/ad/check/',\n checkNewAdGroup: '/api/v3/i18n/perf/ad/check/',\n update_status: '/api/v3/i18n/overture/ad/update_status/',\n batch_update_bid: '/api/v3/i18n/overture/ad/update/bid/', // 批量修改出价\n action_opts: '/api/v2/i18n/overture/api/get_tetris_action/',\n custom_audience: '/api/v2/i18n/overture/tool/custom_audience/list/',\n suggestion_filter: '/api/v3/i18n/statistics/promote/diagnosis_suggestion/', // adgroup数目\n update_name: context => `/api/v3/i18n/overture/ad/${context.ad_id}/rename/`,\n update_bid: context => `/api/v3/i18n/overture/ad/${context.ad_id}/update_bid/`, // 单个出价\n update_budget: context => `/api/v3/i18n/overture/ad/${context.ad_id}/update_budget/`, // 单个改预算\n update_scheduled_budget: ad_id => `/api/v3/i18n/overture/ad/${ad_id}/update_scheduled_budget/`,\n update_budget_task: context => `/api/v2/i18n/overture/ad/${context.ad_id}/budget_task/update/`,\n procedural_audit_detail: '/api/v2/i18n/perf/creative/material_status/',\n // get_external_actions: '/api/v2/i18n/app/actions/',\n get_app_list: '/api/v3/i18n/app/list/',\n get_pixel_list: '/api/v2/i18n/pixel/list/',\n get_pixel_event_list: '/api/v2/i18n/pixel_event/list/',\n get_pixel_info_by_pixelId: '/api/v3/i18n/pixel/info/',\n get_behavior_list: '/api/v2/i18n/perf/tool/ad_actions/',\n get_action_categort: '/api/v3/i18n/perf/tool/action_category/',\n get_device_model_list: '/api/v3/i18n/perf/tool/device_models/',\n search_interest_keywords: '/api/v3/i18n/optimizer/tool/interest_keywords_i18n/search/',\n get_interest_keywords_info: '/api/v3/i18n/optimizer/tool/interest_keywords_i18n/info/',\n search_keywords: '/api/v3/i18n/optimizer/tool/keywords_i18n/search/',\n get_keywords_info: '/api/v3/i18n/optimizer/tool/keywords_i18n/info/',\n breakdown_report_stat: '/api/v2/i18n/statistics/promote/ad_stat/',\n new_breakdown_report_stat: '/api/v3/i18n/statistics/promote/ad_stat/',\n ttp_breakdown_report_stat: '/api/v3/ttp/statistics/promote/ad_stat/',\n breakdown_download_trail_url: '/api/v2/i18n/statistics/promote/ad_stat/',\n new_breakdown_download_trail_url: '/api/v3/i18n/statistics/promote/ad_stat/',\n breakdown_download_url: '/api/v2/i18n/statistics/data/download_stat/',\n frequency_projected_stat: '/api/v2/i18n/statistics/data/ad_rf_projected/',\n new_frequency_projected_stat: '/api/v3/i18n/statistics/data/ad_rf_projected/',\n frequency_download_trail_url: '/api/v2/i18n/statistics/report/ad_rf_stat/',\n new_frequency_download_trail_url: '/api/v3/i18n/statistics/report/ad_rf_stat/',\n frequency_download_url: '/api/v2/i18n/statistics/data/download_stat/',\n new_frequency_download_url: '/api/v3/i18n/statistics/reporting/download_file/',\n total_cost: '/api/v2/i18n/statistics/promote/total_stat/',\n new_total_cost: '/api/v3/i18n/statistics/promote/total_stat/',\n new_breakdown_download_url: '/api/v3/i18n/statistics/data/download_stat/',\n ttp_breakdown_download_url: '/api/v3/ttp/statistics/data/download_stat/',\n list: '/api/v2/i18n/statistics/data/ad_stat/',\n newList: '/api/v2/i18n/promote/ad/list/',\n newStatisticList: '/api/v3/i18n/statistics/ad/list/',\n suggestions: '/api/v2/i18n/perf/audit/ad/',\n download_url: '/api/v2/i18n/statistics/data/download_stat/',\n new_promote_download_url: '/api/v3/i18n/statistics/data/download_stat/',\n ttp_promote_download_url: '/api/v3/ttp/statistics/data/download_stat/',\n new_download_url: '/api/v2/i18n/promote/task_query/',\n new_statistic_download_url: '/api/v3/i18n/statistics/task_query/',\n report_stat: '/api/v2/i18n/statistics/report/ad_stat/',\n new_report_stat: '/api/v3/i18n/statistics/report/ad_stat/',\n download_trail_url: '/api/v2/i18n/statistics/report/ad_stat/',\n new_download_trail_url: '/api/v3/i18n/statistics/report/ad_stat/',\n checkAppInstallType: '/api/v3/i18n/app/statistic_info/',\n audience_estimate: '/api/v3/i18n/optimizer/audience/user/estimate/',\n\n app_event_list: '/api/v2/i18n/app/events/',\n\n budgetRecommend: '/api/v3/i18n/optimizer/diagnosis/budget/recommend/', // 推荐预算接口\n budgetRecommendReturn: '/api/v3/i18n/optimizer/diagnosis/budget/feedback/', // 推荐预算数据回传\n getImpression: '/api/v3/i18n/optimizer/diagnosis/impression/estimate/', // 获取 impression 预估\n\n audience_analysis_ad: '/api/v2/i18n/statistics/audience/ad_stat/',\n audience_analysis_creative: '/api/v2/i18n/statistics/audience/creative_stat/',\n audience_analysis_compaign: '/api/v2/i18n/statistics/audience/campaign_stat/',\n audience_analysis_download: '/api/v2/i18n/statistics/data/download_stat/',\n new_audience_analysis_download: '/api/v3/i18n/statistics/data/download_stat/',\n ttp_audience_analysis_download: '/api/v3/ttp/statistics/data/download_stat/',\n preview_create: '/api/v2/i18n/create_preview/',\n preview_qr: '/api/v3/i18n/create_preview/preview_qr/',\n package_parse: '/api/v2/i18n/ad/package_parse/',\n\n image_material_list: '/api/v2/i18n/material/image/list/',\n video_material_list: '/api/v2/i18n/material/video/list/',\n promotion_url_recommend: '/api/v2/i18n/perf/tool/promotions/',\n get_price_suggest: '/api/v2/i18n/ad/optimal_bidding/',\n get_split_price_suggest: '/api/v3/i18n/split_test/ad/optimal_bidding/',\n getSplitTestBudget: '/api/v3/i18n/split_test/budget/estimate/',\n getPower: '/api/v3/i18n/optimizer/split_test/power/estimate/',\n splitTestAuEstimate: '/api/v3/i18n/optimizer/audience/split_test/user/estimate/',\n bulkEditBudgetCheck: '/api/v3/i18n/overture/ad/batch_update/budget/check/',\n bulkEditBudgetUpdate: '/api/v3/i18n/overture/ad/batch_update/budget/',\n bulkEditBidUpdate: '/api/v3/i18n/overture/ad/batch_update/bid/',\n bulkEditBidCheck: '/api/v3/i18n/overture/ad/batch_update/bid/check/',\n\n bulkExportUrl: '/api/v3/i18n/helper/download/job_launch/', // 批量下载url\n bulkExportPollUrl: '/api/v3/i18n/helper/download/check/', // 批量轮询url\n bulkUploadAds: '/api/v3/i18n/helper/upload/file/', // 批量上传接口\n bulkUploadAdsAnalyse: '/api/v3/i18n/helper/upload/parse/', // 批量创建解析任务接口\n bulkUploadAdsPollAnalyse: '/api/v3/i18n/helper/upload/parse/check/', // 批量轮询解析任务接口\n bulkUploadAdsAnalyseErrorDownload: '/api/v3/i18n/helper/upload/parse/download/', // 下载解析错误报告\n bulkCreateAds: '/api/v3/i18n/helper/upload/create/', // 创建批量创建广告任务接口\n bulkPollCreateAds: '/api/v3/i18n/helper/upload/create/check/', // 轮询批量创建广告任务接口\n bulkCreateAdsErrorDownload: '/api/v3/i18n/helper/upload/create/download/', // 下载批量创建广告错误\n bulkGetIOSNumber: '/api/v3/i18n/helper/after_parse_check/', // 获取iOS14campaign额度\n bulkUserVersion: '/api/v3/i18n/helper/version/', // 批量工具用户账号信息\n bulkExportNum: '/api/v3/i18n/helper/download/check_num/', // 批量导出结果\n bulkUserUpdate: '/api/v3/i18n/helper/version/update/', // 批量工具更新版本\n checkTrackUrl: '/api/v2/i18n/perf/check/track_url/', // 校验监测链接的接口\n adAuditRejectReason: '/api/v3/i18n/perf/audit/info/ad/',\n creativeAuditRejectReason: '/api/v3/i18n/perf/audit/info/creative/',\n adInspectRejectReason: '/api/v3/i18n/inspect/info/ad/', // 诊断建议在suggestion地方的接口\n auditRejectAppeal: '/api/v3/i18n/perf/audit/appeal/', // 一键申诉一期申诉提交GET方法\n auditRejectAppealV2: '/api/v3/i18n/perf/audit/appeal_v2/', // 一键申诉二期POST方法接口\n realLivAuditRejectAppealV2: '/api/v3/i18n/perf/audit/live_appeal/', // 直投直播间申诉post接口\n appealImageUpload: '/api/v3/i18n/perf/audit/appeal_upload/', // 申诉理由图片上传接口\n aeoUnlock: '/api/v3/i18n/perf/tool/third/aeo/', // aeo自动解锁接口\n rfContractTime: '/api/v3/i18n/rf/contract/effective_time/',\n rfOrderCancel: '/api/v3/i18n/rf/order/cancel/',\n stockEstimate: '/api/v3/i18n/rf/stock/estimate/', // 库存预估\n allowCountries: '/api/v3/i18n/manager/country/list/three_tiers_brand_safety/', // 获取standard和limited inventory 支持的定向国家列表\n notifyUserList: '/api/v3/i18n/rf/list_notify_users/', // 订阅邮件通知用户\n suggestBid: '/api/v2/i18n/ad/optimal_bidding/', // cbo需求新添,获取建议出价值\n checkVideoMusic: '/api/v3/i18n/material/video/sensitive_music/', // 获取视频中的敏感音乐信息\n pangleFlowPkg: '/api/v3/i18n/perf/tool/flow_pack/', // 获取pangle流量包信息\n operationSystemList: '/api/v3/i18n/perf/tool/osv/',\n learnParse: '/api/v3/i18n/perf/tool/learn_phase/', // 获取是否在学习期\n campaignQuota: '/api/v3/i18n/app/ios_app/campaign_quota/', // 获取ios14 campaign quota\n getAppIdInWhiteList: '/api/v3/i18n/app/ios_app/v2/new/',\n getIos14AdgroupQuota: '/api/v3/i18n/app/ios_app/v2/campaign_quota/',\n getIos14CampaignQuota: '/api/v3/i18n/app/ios_app/v2/app_quota/',\n targetingRecommendation: '/api/v3/i18n/perf/tool/target_recommendation_tags/', // 定向推荐标签\n /** @description 获取创编定向的语言选项列表 */\n allLanguagesList: '/api/v3/i18n/perf/tool/language_list/',\n getCBOBid: '/api/v3/i18n/perf/tool/cbo_bid/',\n externalUrlDomain: '/api/v3/i18n/pixel/domain/',\n\n // 获取当前 adGroup 下的创意素材信息 - view data 部分使用\n getMaterialStat: '/api/v3/i18n/statistics/promote/material_stat/',\n // 更新当前创意素材的开关状态\n updateCreativeStatus: '/api/v3/i18n/overture/procedural_material/update_status/',\n updateName: '/api/v3/i18n/overture/ad/batch_update/name/',\n checkName: '/api/v3/i18n/overture/ad/batch_update/name/check/',\n getShadowTags: '/api/v3/i18n/rf/shadow_retargeting_tags/',\n // split test一键放量\n splitTestToAll: '/api/v3/i18n/optimizer/split_test/to_all/',\n // split test关停实验\n splitTestStopTest: '/api/v3/i18n/optimizer/split_test/stop_test/',\n voStatus: '/api/v3/i18n/optimizer/tool/value_optimizer_status/',\n\n negative_keywords_list: '/api/v3/i18n/search_ads/negative_keyword/list/', // 获取否定关键词列表数据\n add_negative_keywords: '/api/v3/i18n/search_ads/negative_keyword/add/', // 新增否定关键词\n modify_negative_keywords: '/api/v3/i18n/search_ads/negative_keyword/modify/', // 编辑否定关键词\n delete_negative_keywords: '/api/v3/i18n/search_ads/negative_keyword/delete/', // 删除否定关键词\n download_negative_keywords: '/api/v3/i18n/search_ads/negative_keyword/download/', // 导出否定关键词\n // 查询资产可用数量\n assetDetail: '/api/v3/i18n/perf/tool/asset/quota/',\n contextualTags: '/api/v3/i18n/optimizer/tool/contextual_tags/list/',\n contextualTagsInfo: '/api/v3/i18n/optimizer/tool/contextual_tags/info/',\n },\n campaign: {\n info: '/api/v3/i18n/perf/campaign/detail/',\n create: '/api/v3/i18n/perf/campaign/create/',\n update: '/api/v3/i18n/perf/campaign/update/',\n nav_list: '/api/v2/i18n/overture/campaign/campaign_list/',\n update_status: '/api/v2/i18n/overture/campaign/update_status/',\n\n breakdown_report_stat: '/api/v2/i18n/statistics/promote/campaign_stat/',\n new_breakdown_report_stat: '/api/v3/i18n/statistics/promote/campaign_stat/',\n ttp_breakdown_report_stat: '/api/v3/ttp/statistics/promote/campaign_stat/',\n breakdown_download_trail_url: '/api/v2/i18n/statistics/promote/campaign_stat/',\n new_breakdown_download_trail_url: '/api/v3/i18n/statistics/promote/campaign_stat/',\n breakdown_download_url: '/api/v2/i18n/statistics/data/download_stat/',\n new_breakdown_download_url: '/api/v3/i18n/statistics/data/download_stat/',\n ttp_breakdown_download_url: '/api/v3/ttp/statistics/data/download_stat/',\n\n new_total_cost: '/api/v3/i18n/statistics/promote/total_stat/',\n newStatisticList: '/api/v3/i18n/statistics/campaign/list/',\n dashboardStatisticList: '/api/v3/i18n/statistics/dashboard/campaignlist/',\n download_url: '/api/v2/i18n/statistics/data/download_stat/',\n new_promote_download_url: '/api/v3/i18n/statistics/data/download_stat/',\n ttp_promote_download_url: '/api/v3/ttp/statistics/data/download_stat/',\n new_download_url: '/api/v2/i18n/promote/task_query/',\n new_statistic_download_url: '/api/v3/i18n/statistics/task_query/',\n report_stat: '/api/v2/i18n/statistics/report/campaign_stat/',\n new_report_stat: '/api/v3/i18n/statistics/report/campaign_stat/',\n download_trail_url: '/api/v2/i18n/statistics/report/campaign_stat/',\n checkCampaign: '/api/v3/i18n/perf/campaign/check/',\n new_download_trail_url: '/api/v3/i18n/statistics/report/campaign_stat/',\n\n audience_dim_filter: '/api/v2/i18n/statistics/audience/dims_filter/',\n\n updateName: '/api/v3/i18n/overture/campaign/batch_update/name/',\n checkName: '/api/v3/i18n/overture/campaign/batch_update/name/check/',\n updateBudget: '/api/v3/i18n/overture/campaign/batch_update/budget/',\n checkBudget: '/api/v3/i18n/overture/campaign/batch_update/budget/check/',\n\n updatePoNumber: '/api/v3/i18n/payment/batch_po_number/',\n\n negative_keywords_list: '/api/v3/i18n/search_ads/negative_keyword/list/', // 获取否定关键词列表数据\n add_negative_keywords: '/api/v3/i18n/search_ads/negative_keyword/add/', // 新增否定关键词\n modify_negative_keywords: '/api/v3/i18n/search_ads/negative_keyword/modify/', // 编辑否定关键词\n delete_negative_keywords: '/api/v3/i18n/search_ads/negative_keyword/delete/', // 删除否定关键词\n download_negative_keywords: '/api/v3/i18n/search_ads/negative_keyword/download/', // 导出否定关键词\n campaign_list: '/api/v3/i18n/statistics/promotions/coupon/campaign/query/', // campaign list\n assign_campaign: '/api/v3/i18n/coupon/edit/',\n },\n creative: {\n delete: '/api/v2/i18n/overture/creative/update_status/',\n appInfo: '/api/v3/i18n/convert/meteor/app/',\n info: '/api/v2/i18n/perf/creative/detail/',\n new_info: '/api/v3/i18n/perf/creative/detail/',\n new_procedural_info: '/api/v3/i18n/perf/creative/procedural_detail/',\n create: '/api/v3/i18n/perf/creative/create/',\n update: '/api/v3/i18n/perf/creative/update/',\n list: '/api/v2/i18n/perf/creative/list/',\n new_list: '/api/v3/i18n/perf/creative/list/',\n suggestions: '/api/v2/i18n/perf/audit/creative/',\n update_status: '/api/v2/i18n/overture/creative/update_status/',\n verify: '/api/v3/i18n/perf/creative/check/',\n video_repeat_check: '/api/v3/i18n/rf/repeat_video_check/',\n video_generator_check: '/api/v3/i18n/material/video_generator/check/',\n video_generator_check_v2: '/ccapi/tinymovie/meta/i18n/',\n video_info: '/api/v3/i18n/material/video/old_info/',\n catalog_video_info: '/api/shopping/v1/ads_creation/catalog/video/old_info/',\n create_generic: '/api/v3/i18n/material/video_generator/create_generic/',\n video_plum: '/api/v2/i18n/perf/tool/video_plum/',\n cover_process: '/api/v2/i18n/tools/format_image_pattern/',\n music_auth: '/api/v2/i18n/perf/tool/video_music/',\n video_info_v2: '/api/v3/i18n/material/video/info/',\n // v2和v3的区别? v2获取视频信息,会根据 aadvid 做权限校验,只能获取有权限访问的视频信息\n // v3 需要使用 aadvid + tiktok视频授权码,因为此时 aadvid和授权码的关系还没有绑定\n video_info_v3: '/api/v3/i18n/material/tt_video/play_info/',\n /** 素材授权 */\n libAuthIsDefaultOn: '/api/v3/i18n/agreement/creative_authorization/',\n breakdown_report_stat: '/api/v2/i18n/statistics/promote/creative_stat/',\n new_breakdown_report_stat: '/api/v3/i18n/statistics/promote/creative_stat/',\n ttp_breakdown_report_stat: '/api/v3/ttp/statistics/promote/creative_stat/',\n breakdown_download_trail_url: '/api/v2/i18n/statistics/promote/creative_stat/',\n new_breakdown_download_trail_url: '/api/v3/i18n/statistics/promote/creative_stat/',\n breakdown_download_url: '/api/v2/i18n/statistics/data/download_stat/',\n new_breakdown_download_url: '/api/v3/i18n/statistics/data/download_stat/',\n ttp_breakdown_download_url: '/api/v3/ttp/statistics/data/download_stat/',\n statList: '/api/v2/i18n/statistics/data/creative_stat/',\n newStatList: '/api/v2/i18n/promote/creative/list/',\n newStatisticList: '/api/v3/i18n/statistics/creative/list/',\n requiredStatisticList: '/api/v3/i18n/statistics/detail/video_info/', // campaign_creative/list列表页投前指标按需请求video_info\n download_url: '/api/v2/i18n/statistics/data/download_stat/',\n new_promote_download_url: '/api/v3/i18n/statistics/data/download_stat/',\n ttp_promote_download_url: '/api/v3/ttp/statistics/data/download_stat/',\n new_download_url: '/api/v2/i18n/promote/task_query/',\n new_statistic_download_url: '/api/v3/i18n/statistics/task_query/',\n list_from_ad: '/api/v2/i18n/statistics/data/ad_creative_detail/',\n report_stat: '/api/v2/i18n/statistics/report/creative_stat/',\n new_report_stat: '/api/v3/i18n/statistics/report/creative_stat/',\n download_trail_url: '/api/v2/i18n/statistics/report/creative_stat/',\n new_download_trail_url: '/api/v3/i18n/statistics/report/creative_stat/',\n leadAdsForm: '/api/v3/i18n/lead_gen/pages/',\n protocalQuery: '/api/v3/i18n/agreement/lead_gen/query/',\n leadAdsExport: '/api/v3/i18n/statistics/lead/export/create/',\n leadAdsExportDownload: '/api/v3/i18n/statistics/lead/export/download/',\n leadAdsExportDownloadVa: '//ads-va.tiktok.com/api/v3/i18n/statistics/lead/export/download/',\n leadAdsProtocalSign: '/api/v3/i18n/agreement/lead_gen/sign/',\n getLeadAdsFormDetail: '/api/v3/i18n/lead_gen/page_detail/',\n quick_optimization_tools: '/video_kit/quick_optimization',\n optimizeGiveVideoTwo: '/video_kit/optimize-creative-materials', // 赠送视频2.0iframe的URL\n quick_optimization_lite: '/video_kit/quick_optimization_lite',\n precheck: '/api/v3/i18n/material/audit/machine_audit/', // 素材预校验\n batchClipImage: '/api/v3/i18n/material/image/cut/',\n smart_text_tools: '/iframe_pages/smart_text',\n smart_translation_tools: 'https://ads.tiktok.com/iframe_pages/smart_text/translation',\n creative_tools_choose: '/video_kit/choose', // 创意工具入口\n creative_tools_video_editor: '/video_kit/editor', // 创意工具 - 视频编辑器\n front_creative_tool: '/creative/quick_generation',\n getVideoCoverUrisByVids: '/api/v3/i18n/material/video/get_cover_uri/', // 通过vid 批量获取视频封面 URI\n fetchVideoCopyright: '/api/v3/i18n/material/video/copyright/', // 获取视频版权信息\n captureImagesFromVideo: '/api/v3/i18n/material/video/get_video_posters/', // 获取视频封面新接口\n fetchVideoLisFromLibrary: '/api/v3/i18n/creative_platform/video/list/', // 获取当前广告主素材库中所有的视频\n storefrontPageDetail: '/api/v3/i18n/dpa/storefronts_page/detail/',\n protocolQuery: '/api/v3/i18n/agreement/general_query/',\n protocolSign: '/api/v3/i18n/agreement/general_sign/',\n entryNotification: '/creative_tool_server/global/notice',\n leadConnectorAuth: '/lead_connector/api/connection/get/', // 获取 lead ads connector 账号绑定状态\n leadRedirect: '/lead_connector/api/service_provider/', // 根据 page_id 获取三方跳转链接\n getPositionFormatList: '/api/v3/i18n/manager/inventory_flow/get_valid_inventory_flow/', // 获取地域定向下所支持的版位\n\n // CTA文案优选\n get_cta_recommend_list: '/api/v3/i18n/advanced_creative/asset_recommend/', // 获取推荐CTA列表\n save_cta_optimized_list: '/api/v3/i18n/advanced_creative/portfolio/create/', // 保存CTA智能优选的CTA列表\n get_cta_optimized_detail: '/api/v3/i18n/advanced_creative/portfolio/detail/', // 获取CTA智能优选CTA列表\n copy_cta_optimized_id: '/api/v3/i18n/advanced_creative/portfolio/copy/', // 复制智能优选集选择结果\n fetch_hot_music_list: '/creative_tool_server/music/get_recommend/', // 获取热门音乐列表\n check_video_volume: '/creative_tool_server/music/check_volume/', // 检测视频是否有声音\n app_data: '/api/v3/i18n/perf/tool/app_preview/', // 获取app的星级和评分数信息\n challengeAudit: '/api/v3/i18n/material/audit/challenge_audit/', // 非商业挑战赛标识校验\n urlPrecheck: '/api/v3/i18n/material/audit/machine_audit/urls/', // url预校验\n realTimePrecheck: '/api/v3/i18n/material/audit/machine_audit/realtime/',\n get_playable_info_by_url: '/api/v3/i18n/material/playable/info/', // 根据playable_url获取playable信息\n create_additional_creative_customized_image_card: '/api/v3/i18n/advanced_creative/card/create/', // 创建自定义图片卡片附加创意\n get_additional_creative_card_info: '/api/v3/i18n/advanced_creative/card/detail/', // 获取附加创意卡片信息\n validate_promote_music: '/api/v3/i18n/perf/tool/validate_promote_music/', // 校验视频音乐版权\n get_additional_creative_page_info: '/api/v3/i18n/advanced_creative/custom_instant_page/detail/', // 获取轻落地页信息\n get_additional_creative_engagement_info: creative_id => `/portfolio/query/${creative_id}`, // 获取附加创意信息\n get_additional_creative_info: creative_id => `/portfolio/query/preview/${creative_id}`, // 获取附加创意和平台联动的字段信息(title, 目标页)\n // identity\n identity_list: '/api/v3/i18n/identity/list/', // 获取Identity列表\n identity_list_v2: '/api/v3/i18n/identity/list_v2/',\n identity_save: '/api/v3/i18n/identity/save/', // 新增identity账号\n get_identity_info: '/api/v3/i18n/identity/info/', // 获取identity账号信息详情\n native_video_list: '/api/v3/i18n/material/tt_native_video/list/', // 获取ttba账户/单独授权post的tt账号下的post视频列表\n fetch_video_render_result_by_uids_batch: '/creative_tool_server/task/batch_check', // 通过uid批量获取视频渲染信息\n creative_video_render_task_retry: '/creative_tool_server/task/retry', // 通过task id批量获取视频渲染信息\n batch_change_lib_video_name_by_vid: '/creative_tool_server/material/video/name', // 通过vid批量改视频名称\n fetch_video_bgm_supplement: '/api/v2/i18n/material/video/supplement/', // 获取视频背景音乐所支持的版位(system_tag)\n get_country_number_codes_by_char_codes: '/api/v3/i18n/perf/tool/country_codes/', // 通过国家二字码获取国家数字代码,\n get_custom_instant_page_template_list: '/api/v3/i18n/advanced_creative/instant_page_template/list/',\n // 获取identity的available_status。-1表示解绑or封号(区别于get_identity_info:不使用userid作为查询条件,只校验identity,和当前user无关 )\n getIdentityStatus: '/api/v3/i18n/identity/available_status/',\n\n // 站内导流\n getOpenUrl: '/api/v3/i18n/rf/get_open_url/', // 获取直达链接\n getStickerInfo: '/api/v3/i18n/rf/get_sticker_info/', // 获取贴纸开拍页详情\n bsThridPartySupportCountries: '/api/v3/i18n/manager/country/list/brand_safety_post_bid/',\n brandSafetyAuthority: '/api/v3/i18n/perf/tool/validate_postbid_partner/',\n playable_ads_uploader_url: '/creative/playable_tool',\n playable_ads_preview_tool_url: '/creative/playable_tool/preview',\n uploadVideoPrecheckFix: '/creative_tool_server/task/create_new',\n uploadVideoPrecheckFixCheck: '/creative_tool_server/autofix/check/',\n updateName: '/api/v3/i18n/overture/creative/batch_update/name/',\n get_origin_video_info: '/creative_tool_server/global/get_video_info', // 获取视频转码原始信息\n fillImageByBlur: '/api/v3/i18n/material/image/fill/', // 使用模糊填充图片\n checkImageIsCover: '/api/v3/i18n/material/image/check_video_cover/', // 校验图片是否是某个创意的封面\n app_profile_instant_page_editor: '/instant_page/editor',\n custom_instant_page_editor: '/instant_page/editor/templates',\n custom_instant_page_from_library: '/instant_page/editor/library',\n attachment_creative_editor: '/creative/interactive_add_ons/add_ons',\n // smartText\n triggerTitleBlur: '/portfolio/card/derive/trigger',\n\n // title 标题建议\n smartTitleSuggestion: '/smart_cut_server/api/video/title_suggestion', // 标题建议\n trackTitleSuggestion: '/smart_cut_server/api/video/title_suggestion_event_tracking', // 标题建议埋点接口\n trackSubmitTitleSuggestion: '/smart_cut_server/api/video/title_generation_event_tracking',\n attachmentAsset: '/creative/interactive_add_ons/assets', // 附加创意资产化 iframe src\n },\n transaction: {\n // 交易列表\n list: '/api/v2/i18n/statistics/transaction/records/query/',\n newList: '/api/v3/i18n/statistics/transaction/records/query/',\n export: '/api/v2/i18n/statistics/transaction/records/export/',\n newExport: '/api/v3/i18n/statistics/transaction/records/export/',\n download: '/api/v2/i18n/statistics/transaction/download/',\n newDownLoad: '/api/v3/i18n/statistics/transaction/download/',\n invoice: '/api/v2/i18n/statistics/transaction/invoice/download/',\n new_invoice: '/api/v3/i18n/statistics/invoice/download/',\n paymentsList: '/api/v3/i18n/statistics/v2/transaction/list/',\n costsList: '/api/v3/i18n/statistics/v2/payment/cost/list/',\n taxList: '/api/v3/i18n/statistics/v2/payment/tax/list/',\n },\n account: {\n contact_info: '/api/v3/i18n/account/contact_info/',\n passport: '/passport/web/account/info/',\n permission: '/api/v4/i18n/account/permission/detail/',\n extra: '/api/v3/i18n/account/extra/',\n billing_info: '/api/v3/i18n/account/billing_info/',\n all_timezone_list: '/api/v2/i18n/perf/tool/timezone/',\n info: '/api/v4/i18n/advertiser/info/',\n ad_info: '/api/v2/i18n/overture/index/ad_info/',\n white_list: '/api/v3/i18n/account/features_enabled/',\n notification_msg: '/api/v2/i18n/notification/banner_msg/', // 横幅通知\n advertiser_chart: '/api/v2/i18n/overture/index/advertiser_chart/',\n advertiser_avatar: '/api/v2/i18n/overture/account/advertiser_avatar/',\n /* 通知中心 start */\n get_new_msg: '/api/v2/i18n/notification/get_new_msg/', // 获取新消息\n get_notification: '/api/v2/i18n/notification/list/', // 分页获取所有消息\n get_notification_conf: '/api/v2/i18n/notification/config/', // 获取通知订阅配置\n post_notification_conf: '/api/v2/i18n/notification/config/', // 提交通知订阅配置\n /* 通知中心 end */\n logout: getLogoutUrl(),\n oauth: '/oauth/callback/',\n accountList: '/api/v2/i18n/account/account_switch_list/',\n accountUpdate: '/api/v3/i18n/account/info/',\n firstPostAccountInfo: '/api/v1/self-serve/adv-account/update_account_first_time/', // 自助首次提交资质\n getGeoByCode: '/api/v2/i18n/toponym/',\n getGeoByCodeNew: '/api/v1/self-serve/geography/', // 地理中台 获取国家地理信息\n getReginNameByCode: '/api/v2/i18n/toponym/info/', // toolbox 获取国家地理信息\n cancel_account: '/api/v2/i18n/advertiser/account/disable/', // 销户\n // 校验adv name 是否存在\n name_exist: '/api/v2/i18n/account/name/exist/',\n check_tax_vat: '/api/v3/i18n/account/vat/check/',\n punish_info: '/api/v3/i18n/account/punish_info/', // 获取广告主惩罚消息\n\n get_industry_nations: '/api/v3/i18n/industry/nations/all/', // 获取国家信息列表\n get_delivery_nations: '/api/v3/i18n/delivery_qualification/nations/', // 获取资质审核国家信息列表\n get_industry_list: '/api/v3/i18n/industry/industries/all/', // 获取行业信息列表\n get_industry_rules_by_nation: '/api/v3/i18n/industry/rules/delivery/', // 根据国家,行业获取资质列表\n get_industry_rules_by_name: '/api/v3/i18n/industry/rules/name/', // 根据资质名称模糊搜索\n get_account_rules: '/api/v3/i18n/industry/rules/overview/', // 获取账号下的资质列表\n post_industry_rule_verify: '/api/v3/i18n/industry/rule/verify/', // 资质送审\n post_industry_rule_delete: '/api/v3/i18n/industry/rule/delete/', // 资质包删除\n dataPrivacy: '/api/v3/i18n/audience/dmp/setting/', // data-privacy\n verificationStatus: '/api/v3/i18n/account/advertiser/tax_value/', // 税务审核状态\n sharkPayment: '/api/v3/i18n/shark/event/', // 风控审核后付费\n IOSDialogDone: '/api/v3/i18n/agreement/general_sign/', // 看过iOS14弹窗的写接口\n dedicatedTime: '/api/v3/i18n/perf/tool/key_time/', // 获取iOS14政策时间\n getQualificationList: '/api/v3/i18n/delivery_qualification/overview/', // 获取资质列表\n deleteQualification: '/api/v3/i18n/delivery_qualification/delete/', // 删除资质列表\n postMedicineQualification: '/api/v3/i18n/delivery_qualification/pharmacy/submit/', // 提交药品资质\n getQualificationUrls: '/api/v3/i18n/delivery_qualification/ticket_url/', // 批量通过secret_file_id获取ticket_url\n getRecordCompanies: '/api/v3/i18n/delivery_qualification/music/record_companies/', // 获取歌曲label/record_company信息\n postMusicQualification: '/api/v3/i18n/delivery_qualification/music/submit/', // 提交音乐资质\n userCustomerName: '/api/v3/i18n/delivery_qualification/music/customer_name/', // 获取广告主customer name字段\n upgradeInfo: '/api/v3/i18n/account/customer/upgrade_info/', // 获取自助客户升级直客客户的状态\n bcOwnDetails: '/api/v2/bm/account/org/id/',\n checkIptTextLanguage: '/api/v3/i18n/material/audit/input_language_audit/', // 根据传入的内容判断文案的语言\n checkHasNeedPostInvoiceInfo: '/api/v3/i18n/account/check_post_fulfill_country/', // 判断是否自助资质弹窗是否有后置填写的内容\n\n /** ttp 相关 */\n getTTPFlag: '/api/v3/i18n/optimizer/audience/region_info/', // 获取打标情况\n common_tcc: '/api/v1/self-serve/adv-account/get_tcc/', // 自助 tcc,https://bytedance.feishu.cn/wiki/wikcnQy8BZea1dHdNuwVE7e3lnd\n PONumber: '/api/v3/i18n/payment/po_number/', // 查询/更新 po number\n // 判断是否允许变更名字 https://bytedance.feishu.cn/wiki/wikcnG2BncW23Qz4NeN2vj8hFfe\n canChangeBusinessName: '/api/v3/i18n/account/advertiser/is_company_update_allowed/',\n // 查看是否绑定了 ttcm https://bytedance.feishu.cn/wiki/wikcnsHe1tbKceSktZ5rel6ZZhh#doxcnSG0qwSs8UI4cwjt26vJlah\n checkTTCMAccount: '/api/v2/bm/ttam/related/ttcm/',\n },\n bc: {\n bc_manage_list: '/api/v3/i18n/account/bc/manage/',\n account_remove_bc: '/api/v3/i18n/account/bc/remove/',\n billing_info: '/api/v3/i18n/account/billing_info/',\n info: '/api/v3/i18n/account/bc_info/',\n billing_config: '/api/v3/i18n/account/billing_config/',\n },\n payment: {\n balance: '/api/v3/i18n/statistics/transaction/balance/query/', // payment统一余额查询\n rf_balance: '/api/v3/i18n/payment/balance/', // rf专用保留接口,total_balance_valid\n\n // 后付款\n cardInfo: '/api/v3/i18n/payment/card/info/', // 获取绑卡信息\n credit: '/api/v3/i18n/payment/credit/info/', // 获取信用卡账期信息\n charge_info: '/api/v3/i18n/charge/payment/info/', // 是否有支付权限\n statistics_charge_info: '/api/v3/i18n/statistics/payment/info/', // 统计支付接口\n ready: '/api/v3/i18n/payment/ready/',\n\n // 授信相关\n get_creditline_quota: '/api/v2/i18n/charge/credit/line/quota/',\n increase_amt_balance: '/api/v2/i18n/charge/credit/line/recharge/',\n get_decrease_state: '/api/v2/i18n/charge/credit/line/decrease/',\n decrease_amt_balance: '/api/v2/i18n/charge/credit/line/decrease/',\n apply_creditline: '/api/v3/i18n/payment/credit/apply/',\n\n // 先付款\n getChargeTax: '/api/v3/i18n/payment/trial_tax/', // 充值税费试算\n verifyReloadAmount: '/api/v3/i18n/payment/amount/check/',\n threshold_info: '/api/v3/i18n/payment/autopay/threshold/',\n threshold_switch: '/api/v3/i18n/payment/autopay/threshold/switch/',\n // 充值赠款明细\n paymentBalance: '/api/v3/i18n/payment/balance/',\n getBindLink: '/api/v3/i18n/payment/card/', // 获取绑卡地址\n subPrePay: '/api/v3/i18n/payment/redirect/', // 预付款支付\n getPayNowLink: '/api/v3/i18n/payment/pay_now/',\n paymentChange: '/api/v3/i18n/payment/autopay/change/', // 是否可以转移为autopay 支付方式\n canApplyMonthlyInvoiceForSelfServe: '/api/v3/i18n/payment/can_transfer_creditline/', // 自助是否开放 monthly invoice 支付方式\n checkHistoryBill: '/api/v3/i18n/payment/history/credit/info/', // 查询历史账单\n billing_share_banner: '/api/v2/bm/ttam/billing/ttam_banner/',\n stop_billing_setting: '/api/v2/bm/account/billing/setting/stop/',\n get_billing_setting: '/api/v2/bm/account/billing/setting/',\n get_billing_share: '/api/v2/bm/account/billing/sharing/',\n set_billing_setting: '/api/v2/bm/account/billing/setting/setup/',\n get_billing_owner: '/api/v2/bm/ttam/owner/',\n get_change_pay_method: '/api/v3/i18n/payment/change_pay_method/',\n },\n reporting: {\n save_reporting: '/api/v2/i18n/statistics/reporting/template/',\n new_save_reporting: '/api/v3/i18n/statistics/reporting/template/',\n new_run_reporting_trail_url: '/api/v3/i18n/statistics/reporting/run_template/',\n new_run_reporting_download_url: '/api/v3/i18n/statistics/reporting/download_report/',\n reporting_info: '/api/v2/i18n/statistics/reporting/template_info/',\n new_reporting_info: '/api/v3/i18n/statistics/reporting/template_info/',\n delete_reporting: '/api/v2/i18n/statistics/reporting/delete_template/',\n new_delete_reporting: '/api/v3/i18n/statistics/reporting/delete_template/',\n get_templates: '/api/v2/i18n/statistics/reporting/get_templates/',\n new_get_templates: '/api/v3/i18n/statistics/reporting/get_templates/',\n download: '/api/v2/i18n/statistics/reporting/download/',\n new_download: '/api/v3/i18n/statistics/reporting/download/',\n log_info: '/api/v2/i18n/statistics/reporting/log_info/',\n new_log_info: '/api/v3/i18n/statistics/reporting/log_info/',\n // Reporting 模板最近下载时间更新接口\n template_update: '/api/v3/i18n/statistics/reporting/template_update/',\n },\n simplifiedSmb: {\n adgroup: {\n get_user_draft_checked: '/api/v3/i18n/user_draft/get_checked/',\n },\n creative: {\n check_and_update_user_draft: '/api/v3/i18n/user_draft/check_save/?req_src=pc_lite&draft_type=ad_creative',\n },\n all: {\n submit_saved: '/api/v3/i18n/user_draft/submit_saved/?req_src=pc_lite',\n },\n },\n ad_category: '/api/v2/i18n/overture/api/get_ad_category/',\n new_ad_category: '/api/v2/i18n/perf/tool/ad_category/',\n areasList: '/api/v3/i18n/perf/tool/areas_v2/',\n imageUploadUrl: '/api/v3/i18n/tools/upload_image/',\n imageUploadUrlSecret: '/api/v3/i18n/account/upload_image_secret/',\n imageUploadUrlLibrary: '/api/v2/i18n/material/image/upload/',\n enclosureUploadUrl: '/api/v2/i18n/notification/enclosure/upload/',\n enclosureDownload: '/api/v2/i18n/notification/enclosure/download/',\n interestOption: '/api/v3/i18n/optimizer/tool/ad_interest_v2/',\n manageSysMsg: '/api/v2/i18n/notification/system_msg/',\n splashUploadUrl: '/api/v2/i18n/tools/upload_splash/',\n videoCovers: '/api/v2/i18n/tools/video/get_video_cover_url/',\n create_ad: '/api/v2/i18n/advertiser/create/',\n qualification: '/api/v2/i18n/advertiser/qualification/',\n captcha_url: '/api/v2/i18n/captcha/',\n captcha_eamil: '/api/v2/i18n/email_captcha/',\n password_reset: '/api/v2/i18n/password/reset/',\n videoUpload: '/api/v3/i18n/material/video/create/',\n videoUploadKey: '/api/v2/i18n/get_video_upload_key/',\n app_info: '/api/v2/i18n/app_info/get/',\n tea_url: '/api/v2/i18n/tea/',\n bpmRegister: '/api/v2/i18n/bpm/register/',\n industryList: '/api/v2/i18n/advertiser/industry/new_list/',\n selfIndustryList: '/api/v3/i18n/account/industry/self_service_simplified_list/',\n openapi_adver_info: '/api/v2/i18n/openapi/api/user/context/',\n openapi_sign: '/api/v2/i18n/sign/',\n toolbox: {\n logs: '/api/v2/i18n/overture/tool/opt_log/data/',\n convert_create: '/api/v2/i18n/adv_convert/',\n convert_update_status: '/api/v2/i18n/adv_convert_update/status/',\n convert_edit: convertId => `/api/v2/i18n/adv_convert/${convertId}/`,\n conversionUpdate: '/api/v2/i18n/adv_convert_update/part/',\n partnerList: '/api/v2/i18n/track_partner/list/',\n appInfo: '/api/v2/i18n/app_info/get/',\n appInfoUpdate: '/api/v2/i18n/adv_convert_update/app_info/',\n },\n // 组件重构-新接口\n logs_refactor: {\n logs_info: '/api/v3/i18n/opt_log/action_issue/',\n logs_list: '/api/v3/i18n/opt_log/list/',\n // 不带task_id 第一次尝试下载的URL\n download_get_id: '/api/v3/i18n/opt_log/download_task/',\n // 附带task_id 不断轮询下载的URL\n task_download: '/api/v3/i18n/opt_log/download/',\n // dashboard入口的log日志接口迁移\n dashboard_log_list: '/api/v3/i18n/opt_log/data/',\n },\n dmp: '/api/v3/i18n/perf/tool/pushed_cids/',\n\n custom_content: {\n create: '/api/v2/i18n/statistics/custom/create/',\n newCreate: '/api/v3/i18n/statistics/custom/create/',\n list: '/api/v2/i18n/statistics/custom/list/',\n newList: '/api/v3/i18n/statistics/custom/list/',\n detail: '/api/v2/i18n/statistics/custom/detail/',\n newDetail: '/api/v3/i18n/statistics/custom/detail/',\n delete: '/api/v2/i18n/statistics/custom/delete/',\n newDelete: '/api/v3/i18n/statistics/custom/delete/',\n update: '/api/v2/i18n/statistics/custom/update/',\n newUpdate: '/api/v3/i18n/statistics/custom/update/',\n permission: '/api/v2/i18n/user/permission/',\n },\n library: {\n playable_list: '/api/v3/i18n/material/playable/list/',\n new_playable_list: '/api/v3/i18n/statistics/playable/list/',\n playable_export_create: '/api/v3/i18n/statistics/playable/export/create/',\n playable_export_download: '/api/v3/i18n/statistics/playable/export/download/',\n video_list: '/api/v2/i18n/material/video/list/',\n image_list: '/api/v2/i18n/material/image/list/',\n material_list: '/api/v3/i18n/statistics/material/list/',\n native_list: '/api/v3/i18n/material/native_video/list/',\n tt_user_list: '/api/v3/i18n/material/tt_user_video/list/', // 获取tt用户的视频列表\n export_create: '/api/v3/i18n/statistics/material/export/create/',\n export_download: '/api/v3/i18n/statistics/material/export/download/',\n\n playable_validate: '/api/v3/i18n/material/playable/validate/',\n playable_validate_result: '/api/v3/i18n/material/playable/validate/result/',\n playable_create: '/api/v2/i18n/material/playable/create/',\n image_create: '/api/v2/i18n/material/image/create/',\n native_create: '/api/v3/i18n/material/tt_video/authorize/',\n get_native_info: '/api/v3/i18n/material/tt_video/info/',\n delete_native_info: '/api/v3/i18n/material/tt_video/delete/',\n double_authorize_native_info: '/api/v3/i18n/material/tt_video/double_authorize/',\n\n playable_delete: '/api/v3/i18n/material/playable/delete/',\n image_delete: '/api/v3/i18n/material/image/delete/',\n video_delete: '/api/v3/i18n/material/video/delete/',\n\n playable_update_name: '/api/v3/i18n/material/playable/update/',\n image_update_name: '/api/v3/i18n/material/image/name/',\n video_update_name: '/api/v3/i18n/material/video/name/',\n\n check_name_exist: '/api/v3/i18n/material/tools/check_name_exist/', // 检查素材名称是否重名\n },\n notify: {\n // 新版通知中心接口\n notify_list: '/api/v3/i18n/notification/list/all/',\n click: '/api/v2/i18n/notification/click/',\n read: '/api/v3/i18n/notification/status/', // 消息已读\n config: '/api/v3/i18n/notification/subscribe/', // 订阅配置\n categoryInfo: '/api/v3/i18n/notification/category/info/', // 未读消息数\n readAll: '/api/v3/i18n/notification/read_all/', // 全部标为已读\n getOne: '/api/v3/i18n/notification/get_one_new/', // 获取一条消息的详细信息\n },\n help: {\n // 帮助中心接口\n article: '//cognition.byteoversea.com/api/knowledge/detail/',\n },\n\n // 客增系统接口\n crm: {\n customer_info: '/api/v2/i18n/crm/customer_info/',\n register: '/api/v2/i18n/crm/register/',\n },\n\n whale_token: '/api/v2/i18n/whale_token/',\n lite_open_check: '/api/v2/i18n/wap_lite/account/lite_open_check/',\n // DPA 商品库相关\n catalogue: {\n dpaIndex: '/api/v3/i18n/dpa/',\n getAll: '/api/shopping/v1/ads_creation/catalog/catalogs_for_uid_and_adv/',\n // 现在后端会在接口 url 上拼接商品库 id,需要特殊处理一下,后面使用下面规范统一处理\n catalogInfo: '/api/v3/i18n/dpa/:catalogId/',\n lexicon: platformId => `/api/v3/i18n/dpa/${platformId}/lexicon/`,\n getVideoPackages: platformId => `/api/v3/i18n/dpa/${platformId}/video_package/`,\n getDvgMeta: '/creative_tool_server/kylin/getTemplatesForDPA',\n getPreviewMeta: '/creative_tool_server/dpa/getPreviewMeta',\n getProduct: platformId => `/api/v3/i18n/dpa/${platformId}/product/`,\n getProductList: platformId => `/api/v3/i18n/dpa/${platformId}/product/query/`,\n advancedGetList: platformId => `/api/v3/i18n/dpa/${platformId}/product/query/condition/`,\n getAvailableLocation: '/api/v3/i18n/dpa/available_location/',\n getPreviewData: '/instant_page/api/v1/get_editor_preview_data/',\n checkProductTargetUrl: catalogueId => `/api/v3/i18n/dpa/${catalogueId}/product/check/`,\n deeplinkCheck: id => `/api/v3/i18n/dpa/${id}/deeplink_check/`,\n getVGTemplate: '/creative_tool_server/dpa/getTemplate', // 根据tid获取VG模板\n checkAuthorized: '/api/v3/i18n/dpa/:catalogId/authorized/check/',\n checkAvailable: '/api/shopping/v1/catalog/',\n getProductInfo: '/api/shopping/v1/ads_creation/catalog/product/',\n //\n queryByCondition: '/api/shopping/v1/ads_creation/catalog/product/query_by_condition/',\n productSetList: '/api/shopping/v1/ads_creation/catalog/product_set_list/',\n },\n tanblock: {\n // 穿山甲屏蔽相关接口\n create: '/api/v2/i18n/blocked_app/add/',\n list: '/api/v2/i18n/blocked_app/list/',\n delete: '/api/v2/i18n/blocked_app/del/',\n update: '/api/v2/i18n/blocked_app/update/',\n download: '/api/v2/i18n/blocked_app/download/',\n upload: '/api/v2/i18n/blocked_app/upload/',\n idCode: '/api/v2/i18n/blocked_app/id/',\n },\n splittest: {\n detail: '/api/v3/i18n/perf/campaign/detail/',\n save: '/api/v3/i18n/split_test/meta_data/save/',\n result: '/api/v3/i18n/optimizer/split_test/result/diff/',\n adDetail: '/api/v3/i18n/perf/ad/detail/',\n metrics: '/api/v2/i18n/statistics/data/ad_stat/',\n newMetrics: '/api/v3/i18n/statistics/ad/list/',\n exclude: '/api/v3/i18n/split_test/ad/exclude/',\n total: '/api/v3/i18n/split_test/to_total/',\n optimizeGoal: '/api/v3/i18n/split_test/campaign/optimize_goal/',\n },\n user: {\n // 开户相关\n promotion: '/api/v2/i18n/advertiser/self/promotion/',\n register_v3: '/api/v3/i18n/account/self/register/', // tt_ads新接口\n selfInvite: '/api/v3/i18n/account/invitation_check/', // tt_ads新接口\n postSurvey: '/api/v3/i18n/account/agent/question/', // 提交调查问卷\n athenaInfo: '/athena/api/open/v1/platform/info/', // 获取平台 identify_key、平台下所有版块及版块中的分类\n athenaFormDetail: '/athena/api/open/v1/form/detail/', // 获取对应的雅典娜表单格式\n athenaOrderCreate: '/athena/api/open/v1/order/submit/', // 工单提交\n leadCreate: '/i18n_node/lead/create/', // 留资\n dailycap: '/api/v3/i18n/account/quota/', // 自助判断是否上限\n },\n plan_download: '/api/v3/i18n/helper/download/launch/',\n plan_check: '/api/v3/i18n/helper/download/check/',\n contract: {\n // 合同相关\n getShownContract: '/api/v2/i18n/advertiser/controls/',\n assignDsa: '/api/v2/i18n/advertiser/dsa_sign/',\n getAssignDsaInfo: '/api/v3/i18n/account/dsa_sign_info/',\n },\n smb_support: {\n get_payment_status: '/api/v3/i18n/payment/ready/', // 查看一个广告主是否支付ready(预付费广告主有至少一条充值记录表示支付ready;后付费广告主有绑卡至少一张表示支付ready)\n creation_mode: '/api/v3/i18n/self_serve_customer/status/creation_mode/', // 自助账号选择的创编模式\n statusNotification: '/api/v3/i18n/self_serve_customer/status/pop_up/', // 获取自助广告主各种弹窗状态\n },\n // 关户&退款相关\n close: {\n refund_status: '/api/v3/i18n/account/refund_status/', // 退款状态\n balance: '/api/v3/i18n/account/refund_balanced/', // 退款金额\n submit: '/api/v3/i18n/account/close/', // 发起退款&关户\n check_all_ads_off: '/api/v3/i18n/account/check_all_ads_off/', // check if all ads campaigns are off within last 3 hrs for postpay account\n bill_status: '/api/v3/i18n/account/bill_status/', // get bill status for postpay account\n },\n libra: {\n abtest: '/api/v3/i18n/abtest/get_ab_version/', // libra abtest\n abtestByTraceSid: '/api/v3/i18n/abtest/get_ab_version_by_trace_sid/', // libra abtest divide by trace sid\n },\n rfuSuggestion: {\n getSuggestions: '/api/v3/i18n/optimizer/universal_recommend/suggestion/',\n abtest: '/api/v3/i18n/optimizer/tool/abtest/', // rfu adtest接口\n },\n // 新手引导\n tutorial: {\n get_status: '/api/v3/i18n/tutorial/get_status/',\n update_status: '/api/v3/i18n/tutorial/update_status/',\n email_touch: '/api/v3/i18n/tutorial/email_touch/',\n },\n // 计划诊断\n inspect: {\n diagnosisNobid: '/api/v3/i18n/overture/ad/update/nobid_status/', // nobid 切换接口\n diagnosisConsumption: '/api/v3/i18n/optimizer/diagnosis/v2/consumption/', // 诊断建议中获取消耗转化统计数据的接口\n diagnosisActionHistory: '/api/v3/i18n/optimizer/diagnosis/v2/action/',\n reportDiagnosisAction: '/api/v3/i18n/optimizer/diagnosis/v2/report/',\n diagnosisSuggestion: '/api/v3/i18n/optimizer/diagnosis/v2/suggestion/',\n diagnosisSuggestionBid: '/api/v3/i18n/optimizer/diagnosis/v2/suggest_bid/',\n diagnosisSuggestionBudget: '/api/v3/i18n/optimizer/diagnosis/v2/suggest_budget/',\n lastDate: '/api/v3/i18n/inspect/latest/',\n funnel: '/api/v3/i18n/inspect/funnel/',\n participating: '/api/v3/i18n/inspect/participating/',\n targeting: '/api/v3/i18n/inspect/targeting/',\n auction: '/api/v3/i18n/inspect/auction/',\n ad: '/api/v3/i18n/inspect/ad/',\n overall: '/api/v3/i18n/optimizer/diagnosis/account/', // smb诊断card接口\n editBid: '/api/v3/i18n/overture/ad/batch_update/bid/', // 批量修改bid\n smbReport: '/api/v3/i18n/optimizer/diagnosis/account/report/',\n smbCheck: '/api/v3/i18n/optimizer/diagnosis/account/report/check/',\n diagnosisLibra: '/api/v3/i18n/optimizer/diagnosis/account/abtest/', // 账户 libra 接口 —— PM 刘雨婷\n diagnosisLibraV2: '/api/v3/i18n/optimizer/diagnosis/v2/abtest/', // suggetion libra接口 —— PM 张萌\n },\n // 赠款系统\n promotion_coupon: {\n code_recharge: '/api/v3/i18n/activity/coupon_code_recharge/', // 优惠券核销\n coupon_list: '/api/v3/i18n/activity/activity_info_list/', // 优惠券查询\n deduction_voucher_list: '/api/v3/i18n/statistics/promotions/coupon/lists/', // 抵用券查询\n ad_credits: '/api/v3/i18n/statistics/transaction/balance/ad_credits/', // 广告赠款\n standard_coupons: '/api/v3/i18n/statistics/promotions/standard_coupon/lists/', // 直充券\n },\n // 评论列表相关\n comment: {\n getCommentList: '/api/v3/i18n/comment/query/', // 获取评论列表\n getCommentListNew: '/api/v3/i18n/comment/query_v2/', // 获取评论列表\n updateCommentStatus: '/api/v3/i18n/comment/process/', // 更新评论状态\n getCommentInfoById: '/api/v3/i18n/comment/reference/', // 根据id获取评论信息\n getBlockedWordsList: '/api/v3/i18n/blocked_word/query/', // 查询当前屏蔽的关键词\n deleteBlockedWords: '/api/v3/i18n/blocked_word/delete/', // 删除屏蔽词\n checkBlockedWordsExist: '/api/v3/i18n/blocked_word/pre_check/', // 关键词重名检查\n updateBlockedWord: '/api/v3/i18n/blocked_word/update/', // 更新关键词\n addBlockedWords: '/api/v3/i18n/blocked_word/create/', // 添加关键词\n exportCreateCommentList: '/api/v3/i18n/comment/export/create/', // 生成评论列表文件\n exportDownloadCommentList: '/api/v3/i18n/comment/export/download/', // 下载评论列表报表\n exportCreateBlockedWords: '/api/v3/i18n/blocked_word/export/create/', // 导出关键词\n exportDownloadBlockedWords: '/api/v3/i18n/blocked_word/export/download/', // 下载关键词\n getAdListByKeyword: '/api/v3/i18n/comment/ad/list/', // 获取广告组下拉列表\n getCommentCreate: '/api/v3/i18n/comment/ad/stats/', // 获取广告的创建时间\n getCreativeByKeyword: '/api/v3/i18n/comment/creative/list/', // 获取广告下拉列表\n getTopComment: '/api/v3/i18n/comment/top/', // 获取置顶评论\n setTopComment: '/api/v3/i18n/comment/pin/', // 设置置顶评论\n replyComment: '/api/v3/i18n/comment/reply/', // 回复评论\n deleteComment: '/api/v3/i18n/comment/delete/', // 删除评论\n getCommentUserInfo: '/api/v3/i18n/identity/user_info/', // 获取当前广告主对应ad identity信息\n getCommonWords: '/api/v3/i18n/common_word/query/', // 获取常用语列表\n exportCreateCommonWords: '/api/v3/i18n/common_word/export/create/', // 导出常用语\n exportDownloadCommonWords: '/api/v3/i18n/common_word/export/download/', // 下载常用语\n deleteCommonWords: '/api/v3/i18n/common_word/delete/', // 删除常用语\n checkCommonWordsExist: '/api/v3/i18n/common_word/pre_check/', // 常用语重名检查\n addCommonWords: '/api/v3/i18n/common_word/create/', // 新增常用语\n updateCommonWords: '/api/v3/i18n/common_word/update/', // 编辑常用语\n updateLikeComments: '/api/v3/i18n/comment/action/', // 点赞/取消点赞评论\n },\n // campaign planer\n efficientTool: {\n createPlan: '/api/v3/i18n/optimizer/campaign_planner/plan/create/',\n getPlan: '/api/v3/i18n/optimizer/campaign_planner/plan/query/',\n createVersion: '/api/v3/i18n/optimizer/campaign_planner/version/create/',\n updateVersion: '/api/v3/i18n/optimizer/campaign_planner/version/update/',\n getVersion: '/api/v3/i18n/optimizer/campaign_planner/version/query/',\n },\n // shop monetization\n shop: {\n getStore: '/api/v3/i18n/dpa/shops/',\n getStoreInfo: '/api/v3/i18n/dpa/shop_info/',\n getSpuProduct: catalogId => `/api/v3/i18n/dpa/${catalogId}/spu/search/`,\n createProductSet: catalogId => `/api/v3/i18n/dpa/${catalogId}/spu/set/`,\n getShopCount: '/api/shopping/v1/ads_creation/shop_count',\n },\n instantPage: {\n getTemplateList: '/instant_page/api/v2/template/list/',\n getTemplateInfo: '/instant_page/api/v2/template/info/',\n create: '/instant_page/api/v1/one2n/create/',\n publish: pageId => `/instant_page/api/v1/one2n/publish/${pageId}/`,\n getShopAdsPreviewData: '/instant_page/api/v1/shopping_ads/get_shop_ads_preview_data/',\n },\n // 缓存相关接口\n draft: {\n // 调用check接口会把数据存在redis,保存两个小时\n getCheckedDraft: '/api/v3/i18n/perf/draft/get_checked_data/', // 根据 fakeId 查草稿\n deleteDraft: '/api/v3/i18n/perf/draft/delete/', // 删除草稿\n },\n rf_apply: '/api/v4/i18n/brand/rf/apply_access_rf/',\n};\n","/**\n * 为什么不放在conf文件夹内?\n * 因为 conf 文件夹是 nodejs 和 browser 都共用,在conf 通过环境变量判断 prod, dev\n * 如果要判断 boe,需要在scm在注入一个环境变量,把BOE的SCM和 正式的环境分开, 目前SCM是用同一个\n */\n// 是否为BOE环境,主要在 登录注册SDK初始化区分环境用\nconst boeHosts = ['boe-ads.tiktok.com', 'boei18n-ads.byteoversea.net'];\nexport const isBOE = boeHosts.includes(window.location.host);\n","/**\n * UED 设计的一套表头列宽 常量\n * https://bytedance.feishu.cn/docs/doccnG5Ydw8egkYrBCGCWq0Arqg#Rlzqiz\n */\n\n// 表头列宽对应的规格\nexport const COLUMN_WIDTH = {\n XS: 56,\n S: 88,\n M: 120,\n L: 152,\n XL: 184,\n XXL: 216,\n};\n","export const comingSourceType = {\n CREATE_CAMPAIGN: 1,\n CREATE_AD_GROUP: 2,\n CREATE_AD: 3,\n COPY_CAMPAIGN: 4,\n COPY_AD_GROUP_TO_NEW_CAMPAIGN: 5,\n COPY_AD_GROUP_TO_EXISTED_CAMPAIGN: 6,\n COPY_AD_TO_NEW_CAMPAIGN_AD_GROUP: 7,\n COPY_AD_TO_EXISTED_CAMPAIGN_AD_GROUP: 8,\n COPY_AD_TO_EXISTED_CAMPAIGN_NEW_AD_GROUP: 9,\n BRAND_AD_BULK_COPY: 100,\n};\n","\nexport const CommonTccKey = {\n // athenaCallerOpenCountryLanguages: 'athena_caller_open_country_languages',\n};\n\n// tcc 兜底配置\nexport const getDefaultCommonTcc = () => ({\n // 智能客服 by 国家语言配置\n // [CommonTccKey.athenaCallerOpenCountryLanguages]: [],\n});\n","import _ from 'lodash';\nimport { AD_TYPE } from 'src/const/state/creative';\nimport { INVENTORY_FLOW } from 'src/const/state/inventory-type';\nimport { campaignObjectiveValue } from 'src/const/state/campaign';\n\nexport const NOT_SUPPORT_INSTANT_EXPERIENCE_THIS_INVENTORY_FLOW = {\n NOT_SUPPORT_INSTANT_PAGE: {\n value: 1,\n i18nKey: 'module_inventory_flow_not_support_instant_page_hint_in_preview',\n },\n NOT_SUPPORT_COLLECTION_ADS: {\n value: 2,\n i18nKey: 'module_inventory_flow_not_support_collection_ads_hint_in_preview',\n },\n};\n\nconst { SINGLE_VIDEO, CATALOGUE_VIDEO } = AD_TYPE;\nconst {\n AppInstall,\n Conversion,\n Traffic,\n Reach,\n VideoView,\n RF,\n RF_VV,\n RF_ENGAGEMENT,\n RF_TRAFFIC,\n RF_APPINSTALL,\n LeadAds,\n} = campaignObjectiveValue;\n\nexport const customizedAdditionalCreativeObjectiveTypes = [AppInstall, Conversion, Traffic, Reach, VideoView];\n\nconst additionalCreativeCustomizedImageCardEnableInfo = {\n objectiveType: [AppInstall, Conversion, Traffic, LeadAds, RF, RF_VV, RF_ENGAGEMENT, RF_APPINSTALL, RF_TRAFFIC],\n inventoryFlow: [INVENTORY_FLOW.TIKTOK],\n adTypes: [SINGLE_VIDEO.value],\n};\nconst additionalCreativeGameGiftCardEnableInfo = {\n objectiveType: [AppInstall, Conversion, Traffic, RF, RF_VV, RF_ENGAGEMENT, RF_APPINSTALL, RF_TRAFFIC],\n inventoryFlow: [INVENTORY_FLOW.TIKTOK],\n adTypes: [SINGLE_VIDEO.value],\n};\n// 普通instantPage\nexport const normalAdditionalInstantPageEnableInfo = {\n objectiveType: [Conversion, Traffic, RF_TRAFFIC],\n inventoryFlow: [INVENTORY_FLOW.TIKTOK],\n adTypes: [SINGLE_VIDEO.value],\n};\n// appProfile InstantPage\nexport const additionalAppProfileInstantPageEnableInfo = {\n objectiveType: [AppInstall],\n inventoryFlow: [INVENTORY_FLOW.TIKTOK],\n adTypes: [SINGLE_VIDEO.value],\n};\n\nexport const additionalInstantPageEnableInfo = {\n objectiveType: [...new Set([...normalAdditionalInstantPageEnableInfo.objectiveType, ...additionalAppProfileInstantPageEnableInfo.objectiveType])],\n inventoryFlow: [...new Set([...normalAdditionalInstantPageEnableInfo.inventoryFlow, ...additionalAppProfileInstantPageEnableInfo.inventoryFlow])],\n adTypes: [...new Set([...normalAdditionalInstantPageEnableInfo.adTypes, ...additionalAppProfileInstantPageEnableInfo.adTypes])],\n};\n\nexport const getIsCustomizedImageCardEnable = ({\n objectiveType, inventoryFlow, isUserEnable, adType,\n}) => {\n const isObjectTypeEnable = additionalCreativeCustomizedImageCardEnableInfo.objectiveType.includes(objectiveType);\n const EnableInventoryFlowList = additionalCreativeCustomizedImageCardEnableInfo.inventoryFlow;\n const isInventoryFlowEnable = _.intersection(EnableInventoryFlowList, inventoryFlow).length;\n const isAdTypeAllowed = additionalCreativeCustomizedImageCardEnableInfo.adTypes.includes(+adType);\n return isObjectTypeEnable\n && isInventoryFlowEnable\n && isAdTypeAllowed\n && isUserEnable;\n};\n\nexport const getIsGameGiftCardEnable = ({\n objectiveType, inventoryFlow, isUserEnable, adType,\n}) => {\n const isObjectTypeEnable = additionalCreativeGameGiftCardEnableInfo.objectiveType.includes(objectiveType);\n const EnableInventoryFlowList = additionalCreativeGameGiftCardEnableInfo.inventoryFlow;\n const isInventoryFlowEnable = _.intersection(EnableInventoryFlowList, inventoryFlow).length;\n const isAdTypeAllowed = additionalCreativeGameGiftCardEnableInfo.adTypes.includes(+adType);\n return isObjectTypeEnable\n && isInventoryFlowEnable\n && isAdTypeAllowed\n && isUserEnable;\n};\n// AppProfile InstantPage 是否可用\nexport const getIsAppProfileInstantPageEnable = ({\n objectiveType, inventoryFlow, isUserEnable, adType, isAppProfileInstantPageUserEnable, isIos14Creative, isInstall, isAppProfilePageOpen,\n}) => {\n const isObjectTypeEnable = additionalAppProfileInstantPageEnableInfo.objectiveType.includes(objectiveType);\n const EnableInventoryFlowList = additionalAppProfileInstantPageEnableInfo.inventoryFlow;\n const isInventoryFlowEnable = _.intersection(EnableInventoryFlowList, inventoryFlow).length;\n const isAdTypeAllowed = additionalAppProfileInstantPageEnableInfo.adTypes.includes(+adType);\n return isObjectTypeEnable\n && isInventoryFlowEnable\n && isAdTypeAllowed\n && (isUserEnable || isAppProfileInstantPageUserEnable)\n && isIos14Creative\n && isAppProfilePageOpen\n && isInstall;\n};\n// 普通InstantPage是否可用\nexport const getIsCustomInstantPageEnable = ({\n objectiveType, inventoryFlow, isUserEnable, adType, isAppDownload, isNormalInstantPageUserEnable,\n}) => {\n const isObjectTypeEnable = normalAdditionalInstantPageEnableInfo.objectiveType.includes(objectiveType);\n const EnableInventoryFlowList = normalAdditionalInstantPageEnableInfo.inventoryFlow;\n const isInventoryFlowEnable = _.intersection(EnableInventoryFlowList, inventoryFlow).length;\n const isAdTypeAllowed = normalAdditionalInstantPageEnableInfo.adTypes.includes(+adType);\n const isPromotionTypeAllowed = !isAppDownload;\n return isObjectTypeEnable\n && isInventoryFlowEnable\n && isAdTypeAllowed\n && isPromotionTypeAllowed\n && (isUserEnable || isNormalInstantPageUserEnable);\n};\n\nexport const getIsInstantPageEnable = params => getIsCustomInstantPageEnable(params)\n || getIsAppProfileInstantPageEnable(params);\n\n/**\n * 支持 Collection Ads 的创意的条件配置\n */\nexport const COLLECTION_ADS_ENABLE_CONFIG = {\n inventoryFlow: [INVENTORY_FLOW.TIKTOK],\n adTypes: [SINGLE_VIDEO.value, CATALOGUE_VIDEO.value],\n};\n","import { Scenario } from 'src/const/state/shop';\n\n// identity账户对应的类型\nexport const identityTypeMap = {\n UN_SET: 0, // 表示存量 Creative 为 UNSET\n FAKE_USER: 1, // 表示强导流账号类型,即假账号\n AUTH_CODE_USER: 2, // 表示强原生 auth_code 授权账号类型\n TT_USER: 3, // 表示强原生 tt user 授权账号类型\n BC_SELF_TT: 4, // 表示强原生 bc自投tt user 授权账号类型\n BC_AUTH_TT: 5, // 表示强原生 bc代投tt user 授权账号类型\n};\n\n/** 原生广告创意对应的 identity账号类型 nativeAdIdentityTypes */\nexport const NATIVE_AD_IDENTITY_TYPES = [\n identityTypeMap.AUTH_CODE_USER,\n identityTypeMap.TT_USER,\n identityTypeMap.BC_AUTH_TT,\n identityTypeMap.BC_SELF_TT,\n];\n\n// identityType 是否属于原生(辅助函数)\nexport const isNativeAdIdentityType = identityType => NATIVE_AD_IDENTITY_TYPES.includes(identityType);\n\nexport const isCustomIdentityAccount = (identityType) => {\n if (Array.isArray(identityType)) {\n return identityType.includes(identityTypeMap.FAKE_USER);\n }\n\n return identityType === identityTypeMap.FAKE_USER;\n};\n\nexport const isTTBAIdentityAccount = (identityType) => {\n if (Array.isArray(identityType)) {\n const sameTypeList = _.intersection([identityTypeMap.TT_USER, identityTypeMap.BC_SELF_TT], identityType) || [];\n return !!sameTypeList.length;\n }\n\n return identityType === identityTypeMap.TT_USER || identityType === identityTypeMap.BC_SELF_TT;\n};\n\nexport const isTTIdentityAccount = (identityType) => {\n if (Array.isArray(identityType)) {\n const sameTypeList = _.intersection([identityTypeMap.AUTH_CODE_USER, identityTypeMap.BC_AUTH_TT], identityType) || [];\n return !!sameTypeList.length;\n }\n\n return identityType === identityTypeMap.AUTH_CODE_USER || identityType === identityTypeMap.BC_AUTH_TT;\n};\n\n\n// Identity账户available_status 的枚举值\nexport const identityAvailableStatus = {\n Available: 0, // 可用状态\n NO_VALID_BIND_ACCOUNT: 1, // 不可用,原因是: 无有效绑定账号\n SCOPE_UNAVAILABLE: 2, // 不可用,原因是:权限不足\n IS_PRIVATE_ACCOUNT: 3, // 不可用,原因是:隐私账号\n NOT_BUSINESS_ACCOUNT: 4, // 不可用,原因是:不是企业号\n NO_DATA: -1, // 前端自定义,接口不返回这个枚举值 表示当前已解绑或者user没有权限\n IS_PRIVATE_POST: -2, // 前端自定义,接口不返回这个枚举值 表示ttba视频设为隐私/下架\n NOT_IDENTITY: -3, // 前端自定义,接口不返回这个枚举值 表示没有identity字段的历史存量数据\n USER_NO_PRIVILEGE: -4, // 前端自定义,接口不返回这个枚举值 表示没有当前登陆的user没有该identity的权限\n NO_LIVE_PREMISSION: -5, // 前端自定义,TTBA账号未获取直播授权\n /** 👇👇 BC账号 👇👇 */\n BC_NO_VALID_BIND_ACCOUNT: 101, // 前端自定义,BC授权账号不是有效可使用账号\n BC_NO_VIDEO_RIGHT: 102, // 前端自定义,BC授权账号没有视频权限\n BC_UN_BIND_ACCOUNT: 103, // 前端自定义,BC授权账号解绑\n BC_NO_LIVE_RIGHT: 104, // 前端自定义,bc授权账号没有live权限\n};\n\n// 普通创意广告对应的 identity账号类型\nexport const normalAdIdentityTypes = [\n identityTypeMap.UN_SET,\n identityTypeMap.FAKE_USER,\n];\n\n// 原生广告创意对应的 identity账号类型\nexport const nativeAdIdentityTypes = [\n identityTypeMap.AUTH_CODE_USER,\n identityTypeMap.BC_SELF_TT,\n identityTypeMap.BC_AUTH_TT,\n identityTypeMap.TT_USER,\n];\nexport const externalTypeAuthMap = { // 不同的externalType对应identity type\n [Scenario.ShortVideo]: [ // 类型的顺序就是identity list返回的顺序\n identityTypeMap.TT_USER,\n identityTypeMap.BC_AUTH_TT,\n identityTypeMap.AUTH_CODE_USER,\n ],\n [Scenario.Live]: [\n identityTypeMap.TT_USER,\n identityTypeMap.BC_AUTH_TT,\n ],\n ALL: [\n identityTypeMap.FAKE_USER,\n identityTypeMap.AUTH_CODE_USER,\n identityTypeMap.TT_USER,\n identityTypeMap.BC_AUTH_TT,\n ],\n};\n\nexport const bcIdentityTypesList = [identityTypeMap.BC_SELF_TT, identityTypeMap.BC_AUTH_TT];\n\n/** 需要判断权限的identity类型 */\nexport const JUDGE_IDENTITY_PERMISSION_LIST = [\n identityTypeMap.TT_USER,\n identityTypeMap.BC_AUTH_TT,\n identityTypeMap.BC_SELF_TT,\n];\n\n// identity账号类型名称 用于在下拉列表内展示\nexport const IDENTITY_NAME_MAP = {\n [identityTypeMap.UN_SET]: {\n i18n: 'module_creative_custom_identity', // 可用时的展示名称\n unavailableI18n: 'module_creative_custom_identity', // 不可用时的展示名称\n desc: 'module_creative_identity_custom_identity_account_describe',\n hoverDesc: '',\n icon: '',\n disabledIcon: '',\n },\n [identityTypeMap.FAKE_USER]: {\n i18n: 'module_creative_custom_identity',\n unavailableI18n: 'module_creative_custom_identity',\n desc: 'module_creative_identity_custom_identity_account_describe',\n hoverDesc: '',\n icon: '',\n disabledIcon: '',\n },\n [identityTypeMap.AUTH_CODE_USER]: {\n i18n: 'module_creative_bc_tta_identity_account_describe',\n unavailableI18n: 'module_creative_bc_tta_identity_account_describe',\n desc: 'module_creative_identity_authorized_tiktok_account_describe',\n hoverDesc: '',\n icon: 'vi-icon-tiktok',\n disabledIcon: 'vi-icon-tiktok-disabled',\n },\n [identityTypeMap.TT_USER]: {\n i18n: 'module_creative_tiktok_business_account',\n unavailableI18n: 'module_creative_tiktok_account',\n desc: 'module_creative_identity_select_ttba_account_describe',\n hoverDesc: 'module_creative_identity_account_scope_describe',\n icon: 'vi-icon-tiktok',\n disabledIcon: 'vi-icon-tiktok-disabled',\n },\n [identityTypeMap.BC_AUTH_TT]: {\n i18n: 'module_creative_bc_identity_account_describe', // 位于id下方 标识账号类型\n unavailableI18n: '', // 这个标识 暂时无用\n desc: '', // 这个标识 暂时无用\n hoverDesc: '', // 这个标识 暂时无用\n icon: 'vi-icon-bc',\n disabledIcon: 'vi-icon-bc-disabled',\n },\n [identityTypeMap.BC_SELF_TT]: {\n i18n: '',\n unavailableI18n: '',\n desc: '',\n hoverDesc: '',\n icon: 'vi-icon-bc',\n disabledIcon: 'vi-icon-bc-disabled',\n },\n};\n\nconst {\n Available,\n NO_VALID_BIND_ACCOUNT,\n SCOPE_UNAVAILABLE,\n IS_PRIVATE_ACCOUNT,\n NOT_BUSINESS_ACCOUNT,\n NO_DATA,\n IS_PRIVATE_POST,\n NOT_IDENTITY,\n USER_NO_PRIVILEGE,\n NO_LIVE_PREMISSION,\n BC_UN_BIND_ACCOUNT,\n BC_NO_VIDEO_RIGHT,\n BC_NO_VALID_BIND_ACCOUNT,\n BC_NO_LIVE_RIGHT,\n} = identityAvailableStatus;\n\n// 不可用identity TT USER账号枚举\n\nexport const UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP = {\n [Available]: {\n i18n: 'module_creative_identity_unavailable_current_objective', // 不支持当前版位时提示文案\n name: 'module_creative_tiktok_business_account', // 类型名称\n authorizationDesc: '', // 提示按钮文案\n editUnAvailableDesc: '', // 编辑态alert提示\n reAuthorizationDesc: '', // 编辑态提示按钮文案\n hasNoVideoDesc: '', // 缺失post提示文案\n },\n [NO_VALID_BIND_ACCOUNT]: {\n i18n: 'module_creative_scope_unavailable_describe',\n name: 'module_creative_tiktok_business_account',\n authorizationDesc: 'module_creative_get_video_permission',\n bannerAlertDesc: 'module_creative_identity_no_valid_banner_prompt',\n editUnAvailableDesc: 'module_creative_identity_no_valid_prompt',\n reAuthorizationDesc: 'module_creative_identity_regain_permission',\n hasNoVideoDesc: 'module_creative_identity_no_valid_post_prompt',\n },\n [SCOPE_UNAVAILABLE]: {\n i18n: 'module_creative_scope_unavailable_describe',\n name: 'module_creative_tiktok_business_account',\n authorizationDesc: 'module_creative_get_video_permission',\n bannerAlertDesc: 'module_creative_identity_permissions_changed',\n editUnAvailableDesc: 'module_creative_identity_limited_access_banner_prompt',\n reAuthorizationDesc: 'module_creative_identity_regain_permission',\n hasNoVideoDesc: 'module_creative_identity_limited_access_post_prompt',\n },\n [IS_PRIVATE_ACCOUNT]: {\n i18n: 'module_creative_is_private_account_describe',\n name: 'module_creative_tiktok_account',\n authorizationDesc: 'module_creative_upgrade_business_account',\n bannerAlertDesc: 'module_creative_identity_permissions_changed',\n editUnAvailableDesc: 'module_creative_identity_not_ttba_banner_prompt',\n reAuthorizationDesc: 'module_creative_identity_reupgrade',\n hasNoVideoDesc: 'module_creative_identity_not_ttba_post_prompt',\n },\n [NOT_BUSINESS_ACCOUNT]: {\n i18n: 'module_creative_not_business_account',\n name: 'module_creative_tiktok_account',\n authorizationDesc: 'module_creative_upgrade_business_account',\n bannerAlertDesc: 'module_creative_identity_permissions_changed',\n editUnAvailableDesc: 'module_creative_identity_not_ttba_banner_prompt',\n reAuthorizationDesc: 'module_creative_identity_reupgrade',\n hasNoVideoDesc: 'module_creative_identity_not_ttba_post_prompt',\n },\n [NO_DATA]: {\n name: '',\n bannerAlertDesc: 'module_creative_identity_account_not_available',\n editUnAvailableDesc: 'module_creative_identity_select_error_prompt',\n hasNoVideoDesc: 'module_creative_no_identity_info_post_prompt',\n },\n [IS_PRIVATE_POST]: {\n i18n: '',\n name: '',\n authorizationDesc: '',\n bannerAlertDesc: 'module_creative_post_not_available_banner_prompt',\n editUnAvailableDesc: '',\n reAuthorizationDesc: '',\n hasNoVideoDesc: 'module_creative_post_not_available_prompt',\n },\n [NOT_IDENTITY]: {\n name: '',\n bannerAlertDesc: 'module_creative_identity_functional_iteration_prompt',\n },\n // 非当前user\n [USER_NO_PRIVILEGE]: {\n name: '',\n bannerAlertDesc: 'module_creative_identity_not_authorized',\n hasNoVideoDesc: '',\n },\n /** 👇👇 BC账号 👇👇 */\n // BC授权账号没有视频权限\n [BC_NO_VIDEO_RIGHT]: {\n name: 'module_creative_bc_identity_account_describe', // 位于id下方的账号描述文案\n i18n: 'module_creative_bc_identity_need_to_authorize', // 为不可用账号时hover文案\n authorizationDesc: 'module_creative_bc_regain_access', // hover中操作按钮文案\n bannerAlertDesc: 'module_creative_bc_auth_identity_edit_need_authorize_banner', // 可用状态没有这个提示\n editUnAvailableDesc: 'module_creative_bc_auth_identity_edit_need_check_desc', // 编辑状态时位于列表下方的红色不可用提示文案 可用状态没有这个提示\n reAuthorizationDesc: 'module_creative_bc_regain_access', // 可用状态没有这个提示\n hasNoVideoDesc: 'module_creative_bc_auth_identity_edit_need_post_desc', // 可用状态没有这个提示\n },\n // 对应BC账号为不可使用状态 不会出现在下拉框中 只会出现在编辑场景提示\n [BC_NO_VALID_BIND_ACCOUNT]: {\n name: '', // 位于id下方的账号描述文案\n i18n: '', // 为不可用账号状态hover文案\n authorizationDesc: '', // 账号不可用时 hover中操作按钮文案\n bannerAlertDesc: 'module_creative_bc_auth_identity_edit_un_valid_banner', // 位于页面顶部的提示文案\n editUnAvailableDesc: 'module_creative_bc_auth_identity_edit_un_valid_check_desc', // 编辑状态时位于列表下方的红色不可用提示文案\n reAuthorizationDesc: '', // 编辑状态时 引导获取权限的文案\n hasNoVideoDesc: 'module_creative_bc_auth_identity_edit_un_valid_post_desc', // 无素材信息时位于素材选择按钮下方的红色文案\n },\n // 对应BC解绑状态 不会出现在下拉框中 只会出现在编辑场景提示\n [BC_UN_BIND_ACCOUNT]: {\n name: '', // 位于id下方的账号描述文案\n i18n: '', // 为不可用账号状态hover文案\n authorizationDesc: '', // 账号不可用时 hover中操作按钮文案\n bannerAlertDesc: 'module_creative_bc_auth_identity_edit_unbind_banner', // 位于页面顶部的提示文案\n editUnAvailableDesc: 'module_creative_bc_auth_identity_edit_unbind_check_desc', // 编辑状态时位于列表下方的红色不可用提示文案\n reAuthorizationDesc: '', // 编辑状态时 引导获取权限的文案\n hasNoVideoDesc: 'module_creative_bc_auth_identity_edit_unbind_post_desc', // 无素材信息时位于素材选择按钮下方的红色文案\n },\n};\n\n\n/** identity账号不可用的场景 (非TTBA账号没有权限) */\nexport const UNAVAILABLE_IDENTITY_TYPE_MAP = {\n IsAvalable: 0, // 可用\n IsObjectiveUnsupportNative: 1, // 当前Objective不支持原生广告\n IsObjectiveUnsupportNormal: 2, // 当前Objective不支持导流广告\n IsHasNoTiktok: 4, // 当前版位不包含TT版位 不可用原生类型identity账号\n IsAcoAd: 5, // 当前是程序化创意 不支持原生广告\n IsEditNormalAd: 6, // 编辑导流广告 不可用原生类型identity账号\n IsEditNativeAd: 7, // 编辑原生广告 不可用custom类型identity账号\n IsEditAcoAd: 8, // 编辑程序化创意 不可用原生类型identity账号\n};\n\n/** identity账号不可用的场景下的提示文案 */\nexport const UNAVAILABLE_IDENTITY_PROMPT_MAP = {\n [UNAVAILABLE_IDENTITY_TYPE_MAP.IsAvalable]: '',\n [UNAVAILABLE_IDENTITY_TYPE_MAP.IsObjectiveUnsupportNative]: 'module_creative_identity_unavailable_objective_unsupport',\n [UNAVAILABLE_IDENTITY_TYPE_MAP.IsObjectiveUnsupportNormal]: 'module_creative_identity_unavailable_objective_unsupport_normal',\n [UNAVAILABLE_IDENTITY_TYPE_MAP.IsHasNoTiktok]: 'module_creative_identity_unavailable_on_no_tt_ad',\n [UNAVAILABLE_IDENTITY_TYPE_MAP.IsAcoAd]: 'module_creative_identity_unavailable_on_aco_ad',\n [UNAVAILABLE_IDENTITY_TYPE_MAP.IsEditNormalAd]: 'module_creative_identity_unavailable_on_edit_normal_ad',\n [UNAVAILABLE_IDENTITY_TYPE_MAP.IsEditNativeAd]: 'module_creative_identity_unavailable_on_edit_native_ad',\n [UNAVAILABLE_IDENTITY_TYPE_MAP.IsEditAcoAd]: 'module_creative_identity_unavailable_on_edit_aco_ad',\n};\n\n// shop ads的identity位于adgroup且编辑时不允许修改\nexport const SHOP_ADS_UNAVAILABLE_TTBA_ACCOUNT_TYPE_MAP = {\n [Available]: {\n ...UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP[Available],\n adGroupBannerAlertDesc: '',\n },\n [NO_VALID_BIND_ACCOUNT]: {\n ...UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP[NO_VALID_BIND_ACCOUNT],\n adGroupBannerAlertDesc: 'module_ad_identity_no_enough_permission',\n hasNoVideoDesc: 'module_ad_identity_no_enough_permission_post_prompt',\n },\n [SCOPE_UNAVAILABLE]: {\n ...UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP[SCOPE_UNAVAILABLE],\n adGroupBannerAlertDesc: 'module_ad_identity_no_enough_permission',\n hasNoVideoDesc: 'module_ad_identity_no_enough_permission_post_prompt',\n },\n [IS_PRIVATE_ACCOUNT]: {\n ...UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP[IS_PRIVATE_ACCOUNT],\n adGroupBannerAlertDesc: 'module_ad_identity_no_enough_permission',\n hasNoVideoDesc: 'module_ad_identity_no_enough_permission_post_prompt',\n },\n [NOT_BUSINESS_ACCOUNT]: {\n ...UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP[NOT_BUSINESS_ACCOUNT],\n adGroupBannerAlertDesc: 'module_ad_identity_no_enough_permission',\n hasNoVideoDesc: 'module_ad_identity_no_enough_permission_post_prompt',\n },\n [NO_DATA]: {\n ...UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP[NO_DATA],\n adGroupBannerAlertDesc: 'module_ad_identity_account_not_available',\n editUnAvailableDesc: 'module_ad_identity_select_error_prompt',\n },\n [IS_PRIVATE_POST]: {\n ...UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP[IS_PRIVATE_POST],\n },\n [NOT_IDENTITY]: {\n ...UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP[NOT_IDENTITY],\n },\n [USER_NO_PRIVILEGE]: {\n adGroupBannerAlertDesc: 'module_ad_identity_not_authorized',\n editUnAvailableDesc: 'module_ad_identity_not_authorized_prompt',\n bannerAlertDesc: 'module_creative_identity_not_authorized',\n },\n [NO_LIVE_PREMISSION]: {\n ...UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP[SCOPE_UNAVAILABLE],\n i18n: 'module_creative_live_scope_unavailable_describe',\n adGroupBannerAlertDesc: 'module_ad_identity_no_enough_permission',\n },\n [BC_NO_VALID_BIND_ACCOUNT]: {\n name: '', // 位于id下方的账号描述文案\n i18n: '', // 为不可用账号状态hover文案\n authorizationDesc: '', // 账号不可用时 hover中操作按钮文案\n bannerAlertDesc: 'module_creative_bc_auth_identity_edit_un_valid_banner', // 位于页面顶部的提示文案\n editUnAvailableDesc: 'module_creative_bc_auth_identity_edit_un_valid_check_desc', // 编辑状态时位于列表下方的红色不可用提示文案\n reAuthorizationDesc: '', // 编辑状态时 引导获取权限的文案\n hasNoVideoDesc: 'module_creative_bc_auth_identity_edit_un_valid_post_desc', // 无素材信息时位于素材选择按钮下方的红色文案\n adGroupBannerAlertDesc: 'module_creative_bc_auth_identity_edit_un_valid_banner',\n },\n [BC_UN_BIND_ACCOUNT]: {\n name: 'module_creative_bc_identity_account_unavailable_describe', // 位于id下方的账号描述文案\n i18n: 'module_creative_bc_identity_no_valid_bind_account', // 为不可用账号状态hover文案\n authorizationDesc: 'module_creative_bc_regain_valid', // 账号不可用时 hover中操作按钮文案\n adGroupBannerAlertDesc: 'module_creative_bc_auth_identity_edit_unbind_banner',\n bannerAlertDesc: 'module_creative_bc_auth_identity_edit_unbind_banner', // 位于页面顶部的提示文案\n editUnAvailableDesc: 'module_creative_bc_auth_identity_edit_unbind_check_desc', // 编辑状态时位于列表下方的红色不可用提示文案\n reAuthorizationDesc: '', // 编辑状态时 引导获取权限的文案\n hasNoVideoDesc: 'module_creative_bc_auth_identity_edit_unbind_post_desc', // 无素材信息时位于素材选择按钮下方的红色文案\n },\n [BC_NO_VIDEO_RIGHT]: {\n name: 'module_creative_bc_identity_account_describe', // 位于id下方的账号描述文案\n i18n: 'module_creative_bc_identity_need_to_authorize', // 为不可用账号时hover文案\n authorizationDesc: 'module_creative_bc_regain_access', // hover中操作按钮文案\n adGroupBannerAlertDesc: 'module_creative_bc_auth_identity_edit_need_authorize_banner',\n bannerAlertDesc: 'module_creative_bc_auth_identity_edit_need_authorize_banner', // 可用状态没有这个提示\n editUnAvailableDesc: 'module_creative_bc_auth_identity_edit_need_check_desc', // 编辑状态时位于列表下方的红色不可用提示文案 可用状态没有这个提示\n reAuthorizationDesc: 'module_creative_bc_regain_access', // 可用状态没有这个提示\n hasNoVideoDesc: 'module_creative_bc_auth_identity_edit_need_post_desc', // 可用状态没有这个提示\n },\n [BC_NO_LIVE_RIGHT]: {\n name: 'module_creative_bc_identity_account_describe', // 位于id下方的账号描述文案\n i18n: 'module_creative_bc_identity_need_to_authorize', // 为不可用账号时hover文案\n authorizationDesc: 'module_creative_bc_regain_access', // hover中操作按钮文案\n adGroupBannerAlertDesc: 'module_creative_bc_auth_identity_edit_need_authorize_banner',\n bannerAlertDesc: 'module_creative_bc_auth_identity_edit_need_authorize_banner', // 可用状态没有这个提示\n editUnAvailableDesc: 'module_creative_bc_auth_identity_edit_need_check_desc', // 编辑状态时位于列表下方的红色不可用提示文案 可用状态没有这个提示\n reAuthorizationDesc: 'module_creative_bc_regain_access', // 可用状态没有这个提示\n hasNoVideoDesc: 'module_creative_bc_auth_identity_edit_need_post_desc', // 可用状态没有这个提示\n },\n};\n\n// 新identity禁用switch文案\nexport const IDENTITY_OP_SWITCH_DISABLED_KEY_MAP = {\n NOT_CONTAIN_TT_REASON: 1,\n DISABLED_ACO_REASON: 2,\n DISABLED_OBJECTIVE_NOT_NATIVE_REASON: 3,\n DISABLED_OBJECTIVE_NOT_NORMAL_REASON: 4,\n DISABLED_IS_FIRST_CREATE_CUSTOM_REASON: 5,\n DISABLED_NORMAL_TO_NATIVE_REASON: 6,\n DISABLED_NATIVE_TO_NORMAL_REASON: 7,\n};\n\nexport const IDENTITY_OP_SWITCH_DISABLED_MAP = {\n [IDENTITY_OP_SWITCH_DISABLED_KEY_MAP\n .NOT_CONTAIN_TT_REASON]: 'module_identity_switch_disabled_not_contain_tt_reason', // 当前您选择的版位中未包含TikTok,因此暂时无法投放原生广告\n [IDENTITY_OP_SWITCH_DISABLED_KEY_MAP\n .DISABLED_ACO_REASON]: 'module_identity_switch_disabled_aco_reason', // 程序化创意暂时不支持投放原生广告\n [IDENTITY_OP_SWITCH_DISABLED_KEY_MAP\n .DISABLED_OBJECTIVE_NOT_NATIVE_REASON]: 'module_identity_switch_disabled_objective_not_native_reason', // 当前您的推广目标暂时不支持投放原生广告\n [IDENTITY_OP_SWITCH_DISABLED_KEY_MAP\n .DISABLED_OBJECTIVE_NOT_NORMAL_REASON]: 'module_identity_switch_disabled_objective_not_normal_reason', // 当前推广目标不支持投放导流广告\n [IDENTITY_OP_SWITCH_DISABLED_KEY_MAP\n .DISABLED_IS_FIRST_CREATE_CUSTOM_REASON]: 'module_identity_switch_disabled_is_first_create_custom_reason', // 不存在custom账号(需要首次创建)\n [IDENTITY_OP_SWITCH_DISABLED_KEY_MAP\n .DISABLED_NORMAL_TO_NATIVE_REASON]: 'module_identity_switch_disabled_normal_to_native_reason', // 暂时不支持导流广告和原生广告进行切换\n [IDENTITY_OP_SWITCH_DISABLED_KEY_MAP\n .DISABLED_NATIVE_TO_NORMAL_REASON]: 'module_identity_switch_disabled_native_to_normal_reason', // 暂时不支持原生广告和导流广告进行切换\n};\n\nexport const IDENTITY_FEEL_GOOD_MAP = {\n [identityTypeMap.FAKE_USER]: 'useCustomIdentity',\n [identityTypeMap.AUTH_CODE_USER]: 'useTtaIdentity',\n [identityTypeMap.TT_USER]: 'useTtbaIdentity',\n};\n\n\nexport const IDENTITY_VALIDATION_ERROR_TEXT = {\n [NO_DATA]: 'module_creative_identity_select_error_prompt',\n [BC_UN_BIND_ACCOUNT]: 'module_creative_bc_auth_identity_edit_unbind_check_desc',\n SHOP: 'module_creative_identity_select_validate_info',\n};\n","// Region-Language-Currency 枚举表\n// https://bytedance.feishu.cn/sheets/shtcnbHYD8w5uF0aU7JpQxlYPUf\nexport const currencyLocale = {\n BR: {\n currency: 'BRL',\n precision: 2,\n lang_code: 'pt-BR',\n apply_lang: ['es', 'fr', 'de', 'it', 'pt'],\n separator_symbol: ',',\n },\n};\n\nexport default currencyLocale;\n","/**\n * @file Consts for date related\n */\n\nexport const TIME_FORMAT = 'YYYY-MM-DD';\nexport const FULL_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';\nexport const NEW_TIME_FORMAT = 'YYYY/MM/DD';\nexport const TIME_FORMAT_DETAIL = 'YYYY-MM-DD HH:mm:ss';\nexport const DECIMAL_LENGTH = 2;\n\nexport const EnumRangeType = {\n LAST_SEVEN_DAYS: {\n key: 'common_date_last_seven', // key in translation json\n val: '1',\n },\n TODAY: {\n key: 'common_date_today',\n val: '6',\n },\n YESTERDAY: {\n key: 'common_date_yesterday',\n val: '7',\n },\n LAST_THREE_DAYS: {\n key: 'automated_rules_time_range_recent_3_days',\n val: '33',\n },\n LAST_THIRTY_DAYS: {\n key: 'common_date_last_thirty',\n val: '2',\n },\n LAST_MONTH: {\n key: 'common_date_last_month',\n val: '3',\n },\n THIS_MONTH: {\n key: 'common_date_this_month',\n val: 'THIS_MONTH',\n },\n LAST_THREE_MONTH: {\n key: 'common_date_last3_month',\n val: 'LAST_THREE_MONTH',\n },\n LAST_QUARTER: {\n key: 'common_date_last_quarter',\n val: '4',\n },\n LAST_FOURTEEN_DAYS: {\n key: 'common_date_last_fourteen',\n val: 'LAST_FOURTEEN_DAYS',\n },\n THIS_WEEK: {\n key: 'common_date_this_week',\n val: 'THIS_WEEK',\n },\n LAST_WEEK: {\n key: 'common_date_last_week',\n val: 'LAST_WEEK',\n },\n CUSTOM: {\n key: 'common_date_custom_range',\n val: '5',\n },\n LIFETIME: {\n key: 'common_lifetime',\n val: 'LIFETIME',\n },\n TWENTY_EIGHT: {\n key: 'common_date_last_twenty_eight',\n val: 'TWENTY_EIGHT',\n },\n};\n\nexport const EnumLifetimeType = {\n chosen: 1,\n unchosen: 0,\n};\n\nexport const MONTHS = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\n","export const listDefaultParam = {\n version: 1,\n // 排序\n sort_stat: 'create_time',\n sort_order: 1,\n // 分页\n page: 1,\n limit: 20,\n extra: {\n scene: 'complaince_ad_list_v2',\n list_version: 'v2',\n page_view_scene: 'view_first',\n },\n // 投后数据统计时间,可以填任意时间\n st: '',\n et: '',\n // 查询哪些字段,可以不填,默认会返回 ad_name ad_id 和 ad_primary_status\n query_list: [],\n // eu合规筛选字段 0-不合规 1-合规\n eu_compliance: [0],\n lifetime: 0,\n relative_time: 0,\n compare_st: '',\n compare_et: '',\n keyword: '',\n search_type: 1,\n selection_filter: '',\n campaign_status: [],\n // 默认填写 no_delete, 过滤删除了的广告\n ad_status: ['no_delete'],\n opt_status: [],\n creative_status: [],\n objective_type: [],\n pricing: [],\n placement_id: [],\n image_mode: [],\n item_source: [],\n smart_creative_material_mode: [],\n ab_test: [],\n having_filter: [],\n country: [],\n province: [],\n city: [],\n particle_locations: [],\n bid_strategy: [],\n age: [],\n gender: [],\n diagnosis_detail: [],\n dedicate_type_profile_page_type: [],\n selection_ids: {\n ad_ids: [],\n campaign_ids: [],\n creative_ids: [],\n },\n dpa_local_audience: [],\n optimize_goal: [],\n promotion_type: [],\n flow_control_mode: [],\n ad_entity_type: [],\n creative_material_mode: [],\n campaign_category: [],\n budget_optimizer_switch: [],\n app_campaign_type: [],\n universal_type: [],\n destination: [],\n ecomm_type: [],\n is_attr_required: 0,\n};\n","/**\n * FeelGood 问卷调查相关常量配置\n */\n// 下标就是 FEELGOOD 后台 ,问卷的序号\nexport const FEELGOOD_SURVEY = {\n satisfaction: '6825937971607240709', // 01 整体满意度\n openAccount: '6825942106633142277', // 02 开户\n dataFunction: '6825955593279242246', // 03 数据功能(Dashboard&Report)\n promotionManagement: '6825958407871135750', // 04 推广管理列表\n adCreate: '6825960554662723590', // 05 广告创编\n createTool: '6825961883376287749', // 06 创意工具\n deliveryEffect: '6825963906477850629', // 07 投放效果\n audit: '6825960837681774598', // 08 审核\n operatingEfficiency: '6825959206982516741', // 09 操作效率\n test: '6830311651661578246', // 10 测试\n batch: '6946067813492588545', // 批量feedback\n diagnosis: '6971311861534818306', // 诊断问券\n aco: '6966439410590023682', // 关停 ACO 广告\n viewdata: '7012428935845642241', // viewdata 问卷\n smbSuggestion: '7033588848214933506',\n};\n\n/**\n * feelgood 触发条件行为\n * feelgood 后台可以配置问卷的触发行为,这样就可以不用在前端使用问卷ID的方式触发,方便后续同样的行为替换新问卷\n */\nexport const FEELGOOD_EVENT = {\n newUser: 'new_user', // 新手开户30天内\n viewAudit: 'view_audit', // 查看审核意见抽屉后\n useCreativeTool: 'use_creative_tool', // 使用完创意工具后\n completeCreation: 'complete_creation', // 完成一次创编\n completeAdDelivery: 'complete_ad_delivery', // 完成广告投放后\n turnOffAco: 'turn_off_aco', // 关停 ACO 广告\n openViewData: 'open_viewdata', // 打开 viewdata 抽屉\n useCustomIdentity: 'use_custom_identity', // 使用自定义Identity账号完成创编\n useTtaIdentity: 'use_tta_identity', // 使用TTA Identity账号完成创编\n useTtbaIdentity: 'use_ttba_identity', // 使用TTBA Identity账号完成创编\n accountSuspend: 'account_suspend', // 使用TTBA Identity账号完成创编\n};\n\n// 竞价平台的国际化标识,和 feelgood 语言标识不太一样,做一个映射\n// feelgood 支持语言列表 https://site.bytedance.net/docs/2626/3150/23091/#setlanguage-lang-string\nexport const ADS_LANG_2_FEELGOOD_LANG = {\n de: 'de_DE',\n en: 'en_US',\n es: 'es_ES',\n fr: 'fr_FR',\n id: 'id_ID',\n it: 'it_IT',\n ja: 'ja_JP',\n ko: 'ko_KR',\n ms: 'en_US', // 这个feelgood暂时不支持,默认英文\n ru: 'ru_RU',\n th: 'th_TH',\n tr: 'en_US', // 这个feelgood暂时不支持,默认英文\n vi: 'vi_VI',\n zh: 'zh_CN',\n ar: 'en_US', // 这个feelgood暂时不支持,默认英文\n};\n\n// 账号类型对应的中文名称,方便数据分析师处理\n// 数字对应的角色参考 src/const/state/account.js\nexport const CUSTOMER_TYPE_NAME = {\n 0: '一般广告主',\n 1: '广告代理商',\n 2: '虚拟广告主',\n 3: '管理员',\n 4: '内部广告主',\n 6: '二级代理商',\n 7: '头条号文章作者',\n 8: '头条自建DSP广告主',\n 13: '账号管家',\n 101: '直客',\n 104: '自助客户',\n};\n","/**\n * @file gcp 机房特殊的一些配置文件\n * @author laixiang (laixiang@bytedance.com)\n *\n */\nconst REGION_CONFIG = {\n VA: 'VA',\n SG: 'SG',\n IN: 'IN',\n};\n\n\nconst region = process.env.REGION || '';\n\n// 是否是印度 gcp 机房\nexport const isIndia = region === 'IN';\n// 是否 sg\nexport const isSg = region === 'SG';\n\nexport const zone = REGION_CONFIG[region] || 'SG';\n\n// ImageX平台模版名称\nexport const IMAGE_X_IMG_TEMPLATE = {\n ORIGIN: '~tplv-n82rq3yc7r-origin.image', // 原图\n COMPRESS_WEBP: '~tplv-n82rq3yc7r-compress.webp', // webp格式压缩\n COMPRESS_IMAGE: '~tplv-n82rq3yc7r-compress.image', // image默认压缩\n BOE_I18N: '~tplv-1np7q8yqs1-image.image', // BOE环境模版\n};\n\n// gcp 印度地区的 sso 相关一系列配置\n// reference: https://bytedance.feishu.cn/docs/doccntxsWvMdODJ0XeqT624rqOe#\nexport const GCP_SSO_HOST = 'in-business-sso.tiktok.com';\nexport const GCP_SSO_URL = `https://${GCP_SSO_HOST}/`;\nexport const GCP_SSO_LOGOUT = `https://${GCP_SSO_HOST}/logout/`;\n","const { origin } = window.location;\n\nconst HELP_CENTER = {\n TRAFFIC: '/help/article?aid=6715316029142073350',\n CONVERSION: '/help/article?aid=6715217727511855110',\n DPA: '/help/article?aid=10001004',\n LEAD: '/help/article?aid=10001624',\n};\n\nconst CATALOG_BASE = `${origin}/catalogs`;\nconst CATALOG = {\n catalog: `${CATALOG_BASE}/list`,\n product: `${CATALOG_BASE}/product`,\n productSet: `${CATALOG_BASE}/product-sets`,\n videoList: `${CATALOG_BASE}/video-list`,\n eventSources: `${CATALOG_BASE}/event-sources`,\n};\n\nconst CAMPAIGN_PLANER = {\n PLAN: '/i18n/efficient/plan',\n};\n\nconst SIMPLIFY_CREATION = '/i18n/fast_creation/ads-creation/objective';\nconst CREATION_MODE = '/i18n/fast_creation/ad-mode';\n\nexport {\n HELP_CENTER,\n CATALOG,\n CAMPAIGN_PLANER,\n SIMPLIFY_CREATION,\n CREATION_MODE,\n};\n","// musical & tiktok\n// 客户端有问题,这里临时将id改为in.\n// https://wiki.bytedance.net/pages/viewpage.action?pageId=224481401\n// https://wiki.bytedance.net/pages/viewpage.action?pageId=237412301\n// 20190403 客户端和平台前后端同时修正,将印尼语语言码in改id\n// 20190403 https://wiki.bytedance.net/pages/viewpage.action?pageId=332691546\n// 20190417 https://bytedance.feishu.cn/space/sheet/shtcnpaQYHtm3mkep8qdCr#696cd7\nexport const TopbuzzLanguages = ['en', 'ja', 'pt', 'zh-Hant', 'ko'];\nexport const tiktokLanguages = ['ja', 'zh-Hant', 'en', 'ko', 'th', 'ms', 'id', 'vi', 'ru', 'tr'];\nexport const tiktokAdNetworkLanguages = ['en', 'ja', 'pt', 'de', 'fr', 'it', 'es', 'ru',\n 'zh-Hant', 'ko', 'id', 'th', 'ms', 'vi', 'tr', 'ar'];\nexport const HeloLanguages = ['hi', 'te', 'ta', 'ml', 'mr', 'gu', 'or', 'bn', 'kn', 'pa', 'as', 'bgc', 'raj', 'bh'];\nexport const allLanguages = ['ja', 'zh-Hant', 'en', 'ko', 'ar', 'es', 'id', 'th', 'ms', 'de', 'vi', 'fr', 'it', 'ru',\n 'tr', 'pt', 'hi', 'te', 'ta', 'ml', 'mr', 'gu', 'or', 'bn', 'kn', 'pa', 'as', 'bgc', 'raj', 'bh'];\n/**\n * @file 语言相关\n */\n// topbuzz short语言列表,key 为i18n翻译path,val 为对应值\nexport const EnumLanguage = {\n english: 'en',\n japanese: 'ja',\n portuguese: 'pt',\n german: 'de',\n french: 'fr',\n italian: 'it',\n spanish: 'es',\n russian: 'ru',\n};\n\n// 给 /official/article 页面使用的(平台不支持)的语言,不会设置cookie,会有 artical_temp_lang 的url query 特殊记录\nexport const articleTempLangs = {\n pt: 'Português', // 葡萄牙语\n};\n","// 步骤页面白名单\nexport const StepActiveRoutes = {\n STEP_1_ACCOUNT_REVIEW: [''],\n STEP_2_ADD_PAYMENT: ['payment'],\n STEP_3_CREATE_AD: ['ad-campaign-create', 'ad-group-create', 'ad-creation'],\n TO_FIX_REVIEW_DIS_APPROVED: ['account_complete'],\n};\n\nconst btnWhiteList = Object.values(StepActiveRoutes).reduce((total, item) => [...total, ...item], []);\n\n// 显示新手任务: 步骤白名单 + 页面白名单\nexport const NewTaskWhiteRouteList = [\n ...btnWhiteList,\n 'dashboardIndex',\n 'perf-campaign',\n 'perf-adgroup',\n 'perf-creative',\n 'library-image',\n 'library-video',\n 'library-playable',\n 'library-native',\n 'qualification_industrial',\n 'transaction',\n 'tan_block',\n 'payment_promotion',\n];\n\nexport const canShowBestPracticeRoutes = ['ad-campaign-create'];\n\nexport const CreationBestPracticeQaMap = {\n OBJECTIVE: 'objective',\n PIXEL: 'Pixel',\n TARGETING: 'Targeting',\n BUDGET: 'Budget+Learning Phase',\n BID: 'Bid',\n FORMAT: 'Format',\n};\n","export const MSGTYPE_VAT_TH = Symbol('th-vat');\nexport const MSGTYPE_VAT_KR = Symbol('kr-vat');\nexport const MSGTYPE_VAT_SG = Symbol('sg-vat');\n\nexport const BannerColorConfig = {\n red: '#D83E0E',\n orange: '#E0A111',\n blue: '#3451F7',\n};\n\nexport const BannerCtaAction = { // 兜底action\n closeNoti: 'closeNoti',\n};\n","import store from 'src/store';\nimport {\n isBOE,\n} from 'src/const/boe';\nimport {\n athenaLink,\n} from 'src/const/state/self-service-config';\n\n// 支付方式\nexport const paymethodTypeMap = {\n PREDIT: 1, // 先付款\n CREDIT: 2,\n CREDIT_LINE: 3,\n};\n\n// 计费方式\nexport const paymentTaxType = {\n default: -1,\n costPay: 0,\n chargePay: 1,\n};\n\n// 授信入口类型\nexport const creditlineApplyStatus = {\n LIMIT: 1, // 不展示入口\n CAN_APPLY: 2, // 可申请\n UNDER_REVIEWING: 3, // 审核中\n APPROVAL: 4, // 审核通过\n REJECTED: 5, // 审核拒绝\n UNDER_ADDINFO: 6, // 等待补充信息\n};\n\n// 是否披露税务信息\nexport const showTaxType = {\n display: 1,\n notDisplay: 2,\n};\n\nexport const getPaymentCheckOutUrl = (url, return_url = '') => {\n const isSelfAccount = store.getters['account/isSelfAccount']; // 自助账号\n const adverId = store.getters['account/adverId']; // aadvid\n const paymentUrl = `${window.location.origin}/i18n/account/payment?aadvid=${adverId}`;\n let destUrl = return_url ? `${url}&return_url=${encodeURIComponent(return_url)}` : `${url}&return_url=${encodeURIComponent(paymentUrl)}`;\n // 自助账号需要雅典娜提供雅典娜反馈入口\n if (isSelfAccount) {\n const report_url = athenaLink();\n destUrl = `${destUrl}&report_url=${encodeURIComponent(report_url)}`;\n }\n return destUrl;\n};\n\n// ///////////// Payment SDK 需求通用配置 ///////////////\nexport const SDK_USE = 1;\n\nexport const upayStatus = {\n SUCCESS: 1,\n FAIL: 0,\n};\nexport const submitModule = {\n PAY: 'pay',\n CREATE: 'create',\n};\n// 和 https://bytedance.feishu.cn/docs/doccnhsNPFAjc5482dapjmB5Ghc 同步更新\nexport const upayEvent = {\n // listened events\n DID_MOUNT: 'upay_did_mount',\n CAN_SUBMIT: 'upay_can_submit',\n CANNOT_SUBMIT: 'upay_cannot_submit',\n SUBMITTED: 'upay_do_submit',\n STATUS_RESULT: 'upay_status_result',\n PAYMENT_TRANSFER: 'upay_payment_transfer',\n MANAGER_DELETE_CARD: 'upay_manager_delete_card_success',\n // trigger events\n TRIGGER_SUBMIT: 'upay_submit',\n TRIGGER_OPEN_PAYMENT_TRANSFER: 'upay_open_payment_transfer',\n TRIGGER_CLOSE_NEW_TAB: 'upay_close_new_tab',\n TRIGGER_OPEN_MANAGER_ADD_CARD_MODAL: 'upay_open_manager_add_card',\n TRIGGER_REFRESH_MANAGER_LIST: 'upay_refresh_manager_list',\n};\n// Payment SDK 需求 自定义 emit 事件名称\nexport const upayEmitEvent = {\n UPAY_SUCCESS: 'success',\n UPAY_FAIL: 'fail',\n UPAY_PIXEL_FINISHED: 'pixel-finished',\n AMOUNT_SUBMIT: 'submit',\n MANAGER_DELETE_PAYMENT: 'delete-payment',\n QUAL_PREPAY_SUCCESS: 'qual-prepay-success',\n QUAL_POSTPAY_SUCCESS: 'qual-postpay-success',\n QUAL_PREPAY_FAIL: 'qual-prepay-fail',\n QUAL_POSTPAY_FAIL: 'qual-postpay-fail',\n};\nexport const commonEmitEvent = {\n PREPAY_SDK_MODAL_BACK: 'prepay-sdk-modal-back',\n CREDIT_PERIOD_LOADED: 'credit-period-loaded',\n REFRESH_MANAGER_LIST: 'refresh-manager-list',\n};\nexport const resultActionType = {\n BIND: 'bind',\n PAY: 'pay',\n CHANGE: 'change',\n};\nexport const getCommonPolicyUrl = language => `https://www.tiktok.com/legal/privacy-policy?lang=${language}`;\n\n// 卡管理模块相关\nexport const OPEN_BIND_CARD_DELAY = 100; // 卡管理模块绑卡失败重打开绑卡弹窗延迟\n\n// 充值计税弹窗相关\nexport const AMOUNT_PENDING_STR = '-';\nexport const AMOUNT_ZERO_STR = 0;\nexport const CHECK_AMOUNT_INTERVAL = 1000;\n\n// ///////////// pixel 落地页相关 ///////////////\n// 技术方案:https://bytedance.feishu.cn/docs/doccnyHWKr05qc649bi0hr1v2Rc\nexport const UPAY_CLICK_BTN_INIT = -1;\nexport const PIXEL_IFRAME_LOADING_TIME_MAXIMUM = 5000; // 允许 iframe 上报的时间限制,超出这个时间就得\nexport const GET_STARTED_PIXEL_MESSAGE_SOURCE = 'getstarted-payment-pixel';\nexport const SECURE_ORIGIN = isBOE ?\n 'https://boei18n-ads.byteoversea.net' :\n 'https://getstarted.tiktok.com';\nexport const GET_STARTED_PIXEL_URL = isBOE ?\n 'https://boei18n-ads.byteoversea.net/getstarted/payment/result-iframe' :\n 'https://getstarted.tiktok.com/payment/result-iframe';\n\nexport const GetstartedPixelQueryType = {\n PRE_PAY: 'PRE_PAY', // 预付费\n BINDCARD: 'BINDCARD', // 绑卡\n PAY_UNPAID_BILL: 'PAY_UNPAID_BILL', // 后付费支付未付账单\n};\n\nexport const GetstartedPixelQueryStatus = {\n SUCCESS: 'SUCCESS', // 成功\n FAIL: 'FAIL', // 失败\n};\n\nexport const GetstartedPixelMessageData = {\n MOUNTED: 'MOUNTED', // mounted\n FINISH: 'FINISH', // 完成\n};\n\nexport const GetstartedPixelQuerySource = {\n SHOPIFY: 'shopify', // shopify\n AD_MANAGER: 'ad_manager', // tt 广告平台\n};\n\n// 埋点上报相关\nexport const UPAY_PAGE_SOURCE = {\n QUALIFICATION: '1',\n PAYMENT: '2',\n};\n\nexport const GROUP_ID_SDK = '1';\n\nexport const PREPAY_GROUP_ID = {\n SDK_USE: '1',\n SDK_NOT_USE: '2',\n};\n\nexport const PREPAY_AMOUNT_SOURCE = {\n SELECT: '1',\n INPUT: '2',\n};\n\n/**\n * Helper to add event listeners to refs according to given config\n * @param {*} $this VueJS instance\n * @param {*} listenerConfig { refStrs: refConfig }, each refConfig is a nested object { eventName: listener }\n * @returns None\n */\nexport const addEventListenersToRefs = ($this, listenerConfig) => {\n for (const [refStr, refConfig] of Object.entries(listenerConfig)) {\n if (!$this.$refs[refStr]) continue;\n for (const [eventName, listener] of Object.entries(refConfig)) {\n $this.$refs[refStr].$on(eventName, listener);\n }\n }\n};\n\n// 创编接入支付事件\nexport const creativePaymentEvent = {\n SHOW_AD_CREATE_DIALOG: 'ad-create-show-dialog',\n CLOSE_AD_CREATE_DIALOG: 'ad-create-hide-dialog',\n SKIP_AD_CREATE_PAYMENT: 'ad-create-payment-skip',\n PAYMENT_RESOLVE: 'ad-create-payment-resolve',\n PAYMENT_PIXEL_FINISHED: 'ad-create-payment-pixel-finished',\n UPAY_LINK_READY: 'ad-create-upay-link-ready',\n SUCCESS_UPAY: 'ad-create-upay-success',\n FAIL_UPAY: 'ad-create-upay-fail',\n};\n\nexport const UNLIMITED_CALC_DURATION = 1;\nexport const defaultCountry = 'US';\nexport const defaultCurrency = 'USD';\n\nexport const SourceMode = {\n NONE: -1, // 无\n SIMPLIFIED: 1, // pclite 0创编\n CUSTOM: 2, // pc 常规创编\n SIMPLIFIED_05: 3, // pclite 0.5创编\n CUSTOM_AUTOMATED: 4, // pc 程序化创编\n CUSTOM_ACCOUNT_INFO: 5, // pc account setting 页面\n CUSTOM_BANNER: 6, // pc banner\n CUSTOM_TRANSACTION: 7, // pc transaction 模块\n MANAGER_CREATION_NORMAL: 8, // 重构创编-普通创意\n MANAGER_CREATION_AUTOMATIC: 9, // 重构创编-程序化创意\n TIKTOK_BUSINESS_PLUGIN: 10, // TBP\n FAST_QUALIFICATION_PAGE: 12, // 资质简化前置页面\n FAST_ONBOARDING_PAGE: 13, // 新手引导页面\n};\n\nexport const CreationMode = {\n TTAM_PANDA: 'TTAM_PANDA',\n TTAM_PANDA_AUTOMATED: 'TTAM_PANDA_AUTOMATED',\n};\n\nexport const SourceModeTitleMap = Object.keys(SourceMode).reduce((total, key) => {\n total[SourceMode[key]] = key;\n return total;\n}, {});\n\n// 预付转后付功能实验\n// 存储到本地的key,只出现一次\nexport const PAYMENT_SWITCH_AUTOPAY_STORAGE_TEST_KEY = 'payment_method_popover_state';\n// 实验出现的入口,数组,item为路由名\nexport const PAYMENT_SWITCH_AUTOPAY_TEST_ENTRY = ['account_complete', 'payment'];\n\n// 额度共享\nexport const SHARED_TYPE = {\n NOE_SHARE: 0, // 非共享\n CUR_SHARE: 1, // 当前共享\n CUR_NOT_SHARE: 2, // 有过共享, 当前非共享\n};\n\n// 预算类型\nexport const BUDGET_MODE = {\n UNLIMITED: 0, // 不限预算\n MI_MODE: 3, // 月预算\n};\n\n// 授信入口类型\nexport const UPGRADE_PAY_STATUS = {\n DISABLE: 1, // 不可升级\n CAN_APPLY: 2, // 可申请\n UNDER_REVIEWING: 3, // 审核中\n REJECTED: 4, // 审核拒绝\n UNDER_ADDINFO: 5, // 等待补充信息\n UNDER_CURRENT_METHOD: 6, // 当前处于本结算方式\n};\n\n// 支付升级的map转换(新旧接口返回的数据map对应)\nexport const UPGRADE_PAY_STATUS_MAP = {\n [UPGRADE_PAY_STATUS.DISABLE]: creditlineApplyStatus.LIMIT,\n [UPGRADE_PAY_STATUS.CAN_APPLY]: creditlineApplyStatus.CAN_APPLY,\n [UPGRADE_PAY_STATUS.UNDER_REVIEWING]: creditlineApplyStatus.UNDER_REVIEWING,\n [UPGRADE_PAY_STATUS.REJECTED]: creditlineApplyStatus.REJECTED,\n [UPGRADE_PAY_STATUS.UNDER_ADDINFO]: creditlineApplyStatus.UNDER_ADDINFO,\n [UPGRADE_PAY_STATUS.UNDER_CURRENT_METHOD]: creditlineApplyStatus.APPROVAL,\n};\n","// 账号管理账户角色\nexport const accountRole = {\n // 一般广告主\n ROLE_ADVERTISER: 0,\n // 广告代理商\n ROLE_AGENT: 1,\n // 虚拟广告主\n ROLE_VIRTAUL_ADVERTISER: 2,\n // 管理员\n ROLE_ADMIN: 3,\n // 内部广告主\n ROLE_INTERNAL_ADV: 4,\n // 二级代理商\n ROLE_CHILD_AGENT: 6,\n // 头条号文章作者\n ROLE_PGC_ADVERTISER: 7,\n // 头条自建DSP广告主\n ROLE_DSP_ADVERTISER: 8,\n // 账号管家\n ROLE_MAJORDOMO: 13,\n // 自助客户\n ROLE_SLEF_ACCOUNT: 104,\n // 直客\n ROLE_COMMON_ACCOUNT: 101,\n // 代理商创建虚客\n ROLE_VIRTAUL_ACCOUNT: 103,\n};\n// 账号管理账号状态\nexport const advertiserStatus = {\n // 已禁用\n DISABLE: 0,\n // 待审核\n PENDING_CONFIRM: 1,\n // 待验证\n PENDING_VERIFIED: 2,\n // 审核失败/可再次申请\n CONFIRM_FAIL: 3,\n // 已审核\n ENABLE: 4,\n // 审核失败/最终状态\n CONFIRM_FAIL_END: 5,\n // 修改审核\n PENDING_CONFIRM_MODIFY: 6,\n // 修改审核失败\n CONFIRM_MODIFY_FAIL: 7,\n // 惩罚\n PUNISH: 8,\n // 等待CRM审核\n WAIT_FOR_BPM_AUDIT: 9,\n // 推广自助开户\n PROMOTION_SELF_SERVICE: 10,\n // SMB客户\n STATUS_WAIT_FOR_BPM_FILE_CONTACT: 12,\n // SMB待缴费\n STATUS_WAIT_FOR_ACCOUNT_FEE: 13,\n // 待对公验证\n STATUS_WAIT_FOR_PUBLIC_AUTH: 14,\n // 合约未生效\n STATUS_CONTACT_PENDING: 15,\n};\n// 账号管理营销区域\nexport const promotionArea = {\n NATIONAL: 1,\n LOCAL: 2,\n};\n\n// 账号管理-消息中心-消息显示选项\nexport const notificationViewOption = {\n // 全部消息\n ALL: 0,\n // 管理员消息\n ADMIN: 1,\n // 系统消息\n SYSTEM: 2,\n};\n// 账号管理-消息中心-消息类型\nexport const notificationType = {\n // 系统广播\n SYSTEM_BC: 1,\n // 广告主广播\n ADVERTISER_BC: 2,\n // 代理广播\n AGENT_BC: 3,\n // 管理员广播\n ADMIN_BC: 4,\n // 系统消息\n SYSTEM_DM: 5,\n // 自动dm都用这个作为key\n AUTO_DM: 6,\n\n // 广告审核通过\n AD_AUDIT_SUCCESS: 101,\n // 广告审核不通过\n AD_AUDIT_REJECT: 102,\n // 广告接近预算 - 作废 mapeng\n AD_PRE_OFFLINE_BUDGET: 103,\n // 广告超出预算\n AD_OFFLINE_BUDGET: 104,\n // 广告因账号余额不足暂停\n AD_OFFLINE_BALANCE: 105,\n // 新的广告接近预算\n AD_PRE_OFFLINE_BUDGET_NEW: 106,\n\n // 管理员充值\n ADMIN_RECHARGE: 201,\n // 在线充值成功\n ONLINE_RECHARGE: 202,\n // 代理充值\n AGENT_RECHARGE: 203,\n // 代理退款\n AGENT_REFUND: 204,\n\n // 广告组接近预算 - 作废 mapeng\n CAMPAIGN_PRE_OFFLINE_BUDGET: 301,\n // 广告组超出预算\n CAMPAIGN_OFFLINE_BUDGET: 302,\n // 新的广告组接近预算\n CAMPAIGN_PRE_OFFLINE_BUDGET_NEW: 303,\n\n // 广告主赠款\n GRANT_RECHARGE: 401,\n // 广告主补偿款\n COMPENSATE_RECHARGE: 402,\n // 广告主余额低于\n PRE_OFFLINE_BALANCE: 403,\n\n // 广告主审核通过\n ADV_AUDIT_SUCCESS: 501,\n // 广告主审核不通过\n ADV_AUDIT_REJECT: 502,\n // 广告主禁用\n ADV_AUDIT_DISABLE: 503,\n // 广告计划转换ID填错\n CONVERT_ID_DISABLE: 601,\n // CPA广告主反作弊策略\n ADVERTISER_CPA_CHEATING_MIN: 701,\n ADVERTISER_CPA_CHEATING_MAX: 800,\n // 附加创意建站页面修改\n TETRIS_ADDTION_FIX: 1001,\n VIDEO_CONVERT_INFO: 1300,\n // 抖音审核失败\n AD_AWEME_AUDIT_REJECT: 107,\n};\n\nexport const SwitchLang = 'switchLang'; // event switch lang key\n\nexport const AccountStatusKeys = {\n 0: 'common_status_disabled', // 已禁用\n 1: 'common_status_for_check', // 待审核\n 2: 'common_status_for_verify', // 待验证\n 3: 'common_status_check_fail', // 审核失败\n 4: 'common_status_check_success', // 审核成功\n 5: 'common_status_check_fail_end', // 审核失败/最终状态\n 6: 'common_status_modify_audit', // 修改审核中\n 7: 'common_status_modify_audit_fail', // 修改审核失败\n 8: 'common_status_punish', // 惩罚\n 9: 'common_status_bpm_audit', // 等待CRM审核\n 10: 'common_status_self_unaudited', // 自助开户待验证资质\n 11: 'common_status_avatar_auditing', // 头像审核中\n 12: 'common_status_bpm_file_contact', // SMB客户待合同归档\n 13: 'common_status_account_fee', // SMB广告主待缴纳开户费\n 14: 'common_status_public_auth', // 待对公身份验证\n 15: 'common_status_advertiser_contact_pending', // 合同未生效\n};\n\nexport const QualificationSource = {\n NOT_FROM_BC: 0,\n BC: 1, // 来自bc\n};\n\nexport const accountType = {\n // 未定义\n NO_SET: 0,\n // 品牌用户\n RESERVATION: 1,\n // 竞价用户\n AUCTION: 2,\n};\n\n// TTP 打标枚举\nexport const regionType = {\n TTP: 1,\n NON_TTP: 2,\n};\n\n\nexport const invoicePresentMap = {\n REQUIRED: 1, // 必填,展示\n RECOMMEND: 2, // 推荐填写,展示\n HIDE: 3, // 不展示\n};\n\nexport const QualificationType = {\n 0: 'description', // 广告主推广描述资质\n 1: 'license', // 营业执照\n 2: 'qualification', // 其他开户资质\n 3: 'adQualification', // 投放资质 非中国区无此字段,同步\n 4: 'sezQualification', // 国际化自助广告主sez税号,只有印度地区用到\n 10: 'musicQualification', // 音乐资质\n 11: 'medicineQualification', // 药品资质\n};\n\nexport const quailficationRejectReasonType = {\n MUSIC: 19, // 音乐资质类 拒审理由\n};\n\nexport const qualificationImgsType = 2; // 资质图片的type,和上面的2是一样的\n\nexport const QualificationStatus = {\n audit: 0, // 审核中\n reject: 1, // 拒绝\n success: 2, // 审核通过\n};\n\n// 资质类别\nexport const qualificationCategory = {\n musicQualification: 10, // 音乐资质\n medicineQualification: 11, // 药品资质\n};\n\n// 药品资质接口参数格式\nexport const medicineQualificationParams = {\n starling_namespace: 'module', // starling命名空间\n starling_project: 'TikTok_Ads', // starling项目\n category: qualificationCategory.medicineQualification, // 医药资质写死11\n pictures: [],\n content_fields: {\n country_codes: {\n label: 1, // 写死,用于字段标记\n starling_key: 'module_account_qualification_industrial_formitem_country', // 前端的多语言翻译key\n contents: [],\n },\n certification_number: {\n label: 2,\n starling_key: 'module_account_medical_certification_number',\n contents: [],\n },\n qualification_name: {\n label: 3,\n starling_key: 'module_account_medicine_name',\n contents: [],\n },\n certification_url: {\n label: 4,\n starling_key: 'module_account_medical_certification_url',\n contents: [],\n },\n supplement_info: {\n label: 5,\n starling_key: 'module_account_qualification_certification_info',\n contents: [],\n },\n },\n};\n\nexport const billStatus = {\n SUCCESS: 0,\n FAILED: -501302,\n PROCESSING: -501301,\n};\n\n// 自助客户升级直客客户的状态\nexport const upgradeStatus = {\n NO_PROCESS: 0, // 默认\n WAIT_USER_SIGN: 1, // 等待用户签署\n DURING_UPGRADE: 2, // 升级中\n UPGRADE_FAILED: 3, // 升级失败\n UPGRADE_SUCCESS: 4, // 升级成功\n};\n\nexport const EU_ISO_LIST = [\n 'AX',\n 'AL',\n 'AD',\n 'AT',\n 'BY',\n 'BE',\n 'BA',\n 'BG',\n 'HR',\n 'CY',\n 'CZ',\n 'DK',\n 'EE',\n 'FO',\n 'FI',\n 'FR',\n 'DE',\n 'GI',\n 'GR',\n 'GG',\n 'VA',\n 'HU',\n 'IS',\n 'IE',\n 'IM',\n 'IT',\n 'JE',\n 'LV',\n 'LI',\n 'LT',\n 'LU',\n 'MT',\n 'MD',\n 'MC',\n 'ME',\n 'NL',\n 'MK',\n 'NO',\n 'PL',\n 'PT',\n 'RO',\n 'RU',\n 'SM',\n 'RS',\n 'SK',\n 'SI',\n 'ES',\n 'SJ',\n 'SE',\n 'CH',\n 'UA',\n 'GB',\n];\n\nexport const STATE_GEOID = {\n HAWAII: 5855797,\n WEST_VIRGINIA: 4826850,\n NEW_MEXICO: 5481136,\n};\n","import { i18n } from 'src/utils/localeUtil';\nimport { CREATIVE_TYPE } from 'src/const/state/creative';\n\n// 应用下载广告类型\nexport const appTypeReg = {\n iosReg: /^https?:\\/\\/(itunes|apps).apple.com\\/.+\\/id(\\d+)(\\?.+)?/,\n androidReg: /^https?:\\/\\/play.google.com\\/store\\/apps\\/details\\?((.+&)?id=([A-Za-z0-9.\\-_]+))(&.+)?/,\n};\n\nexport const adAppType = {\n ANDROID: 201,\n IOS: 202,\n NO_LIMIT: 0,\n};\nexport const OptStatus = {\n ON: 0, // 打开\n OFF: 1, // 关闭\n FROZEN: 2, // 冻结\n};\n\nexport const pixelAndPixelEventStatus = {\n NotSupport: 0,\n NoRecentActivity: 1,\n Active: 2,\n};\nexport const pixelAssetRelationStatus = {\n EM: 0,\n SHARE_WITH_OTHERS: 1,\n SHARED_BY_OTHERS: 2,\n UNBUNDLING: 3,\n};\n\n// 广告计划出价方式\nexport const adPricing = {\n NONE: 0,\n CPM: 1,\n CPC: 2,\n CPT: 3,\n NOC: 4,\n FREE: 5,\n GD: 6,\n OCPC: 7,\n CPA: 7, // 实际上是OCPC,将错就错\n CPSD: 8, // CPA出价方式, SD的意思是start download\n OCPM: 9,\n CPV: 10,\n};\n\nexport const scheduleType = {\n CONTINOUSLY: 1,\n DATE_RANGE: 2,\n};\n\nexport const appRetargetingType = {\n NONE: 0,\n CUSTOM_AUDIENCE: 4,\n NEW_CUSTOM_AUDIENCE: 9,\n INCLUDE_SPECIFIC_EVENTS: 5,\n EXCLUDE_SPECIFIC_EVENTS: 6,\n INCLUDE_INTERACTE_USERS: 7,\n EXCLUDE_INTERACTE_USERS: 8,\n};\n\n/** app retargeting 人群包选项类型 */\nexport const AppRetargetingAudiencePackageType = {\n CUSTOMER_FILE: 0,\n APP_ACTIVITY: 3,\n PARTNER: 9,\n};\n\n// RF购买类型\nexport const rfBuyingType = {\n fixedBudget: 0, // 固定预算\n fixedImpression: 1, // 固定展示量\n fixedReachPercent: 2, // 固定Reach百分比\n fixedReach: 3, // 固定Reach量\n};\n\n// 出价方式(带文本)\nexport const bidType = [\n {\n text: '按点击(CPC)',\n value: 2,\n },\n {\n text: '按千次展示(CPM)',\n value: 1,\n },\n];\n// 落地页出价方式(带文本)\nexport const bidTypeExternal = [\n {\n text: '按点击(CPC)',\n value: 2,\n },\n {\n text: '按千次展示(CPM)',\n value: 1,\n },\n {\n text: '按转化(CPA)',\n value: 8,\n },\n];\n// 广告计划预算最低预算\nexport const minBudget = {\n CPC: 100,\n CPM: 100,\n CPSD: 300,\n OCPC: 300,\n};\n// OCPC\nexport const ocpc = {\n PHONE: 1,\n FORM: 2,\n MAP_SEARCH: 3,\n DOWNLOAD_FINISH: 4,\n INSTALL_FINISH: 15,\n};\n// OCPC转化目标\nexport const actionStatus = {\n UN_ACTIVE: 1,\n ACTIVE: 0,\n};\n// OCPC出价阶段\nexport const ocpcPhase = {\n PHASE_FIRST: 1,\n PHASE_SECOND: 2,\n};\n// 投放速度\n// TODO: AB Test @xupeixiang\nexport const flowmode1 = [\n {\n text: '加速投放',\n value: 0,\n },\n {\n text: '标准投放(推荐)',\n value: 1,\n },\n];\nexport const flowmode2 = [\n {\n text: '标准投放(推荐)',\n value: 1,\n },\n {\n text: '加速投放',\n value: 0,\n },\n];\nexport const ocpcSkip = [\n {\n text: '是',\n value: 1,\n },\n {\n text: '否',\n value: 0,\n },\n];\n// 广告计划状态选项,广告计划按状态筛选时发送英文字段名(历史原因)\nexport const adStatus = {\n NONE: '',\n NO_DELETE: 'no_delete',\n DELIVERY_OK: 'delivery_ok',\n NOT_DELIVERY: 'not_delivery',\n PARTIAL_DELIVERLY_OK: 'some_delivery_ok',\n TIME_NO_REACH: 'time_no_reach',\n TIME_DONE: 'time_done',\n NO_SCHEDULE: 'no_schedule',\n DELETE: 'delete',\n DISABLE: 'disable',\n CAMPAIGN_DISABLE: 'campaign_disable',\n CAMPAIGN_OFFLINE_BUDGET: 'campaign_offline_budget',\n AUDIT: 'audit',\n REAUDIT: 'reaudit',\n OFFLINE_AUDIT: 'offline_audit',\n AD_OFFLINE_BUDGET: 'ad_offline_budget',\n OFFLINE_BUDGET: 'offline_budget',\n OFFLINE_BALANCE: 'offline_balance',\n PRE_ONLINE: 'pre_online',\n CREATE: 'create',\n AD_DISABLE: 'ad_disable',\n AUDIT_STATUS_ERROR: 'audit_status_error',\n CLOSED: 'rf_closed', // rf的广告状态\n // 资产上下线状态\n AD_ASSET_AUTHORIZATION_LOST: 'ad_asset_authorization_lost',\n};\n\n// dashboard 广告组状态\nexport const adGroupStatus = {\n ACTIVE: 1,\n REJECTED: 2,\n OUT_BUDGET: 3,\n DIAGNOSIS: 4,\n};\n\n// 品牌广告的投放状态选项,为不影响adStatus所以另写\nexport const brandStatus = {\n FROZEN: 'frozen',\n PRE_OFFLINE_BUDGET: 'pre_offline_budget',\n DRAFT: 'draft',\n};\n\nexport const adStatusValues = {\n NONE: '',\n NO_DELETE: 'no_delete', // 后端实际不用该值,@TODO: remove\n DELIVERY_OK: 0,\n PARTIAL_DELIVERLY_OK: 63,\n TIME_NO_REACH: 11,\n TIME_DONE: 12,\n NO_SCHEDULE: 13,\n DELETE: 4,\n DISABLE: 5,\n CAMPAIGN_DISABLE: 6,\n CAMPAIGN_OFFLINE_BUDGET: 7,\n AUDIT: 2,\n REAUDIT: 3,\n OFFLINE_AUDIT: 41,\n AD_OFFLINE_BUDGET: 42,\n OFFLINE_BUDGET: 42,\n OFFLINE_BALANCE: 43,\n PRE_ONLINE: 45,\n CREATE: 21,\n AD_DISABLE: 61,\n PARTIAL_AUDIT: 62, // 部分国家审核完成,部分还在review\n AD_AUDIT_FAIL: 94,\n AUDIT_STATUS_ERROR: 101,\n};\n\n// 品牌广告的投放状态值,为不影响adStatusValue所以另写\nexport const brandStatusValues = {\n FROZEN: 51,\n PRE_OFFLINE_BUDGET: 44,\n DRAFT: 9,\n};\n\n// TODO:\n// 转化的批量操作数字和其他表格的还不一样,需要考虑什么时候和后端协调统一一下\nexport const convertBatchingOperation = {\n NONE: -1,\n START: 0,\n PAUSE: 2,\n DELETE: 1,\n};\nexport const convertStatusFilter = {\n ALL: -1,\n START: 0,\n DELETE: 1,\n PAUSE: 2,\n};\n// openurl对应权限\nexport const openurlRight = {\n // 审核&媒介\n AUDIT_AND_MEDIA: 1,\n // PM&RD\n PM_AND_RD: 2,\n // 普通广告主\n ADVERTISER: 3,\n // 白名单广告主\n WHITE_LIST: 4,\n};\n// 创建/编辑广告标识\nexport const createReviseOperation = {\n CREATE_FROM_CAMPAIGN: 0,\n CREATE_FROM_AD: 1,\n CREATE_FROM_CREATIVE: 2,\n REVISE_CAMPAIGN: 3,\n REVISE_FROM_AD: 4,\n REVISE_CREATIVE: 5,\n};\n// 广告类别\nexport const EnumAdClassify = [\n {\n key: 'adgroup_type_pruchase',\n value: 1,\n },\n {\n key: 'adgroup_type_trade',\n value: 2,\n },\n {\n key: 'adgroup_type_complimentary',\n value: 4,\n },\n {\n key: 'adgroup_type_promotion',\n value: 5,\n },\n {\n key: 'adgroup_type_make_good',\n value: 7,\n },\n];\nexport const adgroupIos14Switch = {\n unset: 0, // 存量数据,含义和ios14-一样\n ios14Below: 1, // ios14-\n ios14Above: 2, // ios14+\n all: 3, // 所有流量,目前仅用于RF广告\n};\nexport const ios14Threshold = 39;\nexport const nonDcOsvThreshold = 44;\n// 是否占用quota\nexport const IOS14QuotaType = {\n UNOCCUPIED: 1,\n OCCUPIED: 2,\n};\n// 垂直游戏OCPC ROI调价\nexport const roiType = {\n NO: 0,\n YES: 1,\n // ocpc进入第二阶段\n TWO: 2,\n};\n\nexport const platform = {\n ANDROID: 1,\n IOS: 2,\n PC: 16,\n ALL: 0,\n};\n\nexport const platformToAppType = {\n [platform.ANDROID]: adAppType.ANDROID,\n [platform.IOS]: adAppType.IOS,\n [platform.ALL]: adAppType.NO_LIMIT,\n [platform.PC]: adAppType.NO_LIMIT,\n};\n\nexport const AppStatusValue = {\n // app的状态\n // 100, 101, 200 表示app允许投放ios14\n // 300, 400, 401 表示app不允许投放ios14\n Permitted: 100,\n OwnershipVerifiedViaTTAppID: 101,\n Whitelisted: 200,\n Probated: 300,\n BlockedConflictAppAccount: 400,\n BlockedUnsupportedMMP: 401,\n};\nexport const AppStatusObject = {\n Permitted: {\n value: AppStatusValue.Permitted,\n hint: 'adgroup_app_permitted_hint',\n type: 'info',\n },\n OwnershipVerifiedViaTTAppID: {\n value: AppStatusValue.OwnershipVerifiedViaTTAppID,\n hint: '',\n },\n Whitelisted: {\n value: AppStatusValue.Whitelisted,\n hint: '',\n },\n Probated: {\n value: AppStatusValue.Probated,\n hint: 'adgroup_app_probated_hint',\n type: 'error',\n },\n BlockedConflictAppAccount: {\n value: AppStatusValue.BlockedConflictAppAccount,\n hint: 'adgroup_app_conflict_account_hint',\n type: 'error',\n },\n BlockedUnsupportedMMP: {\n value: AppStatusValue.BlockedUnsupportedMMP,\n hint: 'adgroup_app_unsupport_mmp_hint',\n type: 'error',\n },\n};\n// 平台选择类型\nexport const platformTypes = [\n {\n text: 'iOS',\n value: 2,\n },\n {\n text: 'Android',\n value: 1,\n },\n {\n text: 'PC',\n value: 16,\n },\n];\n// 转化目标类型\nexport const transformTargets = [\n {\n text: '转化',\n value: 11,\n },\n {\n text: '有效播放',\n value: 22,\n },\n {\n text: '点击',\n value: 2,\n },\n {\n text: '展示',\n value: 1,\n },\n];\n\n// DPA广告类型\nexport const dpaAdtype = {\n EXTERNAL: 0,\n DOWNLOAD: 1,\n};\n\n// cpt下i18nad信息流的推广目的\nexport const CptEnumPromotionPurposeI18nad = {\n EXTERNAL: '102',\n DOWNLOAD: '6',\n};\n\n// cpt下ies信息流 -》 强原生时的推广目的\nexport const CptEnumPromotionPurposeIesNative = {\n PURE_SHOW: '301',\n EXTERNAL: '301',\n DOWNLOAD: '303',\n};\n\n// cpt下ies信息流 -》 强导流时的推广目的\nexport const CptEnumPromotionPurposeIesGuide = {\n EXTERNAL: '1',\n DOWNLOAD: '6',\n};\n\n// 出价阶段\nexport const EnumBiddingPhase = {\n first: 1,\n second: 2,\n};\n\n/* eslint-disable quote-props */\n// 国际化 Android 可定向版本从Android 4.0 开始(4.0 以下DAU用户少于10个),\n// 到9.0 为止(新增8.1 / 9.0),与站内相比缺4.5 版本(貌似这个版本不是很官方?DAU < 10),\n// 顺序排列\nexport const ANDROID_OSV_OPTIONS = {\n '4.0': 8,\n '4.1': 9,\n '4.2': 10,\n '4.3': 11,\n '4.4': 12,\n // '4.5': 13,\n '5.0': 14,\n '5.1': 15,\n '6.0': 16,\n '7.0': 17,\n '7.1': 18,\n '8.0': 19,\n '8.1': 20,\n '9.0': 21,\n '10.0': 22,\n};\n\n// ios系统版本枚举,国际化 iOS 可定向版本从iOS 8.0 开始 (8.0 以下没有用户),\n// 到12.1 为止(新增11.4 / 12.0 / 12.1)\n// 顺序排列\nexport const IOS_OSV_OPTIONS = {\n '8.0': 10,\n '8.1': 11,\n '8.2': 12,\n '9.0': 15,\n '9.1': 16,\n '9.2': 17,\n '9.3': 18,\n '10.1': 19,\n '10.2': 20,\n '10.3': 21,\n '11.0': 22,\n '11.1': 23,\n '11.2': 24,\n '11.3': 25,\n '11.4': 26,\n '12.0': 27,\n '12.1': 28,\n '12.2': 29,\n '12.3': 30,\n '12.4': 31,\n '13.0': 32,\n '13.1': 33,\n '13.2': 34,\n '13.3': 35,\n '13.4': 36,\n '13.5': 37,\n};\n\n// 批量出价方式\nexport const bidModeNumber = {\n range: 1,\n percent: 2,\n money: 3,\n};\n\nexport const bidModeOptions = [\n {\n value: 1,\n key: 'range',\n label: '幅度',\n },\n {\n value: 2,\n key: 'percent',\n label: '百分比',\n },\n {\n value: 3,\n key: 'money',\n label: '金额',\n },\n];\n\nexport const smartBidTypes = {\n standard: 0,\n maxConvertion: 3, // maxcv bid 后面会下掉\n maxConvertionNoBid: 7, // no bid 与 maxcv nobid 的 smart bid type 值都是 7\n};\n// adgroup 的售卖类型\nexport const buyType = [\n {\n value: 1,\n labelKey: 'adgroup_purchase',\n },\n {\n value: 2,\n labelKey: 'adgroup_trade',\n },\n {\n value: 4,\n labelKey: 'adgroup_complimentary',\n },\n {\n value: 5,\n labelKey: 'adgroup_promotion',\n },\n {\n value: 7,\n labelKey: 'adgroup_make_good',\n },\n];\n\n// 深度转化出价方式\nexport const DEEP_BID_TYPE = {\n NONE: 0,\n MIN: 1,\n PACING: 2,\n IAEO: 101,\n VO_COST_CAP: 7,\n VO_MINIMUN_ROAS: 108,\n VO_HIGHEST_VALUE: 109,\n};\nexport const batchVersion = {\n latest: 0, // 最新版本\n canUpdate: 1, // 可升级版本\n offline: 2, // 下线版本\n skipVersion: 3, // 废弃版本\n willUpdata: 4, // 普通用户预上线版本\n};\n\nexport const bulkCreateAdsStatus = {\n creating: 0, // 创建中\n someError: 1, // 部分创建成功\n createFail: 2, // 完全创建失败\n createSuccess: 3, // 全部创建成功\n};\n// 三方监测链接类型\n\nexport const TrackType = {\n CLICK: 1,\n IMPRESSION: 2,\n OTHERS: 3,\n VIDEO_VIEWABILITY: 100, // 视频可见性检测\n};\n\n// 行为定向的时长范围框选\nexport const BEHAVIOR_DAYS = {\n NONE: {\n id: 0,\n label: 0,\n },\n IN_7_DAY: {\n id: 7,\n label: 7,\n },\n IN_15_DAY: {\n id: 15,\n label: 15,\n },\n};\n// 拒审内容类型\nexport const auditRejectContentType = {\n contentString: 1,\n contentImg: 2,\n contentVideo: 3,\n};\nexport const operationTypes = {\n // 批量二期的操作类型\n importAds: 1,\n downloadTemplate: 2,\n exportAdSet: 3,\n exportAppList: 4,\n exportPixelList: 5,\n exportAudienceList: 6,\n};\n\n// 人群包类型\nexport const AUDIENCE_TYPE = {\n RETARGET: {\n i18n: 'module_dpa_ad_retarget',\n value: 1,\n hint: 'module_dpa_ad_retarget_hint',\n disableHint: 'module_dpa_ad_retarget_disabled_hint',\n },\n NORMAL: {\n i18n: 'module_adgroup_find_prospective_customers',\n value: 0,\n hint: 'module_adgroup_find_prospective_customers_hint',\n disableHint: 'module_adgroup_find_prospective_customers_disabled_hint',\n },\n};\n\n// 行为兴趣的 Video Action\nexport const VIDEO_ACTIONS = [\n { label: 'Finish', i18nKey: 'module_adgroup_behavior_video_action_finish', value: 0 },\n { label: 'Like', i18nKey: 'module_adgroup_behavior_video_action_like', value: 1 },\n { label: 'Comment', i18nKey: 'module_adgroup_behavior_video_action_comment', value: 2 },\n { label: 'Share', i18nKey: 'module_adgroup_behavior_video_action_share', value: 3 },\n];\n// 视频来源\nexport const VIDEO_BUSINESS = {\n QUICK_OPTIMIZATION_TOOLS: 38, // 一键优化工具\n VIDEO_EDITOR_TOOLS: 18, // 视频编辑器\n AD_SITE: 1, // ad后台本地上传\n PICTURE_TO_VIDEO: 6, // 模板视频\n OPEN_API: 8, // OpenAPI\n MICRO_MOVIE: 23, // 微电影\n SHOPIFY: 46, // Shopify\n FAST_CREATION: 47, // 移动创意工具 for tt4b mobile\n QUICK_OPTIMIZATION_LITE: 50, // Precheck QuickFix\n VIDEO_AUTO_SCALE: 53, // 尺寸自适应\n SMART_SOUND_TRACK: 54, // 智能配乐\n SMB_DIAGNOSIS_TOOLS: 70, // smb一键优化\n TT4B_DIAGNOSIS_TOOLS: 57, // TT4B一键优化\n};\n\nexport const MATERIAL_TYPE = {\n IMAGE: 2,\n VIDEO: 3,\n};\n// DPA视频展示模式\nexport const DPA_VIDEO_DISPLAY_MODE_TYPE = {\n AUTO: 1,\n CUSTOM: 2,\n};\n\n// DPA 重定向事件日期选择列表\nexport const DPA_RETARGET_DAY_LIST = [1, 2, 3, 7, 14, 30, 60, 90, 180];\n\nexport const DEEP_EXTERNAL_ACTION = {\n ACTIVE_REGISTER: 13, // 激活且注册\n ACTIVE_PAY: 14, // 激活且付费\n NEXT_DAY_OPEN: 39, // 激活且次留\n LTV_ROI: 110, // ROI\n GAME_ADDICTION: 25, // 关键行为\n CUSTOMER_EFFECT: 26, // 有效获客\n SOCIAL_ROI: 27, // 社交ROI\n FIRST_DAY_ROI: 160, // 首日roi\n UG_ROI: 178, // 内广ROI\n CLUE_CONFIRM: 194, // 线索-回访信息确认\n CLUE_INTERFLOW: 195, // 线索-回访加为好友\n CLUE_HIGH_INTENTION: 196, // 线索-回访高潜成交\n CLUE_PAY_SUCCEED: 218, // 线索-支付存在意向\n PREMIUM_ROI: 232, // 保险ROI\n};\n\nexport const CREATOR_FOLLOWING_ACTIONS = [\n { label: 'Following', i18nKey: 'adgroup_target_interest_add_following_behaviors_following', value: 4 },\n { label: 'View Homepage', i18nKey: 'adgroup_target_interest_add_following_behaviors_homepage', value: 5 },\n];\n\nexport const BEHAVIOR_TARGETING_SCENES_TYPE = {\n video: 2,\n creator: 11,\n hashtag: 13,\n};\n\nexport const TargetingKeywordsScene = {\n INTEREST_CATEGORIES: 10,\n INTEREST_KEYWORDS: 12,\n BEHAVIOR_HASHTAG: 13,\n};\n\nexport const TargetingKeywordsSearchMode = {\n FUZZY: 1,\n SEMANTIC: 2,\n};\n\nexport const TargetingKeywordsSearchStatus = {\n ONLINE: 1,\n OFFLINE: 2,\n PRE_OFFLINE: 3,\n LEGAL_OFFLINE: 4,\n};\n\nexport const TargetingKeywordsType = {\n INTEREST_CATEGORIES: 1,\n INTEREST_KEYWORDS: 2,\n HASHTAG: 3,\n HASHTAG_GROUP: 4,\n};\n\n/**\n * 创意类型对应到计划层级的标志\n */\nexport const STYLE_TYPE = {\n DEFAULT: 0,\n STORE_FRONT: 11,\n};\n\n// 批量报错信息枚举\nexport const BULK_ERROR_TYPE = {\n ERROR: 0,\n WARNING: 1,\n};\n// 批量账号状态报错枚举\nexport const BULK_ACCOUNT_ERROR_TYPE = {\n QUALIFICATION: 2, // 没有补全资质\n PAYMENT: 3, // 没有选payment方式\n ALL: 4, // 上述两种情况都有\n};\n/**\n * 诊断建议reason_type对应枚举值\n */\nexport const REASON_TYPE = {\n NORMAL: 100,\n LOW_BID: 101,\n LOW_RESOLUTION: 201, // 分辨率过低\n INSUFFICIENT_LENGTH: 202, // 长度短\n NO_BACKGROUND_MUSIC: 203, // 无音乐\n LOADING_PAGE_TIME: 204, // 落地页加载时间过长\n PIXEL_NO_RECENT_ACTION: 301, // Pixel无近期活动\n};\n\n/**\n * 检查对应平台Target url是否存在的枚举值\n */\nexport const EXPECT_TARGETURL_FIELD = {\n IOS: 'landingUrl.targetUrlIosApp',\n ANDROID: 'landingUrl.targetUrlAndroidApp',\n};\n\n/**\n * 是否期望Target url存在的枚举值\n */\nexport const ISEXPECT_TARGETURL = {\n YES: 0,\n NO: 1,\n};\n// adgroup suggestion sideslip枚举\nexport const adgroupSuggestionType = {\n none: -1,\n audit: 0,\n diagnosis: 1,\n};\n\nexport const AutoTargetingEnum = {\n AUTO: 1, // 自动定向\n MANUAL: 0, // 手动定向\n};\n// dpa重定向的受众选项\nexport const DPA_RETARGET_OPTIONS = [\n {\n label: 'module_dpa_ad_custom_viewed',\n value: 4002,\n },\n {\n label: 'module_dpa_ad_custom_added',\n value: 4003,\n },\n {\n label: 'module_dpa_ad_custom_purchased',\n value: 4006,\n },\n];\n\n// url跳转枚举\nexport const URL_ACTION_TYPE = {\n DIAGNOSIS: 1,\n OPENEDIT: 2,\n OPEN_SUGGESTION: 3,\n};\n\nexport const MaterialStatusMap = {\n 1: {\n nameI18nKey: 'data_creative_status_exploring',\n hoverI18nKey: 'data_creative_status_exploring_hover',\n },\n 2: {\n nameI18nKey: 'data_creative_status_running',\n hoverI18nKey: 'data_creative_status_running_hover',\n },\n 3: {\n nameI18nKey: 'data_creative_status_limited',\n hoverI18nKey: 'data_creative_status_limited_hover',\n },\n 4: {\n nameI18nKey: 'data_creative_status_inactive',\n hoverI18nKey: '',\n },\n};\n\n// Rnf 库存位置枚举\nexport const FEED_POSITION_ENUM = {\n STANDARD: false,\n PREMIUM: true,\n};\n\nexport const FEED_POSITION_OPTIONS = [\n {\n i18n_key: 'module_adgroup_standard_feed_title',\n desc: 'module_adgroup_standard_feed_desc',\n id: FEED_POSITION_ENUM.STANDARD,\n },\n {\n i18n_key: 'module_adgroup_top_feed_title',\n desc: 'module_adgroup_top_feed_desc',\n id: FEED_POSITION_ENUM.PREMIUM,\n },\n];\n\n// 可见性产品枚举\nexport const ViewabilityVerificationType = {\n MOAT: 1,\n DV: 2,\n IAS: 3,\n};\n\nexport const VOStatus = {\n QUALIFIED: 1,\n NOEVENT: 2,\n NOVALUE: 3,\n INSUFFICIENT_EVENTS: 4,\n NOTSUPPORT: 200,\n};\n\nexport const voStatusAppOptions = () => ({\n [VOStatus.INSUFFICIENT_EVENTS]: {\n showPopover: true,\n disabled: true,\n hoverTitle: i18n.t('module_adgroup_bidding_vo_event_insufficient_title'),\n hoverContext: i18n.t('module_adgroup_bidding_vo_app_event_insufficient_desc', { eventNum: 30, dayNum: 7 }),\n },\n [VOStatus.NOEVENT]: {\n showPopover: true,\n disabled: true,\n hoverTitle: i18n.t('module_adgroup_bidding_vo_app_waiting_title'),\n hoverContext: i18n.t('module_adgroup_bidding_vo_app_waiting_desc'),\n },\n [VOStatus.NOVALUE]: {\n showPopover: true,\n disabled: true,\n hoverTitle: i18n.t('module_adgroup_bidding_vo_event_value_require_title'),\n hoverContext: i18n.t('module_adgroup_bidding_vo_app_event_value_require_desc'),\n },\n [VOStatus.QUALIFIED]: {\n showPopover: false,\n disabled: false,\n hoverTitle: '',\n hoverContext: '',\n },\n [VOStatus.NOTSUPPORT]: {\n showPopover: false,\n disabled: false,\n hoverTitle: '',\n hoverContext: '',\n },\n});\n\nexport const voStatusWebsiteOptions = () => ({\n [VOStatus.INSUFFICIENT_EVENTS]: {\n showPopover: true,\n disabled: true,\n hoverTitle: i18n.t('module_adgroup_bidding_vo_event_insufficient_title'),\n hoverContext: i18n.t('module_adgroup_bidding_vo_website_event_insufficient_desc', { eventNum: 20, dayNum: 7 }),\n },\n [VOStatus.NOEVENT]: {\n showPopover: true,\n disabled: true,\n hoverTitle: i18n.t('module_adgroup_bidding_vo_website_no_event_title'),\n hoverContext: i18n.t('module_adgroup_bidding_vo_website_no_event_desc'),\n },\n [VOStatus.NOVALUE]: {\n showPopover: true,\n disabled: true,\n hoverTitle: i18n.t('module_adgroup_bidding_vo_event_value_require_title'),\n hoverContext: i18n.t('module_adgroup_bidding_vo_website_event_value_require_desc'),\n },\n [VOStatus.QUALIFIED]: {\n showPopover: false,\n disabled: false,\n hoverTitle: '',\n hoverContext: '',\n },\n [VOStatus.NOTSUPPORT]: {\n showPopover: false,\n disabled: false,\n hoverTitle: '',\n hoverContext: '',\n },\n});\n\nexport const TargetingExpansionType = {\n AGE: 1,\n GENDER: 2,\n INTEREST_BEHAVIOR: 3,\n AUDIENCE: 4,\n};\n\n// 品牌安全产品枚举\nexport const BrandSafetyTrackTypeMap = {\n UNSET: 0,\n ZEFR: 1,\n IAS: 2,\n DV: 3,\n};\n\n// campagin creative列表页query_list按需请求投前指标 132+2\nconst adv_metrics = [\n 'adv_region_type',\n];\nconst campaign_metrics = [\n 'ab_test',\n 'campaign_name',\n 'campaign_budget',\n 'campaign_budget_mode',\n 'campaign_status',\n 'campaign_primary_status',\n 'objective_type',\n 'campaign_opt_status',\n 'campaign_isdel',\n 'landing_type',\n 'campaign_db_status',\n 'budget_optimize_switch',\n 'campaign_struct_version',\n 'campaign_create_time',\n 'campaign_dedicate_type',\n 'po_number',\n 'campaign_deep_bid_type',\n 'campaign_roas_bid',\n];\nconst ad_metrics = [\n 'ad_name',\n 'ad_rating_tags',\n 'ad_reasons',\n 'ad_ref_app_id',\n 'ad_audit_status',\n 'ad_audit_result_type',\n 'ad_status',\n 'ad_db_status',\n 'bid',\n 'bid_objective',\n 'ad_budget',\n 'ad_budget_mode',\n 'ad_create_time',\n 'ad_is_previewable',\n 'ad_ref_app_id',\n 'ad_ref_pixel_id',\n 'app_type',\n 'country_code',\n 'audit_rating_type',\n 'ad_can_copy',\n 'ad_last_audit_time',\n 'ad_opt_status',\n 'ad_primary_status',\n 'bid_smart',\n 'cpa_bid',\n 'content_type',\n 'country_ids',\n 'cpa_bid_objective',\n 'cpa_skip_first_phrase',\n 'cpa_phrase',\n 'cpv_video_duration_type',\n 'creative_material_mode',\n 'deep_bid_objective',\n 'deep_convert_cnt_note',\n 'deep_convert_cost_note',\n 'deep_convert_cvr_note',\n 'deep_cpa_bid',\n 'deep_external_action',\n 'external_action',\n 'effect_cost_note',\n 'effect_note',\n 'effect_rate_note',\n 'end_time',\n 'start_time',\n 'inventory_flow',\n 'inventory_flow_type',\n 'has_affected_creative',\n 'action_days',\n 'inventory_status',\n 'objective_type',\n 'optimize_goal',\n 'pricing',\n 'product_platform_id',\n 'product_set_id',\n 'schedule_type',\n 'schedule',\n 'smart_bid_type',\n 'convert_id',\n 'ad_inventory_status',\n 'campaign_id',\n 'ad_struct_version',\n 'external_type',\n 'aeo_type',\n 'external_url',\n 'scheduled_budget_timestamp',\n 'scheduled_budget',\n 'ad_is_drop',\n 'ad_suggestion_type',\n 'diagnosis_status',\n 'learn_phase_status',\n 'diagnosis_detail',\n 'diagnosis_time',\n 'flow_control_mode',\n 'roas_bid',\n 'search_delivery_type',\n 'promotion_website_type',\n 'ab_test_status',\n];\nconst creative_metrics = [\n 'creative_title',\n 'creative_name',\n 'creative_status',\n 'creative_primary_status',\n 'creative_opt_status',\n 'creative_audit_result_type',\n 'call_to_action',\n 'creative_db_status',\n 'creative_rating_tags',\n 'creative_is_previewable',\n // 'creative_last_audit_time',\n 'language_list',\n 'image_info',\n 'image_mode',\n 'video_info',\n 'campaign_id',\n 'creative_is_viewable',\n 'ad_id',\n 'creative_inventory_status',\n 'item_source',\n // 'creative_reasons',\n 'creative_type',\n 'page_id',\n 'call_to_action_id',\n 'creative_item_source',\n 'inventory_status_types',\n 'creative_struct_version',\n 'creative_create_time',\n 'creative_external_url',\n 'creative_avatar_icon',\n 'creative_app_name',\n 'identity_type',\n 'identity_id',\n 'creative_explore_status',\n 'identity_bc_id',\n 'page_id_status',\n// 'video_info_source',\n// 'video_info_download_allowed',\n];\n\nexport const RequiredTargets = [\n ...adv_metrics,\n ...campaign_metrics,\n ...ad_metrics,\n ...creative_metrics,\n];\nexport const checkIsRealLive = creativeType => CREATIVE_TYPE.SHOP_LIVE_REAL_TIME === creativeType;\n// 广告类型\nconst ADS_TYPE = {\n search: '3', // 搜索广告类型是'3'\n};\n// 使用此方法判断是否属于搜索广告\nexport const checkIsSearch = searchDeliveryType => searchDeliveryType === ADS_TYPE.search;\n// 搜索广告一期campaign允许披露的类型枚举\nexport const campaignPermitSearchEnum = [1, 2, 3, 4, 5, 8];\n\n// age定向选项\nexport const targetAgeOptions = [\n { value: '18,24', label: '18-24' },\n { value: '25,34', label: '25-34' },\n { value: '35,44', label: '35-44' },\n { value: '45,54', label: '45-54' },\n { value: '55,100', label: '55+' },\n];\nexport const HHIType = {\n TOP5: 1,\n TOP10: 2,\n TOP10_25: 3,\n TOP25_50: 4,\n};\nexport const HHIList = [\n {\n label: i18n.t('module_adgroup_target_hhi_item_label', { num: '10%' }),\n id: HHIType.TOP10,\n },\n {\n label: i18n.t('module_adgroup_target_hhi_item_label', { num: '10%-25%' }),\n id: HHIType.TOP10_25,\n },\n {\n label: i18n.t('module_adgroup_target_hhi_item_label', { num: '25%-50%' }),\n id: HHIType.TOP25_50,\n },\n {\n label: i18n.t('module_adgroup_target_hhi_item_label', { num: '5%' }),\n id: HHIType.TOP5,\n },\n];\n","export const AppProfilePageType = {\n invalid: -1,\n unset: 0,\n on: 1,\n off: 2,\n};\n","// 竞价地区文件国家code码\n// 注意仅仅保留第国家节点,其他节点升级成通过接口获取数据,本文件不推荐使用。\n\nexport const BidRegion = [\n {\n id: 6252001,\n code: 'US',\n name: 'america',\n },\n {\n id: 3469034,\n code: 'BR',\n name: 'brazil',\n },\n {\n id: 1861060,\n code: 'JP',\n name: 'japan',\n },\n {\n id: 1269750,\n code: 'IN',\n name: 'india',\n },\n {\n id: 2635167,\n code: 'GB',\n name: 'uk',\n },\n {\n id: 2921044,\n code: 'DE',\n name: 'germany',\n },\n {\n id: 3017382,\n code: 'FR',\n name: 'france',\n },\n {\n id: 3175395,\n code: 'IT',\n name: 'italy',\n },\n {\n id: 2510769,\n code: 'ES',\n name: 'spain',\n },\n {\n id: 2017370,\n code: 'RU',\n name: 'russia',\n },\n { id: 660013, code: 'FI', name: 'finland' },\n { id: 2661886, code: 'SE', name: 'sweden' },\n { id: 3996063, code: 'MX', name: 'mexico' },\n { id: 798544, code: 'PL', name: 'poland' },\n { id: 3865483, code: 'AR', name: 'argentina' },\n { id: 6251999, code: 'CA', name: 'canada' },\n {\n id: 357994,\n code: 'EG',\n name: 'egypt',\n },\n { id: 2750405, code: 'NL', name: 'netherlands' },\n {\n id: 298795,\n code: 'TR',\n name: 'turkey',\n },\n { id: 2077456, code: 'AU', name: 'australia' },\n { id: 3686110, code: 'CO', name: 'colombia' },\n {\n id: 102358,\n code: 'SA',\n name: 'saudi-arabia',\n },\n {\n id: 290557,\n code: 'AE',\n name: 'united-arab-emirates',\n },\n { id: 953987, code: 'ZA', name: 'south-africa' },\n { id: 2589581, code: 'DZ', name: 'algeria' },\n { id: 2542007, code: 'MA', name: 'morocco' },\n { id: 285570, code: 'KW', name: 'kuwait' },\n {\n id: 1605651,\n code: 'TH',\n name: 'thailand',\n },\n {\n id: 1562822,\n code: 'VN',\n name: 'vietnam',\n },\n {\n id: 1835841,\n code: 'KR',\n name: 'korea',\n },\n {\n id: 1643084,\n code: 'ID',\n name: 'indonesia',\n },\n { id: 1668284, code: 'TW', name: 'taiwan' },\n { id: 1819730, code: 'HK', name: 'hongkong' },\n { id: 1694008, code: 'PH', name: 'philippines' },\n {\n id: 1733045,\n code: 'MY',\n name: 'malaysia',\n },\n {\n id: 6251999,\n code: 'CA',\n name: 'canada',\n },\n { id: 286963, code: 'OM', name: 'Oman' },\n { id: 289688, code: 'QA', name: 'Qatar' },\n { id: 290291, code: 'BH', name: 'Bahrain' },\n { id: 294640, code: 'IL', name: 'Israel' },\n { id: 390903, code: 'GR', name: 'Greece' },\n { id: 630336, code: 'BY', name: 'Belarus' },\n { id: 690791, code: 'UA', name: 'Ukraine' },\n { id: 719819, code: 'HU', name: 'Hungary' },\n { id: 798549, code: 'RO', name: 'Romania' },\n { id: 1168579, code: 'PK', name: 'pakistan' },\n { id: 1522867, code: 'KZ', name: 'Kazakhstan' },\n { id: 1831722, code: 'KH', name: 'cambodia' },\n { id: 1880251, code: 'SG', name: 'singapore' },\n { id: 2186224, code: 'NZ', name: 'New Zealand' },\n { id: 2264397, code: 'PT', name: 'Portugal' },\n { id: 2623032, code: 'DK', name: 'Denmark' },\n { id: 2658434, code: 'CH', name: 'Switzerland' },\n { id: 2782113, code: 'AT', name: 'Austria' },\n { id: 2802361, code: 'BE', name: 'Belgium' },\n { id: 2963597, code: 'IE', name: 'Ireland' },\n { id: 3077311, code: 'CZ', name: 'Czechia' },\n { id: 3144096, code: 'NO', name: 'Norway' },\n { id: 3895114, code: 'CL', name: 'Chile' },\n { id: 3932488, code: 'PE', name: 'Peru' },\n];\n\n// 隐藏印度3级地域\n// const filterCitys = ['IN'];\n// const filterChildren = (regs = [], level = 0, countryCode = '') => {\n// const l = level + 1;\n// Object.keys(regs).forEach((key) => {\n// const curObj = regs[key];\n// const code = curObj.code || countryCode;\n// // 如果有children属性,则递归进去\n// if (filterCitys.includes(code) && curObj.children && curObj.children.length > 0) {\n// if (l === 2) {\n// delete curObj.children;\n// } else {\n// filterChildren(curObj.children, l, code);\n// }\n// }\n// });\n// return regs;\n// };\n\n// export const BidRegion = filterChildren(BidRegionOld, 0, '');\n\nexport const BidRegionMap = BidRegion.reduce((pre, cur) => {\n pre[cur.code] = cur.id;\n return pre;\n}, {});\n\n\n/**\n * 将国家的 code 转成对应的 id\n *\n * @export\n * @param {*} codeList code 列表\n * @returns\n */\nexport function countryCodeToId(codeList = []) {\n if (!codeList) {\n return [];\n }\n return codeList.map((code) => {\n const target = BidRegion.find(country => country.code === code);\n return target?.id;\n });\n}\n\n/**\n * 将国家的 id 转成 code\n *\n * @export\n * @param {*} idList id 列表\n * @returns\n */\nexport function countryIdToCode(idList = []) {\n if (!idList) {\n return [];\n }\n return idList.map((id) => {\n const target = BidRegion.find(country => country.id === id);\n return target?.code;\n });\n}\n","/** budget 来源的类型 */\nexport const BudgetSourceType = {\n /** 点击文案中的 apply */\n apply: 1,\n /* 点击展开中的 apply */\n detailApply: 2,\n /** 手动填写 */\n manual: 3,\n};\n","\nexport const SHOP_NOW_CTA = {\n id: 'shop_now',\n key: 'module_adformat_shop_now',\n};\n\n/**\n * CA 编辑器新增的 CTA\n * 平台只用于预览的文案处理,不会披露给用户,hidden 在下拉选择列表中过滤掉\n * 这些 CTA 如果平台之后支持可以移到 TTCallToAction 并去掉 hidden 即可\n */\nconst CollectionAdsCTAs = [\n {\n id: 'pre_order_now_cta',\n key: 'module_adformat_pre_order_now_cta',\n hidden: true,\n },\n {\n id: 'interested_cta',\n key: 'module_adformat_interested_cta',\n hidden: true,\n },\n {\n id: 'install_now_cta',\n key: 'module_adformat_install_now_cta',\n hidden: true,\n },\n {\n id: 'get_showtimes_cta',\n key: 'module_adformat_get_showtimes_cta',\n hidden: true,\n },\n {\n id: 'listen_now_cta',\n key: 'module_adformat_listen_now_cta',\n hidden: true,\n },\n {\n id: 'subscribe_cta',\n key: 'module_adformat_subscribe_cta',\n hidden: true,\n },\n {\n id: 'get_tickets_now_cta',\n key: 'module_adformat_get_tickets_now_cta',\n hidden: true,\n },\n {\n id: 'read_more_cta',\n key: 'module_adformat_read_more_cta',\n hidden: true,\n },\n {\n id: 'experience_now_cta',\n key: 'module_adformat_experience_now_cta',\n hidden: true,\n },\n {\n id: 'order_now_cta',\n key: 'module_adformat_order_now_cta',\n hidden: true,\n },\n {\n id: 'view_now_cta',\n key: 'module_adformat_view_now_cta',\n hidden: true,\n },\n {\n id: 'visit_store_cta',\n key: 'module_adformat_visit_store_cta',\n hidden: true,\n },\n {\n id: 'get_quote_cta',\n key: 'module_adformat_get_quote_cta',\n hidden: true,\n },\n];\n/**\n * id为平台传给后端的value\n * key对应平台的多语言配置\n * { call_to_action: ${id} }\n */\n\n// 竞价 TT call_to_action 文案\nexport const TTCallToAction = [\n {\n id: 'learn_more',\n key: 'module_adformat_learn_more',\n },\n {\n id: 'download_now',\n key: 'module_adformat_download_now',\n },\n SHOP_NOW_CTA,\n {\n id: 'sign_up',\n key: 'module_adformat_sign_up',\n },\n {\n id: 'contact_us',\n key: 'module_adformat_contact_us',\n },\n {\n id: 'apply_now',\n key: 'module_adformat_apply_now',\n },\n {\n id: 'book_now',\n key: 'module_adformat_book_now',\n },\n {\n id: 'play_game_cta',\n key: 'module_adformat_play_game',\n },\n {\n id: 'watch_now',\n key: 'module_adformat_watch_now',\n },\n {\n id: 'read_more',\n key: 'module_adformat_read_more',\n },\n {\n id: 'view_now',\n key: 'module_adformat_view_now',\n },\n {\n id: 'get_quote',\n key: 'module_adformat_get_quote',\n },\n {\n id: 'order_now',\n key: 'module_adformat_order_now',\n },\n {\n id: 'install_now',\n key: 'module_adformat_install_now',\n },\n {\n id: 'get_showtimes',\n key: 'module_adformat_get_showtimes',\n },\n {\n id: 'listen_now',\n key: 'module_adformat_listen_now',\n },\n {\n id: 'interested',\n key: 'module_adformat_interested',\n },\n {\n id: 'subscribe',\n key: 'module_adformat_subscribe',\n },\n {\n id: 'get_tickets_now',\n key: 'module_adformat_get_tickets_now',\n },\n {\n id: 'experience_now',\n key: 'module_adformat_experience_now',\n },\n {\n id: 'preorder_now',\n key: 'module_adformat_preorder_now',\n },\n {\n id: 'visit_store',\n key: 'module_adformat_visit_store',\n },\n {\n id: 'brand_lift_study',\n key: 'module_adformat_brand_lift_study',\n },\n {\n id: 'view_profile',\n key: 'adformat_view_profile',\n },\n {\n id: 'join_this_hashtag',\n key: 'module_adformat_join_this_hashtag',\n },\n {\n id: 'view_video_with_this_effect',\n key: 'module_adformat_view_video_with_this_effect',\n },\n {\n id: 'shoot_with_this_effect',\n key: 'module_adformat_shoot_with_this_effect',\n },\n];\n\n// Dynamic CTA 非英语国家候选集合\nexport const CALL_TO_ACTION_NOT_EN = [\n ...TTCallToAction,\n {\n id: 'play_button',\n key: 'module_adformat_play_appname',\n },\n {\n id: 'play_now_button',\n key: 'module_adformat_play_appname_now',\n },\n {\n id: 'download_button',\n key: 'module_adformat_download_appname',\n },\n {\n id: 'install_button',\n key: 'module_adformat_install_appname',\n },\n {\n id: 'install_now_button',\n key: 'module_adformat_install_appname_now',\n },\n {\n id: 'go_to_app_store_button',\n key: 'module_adformat_goto_appstore',\n },\n {\n id: 'go_to_google_play_button',\n key: 'module_adformat_goto_google_play',\n },\n];\n\nexport const SHOP_LIVE_CTA = {\n id: 'watch_live',\n key: 'module_creative_watch_live',\n};\n\n/**\n * 所有 CTAs,主要用于预览的翻译\n * 包含了 CA 不用披露的部分\n */\nexport const AllCallToActions = [\n ...TTCallToAction,\n ...CollectionAdsCTAs,\n SHOP_LIVE_CTA,\n];\n\n// CTA类型\nexport const ADVANCED_CREATIVE_TYPE = {\n customization: 12, // 自定义CTA(下拉框选择CTA)\n autoOptimized: 60, // 智能优选(弹窗选择多个CTA,然后后台通过模型分配推荐的CTA)\n collectionAds: 54, // collection ads 对应的值\n default: 11, // cat智能优选默认用这个值,在cta优选组件初始化的时候,改为autoOptimized:60\n};\n\n// 目前仅支持,投放地美国、英国、澳大利亚、加拿大\nexport const CTA_OPTIMIZED_SUPPORT_COUNTRY = [\n '6252001', // 美国\n '2635167', // 英国\n '2077456', // 澳大利亚\n '6251999', // 加拿大\n];\n","\nimport {\n isDpaWhite, isRFWhite, isLeadAdsWhite, isEngagementWhite, isCatalogAssetWhite, isRFEngagementWhite,\n isRFAppinstall, isShopWhite, isCreativeHasIdentityWhite, isIOS14MultipleWhite, isIOS14MultipleFiveWhite,\n isMigrationDSAAndCAWhite, isShopCreateDisabled,\n} from 'src/const/whiteList';\n// import { HELP_CENTER } from '../href';\nimport { identityTypeMap } from 'src/const/creative/identity';\nimport store from 'src/store/';\nimport { Scenario, ShopType } from './shop';\n\nexport const campaignType = {\n oldNormalCampaign: 0,\n uncertainCampaign: 1, // 中间态,campaign层级传参\n dedicatedCampaign: 2,\n};\n\n// 新的推广类型\nexport const contentType = { // external_type枚举值\n website: 102,\n app: [201, 202], // android app 和ios app\n brandPureExposure: 12, // 品牌纯曝光\n dpaDeeplink: 501,\n leadAds: 601,\n // 下沉后的 reach/vv 的 external_type 为这个枚举值\n // 表明可能是落地页也可能是品牌纯曝光\n ExternalOrDisplay: 602,\n promotionVideo: -1, // 虚拟的video\n};\nexport const campaignQuotaSum = 11;\n\nexport const DCQuotaSum = {\n quotaFive: 5,\n quotaTwo: 2,\n quotaOne: 1,\n};\nexport const getAdgroupDCQuota = () => {\n const isDcQuotaTwo = (isIOS14MultipleWhite() ? DCQuotaSum.quotaTwo : DCQuotaSum.quotaOne);\n return isIOS14MultipleFiveWhite() ? DCQuotaSum.quotaFive : isDcQuotaTwo;\n};\n// 新的推广类型\nexport const campaignQuotaConfig = { // campaignQuota三种状态阈值\n insufficient: 3, // 大于0 且小于等于三个,quota不足\n empty: 0, // quota empty\n sufficient: 4, // 大于等于4 quota 充足\n};\n// export const campaignQuotaNum = 3;\nexport const deeplinkTypeEnum = {\n productDeepLink: 1,\n customeLink: 2,\n};\nexport const paramsTypes = {\n productDeepLink: 2,\n customeLink: 1,\n};\nexport const externalTypes = [\n {\n label: 'Product DeepLink',\n value: 2,\n i18n_key: 'module_adgroup_product_weblink',\n hint: 'module_adgroup_website_type_product_deepLink_hint',\n },\n {\n label: 'Custome Link',\n value: 1,\n i18n_key: 'module_adgroup_custome_weblink',\n hint: 'module_adgroup_website_type_custome_link_hint',\n },\n];\nexport const deeplinkTypes = [\n {\n label: 'Product DeepLink',\n value: 1,\n i18n_key: 'module_adgroup_product_deepLink',\n hint: 'module_adgroup_deeplink_type_product_deepLink_hint',\n },\n {\n label: 'Custome Link',\n value: 2,\n i18n_key: 'module_adgroup_custome_link',\n hint: 'module_adgroup_deeplink_type_custome_link_hint',\n },\n];\nexport const fallBackTypeEnum = {\n fallbackApp: 1,\n fallbackWeb: 2,\n // fallbackWebCustome: 3, // 这个值\n};\nexport const deeplinkWebFallBackTypes = { // dpa deeplink的fallback website的url类型\n catalogueLink: 2,\n customeLink: 1,\n defalutLink: 0,\n};\nexport const trafficFallBackTypes = [\n {\n value: 1,\n i18n_key: 'module_adgroup_traffic_fallback_app',\n hint: 'module_adgroup_traffic_fallback_app_hint',\n },\n {\n value: 2,\n i18n_key: 'module_adgroup_traffic_fallback_website',\n hint: 'module_adgroup_traffic_fallback_website_hint',\n },\n];\nexport const fallBackTypes = [\n {\n value: 1,\n i18n_key: 'module_adgroup_deepLink_fallback_app',\n hint: 'module_adgroup_deepLink_fallback_app_hint',\n },\n {\n value: 2,\n i18n_key: 'module_adgroup_deepLink_fallback_website_product',\n hint: 'module_adgroup_deepLink_fallback_website_product_hint',\n },\n // { // 这个类型不存在是根据external url和deeplinkWebFallBackTypes算出来的,这个值只供前端展示用\n // value: 3,\n // i18n_key: 'module_adgroup_deepLink_fallback_website_custome',\n // hint: 'module_adgroup_deepLink_fallback_website_custome_hint',\n // },\n];\nexport const promotionTypes = [\n {\n key: 'deep-link',\n label: 'Deeplink',\n i18n_key: 'module_adgroup_deeplink',\n value: contentType.dpaDeeplink,\n // icon: 'promotion-deeplink',\n icon: 'dpa-deeplink',\n hint: 'module_adgroup_deeplink_hint',\n },\n {\n key: 'app-install',\n label: 'AppInstall',\n value: [...contentType.app],\n i18n_key: (isDpa, isNewStructure) => {\n if (isDpa) {\n return isNewStructure ? 'module_dpa_adgroup_objective_app' : 'module_dpa_adgroup_objective_app_install';\n }\n return 'adgroup_promote_app';\n },\n icon: 'dpa-app',\n hint: 'module_adgroup_objective_app_hint',\n },\n {\n key: 'website',\n label: 'Website',\n i18n_key: 'module_adgroup_objective_landingpage',\n value: contentType.website,\n icon: 'dpa-website',\n hint: 'module_adgroup_objective_landingpage_hint',\n },\n {\n key: 'video',\n label: 'video',\n i18n_key: 'module_adgroup_promotion_video',\n value: contentType.promotionVideo,\n icon: 'video-view',\n hint: 'module_adgroup_promotion_video_hint',\n },\n];\n// 品牌广告专属的推广目的类型,\nexport const brandLandingType = {\n PURE_SHOW: 7, // 纯展示\n};\n\n// 预算类型\nexport const budgetMode = {\n NO_LIMIT: -1, // 不限\n // 日预算\n DAY_BUDGET: 0,\n // 总预算\n TOTAL_BUDGET: 1,\n};\n// 广告组状态选项\nexport const campaignStatus = {\n NONE: '',\n NO_DELETE: 'no_delete',\n ENABLE: 'delivery_ok',\n NOT_DELIVERY: 'not_delivery',\n PAUSE: 'disable',\n DELETE: 'delete',\n};\nexport const campaignObjectiveValue = {\n Reach: 5,\n Traffic: 1,\n Conversion: 3,\n AppInstall: 2,\n VideoView: 4,\n DPA: 6,\n RF: 7,\n LeadAds: 8,\n Engagement: 9,\n RF_VV: 10,\n RF_TRAFFIC: 11,\n RF_ENGAGEMENT: 12,\n RF_APPINSTALL: 13,\n Shop: 14,\n};\nexport const rfObjectiveName = {\n [campaignObjectiveValue.RF]: 'reach',\n [campaignObjectiveValue.RF_VV]: 'vv',\n [campaignObjectiveValue.RF_TRAFFIC]: 'traffic',\n [campaignObjectiveValue.RF_ENGAGEMENT]: 'EO',\n [campaignObjectiveValue.RF_APPINSTALL]: 'APPInstall',\n};\nexport const campaignObjective = {\n Auction: {\n Awareness: {\n label: 'Awareness',\n i18n_key: 'campaign_objective_awareness',\n children: [\n {\n label: 'Reach',\n i18n_key: 'campaign_objective_reach',\n value: campaignObjectiveValue.Reach,\n icon: 'objective-reach',\n hint: 'campaign_objective_reach_hint',\n hidden: () => false,\n iconName: 'reach',\n },\n ],\n hidden: () => false,\n },\n Consideration: {\n label: 'Consideration',\n i18n_key: 'campaign_objective_consideration',\n hidden: () => false,\n children: [\n {\n label: 'Traffic',\n value: campaignObjectiveValue.Traffic,\n i18n_key: 'campaign_objective_traffic',\n icon: 'objective-traffic',\n hint: 'campaign_objective_traffic_hint',\n hidden: () => false,\n iconName: 'traffic',\n },\n {\n label: 'App Install',\n i18n_key: 'campaign_objective_appInstall',\n value: campaignObjectiveValue.AppInstall,\n icon: 'objective-app',\n hint: 'campaign_objective_appInstall_hint',\n hidden: () => false,\n iconName: 'app-install',\n },\n {\n label: 'Video View',\n i18n_key: 'campaign_objective_videoview',\n value: campaignObjectiveValue.VideoView,\n icon: 'objective-video',\n hint: 'campaign_objective_videoview_hint',\n hidden: () => false,\n iconName: 'video-view',\n },\n {\n label: 'Lead Ads',\n i18n_key: 'campaign_objective_lead_ads',\n value: campaignObjectiveValue.LeadAds,\n icon: 'objective-leadads',\n hint: 'campaign_objective_lead_ads_hint',\n hidden: () => !isLeadAdsWhite(),\n iconName: 'lead-ads',\n },\n {\n label: 'Engagement',\n i18n_key: 'campaign_objective_engagement',\n value: campaignObjectiveValue.Engagement,\n icon: 'objective-engagement',\n hint: 'campaign_objective_engagement_hint',\n hidden: () => !isEngagementWhite(),\n hasNewIconOnly: true,\n iconName: 'engagement',\n },\n ],\n },\n Conversion: {\n label: 'Conversion',\n i18n_key: 'campaign_objective_conversion_title',\n children: [\n {\n label: 'Conversion',\n i18n_key: 'campaign_objective_conversion',\n value: campaignObjectiveValue.Conversion,\n icon: 'objective-conversion',\n hint: 'campaign_objective_conversion_hint',\n hidden: () => false,\n iconName: 'conversions',\n },\n {\n label: 'dpa',\n i18n_key: 'module_campaign_objective_dpa',\n value: campaignObjectiveValue.DPA,\n icon: 'objective-dpa',\n hint: 'module_dpa_catalog_sales_label',\n hidden: () => !isDpaWhite() || !isCatalogAssetWhite() || isMigrationDSAAndCAWhite(),\n hoverTips: {\n text: 'module_dpa_catalog_sales_hint',\n placement: 'top',\n },\n iconName: 'dpa',\n },\n {\n label: 'shop',\n i18n_key: 'module_campaign_objective_shop',\n value: campaignObjectiveValue.Shop,\n icon: 'objective-shop',\n hint: 'module_objective_shop_hit',\n hidden: () => (!isShopWhite() || !isCreativeHasIdentityWhite()) && !store.state.shop.hasMagellanShop || isShopCreateDisabled(),\n iconName: 'shop',\n isBeta: true,\n },\n ],\n hidden: () => false,\n },\n },\n RF: {\n Awareness: {\n label: 'Awareness',\n i18n_key: 'campaign_objective_awareness',\n children: [\n {\n label: 'Reach',\n i18n_key: 'campaign_objective_reach',\n value: campaignObjectiveValue.RF,\n icon: 'objective-reach',\n hint: 'campaign_objective_reach_hint',\n hidden: () => !isRFWhite(),\n iconName: 'reach',\n },\n ],\n hidden: () => false,\n },\n Consideration: {\n label: 'Consideration',\n i18n_key: 'campaign_objective_consideration',\n children: [\n {\n label: 'Traffic',\n i18n_key: 'campaign_objective_traffic',\n value: campaignObjectiveValue.RF_TRAFFIC,\n icon: 'objective-traffic',\n hint: 'campaign_objective_traffic_hint',\n hidden: () => !isRFWhite(),\n iconName: 'traffic',\n },\n {\n label: 'App Install',\n i18n_key: 'campaign_objective_appInstall',\n value: campaignObjectiveValue.RF_APPINSTALL,\n icon: 'objective-app',\n hint: 'campaign_objective_appInstall_hint',\n hidden: () => !isRFWhite() || !isRFAppinstall(),\n iconName: 'app-install',\n },\n {\n label: 'Video View',\n i18n_key: 'campaign_objective_videoview',\n value: campaignObjectiveValue.RF_VV,\n icon: 'objective-video',\n hint: 'campaign_objective_videoview_hint',\n hidden: () => !isRFWhite(),\n iconName: 'video-view',\n },\n {\n label: 'Engagement',\n i18n_key: 'campaign_objective_engagement',\n value: campaignObjectiveValue.RF_ENGAGEMENT,\n icon: 'objective-engagement',\n hint: 'campaign_objective_engagement_hint',\n hidden: () => !isRFWhite() || !isRFEngagementWhite(),\n hasNewIconOnly: true,\n iconName: 'engagement',\n },\n ],\n hidden: () => false,\n },\n },\n};\n\n/**\n * 获取 objective(campaign planer 限制只开放 R&F)\n * @returns 返回满足条件的 objective\n */\nexport const getObjectiveList = () => {\n const { RF } = campaignObjective;\n const children = Object.values(RF).reduce((p, c) => p.concat(c.children), []);\n return children.filter(item => !item.hidden());\n};\n\nexport const openUrl = {\n enableOpenUrl: 1,\n disableOpenUrl: 0,\n};\n\nexport const campaignObjectiveI18nKey = {\n [campaignObjectiveValue.Reach]: 'campaign_objective_reach',\n [campaignObjectiveValue.Traffic]: 'campaign_objective_traffic',\n [campaignObjectiveValue.Conversion]: 'campaign_objective_conversion',\n [campaignObjectiveValue.AppInstall]: 'campaign_objective_appInstall',\n [campaignObjectiveValue.VideoView]: 'campaign_objective_videoview',\n [campaignObjectiveValue.DPA]: 'module_campaign_objective_dpa',\n [campaignObjectiveValue.LeadAds]: 'campaign_objective_lead_ads',\n [campaignObjectiveValue.Engagement]: 'campaign_objective_engagement',\n [campaignObjectiveValue.Shop]: 'module_campaign_objective_shop',\n [campaignObjectiveValue.RF]: 'campaign_objective_reach',\n [campaignObjectiveValue.RF_VV]: 'campaign_objective_videoview',\n [campaignObjectiveValue.RF_TRAFFIC]: 'campaign_objective_traffic',\n [campaignObjectiveValue.RF_ENGAGEMENT]: 'campaign_objective_engagement',\n [campaignObjectiveValue.RF_APPINSTALL]: 'campaign_objective_appInstall',\n};\n\n\n// 用于埋点的Objective标识key\nexport const campaignObjectiveKey = {\n [campaignObjectiveValue.Reach]: 'Reach',\n [campaignObjectiveValue.Traffic]: 'Traffic',\n [campaignObjectiveValue.Conversion]: 'Conversion',\n [campaignObjectiveValue.AppInstall]: 'App install',\n [campaignObjectiveValue.VideoView]: 'Video view',\n [campaignObjectiveValue.DPA]: 'Catalog',\n [campaignObjectiveValue.LeadAds]: 'LeadAds',\n [campaignObjectiveValue.Engagement]: 'Engagement',\n [campaignObjectiveValue.Shop]: 'Shop',\n};\n// campaign list 新增filterOptions\nexport const campaignTypeSearch = [\n {\n key: 'enum_campaign_dedicate_type_2',\n id: 2,\n },\n {\n key: 'enum_campaign_dedicate_type_0',\n id: [0, 1],\n },\n];\n// 列表搜索\nexport const campaignObjectiveSearch = [\n {\n key: 'campaign_objective_conversion',\n id: 3,\n },\n {\n key: 'campaign_objective_traffic',\n id: [1, 11],\n },\n {\n key: 'campaign_objective_appInstall',\n id: [2, 13],\n },\n {\n key: 'campaign_objective_videoview',\n id: [4, 10],\n },\n {\n key: 'campaign_objective_reach',\n id: [5, 7],\n },\n {\n key: 'module_campaign_objective_dpa',\n id: 6,\n hidden: () => !isDpaWhite(),\n },\n {\n key: 'module_campaign_objective_shop',\n id: 14,\n hidden: () => !isShopWhite(),\n },\n {\n key: 'campaign_objective_lead_ads',\n id: 8,\n hidden: () => !isLeadAdsWhite(),\n },\n {\n key: 'campaign_objective_engagement',\n id: [9, 12],\n hidden: () => !isEngagementWhite() && !isRFWhite(),\n },\n];\nexport const campaignBuyingTypeSearch = [\n {\n key: 'campaign_auction',\n id: [2, 3],\n },\n {\n key: 'module_campaign_rf',\n id: 4,\n hidden: () => !isRFWhite(),\n },\n];\n\nexport const campaignCBOTypeSearch = [\n {\n key: 'campaign_use_cbo',\n id: 1,\n },\n {\n key: 'campaign_no_use_cbo',\n id: 0,\n },\n];\n\n/* eslint-disable */\nexport const formatAge = (arr) => { //后端回传的数据结构为[[18,24], [23,34]],前端的数据结构为[“18,24”, “23,34”]\n return arr.map(item => {\n if (typeof item === 'string') {\n return String(item).split(',');\n }\n return item;\n });\n};\n// 处理一下wifi类型的函数\nexport const formatAc = (arr) => {\n let tempArr = [...arr];\n if (arr.length === 1 && arr[0] === 'ALL') {\n tempArr = [];\n }\n return tempArr;\n};\n\nexport const formatPlatForm = (item) => {\n if (!Array.isArray(item)) {\n return [item]\n }\n return item;\n}\n\n// 创编页面退出时打点adgroupData参数打平配置文件\nexport const adgroupDataMap = {\n adgroup_data_placement: 'inventory_flow',\n adgroup_data_apporwebsite: 'content_type',\n adgroup_data_website_link: 'external_url',\n adgroup_data_app_link: 'download_url',\n adgroup_data_app_type: 'app_type',\n adgroup_data_app_displayname: 'app_name',\n adgroup_data_category: 'ad_category',\n adgroup_data_tags: 'ad_keywords',\n adgroup_data_comment: 'is_comment_disable',\n adgroup_data_automated_creative: 'creative_material_mode',\n adgroup_data_particle_locations: 'particle_locations',\n adgroup_data_gender: 'gender',\n adgroup_data_age: 'age',\n adgroup_data_languages: 'language_list',\n adgroup_data_interest: 'ad_tag_v2',\n adgroup_data_connection: 'ac',\n adgroup_data_carriers: 'carriers',\n adgroup_data_device_type: 'device_type',\n adgroup_data_device_pricerange: 'launch_price',\n adgroup_data_android_versions: 'android_osv',\n adgroup_data_ios_versions: 'ios_osv',\n adgroup_data_budget_mode: 'budget_mode',\n adgroup_data_budget_number: 'budget',\n adgroup_data_schedule_type: 'schedule_type',\n adgroup_data_schedule_start: 'start_time',\n adgroup_data_schedule_end: 'end_time',\n adgroup_data_dayparting: 'period',\n adgroup_data_optimization_goa: 'pricing',\n adgroup_data_smart_optimization: 'cpa_skip_first_phrase',\n adgroup_data_learning_bid: 'bid',\n adgroup_data_cpa_bid: 'cpa_bid',\n adgroup_data_delivery_type: 'flow_control_mode',\n adgroup_data_impression_tracking: 'track_url',\n adgroup_data_click_tracking: 'action_track_url',\n adgroup_data_retargeting_tags: 'retargeting_tags',\n adgroup_data_retargeting_tags_exclud: 'retargeting_tags_exclude',\n adgroup_data_app_convert_id: 'convert_id',\n adgroup_data_objective_type: 'objective_type',\n};\nexport const adRouteMap = {\n 'ad-campaign-create': 'campaign',\n 'ad-group-create': 'ad_group',\n 'ad-create': 'ad',\n // TODO: 【url 下沉】确认下埋点下沉前后是否要区分,现在是未做区分\n 'ad-creation': 'ad',\n};\nexport const adCreateEvent = {\n 'ad-campaign-create': 'create_enter_campaign',\n 'ad-group-create': 'create_enter_adgroup',\n 'ad-create': 'create_enter_ad',\n // TODO: 【url 下沉】确认下埋点下沉前后是否要区分,现在是未做区分\n 'ad-creation': 'create_enter_ad',\n};\nexport const splitTestType = {\n // 标记创建流程中设置开启 split test,需要完成实验组绑定才能生效\n UNINITIALIZED: -1,\n NONE: 0,\n TARGET: 1,\n CREATIVE: 2,\n OPTIMIZE: 3,\n};\n\nexport const pangleFlowPackConfig = {\n orient: {\n type: 'ORIENT',\n value: 1,\n lable_i18n: 'common_flow_orient'\n },\n exclude: {\n type: 'EXCLUDE',\n value: 2,\n lable_i18n: 'common_flow_exclude'\n }\n};\n\nexport const checkIsRFRefactorObj = (objectiveType) => {\n return [campaignObjectiveValue.RF,campaignObjectiveValue.RF_VV,campaignObjectiveValue.RF_TRAFFIC,].includes(+objectiveType)\n}\n\n// 使用此方法判断RF类型\nexport const checkIsRF = (objectiveType) => {\n return [campaignObjectiveValue.RF, campaignObjectiveValue.RF_VV, campaignObjectiveValue.RF_TRAFFIC,\n campaignObjectiveValue.RF_ENGAGEMENT, campaignObjectiveValue.RF_APPINSTALL].includes(+objectiveType)\n}\n\nexport const checkIsVV = (objectiveType) => {\n return [campaignObjectiveValue.VideoView, campaignObjectiveValue.RF_VV].includes(objectiveType)\n}\n\nexport const checkIsShop = (objectiveType) => +objectiveType === campaignObjectiveValue.Shop;\nexport const checkIsLiveShopping = (externalType) => externalType === Scenario.Live;\n\n/**\n * 使用创编的类型\n * 用于区分一般的创编还是 campaign planer 加载的创编\n */\nexport const CREATION_TYPE = {\n normal: 1,\n campaignPlaner: 2,\n};\n\nexport const bulkOperationByType = {\n value: 1, // 批量操作设置值\n percentage: 2, // 批量操作设置百分比\n};\nexport const bulkOperationType = {\n value: 1, // 批量操作设置值\n increase: 2, // 批量调高\n decrease: 3, // 批量调低\n};\n\nexport const BulkAdjustValueMap = {\n campaignName: {\n original_key: 'campaign_name',\n adjust_key: 'adjustCampaignName',\n budget_mode_key: 'campaign_budget_mode',\n error_map_key: 'campaign_name_error_map'\n },\n campaignBudget: {\n original_key: 'campaign_budget',\n adjust_key: 'adjustCampaignBudget',\n budget_mode_key: 'campaign_budget_mode',\n error_map_key: 'campaign_budget_error_map'\n },\n adgroupName: {\n original_key: 'ad_name',\n adjust_key: 'adjustAdgroupName',\n budget_mode_key: 'budget_mode',\n error_map_key: 'ad_name_error_map'\n },\n budget: {\n original_key: 'budget',\n adjust_key: 'adjustBudget',\n budget_mode_key: 'budget_mode',\n error_map_key: 'ad_budget_err_map'\n },\n bid: {\n original_key: 'bid',\n adjust_key: 'adjustBid',\n budget_mode_key: 'budget_mode',\n error_map_key: 'ad_bid_err_map'\n },\n};\n\nexport const getIosAppImg = (currentLang) => {\n const supportLang = ['zh', 'ja', 'en', 'ar'];\n if (supportLang.indexOf(currentLang) >= 0) {\n return require(`src/assets/images/ios-trend-${currentLang}.png`);\n }\n return require('src/assets/images/ios-trend-en.png');\n};\n\n// 创编来源\nexport const REFERER = {\n STORE_MANAGER: {\n value: 'tt_store_manager',\n queryFields: ['aadvid', 'objective_type', 'shop_id', 'spu_id'],\n objectiveType: campaignObjectiveValue.Shop,\n },\n MAGELLAN: {\n value: 'tts',\n objectiveType: campaignObjectiveValue.Shop,\n },\n // pixel event 隐藏后的switch now\n SWITCH_TO_CONVERSION_SHORTCUT:{\n value: 'switch_to_conversion_shortcut',\n queryFields: ['aadvid', 'objective_type'],\n objectiveType: campaignObjectiveValue.Conversion,\n }\n}\nexport const buyingType = {\n AUCTION: 1,\n RF: 2,\n}\n\n// 资产对应的枚举值\nexport const assetsValue = {\n product_platform_id: 1,\n ad_ref_pixel_id: 2,\n [`${ShopType.ecommShop}_shop_id`]: 4,\n [`${ShopType.tt4bShop}_shop_id`]: 5,\n identity_id: 6\n}\n\n// 资产对应的字段名字\nexport const assetFieldValue = [\n 'shop_id', // shop\n 'identity_id', // identity\n 'ad_ref_pixel_id', // pixel\n 'product_platform_id' // catalog\n];\n\nexport const assetLabelValue = {\n [assetsValue.product_platform_id]: 'Catalog ID',\n [assetsValue.ad_ref_pixel_id]: 'Pixel ID',\n [assetsValue[`${ShopType.ecommShop}_shop_id`]]: 'Shop ID',\n [assetsValue[`${ShopType.tt4bShop}_shop_id`]]: 'Shop ID',\n [assetsValue.identity_id]: 'module_creative_tiktok_account'\n}\n// 判断资产字段值是否有效\nexport const handleValidAssetsField = (fieldName, value, formData) => {\n const validValue = (!!value && value !== '0');\n if(fieldName === 'identity_id') { // identity假账号不在资产限制范围\n const { identity_type } = formData;\n return identity_type !== identityTypeMap.FAKE_USER && validValue;\n }\n return validValue;\n}\n\n// 根据formdata的字段值判断使用到哪些资产\nexport const getAssetsField = (formData = {}, excludeAssetFieldArr = []) => {\n return assetFieldValue.filter(assetsName => !excludeAssetFieldArr.includes(assetsName) && handleValidAssetsField(assetsName, formData[assetsName], formData))\n .map((assetsName) => {\n /*\n 资产查询区分shop 1p和3p\n */\n const assetId = formData[assetsName];\n if(assetsName === 'shop_id' && formData?.shop_type) {\n assetsName = `${formData?.shop_type}_shop_id`\n }\n return {\n asset_id: assetId,\n asset_type: assetsValue[assetsName]\n }\n })\n}\n\n// 动态计算资产剩余额度,返回小于5%额度的资产\nexport const computedAssetsNum = (\n assetsInfo = [], adGroupNum = 1, adGroupAssets = [],\n creativeNum = 1, creativeAssets = [], limit = 0.05\n ) => {\n try {\n // adgroup层级的资产使用情况\n let adGroupAssetsMap = adGroupAssets.reduce((pre, asset) => {\n pre[asset.asset_id] = adGroupNum;\n return pre;\n }, {});\n // adgroup层级和creative层级资产使用情况\n let allAssetsMap = creativeAssets.reduce((pre, asset) => {\n if(!pre[asset.asset_id]){\n pre[asset.asset_id] = creativeNum;\n }else {\n pre[asset.asset_id] += creativeNum;\n }\n return pre;\n }, adGroupAssetsMap);\n return assetsInfo.filter((asset) => {\n // availableQuota默认值设置1000,防止出错不影响主流程\n const availableQuota = asset?.available_quota ?? 1000;\n const usedQuota = allAssetsMap[asset.id] ?? 0;\n const totalQuota = asset?.total_quota ?? 1000;\n return (availableQuota - usedQuota)/totalQuota < limit;\n }).map(asset => ({\n assetId: asset.id,\n availableNum: asset.available_quota,\n assetName: assetLabelValue[asset.asset_type]\n }))\n }catch (e) {\n return [];\n }\n}\n\n// 哪些推广系列可以使用上下文定向\nexport const CONTEXT_TARGET_OBJECTIVE_TYPES = [\n campaignObjectiveValue.RF,\n campaignObjectiveValue.RF_VV,\n];\n","/**\n * Catalog 的相关配置\n * 使用到商品库内容在这管理(DPA、Shop.)\n */\n\n/** 字段类型 */\nexport const FieldTypes = {\n Int64: 0,\n Float: 1,\n String: 2,\n};\n\nexport const BindTypes = {\n /** 交集 */\n Inter: 0,\n /** 并集 */\n Union: 1,\n};\n\n/** 大小写是否敏感 */\nexport const SensTypes = {\n /** 完全匹配 */\n Default: 0,\n /** 不区分大小写 */\n CaseInsensitive: 1,\n};\n\n/** 查询操作符 */\nexport const Operators = {\n Eq: 0,\n Ne: 1,\n Gt: 2,\n Gte: 3,\n Lt: 4,\n Lte: 5,\n Rng: 6,\n Wildcard: 7,\n Prefix: 8,\n Exist: 9,\n In: 10,\n};\n\n/** 商品上下架状态 */\nexport const ActiveStatus = {\n Active: '0',\n Inactive: '1',\n // 后台条件中只有 0 和 1\n // 2 是前端自己加的用来标识的值\n // 在请求之前需要过滤掉\n All: '2',\n};\n\n/** 查询的 SPU 的BI审核状态 */\nexport const SpuScope = {\n All: 0,\n Approve: 1,\n Reject: 2,\n Pending: 3,\n};\n\n/** 查询的 SPU 的GNE审核状态 */\nexport const SpuOrganicAuditStatus = {\n Init: 0,\n Approve: 1,\n Reject: 2,\n PartlyReject: 4,\n};\n\n/** 查询的 SPU 的BI上下线状态 */\nexport const SpuStatus = {\n Init: -1,\n Offline: 0,\n Online: 1,\n Deleted: 120,\n};\n\n/** 查询的 SPU 的GNE上下线状态 */\nexport const SpuOrganicStatus = {\n Offline: 0,\n Online: 1,\n Init: 110,\n Deleted: 120,\n};\n\n/**\n * 商品字段及类型\n */\nexport const Fields = {\n title: {\n fieldName: 'title',\n fieldType: FieldTypes.String,\n sensType: SensTypes.CaseInsensitive,\n },\n OuterID: {\n fieldName: 'OuterID',\n fieldType: FieldTypes.String,\n sensType: SensTypes.CaseInsensitive,\n },\n spuID: {\n fieldName: 'spuID',\n fieldType: FieldTypes.String,\n sensType: SensTypes.CaseInsensitive,\n },\n activeStatus: {\n fieldName: 'activeStatus',\n fieldType: FieldTypes.String,\n sensType: SensTypes.Default,\n },\n storefrontStatus: {\n fieldName: 'storefront_status',\n fieldType: FieldTypes.Int64,\n sensType: SensTypes.Default,\n },\n};\n\n/**\n * 商品搜索中可以使用的字段\n */\nexport const getSearchFields = hidden => [\n {\n fieldName: Fields.OuterID.fieldName,\n fieldType: Fields.OuterID.fieldType,\n sensType: Fields.OuterID.sensType,\n label: 'module_catalog_search_by_skuid',\n hidden,\n },\n {\n fieldName: Fields.spuID.fieldName,\n fieldType: Fields.spuID.fieldType,\n sensType: Fields.spuID.sensType,\n label: 'module_catalog_search_by_spuid',\n },\n {\n fieldName: Fields.title.fieldName,\n fieldType: Fields.title.fieldType,\n sensType: Fields.title.sensType,\n label: 'module_catalog_search_by_title',\n },\n].filter(item => !item.hidden);\n","import tool from 'src/utils/tool';\nimport { INVENTORY_FLOW } from 'src/const/state/inventory-type';\nimport { isBOE } from 'src/const/boe';\nimport { BidRegion } from 'src/const/state/bid-region';\nimport { isIndia, isSg, IMAGE_X_IMG_TEMPLATE } from 'src/const/gcp';\nimport { campaignObjectiveValue } from 'src/const/state/campaign';\nimport API from 'src/const/apis';\nimport { i18n } from 'src/utils/localeUtil';\nimport customizedImageCardPoster from 'src/assets/images/additional-customized-image-card-demo-video-poster.png';\nimport eggDemoImg from 'src/assets/images/fudai.png';\nimport gestureDemoImg from 'src/assets/images/gesture.png';\nimport _ from 'lodash';\n\nexport * from '../creative/identity';\n\n\nconst { getReverseMap, isSupportWebp } = tool;\n\n// 针对内部广告主如果创编的campaign/create|ad/create|creative/create接口任意一个出现list中的错误code,不执行三秒后跳转,以及取消广告创建的弹窗。\n// 40102 Permission error 没有写权限,一般是使用附身真实广告主的场景。\nexport const noCreateSuccessDialogCodeList = [40102];\n\nexport const LeadBCShare = {\n NONESHARE: 0,\n ISSHARED: 1,\n};\n\nexport const estimateScoreMap = {\n DEFAULT: '0',\n NAEEOW: '1', // 过窄\n};\n\n// aco开白后最大上传素材数\nexport const acoUnLockListMaxNum = 30;\n// aco没开白最大上传素材数\nexport const acoLockListMaxNum = 10;\n\nexport const MATERIAL_TYPE_ENUM = {\n VIDEO: 1,\n IMAGE: 2,\n TEXT: 3,\n OTHER: 9,\n};\n\n// 静态资源前缀特殊环境配置项\nconst specialImgPrefixConfig = [\n { value: isBOE, data: process.env.BOE_IMG_SRC_PREFIX },\n { value: isIndia, data: process.env.GCP_IMG_SRC_PREFIX },\n { value: isSg, data: process.env.SG_IMG_SRC_PREFIX },\n];\n// 迁环境的时候帮我改一下!!!\n// 这是附加创意图片获取的URI 前缀,创意那边只有线上的图片存储,所以我们只能强制拼线上前缀,无法区分环境\nexport const additionalCreativeImagePrefix = process.env.SG_IMG_SRC_PREFIX;\n\n// 预校验根据后端返回的key拼接提示的map\nexport const realTimePrecheckSplicingMap = {\n // language_mismatch模型\n material_language_mismatch: {\n ownKey: 'material_language_mismatch',\n countryHitCode: '21100141',\n occupy: '{targeting_country}',\n replaceKey: 'module_text_real_check_fail_target_country_tips',\n // dialogReplaceKey: 'module_text_real_check_fail_target_country_dialog',\n link: {\n key: 'module_text_real_check_fail_target_country_tips_learn_more',\n url: 'https://ads.tiktok.com/help/article?aid=9552',\n },\n },\n};\n// 获取序号为index广告下的countryHit\nexport const getSingleCountriesHitList = (realTimePrecheckSuggtions, index) => {\n try {\n const countryhitList = _.get(realTimePrecheckSuggtions,\n `[${index}].ads_texts.ads_texts[0].details.${realTimePrecheckSplicingMap.material_language_mismatch.countryHitCode}`, '');\n return Object.values(JSON.parse(countryhitList).hit_countries);\n } catch (e) {\n return [];\n }\n};\n// commonDealSuggtion 对suggtion做过滤处理\nexport const getSuggtion = function (item, index, realTimePrecheckSuggtions) {\n if (realTimePrecheckSplicingMap[item]) {\n return this.$t(realTimePrecheckSplicingMap[item].replaceKey).replace(realTimePrecheckSplicingMap.material_language_mismatch.occupy,\n getSingleCountriesHitList(realTimePrecheckSuggtions, index)?.toString());\n }\n return item;\n};\n// suggtion后的链接是否展示\nexport const dealShowSuggtionLink = (item) => {\n if (realTimePrecheckSplicingMap[item]) {\n return realTimePrecheckSplicingMap[item].link;\n }\n return false;\n};\n\n\n// 静态资源前缀\nexport const imgSrcPrefix = (() => {\n const suitableConfig = specialImgPrefixConfig.find(v => v.value);\n if (suitableConfig) {\n return suitableConfig.data || process.env.SG_IMG_SRC_PREFIX;\n }\n return process.env.SG_IMG_SRC_PREFIX;\n})();\n\n// 目前素材库支持排序的api\nexport const supportSortAjaxUrl = [\n API.ad.image_material_list,\n API.ad.video_material_list,\n];\n\n// 素材库排序数组\nexport const creativeLibSortList = [\n { value: 1, label: 'module_library_sort_by_creation_time_new_to_old', sortData: { sort_order: 1, sort_type: 1 } },\n { value: 2, label: 'module_library_sort_by_creation_time_old_to_new', sortData: { sort_order: 0, sort_type: 1 } },\n // { value: 3, label: 'module_library_sort_by_cost_low_to_high', sortData: { sort_order: 0, sort_type: 2 } },\n { value: 4, label: 'module_library_sort_by_cost_high_to_low', sortData: { sort_order: 1, sort_type: 2 } },\n // { value: 5, label: 'module_library_sort_by_impression_low_to_high', sortData: { sort_order: 0, sort_type: 3 } },\n { value: 6, label: 'module_library_sort_by_impression_high_to_low', sortData: { sort_order: 1, sort_type: 3 } },\n // { value: 7, label: 'module_library_sort_by_click_low_to_high', sortData: { sort_order: 0, sort_type: 4 } },\n { value: 8, label: 'module_library_sort_by_click_high_to_low', sortData: { sort_order: 1, sort_type: 4 } },\n // { value: 9, label: 'module_library_sort_by_conversion_low_to_high', sortData: { sort_order: 0, sort_type: 5 } },\n { value: 10, label: 'module_library_sort_by_conversion_high_to_low', sortData: { sort_order: 1, sort_type: 5 } },\n { value: 11, label: 'module_library_sort_by_cpc_low_to_high', sortData: { sort_order: 0, sort_type: 6 } },\n // { value: 12, label: 'module_library_sort_by_cpc_high_to_low', sortData: { sort_order: 1, sort_type: 6 } },\n { value: 13, label: 'module_library_sort_by_cpa_low_to_high', sortData: { sort_order: 0, sort_type: 7 } },\n // { value: 14, label: 'module_library_sort_by_cpa_high_to_low', sortData: { sort_order: 1, sort_type: 7 } },\n // { value: 15, label: 'module_library_sort_by_ctr_low_to_high', sortData: { sort_order: 0, sort_type: 8 } },\n { value: 16, label: 'module_library_sort_by_ctr_high_to_low', sortData: { sort_order: 1, sort_type: 8 } },\n // { value: 17, label: 'module_library_sort_by_cvr_low_to_high', sortData: { sort_order: 0, sort_type: 9 } },\n { value: 18, label: 'module_library_sort_by_cvr_high_to_low', sortData: { sort_order: 1, sort_type: 9 } },\n];\n\n\n/**\n * 生成ImageX平台图片链接(优化后图片获取方案,支持压缩图片获取)\n * @param {*} imgUri 资源地址\n * @param {*} imgType 图片输出模版,在ImageX配置\n */\nexport const getImgSrcByImageX = (imgUri = '', imageType = IMAGE_X_IMG_TEMPLATE.COMPRESS_WEBP) => {\n if (!imgUri) {\n return '';\n }\n\n if (imgUri.search(/^http(s)?:\\/\\//) > -1) {\n return imgUri;\n }\n\n // 早期资源数据托管VA机房,单独处理\n if (imgUri.indexOf('/') === -1) {\n return process.env.VA_IMG_SRC_PREFIX.URL + imgUri;\n }\n\n let imageXTemplate = isBOE ? IMAGE_X_IMG_TEMPLATE.BOE_I18N : imageType;\n // 检查浏览器是否支持webp格式图片\n if (!isSupportWebp()) {\n imageXTemplate = imageXTemplate.replace(/(.webp)$/, '.image');\n }\n\n return process.env.IMAGE_X_IMG_SRC_PREFIX + imgUri + imageXTemplate;\n};\n\n/**\n * 根据环境获取资源地址,主要处理一些老资源托管在VA机房,需要固定使用VA机房的前缀\n * web_uri = 005dd127aea1005745ec 这种类型的,是早期的资源数据,资源托管在VA机房,因此这里需要单独把域名前缀改成VA的\n * web_uri = tos-useast2a-p-0000/xxxxxx 这种的则直接使用当前环境的下资源前缀即可\n * @param {*} imgSrcPrefix 地址前缀对象\n * @param {*} url 资源地址\n */\nexport const getImgSrcByEnv = (imgSrcPrefix, url = '') => {\n if (url.search(/^http(s)?:\\/\\//) > -1) {\n return url;\n }\n\n let avatarUrl = '';\n if (url.indexOf('/') === -1) {\n avatarUrl = process.env.VA_IMG_SRC_PREFIX.URL + url;\n } else {\n avatarUrl = imgSrcPrefix.URL + url;\n }\n return avatarUrl;\n};\n\n\n// 创意生成方式\nexport const creativeMode = {\n NONE: 0,\n CUSTOMIZE: 2,\n PROCEDURAL: 3,\n};\n// 创意类型\nexport const imageMode = {\n NONE: 0,\n // 小图\n IMAGE_I18N_SMALL: 2,\n // 大图\n IMAGE_I18N_LARGE: 3,\n // VIGO 竖图\n IMAGE_I18N_VERTICAL: 16,\n // HELO 竖图\n IMAGE_I18N_SQUARE: 33,\n // pangle使用的720P纵向图片\n IMAGE_I18N_VERTICAL_720P: 173,\n // 组图\n IMAGE_I18N_GROUP: 4,\n // 视频 16:9\n VIDEO_TYPE_1: 5,\n // 视频 1:1\n VIDEO_TYPE_2: 50,\n // 视频 9:16\n VIDEO_TYPE_3: 15,\n // GIF\n GIF_IMAGE: 7,\n // 轮播图\n CAROUSEL_IMAGE: 11,\n // 本地上传\n LOCAL_IMAGE: 100,\n // 搜索图片\n SEARCH_IMAGE: 101,\n // 多图轮播-正方形\n CAROUSEL_IMAGE_SQUARE: 1002,\n // 多图轮播-长方形\n CAROUSEL_IMAGE_HORIZONTAL: 1003,\n // 直投直播间\n REAL_TIME_LIVE: 180,\n};\n// 多图轮播创意图片版式\nexport const CAROUSEL_IMAGE_MODE = {\n square: imageMode.CAROUSEL_IMAGE_SQUARE,\n horizontal: imageMode.CAROUSEL_IMAGE_HORIZONTAL,\n};\nexport const getCarouselImageModeMap = () => {\n const map = new Map();\n Object.keys(CAROUSEL_IMAGE_MODE).forEach((key) => {\n map.set(CAROUSEL_IMAGE_MODE[key], key);\n });\n return map;\n};\n\n// 根据国家简称批量获取国家Code (辅助函数)\nconst BatchGetCountriesIdByCountriesSubName = subNameList => subNameList.map((name) => {\n // 转大写\n const SUB_NAME = name.toUpperCase();\n // 找到目标国家\n const targetCountry = BidRegion\n .find(country => country.code === SUB_NAME) || {};\n return targetCountry.id;\n})\n .filter(Boolean);\n\n// 根据国家code批量获取国家简称\nexport const BatchGetCountriesSubNameByCountriesId = countryCodeIdList => countryCodeIdList.map((id) => {\n const targetCountry = BidRegion.find(country => country.id === +id) || {};\n return targetCountry?.code?.toUpperCase();\n}).filter(Boolean);\n\n\n// 允许多图轮播的国家/地区\nexport const CAROUSEL_IMAGE_CREATIVE_ALLOWED_COUNTRIES = [\n ...BatchGetCountriesIdByCountriesSubName([\n 'JP',\n ]),\n];\n\nexport const CAROUSEL_ENABLE_OBJECTIVE_LIST_V1 = [\n campaignObjectiveValue.AppInstall,\n];\nexport const CAROUSEL_ENABLE_OBJECTIVE_LIST_V2 = [\n campaignObjectiveValue.Traffic,\n campaignObjectiveValue.Conversion,\n];\n\nexport const advancedCreativeTypeMap = {\n QUESTIONNAIRE_OPTIMIZATION: 43,\n BRAND_LIFT_STUDY: 59,\n};\nexport const ONLY_BLS_ENABLE_CTA_IDS = [\n 'brand_lift_study',\n];\n// CTA规则\nexport const CTA_RULE = {\n // 仅可用在engagement上的cta\n ONLY_ENGAGEMENT_USEABLE_CTA_LIST: ['view_profile'],\n // 仅RF可用\n ONLY_RF_USEABLE_CTA_LIST: ['join_this_hashtag', 'view_video_with_this_effect', 'shoot_with_this_effect'],\n};\n\n// 创意状态选项\nexport const creativeStatus = {\n NONE: '',\n ENABLE: 'enable',\n DELETE: 'delete',\n};\n\n\n// 端上头像展示的地方是 49dp, 视频播放完蒙版头像是 64dp,\n// 为了保证图片不失真,这里把图片分辨率改成 112*3,避免端上图片模糊的问题\nexport const AVATAR_SIZE = {\n width: 112 * 3,\n height: 112 * 3,\n};\n\nexport const imageTemplate = {\n // !!CAUTION!!: IMAGE_TYPE_0 是兼容一部分已经生成的 1280 * 720 横图的尺寸和 ratio 的方案,新版中要避免这个值被用到\n IMAGE_TYPE_0: {\n imageMode: imageMode.IMAGE_I18N_LARGE,\n width: 1280,\n height: 720,\n ratio: '1.78',\n },\n HORIZONTAL: {\n imageMode: imageMode.IMAGE_I18N_LARGE,\n width: 1200,\n height: 628,\n ratio: '1.91',\n },\n VERTICAL: {\n imageMode: imageMode.IMAGE_I18N_VERTICAL,\n width: 375,\n height: 604,\n ratio: '0.62',\n },\n VERTICAL_720P: {\n imageMode: imageMode.IMAGE_I18N_VERTICAL_720P,\n width: 720,\n height: 1280,\n ratio: '0.56',\n },\n SQUARE: {\n imageMode: imageMode.IMAGE_I18N_SQUARE,\n width: 640,\n height: 640,\n ratio: '1.00',\n },\n ADDITIONAL_CUSTOMIZED_IMAGE_CARD_HORIZONTAL: {\n width: 750,\n height: 421,\n ration: '1.78',\n },\n};\nexport const CAROUSEL_IMAGE_SIZE_RULE = {\n [imageMode.CAROUSEL_IMAGE_HORIZONTAL]: imageTemplate.HORIZONTAL,\n [imageMode.CAROUSEL_IMAGE_SQUARE]: imageTemplate.SQUARE,\n};\nexport const PixeOnlyTracking = -1; // event tracking 只用来前端交互不落库,表示domain不存在\n\nexport const carouselImageInfoTemplate = {\n title: '',\n externalUrl: '',\n};\nexport const CREATIVE_STATUS_MAP = {\n DELIVERY: 'delivery_ok',\n // 一级状态\n // 投放中\n ONE_DELIVERY: 'delivery_ok',\n // 已完成:''\n ONE_DONE: 'time_done',\n // 二级状态\n // 审核中\n TWO_AUDIT_1: 'creative_audit',\n TWO_AUDIT_2: 'creative_reaudit',\n // 拒审\n TWO_OFFLINE_AUDIT_1: 'creative_offline_audit',\n TWO_OFFLINE_AUDIT_2: 'creative_ad_offline_audit',\n // 资产上下线状态\n CREATIVE_ASSET_AUTHORIZATION_LOST: 'creative_asset_authorization_lost',\n};\nexport const carouselImageComponentsRule = {\n conversions: {\n webSite: [\n 'title',\n 'externalUrl',\n ],\n appDownload: [\n 'title',\n ],\n },\n traffic: {\n webSite: [\n 'title',\n 'externalUrl',\n ],\n appDownload: [\n 'title',\n ],\n },\n appInstall: {\n all: [\n 'title',\n ],\n },\n};\n// 创意视频素材信息\nexport const videoTemplate = {\n VIDEO_TYPE_1: {\n type: 1,\n imageMode: 5,\n label: '16:9',\n width: 960,\n height: 540,\n ratio: '1.78',\n cuttingRange: [1.3889, 2],\n cutType: '1280x720',\n },\n VIDEO_TYPE_2: {\n type: 2,\n imageMode: 50,\n label: '1:1',\n width: 640,\n height: 640,\n ratio: '1.00',\n cuttingRange: [0.7813, 1.3889],\n cutType: '1280x1280',\n },\n VIDEO_TYPE_3: {\n type: 3,\n imageMode: 15,\n label: '9:16',\n width: 540,\n height: 960,\n ratio: '0.56',\n cuttingRange: [0.3437, 0.7813], // 宽高比在[0.3437, 0.7813]都裁剪到0.56\n cutType: 'vertical',\n },\n};\n\n// 素材校验错误码常量\nexport const VERIFY_ERROR_CODE = {\n IMAGE: {\n unsupported: {\n key: 'unsupported', // 版位不支持投放\n value: 1,\n },\n maxSize: {\n key: 'maxSize', // 体积过大\n value: 2,\n },\n resolution: {\n key: 'resolution', // 分辨率不符\n value: 4,\n },\n ratio: {\n key: 'ratio', // 宽高比不符\n value: 8,\n },\n },\n CAROUSEL_IMAGE: {\n unsupported: {\n key: 'unsupported', // 版位不支持投放\n value: 1,\n },\n maxSize: {\n key: 'maxSize', // 体积过大\n value: 2,\n },\n resolution: {\n key: 'resolution', // 分辨率不符\n value: 4,\n },\n ratio: {\n key: 'ratio', // 宽高比不符\n value: 8,\n },\n },\n VIDEO: {\n unsupported: {\n key: 'unsupported', // 版位不支持投放\n value: 1,\n },\n maxSize: {\n key: 'maxSize', // 体积过大\n value: 2,\n },\n ratio: {\n key: 'ratio', // 宽高比不符\n value: 4,\n },\n resolution: {\n key: 'resolution', // 分辨率不符\n value: 8,\n },\n duration: {\n key: 'duration', // 时长不符\n value: 16,\n },\n bitrate: {\n key: 'bitrate', // 比特率/码率不符\n value: 32,\n },\n cuttable: {\n key: 'cuttable', // 无法裁剪\n value: 64,\n },\n invalidCpr: {\n key: 'invalidCpr', // 因版位有该视频所用音乐的版权\n value: 128,\n },\n transcodeFail: {\n key: 'transcodeFail',\n value: 10,\n },\n },\n};\n\n// 支持本地解析的视频格式\nexport const localResolveVideoTypes = ['video/quicktime', 'video/mp4'];\n\n// 文件上传状态\nexport const fileStatus = {\n LOADING: 'loading',\n READY: 'ready',\n SUCCESS: 'success',\n FAIL: 'fail',\n VFAILED: 'v-failed', // 校验失败\n UPLOADING: 'uploading',\n UNSELECTED: 'unselected',\n CUTTING: 'cutting', // 裁剪中\n DUPLICATE_NAME: 'duplicate_name', // 文件重名\n NAME_LENGTH_INVALID: 'name_length_invalid', // 文件名长度校验不通过(1-100)\n NAME_INCLUDE_EMOJI: 'name_include_emoji', // 文件包含表情\n ANALYSIS_FAILED: 'analysis_failed', // 解析失败\n OVER_SIZE: 'over_size', // 文件超出500M\n};\n\nexport const videoUploadVerifyMode = {\n afterUpload: 'afterUpload',\n beforeUpload: 'beforeUpload',\n};\n\n// 创意类型\nexport const creativeType = {\n CUSTOM: 2, // 自定义创意\n PROCEDURAL: 3, // 程序化创意\n DPA: 4, // DPA创意\n};\n\n// 自定义创意广告类型\nexport const NORMAL_AD_SOURCES = {\n CREATE_NEW: {\n value: 0, // 手动新建广告塞物料\n i18n: 'adgroup_create_title',\n },\n NATIVE_VIDEO: {\n value: 2, // 原生广告,取达人的物料\n i18n: 'common_native_video_ad',\n },\n TTBA_PUSH_NATIVE_VIDEO: {\n value: 3, // TTBA 推原生视频\n i18n: '',\n },\n};\nexport const getIsNativeAdByAdSource = (adItemSource) => {\n const nativeAdSources = [NORMAL_AD_SOURCES.NATIVE_VIDEO.value, NORMAL_AD_SOURCES.TTBA_PUSH_NATIVE_VIDEO];\n return nativeAdSources.includes(adItemSource);\n};\n\nexport const NORMAL_AD_SOURCES_REVERSE_MAP = getReverseMap(NORMAL_AD_SOURCES);\n\n// 创意分类\nexport const AD_TYPE = {\n SINGLE_IMAGE: {\n value: 1, // 单图\n i18n: 'module_ad_type_single_image', // 文案翻译\n icon: require('src/assets/images/common-image.svg'), // 图标\n desc: 'module_ad_type_single_image_desc', // 描述,\n aliasType: 'image',\n },\n SINGLE_VIDEO: {\n value: 2, // 单视频\n i18n: 'module_ad_type_single_video',\n icon: require('src/assets/images/common-video.svg'),\n desc: 'module_ad_type_single_video_desc',\n aliasType: 'video',\n },\n CATALOGUE_IMAGE: {\n value: 3, // 商品目录图片\n i18n: 'module_ad_type_catalogue_image',\n icon: require('src/assets/images/common-image.svg'),\n desc: '',\n aliasType: 'dpaImage',\n },\n CATALOGUE_VIDEO: {\n value: 4, // 商品目录视频\n i18n: 'module_ad_type_catalogue_video',\n icon: require('src/assets/images/common-video.svg'),\n desc: '',\n aliasType: 'dpaVideo',\n },\n CAROUSEL_IMAGE: {\n value: 5,\n i18n: 'module_ad_type_carousel_image',\n icon: require('src/assets/images/common-image.svg'),\n desc: 'module_ad_type_carousel_image_desc',\n aliasType: 'carouselImage',\n },\n REAL_TIME_LIVE: {\n value: 6, // 实时直播\n },\n};\n\nexport const CARD_ADDITIONAL_CREATIVE_TYPE = {\n CUSTOMIZED: {\n value: 0, // 自定义\n i18n: 'module_card_additional_creative_customized', // 文案翻译\n iconClass: 'vi-icon2-adjustment', // 图标\n desc: '', // 描述,\n name: 'CUSTOMIZED',\n },\n EXISTING_COMBINATION: {\n value: 1, // collection ads\n i18n: 'module_card_additional_creative_existing',\n iconClass: 'vi-icon2-pingtu',\n desc: '',\n name: 'EXISTING_COMBINATION',\n teaData: {\n 'data-tea-style': 'old',\n 'data-tea-creative-type': 'collection_ads_single_video',\n 'data-tea-expose': 'collection_ads_type_selector_expose_old',\n },\n },\n};\n\n// card 的类型\nexport const ADDITIONAL_CREATIVE_ATTACHMENT_EXPERIENCE_TYPES = {\n IMAGE_CARD: 'imageCard', // 附加创意都适用这个key\n INSTANT_PAGE: 'instantPage',\n ENGAGEMENT: 'engagement',\n};\n\nexport const ADDITIONAL_CREATIVE_IMAGE_CARD_TEMPLATE_TYPES = {\n GAME_GIFT_CARD: {\n img: require('src/assets/images/additional-creative-game-gift-card-option-preview-img.png'),\n label: 'module_game_gift_card',\n introduce: 'module_game_gift_card_introduce',\n value: 2,\n name: 'GAME_GIFT_CARD',\n },\n CUSTOMIZED_IMAGE: {\n img: require('src/assets/images/additional-creative-customized-image-card-option-preview-img.png'),\n label: 'module_customized_image_card',\n introduce: 'module_customized_image_card_introduce',\n value: 1,\n name: 'CUSTOMIZED_IMAGE',\n },\n};\n// todo 确定福袋和instant的联动\nexport const CUSTOM_INSTANT_PAGE_SUPPORT_CARD_TYPES = [\n ADDITIONAL_CREATIVE_IMAGE_CARD_TEMPLATE_TYPES.CUSTOMIZED_IMAGE.value,\n];\nexport const GET_SPECIAL_ADDITIONAL_CREATIVE_INSTANT_PAGE_TEMPLATE_TYPES = () => (\n {\n APP_PROFILE_INSTANT_PAGE: {\n template_id: 1, // 模版 id\n editor_data: 'xxx', // 编辑器数据, list 接口返回的为空\n data: 'xxxx', // 模版初始化数据, list 接口返回的为空\n schema_data: 'xxx', // 格式数据, list 接口返回的为空\n title: i18n.t('module_app_profile_instant_page'), // 模版标题-展示给用户的\n description: i18n.t('module_app_profile_instant_page'), // 模版描述\n creation_type: 1, // 1 - 页面, 2 - 卡片, 3 - 卡片&页面\n video_infos: { // 模版视频信息\n card: {\n // eslint-disable-next-line max-len\n video_url: 'https://sf16-sg.tiktokcdn.com/obj/eden-sg/lm_zkh_rvarpa/ljhwZthlaukjlkulzlp/ads_manager_creation/app-profile-instant-page-with-demo.mp4',\n video_cover_url: require('src/assets/images/app-profile-video-poster.png'),\n },\n page: {\n // eslint-disable-next-line max-len\n video_url: 'https://sf16-sg.tiktokcdn.com/obj/eden-sg/lm_zkh_rvarpa/ljhwZthlaukjlkulzlp/ads_manager_creation/app-profile-instant-page-demo.mp4',\n video_cover_url: require('src/assets/images/app-profile-video-poster.png'),\n },\n },\n thumbnail: require('src/assets/images/app-profile-page-instant-page-demo.png'), // 截图\n business_type: 4,\n template_name: 'interimDownload',\n value: 4,\n name: 'APP_PROFILE_INSTANT_PAGE',\n // App Profile 类型的instant page 不支持任何卡片\n supportCardTypes: [],\n },\n }\n);\n\nconst getCreativeTypeMap = () => {\n const map = {};\n // {1: 'image'}\n Object.values(AD_TYPE).forEach(({ value, aliasType }) => {\n map[value] = aliasType;\n });\n return map;\n};\n\nexport const creativeTypeMap = getCreativeTypeMap();\n// 这里是抽屉里允许接入的类型,添加一个playable\nexport const adCreationComponentsAllowedTypes = ['video', 'image', 'carouselImage', 'playable'];\n\nconst [CAROUSEL_IMAGE_COUNT_MIN, CAROUSEL_IMAGE_COUNT_MAX] = [2, 10];\nexport const CAROUSEL_IMAGE_COUNT_LIMIT = [CAROUSEL_IMAGE_COUNT_MIN, CAROUSEL_IMAGE_COUNT_MAX];\n\nexport const CAROUSEL_IMAGE_SUPPORT_APP_LIST = [INVENTORY_FLOW.TOPBUZZ];\n// 创意工具顶部导航栏配置. 和peacock项目中的配置一一对应\nexport const VIDEO_CREATIVE_KIT_TABS = {\n VIDEO_GENERATOR: { // 视频制作\n value: 1,\n },\n LANDING_PAGE_VIDEO: { // 落地页视频\n value: 2,\n },\n VIDEO_SOUND_TRACK: { // 视频配乐\n value: 3,\n },\n};\n\n// 创意预览处理规则,指需要对预览封面图做的处理\nexport const CREATIVE_COVER_HANDLER = {\n NONE: -1, // 不处理\n HORIZONTAL_BLACK_1TO1: 1, // 左右加黑边至1:1\n VERTICAL_GOSS_9TO16: 2, // 上下高斯模糊至9:16\n VERTICAL_BLACK_9TO16: 3, // 上下加黑边至9:16\n VERTICAL_EDGE_COLOR_9TO16: 4, // 上下边缘算色至9:16\n HORIZONTAL_GOSS_1TO1: 5, // 左右加高斯模糊至1:1\n HORIZONTAL_EDGE_COLOR_1TO1: 6, // 左右边缘算色至1:1\n};\n\nconst {\n NONE, HORIZONTAL_BLACK_1TO1, VERTICAL_EDGE_COLOR_9TO16, VERTICAL_BLACK_9TO16, HORIZONTAL_EDGE_COLOR_1TO1,\n} = CREATIVE_COVER_HANDLER;\n\n// 创意预览图处理规则映射\nexport const CREATIVE_PREIVEW_HANDLER_MAP = {\n [INVENTORY_FLOW.TOPBUZZ]: { // 版位\n SQUARE: { // 预览框尺寸 1:1\n VERTICAL: { // 封面图尺寸 9:16\n 1: HORIZONTAL_BLACK_1TO1, // 版式1: 左右加黑边至1:1\n 2: HORIZONTAL_BLACK_1TO1, // 版式2: 左右加黑边至1:1\n },\n SQUARE: { // 封面图尺寸 1:1\n 1: NONE,\n 2: NONE,\n },\n },\n HORIZONTAL: { // 预览框尺寸 16:9\n HORIZONTAL: { // 封面图尺寸 16:9\n 1: NONE, // 版式1\n 2: NONE, // 版式2\n },\n },\n },\n [INVENTORY_FLOW.HELO]: {\n HORIZONTAL: {\n HORIZONTAL: {\n 1: NONE,\n 2: NONE,\n },\n },\n SQUARE: {\n SQUARE: {\n 1: NONE,\n 2: NONE,\n },\n VERTICAL: {\n 1: HORIZONTAL_EDGE_COLOR_1TO1, // 左右加边缘算色至1:1\n 2: HORIZONTAL_EDGE_COLOR_1TO1, // 版式2: 左右加边缘算色至1:1\n },\n },\n },\n [INVENTORY_FLOW.VIGO]: {\n VERTICAL: {\n VERTICAL: {\n 1: NONE,\n 2: NONE,\n },\n HORIZONTAL: {\n 1: VERTICAL_EDGE_COLOR_9TO16,\n 2: VERTICAL_EDGE_COLOR_9TO16,\n },\n SQUARE: {\n 1: VERTICAL_EDGE_COLOR_9TO16,\n 2: VERTICAL_EDGE_COLOR_9TO16,\n },\n },\n },\n [INVENTORY_FLOW.TIKTOK]: {\n VERTICAL: {\n VERTICAL: {\n 1: NONE,\n },\n SQUARE: {\n 1: VERTICAL_BLACK_9TO16,\n },\n HORIZONTAL: {\n 1: VERTICAL_BLACK_9TO16,\n },\n },\n },\n [INVENTORY_FLOW.TIKTOKADNETWORK]: {\n HORIZONTAL: {\n HORIZONTAL: {\n 1: NONE,\n },\n },\n SQUARE: {\n SQUARE: {\n 1: NONE,\n },\n },\n VERTICAL: {\n VERTICAL: {\n 1: NONE,\n },\n SQUARE: {\n 1: VERTICAL_BLACK_9TO16,\n },\n HORIZONTAL: {\n 1: VERTICAL_BLACK_9TO16,\n },\n },\n },\n};\n// 试玩素材方向映射\nexport const PLAYABLE_ORIENTATION = {\n BOTH: { // 横竖版均可\n key: 'library_playable_direction_both',\n value: 0,\n },\n PORTRAIT: { // 竖版\n key: 'library_playable_direction_portrait',\n value: 1,\n },\n LANDSCAPE: { // 横版\n key: 'library_playable_direction_landscape',\n value: 2,\n },\n};\n\nexport const PLAYABLE_ORIENTATION_REVERSE_MAP = getReverseMap(PLAYABLE_ORIENTATION);\n\n// 试玩素材审核状态\nexport const PLAYABLE_AUDIT_STATUS = {\n VALIDATING: {\n key: 'library_playable_validating',\n value: 0,\n color: '$--color-group7-5',\n },\n VALIDATE_FAIL: {\n key: 'library_playable_validate_fail',\n value: 1,\n color: '#F45858',\n },\n APPROVING: {\n key: 'library_playable_audit_approving',\n value: 2,\n color: '$--color-group7-5',\n },\n FAILED: {\n key: 'library_playable_audit_failed',\n value: 3,\n color: '#F45858',\n },\n APPROVED: {\n key: 'library_playable_audit_approved',\n value: 4,\n color: '#06D6DB',\n },\n};\n\nexport const PLAYABLE_AUDIT_STATUS_REVERSE_MAP = getReverseMap(PLAYABLE_AUDIT_STATUS);\n\n/**\n * 与负责试玩素材校验的后端 刘培洋 约定的错误码\n * 错误码由5位3部分组成,\n * 第1位是阶段,1: 文件检验 2: 浏览器检验\n * 第2、3位是类型\n * 第4、5位是具体错误\n */\nexport const PLAYABLE_ERROR_CODE = {\n NOT_ZIP: '10101', // 文件格式有误\n BEYOND_SIZE_LIMIT: '10201', // 文件大小有误\n NO_ENTRY_HTML: '10301', // 未找到主html文件\n NO_CONFIG_FILE: '10401', // 未找到config文件\n WRONG_CONFIG_FORMAT: '10402', // config文件格式有误\n NO_ORIENTATION_CONFIG: '10501', // 未找到试玩广告播放方向字段\n WRONG_ORIENTATION_VALUE: '10502', // 试玩广告播放方向取值有误\n NO_SDK: '20101', // JS-SDK接入方式\n NOT_EXECUTE_SDK: '20102', // JS-SDK调用方式\n FORBID_MRAID: '20201', // 禁止mraid.js脚本\n FORBID_EXTERNAL_RESOURCE: '20301', // 禁止外部动态素材加载\n FORBID_REQUEST: '20302', // 禁止http请求\n UNKNOWN_ERROR: '90001', // 未知错误\n NO_LANG: '10503', // 未找到试玩广告语言适配字段\n ERROR_LANG: '10504', // 试玩广告语言适配取值有误\n};\n\nconst {\n NOT_ZIP,\n BEYOND_SIZE_LIMIT,\n NO_ENTRY_HTML,\n NO_CONFIG_FILE,\n WRONG_CONFIG_FORMAT,\n NO_ORIENTATION_CONFIG,\n WRONG_ORIENTATION_VALUE,\n NO_SDK,\n NOT_EXECUTE_SDK,\n FORBID_MRAID,\n FORBID_EXTERNAL_RESOURCE,\n FORBID_REQUEST,\n NO_LANG,\n ERROR_LANG,\n} = PLAYABLE_ERROR_CODE;\n\n// 试玩素材要求\nexport const PLAYABLE_REQUIREMENTS = {\n FORMAT_SIZE: {\n id: 1,\n text: 'library_playable_recommendation_format_size',\n errorCodes: [NOT_ZIP, BEYOND_SIZE_LIMIT], // 可能多个错误码对应一个页面提示\n },\n SDK: {\n id: 2,\n text: 'library_playable_recommendation_sdk',\n errorCodes: [NO_SDK, NOT_EXECUTE_SDK],\n },\n HTML: {\n id: 3,\n text: 'library_playable_recommendation_html',\n errorCodes: [NO_ENTRY_HTML],\n },\n DIRECTION: {\n id: 4,\n text: 'library_playable_recommendation_direction',\n errorCodes: [NO_CONFIG_FILE, WRONG_CONFIG_FORMAT, NO_ORIENTATION_CONFIG, WRONG_ORIENTATION_VALUE],\n },\n MARID: {\n id: 5,\n text: 'library_playable_recommendation_marid',\n errorCodes: [FORBID_MRAID],\n },\n DYNAMIC_MATERIAL: {\n id: 6,\n text: 'library_playable_recommendation_dynamic_material',\n errorCodes: [FORBID_EXTERNAL_RESOURCE],\n },\n REDIRECTION: {\n id: 7,\n text: 'library_playable_recommendation_redirection',\n errorCodes: [],\n },\n HTTP_REQUEST: {\n id: 8,\n text: 'library_playable_recommendation_http_request',\n errorCodes: [FORBID_REQUEST],\n },\n LANGUAGE_EXIST: {\n id: 9,\n text: 'library_playable_recommendation_language_exist',\n errorCodes: [NO_LANG],\n },\n LANGUAGE_MATCH: {\n id: 10,\n text: 'library_playable_recommendation_language_match',\n errorCodes: [ERROR_LANG],\n },\n};\n\n// 试玩上传错误枚举\nexport const PLAYABLE_UPLOAD_ERROR_MAP = {\n TIMEOUT: {\n id: 0,\n key: 'library_playable_error_timeout',\n icon: 'vi-icon-ex-circle-warn',\n color: '#F8AD14',\n },\n NETWORK: {\n id: 1,\n key: 'library_playable_error_network',\n icon: 'vi-icon-ex-circle-warn',\n color: '#F8AD14',\n },\n UNKNOWN: {\n id: 2,\n key: 'library_playable_error_unknown',\n icon: 'vi-icon-ex-circle-fail',\n color: '#F45858',\n },\n FAIL: {\n id: 3,\n key: 'library_playable_error_failed',\n icon: 'vi-icon-ex-circle-fail',\n color: '#F45858',\n },\n};\n\nexport const PLAYABLE_UPLOAD_ERROR_REVERSE_MAP = getReverseMap(PLAYABLE_UPLOAD_ERROR_MAP, 'id');\n\nexport const DPA_WORD_PATTERN_LEFT = '['; // DPA动态词包在广告文案中的模式, 只支持单个字符\nexport const DPA_WORD_PATTERN_RIGHT = ']'; // DPA动态词包在广告文案中的模式, 只支持单个字符\n\n// 程序化创意的tab\nexport const PROCEDURAL_AD_TABS = {\n VIDEO: {\n name: 'video',\n value: 2,\n key: 'procedural-material-type-video',\n },\n IMAGE: {\n name: 'image',\n value: 1,\n key: 'procedural-material-type-image',\n },\n};\n\nexport const creativeSelectOptions = [\n {\n icon: 'creative-template',\n name: 'module_template_name',\n label: 'creativeTemplate',\n subInfo: 'module_template_info',\n },\n {\n icon: 'creative-microVideo',\n name: 'module_micro_video_name',\n label: 'creativeMicrovideo',\n subInfo: 'module_micro_video_info',\n },\n];\nexport const creativeSelect = {\n template: {\n icon: 'creative-template',\n name: 'module_template_name',\n label: 'creativeTemplate',\n subInfo: 'module_template_info',\n },\n microVideo: {\n icon: 'creative-microVideo',\n name: 'module_micro_video_name',\n label: 'creativeMicrovideo',\n subInfo: 'module_micro_video_info',\n },\n};\n\n// 原生视频授权审核状态\nexport const NATIVE_AUDIT_STATUS = {\n APPLYING: {\n key: 'module_library_native_auth_approving', // 申请中\n value: 1,\n color: '$--color-group7-5',\n },\n AUTHORIZED: {\n key: 'module_library_native_auth_success', // 已授权\n value: 2,\n color: '#06D6DB',\n },\n EXPIRED: {\n key: 'module_library_native_auth_expired', // 授权过期\n value: 0,\n color: '#F45858',\n },\n NORESPONSE: {\n key: 'module_library_native_auth_no_response', // 授权未响应\n value: 3,\n color: '#F45858',\n },\n REJECTED: {\n key: 'module_library_native_auth_failed', // 授权拒绝\n value: 4,\n color: '#F45858',\n },\n CANCEL: {\n key: 'module_library_native_auth_cancle', // 授权取消\n value: 5,\n color: '#F45858',\n },\n};\n\nexport const NATIVE_AUDIT_STATUS_REVERSE_MAP = getReverseMap(NATIVE_AUDIT_STATUS);\n\nexport const IES_ITEM_SOURCE_TYPE = {\n AD_SITE: 0,\n IES: 1,\n NATIVE_VIDEO: 2,\n};\n\n// 判断原生广告是否已授权\nexport const INVENTORY_STATUS_TYPE = {\n UNAUDITED: 0, // 待审核\n CONFIRMED: 1, // 审核通过\n REJECTED: 2, // 审核拒绝\n UNAUTHORIZED: 3, // 未授权\n};\n\nexport const leadAdsFormStatus = {\n completed: 2,\n draft: 1,\n};\n\nexport const smartTextToolsForbiddenCountries = [\n 'US', // 美国\n 'CA', // 加拿大\n];\n\n/**\n * 协议类型,前端定义用于判断展示\n */\nexport const PROTOCOL_TYPE = {\n LEAD_ADS: 'leadAds',\n STOREFRONTS: 'storefront',\n};\nexport const ADVERTISER_SETTING_TYPE = {\n selfServiceActivityHiddenSend: 1, // 自助smb扶持打压\n enVatValidateDetail: 2, // 欧洲税号校验详情\n instantPageProtocol: 3, // 轻落地页条款\n crmConnected: 5, // 链接crm\n iosWebAlert: 8,\n};\n\n/**\n * protocol 的纬度\n */\nexport const SETTING_DIMENSION = {\n AdvertiserOnly: 1, // 广告主纬度\n AdvertiserAndUser: 2, // 广告主和用户纬度\n};\n\n/**\n * 编辑器返回参数列表及映射\n * key: 平台参数名称\n * value: 对应的辑器返回的参数名称\n */\nexport const STOREFRONT_EDITOR_PARAM_MAP = {\n call_to_action: 'CTA',\n page_id: 'id',\n product_platform_id: 'product_platform_id',\n product_set_id: 'product_set_id',\n catalog_language: 'catalog_language',\n dpa_products: 'dpa_products',\n dpa_preview_products: 'dpa_products',\n page_product_configuration: 'product_configuration',\n page_preview_url: 'preview_url',\n page_image_url: 'image_url',\n page_card_format: 'card_format',\n};\n\n/**\n * Collection ads 页面的卡片类型\n */\nexport const COLLECTION_ADS_CARD_FORMAT = {\n gallery: 0, // 商品卡片\n imageCard: 1, // 图片卡片\n};\n\n/**\n * 创意类型\n */\nexport const CREATIVE_TYPE = {\n DPA_TPL: 100,\n DPA_CREATIVE: 101,\n LYNX_PDP: 102,\n LYNX_PLP: 103,\n SHOP_PDP: 104,\n SHOP_PLP: 110,\n SHOP_LIVE_VIDEO: 108,\n SHOP_LIVE_REAL_TIME: 109,\n};\n/*\n adgroup披露的content_type枚举\n*/\nexport const CONTENT_TYPE = {\n SHOP_LIVE_VIDEO: 1,\n SHOP_LIVE_REAL_TIME: 311,\n};\n// tiktok预览不同版位的名称\nexport const TIKTOK_PREVIEW_NAME = {\n TIKTOK: 'tiktok',\n SEARCHADS: 'search_ads',\n};\n// tiktokSearchAds的开关值\nexport const TIKTOK_SEARCH_ADS_SWITCH = {\n DEFAULT: -1,\n OPEN: 3,\n CLOSE: 0,\n};\n// searchAds附带的参数,目前后端不用这个,先带上,防止后面使用到\nexport const TIKTOK_INFOW = 11233531;\n\n\n// pangle预览不同版位名称\nexport const PANGLE_PREVIEW_NAME = {\n INTERSTITIAL: 'interstitial',\n REWARDED: 'rewarded',\n NATIVE: 'native',\n BANNER: 'banner',\n SMALL_VIDEO_BANNER: 'small_video_banner',\n NORMAL_BANNER: 'normal_banner',\n THUMBNAIL_BANNER: 'thumbnail_banner',\n ICONS_ONLY_BANNER: 'icons_only_banner',\n NORMAL_NATIVE: 'normal_native',\n VIDEO_THUMBNAIL_NATIVE: 'video_thumbnail_native',\n};\n// Pangle素材类型为video的预览版位配置\nexport const PANGLE_VIDEO_AD_VIEWER_LIST = [\n {\n label: '',\n key: '1',\n options: [\n {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_interstitial',\n value: PANGLE_PREVIEW_NAME.INTERSTITIAL,\n num: 0,\n position: 0,\n hasEndcard: true,\n comp: 'pangle-ad-preview-interstitial',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value, AD_TYPE.CATALOGUE_VIDEO.value], // 支持单图、单视频\n },\n ],\n },\n {\n label: '',\n key: '2',\n options: [\n {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_rewarded',\n value: PANGLE_PREVIEW_NAME.REWARDED,\n num: 0,\n position: 1,\n hasEndcard: true,\n comp: 'pangle-ad-preview-rewarded',\n support: [AD_TYPE.SINGLE_VIDEO.value, AD_TYPE.CATALOGUE_VIDEO.value],\n },\n ],\n },\n {\n label: 'ad_preview_pangle_banner_group_name',\n key: '3',\n options: [{\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_normal_banner',\n value: PANGLE_PREVIEW_NAME.NORMAL_BANNER,\n num: 0,\n position: 2,\n hasEndcard: false,\n comp: 'pangle-ad-preview-normal-banner',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }, {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_video_thumbnail_banner',\n value: PANGLE_PREVIEW_NAME.NORMAL_BANNER,\n num: 0,\n position: 3,\n hasEndcard: false,\n comp: 'pangle-ad-preview-video-thumbnail-banner',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }, {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_small_video_banner',\n value: PANGLE_PREVIEW_NAME.SMALL_VIDEO_BANNER,\n num: 0,\n position: 4,\n hasEndcard: false,\n comp: 'pangle-ad-preview-small-video-banner',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }, {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_icons_only_banner',\n value: PANGLE_PREVIEW_NAME.ICONS_ONLY_BANNER,\n num: 0,\n position: 5,\n hasEndcard: false,\n comp: 'pangle-ad-preview-icons-only-banner',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }],\n },\n {\n label: 'ad_preview_pangle_native_group_name',\n key: '4',\n options: [{\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_normal_native',\n value: PANGLE_PREVIEW_NAME.NORMAL_NATIVE,\n num: 0,\n position: 6,\n hasEndcard: false,\n comp: 'pangle-ad-preview-normal-native',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }, {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_video_thumbnail_native',\n value: PANGLE_PREVIEW_NAME.VIDEO_THUMBNAIL_NATIVE,\n num: 0,\n position: 7,\n hasEndcard: false,\n comp: 'pangle-ad-preview-video-thumbnail-native',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }],\n },\n];\n// pangle素材类型为img的预览版位\nexport const PANGLE_IMG_AD_VIEWER_LIST = [\n {\n label: '',\n key: '1',\n options: [\n {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_interstitial',\n value: PANGLE_PREVIEW_NAME.INTERSTITIAL,\n num: 0,\n position: 0,\n hasEndcard: true,\n comp: 'pangle-ad-preview-interstitial',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value, AD_TYPE.CATALOGUE_VIDEO.value], // 支持单图、单视频\n },\n ],\n },\n {\n label: '',\n key: '2',\n options: [\n {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_rewarded',\n value: PANGLE_PREVIEW_NAME.REWARDED,\n num: 0,\n position: 1,\n hasEndcard: true,\n comp: 'pangle-ad-preview-rewarded',\n support: [AD_TYPE.SINGLE_VIDEO.value, AD_TYPE.CATALOGUE_VIDEO.value],\n },\n ],\n },\n {\n label: 'ad_preview_pangle_banner_group_name',\n key: '3',\n options: [{\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_normal_banner',\n value: PANGLE_PREVIEW_NAME.NORMAL_BANNER,\n num: 0,\n position: 2,\n hasEndcard: false,\n comp: 'pangle-ad-preview-normal-banner',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }, {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_icons_only_banner',\n value: PANGLE_PREVIEW_NAME.ICONS_ONLY_BANNER,\n num: 0,\n position: 3,\n hasEndcard: false,\n comp: 'pangle-ad-preview-icons-only-banner',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }],\n },\n {\n label: 'ad_preview_pangle_native_group_name',\n key: '4',\n options: [{\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_normal_native',\n value: PANGLE_PREVIEW_NAME.NORMAL_NATIVE,\n num: 0,\n position: 4,\n hasEndcard: false,\n comp: 'pangle-ad-preview-normal-native',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }],\n },\n];\n// 临时处理:在DPA场景下,pangle版位下掉其中两个\nexport const DPA_PANGLE_VIDEO_AD_VIEWER_LIST = [\n {\n label: '',\n key: '1',\n options: [\n {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_interstitial',\n value: PANGLE_PREVIEW_NAME.INTERSTITIAL,\n num: 0,\n position: 0,\n hasEndcard: true,\n comp: 'pangle-ad-preview-interstitial',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value, AD_TYPE.CATALOGUE_VIDEO.value], // 支持单图、单视频\n },\n ],\n },\n {\n label: '',\n key: '2',\n options: [\n {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_rewarded',\n value: PANGLE_PREVIEW_NAME.REWARDED,\n num: 0,\n position: 1,\n hasEndcard: true,\n comp: 'pangle-ad-preview-rewarded',\n support: [AD_TYPE.SINGLE_VIDEO.value, AD_TYPE.CATALOGUE_VIDEO.value],\n },\n ],\n },\n {\n label: 'ad_preview_pangle_banner_group_name',\n key: '3',\n options: [{\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_normal_banner',\n value: PANGLE_PREVIEW_NAME.NORMAL_BANNER,\n num: 0,\n position: 2,\n hasEndcard: false,\n comp: 'pangle-ad-preview-normal-banner',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }, {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_small_video_banner',\n value: PANGLE_PREVIEW_NAME.SMALL_VIDEO_BANNER,\n num: 0,\n position: 3,\n hasEndcard: false,\n comp: 'pangle-ad-preview-small-video-banner',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }, {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_icons_only_banner',\n value: PANGLE_PREVIEW_NAME.ICONS_ONLY_BANNER,\n num: 0,\n position: 4,\n hasEndcard: false,\n comp: 'pangle-ad-preview-icons-only-banner',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }],\n },\n {\n label: 'ad_preview_pangle_native_group_name',\n key: '4',\n options: [{\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'module_library_normal_native',\n value: PANGLE_PREVIEW_NAME.NORMAL_NATIVE,\n num: 0,\n position: 5,\n hasEndcard: false,\n comp: 'pangle-ad-preview-normal-native',\n support: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.SINGLE_VIDEO.value],\n }],\n },\n];\n\n// 此广告版式下的素材类型\nexport const MATERIALTYPE = {\n IMG: [AD_TYPE.SINGLE_IMAGE.value, AD_TYPE.CATALOGUE_IMAGE.value, AD_TYPE.CAROUSEL_IMAGE.value],\n VIDEO: [AD_TYPE.SINGLE_VIDEO.value, AD_TYPE.CATALOGUE_VIDEO.value],\n};\n\n// Pangle Tooltips 映射\nexport const pangleToolTipsMap = {\n module_library_normal_banner: 'module_library_normal_banner_video_hover',\n module_library_normal_banner_img: 'module_library_normal_banner_img_hover',\n module_library_video_thumbnail_banner: 'module_library_video_thumbnail_banner_video_hover',\n module_library_small_video_banner: 'module_library_small_video_banner_video_hover',\n module_library_icons_only_banner: 'module_library_icons_only_banner_video_hover',\n module_library_icons_only_banner_img: 'module_library_icons_only_banner_img_hover',\n module_library_normal_native: 'module_library_normal_native_video_hover',\n module_library_normal_native_img: 'module_library_normal_native_img_hover',\n module_library_video_thumbnail_native: 'module_library_video_thumbnail_native_video_hover',\n};\n// 素材预校验初始值\nexport const initSuggestion = {\n images: [],\n display_name: [],\n videos: [],\n};\nconst [MIN_TITLE_LENGTH, MAX_TITLE_LENGTH] = [1, 100];\nexport const CREATIVE_TITLE_LENGTH_LIMIT = [MIN_TITLE_LENGTH, MAX_TITLE_LENGTH];\n// 非法标题长度I18n key参数\nexport const invalidTitleLengthI18nParams = {\n // 半角\n halfMinLength: MIN_TITLE_LENGTH,\n halfMaxLength: MAX_TITLE_LENGTH,\n // 全角\n fullMinLength: Math.ceil(MIN_TITLE_LENGTH / 2),\n fullMaxLength: Math.ceil(MAX_TITLE_LENGTH / 2),\n};\n\nexport const catAssetTypeEnum = {\n // 支持英语的地区\n EN: 1,\n // 不支持英语的地区传值\n NOTEN: 0,\n};\n\nconst PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP = {\n VIDEO_DURATION: 1, // 视频时长\n VIDEO_NO_VOICE: 2, // 视频音频静音\n VIDEO_SIZE: 3, // 视频黑边监测\n IMAGE_CONTENT: 4, // 非中国区恶心图片\n TEXT_CONTENT: 5, // 文本涉政\n IMAGE_LOGO: 6, // 非中国区我司 logo\n MOSAIC: 7, // 马赛克 —— 视频 & 图片\n VIDEO_LOGO: 8, // 视频我司LOGO\n URL_FAIL: 9, // URL校验不通过\n INSUIT_AND_EXAGGERATION: 10, // 视频或者图片或者ad_text中存在侮辱性词包或者夸张描述\n TEXT_INCLUDE_URL: 11, // text中包含文本\n VIDEO_OR_IMG_INCLUDE_SHOCKING_ELEMENT: 12, // 视频或者图片中包含恶心元素\n};\nconst PRECHECK_RESULT_CODE_MAP = {\n VIDEO_DURATION: '21000060',\n VIDEO_SIZE: '21700041',\n VIDEO_NO_VOICE: '21900016',\n IMAGE_CONTENT: '15011',\n IMAGE_LOGO: '20100027',\n MOSAIC: '21500006',\n TEXT_CONTENT_1: '21000059',\n TEXT_CONTENT_2: '21000058',\n TEXT_CONTENT_3: '21000057',\n VIDEO_LOGO: '20100172',\n URL_FAIL: '20700059',\n INSUIT_1: '20200256', // 视频或者图片或者ad_text有侮辱性质的词包\n INSUIT_2: '20100275', // 视频或者图片中有侮辱性的手势\n EXAGGERATION: '21200018', // 视频或者图片或者ad_text存在夸张描述\n TEXT_INCLUDE_URL: '21200046', // text中包含URL\n VIDEO_OR_IMG_INCLUDE_SHOCKING_ELEMENT: '20100520', // 视频或者图片中包含恶心元素\n};\n// 视频编辑器能修复问题的code集合\nexport const precheckCanFixCodeList = [\n PRECHECK_RESULT_CODE_MAP.VIDEO_NO_VOICE,\n PRECHECK_RESULT_CODE_MAP.VIDEO_DURATION,\n PRECHECK_RESULT_CODE_MAP.EXAGGERATION,\n PRECHECK_RESULT_CODE_MAP.INSUIT_2,\n PRECHECK_RESULT_CODE_MAP.VIDEO_LOGO,\n PRECHECK_RESULT_CODE_MAP.MOSAIC,\n PRECHECK_RESULT_CODE_MAP.VIDEO_SIZE,\n];\n// 用户上传的时候,就能修复问题的问题的code集合\nexport const uploadVideoFixProblemCodeList = [\n PRECHECK_RESULT_CODE_MAP.VIDEO_NO_VOICE,\n PRECHECK_RESULT_CODE_MAP.VIDEO_DURATION,\n];\n// 预校验问题对应的枚举,主要传给后端使用\nexport const PRECHECKPROBLEMNUMBER = {\n VIDEO_VOICE: 1,\n VIDEO_DURATION: 2,\n};\n// 预校验问题对应的枚举,主要传给后端使用\nexport const uploadVideoProblemMapNumber = {\n [PRECHECK_RESULT_CODE_MAP.VIDEO_NO_VOICE]: PRECHECKPROBLEMNUMBER.VIDEO_VOICE,\n [PRECHECK_RESULT_CODE_MAP.VIDEO_DURATION]: PRECHECKPROBLEMNUMBER.VIDEO_DURATION,\n};\n// 视频校验min时长和max时长\nexport const MIN_DURATION = 4.5;\nexport const MAX_DURATION = 60.5;\n// 修复问题后给出的List提示\nexport const fixProblemTipsList = [\n {\n key: PRECHECK_RESULT_CODE_MAP.VIDEO_NO_VOICE,\n title: 'module_upload_video_fixed_problem_Music_title',\n content: 'material_no_audio',\n eventTrackName: 'Music',\n }, {\n key: PRECHECK_RESULT_CODE_MAP.VIDEO_DURATION,\n title: 'module_upload_video_fixed_problem_duration_title',\n content: 'material_duration',\n eventTrackName: 'Duration',\n },\n];\nexport const uploadEventTrackScene = {\n create: 1, // 创编\n campaignList: 4, // campaignList上传\n};\n// 修复问题的触发场景\nexport const CALLVIDEOEDITSCENE = {\n CREATE: 'preCheck', // 创编\n REJECT: 'audit', // 拒审页\n};\n\n// 被拒审后,通过视频编辑器能修复的问题的code集合\nexport const rejectAdCanFixByVideoEditCodeList = [\n 100090, // 因为夸张问题被拒审\n 100098, // 因为侮辱性问题被拒审\n 100076, // 因为视频含有TikTok logo被拒审\n 100073, // 因为视频含有马赛克被拒审\n];\n\n\n// 允许自动生成创意名称的创意类型\nexport const AutoGenerateCreativeNameUseableAdTypes = [\n AD_TYPE.SINGLE_IMAGE.value,\n AD_TYPE.SINGLE_VIDEO.value,\n AD_TYPE.CAROUSEL_IMAGE.value,\n];\n\n// TT必杀支持的objective\nexport const tiktokNotSupportImgObjTypes = [\n campaignObjectiveValue.Traffic,\n campaignObjectiveValue.AppInstall,\n campaignObjectiveValue.Conversion,\n campaignObjectiveValue.Reach,\n];\n\n// 允许自动生成创意名称的ObjectiveType\nexport const autoGenerateCreativeNameUseableObjTypes = [\n campaignObjectiveValue.Reach,\n campaignObjectiveValue.Traffic,\n campaignObjectiveValue.Conversion,\n campaignObjectiveValue.AppInstall,\n campaignObjectiveValue.VideoView,\n campaignObjectiveValue.RF,\n campaignObjectiveValue.LeadAds,\n campaignObjectiveValue.Engagement,\n campaignObjectiveValue.RF_VV,\n campaignObjectiveValue.RF_TRAFFIC,\n campaignObjectiveValue.RF_ENGAGEMENT,\n campaignObjectiveValue.RF_APPINSTALL,\n];\n// 视频来源\nexport const videoSource = {\n COMPUTER: 'computer',\n LIBRARY: 'library',\n TOOL: 'tool',\n};\nexport const PRECHECK_RESULT_TYPE_MAP = {\n [PRECHECK_RESULT_CODE_MAP.VIDEO_DURATION]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.VIDEO_DURATION, // 视频时长\n [PRECHECK_RESULT_CODE_MAP.VIDEO_SIZE]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.VIDEO_SIZE, // 视频黑边监测\n [PRECHECK_RESULT_CODE_MAP.VIDEO_NO_VOICE]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.VIDEO_NO_VOICE, // 视频音频静音\n [PRECHECK_RESULT_CODE_MAP.IMAGE_CONTENT]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.IMAGE_CONTENT, // 非中国区恶心图片\n [PRECHECK_RESULT_CODE_MAP.IMAGE_LOGO]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.IMAGE_LOGO, // 非中国区我司 logo\n [PRECHECK_RESULT_CODE_MAP.MOSAIC]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.MOSAIC, // 马赛克 —— 视频 & 图片\n [PRECHECK_RESULT_CODE_MAP.TEXT_CONTENT_1]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.TEXT_CONTENT, // 文本涉政\n [PRECHECK_RESULT_CODE_MAP.TEXT_CONTENT_2]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.TEXT_CONTENT, // 文本涉政\n [PRECHECK_RESULT_CODE_MAP.TEXT_CONTENT_3]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.TEXT_CONTENT, // 文本涉政\n [PRECHECK_RESULT_CODE_MAP.VIDEO_LOGO]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.VIDEO_LOGO, // 视频我司LOGO\n [PRECHECK_RESULT_CODE_MAP.URL_FAIL]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.URL_FAIL, // url有问题\n [PRECHECK_RESULT_CODE_MAP.INSUIT_1]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.INSUIT_AND_EXAGGERATION,\n [PRECHECK_RESULT_CODE_MAP.INSUIT_2]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.INSUIT_AND_EXAGGERATION,\n [PRECHECK_RESULT_CODE_MAP.EXAGGERATION]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.INSUIT_AND_EXAGGERATION,\n [PRECHECK_RESULT_CODE_MAP.TEXT_INCLUDE_URL]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.TEXT_INCLUDE_URL,\n [PRECHECK_RESULT_CODE_MAP.VIDEO_OR_IMG_INCLUDE_SHOCKING_ELEMENT]: PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP.VIDEO_OR_IMG_INCLUDE_SHOCKING_ELEMENT,\n};\n// 预校验视频硬伤(禁止使用一键优化)\nexport const videoCanNotUseOptimizePrecheckTypes = [\n PRECHECK_RESULT_CODE_MAP.MOSAIC,\n PRECHECK_RESULT_CODE_MAP.VIDEO_LOGO,\n];\n\n// 判断是否含有非商业挑战赛标识的参数\nexport const CHALLENGE_TYPE = {\n titles: 'titles',\n urls: 'urls',\n};\n\n// 接口返回的标识含义:内容中是否含有非商业挑战赛标识\nexport const CHALLENGE_AUDIT = {\n NONE: 0, // 监测完成,均为商业挑战赛并且在权限期内\n TITLE_HAS: 1, // 广告文案(title)含有非商业挑战赛或者不在权限期内\n URL_HAS: 2, // 落地页链接(url)含有非商业挑战赛或者不在权限期内\n};\n\n// 原生视频音乐是否有版权\nexport const PROMOTE_MUSIC_VALIDATE_MAP = {\n WITHOUT_SONG_ID: 0, // 原生视频未识别出歌曲\n AUTHORIZATION_MISSING: 1, // 原生视频识别出来的所有歌曲存在部分不具备授权\n WITH_FULL_AUTHORIZATION: 2, // 原生视频识别出来的所有歌曲全部具备授权\n};\n\nexport const MusicCommercialAuthorizationType = {\n NOT_AUTHORIZED: 0, // 歌曲不具备商业化授权\n AUTHORIZED: 1, // 歌曲具备商业化授权\n};\n\n// 原生视频的跟拍/合拍功能的开启状态\nexport const PROMOTE_MUSIC_ABILITY = {\n TURN_ON: 0, // 打开\n TURN_OFF: 2, // 关闭\n};\n\n// 附加创意编辑器 business_type 枚举\nexport const ADDITIONAL_CREATIVE_EDITOR_BUSINESS_TYPE_ENUMS = {\n LEAD_ADS: 1,\n PLP: 2,\n PDP: 3,\n APP_PROFILE_INSTANT_PAGE: 4,\n GAME_H52LYNX: 5,\n INSTANT_PAGE: 6,\n GAME_GIFT_CARD: 7,\n};\n\n// 附加创意编辑器 template_name 枚举\nexport const ADDITIONAL_CREATIVE_EDITOR_TEMPLATE_NAMES = {\n GAME_GIFT_CARD: 'giftCodeCard',\n CUSTOM_IMAGE_CARD_AND_INSTANT_PAGE: 'imageCardPage',\n INSTANT_PAGE_ONLY: 'instantPage',\n APP_PROFILE_INSTANT_PAGE: 'interimDownload',\n};\n\nexport const videoInfoExpectRule = {\n duration: val => ['string', 'number'].includes(typeof val) && Number(val) > 0,\n bitrate: val => typeof val === 'number' && val > 0,\n size: val => typeof val === 'number' && val > 0,\n height: val => typeof val === 'number' && val > 0,\n width: val => typeof val === 'number' && val > 0,\n};\n\nexport const getBusinessCreativeCenterLink = (currentLang) => {\n const link = '/business/creativecenter/';\n // creativeCenter 站只支持中日英\n const creativeCenterSupportLangList = ['en', 'ja', 'zh'];\n const lang = creativeCenterSupportLangList.includes(currentLang)\n ? currentLang\n : 'en';\n return `${link}${lang}`;\n};\n\nexport const fileTypeMap = {\n imageTypes: ['image/png', 'image/jpeg', 'image/jpg'],\n videoTypes: [\n 'video/mp4',\n 'video/quicktime', // mov\n 'video/mpeg',\n 'video/3gpp',\n 'video/avi',\n ],\n gifTypes: ['image/gif'],\n};\n\nexport const VIDEO_ASYNC_RENDER_FILL_ACTION_TYPE = {\n ADD_NEW_CREATIVE: 'ADD_NEW_CREATIVE',\n CHANGE_CREATIVE: 'CHANGE_CREATIVE',\n};\n\n// 渲染中的状态\nexport const VIDEO_ASYNC_RENDER_RENDERING_STATUS = {\n RENDERING: 0, // 渲染中 - 创意侧\n SUBMITTED: 1, // 已上送指定引擎 等待渲染结果\n CANCELLED: 5, // 被上游主动撤销\n WAITING_FOR_DEPENDENCY: 6, // 依赖的任务尚为完成 无法开始\n PAUSED: 7, // 等待上游触发继续渲染\n RESUMED: 8, // 被上游触发继续渲染流程\n};\n// 渲染出错的状态\nexport const VIDEO_ASYNC_RENDER_ERROR_STATUS = {\n RENDER_ERROR: 3, // 渲染失败 - 创意侧\n TIMEOUT: 4, // 渲染执行超时, 无渲染结果\n};\n// 所有状态\nexport const VIDEO_ASYNC_RENDER_STATUS = {\n RENDER_DONE_NOT_CREATED: 2, // 刚渲染完毕未落库 中间状态 - 创意侧\n ...VIDEO_ASYNC_RENDER_RENDERING_STATUS,\n ...VIDEO_ASYNC_RENDER_ERROR_STATUS,\n RENDER_DONE_AND_CREATED: 1000, // 渲染并落库成功 - 平台侧定义\n RENDER_DONE_NAME_ERROR: 1001, // 落库因重名而失败 - 平台侧定义\n RENDER_DONE_CREATED_FAILED: 1002, // 落库失败 - 平台侧定义\n};\n\nexport const VIDEO_RENDER_OPTIONS = {\n POLLING_DELAY: 3 * 1000, // 轮询间隔\n SINGLE_VIDEO_RENDER_TRY_COUNT: 3, // 单个视频重试次数上限\n};\n\nexport const CREATIVE_TOOL_VIDEO_RENDER_MODE = {\n RENDER_BY_TOOL: 1, // 工具内渲染\n RENDER_BY_PLATFORM: 2, // 平台异步渲染\n};\n\n\n// 站内跳转链接(回流页)类型\nexport const ReflowType = {\n ITEM: '0', // 视频详情页\n MUSIC: '1', // 音乐聚合页\n STICKER: '2', // 贴纸聚合页\n CHALLENGE: '3', // 挑战聚合页\n USER: '4', // 个人主页\n SHOP: '5', // tiktok shop\n};\n\n\nexport const SchemeType = {\n VIDEO: '1', // 视频详情页\n USERPROFILE: '2', // 个人主页\n MUSIC: '3', // 音乐详情页\n STICKER: '4', // 特效聚合页\n CHALLENGE: '5', // 挑战赛页\n STICKER_SHOOTER: '6', // 特效开拍页\n SHOP: '7', // tiktok shop\n};\n\n// deeplink在推广目标为安卓的app时,没有全量的国家\nexport const deeplinkNotAllCountryListCode = [\n 1861060, // 日本\n 3469034, // 巴西\n 357994, // 埃及\n];\n\n// 原生推视频是否选择dark post模式\nexport const DARK_POST_STATUS_MAP = {\n ON: 1, // 打开darkpost开关\n OFF: 2, // 关闭darkpost开关\n};\n\n// 原生创意行为类型\nexport const NATIVE_AD_ACTION_TYPE = {\n PULL_TT_POST: 2, // TikTok Post 拉视频原生创意\n PUSH_VIDEO_TO_TTBA: 3, // TTBA 推视频原生创意\n REAL_TIME_LIVE: 2, // 直投直播间要求item_source是2,作原生处理\n};\n// 配置下掉模型的校验规则\n// 拉视频下掉TikTok logo && 时长的校验\nconst PULL_VIDEO_IGNORE_CODE_LIST = [\n PRECHECK_RESULT_CODE_MAP.VIDEO_LOGO,\n PRECHECK_RESULT_CODE_MAP.VIDEO_DURATION,\n];\n// 推视频下掉TikTok logo的校验\nconst PUSH_VIDEO_IGNORE_CODE_LIST = [\n PRECHECK_RESULT_CODE_MAP.VIDEO_LOGO,\n];\n// 本次创建广告是否全为拉视频或者推视频\nconst isAllNativeAdOrTTBAPushVideo = (verifyAdsParams) => {\n const creativeList = _.get(verifyAdsParams, 'creative_info.video_list', []);\n if (creativeList.length <= 0) return 'NOT'; // 并非全是推视频或者是拉视频\n if (creativeList.every(item => item.item_source === NATIVE_AD_ACTION_TYPE.PULL_TT_POST)) return 'ALL_PULL'; // 全为拉视频\n if (creativeList.every(item => item.item_source === NATIVE_AD_ACTION_TYPE.PUSH_VIDEO_TO_TTBA)) return 'ALL_PUSH'; // 全为推视频\n return 'NOT';\n};\n// 使用index 移除数组中的多项\nconst withIndexremoveItemsfromArrary = (targetArr, indexList) => {\n for (let i = targetArr.length - 1; i >= 0; i--) {\n if (indexList.includes(i)) {\n targetArr.splice(i, 1);\n }\n }\n};\n// 过滤预校验中的一些模型\nconst filterPrechckSomeResult = (precheckRes, type) => {\n let removeCodeList = [];\n const summaryResults = [];\n switch (type) {\n case 'ALL_PULL':\n removeCodeList = PULL_VIDEO_IGNORE_CODE_LIST;\n break;\n case 'ALL_PUSH':\n removeCodeList = PUSH_VIDEO_IGNORE_CODE_LIST;\n break;\n default:\n return [];\n }\n const deepclonePrecheckRes = _.cloneDeep(precheckRes.material_results);\n deepclonePrecheckRes.forEach(AdItem => AdItem.videos.forEach((videoItem) => {\n // 从suggtion和tag_ids中移除相关校验\n const needRemoveCodeList = _.intersection(videoItem.tag_ids, removeCodeList);\n const needRemoveCodeIndexList = needRemoveCodeList.map(removeCode => videoItem.tag_ids.findIndex(code => code === removeCode));\n withIndexremoveItemsfromArrary(videoItem.tag_ids, needRemoveCodeIndexList);\n withIndexremoveItemsfromArrary(videoItem.suggestion, needRemoveCodeIndexList);\n // 在detail中delete掉相关字段\n needRemoveCodeList.forEach((code) => {\n delete videoItem.details[code];\n });\n }));\n // 删除完毕之后重新拿到新的summary_results\n deepclonePrecheckRes.forEach((adItem) => {\n const keyList = Object.keys(adItem);\n keyList.forEach((key) => {\n const itemSuggtion = _.get(adItem, `${key}[0].suggestion`, []);\n if (itemSuggtion.length >= 1) {\n summaryResults.push(...itemSuggtion);\n }\n });\n });\n return {\n material_results: deepclonePrecheckRes,\n summary_results: summaryResults,\n };\n};\n\n// 过滤预校验的结果\nexport const filterPrecheckResult = (precheckRes, verifyAdsParams) => {\n try {\n switch (isAllNativeAdOrTTBAPushVideo(verifyAdsParams)) {\n // 什么都不处理原样返回\n case 'NOT':\n return precheckRes;\n // 针对提交广告的时候全是拉视频,针对video下掉一些检验\n case 'ALL_PULL':\n return filterPrechckSomeResult(precheckRes, 'ALL_PULL');\n // 针对提交广告的时候全是推视频,针对video下掉一些检验\n case 'ALL_PUSH':\n return filterPrechckSomeResult(precheckRes, 'ALL_PUSH');\n default:\n return precheckRes;\n }\n } catch (e) {\n return precheckRes;\n }\n};\n\n// 支持TTBA 推视频的Objective\nexport const SUPPORT_TTBA_PUSH_NATIVE_ADS_OBJECTIVE_TYPES = [\n campaignObjectiveValue.Reach,\n campaignObjectiveValue.Traffic,\n campaignObjectiveValue.VideoView,\n campaignObjectiveValue.AppInstall,\n campaignObjectiveValue.Conversion,\n campaignObjectiveValue.RF,\n campaignObjectiveValue.RF_VV,\n campaignObjectiveValue.Shop,\n campaignObjectiveValue.LeadAds,\n campaignObjectiveValue.Engagement,\n];\n\nexport const playableAdsUploaderSources = {\n campaign: 'campaign', // 创编\n library: 'library', // 素材库\n campaignLibrary: 'campaign-library', // 创编的素材库抽屉\n};\n\n// 试玩广告用户操作类型,用于埋点\nexport const playableAdsOperationType = {\n change: 'change',\n preview: 'preview',\n delete: 'delete',\n};\n// 试玩广告用户点击helpCenter的场景,用于埋点\nexport const playableAdsClickHelpCenterMap = {\n moduleTips: 'module_tips',\n bubbleTips: 'bubble_tips',\n library: 'library',\n emptyLibrary: 'empty_library',\n};\n\n// 福袋/手势创意类型\nexport const ENGAGEMENT_CREATIVE_TYPE = {\n EGG: 57,\n GESTURE: 58,\n};\n\n// 免责声明类型\nexport const DISCLAIMER_TYPES = {\n UN_SET: 0, // 未设置\n TEXT_ONLY: 1, // 仅文字\n TEXT_WITH_LINK: 2, // 文字链\n};\nexport const disclaimerOptions = {\n textOnly: {\n textLengthOptions: {\n // 半角\n halfMinLength: 1,\n halfMaxLength: 90,\n // 全角\n fullMinLength: Math.ceil(1 / 2),\n fullMaxLength: Math.ceil(90 / 2),\n },\n },\n textWithLink: {\n maxCount: 3,\n minCount: 1,\n textLengthOptions: {\n // 半角\n halfMinLength: 1,\n halfMaxLength: 40,\n // 全角\n fullMinLength: Math.ceil(1 / 2),\n fullMaxLength: Math.ceil(40 / 2),\n },\n },\n};\nexport const GET_DISCLAIMER_PROPS_NAME_BY_TYPE = {\n [DISCLAIMER_TYPES.TEXT_ONLY]: 'disclaimer_text.text',\n [DISCLAIMER_TYPES.TEXT_WITH_LINK]: 'disclaimer_clickable_texts',\n};\nexport const SET_DISCLAIMER_PROPS_NAME_BY_TYPE = {\n [DISCLAIMER_TYPES.TEXT_ONLY]: 'disclaimer_text',\n [DISCLAIMER_TYPES.TEXT_WITH_LINK]: 'disclaimer_clickable_texts',\n};\n\n// 一个计划下的创意数量的限制\nexport const ADS_MAX_NUM = {\n DEFAULT: 20,\n SHOP_ADS_LIVE_VIDEO: 10,\n SHOP_ADS_LIVE_REAL_TIME: 1,\n SPLIT_TEST: 1,\n};\n\nexport const PROMOTION_WEBSITE_TYPE = {\n ON_SITE: 1,\n OFF_SITE: 0,\n};\n\n/** 展示音乐安全协议的地区 */\nexport const SHOW_MUSIC_PROTOCOL_COUNTRY_LIST = [\n 'US', 'CA', 'MX', 'PE', 'CL', 'CO', 'AR', 'BR',\n];\n\nexport const ATTACHMENT_CREATIVE_TYPES_ENUM = {\n GIFT_CODE_CARD: 55, // 游戏礼包码卡片\n DISPLAY_CARD: 56, // 自定义图片卡\n LUCKY_BAG_V2: 57, // 福袋\n GESTURE: 58, // 互动手势\n VOTING_STICKER: 59, // 投票贴纸\n GIFT_CODE_STICKER: 60, // 礼包码贴纸\n COUNTDOWN_STICKER: 61, // 倒计时贴纸\n};\n\nexport const ATTACHMENT_CTEATIVE_TYPES2_ENABLE_URL = [\n ATTACHMENT_CREATIVE_TYPES_ENUM.LUCKY_BAG_V2,\n ATTACHMENT_CREATIVE_TYPES_ENUM.GESTURE,\n ATTACHMENT_CREATIVE_TYPES_ENUM.VOTING_STICKER,\n ATTACHMENT_CREATIVE_TYPES_ENUM.GIFT_CODE_STICKER,\n ATTACHMENT_CREATIVE_TYPES_ENUM.COUNTDOWN_STICKER,\n];\n\nexport const ATTACHMENT_ID_TYPE = {\n DISPLAY_CARD: 1,\n GIFT_CODE_CARD: 2,\n GESTURE: 4,\n LUCKY_BAG_V2: 5,\n VOTING_STICKER: 6, // 投票贴纸\n COUNTDOWN_STICKER: 7, // 倒计时贴纸\n GIFT_CODE_STICKER: 8, // 礼包码贴纸\n};\n\n// 附加创意类型label\nexport const ATTACHMENT_ID_TYPE2_LABEL_MAP = {\n [ATTACHMENT_ID_TYPE.GIFT_CODE_CARD]: 'module_attachment_creative_game_gift_card',\n [ATTACHMENT_ID_TYPE.DISPLAY_CARD]: 'module_attachment_creative_display_card',\n [ATTACHMENT_ID_TYPE.LUCKY_BAG_V2]: 'module_additional_creative_engagement_type_egg_label',\n [ATTACHMENT_ID_TYPE.GESTURE]: 'module_additional_creative_engagement_type_gesture_label',\n [ATTACHMENT_ID_TYPE.VOTING_STICKER]: 'module_attachment_creative_voting_sticker',\n [ATTACHMENT_ID_TYPE.GIFT_CODE_STICKER]: 'module_attachment_creative_gift_sticker',\n [ATTACHMENT_ID_TYPE.COUNTDOWN_STICKER]: 'module_attachment_creative_count_down_sticker',\n};\n\n// 这些推广系列在选择特定附加创意时,需要打开destination 开关\nexport const AUTO_OPEN_DESTINATION_STWICH_OBJECTIVE_TYPES = [\n campaignObjectiveValue.RF,\n campaignObjectiveValue.RF_VV,\n campaignObjectiveValue.Reach,\n campaignObjectiveValue.VideoView,\n];\n\nexport const ADDITIONAL_CREATIVE_ENGAGEMENT_TYPES = {\n IMAGE_CARD: {\n value: 1,\n name: 'image_card',\n label: 'module_additional_creative_engagement_type_card_label',\n img: customizedImageCardPoster,\n desc: '',\n },\n EGG: {\n value: ATTACHMENT_ID_TYPE.LUCKY_BAG_V2,\n name: 'egg',\n label: 'module_additional_creative_engagement_type_egg_label',\n img: eggDemoImg,\n desc: '',\n },\n GESTURE: {\n value: ATTACHMENT_ID_TYPE.GESTURE,\n name: 'gesture',\n label: 'module_additional_creative_engagement_type_gesture_label',\n img: gestureDemoImg,\n desc: '',\n },\n};\n// 商品锚点状态枚举\nexport const SHOP_ANCHOR_STATUS = {\n DEFAULT: 0, // 其他原因导致的失效\n CHECK_SUCCESS: 1, // 审核成功\n CHECK_ING: 101, // 审核中\n CHECK_FAIL: 102, // 审核失败\n PRODUCT_TAKEN_DOWN: 201, // 锚点商品下架\n PRODUCT_NO_STOCK: 202, // 锚点商品无库存\n};\nexport const SHOP_ANCHOR_UNAVAILABLE_MAP = {\n [SHOP_ANCHOR_STATUS.DEFAULT]: 'module_craetive_shop_anchor_disabled_warning',\n [SHOP_ANCHOR_STATUS.PRODUCT_NO_STOCK]: 'module_creative_shop_anchor_no_stock',\n [SHOP_ANCHOR_STATUS.PRODUCT_TAKEN_DOWN]: 'module_creative_shop_anchor_taken_down',\n [SHOP_ANCHOR_STATUS.CHECK_ING]: 'module_creative_shop_anchor_checking',\n [SHOP_ANCHOR_STATUS.CHECK_FAIL]: 'module_creative_shop_anchor_check_fail',\n};\n// 校验shop anchor的有效性 单锚点 && 锚点绑定的商品id === spuid && 锚点状态为可用\nexport const isShopAnchorValid = (anchors = [], supId = '') => {\n // 单锚点\n const isSingleProductAnchor = Array.isArray(anchors) && anchors.length === 1;\n if (!supId || !isSingleProductAnchor) return false;\n const { id: videoAnchorId, visibility_status: videoAnchorStatus } = anchors[0];\n if (!videoAnchorId || !videoAnchorStatus) return false;\n // 锚点状态有效\n const isVideoAnchorStatusAvailable = videoAnchorStatus === SHOP_ANCHOR_STATUS.CHECK_SUCCESS;\n // 锚点绑定的商品id === spuid\n const isCurSpuIdEqualToAnchorId = supId === videoAnchorId;\n return isVideoAnchorStatusAvailable && isCurSpuIdEqualToAnchorId;\n};\n// 视频转码状态枚举\nexport const VIDEO_TRANSCODE_STATUS = {\n TRANSCODE_FAIL: 20, // 转码失败\n TRANSCODE_SUCCESS: 10, // 转码成功\n};\n/** 素材库视频来源 */\nexport const MaterialLibraryVideoSource = {\n AD_SITE: 'ad_site', // TTAM\n};\n\n\n// 视频特殊校验,只有一个提示文案,不区分版位\nexport const specFail = [\n VERIFY_ERROR_CODE.VIDEO.transcodeFail.value,\n];\n","export const customContent = {\n BIDDING_FILTER: 1,\n BIDDING_CAMPAIGN_COLUMN: 2,\n BIDDING_AD_COLUMN: 3,\n BIDDING_CREATIVE_COLUMN: 4,\n BIDDING_CUSMTOM_COLUMN: 5,\n BIDDING_STATISTIC_USER_CONFIG: 6,\n\n BRAND_FILTER: 11,\n BRAND_COLUMN: 12,\n\n LIBRARY_VIDEO_COLUMN: 7,\n LIBRARY_IMAGE_COLUMN: 8,\n LIBRARY_PLAYABLE_COLUMN: 13,\n LIBRARY_VIDEO_FILTER: 9,\n LIBRARY_IMAGE_FILTER: 10,\n LIBRARY_PLAYABLE_FILTER: 14,\n};\n","import apis from 'src/const/apis';\n\n// 有降级需求的api, 发现下面的接口有降级情况后,会在页面显示降级提示框\nexport const APIDownGradeList = [\n // dashboard部分的降级接口\n // v3接口\n apis.dashboard.newDashboardData,\n apis.dashboard.newDashboardAccountStatus,\n apis.dashboard.newDashboardSuggestion,\n apis.dashboard.optimizeDashboardSuggestion,\n apis.dashboard.newDashboardAudience,\n apis.dashboard.newDashboardDeparting,\n // campaign 层级列表部分的降级接口\n // v3\n apis.ad.newStatisticList,\n apis.campaign.newStatisticList,\n apis.creative.newStatisticList,\n // view data 层级涉及到降级的接口\n // v3\n apis.ad.new_report_stat,\n apis.campaign.new_report_stat,\n apis.creative.new_report_stat,\n apis.ad.new_breakdown_report_stat,\n apis.campaign.new_breakdown_report_stat,\n apis.creative.new_breakdown_report_stat,\n];\n\n// TTP 降级,优先级低于上面的统计降级\nexport const APITTPDowngradeList = [\n // 列表接口\n apis.ad.newStatisticList,\n apis.campaign.newStatisticList,\n apis.creative.newStatisticList,\n // viewdata 接口\n apis.ad.new_report_stat,\n apis.campaign.new_report_stat,\n apis.creative.new_report_stat,\n apis.ad.ttp_breakdown_report_stat,\n apis.campaign.ttp_breakdown_report_stat,\n apis.creative.ttp_breakdown_report_stat,\n // viewdata rf 接口\n apis.ad.new_frequency_download_trail_url,\n apis.ad.new_frequency_projected_stat,\n];\n","export const EMAIL_TRACE = {\n common: {\n arrive_i18n: {\n event_type: 'arrive_i18n',\n event_action: 'arrive_i18n',\n },\n },\n // 账户拒审\n account_audit_rejected: [\n // 0 到达平台\n {\n event_type: 'arrive_i18n',\n event_action: 'arrive_i18n',\n },\n // 1 到达指定页面 - 账户信息页面 https://ads.tiktok.com/i18n/account/complete\n {\n event_type: 'arrive_destination',\n event_action: 'arrive_account_setup',\n },\n // 2 点击I want to appeal\n {\n event_type: 'user_complete',\n event_action: 'click_appeal',\n },\n // 3 点击I want to cancel my account and request a refund\n {\n event_type: 'click_cancel_account',\n event_action: 'click_cancel_account',\n },\n ],\n // 广告拒审\n ad_group_audit_rejected: [\n // 0 到达平台\n {\n event_type: 'arrive_i18n',\n event_action: 'arrive_i18n',\n },\n // 1 到达指定页面 - 定位到只显示被拒审Ad Group的列表页\n {\n event_type: 'arrive_destination',\n event_action: 'arrive_list',\n },\n // 2 查看广告 - 包括点击ad group名字,点击编辑,点击复制,点击拒审小三角\n {\n event_type: 'ad_check_out',\n event_action: 'ad_check_out',\n },\n ],\n // 账户余额耗尽\n account_balance_empty: [\n {\n event_type: 'arrive_i18n',\n event_action: 'arrive_i18n',\n },\n {\n event_type: 'arrive_destination',\n event_action: 'arrive_payment',\n },\n {\n event_type: 'user_complete',\n event_action: 'click_add_balance',\n },\n {\n event_type: 'action_success',\n event_action: 'add_balance_success',\n },\n ],\n // 账户余额接近耗尽\n account_balance_insufficient: [\n {\n event_type: 'arrive_i18n',\n event_action: 'arrive_i18n',\n },\n {\n event_type: 'arrive_destination',\n event_action: 'arrive_payment',\n },\n {\n event_type: 'user_complete',\n event_action: 'click_add_balance',\n },\n {\n event_type: 'action_success',\n event_action: 'add_balance_success',\n },\n ],\n // 未充值提醒\n first_creative_no_charge_deferred: [\n // 0 到达平台\n {\n event_type: 'arrive_i18n',\n event_action: 'arrive_i18n',\n },\n ],\n\n // smb扶持触达\n arrive_platform: [\n // 0 到达平台\n {\n event_type: 'arrive_i18n',\n event_action: 'arrive_i18n',\n },\n {\n event_type: 'arrive_platform',\n event_action: 'verify_submission', // 提交公司认证\n },\n {\n event_type: 'arrive_platform', // 提交一次性赠款\n event_action: 'grant_claim',\n },\n ],\n};\n","/* eslint-disable global-require */\n\n// 国际化竞价投放产品枚举\nimport _ from 'lodash';\nimport tool from 'src/utils/tool';\nimport {\n isVigoWhite, tbnrWhite, whiteValue, isSupportPangleImage, isDpaPangleWhite,\n} from 'src/const/whiteList';\n\nimport {\n TopbuzzLanguages,\n tiktokLanguages,\n tiktokAdNetworkLanguages,\n HeloLanguages,\n} from 'src/const/language';\n\nimport { campaignObjectiveValue } from 'src/const/state/campaign';\nimport store from 'src/store';\n\n\nexport const INVENTORY_FLOW = { // 版位顺序和INVENTORY_FLOW_MAP一致\n ALL: 0,\n TIKTOK: 3000,\n TOPBUZZ: 1000,\n VIGO: 2000,\n HELO: 4000,\n TIKTOKADNETWORK: 9000,\n OTHER: -1,\n};\n\n// 需要增加placement flow rit 检查的列表\nexport const CHECK_PLACEMENT_FLOW = [\n INVENTORY_FLOW.VIGO,\n INVENTORY_FLOW.TIKTOKADNETWORK,\n INVENTORY_FLOW.HELO,\n];\n\n/**\n * 效果广告的投放流量\n * key: inventory flow 的 key,用于前后端区分选择的产品类型\n * name: ---\n * label: 产品多语言名称的 key\n * value: inventory_type 的 list\n * productLine: ---\n * languages: 支持投放的语言\n * icon: 产品图标,引用方法:\n * availableCountries: 开放国家\n * supportImageType:支持的图片类型,对应具体的属性在 src/const/state/creative 中的 imageTemplate 里\n */\nexport const INVENTORY_FLOW_MAP = {\n ALL: {\n key: INVENTORY_FLOW.ALL,\n name: 'All Apps',\n label: 'placement_all_apps', // 翻译key\n productLine: 'all',\n languages: [],\n icon: require('../../assets/images/placement-tb.png'),\n availableCountries: [],\n isSupportQrcodePreview: false,\n supportImageType: () => [],\n },\n TIKTOK: {\n key: INVENTORY_FLOW.TIKTOK,\n name: 'TikTok',\n label: 'placement_tiktok',\n // tiktok + musical\n productLine: 'tiktok',\n languages: [...tiktokLanguages],\n icon: require('../../assets/images/placement-tt.png'),\n show: true,\n // 'CA', 'IL', 'PL', 'HK' 这几个在小流量\n availableCountries: ['JP', 'TW', 'IN', 'KR', 'TH', 'MY', 'ID', 'VN', 'RU', 'TR'],\n isSupportQrcodePreview: true, // 是否支持二维码预览\n supportImageType: () => [],\n },\n TOPBUZZ: {\n key: INVENTORY_FLOW.TOPBUZZ,\n name: 'Babe&BuzzVideo',\n label: 'placement_news_feed_app',\n productLine: 'topbuzz',\n languages: [...TopbuzzLanguages],\n icon: require('../../assets/images/placement-tb.png'),\n show: true,\n availableCountries: ['US', 'BR', 'JP', 'TW', 'KR'],\n isSupportQrcodePreview: false, // 是否支持二维码预览\n supportImageType: () => ['HORIZONTAL'],\n },\n VIGO: { // cheng\n key: INVENTORY_FLOW.VIGO,\n name: 'Vigo',\n label: 'placement_vigo',\n productLine: 'vigo',\n languages: ['en'],\n icon: require('../../assets/images/placement-vigo.png'),\n show: isVigoWhite(),\n // 可投放的国家\n availableCountries: ['IN'],\n isSupportQrcodePreview: false, // 是否支持二维码预览\n supportImageType: () => ['HORIZONTAL', 'VERTICAL'],\n },\n HELO: {\n key: INVENTORY_FLOW.HELO,\n name: 'Helo',\n label: 'placement_helo',\n productLine: 'Helo',\n languages: HeloLanguages,\n icon: require('../../assets/images/placement-helo.png'),\n show: true,\n availableCountries: ['IN'],\n isSupportQrcodePreview: false, // 是否支持二维码预览\n supportImageType: () => ['HORIZONTAL', 'SQUARE'],\n },\n TIKTOKADNETWORK: {\n key: INVENTORY_FLOW.TIKTOKADNETWORK,\n name: 'Pangle',\n label: 'placement_tiktok_ad_network',\n // 穿山甲\n productLine: 'TikTokAdNetwork',\n languages: [...tiktokAdNetworkLanguages],\n icon: require('../../assets/images/placement-new-pangle.png'),\n show: true,\n availableCountries: ['JP', 'KR', 'TW'], // 穿山甲只对日本开放,韩国小流量\n isSupportQrcodePreview: false, // 是否支持二维码预览\n supportImageType: () => {\n const isDpa = store.getters['creative/create'];\n return isSupportPangleImage(isDpa) ? ['HORIZONTAL', 'SQUARE', 'VERTICAL_720P'] : [];\n },\n },\n};\n// 数据披露other,,排查了一下代码,太多地方用到INVENTORY_FLOW_MAP,好多还是直接object.keys和entrys,\n// 实在不敢在原有的配置上加other,,后续新增版位和流量记得同步更新这个配置\nexport const dashboardPlacement = {\n TIKTOK: {\n key: INVENTORY_FLOW.TIKTOK,\n name: 'TikTok',\n label: 'placement_tiktok',\n color: '#01d6db', // dashboard版位的颜色\n icon: require('../../assets/images/placement-tt.png'),\n show: () => true,\n },\n TOPBUZZ: {\n key: INVENTORY_FLOW.TOPBUZZ,\n name: 'Babe&BuzzVideo',\n label: 'placement_news_feed_app',\n color: '#629BFE',\n icon: require('../../assets/images/placement-tb.png'),\n show: () => true,\n },\n VIGO: { // cheng\n key: INVENTORY_FLOW.VIGO,\n name: 'Vigo',\n label: 'placement_vigo',\n color: '#F45858',\n icon: require('../../assets/images/placement-vigo.png'),\n show: () => isVigoWhite(),\n },\n HELO: {\n key: INVENTORY_FLOW.HELO,\n name: 'Helo',\n label: 'placement_helo',\n color: '#ffc53d',\n icon: require('../../assets/images/placement-helo.png'),\n show: () => true,\n },\n TIKTOKADNETWORK: {\n key: INVENTORY_FLOW.TIKTOKADNETWORK,\n name: 'Pangle',\n label: 'placement_tiktok_ad_network',\n color: '#2a4d8f',\n icon: require('../../assets/images/placement-new-pangle.png'),\n show: () => true,\n },\n OTHER: {\n key: INVENTORY_FLOW.OTHER,\n name: 'OTHER',\n label: 'placement_other',\n color: '#66c23a',\n show: () => true,\n },\n};\n\n// 版位预览图配置\nexport const FLOW_VIEWER_LIST = [\n {\n flow: INVENTORY_FLOW.TIKTOK,\n label: 'placement_tt_view',\n num: 0,\n value: require('../../assets/images/placement-tt-view-new.png'),\n position: 0, // 数组的初始位置,有得在计算中隐藏,\n },\n {\n flow: INVENTORY_FLOW.TIKTOK,\n label: 'placement_tt_view',\n num: 1,\n value: require('../../assets/images/placement-tt-search-ads.png'),\n position: 9, // 数组的初始位置,有得在计算中隐藏,\n },\n {\n flow: INVENTORY_FLOW.TOPBUZZ,\n label: 'placement_news_feed_view',\n num: 1,\n value: require('../../assets/images/placement-tnb-view1-new.png'),\n position: 1,\n },\n {\n flow: INVENTORY_FLOW.TOPBUZZ,\n label: 'placement_news_feed_view',\n num: 2,\n value: require('../../assets/images/placement-tnb-view2-new.png'),\n position: 2,\n },\n {\n flow: INVENTORY_FLOW.TOPBUZZ,\n label: 'placement_news_feed_view',\n num: 3,\n value: require('../../assets/images/placement-tnb-view3-new.png'),\n position: 3,\n },\n {\n flow: INVENTORY_FLOW.VIGO,\n label: 'placement_vigo_view',\n num: 1,\n value: require('../../assets/images/placement-vigo-view1.png'),\n position: 4,\n },\n {\n flow: INVENTORY_FLOW.VIGO,\n label: 'placement_vigo_view',\n num: 2,\n value: require('../../assets/images/placement-vigo-view2.png'),\n position: 5,\n },\n {\n flow: INVENTORY_FLOW.HELO,\n label: 'placement_helo_view',\n num: 1,\n value: require('../../assets/images/placement-helo-view-new.png'),\n position: 7,\n },\n {\n flow: INVENTORY_FLOW.HELO,\n label: 'placement_helo_view',\n num: 2,\n value: require('../../assets/images/placement-helo-view-immersion-new.png'),\n position: 8,\n },\n {\n flow: INVENTORY_FLOW.TIKTOKADNETWORK,\n label: 'placement_tiktok_ad_network_view',\n num: 0,\n value: require('../../assets/images/tiktok-ad-network-view-new.png'),\n position: 6,\n },\n];\n\n\nexport const flowValueToKey = () => {\n const result = {};\n Object.entries(INVENTORY_FLOW_MAP).forEach(([key, item]) => {\n if (key === 'ALL') {\n return;\n }\n result[item.key] = key;\n });\n\n return result;\n};\n\nexport const imageFlowTypes = () => {\n const result = [];\n Object.entries(INVENTORY_FLOW_MAP).forEach(([key, item]) => {\n if (item.supportImageType().length > 0) {\n result.push(item.key);\n }\n });\n return result;\n};\n\n// 0=automitc 1=select placement\nexport const FLOW_TYPE = {\n AUTO: 0,\n SELECT: 1,\n};\n\n// 效果广告的投放流量INVENTORY_FLOW=>obj\nexport const INVENTORY_FLOW_REVERSE_MAP = {};\nObject.keys(INVENTORY_FLOW_MAP).forEach((kk) => {\n const obj = INVENTORY_FLOW_MAP[kk];\n INVENTORY_FLOW_REVERSE_MAP[obj.key] = obj;\n});\nexport const BrandSafetyPartnerType = {\n OpenSlate: 1,\n IAS: 2,\n};\n\n// 需要进行placement rit 白名单列表函数\nexport const NeedCheckFlow = (flowID = 0) => CHECK_PLACEMENT_FLOW.indexOf(flowID) >= 0;\n\n/**\n * placement rit 判断函数,收敛到统一的判断函数\n * @param flowId , flow key ID 例如 3000\n * @param opts, 函数参数 例如{objective_type, user...}\n * @return {boolean} 命中白名单返回true,否则false\n * @constructor\n */\nexport const CheckEffectivePlacement = (flowId = 0, opts = {}) => {\n const objective_type = +(opts.objective_type);\n let valid = false; // 验证有效位true,否则false;\n if (flowId === INVENTORY_FLOW.TIKTOKADNETWORK) {\n // 穿山甲只支持应用安装+ Conversion + Traffic\n if (\n objective_type === campaignObjectiveValue.Traffic ||\n objective_type === campaignObjectiveValue.AppInstall ||\n objective_type === campaignObjectiveValue.Conversion ||\n objective_type === campaignObjectiveValue.DPA && isDpaPangleWhite() // \bDPA广告需要有dpa-pangle白名单才允许投放pangle\n ) {\n valid = true;\n }\n } else if (flowId === INVENTORY_FLOW.VIGO) {\n valid = isVigoWhite();\n // console.log(`${flowId} ===>isVigoWhite ${isVigoWhite()}`);\n } else if (flowId === INVENTORY_FLOW.HELO) {\n valid = true;\n }\n // console.log(`${flowId} ===>valida:${valid} ${JSON.stringify(opts)}`);\n return valid;\n};\n\n\nexport class GenerateInventory {\n constructor(args = {}) {\n const urlParams = tool.queryToJson() || {};\n const opts = _.extend({}, urlParams, args);\n this.inventoryFlowMap = { ...INVENTORY_FLOW_MAP };\n this.inventoryFlowReverseMap = { ...INVENTORY_FLOW_REVERSE_MAP };\n this.inventoryFlowList = [];// all flow list\n this.opts = opts;\n this.generateInventoryFlow(opts);\n }\n\n generateInventoryFlow(opts = {}) {\n // 特殊白名单\n const objective_type = +(opts.objective_type);\n const inventoryFlowList = []; // reset flow list\n const inventoryFlowMap = { ...INVENTORY_FLOW_MAP };\n const allKey = 'ALL';\n let allItem = { ...INVENTORY_FLOW_MAP[allKey] }; // 原始\n const mergeItem = (item = {}, flowItem = {}) => {\n const itemLanguage = item.languages || [];\n const itemCountry = item.availableCountries || [];\n item.languages = Array.from(new Set(itemLanguage.concat(flowItem.languages || [])));\n item.availableCountries = Array.from(new Set(itemCountry.concat(flowItem.availableCountries || [])));\n return item;\n };\n\n // 逐个单项白名单检查,languages,countries, rit\n Object.keys(inventoryFlowMap).forEach((key) => {\n const item = inventoryFlowMap[key];\n if (key === 'TOPBUZZ') {\n Object.keys(tbnrWhite).forEach((key) => {\n // tbnr白名单\n const whiteItem = tbnrWhite[key];\n const itemLanguage = item.languages;\n const itemCountry = item.availableCountries;\n const white_value = window.WHITE_LIST_OBJECT?.white_value || [];\n if (white_value.indexOf(whiteValue[key]) >= 0) {\n item.languages = Array.from(new Set(itemLanguage.concat(whiteItem.language || [])));\n item.availableCountries = Array.from(new Set(itemCountry.concat(whiteItem.country || [])));\n }\n });\n }\n this.inventoryFlowMap[key] = item;\n this.inventoryFlowReverseMap[item.key] = item;\n });\n\n // 计算总的ALL项及全部有效的inventoryFlowList\n Object.keys(this.inventoryFlowMap).forEach((key) => {\n const item = this.inventoryFlowMap[key];\n const flowId = Number(item.key || 0);\n\n if (key !== 'ALL') {\n if (NeedCheckFlow(flowId)) {\n if (CheckEffectivePlacement(flowId, { name: item.name, objective_type, inventory_flow_type: FLOW_TYPE.AUTO })) {\n allItem = mergeItem(allItem, item);\n this.inventoryFlowMap[allKey] = allItem;\n this.inventoryFlowReverseMap[allItem.key] = allItem;\n inventoryFlowList.push(flowId);\n }\n } else {\n this.inventoryFlowMap[allKey] = allItem;\n this.inventoryFlowReverseMap[allItem.key] = allItem;\n inventoryFlowList.push(flowId);\n }\n }\n });\n this.inventoryFlowList = inventoryFlowList;\n }\n}\n","// 素材来源\nexport const MATERIAL_ORIGIN_TYPE = {\n OTHERS: 5,\n ADSITE: 1,\n CREATIVE_TOOL: 2,\n DPA: 3,\n MICRO_MOVIE: 4,\n QUICK_OPTIMIZATION: 6, // 一键优化\n VIDEO_TEMPLATE: 7, // 模版视频\n SMART_VIDEO_SOUNDTRACK: 8, // 智能配乐\n VIDEO_EDITOR: 9, // 视频编辑器\n TCPP: 10,\n VIDEO_GENERATOR_FROM_DPA: 11, // DPA模板生成工具\n DYNAMIC_VIDEO_GENERATOR_FROM_DPA: 12, // DPA动态生成工具\n TCM_VIDEO: 14,\n QUICK_GENERATION: 15, // 通过quick generation工具生成\n GIFT_VIDEO: 32,\n CC_VIDEO_UPLOAD: 16, // 创意平台上传\n CC_VIDEO_EDITOR: 84, // 创意中心视频编辑器生成\n CC_VIDEO_TEMPLATE: 85, // 创意中心视频模板生成\n};\n\nexport const materialOrigin = [\n {\n id: MATERIAL_ORIGIN_TYPE.ADSITE,\n i18nKey: 'module_lib_source_filter_origin_creative_upload',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.DPA,\n i18nKey: 'module_lib_source_filter_dpa_upload',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.MICRO_MOVIE,\n i18nKey: 'module_lib_source_filter_creative_tools_smart_video',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.QUICK_OPTIMIZATION,\n i18nKey: 'module_lib_source_filter_quick_optimization',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.VIDEO_TEMPLATE,\n i18nKey: 'module_lib_source_filter_video_template',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.SMART_VIDEO_SOUNDTRACK,\n i18nKey: 'module_lib_source_filter_smart_video_soundtrack',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.VIDEO_EDITOR,\n i18nKey: 'module_lib_source_filter_video_editor',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.TCPP,\n i18nKey: 'module_lib_source_filter_tcpp',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.VIDEO_GENERATOR_FROM_DPA,\n i18nKey: 'module_lib_source_filter_video_generator_from_dpa',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.DYNAMIC_VIDEO_GENERATOR_FROM_DPA,\n i18nKey: 'module_lib_source_filter_dynamic_video_generator_from_dpa',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.TCM_VIDEO,\n i18nKey: 'module_lib_source_filter_tcm_video',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.GIFT_VIDEO,\n i18nKey: 'module_lib_source_filter_gift_video',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.OTHERS,\n i18nKey: 'module_lib_source_filter_other_video',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.QUICK_GENERATION,\n i18nKey: 'module_lib_source_filter_quick_generation',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.CC_VIDEO_UPLOAD,\n i18nKey: 'module_lib_source_filter_cc_video_upload',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.CC_VIDEO_EDITOR,\n i18nKey: 'module_lib_source_filter_cc_video_editor',\n },\n {\n id: MATERIAL_ORIGIN_TYPE.CC_VIDEO_TEMPLATE,\n i18nKey: 'module_lib_source_filter_cc_video_template',\n },\n];\n\nexport const LIB_SEARCH_TYPE_ID_MAP = {\n SEARCH_CAMPAIGN: 1,\n SEARCH_ADGROUP: 2,\n SEARCH_AD: 3,\n SEARCH_VIDEO_MATERIAL: 4,\n};\n\nexport const LIB_SEARCH_TYPES = [\n {\n id: LIB_SEARCH_TYPE_ID_MAP.SEARCH_CAMPAIGN,\n key: 'module_campaign_list_search_campaign',\n },\n {\n id: LIB_SEARCH_TYPE_ID_MAP.SEARCH_ADGROUP,\n key: 'module_campaign_list_search_adgroup',\n },\n {\n id: LIB_SEARCH_TYPE_ID_MAP.SEARCH_AD,\n key: 'module_campaign_list_search_ad',\n },\n {\n id: LIB_SEARCH_TYPE_ID_MAP.SEARCH_VIDEO_MATERIAL,\n key: 'module_library_table_search_video_material',\n },\n];\n\n// 非筛选项:搜索类型\nexport const videoSearchType = [\n {\n id: 1,\n key: 'common_Campaign',\n },\n {\n id: 2,\n key: 'common_AdGroup',\n },\n {\n id: 3,\n key: 'common_Ad',\n },\n {\n id: 4,\n key: 'common_video_material',\n },\n];\n\nexport const nativePostSourceType = {\n adsManager: {\n value: 1,\n i18nKey: 'module_library_native_post_source_ads_manager',\n },\n marketingApi: {\n value: 2,\n i18nKey: 'module_library_native_post_source_marketing_api',\n },\n tcm: {\n value: 3,\n i18nKey: 'module_library_native_post_source_tcm',\n },\n rap: {\n value: 4,\n i18nKey: 'module_library_native_post_source_rap',\n },\n};\n","export const mainDisplayStatus = {\n isdel: {\n id: '1',\n label: 'common_status_deleted',\n },\n enable: {\n id: '0',\n label: 'common_status_delivery',\n key: 'status',\n },\n notDelivery: {\n id: '',\n label: 'common_status_not_delivery',\n },\n notSupported: {\n id: '',\n label: 'common_status_not_supported',\n },\n paused: {\n id: '1',\n label: 'common_status_paused',\n key: 'status',\n },\n completed: {\n label: 'common_status_completed',\n },\n rfClosed: {\n label: 'common_rf_closed',\n },\n frozen: {\n label: 'common_frozen',\n },\n};\n","import _ from 'lodash';\nimport { BidRegion } from 'src/const/state/bid-region';\nimport request from 'src/utils/request';\nimport apis from 'src/const/apis';\n\nexport const cityOptions = BidRegion;\n\nexport const fetchAreasData = async (param) => {\n let areaData;\n try {\n const areaRes = await request.get(apis.areasList, param);\n areaData = areaRes?.data?.areas || [];\n } catch (e) {\n areaData = [];\n }\n\n return areaData;\n};\n\n\nexport const regionI18nKey = (id = '') => `region_${id.toUpperCase()}`;\n\n/**\n * 记录每个国家在CountrySetOptions中的路径,最终形成一个映射\n * 如 US的路径为 '0'\n * US+下面的BM路径为: '19.children.0',\n * 此时映射为\n * {\n * 'US': '0',\n * 'BM': '19.children.0',\n * }\n */\nexport function getPathBidMap(map, obj, pathPrefix, intoChildren = true) {\n Object.keys(obj).forEach((key) => {\n const curObj = obj[key];\n // eslint-disable-next-line\n const curPath = (pathPrefix ? `${pathPrefix}.` : '') + key; // 若有前缀,则以点号连接\n if (!intoChildren && curObj.code) {\n map[curObj.code] = curPath; // 截取国家\n } else {\n map[curObj.id] = curPath;\n }\n // 如果有children属性,则递归进去\n if (intoChildren && curObj.children && curObj.children.length) {\n getPathBidMap(map, curObj.children, `${curPath}.children`);\n }\n });\n}\n\n// all国家两位码列表\nexport const createRegionCodeList = (options = BidRegion) => {\n const codeList = [];\n options.forEach((v) => {\n codeList.push(`${v.code}`);\n });\n return codeList;\n};\nexport const createCountryMap = () => {\n const rlt = {};\n cityOptions.forEach((v) => {\n rlt[`${v.code}`] = v.name;\n });\n return rlt;\n};\n// 国家code获取id\nexport const CountryCode2IdMap = () => {\n const rlt = {};\n cityOptions.forEach((v) => {\n rlt[`${v.code}`] = v.id;\n });\n return rlt;\n};\n\n// 国家id获取code\nexport const CountryId2CodeMap = (countryOptions) => {\n const rlt = {};\n countryOptions.forEach((v) => {\n rlt[v.id] = `${v.code}`;\n });\n return rlt;\n};\n\n/**\n * 根据国家两位码列表,从options获取对应的子集\n *\n * @author liubin.frontend\n * @export\n * @param {*} countryCodes\n * @param {{id:string,name:string,children?: any[]}[]} options 国家城市对应集合\n * @returns\n */\nexport function filterInventoryCityOptions(countryCodes = [], options = []) {\n const regionOptions = [...options];\n\n const result = new Map();\n const countryBidPathMap = {};\n getPathBidMap(countryBidPathMap, regionOptions, '', false);\n\n for (const code of countryCodes) {\n const path = countryBidPathMap[code];\n\n if (path) {\n result.set(code, _.get(regionOptions, path));\n }\n }\n return [...result.values()];\n}\n\n// 把三级 cityOption 打平为一级数组\nexport const cityOptions2Array = (cityOptions = {}) => {\n const result = [];\n function push2Result(arr) {\n for (let i = 0; i < arr.length; i++) {\n const {\n i18n_key,\n id,\n name,\n translation,\n children = [],\n isDma,\n code = '',\n } = arr[i];\n result.push({\n i18n_key, id, name, translation, isDma, code,\n });\n if (children && children.length) {\n push2Result(children);\n }\n }\n }\n push2Result(cityOptions);\n return result;\n};\n","/**\n * 平台自助广告主核心配置文件,修改务必考虑清楚对业务的影响\n */\nimport { getAthenaLink } from '@byted/tt_ads_public_config';\n\n/**\n * 有通用规则的欧洲国家\n * 已全量: 波兰【PL】; 捷克【CZ】;爱尔兰【IE】;奥地利【AT】;瑞典【SE】\n */\nconst commonEuCountryInfo = [\n {\n country: 'PL', // 波兰\n hide: false, // 是否需要隐藏,邮件邀请时为true,全量开放时设为false\n },\n {\n country: 'CZ', // 捷克\n hide: false,\n },\n {\n country: 'IE', // 爱尔兰\n hide: false,\n },\n {\n country: 'AT', // 奥地利\n hide: false,\n },\n {\n country: 'SE', // 瑞典\n hide: false,\n },\n {\n country: 'BE', // 比利时\n hide: false,\n },\n {\n country: 'NL', // 荷兰\n hide: false,\n },\n {\n country: 'FI', // 芬兰\n hide: false,\n },\n {\n country: 'PT', // 葡萄牙\n hide: false,\n },\n {\n country: 'GR', // 希腊\n hide: false,\n },\n {\n country: 'DK', // 丹麦\n hide: false,\n },\n {\n country: 'RO', // 罗马尼亚 | Romania\n hide: false,\n },\n {\n country: 'HU', // 匈牙利 | Hungary\n hide: false,\n },\n {\n country: 'UA', // 乌克兰 | Ukraine\n hide: false,\n },\n {\n country: 'NO', // 挪威 | Norway\n hide: false,\n },\n {\n country: 'CH', // 瑞士 | Switzerland\n hide: false,\n },\n];\nconst commonEUCountryListAccount = commonEuCountryInfo.map((item) => {\n const { country, hide } = item;\n return {\n country,\n hide,\n };\n});\n\nexport const whiteAccountCountry = [\n {\n country: 'IN', // 印度\n hide: true,\n },\n {\n country: 'VN', // 越南\n hide: false,\n },\n {\n country: 'KR', // 韩国\n hide: false,\n },\n {\n country: 'AE', // 阿联酋\n hide: false,\n },\n {\n country: 'EG', // 埃及\n hide: false,\n },\n {\n country: 'SA', // 沙特阿拉伯\n hide: false,\n },\n {\n country: 'TW', // 中国台湾\n hide: true,\n },\n {\n country: 'RU', // 俄罗斯\n hide: false,\n },\n {\n country: 'ID', // 印度尼西亚\n hide: false,\n },\n {\n country: 'TH', // 泰国\n hide: false,\n },\n {\n country: 'MY', // 马来西亚\n hide: false,\n },\n {\n country: 'JP', // 日本\n hide: false,\n },\n {\n country: 'TR', // 土耳其\n hide: false,\n },\n {\n country: 'IL', // 以色列\n hide: false,\n },\n {\n country: 'AU', // 澳大利亚\n hide: false,\n },\n {\n country: 'US', // 美国\n hide: false,\n },\n {\n country: 'GB', // 英国\n hide: false,\n },\n {\n country: 'FR', // 法国\n hide: false,\n },\n {\n country: 'IT', // 意大利\n hide: false,\n },\n {\n country: 'ES', // 西班牙\n hide: false,\n },\n {\n country: 'SG', // 新加坡\n hide: false,\n },\n {\n country: 'DE', // 德国\n hide: false,\n },\n {\n country: 'CA', // 加拿大\n hide: false,\n },\n {\n country: 'PH', // 菲律宾\n hide: false,\n },\n ...commonEUCountryListAccount,\n {\n country: 'NZ', // 新西兰\n hide: false,\n },\n {\n country: 'KW', // 科威特\n hide: false,\n },\n {\n country: 'QA', // 卡塔尔\n hide: false,\n },\n {\n country: 'BR', // 巴西 | Brazil\n hide: false,\n },\n {\n country: 'KH', // 柬埔寨 | Cambodia\n hide: false,\n },\n {\n country: 'ZA', // 南非 | South Africa\n hide: false,\n },\n {\n country: 'MA', // 摩洛哥 | Morocco\n hide: false,\n },\n {\n country: 'MX', // 墨西哥 | Mexico\n hide: false,\n },\n {\n country: 'CL', // 智利 | Chile\n hide: false,\n },\n {\n country: 'PE', // 秘鲁 | Peru\n hide: true,\n },\n {\n country: 'EC', // 厄瓜多尔 | Ecuador\n hide: true,\n },\n];\n\n/**\n * 自助支付方式\n * hide:是否开放\n * value: 与ocrm沟通定义的值,manual = 1, automatic = 2\n */\nexport const accountPaymentOptions = {\n automatic: {\n value: '2',\n title: 'self_ac_payment_automatic',\n icon: require('src/assets/images/payment/auto-pay.png'),\n info: 'module_paymethod_postpay_tips',\n infoV2: 'module_auto_payment_method_tips_v2',\n tagKey: 'module_auto_payment_method_tag',\n oldInfo: 'module_payment_type_automatic_info',\n },\n manual: {\n value: '1',\n title: 'self_ac_payment_manual',\n icon: require('src/assets/images/payment/manual-pay.png'),\n info: 'module_paymethod_prepay_tips',\n tagKey: 'module_manual_payment_method_tag',\n oldInfo: 'module_payment_type_manual_info',\n },\n};\n/**\n * 信用卡卡组类型\n * name: 卡组名称\n * imgSrc: 卡组示例图片\n * imgIcon: 卡组icon\n */\nexport const cardsMap = [\n {\n name: 'VISA',\n imgSrc: require('src/assets/images/credit-visa.png'),\n imgIcon: require('src/assets/images/credit-visa-icon.png'),\n newImg: require('src/assets/images/credit-visa-new.png'),\n },\n {\n name: 'MASTER',\n imgSrc: require('src/assets/images/credit-mc.png'),\n imgIcon: require('src/assets/images/credit-mc-icon.png'),\n newImg: require('src/assets/images/credit-mc-new.png'),\n },\n {\n name: 'AMEX',\n imgSrc: require('src/assets/images/credit-ae.png'),\n imgIcon: require('src/assets/images/credit-ae-icon.png'),\n newImg: require('src/assets/images/credit-ae-new.png'),\n },\n {\n name: 'JCB',\n imgSrc: require('src/assets/images/credit-jcb.png'),\n imgIcon: require('src/assets/images/credit-jcb-icon.png'),\n newImg: require('src/assets/images/credit-jcb-new.png'),\n },\n {\n name: 'CB',\n imgSrc: require('src/assets/images/credit-ce.png'),\n imgIcon: require('src/assets/images/credit-ce-icon.png'),\n newImg: require('src/assets/images/credit-ce-new.png'),\n },\n {\n name: 'PAYPAL',\n imgSrc: require('src/assets/images/credit-pp-new.png'),\n imgIcon: require('src/assets/images/credit-pp-new.png'),\n newImg: require('src/assets/images/credit-pp-new.png'),\n },\n];\n\nexport const athenaLink = () => {\n const id = window.PERMISSION_DATA?.account?.id || '';\n return getAthenaLink(id);\n};\n\n// 只显示省不显示city的国家\nexport const disableCityCountry = [\n 'US',\n 'FR',\n 'IT',\n 'ES',\n 'RU',\n 'GB',\n 'IL',\n 'SA',\n 'SG',\n 'DE',\n 'CA',\n 'PH',\n 'NZ',\n 'KW',\n 'QA',\n 'KH',\n ...commonEuCountryInfo.map(item => item.country),\n];\n","import { separator } from 'src/filters/baseFilter';\nimport {\n isShopLiveWhite, isLiveSupportProductClick, isLiveSupportInitateCheckout, isLiveSupportCompletePayment,\n} from 'src/const/whiteList';\nimport { isBOE } from 'src/const/boe';\nimport store from 'src/store/';\n\n/**\n * shop 相关的配置\n */\nimport {\n OptimizeGoal,\n ExternalAction,\n} from 'src/const/state/target';\nimport ProductItem from 'src/components/ad/ad-form/ad-form-product-item';\nimport ProductDetail from 'src/components/ad/ad-form/ad-form-product-detail';\n\n/**\n * shop 的场景\n */\n\nexport const Scenario = {\n ShortVideo: 304,\n Live: 305,\n};\n\nexport const ScenarioList = [\n {\n value: Scenario.ShortVideo,\n label: 'module_adgroup_scenario_video_shopping',\n subLabel: 'module_adgroup_scenario_video_shopping_hint',\n icon: 'scenario-short-video',\n disabled: false,\n },\n {\n value: Scenario.Live,\n label: 'module_adgroup_scenario_live_shopping',\n subLabel: 'module_adgroup_scenario_live_shopping_hint',\n icon: 'scenario-live',\n disabled: () => !isShopLiveWhite() && !store.state.shop.hasMagellanShop,\n },\n];\n\n/**\n * Shop 的类型\n */\nexport const ShopType = {\n ecommShop: 1, // 1p 闭环\n tt4bShop: 2, // 3p 半闭环\n};\n\n// 3P店铺是否已绑定TT\nexport const StoreBindingTTStatus = {\n binded: 1, // 已绑定\n unbinded: 2, // 未绑定\n};\n\n// 当前用户在3P店铺的角色\nexport const UserRoleOfStore = {\n admin: 1, // 管理员\n advertise: 2, // 广告\n};\n\n/*\n shop校验结果\n*/\nexport const shopStateMap = {\n available: 0,\n unavailable: -1,\n notbindTTAdmin: -2, // 3p store未绑定TT & admin权限\n notbindTTNotAdmin: -3, // 3p store未绑定TT & 非admin权限\n};\nexport const shopWarningTipsMap = {\n [shopStateMap.available]: {\n creativeBannerText: '',\n },\n [shopStateMap.unavailable]: {\n creativeBannerText: {\n copy: 'module_shop_creative_copy_dialog_shopauthority_hint',\n edit: 'module_shop_creative_edit_dialog_shopauthority_hint',\n create: 'module_shop_creative_edit_dialog_shopauthority_hint',\n },\n },\n [shopStateMap.notbindTTAdmin]: {\n creativeBannerText: 'module_creative_shop_admin_tt_banding_hint',\n },\n [shopStateMap.notbindTTNotAdmin]: {\n creativeBannerText: 'module_creative_shop_adsrole_tt_banding_hint',\n },\n};\n\n/**\n * 商品的库存状态\n */\nexport const ProductAvailability = {\n InOrder: 1, // 有库存\n AvailableForOrder: 2, // 可供订购\n Preorder: 3, // 预定\n OutOfStock: 4, // 缺货\n Discontinued: 5, // 停产\n};\n\n\n/**\n * 商品是否在TT橱窗中 目前只支持3P\n */\nexport const ProductStoreFrontStatus = {\n InStoreFront: 7, // 有库存\n NotInStoreFront: 8, // 可供订购\n};\n\nconst ProductStoreFrontStatusMap = {\n [ProductStoreFrontStatus.InStoreFront]: {\n value: ProductStoreFrontStatus.InStoreFront,\n key: 'module_ad_spu_in_storefront',\n },\n [ProductStoreFrontStatus.NotInStoreFront]: {\n value: ProductStoreFrontStatus.NotInStoreFront,\n key: 'module_ad_spu_not_in_storefront',\n },\n};\n\n/**\n * 获取 SPU 商品表格的列\n *\n * @param {*} vm 当前组件实例\n * @returns 展示的表格\n */\nexport const getSpuTableColumns = (vm, config = {}) => {\n const { $createElement } = vm;\n const {\n isEcommShop,\n handleSelectSpu,\n isMultiSelectionType,\n isRowSelectable,\n inStorefrontThRenderer,\n } = config;\n\n return [\n {\n key: 'sku_id',\n type: 'expand',\n component: ProductDetail,\n hidden: isEcommShop, // 1P 不支持查看 SKU\n },\n {\n type: 'selection',\n width: 44,\n className: 'product-select-tbl-selection',\n selectable: isRowSelectable,\n hidden: !isMultiSelectionType, // 非多选时隐藏\n },\n {\n title: vm.$t('module_catalog_product_column_product'),\n key: 'spu_id',\n width: isMultiSelectionType ? 356 : 400, // 单选时包含ratio和图片左边距,所以大44px\n formatter: row => $createElement(ProductItem, {\n props: {\n product: row.spu,\n disabled: row?.spu?.availability_status !== ProductAvailability.InOrder,\n selectable: !isMultiSelectionType, // 多选时隐藏radio\n idPrefix: 'SPU ID: ',\n props: {\n id: 'spu_id',\n },\n },\n on: {\n select: handleSelectSpu,\n },\n }),\n },\n {\n title: vm.$t('module_catalog_product_column_price'),\n key: 'price',\n width: 150,\n align: 'right',\n formatter: (row) => {\n const { spu: { price } = {} } = row;\n // 如果区间是相等的只展示一个\n const [min = '', max = ''] = (price?.price_range || '').split('-');\n const range = min === max ? separator(min, '0,0') : `${separator(min, '0,0')}-${separator(max, '0,0')}`;\n return `${range} ${price?.price_unit}`;\n },\n },\n {\n title: vm.$t('module_catalog_product_column_category'),\n key: 'category',\n formatter: row => row.spu?.category?.name,\n },\n {\n // 是否在橱窗中 当前仅支持3P\n key: 'storefront_status',\n align: 'left',\n width: 250,\n hidden: isEcommShop,\n renderString: inStorefrontThRenderer,\n formatter: row => vm.$t(ProductStoreFrontStatusMap[row.spu?.storefront_status]?.key),\n },\n ].filter(item => !item.hidden);\n};\n\n/**\n * 获取 SKU 表格的展示的列\n * @param {*} vm 组件实例\n * @param {*} config 组件相关的方法属性\n * @returns\n */\nexport const getSkuTableColumns = (vm, config = {}) => [\n {\n title: vm.$t('module_catalog_product_column_product'),\n key: 'spu_id',\n width: 448, // 356 + 44 + 48 border-box 92是左边距\n className: 'column-sku-detail',\n formatter: row => vm.$createElement(ProductItem, {\n props: {\n product: row,\n selectable: false,\n idPrefix: 'SKU ID: ',\n props: {\n id: 'sku_id',\n },\n },\n }),\n },\n {\n title: vm.$t('module_catalog_product_column_price'),\n key: 'price',\n width: 150,\n align: 'right',\n formatter: (row) => {\n const { price } = row;\n return `${separator(price?.price || '', '0,0')} ${price?.price_unit}`;\n },\n },\n {\n title: vm.$t('module_catalog_product_column_category'),\n key: 'category',\n formatter: row => row.category?.name,\n },\n {\n title: vm.$t('module_catalog_product_column_availability'),\n key: 'storefront_status',\n width: 250,\n align: 'left',\n hidden: true, // 占位对齐用,该字段sku没有;1P不支持展开,所以展开情况下必然是3P有storefront_status\n },\n];\n\n/**\n * 获取Shop短视频优化目标\n * 优化目标只支持 Click 和 Convert 2 种\n * 为了给用户展示的更加的直观,优化目标直接关联浅层事件进行展示\n * 1. Click\n * 2. Convert\n * - Initiate Checkout(Order)\n * - Complete Payment(Purchase)\n * - Offline Event(Offsite Event)\n * @param {Number} shopType 选择的 shop 类型,1P or 3P\n * @example\n * {\n * label: 名称\n * tip: 提示\n * value: 优化目标\n * externalAction: 直接对应的浅层事件\n * enableShopTypes: 支持的 shop 类型\n * }\n */\nexport const getShopVideoOptimizeGoal = (shopType) => {\n const { ecommShop, tt4bShop } = ShopType;\n const allOptimizeGoal = [\n { // Click\n label: 'adgroup_optimize_click',\n tip: 'adgroup_optimize_click_info',\n icon: 'optimize-goal-click',\n value: OptimizeGoal.click,\n externalAction: 0,\n enableShopTypes: [ecommShop, tt4bShop],\n type: 'click',\n },\n { // Order\n label: 'module_adgroup_optimize_conversion_order',\n tip: 'module_adgroup_optimize_conversion_order_hint',\n icon: 'optimize-goal-order',\n value: OptimizeGoal.convert,\n externalAction: ExternalAction.initiateOrder,\n enableShopTypes: [ecommShop, tt4bShop],\n type: 'initiateCheckout',\n },\n { // Purchase\n label: 'module_adgroup_optimize_conversion_purchase',\n tip: 'module_adgroup_optimize_conversion_purchase_hint',\n icon: 'optimize-goal-purchase',\n value: OptimizeGoal.convert,\n externalAction: ExternalAction.shopping,\n enableShopTypes: [ecommShop],\n type: 'completePayment',\n },\n { // Offsite Event\n label: 'module_adgroup_optimize_conversion_offsite_event',\n tip: 'module_adgroup_optimize_conversion_offsite_event_hint',\n icon: 'optimize-goal-offsite-event',\n value: OptimizeGoal.convert,\n externalAction: 0, // 需要通过 pixel 去选择\n enableShopTypes: [tt4bShop],\n type: 'offsiteEvent',\n },\n ];\n return allOptimizeGoal.filter(({ enableShopTypes }) => enableShopTypes.includes(shopType));\n};\n\n/**\n * 获取Shop直播间优化目标\n * 优化目标只支持 Click 和 MT_LIVE_ROOM 2 种\n * @example\n * {\n * label: 名称\n * tip: 提示\n * value: 优化目标\n * externalAction: 直接对应的浅层事件\n * }\n */\nexport const getShopLiveOptimizeGoal = (shopType) => {\n const { tt4bShop } = ShopType;\n const isNottt4bShop = shopType !== tt4bShop;\n // complete payment优化目标在3p shop下不展示,不选shop或者选1p shop都展示\n const isLiveAdSupportCompletePayment = isLiveSupportCompletePayment() && isNottt4bShop;\n return [\n { // Click\n label: 'adgroup_optimize_click',\n tip: 'adgroup_optimize_click_info',\n icon: 'optimize-goal-click',\n value: OptimizeGoal.click,\n externalAction: 0,\n type: 'click',\n },\n { // liveStayTime\n label: 'module_ad_active_stay_time',\n tip: 'module_ad_active_stay_time_hint',\n icon: 'optimize-goal-stay-time',\n value: OptimizeGoal.liveStayTime,\n externalAction: ExternalAction.liveStayTime,\n type: 'liveStayTime',\n },\n ...isLiveSupportProductClick() ? // product link通过白名单控制\n [{ // product click in live\n label: 'module_adgroup_optimize_conversion_product_link',\n tip: 'module_adgroup_optimize_conversion_product_link_hint',\n icon: 'optimize-goal-product-link',\n value: OptimizeGoal.productClickInLive,\n externalAction: ExternalAction.liveClickProduct,\n type: 'productClickInLive',\n }] : [],\n ...isLiveSupportInitateCheckout() ? // live的initate通过白名单控制\n [{ // Order\n label: 'module_adgroup_optimize_conversion_order',\n tip: 'module_adgroup_optimize_conversion_order_hint',\n icon: 'optimize-goal-order',\n value: OptimizeGoal.convert,\n externalAction: ExternalAction.initiateOrder,\n type: 'initiateCheckout',\n }] : [],\n ...isLiveAdSupportCompletePayment ?\n [{\n label: 'module_adgroup_optimize_conversion_purchase',\n tip: 'module_adgroup_optimize_conversion_purchase_hint',\n icon: 'optimize-goal-purchase',\n value: OptimizeGoal.convert,\n externalAction: ExternalAction.shopping,\n type: 'completePayment',\n }] : [],\n ];\n};\n// 获取默认的优化目标\nexport const getDefaultOptimizeGoal = (shopType, optimizeGoalOptions = []) => {\n const { tt4bShop } = ShopType;\n const isNottt4bShop = shopType !== tt4bShop;\n const [firstOptimizeGoal] = optimizeGoalOptions;\n // 3p店铺默认选external event\n const tt4bShopDefaultOptimizeGoal = optimizeGoalOptions.find(og => og?.value === OptimizeGoal.convert && !og.externalAction);\n if (isNottt4bShop) return firstOptimizeGoal;\n\n return tt4bShopDefaultOptimizeGoal || firstOptimizeGoal;\n};\n\n// videoShopping的商品类型\nexport const PRODUCT_SELECTION_TYPE = {\n SINGLE: 1, // 单商品\n MULTIPLE: 2, // 多商品\n};\n\nexport const productSelectionTypeOptions = [\n {\n value: PRODUCT_SELECTION_TYPE.SINGLE,\n label: 'module_ad_single_product',\n icon: 'single-product',\n disabled: false,\n },\n {\n value: PRODUCT_SELECTION_TYPE.MULTIPLE,\n label: 'module_ad_multiple_products',\n icon: 'multi-product',\n disabled: false,\n },\n];\n\nexport const MULTI_PRD_LIMIT = {\n MIN: 6,\n MAX: 50,\n};\n\nexport const StoreManagerDomain = isBOE ? '//boei18n-ads.byteoversea.net/i18n/stores' : '//ads.tiktok.com/i18n/stores';\n\n// storeManager店铺设置页(可绑定TT)\nexport const getStoreManagerSettingPage = storeId => `${StoreManagerDomain}/${storeId}/settings`;\n","/**\n * 广告计划定向模块常量设置\n */\n\n// 人群包受众冲突类型\nexport const AudienceConflictType = {\n IN_2_EX: 0, // 包含受众冲突了排除受众\n EX_2_IN: 1, // 排除受众冲突了包含受众\n};\nexport const PcmDropEnum = {\n PcmDrop: 1,\n PcmNotDrop: 2,\n PcmDefault: 0,\n};\n\nexport const OptimizeGoal = {\n convert: 100,\n click: 101,\n show: 102,\n reach: 103,\n videoView: 104,\n install: 105,\n inAppEvent: 106,\n lead: 107,\n fans: 108,\n webViews: 109,\n post_engagement: 110,\n valueOptimization: 111,\n liveStayTime: 113,\n productClickInLive: 114,\n};\n\nexport const fakeOptimizeGoal = {\n installWithInAppEvents: 999,\n};\n\n// 优化目标对应的出价单位\nexport const optimizationGoalToKey = {\n [OptimizeGoal.convert]: 'adgroup_bid_conversion',\n [OptimizeGoal.install]: 'adgroup_bid_appinstall',\n [OptimizeGoal.inAppEvent]: '', // 暂不支持\n [OptimizeGoal.click]: 'adgroup_bid_click',\n [OptimizeGoal.reach]: 'adgroup_bid_impression_hint',\n [OptimizeGoal.show]: 'adgroup_bid_impression_hint',\n [OptimizeGoal.videoView]: '', // 暂不支持\n [OptimizeGoal.lead]: 'module_lead_ads_optimizal_hint',\n [OptimizeGoal.fans]: 'adgroup_bid_fans',\n [OptimizeGoal.webViews]: 'adgroup_bid_web_views',\n [OptimizeGoal.valueOptimization]: 'module_value_optimization_hint',\n};\nexport const eventStatus = {\n ready: 1,\n insufficient: 2,\n inactive: 3,\n};\n// app转化事件的翻译key前缀, 与转化中台协商而来 zhaoxuebin@bytedance.com。\n// app对应的转化事件都是从转化中台通过rpc接口拉取而来\nexport const ExternalActionI18nPrefix = 'app_rpc.external_action.';\n\nexport function translateDeepExternalAction(dea, i18n) {\n if (!dea || dea === '-') {\n return '';\n }\n return i18n.t(`${ ExternalActionI18nPrefix }${ dea }`);\n}\n\n// 浅层转化和深层转化的翻译方式一样\nexport const translateExternalAction = translateDeepExternalAction;\n\n// 浅层转化事件\nexport const ExternalAction = {\n active: 8,\n activeRegister: 13,\n login: 114,\n createGameRole: 38,\n completeTutorial: 131,\n liveClickProduct: 167,\n initiateOrder: 267,\n shopping: 96,\n liveStayTime: 186,\n};\n\n// video view播放时长枚举,用于优化目标的计算\nexport const VIDEOVIEW_DURATION_TYPE = {\n NONE: 0,\n SIX_SECONDS: 1,\n TWO_SECONDS: 3,\n};\n// 44是SDK的广告主;49是S2S的广告主\nexport const SdkS2sAdvertisersIdList = [\n '44', '49',\n];\n\nexport const OptimizeGoalOptions = [\n {\n label: 'adgroup_optimize_value_optimization',\n value: OptimizeGoal.valueOptimization,\n hidden: false,\n labelInfo: 'module_optimize_value_optimization_hint',\n },\n {\n label: 'adgroup_optimize_in_app_event',\n value: OptimizeGoal.inAppEvent,\n labelInfo: 'adgroup_optimize_in_app_event_info',\n hidden: false,\n },\n {\n label: 'adgroup_optimize_install',\n value: OptimizeGoal.install,\n labelInfo: 'adgroup_optimize_install_info',\n hidden: false,\n },\n {\n label: 'adgroup_optimize_install_with_in_app_event',\n value: fakeOptimizeGoal.installWithInAppEvents,\n labelInfo: 'module_optimize_install_with_in_app_event_hint',\n hidden: false,\n },\n {\n label: 'adgroup_optimize_conversion',\n labelInfo: 'adgroup_optimize_conversion_info',\n value: OptimizeGoal.convert,\n hidden: false,\n },\n {\n label: 'adgroup_optimize_click',\n labelInfo: 'adgroup_optimize_click_info',\n value: OptimizeGoal.click,\n hidden: false,\n },\n {\n label: 'adgroup_optimize_impression',\n value: OptimizeGoal.show,\n hidden: false,\n },\n {\n label: 'adgroup_optimize_lead',\n value: OptimizeGoal.lead,\n hidden: false,\n },\n {\n label: 'adgroup_optimize_fans',\n value: OptimizeGoal.fans,\n hidden: false,\n },\n {\n label: 'adgroup_optimize_web_views',\n value: OptimizeGoal.webViews,\n hidden: false,\n },\n {\n label: 'adgroup_optimize_reach',\n value: OptimizeGoal.reach,\n hidden: false,\n },\n {\n label: 'module_adgroup_optimize_videoview_6s', // videoview 6s\n value: `${ OptimizeGoal.videoView }_${ VIDEOVIEW_DURATION_TYPE.SIX_SECONDS }`,\n hidden: false,\n },\n {\n label: 'module_adgroup_optimize_videoview_2s', // videoview 2s\n value: `${ OptimizeGoal.videoView }_${ VIDEOVIEW_DURATION_TYPE.TWO_SECONDS }`,\n hidden: false,\n },\n {\n label: 'adgroup_optimize_post_engagement',\n value: OptimizeGoal.post_engagement,\n hidden: false,\n },\n];\nexport const brandOptimizeGoalOptions = [\n {\n label: 'adgroup_optimize_reach',\n value: OptimizeGoal.reach,\n hidden: false,\n },\n {\n label: 'module_adgroup_optimize_videoview_6s', // videoview 6s\n value: `${ OptimizeGoal.videoView }_${ VIDEOVIEW_DURATION_TYPE.SIX_SECONDS }`,\n hidden: false,\n },\n {\n label: 'module_adgroup_optimize_videoview_2s', // videoview 2s\n value: `${ OptimizeGoal.videoView }_${ VIDEOVIEW_DURATION_TYPE.TWO_SECONDS }`,\n hidden: false,\n },\n];\n// 国际化的计费方式\n// export const pricingType = {\n// OCPC: 7,\n// CPC: 2,\n// CPV: 10,\n// CPM: 1,\n// OCPM: 9, // 目前不支持\n// };\n\nexport const BrandSafetyMap = {\n UN_SAFE: 1,\n SAFE: 2,\n HOT: 3,\n FLAGSHIP: 4,\n STANDARD_INVENTORY: 5,\n SELECTED_INVENTORY: 6,\n};\nexport const neccssaryParams = ['pricing_type', 'currency_code', 'objective_type', 'classify', 'budget', 'country'];\n\n\nexport const BrandSafetyFilterMap = {\n INVENTORY_FILTER: 1,\n THIRDPARTY_FILTER: 2,\n};\n\nexport const offlineCountryTipsMap = {\n SHOP: {\n EDIT: {\n message: 'module_adgroup_shop_offline_edit_hint',\n },\n CREATE: {\n message: 'module_adgroup_shop_offline_create_hint',\n target: 'vi-store',\n ctaText: 'module_adgroup_shop_offline_create_cta',\n },\n },\n CATALOG: {\n EDIT: {\n message: 'module_adgroup_catalog_offline_edit_hint',\n },\n CREATE: {\n message: 'module_adgroup_catalog_offline_create_hint',\n target: 'product_platform_id',\n ctaText: 'module_adgroup_catalog_offline_create_cta',\n },\n },\n};\n","import { accountRole } from 'src/const/state/account';\n\nexport const isSelfAccount = () => {\n // 自助开户102\n const { customer_type_value = null } = window.PERMISSION_DATA?.account ?? {};\n return +customer_type_value === accountRole.ROLE_SLEF_ACCOUNT;\n};\nexport const transactionOptions = [\n {\n labelKey: 'transaction_type_all',\n value: 0,\n hide: true,\n colKey: 'transaction_type_all',\n },\n {\n labelKey: 'transaction_type_costs',\n value: isSelfAccount() ? 5 : 2,\n colKey: 'transaction_type_cost',\n },\n {\n labelKey: 'transaction_type_payments',\n value: isSelfAccount() ? 4 : 1,\n colKey: 'transaction_type_payment',\n },\n {\n labelKey: 'transaction_type_taxes',\n value: 3,\n colKey: 'transaction_type_tax',\n },\n];\n\nexport const getColKeyByVal = val => transactionOptions.find(item => item.value === val).colKey;\n","export const AudienceType = {\n INCLUDE: 1,\n EXCLUDE: 2,\n};\n","/**\n * @file 后端API返回统计数据的相关信息\n * 字段值 key:从返回数据中取值的 path,\n * 比如:'show' 代表展示数的字段,该值一般不会变,实际取值时可能会加上嵌套路径,如'stat_data'\n */\nimport _ from 'lodash';\nimport { campaignType } from 'src/const/state/campaign';\n\nimport { isAdmin } from 'src/utils/authUtil';\nimport { COLUMN_WIDTH } from 'src/const/column-width';\nimport store from 'src/store';\nimport SkanNumberHover from 'src/components/dashboard/perf/skan-num-hover';\nimport { isDiagnosisV2White, isSearchAdsMtWhite } from 'src/const/whiteList';\nimport { EnumCommonData } from 'src/const/statistics/basic-performance';\nimport { EnumInAppEventData } from 'src/const/statistics/basic-inapp-event';\nimport { EnumAttributionData, EnumAttributionSkanData } from 'src/const/statistics/basic-attribute';\nimport { EnumConversionData } from 'src/const/statistics/basic-conversion';\nimport { EnumVideoPlayData, EnumUVData } from 'src/const/statistics/basic-video-play';\nimport { EnumPageEventData } from 'src/const/statistics/basic-web-event';\nimport { METRIC_TYPE } from 'src/const/statistics/metrics-emun';\nimport { EnumEngagementData } from 'src/const/statistics/basic-engagement';\nimport { EnumBasicSkanData } from 'src/const/statistics/basic-skan';\nimport { EnumInAppEventSkanData } from 'src/const/statistics/basic-inapp-event-skan';\nimport { EnumLiveData } from 'src/const/statistics/basic-live';\nimport { EnumAssetData } from 'src/const/statistics/basic-asset';\nimport { EnumOnsiteEventData } from 'src/const/statistics/basic-onsite-event';\nimport ViPointGray from 'src/assets/images/vi-point-gray.svg';\nimport ViPointBlue from 'src/assets/images/vi-point-blue.svg';\nimport { getStatisticDataKey, isPcmWebStatistic } from 'src/const/statistics/formatters';\n\n// 筛选出所有的skan指标\nconst getAllSkanOptions = () => {\n let tempBasicSkanKey = EnumBasicSkanData.map(item => item.key);\n tempBasicSkanKey = tempBasicSkanKey.concat(EnumAttributionSkanData.map(item => item.key));\n EnumInAppEventSkanData.forEach((items) => {\n tempBasicSkanKey = tempBasicSkanKey.concat(items.children.map(childrenItems => childrenItems.key));\n });\n return tempBasicSkanKey;\n};\n// pageEvent增加hover\nconst pageEventHover = pageEventData => (pageEventData.map(childItem => ({\n ...childItem,\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n const itemKey = getStatisticDataKey(this.row, childItem.key);\n const isPcmWeb = isPcmWebStatistic(this.row);\n // fix某些指标没有formatter\n const numberData = childItem.formatter ? childItem.formatter(this.row, {}, itemKey) : itemKey;\n const formatNumberData = typeof numberData === 'undefined' ? '-' : numberData;\n if (!isPcmWeb) {\n return (\n
\n
\n { formatNumberData }\n
\n
);\n }\n return (\n \n );\n },\n },\n}))\n);\n// in app event dc增加hover\nconst inAppEventDcHover = inAppEventdata => (inAppEventdata.map(childItem => ({\n ...childItem,\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n const isMMPDcData = this.row.dedicate_type === campaignType.dedicatedCampaign;\n const itemKey = getStatisticDataKey(this.row, childItem.key);\n // fix某些指标没有formatter\n const numberData = childItem.formatter ? childItem.formatter(this.row, {}, itemKey) : itemKey;\n const formatNumberData = typeof numberData === 'undefined' ? '-' : numberData;\n if (!isMMPDcData) {\n return (\n
\n
\n { formatNumberData }\n
\n
);\n }\n return (\n \n );\n },\n },\n}))\n);\n\nconst skanHoverRendered = item => ({\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n const itemKey = getStatisticDataKey(this.row, item.key);\n const isDcSkan = this.row.dedicate_type === campaignType.dedicatedCampaign;\n const numberData = item.formatter(this.row, {}, itemKey);\n const formatNumberData = typeof numberData === 'undefined' ? '-' : numberData;\n if (!isDcSkan) {\n return (\n
\n
\n { formatNumberData }\n
\n
);\n }\n return (\n \n );\n },\n },\n});\n\nconst getAllSkanInAppAttr = () => {\n let tempSkanInAppKey = [];\n EnumInAppEventSkanData.forEach((items) => {\n tempSkanInAppKey = tempSkanInAppKey.concat(items.children.map(childrenItems => childrenItems.key));\n });\n return tempSkanInAppKey;\n};\n\n// Attribution 里 Adgroup 层级不可见的指标列表\nexport const getSkanAttrUnAvailableInAdgroup = () => [\n // Skan Attribute\n 'skan_active_register_show',\n 'skan_active_register_show_cost',\n 'skan_active_pay_show',\n 'skan_active_pay_show_cost',\n 'skan_active_register_click',\n 'skan_active_register_click_cost',\n 'skan_active_pay_click',\n 'skan_active_pay_click_cost',\n];\n\n// Adgroup 层级\n// 除 App Install (SKAN)和 Cost per App Install (SKAN)之外的所有指标,显示 -\nexport const getSkanInAppAttrUnAvailableInAdgroup = () => {\n let tempSkanKey = [];\n const validKeys = [\n 'skan_event_app_install',\n ];\n EnumInAppEventSkanData.forEach((items) => {\n if (!validKeys.includes(items.key)) {\n tempSkanKey = tempSkanKey.concat(items.children.map(childrenItems => childrenItems.key));\n }\n });\n return tempSkanKey;\n};\n\nconst getAllBasicAttr = () => EnumBasicSkanData.map(item => item.key);\nexport const allSkanOptions = getAllSkanOptions();\nexport const allSkanTimeAttrOptions = getAllSkanInAppAttr();\nexport const allSkanBasicOptions = getAllBasicAttr();\n// 保留的转化未对回数据指标\nexport const NotTimeAttrFields = [\n 'active',\n 'active_cost',\n 'active_rate',\n 'cost_per_active',\n 'active_per_install',\n 'value_per_active',\n 'total_active_value',\n 'conversion_cost',\n 'conversion_rate',\n 'convert_cnt',\n 'effect_cnt',\n 'effect_cost',\n 'effect_rate',\n 'ix_page_view_count',\n 'cost_per_ix_page_view_count',\n 'ix_page_view_count_per_click',\n 'ix_button_click_count',\n 'cost_per_ix_button_click_count',\n 'ix_button_click_count_per_click',\n 'ix_product_click_count',\n 'cost_per_ix_product_click_count',\n 'ix_product_click_count_per_click',\n];\n\n// 保留的转化未对回数据指标 tea param 映射\nexport const NotTimeAttrFieldsTeaMap = {\n active: 'realtime_install',\n active_cost: 'realtime_install_cost',\n active_rate: 'realtime_installrate',\n conversion_cost: 'realtimecpa',\n conversion_rate: 'realtime_CVR',\n convert_cnt: 'realtime_conversion',\n effect_cnt: 'realtime_results',\n effect_cost: 'realtime_per_result',\n effect_rate: 'realtime_result_rate',\n};\n\n// custom-list Each列表\nexport const EnumInAppEventDataEach = EnumInAppEventData.filter(\n item => !item.onlyForUniq && !(typeof item.hide === 'function' ? item.hide() : item.hide),\n).map((item, index) => {\n // real-time app install 和 app install事件的each都不能选,直接不显示\n const dummy = _.cloneDeep(item);\n dummy.children = item.children.slice(3).filter(\n child => !child.onlyForUniq && !(typeof child.hide === 'function' ? child.hide() : child.hide),\n );\n dummy.children.forEach((child, index) => {\n child.attribute = index + 1;\n });\n return dummy;\n});\n// custom-list Unique列表\nexport const EnumInAppEventDataUnique = EnumInAppEventData.filter(\n item => !item.onlyForEach && !(typeof item.hide === 'function' ? item.hide() : item.hide),\n).map((item) => {\n const dummy = _.cloneDeep(item);\n dummy.children = item.children.slice(0, 3).filter(\n child => !child.onlyForEach && !(typeof child.hide === 'function' ? child.hide() : child.hide),\n );\n dummy.children.forEach((child, index) => {\n child.attribute = index + 1;\n });\n return dummy;\n});\n\n// https://bytedance.feishu.cn/wiki/wikcnlF7RQtO87J8xLfcyAQtVTb#\n// 这个需求中,把自定义列分为 metrics(以前的列) 和 基本信息\n// custom-list 基本信息模块 =》名称和ID列表\nexport const EnumSettingNamesIDs = [\n {\n i18nPath: 'common_custom_col_campaign_name',\n key: 'campaign_name',\n sortable: false,\n showLevel: ['adgroup', 'ad'], // 显示层级,只在 campaign , adgroup ,ad 哪几个层级展示\n useRootKey: true, // 使用data的根节点属性\n 'min-width': COLUMN_WIDTH.XL,\n },\n {\n i18nPath: 'common_custom_col_campaign_id',\n key: 'campaign_id',\n sortable: false,\n showLevel: ['campaign', 'adgroup', 'ad'],\n useRootKey: true,\n 'min-width': COLUMN_WIDTH.XL,\n },\n {\n i18nPath: 'common_custom_col_adgroup_name',\n key: 'ad_name',\n sortable: false,\n showLevel: ['ad'],\n useRootKey: true,\n 'min-width': COLUMN_WIDTH.XL,\n },\n {\n i18nPath: 'common_ad_group_id',\n key: 'ad_id',\n sortable: false,\n showLevel: ['adgroup', 'ad'],\n useRootKey: true,\n 'min-width': COLUMN_WIDTH.XL,\n },\n {\n i18nPath: 'common_diagnosis_suggestion',\n key: 'diagnosis_status',\n exportKeys: ['diagnosis_status', 'learn_phase_status', 'diagnosis_time'],\n sortable: true,\n useRootKey: true,\n showLevel: ['adgroup'],\n hide: () => !isDiagnosisV2White() || !store.getters['diagnosis/libraResultIsTrue'],\n },\n {\n i18nPath: 'list_creative_id',\n key: 'creative_id',\n sortable: false,\n showLevel: ['ad'],\n useRootKey: true,\n 'min-width': COLUMN_WIDTH.XL,\n },\n];\n// custom-list 基本信息模块 =》状态和时间列表\nexport const EnumSettingStatusDates = [\n {\n i18nPath: 'common_custom_col_create_time',\n key: 'create_time',\n sortable: true,\n useRootKey: true,\n showLevel: ['campaign', 'adgroup', 'ad'],\n },\n];\n\n// custom-list 基本信息列 =》Objective & Budget & Goal\nexport const EnumSettingObjectiveBudgetGoal = [\n {\n i18nPath: 'campaign_objective',\n key: 'objective_type',\n sortable: false,\n useRootKey: true,\n showLevel: ['campaign', 'adgroup', 'ad'],\n },\n {\n // 暂时没有想到更好的办法\n // 因为 campgian 的 budget 和 adgroup budget key一样,会导致列表标识一样,报错\n // 因此这里 把 campaign 下的,key改名为 campaign_budget, 然后在渲染内容时,使用 formatter 再自定义成 budget\n i18nPath: 'common_custom_col_campaign_budget',\n key: 'campaign_budget',\n sortable: false,\n useRootKey: true,\n showLevel: ['campaign'],\n },\n {\n i18nPath: 'common_custom_col_adgroup_budget',\n key: 'budget',\n sortable: false,\n useRootKey: true,\n showLevel: ['adgroup'],\n },\n {\n i18nPath: 'common_custom_col_adgroup_ad_scheduling',\n key: 'schedule',\n sortable: false,\n useRootKey: true,\n showLevel: ['adgroup'],\n },\n {\n i18nPath: 'common_custom_col_bid',\n key: 'bid',\n sortable: false,\n useRootKey: true,\n showLevel: ['adgroup'],\n },\n {\n i18nPath: 'common_custom_col_adgroup_deep_cpa_bid',\n key: 'deep_cpa_bid',\n sortable: true,\n useRootKey: true,\n showLevel: ['adgroup'],\n },\n {\n i18nPath: 'common_custom_col_adgroup_aeo_type',\n key: 'aeo_type',\n useRootKey: true,\n showLevel: ['adgroup'],\n },\n];\n// custom-list 基本信息列 =》创意\nexport const EnumSettingAdCreative = [\n {\n i18nPath: 'ad_text',\n key: 'title',\n sortable: false,\n useRootKey: true,\n showLevel: ['ad'],\n },\n];\n\n// Other 的信息列配置\nexport const EnumSettingOther = [\n {\n i18nPath: 'module_po_number',\n key: 'po_number',\n sortable: false,\n useRootKey: true,\n showLevel: ['campaign'],\n hoverKey: 'module_po_number_tips',\n // 配置 learnMoreLink 会在表格header title 的 hover部分最后展示一个 learnMore 点击跳转到该链接\n learnMoreLink: '/help/article?aid=10006162',\n hide: () => store.getters['account/isSelfAccount'],\n },\n {\n i18nPath: 'module_search_ads_negative_keywords',\n key: 'block_words_num',\n sortable: false,\n useRootKey: true,\n 'min-width': COLUMN_WIDTH.L,\n showLevel: ['campaign', 'adgroup'],\n hide: () => !isSearchAdsMtWhite(), // 是否隐藏Negative keywords自定义列\n },\n];\n\n// 自定义列总设置分类名称(竞价)\n// 需求:https://bytedance.feishu.cn/wiki/wikcnlF7RQtO87J8xLfcyAQtVTb\nexport const CustomColSettings = [\n {\n title: 'custom_setting_names_ids',\n keyIndex: METRIC_TYPE.SETTINGS_NAMES_IDS,\n },\n {\n title: 'custom_setting_status_dates',\n keyIndex: METRIC_TYPE.SETTINGS_STATUS_DATES,\n },\n {\n title: 'custom_setting_objective_budget_goal',\n keyIndex: METRIC_TYPE.SETTINGS_OBJECTIVE_BUDGET_GOAL,\n },\n {\n title: 'custom_setting_ad_creative',\n keyIndex: METRIC_TYPE.SETTINGS_AD_CREATIVE,\n },\n {\n title: 'others',\n keyIndex: METRIC_TYPE.SETTINGS_OTHER,\n },\n];\n\n// 自定义列总分类名称(竞价)\nexport const CustomColMainCampaignSort = [\n {\n title: 'custom_basic_data',\n keyIndex: METRIC_TYPE.BASIC_DATA,\n },\n {\n title: 'custom_video_play',\n keyIndex: METRIC_TYPE.VIDEO_PLAY,\n },\n {\n title: 'custom_engagement',\n keyIndex: METRIC_TYPE.ENGAGEMENT,\n },\n {\n title: 'metric_interactive_add_on',\n keyIndex: METRIC_TYPE.ASSET,\n },\n {\n title: 'custom_live',\n keyIndex: METRIC_TYPE.LIVE,\n },\n {\n title: 'custom_app_event',\n keyIndex: METRIC_TYPE.APP_EVENT,\n items: [\n {\n title: 'custom_statistic_each',\n icon: ViPointGray,\n clickIcon: ViPointBlue,\n },\n {\n title: 'custom_statistic_unique',\n icon: ViPointGray,\n clickIcon: ViPointBlue,\n },\n ],\n },\n {\n title: 'custom_app_event_skan',\n keyIndex: METRIC_TYPE.SKAN_APP_EVENT,\n hide: () => !store.getters['dashboard/isDedicatedCampaignExist'],\n },\n {\n title: 'custom_attribution',\n keyIndex: METRIC_TYPE.ATTRIBUTION,\n },\n {\n // 页面事件数据\n title: 'custom_page_event',\n keyIndex: METRIC_TYPE.PAGE_EVENT,\n },\n {\n // Onsite 事件数据 https://bytedance.feishu.cn/docs/doccnhFDgrtonsfWDdRjbFMCs7f#\n title: 'custom_onsite_event',\n keyIndex: METRIC_TYPE.ONSITE_EVENT,\n },\n];\n\n// 汇总所有数据(竞价)\nexport const EnumAllStatsData = () => [\n ...EnumCommonData.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.BASIC_DATA,\n })),\n ...EnumConversionData.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.BASIC_DATA,\n })),\n ...EnumBasicSkanData.map(item => ({\n ...item,\n ...skanHoverRendered(item),\n keyIndex: METRIC_TYPE.BASIC_DATA,\n })),\n ...EnumInAppEventSkanData.map(item => ({\n ...item,\n children: item.children.map(childItem => ({\n ...childItem,\n ...skanHoverRendered(childItem),\n })),\n keyIndex: METRIC_TYPE.SKAN_APP_EVENT,\n })),\n ...EnumEngagementData.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.ENGAGEMENT,\n })),\n ...EnumAssetData.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.ASSET,\n })),\n ...EnumLiveData.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.LIVE,\n })),\n ...EnumInAppEventData.map(item => ({\n ...item,\n children: inAppEventDcHover(item.children),\n keyIndex: METRIC_TYPE.APP_EVENT,\n })),\n ...EnumAttributionData.map((item) => {\n let rendered = {\n ...item,\n keyIndex: METRIC_TYPE.ATTRIBUTION,\n };\n if (EnumAttributionSkanData.map(metric => metric.key).includes(item.key)) {\n rendered = {\n ...rendered,\n ...skanHoverRendered(item),\n };\n }\n return rendered;\n }),\n ...EnumVideoPlayData.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.VIDEO_PLAY,\n })),\n ...EnumInAppEventDataEach.map(item => ({\n ...item,\n children: inAppEventDcHover(item.children),\n keyIndex: METRIC_TYPE.APP_EVENT_EACH,\n })),\n ...EnumInAppEventDataUnique.map(item => ({\n ...item,\n children: inAppEventDcHover(item.children),\n keyIndex: METRIC_TYPE.APP_EVENT_UNIQUE,\n })),\n ...(isAdmin() ? EnumUVData : []).map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.VIDEO_PLAY,\n })),\n ...EnumPageEventData.map(item => ({\n ...item,\n children: pageEventHover(item.children),\n keyIndex: METRIC_TYPE.PAGE_EVENT,\n })),\n ...EnumOnsiteEventData.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.ONSITE_EVENT,\n })),\n ...EnumSettingNamesIDs.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.SETTINGS_NAMES_IDS,\n })),\n ...EnumSettingStatusDates.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.SETTINGS_STATUS_DATES,\n })),\n ...EnumSettingObjectiveBudgetGoal.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.SETTINGS_OBJECTIVE_BUDGET_GOAL,\n })),\n ...EnumSettingAdCreative.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.SETTINGS_AD_CREATIVE,\n })),\n ...EnumSettingOther.map(item => ({\n ...item,\n keyIndex: METRIC_TYPE.SETTINGS_OTHER,\n })),\n].filter(item => !(typeof item.hide === 'function' ? item.hide() : item.hide));\n// ].filter(item => !item.hide);\n\n// hover到该字段是否显示提示文案\n// 基本信息列,不展示hover,因为就是一些基础字段列,没有什么好解释的\nexport const isShowHoverTipByKeyIndex = keyIndex => ![\n METRIC_TYPE.SETTINGS_NAMES_IDS,\n METRIC_TYPE.SETTINGS_OBJECTIVE_BUDGET_GOAL,\n METRIC_TYPE.SETTINGS_STATUS_DATES,\n METRIC_TYPE.SETTINGS_AD_CREATIVE,\n // METRIC_TYPE.SETTINGS_OTHER, // PO Number 需要 展示hover信息\n].includes(keyIndex);\n// 是否展示negative keywords自定义列的hover信息\nexport const isShowHoverNkByKey = key => ![\n 'block_words_num',\n].includes(key);\n","/**\n * @file Asset Data\n */\nimport { integerValueFormatter } from 'src/const/statistics/formatters';\nimport { COLUMN_WIDTH } from 'src/const/column-width';\n\n/**\n * 每项对应的字段\n * {\n * key: 对应的后端字段\n * i18nPath: title 文案对应的 key\n * hint:\n * hoverKey: 用于表头hover内容,绝大部分列的类型可以由key计算得来,特殊的列需要写死\n * min-width: 最小宽度\n * sortable: 是否可排序\n * align: 对齐方向\n * header-align: header 对齐方向\n * formatter(Option): 数据格式化函数\n * }\n */\nexport const EnumAssetData = [\n {\n i18nPath: 'common_additional_format_show_count',\n key: 'additional_format_show_count',\n hint: 'campaign_hover_stat_data.additional_format_show_count',\n hoverKey: 'campaign_hover_stat_data.additional_format_show_count',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n },\n {\n i18nPath: 'common_additional_format_outbound_click_count',\n key: 'additional_format_outbound_click_count',\n hint: 'campaign_hover_stat_data.additional_format_outbound_click_count',\n hoverKey: 'campaign_hover_stat_data.additional_format_outbound_click_count',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n },\n {\n i18nPath: 'common_additional_format_interactive_click_count',\n key: 'additional_format_interactive_click_count',\n hint: 'campaign_hover_stat_data.additional_format_interactive_click_count',\n hoverKey: 'campaign_hover_stat_data.additional_format_interactive_click_count',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n },\n {\n i18nPath: 'common_additional_format_option_a_click_count',\n key: 'additional_format_option_a_click_count',\n hint: 'campaign_hover_stat_data.additional_format_option_a_click_count',\n hoverKey: 'campaign_hover_stat_data.additional_format_option_a_click_count',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n },\n {\n i18nPath: 'common_additional_format_option_b_click_count',\n key: 'additional_format_option_b_click_count',\n hint: 'campaign_hover_stat_data.additional_format_option_b_click_count',\n hoverKey: 'campaign_hover_stat_data.additional_format_option_b_click_count',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n },\n];\n","/**\n * @file Attribute Data 归因数据\n */\nimport {\n integerValueFormatter,\n moneyFormatterWithUnit,\n} from 'src/const/statistics/formatters';\nimport store from 'src/store';\n\nconst isDedicatedCampaign = () => !store.getters['dashboard/isDedicatedCampaignExist'];\n\nexport const EnumAttributionSkanData = [\n {\n i18nPath: 'common_skan_convert_cnt_show', // VTA Conversion (SKAN)\n hint: 'campaign_hover_stat_data.skan_convert_cnt_show',\n key: 'skan_convert_cnt_show',\n sortable: true,\n formatter: integerValueFormatter,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_convert_cnt_show_cost', // Cost per VTA Conversion (SKAN)\n hint: 'campaign_hover_stat_data.skan_convert_cnt_show_cost',\n key: 'skan_convert_cnt_show_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_show', // VTA App Install (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_show',\n key: 'skan_active_show',\n sortable: true,\n formatter: integerValueFormatter,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_show_cost', // Cost per VTA App Install (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_show_cost',\n key: 'skan_active_show_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_register_show', // VTA Registration (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_register_show',\n key: 'skan_active_register_show',\n sortable: true,\n formatter: integerValueFormatter,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_register_show_cost', // Cost per VTA Registration (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_register_show_cost',\n key: 'skan_active_register_show_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_pay_show', // VTA Purchase (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_pay_show',\n key: 'skan_active_pay_show',\n sortable: true,\n formatter: integerValueFormatter,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_pay_show_cost', // Cost per VTA Purchase (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_pay_show_cost',\n key: 'skan_active_pay_show_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_convert_cnt_click', // CTA Conversion (SKAN)\n hint: 'campaign_hover_stat_data.skan_convert_cnt_click',\n key: 'skan_convert_cnt_click',\n sortable: true,\n formatter: integerValueFormatter,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_convert_cnt_click_cost', // Cost per CTA Conversion (SKAN)\n hint: 'campaign_hover_stat_data.skan_convert_cnt_click_cost',\n key: 'skan_convert_cnt_click_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_click', // CTA App Install (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_click',\n key: 'skan_active_click',\n sortable: true,\n formatter: integerValueFormatter,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_click_cost', // Cost per CTA App Install (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_click_cost',\n key: 'skan_active_click_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_register_click', // CTA Registration (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_register_click',\n key: 'skan_active_register_click',\n sortable: true,\n formatter: integerValueFormatter,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_register_click_cost', // Cost per CTA Registration (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_register_click_cost',\n key: 'skan_active_register_click_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_pay_click', // CTA Purchase (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_pay_click',\n key: 'skan_active_pay_click',\n sortable: true,\n formatter: integerValueFormatter,\n hide: isDedicatedCampaign,\n },\n {\n i18nPath: 'common_skan_active_pay_click_cost', // Cost per CTA Purchase (SKAN)\n hint: 'campaign_hover_stat_data.skan_active_pay_click_cost',\n key: 'skan_active_pay_click_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n hide: isDedicatedCampaign,\n },\n];\n\n\nexport const EnumAttributionNonSkanData = [\n {\n i18nPath: 'common_convert_cnt_show', // VTA Conversion\n key: 'time_attr_convert_cnt_show',\n sortable: true,\n hint: 'campaign_hover_stat_data.convert_cnt_show',\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_convert_cnt_show_cost', // 展示归因激活成本\n key: 'time_attr_convert_cnt_show_cost',\n sortable: true,\n hint: 'campaign_hover_stat_data.convert_cnt_show_cost',\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_active_show', // 展示归因激活数\n key: 'time_attr_active_show',\n sortable: true,\n hint: 'common_hint_attr_tooltip',\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_active_show_cost', // 展示归因激活成本\n key: 'time_attr_active_show_cost',\n sortable: true,\n hint: 'campaign_hover_stat_data.active_click_cost',\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_active_register_show', // 展示归因注册次数\n hint: 'campaign_hover_stat_data.active_register_click',\n key: 'time_attr_active_register_show',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_active_register_show_cost', // 展示归因注册成本\n hint: 'campaign_hover_stat_data.active_register_show_cost',\n key: 'time_attr_active_register_show_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_active_pay_show', // 展示归因付费次数\n hint: 'campaign_hover_stat_data.active_pay_show',\n key: 'time_attr_active_pay_show',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_active_pay_show_cost', // 展示归因付费成本\n hint: 'campaign_hover_stat_data.active_pay_show_cost',\n key: 'time_attr_active_pay_show_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_convert_cnt_click', // CTA Conversion\n hint: 'campaign_hover_stat_data.convert_cnt_click',\n key: 'time_attr_convert_cnt_click',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_convert_cnt_click_cost', // Cost per CTA Conversion\n hint: 'campaign_hover_stat_data.convert_cnt_click_cost',\n key: 'time_attr_convert_cnt_click_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_active_click', // 点击归因激活数\n hint: 'campaign_hover_stat_data.active_click',\n key: 'time_attr_active_click',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_active_click_cost', // 点击归因激活成本\n hint: 'campaign_hover_stat_data.active_click_cost',\n key: 'time_attr_active_click_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_active_register_click', // 点击归因注册次数\n hint: 'campaign_hover_stat_data.active_register_click',\n key: 'time_attr_active_register_click',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_active_register_click_cost', // 点击归因注册成本\n hint: 'campaign_hover_stat_data.active_register_click_cost',\n key: 'time_attr_active_register_click_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_active_pay_click', // 点击归因付费次数\n hint: 'campaign_hover_stat_data.active_pay_click',\n key: 'time_attr_active_pay_click',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_active_pay_click_cost', // 点击归因付费成本\n hint: 'campaign_hover_stat_data.active_pay_click_cost',\n key: 'time_attr_active_pay_click_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n];\n\nexport const EnumAttributionData = EnumAttributionNonSkanData.concat(EnumAttributionSkanData);\n","/**\n * @file Basic Info Data\n */\n// import moment from 'moment';\n// import { TIME_FORMAT } from 'src/const/date';\nimport { COLUMN_WIDTH } from 'src/const/column-width';\nimport { moneyFormatterWithUnit } from 'src/const/statistics/formatters';\n\n\n// Creative Info\nexport const EnumImageInfo = [\n {\n i18nPath: 'library_video_size',\n key: 'resolution',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n formatter: image => image.resolution && `${image.resolution.width}*${image.resolution.height}`,\n },\n {\n i18nPath: 'library_image_created_date',\n key: 'create_time',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n // formatter: image => moment.unix(image.create_time).format(TIME_FORMAT),\n },\n];\n\n\nexport const EnumVideoDateInfo = [\n {\n i18nPath: 'module_library_material_date_create_on',\n key: 'create_time',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n // formatter: video => moment.unix(video.create_time).format(TIME_FORMAT),\n },\n {\n i18nPath: 'module_library_material_date_modify_on',\n key: 'modify_time',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n // formatter: video => moment.unix(video.modify_time).format(TIME_FORMAT),\n },\n];\nexport const EnumVideoDetailsInfo = [\n {\n i18nPath: 'module_library_material_video_source',\n key: 'source',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n },\n {\n i18nPath: 'module_library_material_video_duration',\n key: 'duration',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n },\n {\n i18nPath: 'module_library_material_video_resolution',\n key: 'resolution',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n formatter: ({ resolution }) => (resolution\n ? `${resolution.width} * ${resolution.height}`\n : '-'),\n },\n {\n i18nPath: 'module_library_material_video_creative_format',\n key: 'image_mode',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n },\n {\n i18nPath: 'module_library_material_video_country',\n key: 'country_full_names',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n },\n {\n i18nPath: 'module_library_material_video_placement',\n key: 'placement_ids',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n },\n {\n i18nPath: 'module_library_material_video_total_active_days',\n key: 'total_active_days',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n },\n];\n\nexport const EnumVideoRelatedInfo = [\n {\n i18nPath: 'custom_setting_ad_creative_video_related_ads_count',\n key: 'creative_nums',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n },\n {\n i18nPath: 'custom_setting_ad_creative_video_related_ad_groups_count',\n key: 'ad_nums',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n },\n {\n i18nPath: 'custom_setting_ad_creative_video_top_ad_ids',\n key: 'creative_cost_top5',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n hint: 'campaign_hover_stat_data.video_top_ad_ids',\n },\n {\n i18nPath: 'custom_setting_ad_creative_video_top_ad_cost',\n key: 'creative_cost_top5_total',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'custom_setting_ad_creative_video_top_ad_group_ids',\n key: 'ad_cost_top5',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n hint: 'campaign_hover_stat_data.video_top_ad_group_ids',\n },\n {\n i18nPath: 'custom_setting_ad_creative_video_top_ad_group_cost',\n key: 'ad_cost_top5_total',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n formatter: moneyFormatterWithUnit,\n },\n];\n\nexport const EnumVideoInfo = [\n {\n i18nPath: 'common_video_duration',\n key: 'duration',\n 'min-width': COLUMN_WIDTH.XL,\n align: 'right',\n 'header-align': 'right',\n formatter: (row) => {\n // row.duration + 0.5 四舍五入\n let minute = parseInt((+row.duration + 0.5) / 60, 10);\n minute = (`${minute}`).length > 1 ? minute : `0${minute}`;\n let second = parseInt((+row.duration + 0.5) % 60, 10);\n second = (`${second}`).length > 1 ? second : `0${second}`;\n return `${minute}:${second}`;\n },\n },\n ...EnumImageInfo,\n ...EnumVideoDateInfo,\n ...EnumVideoDetailsInfo,\n ...EnumVideoRelatedInfo,\n];\n","/**\n * @file Conversion Data\n */\nimport {\n moneyFormatter,\n effectCostFomatter,\n effectCountFomatter,\n effectRateFormatter,\n percentCellFormatter,\n integerValueFormatter,\n moneyFormatterWithUnit,\n getStatisticDataKey,\n isPcmWebStatistic,\n} from 'src/const/statistics/formatters';\nimport { COLUMN_WIDTH } from 'src/const/column-width';\nimport { isDeepConvertWhite } from 'src/const/whiteList';\nimport { campaignType } from 'src/const/state/campaign';\nimport SkanNumberHover from 'src/components/dashboard/perf/skan-num-hover';\n\n\n// dc下的mmp是转化类数据三个层级hover文案一样\n// in app event dc增加hover\nconst conversionDcHover = (h, row, key, formatter) => {\n const isMMPDcData = row?.dedicate_type === campaignType.dedicatedCampaign;\n const isPcmWeb = isPcmWebStatistic(row);\n const itemKey = getStatisticDataKey(row, key);\n const hintKey = isPcmWeb ? 'module_dc_hover_pcm' : 'module_dc_hover_idmatching';\n const numberData = formatter(row, {}, itemKey);\n const formatNumberData = typeof numberData === 'undefined' ? '-' : numberData;\n if (!isMMPDcData && !isPcmWeb) {\n return (\n
\n
\n {formatNumberData}\n
\n
);\n }\n return (\n \n );\n};\nexport const EnumConversionData = [\n {\n i18nPath: 'list_convert_count', // 转化数\n hint: 'campaign_hover_stat_data.convert_cnt',\n key: 'time_attr_convert_cnt',\n 'min-width': COLUMN_WIDTH.M,\n sortable: true,\n formatter: integerValueFormatter,\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n return conversionDcHover(h, this.row, 'time_attr_convert_cnt', integerValueFormatter);\n },\n },\n },\n {\n i18nPath: 'list_convert_cost', // 转化成本\n hint: 'campaign_hover_stat_data.convert_cost',\n key: 'time_attr_conversion_cost',\n 'min-width': COLUMN_WIDTH.S,\n sortable: true,\n type: 'component',\n formatter: moneyFormatterWithUnit,\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n return conversionDcHover(h, this.row, 'time_attr_conversion_cost', moneyFormatterWithUnit);\n },\n },\n },\n {\n i18nPath: 'list_convert_rate', // 转化率\n hint: 'campaign_hover_stat_data.convert_rate',\n key: 'time_attr_conversion_rate',\n 'min-width': COLUMN_WIDTH.S,\n sortable: true,\n type: 'component',\n formatter: percentCellFormatter,\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n return conversionDcHover(h, this.row, 'time_attr_conversion_rate', percentCellFormatter);\n },\n },\n },\n {\n i18nPath: 'time_attr_real_time_conversions', // 未对回转化数\n hint: 'campaign_hover_stat_data.convert_cnt',\n key: 'convert_cnt',\n 'min-width': 160,\n sortable: true,\n formatter: integerValueFormatter,\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n return conversionDcHover(h, this.row, 'convert_cnt', integerValueFormatter);\n },\n },\n },\n {\n i18nPath: 'time_attr_real_time_cpa', // 未对回转化成本\n hint: 'campaign_hover_stat_data.convert_cost',\n key: 'conversion_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n return conversionDcHover(h, this.row, 'conversion_cost', moneyFormatterWithUnit);\n },\n },\n },\n {\n i18nPath: 'time_attr_real_time_cvr', // 未对回转化率\n hint: 'campaign_hover_stat_data.convert_rate',\n key: 'conversion_rate',\n 'min-width': 160,\n sortable: true,\n formatter: percentCellFormatter,\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n return conversionDcHover(h, this.row, 'conversion_rate', percentCellFormatter);\n },\n },\n },\n {\n i18nPath: 'list_effect_count', // 成效数\n key: 'time_attr_effect_cnt',\n 'min-width': COLUMN_WIDTH.XXL,\n sortable: true,\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n const isTimeAttr = true; // 是否是转化对回数据\n return effectCountFomatter(this.row, h, isTimeAttr, this.$t, this);\n },\n },\n },\n {\n i18nPath: 'list_effect_cost', // 成效成本\n key: 'time_attr_effect_cost',\n 'min-width': COLUMN_WIDTH.XXL,\n sortable: true,\n type: 'component',\n formatter: moneyFormatterWithUnit,\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n const isTimeAttr = true; // 是否是转化对回数据\n return effectCostFomatter(this.row, h, isTimeAttr);\n },\n },\n },\n {\n i18nPath: 'list_effect_rate', // 成效率\n key: 'time_attr_effect_rate',\n formatter: percentCellFormatter,\n 'min-width': COLUMN_WIDTH.XXL,\n sortable: true,\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n const isTimeAttr = true; // 是否是转化对回数据\n return effectRateFormatter(this.row, h, isTimeAttr);\n },\n },\n },\n {\n i18nPath: 'time_attr_real_time_result', // 未对回成效数\n key: 'effect_cnt',\n sortable: false,\n 'min-width': COLUMN_WIDTH.XXL,\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n return effectCountFomatter(this.row, h, false, this.$t, this);\n },\n },\n },\n {\n i18nPath: 'time_attr_real_time_cpr', // 未对回成效成本\n key: 'effect_cost',\n sortable: false,\n type: 'component',\n 'min-width': COLUMN_WIDTH.XXL,\n formatter: moneyFormatterWithUnit,\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n return effectCostFomatter(this.row, h);\n },\n },\n },\n {\n i18nPath: 'time_attr_real_time_results_rate', // 未对回成效率\n key: 'effect_rate',\n formatter: percentCellFormatter,\n 'min-width': COLUMN_WIDTH.XXL,\n sortable: false,\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n return effectRateFormatter(this.row, h);\n },\n },\n },\n {\n i18nPath: 'list_deep_convert_count', // 深度转化次数\n key: 'time_attr_deep_convert_cnt',\n 'min-width': COLUMN_WIDTH.XXL,\n sortable: true,\n hide: () => !isDeepConvertWhite(),\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n const isMMPDcData = this.row.dedicate_type === campaignType.dedicatedCampaign;\n const time_attr_deep_convert_cnt = getStatisticDataKey(this.row, 'time_attr_deep_convert_cnt');\n const deep_convert_cnt_note = getStatisticDataKey(this.row, 'deep_convert_cnt_note');\n const numberData = integerValueFormatter(this.row, {}, time_attr_deep_convert_cnt);\n const formatNumberData = typeof numberData === 'undefined' ? '-' : numberData;\n if (!isMMPDcData) {\n return (\n
\n
\n {formatNumberData}\n
\n
{deep_convert_cnt_note}
\n
);\n }\n return (\n \n );\n },\n },\n },\n {\n i18nPath: 'list_deep_convert_cost', // 深度转化成本\n key: 'time_attr_deep_convert_cost',\n 'min-width': COLUMN_WIDTH.XXL,\n sortable: true,\n hide: () => !isDeepConvertWhite(),\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n const isMMPDcData = this.row.dedicate_type === campaignType.dedicatedCampaign;\n const time_attr_deep_convert_cost = getStatisticDataKey(this.row, 'time_attr_deep_convert_cost');\n const deep_convert_cost_note = getStatisticDataKey(this.row, 'deep_convert_cost_note');\n const numberData = moneyFormatter(this.row, {}, time_attr_deep_convert_cost);\n const formatNumberData = typeof numberData === 'undefined' ? '-' : numberData;\n if (!isMMPDcData) {\n return (\n
\n
\n {formatNumberData}\n
\n
{deep_convert_cost_note}
\n
);\n }\n return (\n \n );\n },\n },\n },\n {\n i18nPath: 'list_deep_cvr', // 深度转化率\n key: 'time_attr_deep_cvr',\n 'min-width': COLUMN_WIDTH.XXL,\n sortable: true,\n formatter: percentCellFormatter,\n hide: () => !isDeepConvertWhite(),\n type: 'component',\n component: {\n props: {\n row: { type: Object, required: true },\n },\n render(h) {\n const time_attr_deep_cvr = getStatisticDataKey(this.row, 'time_attr_deep_cvr');\n const deep_convert_cost_note = getStatisticDataKey(this.row, 'deep_convert_cost_note');\n const isMMPDcData = this.row.dedicate_type === campaignType.dedicatedCampaign;\n const numberData = time_attr_deep_cvr;\n const formatNumberData = typeof numberData === 'undefined' ? '-' : numberData;\n if (!isMMPDcData) {\n return (\n
\n
\n {formatNumberData}\n
\n
{deep_convert_cost_note}
\n
);\n }\n return (\n \n );\n },\n },\n },\n];\n","/**\n * @file Engagement Data\n */\nimport {\n integerValueFormatter,\n percentCellFormatter,\n} from 'src/const/statistics/formatters';\nimport { COLUMN_WIDTH } from 'src/const/column-width';\nimport { isEngagementMetricsWhite, isNativeMusicPromoteWhite } from 'src/const/whiteList';\n\n/**\n * 每项对应的字段\n * {\n * key: 对应的后端字段\n * i18nPath: title 文案对应的 key\n * hint:\n * hoverKey: 用于表头hover内容,绝大部分列的类型可以由key计算得来,特殊的列需要写死\n * min-width: 最小宽度\n * sortable: 是否可排序\n * align: 对齐方向\n * header-align: header 对齐方向\n * formatter(Option): 数据格式化函数\n * }\n */\nexport const EnumEngagementData = [\n {\n i18nPath: 'common_paid_followers',\n key: 'ad_net_follow',\n hint: 'campaign_hover_stat_data.paid_followers',\n hoverKey: 'campaign_hover_stat_data.paid_followers',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n hide: () => !isEngagementMetricsWhite(),\n },\n {\n i18nPath: 'common_paid_likes',\n key: 'ad_net_like',\n hint: 'campaign_hover_stat_data.paid_likes',\n hoverKey: 'campaign_hover_stat_data.paid_likes',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n hide: () => !isEngagementMetricsWhite(),\n },\n {\n i18nPath: 'common_paid_comments',\n key: 'ad_comment',\n hint: 'campaign_hover_stat_data.paid_comments',\n hoverKey: 'campaign_hover_stat_data.paid_comments',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n hide: () => !isEngagementMetricsWhite(),\n },\n {\n i18nPath: 'common_paid_shares',\n key: 'ad_share',\n hint: 'campaign_hover_stat_data.paid_shares',\n hoverKey: 'campaign_hover_stat_data.paid_shares',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n hide: () => !isEngagementMetricsWhite(),\n },\n {\n i18nPath: 'common_home_visited', // 主页访问数\n hint: 'campaign_hover_stat_data.home_visited',\n hoverKey: 'campaign_hover_stat_data.home_visited',\n key: 'ad_home_visited',\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter,\n hide: () => !isEngagementMetricsWhite(),\n },\n {\n i18nPath: 'common_home_visited_rate', // 主页访问率\n hint: 'campaign_hover_stat_data.home_visited_rate',\n hoverKey: 'campaign_hover_stat_data.home_visited_rate',\n key: 'ad_home_visited_rate',\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: percentCellFormatter,\n hide: () => !isEngagementMetricsWhite(),\n },\n {\n i18nPath: 'common_clicks_on_music_disc', // 点击音乐数\n hint: 'campaign_hover_stat_data.clicks_on_music_disc',\n hoverKey: 'campaign_hover_stat_data.clicks_on_music_disc',\n key: 'ies_music_click',\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter,\n hide: () => !isNativeMusicPromoteWhite(),\n },\n\n {\n i18nPath: 'common_anchor_click_count', // Anchor Clicks\n hint: 'campaign_hover_stat_data.anchor_click_count',\n hoverKey: 'campaign_hover_stat_data.anchor_click_count',\n key: 'anchor_click_count',\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_anchor_click_rate', // Anchor Click Rate\n hint: 'campaign_hover_stat_data.anchor_click_rate',\n hoverKey: 'campaign_hover_stat_data.anchor_click_rate',\n key: 'anchor_click_rate',\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: percentCellFormatter,\n },\n];\n","/**\n * @file In-app Event 应用内事件数据\n */\nimport {\n integerValueFormatter,\n moneyFormatterWithUnit,\n percentCellFormatter,\n durationFormatter,\n} from 'src/const/statistics/formatters';\nimport { EVENT_ATTRIBUTE_SKAN } from 'src/const/statistics/metrics-emun';\n\n// 当前在 Reporting 页面\nconst isInReportingModule = () => window.location.href.includes('reporting');\n\nexport const EnumInAppEventSkanData = [\n {\n i18nPath: 'list_skan_event_app_install', // NOTE: 非对回的active也要保留\n key: 'skan_event_app_install', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_active',\n children: [\n {\n i18nPath: 'list_skan_event_app_install_unique_count', //\n key: 'skan_active', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_app_install_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_app_install_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_app_install_unique_cost', //\n key: 'cost_per_skan_active', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_app_install_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_app_install_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_app_install_withheld_unique_count', // App Install (SKAN Privacy Withhelds)\n key: 'skan_event_app_install_withheld', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.skan_event_app_install_withheld_unique_count',\n hide: () => isInReportingModule(),\n children: [\n {\n i18nPath: 'list_skan_event_app_install_withheld_unique_count', //\n key: 'skan_active_withheld', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_app_install_withheld_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_app_install_withheld_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_app_install_withheld_unique_count', // App Install (SKAN Privacy Withhelds)\n key: 'skan_active_withheld', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.skan_event_app_install_withheld_unique_count',\n formatter: integerValueFormatter, // 格式化表格数据\n hide: () => !isInReportingModule(),\n children: [\n {\n i18nPath: 'list_skan_event_app_install_withheld_unique_count', //\n key: 'skan_active_withheld', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_app_install_withheld_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_app_install_withheld_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_registration', // NOTE: 非对回的active也要保留\n key: 'skan_event_registration', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_active_register',\n children: [\n {\n i18nPath: 'list_skan_event_registration_unique_count', //\n key: 'skan_active_register', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_registration_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_registration_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_registration_unique_cost', //\n key: 'cost_per_skan_active_register', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_registration_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_registration_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_registration_unique_rate', //\n key: 'skan_active_register_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_registration_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_registration_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_registration_each_count', //\n key: 'skan_repetitive_active_register', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_registration_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_registration_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_registration_each_cost', //\n key: 'cost_per_skan_repetitive_active_register', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_registration_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_registration_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_purchase', // NOTE: 非对回的active也要保留\n key: 'skan_event_purchase', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_active_pay',\n children: [\n {\n i18nPath: 'list_skan_event_purchase_unique_count', //\n key: 'skan_active_pay', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_purchase_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_purchase_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_purchase_unique_cost', //\n key: 'cost_per_skan_active_pay', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_purchase_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_purchase_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_purchase_unique_rate', //\n key: 'skan_active_pay_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_purchase_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_purchase_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_purchase_each_count', //\n key: 'skan_repetitive_active_pay', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_purchase_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_purchase_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_purchase_each_cost', //\n key: 'cost_per_skan_repetitive_active_pay', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_purchase_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_purchase_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_purchase_each_value', //\n key: 'skan_total_repetitive_active_pay_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_purchase_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_purchase_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_roas', //\n key: 'skan_total_repetitive_active_pay_roas', // {metric}\n hint: 'campaign_hover_stat_data.skan_total_repetitive_active_pay_roas',\n hoverKey: 'campaign_hover_stat_data.skan_total_repetitive_active_pay_roas',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: durationFormatter, // 格式化表格数据\n hide: () => !isInReportingModule(),\n },\n ],\n },\n {\n i18nPath: 'common_metric_set_skan_total_repetitive_active_pay_roas', // NOTE: 非对回的active也要保留\n key: 'skan_event_roas', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.skan_total_repetitive_active_pay_roas',\n hide: () => isInReportingModule(),\n children: [\n {\n i18nPath: 'list_skan_event_roas', //\n key: 'skan_total_repetitive_active_pay_roas', // {metric}\n hint: 'campaign_hover_stat_data.skan_total_repetitive_active_pay_roas',\n hoverKey: 'campaign_hover_stat_data.skan_total_repetitive_active_pay_roas',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: durationFormatter, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_add_to_cart', // NOTE: 非对回的active也要保留\n key: 'skan_event_add_to_cart', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_in_app_cart',\n children: [\n {\n i18nPath: 'list_skan_event_add_to_cart_unique_count', //\n key: 'skan_in_app_cart', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_to_cart_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_to_cart_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_to_cart_unique_cost', //\n key: 'cost_per_skan_in_app_cart', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_to_cart_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_to_cart_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_to_cart_unique_rate', //\n key: 'skan_in_app_cart_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_to_cart_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_to_cart_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_to_cart_each_count', //\n key: 'skan_repetitive_in_app_cart', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_to_cart_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_to_cart_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_to_cart_each_cost', //\n key: 'cost_per_skan_repetitive_in_app_cart', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_to_cart_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_to_cart_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_to_cart_each_value', //\n key: 'skan_total_repetitive_in_app_cart_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_to_cart_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_to_cart_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_checkout', // NOTE: 非对回的active也要保留\n key: 'skan_event_checkout', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_in_app_order',\n children: [\n {\n i18nPath: 'list_skan_event_checkout_unique_count', //\n key: 'skan_in_app_order', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_checkout_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_checkout_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_checkout_unique_cost', //\n key: 'cost_per_skan_in_app_order', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_checkout_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_checkout_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_checkout_unique_rate', //\n key: 'skan_in_app_order_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_checkout_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_checkout_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_checkout_each_count', //\n key: 'skan_repetitive_in_app_order', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_checkout_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_checkout_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_checkout_each_cost', //\n key: 'cost_per_skan_repetitive_in_app_order', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_checkout_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_checkout_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_checkout_each_value', //\n key: 'skan_total_repetitive_in_app_order_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_checkout_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_checkout_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_view_content', // NOTE: 非对回的active也要保留\n key: 'skan_event_view_content', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_in_app_detail_uv',\n children: [\n {\n i18nPath: 'list_skan_event_view_content_unique_count', //\n key: 'skan_in_app_detail_uv', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_view_content_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_view_content_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_view_content_unique_cost', //\n key: 'cost_per_skan_in_app_detail_uv', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_view_content_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_view_content_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_view_content_unique_rate', //\n key: 'skan_in_app_detail_uv_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_view_content_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_view_content_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_view_content_each_count', //\n key: 'skan_repetitive_in_app_detail_uv', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_view_content_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_view_content_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_view_content_each_cost', //\n key: 'cost_per_skan_repetitive_in_app_detail_uv', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_view_content_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_view_content_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_view_content_each_value', //\n key: 'skan_total_repetitive_in_app_detail_uv_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_view_content_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_view_content_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_add_payment_info', // NOTE: 非对回的active也要保留\n key: 'skan_event_add_payment_info', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_add_payment_info',\n children: [\n {\n i18nPath: 'list_skan_event_add_payment_info_unique_count', //\n key: 'skan_add_payment_info', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_payment_info_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_payment_info_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_payment_info_unique_cost', //\n key: 'cost_per_skan_add_payment_info', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_payment_info_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_payment_info_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_payment_info_unique_rate', //\n key: 'skan_add_payment_info_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_payment_info_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_payment_info_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_payment_info_each_count', //\n key: 'skan_repetitive_add_payment_info', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_payment_info_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_payment_info_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_payment_info_each_cost', //\n key: 'cost_per_skan_repetitive_add_payment_info', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_payment_info_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_payment_info_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_add_wishlist', // NOTE: 非对回的active也要保留\n key: 'skan_event_add_wishlist', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_add_to_wishlist',\n children: [\n {\n i18nPath: 'list_skan_event_add_wishlist_unique_count', //\n key: 'skan_add_to_wishlist', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_wishlist_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_wishlist_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_wishlist_unique_cost', //\n key: 'cost_per_skan_add_to_wishlist', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_wishlist_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_wishlist_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_wishlist_unique_rate', //\n key: 'skan_add_to_wishlist_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_wishlist_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_wishlist_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_wishlist_each_count', //\n key: 'skan_repetitive_add_to_wishlist', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_wishlist_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_wishlist_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_wishlist_each_cost', //\n key: 'cost_per_skan_repetitive_add_to_wishlist', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_wishlist_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_wishlist_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_add_wishlist_each_value', //\n key: 'skan_total_repetitive_add_to_wishlist_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_add_wishlist_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_add_wishlist_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_launch_app', // NOTE: 非对回的active也要保留\n key: 'skan_event_launch_app', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_launch_app',\n children: [\n {\n i18nPath: 'list_skan_event_launch_app_unique_count', //\n key: 'skan_launch_app', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_launch_app_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_launch_app_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_launch_app_unique_cost', //\n key: 'cost_per_skan_launch_app', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_launch_app_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_launch_app_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_launch_app_unique_rate', //\n key: 'skan_launch_app_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_launch_app_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_launch_app_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_launch_app_each_count', //\n key: 'skan_repetitive_launch_app', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_launch_app_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_launch_app_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_launch_app_each_cost', //\n key: 'cost_per_skan_repetitive_launch_app', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_launch_app_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_launch_app_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_complete_tutorial', // NOTE: 非对回的active也要保留\n key: 'skan_event_complete_tutorial', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_complete_tutorial',\n children: [\n {\n i18nPath: 'list_skan_event_complete_tutorial_unique_count', //\n key: 'skan_complete_tutorial', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_complete_tutorial_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_complete_tutorial_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_complete_tutorial_unique_cost', //\n key: 'cost_per_skan_complete_tutorial', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_complete_tutorial_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_complete_tutorial_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_complete_tutorial_unique_rate', //\n key: 'skan_complete_tutorial_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_complete_tutorial_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_complete_tutorial_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_complete_tutorial_each_count', //\n key: 'skan_repetitive_complete_tutorial', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_complete_tutorial_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_complete_tutorial_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_complete_tutorial_each_cost', //\n key: 'cost_per_skan_repetitive_complete_tutorial', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_complete_tutorial_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_complete_tutorial_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_complete_tutorial_each_value', //\n key: 'skan_total_repetitive_complete_tutorial_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_complete_tutorial_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_complete_tutorial_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_create_group', // NOTE: 非对回的active也要保留\n key: 'skan_event_create_group', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_create_group',\n children: [\n {\n i18nPath: 'list_skan_event_create_group_unique_count', //\n key: 'skan_create_group', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_group_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_group_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_create_group_unique_cost', //\n key: 'cost_per_skan_create_group', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_group_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_group_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_create_group_unique_rate', //\n key: 'skan_create_group_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_group_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_group_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_create_group_each_count', //\n key: 'skan_repetitive_create_group', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_group_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_group_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_create_group_each_cost', //\n key: 'cost_per_skan_repetitive_create_group', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_group_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_group_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_create_group_each_value', //\n key: 'skan_total_repetitive_create_group_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_group_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_group_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_join_group', // NOTE: 非对回的active也要保留\n key: 'skan_event_join_group', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_join_group',\n children: [\n {\n i18nPath: 'list_skan_event_join_group_unique_count', //\n key: 'skan_join_group', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_join_group_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_join_group_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_join_group_unique_cost', //\n key: 'cost_per_skan_join_group', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_join_group_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_join_group_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_join_group_unique_rate', //\n key: 'skan_join_group_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_join_group_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_join_group_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_join_group_each_count', //\n key: 'skan_repetitive_join_group', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_join_group_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_join_group_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_join_group_each_cost', //\n key: 'cost_per_skan_repetitive_join_group', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_join_group_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_join_group_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_join_group_each_value', //\n key: 'skan_total_repetitive_join_group_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_join_group_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_join_group_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_create_role', // NOTE: 非对回的active也要保留\n key: 'skan_event_create_role', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_create_gamerole',\n children: [\n {\n i18nPath: 'list_skan_event_create_role_unique_count', //\n key: 'skan_create_gamerole', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_role_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_role_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_create_role_unique_cost', //\n key: 'cost_per_skan_create_gamerole', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_role_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_role_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_create_role_unique_rate', //\n key: 'skan_create_gamerole_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_role_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_role_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_create_role_each_count', //\n key: 'skan_repetitive_create_gamerole', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_role_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_role_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_create_role_each_cost', //\n key: 'cost_per_skan_repetitive_create_gamerole', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_role_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_role_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_create_role_each_value', //\n key: 'skan_total_repetitive_create_gamerole_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_create_role_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_create_role_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_spend_credit', // NOTE: 非对回的active也要保留\n key: 'skan_event_spend_credit', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_spend_credits',\n children: [\n {\n i18nPath: 'list_skan_event_spend_credit_unique_count', //\n key: 'skan_spend_credits', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_spend_credit_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_spend_credit_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_spend_credit_unique_cost', //\n key: 'cost_per_skan_spend_credits', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_spend_credit_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_spend_credit_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_spend_credit_unique_rate', //\n key: 'skan_spend_credits_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_spend_credit_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_spend_credit_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_spend_credit_each_count', //\n key: 'skan_repetitive_spend_credits', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_spend_credit_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_spend_credit_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_spend_credit_each_cost', //\n key: 'cost_per_skan_repetitive_spend_credits', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_spend_credit_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_spend_credit_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_spend_credit_each_value', //\n key: 'skan_total_repetitive_spend_credits_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_spend_credit_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_spend_credit_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_achieve_level', // NOTE: 非对回的active也要保留\n key: 'skan_event_achieve_level', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_update_level',\n children: [\n {\n i18nPath: 'list_skan_event_achieve_level_unique_count', //\n key: 'skan_update_level', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_achieve_level_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_achieve_level_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_achieve_level_unique_cost', //\n key: 'cost_per_skan_update_level', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_achieve_level_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_achieve_level_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_achieve_level_unique_rate', //\n key: 'skan_update_level_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_achieve_level_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_achieve_level_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_achieve_level_each_count', //\n key: 'skan_repetitive_update_level', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_achieve_level_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_achieve_level_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_achieve_level_each_cost', //\n key: 'cost_per_skan_repetitive_update_level', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_achieve_level_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_achieve_level_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_achieve_level_each_value', //\n key: 'skan_total_repetitive_update_level_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_achieve_level_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_achieve_level_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_unlock_achievement', // NOTE: 非对回的active也要保留\n key: 'skan_event_unlock_achievement', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_unlock_achievement',\n children: [\n {\n i18nPath: 'list_skan_event_unlock_achievement_unique_count', //\n key: 'skan_unlock_achievement', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_unlock_achievement_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_unlock_achievement_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_unlock_achievement_unique_cost', //\n key: 'cost_per_skan_unlock_achievement', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_unlock_achievement_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_unlock_achievement_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_unlock_achievement_unique_rate', //\n key: 'skan_unlock_achievement_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_unlock_achievement_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_unlock_achievement_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_unlock_achievement_each_count', //\n key: 'skan_repetitive_unlock_achievement', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_unlock_achievement_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_unlock_achievement_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_unlock_achievement_each_cost', //\n key: 'cost_per_skan_repetitive_unlock_achievement', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_unlock_achievement_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_unlock_achievement_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_unlock_achievement_each_value', //\n key: 'skan_total_repetitive_unlock_achievement_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_unlock_achievement_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_unlock_achievement_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_generate_lead', // NOTE: 非对回的active也要保留\n key: 'skan_event_generate_lead', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_sales_lead',\n children: [\n {\n i18nPath: 'list_skan_event_generate_lead_unique_count', //\n key: 'skan_sales_lead', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_generate_lead_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_generate_lead_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_generate_lead_unique_cost', //\n key: 'cost_per_skan_sales_lead', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_generate_lead_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_generate_lead_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_generate_lead_unique_rate', //\n key: 'skan_sales_lead_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_generate_lead_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_generate_lead_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_generate_lead_each_count', //\n key: 'skan_repetitive_sales_lead', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_generate_lead_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_generate_lead_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_generate_lead_each_cost', //\n key: 'cost_per_skan_repetitive_sales_lead', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_generate_lead_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_generate_lead_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_generate_lead_each_value', //\n key: 'skan_total_repetitive_sales_lead_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_generate_lead_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_generate_lead_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_click', // NOTE: 非对回的active也要保留\n key: 'skan_event_in_app_ad_click', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_in_app_ad_click',\n children: [\n {\n i18nPath: 'list_skan_event_in_app_ad_click_unique_count', //\n key: 'skan_in_app_ad_click', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_click_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_click_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_click_unique_cost', //\n key: 'cost_per_skan_in_app_ad_click', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_click_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_click_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_click_unique_rate', //\n key: 'skan_in_app_ad_click_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_click_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_click_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_click_each_count', //\n key: 'skan_repetitive_in_app_ad_click', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_click_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_click_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_click_each_cost', //\n key: 'cost_per_skan_repetitive_in_app_ad_click', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_click_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_click_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_click_each_value', //\n key: 'skan_total_repetitive_in_app_ad_click_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_click_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_click_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_impr', // NOTE: 非对回的active也要保留\n key: 'skan_event_in_app_ad_impr', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_in_app_ad_impr',\n children: [\n {\n i18nPath: 'list_skan_event_in_app_ad_impr_unique_count', //\n key: 'skan_in_app_ad_impr', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_impr_unique_cost', //\n key: 'cost_per_skan_in_app_ad_impr', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_impr_unique_rate', //\n key: 'skan_in_app_ad_impr_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_impr_each_count', //\n key: 'skan_repetitive_in_app_ad_impr', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_impr_each_cost', //\n key: 'cost_per_skan_repetitive_in_app_ad_impr', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_in_app_ad_impr_each_value', //\n key: 'skan_total_repetitive_in_app_ad_impr_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_in_app_ad_impr_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_loan_apply', // NOTE: 非对回的active也要保留\n key: 'skan_event_loan_apply', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_loan_apply',\n children: [\n {\n i18nPath: 'list_skan_event_loan_apply_unique_count', //\n key: 'skan_loan_apply', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_apply_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_apply_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_apply_unique_cost', //\n key: 'cost_per_skan_loan_apply', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_apply_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_apply_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_apply_unique_rate', //\n key: 'skan_loan_apply_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_apply_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_apply_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_apply_each_count', //\n key: 'skan_repetitive_loan_apply', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_apply_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_apply_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_apply_each_cost', //\n key: 'cost_per_skan_repetitive_loan_apply', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_apply_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_apply_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_loan_approval', // NOTE: 非对回的active也要保留\n key: 'skan_event_loan_approval', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_loan_credit',\n children: [\n {\n i18nPath: 'list_skan_event_loan_approval_unique_count', //\n key: 'skan_loan_credit', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_approval_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_approval_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_approval_unique_cost', //\n key: 'cost_per_skan_loan_credit', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_approval_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_approval_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_approval_unique_rate', //\n key: 'skan_loan_credit_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_approval_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_approval_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_approval_each_count', //\n key: 'skan_repetitive_loan_credit', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_approval_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_approval_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_approval_each_cost', //\n key: 'cost_per_skan_repetitive_loan_credit', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_approval_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_approval_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_loan_disbursement', // NOTE: 非对回的active也要保留\n key: 'skan_event_loan_disbursement', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_loan_completion',\n children: [\n {\n i18nPath: 'list_skan_event_loan_disbursement_unique_count', //\n key: 'skan_loan_completion', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_disbursement_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_disbursement_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_disbursement_unique_cost', //\n key: 'cost_per_skan_loan_completion', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_disbursement_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_disbursement_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_disbursement_unique_rate', //\n key: 'skan_loan_completion_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_disbursement_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_disbursement_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_disbursement_each_count', //\n key: 'skan_repetitive_loan_completion', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_disbursement_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_disbursement_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_loan_disbursement_each_cost', //\n key: 'cost_per_skan_repetitive_loan_completion', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_loan_disbursement_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_loan_disbursement_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_login', // NOTE: 非对回的active也要保留\n key: 'skan_event_login', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_login',\n children: [\n {\n i18nPath: 'list_skan_event_login_unique_count', //\n key: 'skan_login', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_login_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_login_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_login_unique_cost', //\n key: 'cost_per_skan_login', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_login_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_login_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_login_unique_rate', //\n key: 'skan_login_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_login_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_login_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_login_each_count', //\n key: 'skan_repetitive_login', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_login_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_login_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_login_each_cost', //\n key: 'cost_per_skan_repetitive_login', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_login_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_login_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_rate', // NOTE: 非对回的active也要保留\n key: 'skan_event_rate', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_rate',\n children: [\n {\n i18nPath: 'list_skan_event_rate_unique_count', //\n key: 'skan_rate', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_rate_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_rate_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_rate_unique_cost', //\n key: 'cost_per_skan_rate', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_rate_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_rate_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_rate_unique_rate', //\n key: 'skan_rate_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_rate_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_rate_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_rate_each_count', //\n key: 'skan_repetitive_rate', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_rate_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_rate_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_rate_each_cost', //\n key: 'cost_per_skan_repetitive_rate', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_rate_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_rate_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_rate_each_value', //\n key: 'skan_total_repetitive_rate_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_rate_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_rate_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_search', // NOTE: 非对回的active也要保留\n key: 'skan_event_search', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_search',\n children: [\n {\n i18nPath: 'list_skan_event_search_unique_count', //\n key: 'skan_search', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_search_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_search_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_search_unique_cost', //\n key: 'cost_per_skan_search', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_search_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_search_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_search_unique_rate', //\n key: 'skan_search_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_search_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_search_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_search_each_count', //\n key: 'skan_repetitive_search', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_search_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_search_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_search_each_cost', //\n key: 'cost_per_skan_repetitive_search', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_search_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_search_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_start_trial', // NOTE: 非对回的active也要保留\n key: 'skan_event_start_trial', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_start_trial',\n children: [\n {\n i18nPath: 'list_skan_event_start_trial_unique_count', //\n key: 'skan_start_trial', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_start_trial_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_start_trial_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_start_trial_unique_cost', //\n key: 'cost_per_skan_start_trial', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_start_trial_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_start_trial_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_start_trial_unique_rate', //\n key: 'skan_start_trial_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_start_trial_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_start_trial_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_start_trial_each_count', //\n key: 'skan_repetitive_start_trial', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_start_trial_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_start_trial_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_start_trial_each_cost', //\n key: 'cost_per_skan_repetitive_start_trial', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_start_trial_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_start_trial_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'list_skan_event_subscribe', // NOTE: 非对回的active也要保留\n key: 'skan_event_subscribe', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_subscribe',\n children: [\n {\n i18nPath: 'list_skan_event_subscribe_unique_count', //\n key: 'skan_subscribe', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_subscribe_unique_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_subscribe_unique_count',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_subscribe_unique_cost', //\n key: 'cost_per_skan_subscribe', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_subscribe_unique_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_subscribe_unique_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_subscribe_unique_rate', //\n key: 'skan_subscribe_per_install', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_subscribe_unique_rate',\n hoverKey: 'campaign_hover_stat_data.skan_event_subscribe_unique_rate',\n attribute: EVENT_ATTRIBUTE_SKAN.UNIQUE_CONVERSION_RATE.value,\n sortable: true,\n formatter: percentCellFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_subscribe_each_count', //\n key: 'skan_repetitive_subscribe', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_subscribe_each_count',\n hoverKey: 'campaign_hover_stat_data.skan_event_subscribe_each_count',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_EVENTS.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_subscribe_each_cost', //\n key: 'cost_per_skan_repetitive_subscribe', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_subscribe_each_cost',\n hoverKey: 'campaign_hover_stat_data.skan_event_subscribe_each_cost',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CPA.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n {\n i18nPath: 'list_skan_event_subscribe_each_value', //\n key: 'skan_total_repetitive_subscribe_value', // {metric}\n hint: 'campaign_hover_stat_data.skan_event_subscribe_each_value',\n hoverKey: 'campaign_hover_stat_data.skan_event_subscribe_each_value',\n attribute: EVENT_ATTRIBUTE_SKAN.TOTAL_CONVERSION_RATE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 格式化表格数据\n },\n ],\n },\n];\n","\n/**\n * @file In-app Event 应用内事件数据\n */\nimport {\n durationFormatter,\n percentTextFormatter,\n integerValueFormatter,\n moneyFormatterWithUnit,\n} from 'src/const/statistics/formatters';\nimport { EVENT_ATTRIBUTE } from 'src/const/statistics/metrics-emun';\n\n// 当前在 Reporting 页面\nconst isInReportingModule = () => window.location.href.includes('reporting');\n\nexport const EnumInAppEventData = [\n {\n i18nPath: 'common_in_app_event_active', // NOTE: 非对回的active也要保留\n key: 'event_active', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_active',\n onlyForUniq: true, // 只对 Uniq 事件可用\n children: [\n {\n i18nPath: 'common_in_app_event_active_count', // 次数\n key: 'active', // {metric}\n hint: 'campaign_hover_stat_data.active',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_cost_per_active', // 单次消耗\n key: 'active_cost', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.cost_per_active',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'active_rate', // {metric}_per_install\n disabled: true,\n },\n {\n key: 'value_per_active', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'total_active_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_time_attr_active', // 事件父节点\n key: 'time_attr_event_active', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.time_attr_event_active',\n onlyForUniq: true, // 只对 Uniq 事件可用\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_active_count', // 次数\n key: 'time_attr_active', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_active',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n itemIndex: 1,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_active', // 单次消耗\n key: 'time_attr_active_cost', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_active',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n itemIndex: 0,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_active_rate', // {metric}_per_install\n disabled: true,\n },\n {\n key: 'time_attr_value_per_active', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_active_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_active_register', // 事件父节点\n key: 'event_active_register', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_active_register',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_active_register_count', // 次数\n key: 'time_attr_active_register', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_active_register',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_active_register', // 单次消耗\n key: 'time_attr_active_register_cost', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_active_register',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_active_register_per_install', // 频率\n key: 'time_attr_active_register_rate', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_active_register_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_active_register',\n key: 'time_attr_repetitive_active_register',\n hint: 'campaign_hover_stat_data.time_attr_repetitive_active_register',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_active_register',\n key: 'time_attr_cost_per_repetitive_active_register',\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_active_register',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n // textFormatter: moneyUnitFormatter,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_value_per_active_register', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_active_register_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_active_pay', // 事件父节点\n key: 'event_active_pay', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_active_pay',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_active_pay_count', // 次数\n key: 'time_attr_active_pay', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_active_pay',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_active_pay', // 单次消耗\n key: 'time_attr_active_pay_cost', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_active_pay',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_active_pay_per_install', // 频率\n key: 'time_attr_active_pay_rate', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_active_pay_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_active_pay',\n key: 'time_attr_repetitive_active_pay',\n hint: 'campaign_hover_stat_data.time_attr_repetitive_active_pay',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_active_pay',\n key: 'time_attr_cost_per_repetitive_active_pay',\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_active_pay',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_active_pay', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_active_pay', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_active_pay',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_active_pay_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_active_pay_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_active_pay_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_roas', // ROAS\n key: 'time_attr_repetitive_active_pay_roas', // {metric}\n hint: 'campaign_hover_stat_data.roas',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n hide: () => !isInReportingModule(), // 只在 Reporting 披露\n formatter: integerValueFormatter, // 格式化表格数据\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_roas', // 事件父节点\n key: 'event_in_roas', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.roas',\n onlyForEach: true, // 只对 Each 事件可用\n hide: () => isInReportingModule(), // 只在 列表 披露\n children: [\n {\n i18nPath: 'common_in_app_event_roas', // 次数\n key: 'time_attr_repetitive_active_pay_roas', // {metric}\n hint: 'campaign_hover_stat_data.roas',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n disabled: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n key: 'event_active_roas_cost_per_roas', // cost_per_{metric}\n disabled: true,\n },\n {\n key: 'event_active_roas_roas_per_install', // {metric}_per_install\n disabled: true,\n },\n {\n i18nPath: 'common_in_app_event_roas',\n key: 'time_attr_repetitive_active_pay_roas',\n hint: 'campaign_hover_stat_data.roas',\n hoverKey: 'campaign_hover_stat_data.roas',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: durationFormatter,\n },\n {\n key: 'time_attr_cost_per_repetitive_roas',\n disabled: true,\n },\n {\n key: 'time_attr_value_per_repetitive_roas', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_repetitive_roas_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_in_app_cart', // 事件父节点\n key: 'event_in_app_cart', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_in_app_cart',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_in_app_cart_count', // 次数\n key: 'time_attr_in_app_cart', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_in_app_cart',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_in_app_cart', // 单次消耗\n key: 'time_attr_cost_per_in_app_cart', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_in_app_cart',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_in_app_cart_per_install', // 频率\n key: 'time_attr_in_app_cart_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_in_app_cart_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_in_app_cartt',\n key: 'time_attr_repetitive_in_app_cart',\n hint: 'campaign_hover_stat_data.time_attr_repetitive_in_app_cart',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_in_app_cart',\n key: 'time_attr_cost_per_repetitive_in_app_cart',\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_in_app_cart',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_in_app_cart', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_in_app_cart', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_in_app_cart',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_in_app_cart_valuee', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_in_app_cart_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_in_app_cart_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_in_app_order', // 事件父节点\n key: 'event_in_app_order', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_in_app_order',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_in_app_order_count', // 次数\n key: 'time_attr_in_app_order', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_in_app_order',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_in_app_order', // 单次消耗\n key: 'time_attr_cost_per_in_app_order', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_in_app_order',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_in_app_order_per_install', // 频率\n key: 'time_attr_in_app_order_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_in_app_order_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_in_app_order', // 次数\n key: 'time_attr_repetitive_in_app_order', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_in_app_order',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_in_app_order', // 单次消耗\n key: 'time_attr_cost_per_repetitive_in_app_order', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_in_app_order',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_in_app_order', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_in_app_order', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_in_app_order',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_in_app_order_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_in_app_order_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_in_app_order_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_in_app_detail_uv', // 事件父节点\n key: 'event_in_app_detail_uv', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_in_app_detail_uv',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_in_app_detail_uv_count', // 次数\n key: 'time_attr_in_app_detail_uv', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_in_app_detail_uv',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_in_app_detail_uv', // 单次消耗\n key: 'time_attr_cost_per_in_app_detail_uv', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_in_app_detail_uv',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_in_app_detail_uv_per_install', // 频率\n key: 'time_attr_in_app_detail_uv_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_in_app_detail_uv_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_in_app_detail_uv', // 次数\n key: 'time_attr_repetitive_in_app_detail_uv', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_in_app_detail_uv',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_in_app_detail_uv', // 单次消耗\n key: 'time_attr_cost_per_repetitive_in_app_detail_uv', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_in_app_detail_uv',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_in_app_detail_uv', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_in_app_detail_uv', // value_per_{metric}\n hint: 'campaign_hover_stat_data.value_per_repetitive_in_app_detail_uv',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_in_app_detail_uv_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_in_app_detail_uv_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_in_app_detail_uv_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_next_day_open', // 事件父节点\n key: 'event_next_day_open', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_next_day_open',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_next_day_open_count', // 次数\n key: 'time_attr_next_day_open', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_next_day_open',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_next_day_open', // 单次消耗\n key: 'time_attr_cost_per_next_day_open', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_next_day_open',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_next_day_open_per_install', // 频率\n key: 'time_attr_next_day_open_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_next_day_open_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_next_day_open', // 次数\n key: 'time_attr_repetitive_next_day_open', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_next_day_open',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_next_day_open', // 单次消耗\n key: 'time_attr_cost_per_repetitive_next_day_open', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_next_day_open',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_value_per_next_day_open', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_next_day_open_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_add_payment_info', // 事件父节点\n key: 'event_add_payment_info', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_add_payment_info',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_add_payment_info_count', // 次数\n key: 'time_attr_add_payment_info', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_add_payment_info',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_add_payment_info', // 单次消耗\n key: 'time_attr_cost_per_add_payment_info', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_add_payment_info',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_add_payment_info_per_install', // 频率\n key: 'time_attr_add_payment_info_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_add_payment_info_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_add_payment_info', // 次数\n key: 'time_attr_repetitive_add_payment_info', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_add_payment_info',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_add_payment_info', // 单次消耗\n key: 'time_attr_cost_per_repetitive_add_payment_info', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_add_payment_info',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_value_per_add_payment_info', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_add_payment_info_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_add_to_wishlist', // 事件父节点\n key: 'event_add_to_wishlist', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_add_to_wishlist',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_add_to_wishlist_count', // 次数\n key: 'time_attr_add_to_wishlist', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_add_to_wishlist', // 单次消耗\n key: 'time_attr_cost_per_add_to_wishlist', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_add_to_wishlist_per_install', // 频率\n key: 'time_attr_add_to_wishlist_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_add_to_wishlist_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_add_to_wishlist', // 次数\n key: 'time_attr_repetitive_add_to_wishlist', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_add_to_wishlist', // 单次消耗\n key: 'time_attr_cost_per_repetitive_add_to_wishlist', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_add_to_wishlist', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_add_to_wishlist', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_add_to_wishlist_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_add_to_wishlist_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_add_to_wishlist_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_launch_app', // 事件父节点\n key: 'event_launch_app', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_launch_app',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_launch_app_count', // 次数\n key: 'time_attr_launch_app', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_launch_app',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_launch_app', // 单次消耗\n key: 'time_attr_cost_per_launch_app', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_launch_app',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_launch_app_per_install', // 频率\n key: 'time_attr_launch_app_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_launch_app_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_launch_app', // 次数\n key: 'time_attr_repetitive_launch_app', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_launch_app',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_launch_app', // 单次消耗\n key: 'time_attr_cost_per_repetitive_launch_app', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_launch_app',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_value_per_launch_app', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_launch_app_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_complete_tutorial', // 事件父节点\n key: 'event_complete_tutorial', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_complete_tutorial',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_complete_tutorial_count', // 次数\n key: 'time_attr_complete_tutorial', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_complete_tutorial',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_complete_tutorial', // 单次消耗\n key: 'time_attr_cost_per_complete_tutorial', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_complete_tutorial',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_complete_tutorial_per_install', // 频率\n key: 'time_attr_complete_tutorial_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_complete_tutorial_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_complete_tutorial', // 次数\n key: 'time_attr_repetitive_complete_tutorial', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_complete_tutorial',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_complete_tutorial', // 单次消耗\n key: 'time_attr_cost_per_repetitive_complete_tutorial', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_complete_tutorial',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_complete_tutorial', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_complete_tutorial', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_complete_tutorial',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_complete_tutorial_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_complete_tutorial_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_complete_tutorial_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_create_group', // 事件父节点\n key: 'event_create_group', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_create_group',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_create_group_count', // 次数\n key: 'time_attr_create_group', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_create_group',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_create_group', // 单次消耗\n key: 'time_attr_cost_per_create_group', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_create_group',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_create_group_per_install', // 频率\n key: 'time_attr_create_group_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_create_group_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_create_group', // 次数\n key: 'time_attr_repetitive_create_group', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_create_group',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_create_group', // 单次消耗\n key: 'time_attr_cost_per_repetitive_create_group', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_create_group',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_create_groupp', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_create_group', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_create_group',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_create_group_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_create_group_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_create_group_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_join_group', // 事件父节点\n key: 'event_join_group', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_join_group',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_join_group_count', // 次数\n key: 'time_attr_join_group', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_join_group',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_join_group', // 单次消耗\n key: 'time_attr_cost_per_join_group', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_join_group',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_join_group_per_install', // 频率\n key: 'time_attr_join_group_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_join_group_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_join_group', // 次数\n key: 'time_attr_repetitive_join_group', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_join_group',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_join_group', // 单次消耗\n key: 'time_attr_cost_per_repetitive_join_group', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_join_group',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_join_group', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_join_group', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_join_group',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_join_group_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_join_group_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_join_group_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_create_gamerole', // 事件父节点\n key: 'event_create_gamerole', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_create_gamerole',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_create_gamerole_count', // 次数\n key: 'time_attr_create_gamerole', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_create_gamerole',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_create_gamerole', // 单次消耗\n key: 'time_attr_cost_per_create_gamerole', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_create_gamerole',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_create_gamerole_per_install', // 频率\n key: 'time_attr_create_gamerole_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_create_gamerole_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_create_gamerole', // 次数\n key: 'time_attr_repetitive_create_gamerole', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_create_gamerole',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_create_gamerole', // 单次消耗\n key: 'time_attr_cost_per_repetitive_create_gamerole', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_create_gamerole',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_create_gamerole', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_create_gamerole', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_create_gamerole',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_create_gamerole_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_create_gamerole_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_create_gamerole_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_spend_credits', // 事件父节点\n key: 'event_spend_credits', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_spend_credits',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_spend_credits_count', // 次数\n key: 'time_attr_spend_credits', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_spend_credits',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_spend_credits', // 单次消耗\n key: 'time_attr_cost_per_spend_credits', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_spend_credits',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_spend_credits_per_install', // 频率\n key: 'time_attr_spend_credits_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_spend_credits_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_spend_credits', // 次数\n key: 'time_attr_repetitive_spend_credits', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_spend_credits',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_spend_credits', // 单次消耗\n key: 'time_attr_cost_per_repetitive_spend_credits', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_spend_credits',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_spend_credits', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_spend_credits', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_spend_credits',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_spend_credits_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_spend_credits_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_spend_credits_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_update_level', // 事件父节点\n key: 'event_update_level', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_update_level',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_update_level_count', // 次数\n key: 'time_attr_update_level', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_update_level',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_update_level', // 单次消耗\n key: 'time_attr_cost_per_update_level', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_update_level',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_update_level_per_install', // 频率\n key: 'time_attr_update_level_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_update_level_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_eventtime_attr_repetitive_update_level', // 次数\n key: 'time_attr_repetitive_update_level', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_update_level',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_update_level', // 单次消耗\n key: 'time_attr_cost_per_repetitive_update_level', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_update_level',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_update_level', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_update_level', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_update_level',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_update_level_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_update_level_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_update_level_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_unlock_achievement', // 事件父节点\n key: 'event_unlock_achievement', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_unlock_achievement',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_unlock_achievement_count', // 次数\n key: 'time_attr_unlock_achievement', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_unlock_achievement',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_unlock_achievement', // 单次消耗\n key: 'time_attr_cost_per_unlock_achievement', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_unlock_achievement',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_unlock_achievement_per_install', // 频率\n key: 'time_attr_unlock_achievement_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_unlock_achievement_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_unlock_achievement', // 次数\n key: 'time_attr_repetitive_unlock_achievement', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_unlock_achievement',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_unlock_achievement', // 单次消耗\n key: 'time_attr_cost_per_repetitive_unlock_achievement', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_unlock_achievement',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_unlock_achievement', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_unlock_achievement', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_unlock_achievement',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_unlock_achievement_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_unlock_achievement_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_unlock_achievement_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_sales_lead', // 事件父节点\n key: 'event_sales_lead', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_sales_lead',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_sales_lead_count', // 次数\n key: 'time_attr_sales_lead', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_sales_lead',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_sales_lead', // 单次消耗\n key: 'time_attr_cost_per_sales_lead', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_sales_lead',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_sales_lead_per_install', // 频率\n key: 'time_attr_sales_lead_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_sales_lead_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_sales_lead', // 次数\n key: 'time_attr_repetitive_sales_lead', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_sales_lead',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_sales_lead', // 单次消耗\n key: 'time_attr_cost_per_repetitive_sales_lead', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_sales_lead',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_sales_lead', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_sales_lead', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_sales_lead',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_sales_lead_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_sales_lead_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_sales_lead_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_in_app_ad_click', // 事件父节点\n key: 'event_in_app_ad_click', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_in_app_ad_click',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_in_app_ad_click_count', // 次数\n key: 'time_attr_in_app_ad_click', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_in_app_ad_click',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_in_app_ad_click', // 单次消耗\n key: 'time_attr_cost_per_in_app_ad_click', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_in_app_ad_click',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_in_app_ad_click_per_install', // 频率\n key: 'time_attr_in_app_ad_click_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_in_app_ad_click_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_in_app_ad_click', // 次数\n key: 'time_attr_repetitive_in_app_ad_click', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_in_app_ad_click',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_in_app_ad_click', // 单次消耗\n key: 'time_attr_cost_per_repetitive_in_app_ad_click', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_in_app_ad_click',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_in_app_ad_click', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_in_app_ad_click', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_in_app_ad_click',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_in_app_ad_click_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_in_app_ad_click_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_in_app_ad_click_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_in_app_ad_impr', // 事件父节点\n key: 'event_in_app_ad_impr', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_in_app_ad_impr',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_in_app_ad_impr_count', // 次数\n key: 'time_attr_in_app_ad_impr', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_in_app_ad_impr',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_in_app_ad_impr', // 单次消耗\n key: 'time_attr_cost_per_in_app_ad_impr', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_in_app_ad_impr',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_in_app_ad_impr_per_install', // 频率\n key: 'time_attr_in_app_ad_impr_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_in_app_ad_impr_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_in_app_ad_impr', // 次数\n key: 'time_attr_repetitive_in_app_ad_impr', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_in_app_ad_impr',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_in_app_ad_impr', // 单次消耗\n key: 'time_attr_cost_per_repetitive_in_app_ad_impr', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_in_app_ad_impr',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_in_app_ad_impr', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_in_app_ad_impr', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_in_app_ad_impr',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_in_app_ad_impr_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_in_app_ad_impr_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_in_app_ad_impr_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_loan_apply', // 事件父节点\n key: 'event_loan_apply', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_loan_apply',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_loan_apply_count', // 次数\n key: 'time_attr_loan_apply', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_loan_apply',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_loan_apply', // 单次消耗\n key: 'time_attr_cost_per_loan_apply', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_loan_apply',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_loan_apply_per_install', // 频率\n key: 'time_attr_loan_apply_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_loan_apply_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_loan_apply', // 次数\n key: 'time_attr_repetitive_loan_apply', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_loan_apply',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_loan_apply', // 单次消耗\n key: 'time_attr_cost_per_repetitive_loan_apply', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_loan_apply',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_value_per_loan_apply', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_loan_apply_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_loan_credit', // 事件父节点\n key: 'event_loan_credit', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_loan_credit',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_loan_credit_count', // 次数\n key: 'time_attr_loan_credit', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_loan_credit',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_loan_credit', // 单次消耗\n key: 'time_attr_cost_per_loan_credit', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_loan_credit',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_loan_credit_per_install', // 频率\n key: 'time_attr_loan_credit_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_loan_credit_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_loan_credit', // 次数\n key: 'time_attr_repetitive_loan_credit', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_loan_credit',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_loan_credit', // 单次消耗\n key: 'time_attr_cost_per_repetitive_loan_credit', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_loan_credit',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_value_per_loan_credit', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_loan_credit_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_loan_completion', // 事件父节点\n key: 'event_loan_completion', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_loan_completion',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_loan_completion_count', // 次数\n key: 'time_attr_loan_completion', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_loan_completion',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_loan_completion', // 单次消耗\n key: 'time_attr_cost_per_loan_completion', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_loan_completion',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_loan_completion_per_install', // 频率\n key: 'time_attr_loan_completion_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_loan_completion_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_loan_completion', // 次数\n key: 'time_attr_repetitive_loan_completion', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_loan_completion',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_loan_completion', // 单次消耗\n key: 'time_attr_cost_per_repetitive_loan_completion', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_loan_completion',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_value_per_loan_completion', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_loan_completion_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_login', // 事件父节点\n key: 'event_login', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_login',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_login_count', // 次数\n key: 'time_attr_login', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_login',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_login', // 单次消耗\n key: 'time_attr_cost_per_login', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_login',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_login_per_install', // 频率\n key: 'time_attr_login_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_login_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_login', // 次数\n key: 'time_attr_repetitive_login', // {metric}\n hint: 'campaign_hover_stat_data.repetitive_login',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_login', // 单次消耗\n key: 'time_attr_cost_per_repetitive_login', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_login',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_value_per_login', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_login_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_rate', // 事件父节点\n key: 'event_rate', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_rate',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_rate_count', // 次数\n key: 'time_attr_rate', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_rate',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_rate', // 单次消耗\n key: 'time_attr_cost_per_rate', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_rate',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_rate_per_install', // 频率\n key: 'time_attr_rate_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_rate_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_rate', // 次数\n key: 'time_attr_repetitive_rate', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_rate',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_rate', // 单次消耗\n key: 'time_attr_cost_per_repetitive_rate', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_rate',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_rate', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_rate', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_rate',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_rate_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_rate_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_rate_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_search', // 事件父节点\n key: 'event_search', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_search',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_search_count', // 次数\n key: 'time_attr_search', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_search',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_search', // 单次消耗\n key: 'time_attr_cost_per_search', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_search',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_search_per_install', // 频率\n key: 'time_attr_search_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_search_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_search', // 次数\n key: 'time_attr_repetitive_search', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_search',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_search', // 单次消耗\n key: 'time_attr_cost_per_repetitive_search', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_search',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_value_per_search', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_search_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_start_trial', // 事件父节点\n key: 'event_start_trial', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_start_trial',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_start_trial_count', // 次数\n key: 'time_attr_start_trial', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_start_trial',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_start_trial', // 单次消耗\n key: 'time_attr_cost_per_start_trial', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_start_trial',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_start_trial_per_install', // 频率\n key: 'time_attr_start_trial_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_start_trial_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_start_trial', // 次数\n key: 'time_attr_repetitive_start_trial', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_start_trial',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_start_trial', // 单次消耗\n key: 'time_attr_cost_per_repetitive_start_trial', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_start_trial',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n key: 'time_attr_value_per_start_trial', // value_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_total_start_trial_value', // total_{metric}_value\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_in_app_event_subscribe', // 事件父节点\n key: 'event_subscribe', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_subscribe',\n children: [\n {\n i18nPath: 'common_in_app_event_time_attr_subscribe_count', // 次数\n key: 'time_attr_subscribe', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_subscribe',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_subscribe', // 单次消耗\n key: 'time_attr_cost_per_subscribe', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_subscribe',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_subscribe_per_install', // 频率\n key: 'time_attr_subscribe_per_install', // {metric}_per_install\n hint: 'campaign_hover_stat_data.time_attr_subscribe_per_install',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_app_event_time_attr_repetitive_subscribe', // 次数\n key: 'time_attr_repetitive_subscribe', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_repetitive_subscribe',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_app_event_time_attr_cost_per_repetitive_subscribe', // 单次消耗\n key: 'time_attr_cost_per_repetitive_subscribe', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_repetitive_subscribe',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_value_per_repetitive_subscribe', // 每个Event的平均价值\n key: 'time_attr_value_per_repetitive_subscribe', // value_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_value_per_repetitive_subscribe',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_app_event_time_attr_total_repetitive_subscribe_value', // 总付费价值 / 100000\n key: 'time_attr_total_repetitive_subscribe_value', // total_{metric}_value\n hint: 'campaign_hover_stat_data.time_attr_total_repetitive_subscribe_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n];\n","/**\n * @file Live Data\n */\nimport { integerValueFormatter } from 'src/const/statistics/formatters';\nimport { COLUMN_WIDTH } from 'src/const/column-width';\nimport { isShopLiveWhite } from 'src/const/whiteList';\n\n/**\n * 每项对应的字段\n * {\n * key: 对应的后端字段\n * i18nPath: title 文案对应的 key\n * hint:\n * hoverKey: 用于表头hover内容,绝大部分列的类型可以由key计算得来,特殊的列需要写死\n * min-width: 最小宽度\n * sortable: 是否可排序\n * align: 对齐方向\n * header-align: header 对齐方向\n * formatter(Option): 数据格式化函数\n * }\n */\nexport const EnumLiveData = [\n {\n i18nPath: 'common_live_play_count',\n key: 'live_play_count',\n hint: 'campaign_hover_stat_data.live_play_count',\n hoverKey: 'campaign_hover_stat_data.live_play_count',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n hide: () => !isShopLiveWhite(),\n },\n {\n i18nPath: 'common_live_play_uv',\n key: 'live_play_uv',\n hint: 'campaign_hover_stat_data.live_play_uv',\n hoverKey: 'campaign_hover_stat_data.live_play_uv',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n hide: () => !isShopLiveWhite(),\n },\n {\n i18nPath: 'common_live_effective_play_count',\n key: 'live_effective_play_count',\n hint: 'campaign_hover_stat_data.live_effective_play_count',\n hoverKey: 'campaign_hover_stat_data.live_effective_play_count',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n hide: () => !isShopLiveWhite(),\n },\n {\n i18nPath: 'common_live_product_click_count',\n key: 'live_product_click_count',\n hint: 'campaign_hover_stat_data.live_product_click_count',\n hoverKey: 'campaign_hover_stat_data.live_product_click_count',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 单元格数据格式化\n hide: () => !isShopLiveWhite(),\n },\n];\n","import {\n percentTextFormatter,\n percentCellFormatter,\n integerValueFormatter,\n moneyFormatterWithUnit,\n durationFormatter,\n} from 'src/const/statistics/formatters';\nimport { EVENT_ATTRIBUTE } from 'src/const/statistics/metrics-emun';\n\n// Onsite 事件\n// https://bytedance.feishu.cn/docs/doccnhFDgrtonsfWDdRjbFMCs7f#Ihyftm\nexport const EnumOnsiteEventData = [\n {\n i18nPath: 'common_basic_time_attr_onsite_shopping_roas', // 事件名 Complete Payment ROAS (Onsite)\n key: 'event_onsite_shopping_roas', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.time_attr_onsite_shopping_roas',\n children: [\n {\n i18nPath: 'common_time_attr_onsite_shopping_roas', // 次数\n key: 'time_attr_onsite_shopping_roas', // {metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_shopping_roas',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: durationFormatter, // 格式化表格数据\n },\n {\n key: 'time_attr_cost_per_shopping_roas', // cost_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_shopping_roas_per_click', // {metric}_per_click\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_basic_onsite_shopping', // 事件名\n key: 'event_shopping', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_onsite_shopping',\n children: [\n {\n i18nPath: 'common_time_attr_onsite_shopping', // 次数\n key: 'time_attr_onsite_shopping', // {metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_shopping',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_time_attr_cost_per_onsite_shopping', // 单次消耗\n key: 'time_attr_cost_per_onsite_shopping', // cost_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_cost_per_onsite_shopping',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_onsite_shopping_per_click', // 频率\n key: 'time_attr_onsite_shopping_per_click', // {metric}_per_click\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_shopping_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_time_attr_value_per_onsite_shopping', // 每个Event的平均价值\n key: 'time_attr_value_per_onsite_shopping', // total_{metric}_value\n hoverKey: 'campaign_hover_stat_data.time_attr_value_per_onsite_shopping',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_total_onsite_shopping_value', // 总付费价值 / 100000\n key: 'time_attr_total_onsite_shopping_value', // value_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_total_onsite_shopping_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_basic_onsite_initiate_checkout_count', // 事件名 Initiate Checkout (Onsite)\n key: 'event_view', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_onsite_initiate_checkout_count',\n children: [\n {\n i18nPath: 'common_time_attr_onsite_initiate_checkout_count', // 次数\n key: 'time_attr_onsite_initiate_checkout_count', // {metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_initiate_checkout_count',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_time_attr_cost_per_onsite_initiate_checkout_count', // 单次消耗\n key: 'time_attr_cost_per_onsite_initiate_checkout_count', // cost_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_cost_per_onsite_initiate_checkout_count',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_onsite_initiate_checkout_count_per_click', // 频率\n key: 'time_attr_onsite_initiate_checkout_count_per_click', // {metric}_per_click\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_initiate_checkout_count_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_time_attr_value_per_onsite_initiate_checkout_count', // 频率\n key: 'time_attr_value_per_onsite_initiate_checkout_count', // {metric}_per_click\n hoverKey: 'campaign_hover_stat_data.time_attr_value_per_onsite_initiate_checkout_count',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_total_onsite_initiate_checkout_count_value', // 总付费价值 / 100000\n key: 'time_attr_total_onsite_initiate_checkout_count_value', // value_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_total_onsite_initiate_checkout_count_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_basic_onsite_on_web_detail', // 事件名 Product Details Page View (Onsite)\n key: 'event_button', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_onsite_on_web_detail',\n children: [\n {\n i18nPath: 'common_time_attr_onsite_on_web_detail', // 次数\n key: 'time_attr_onsite_on_web_detail', // {metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_on_web_detail',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_time_attr_cost_per_onsite_on_web_detail', // 单次消耗\n key: 'time_attr_cost_per_onsite_on_web_detail', // cost_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_cost_per_onsite_on_web_detail',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_onsite_on_web_detail_per_click', // 频率\n key: 'time_attr_onsite_on_web_detail_per_click', // {metric}_per_click\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_on_web_detail_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_time_attr_value_per_onsite_on_web_detail', // 每个Event的平均价值\n key: 'time_attr_value_per_onsite_on_web_detail', // total_{metric}_value\n hoverKey: 'campaign_hover_stat_data.time_attr_value_per_onsite_on_web_detail',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_total_onsite_on_web_detail_value', // 总付费价值 / 100000\n key: 'time_attr_total_onsite_on_web_detail_value', // value_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_total_onsite_on_web_detail_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_basic_onsite_add_to_wishlist', // 事件名 Add to Wishlist (Onsite)\n key: 'event_consult', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_onsite_add_to_wishlist',\n children: [\n {\n i18nPath: 'common_time_attr_onsite_add_to_wishlist', // 次数\n key: 'time_attr_onsite_add_to_wishlist', // {metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_time_attr_cost_per_onsite_add_to_wishlist', // 单次消耗\n key: 'time_attr_cost_per_onsite_add_to_wishlist', // cost_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_cost_per_onsite_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_onsite_add_to_wishlist_per_click', // 频率\n key: 'time_attr_onsite_add_to_wishlist_per_click', // {metric}_per_click\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_add_to_wishlist_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_time_attr_value_per_onsite_add_to_wishlist', // 每个Event的平均价值\n key: 'time_attr_value_per_onsite_add_to_wishlist', // total_{metric}_value\n hoverKey: 'campaign_hover_stat_data.time_attr_value_per_onsite_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_total_onsite_add_to_wishlist_value', // 总付费价值 / 100000\n key: 'time_attr_total_onsite_add_to_wishlist_value', // value_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_total_onsite_add_to_wishlist_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_basic_onsite_add_billing', // 事件名 Add Billing (Onsite)\n key: 'event_on_web_register', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_onsite_add_billing',\n children: [\n {\n i18nPath: 'common_time_attr_onsite_add_billing', // 次数\n key: 'time_attr_onsite_add_billing', // {metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_add_billing',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_time_attr_cost_per_onsite_add_billing', // 单次消耗\n key: 'time_attr_cost_per_onsite_add_billing', // cost_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_cost_per_onsite_add_billing',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_onsite_add_billing_per_click', // 频率\n key: 'time_attr_onsite_add_billing_per_click', // {metric}_per_click\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_add_billing_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_time_attr_value_per_onsite_add_billing', // 每个Event的平均价值\n key: 'time_attr_value_per_onsite_add_billing', // total_{metric}_value\n hoverKey: 'campaign_hover_stat_data.time_attr_value_per_onsite_add_billing',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_total_onsite_add_billing_value', // 总付费价值 / 100000\n key: 'time_attr_total_onsite_add_billing_value', // value_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_total_onsite_add_billing_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_basic_onsite_on_web_cart', // 事件名 Add to Cart (Onsite)\n key: 'event_on_web_detail', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_onsite_on_web_cart',\n children: [\n {\n i18nPath: 'common_time_attr_onsite_on_web_cart', // 次数\n key: 'time_attr_onsite_on_web_cart', // {metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_on_web_cart',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_time_attr_cost_per_onsite_on_web_cart', // 单次消耗\n key: 'time_attr_cost_per_onsite_on_web_cart', // cost_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_cost_per_onsite_on_web_cart',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_onsite_on_web_cart_per_click', // 频率\n key: 'time_attr_onsite_on_web_cart_per_click', // {metric}_per_click\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_on_web_cart_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_time_attr_value_per_onsite_on_web_cart', // 每个Event的平均价值\n key: 'time_attr_value_per_onsite_on_web_cart', // total_{metric}_value\n hoverKey: 'campaign_hover_stat_data.time_attr_value_per_onsite_on_web_cart',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_total_onsite_on_web_cart_value', // 总付费价值 / 100000\n key: 'time_attr_total_onsite_on_web_cart_value', // value_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_total_onsite_on_web_cart_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_basic_onsite_form', // 事件名 Form Submission (Onsite)\n key: 'event_on_web_cart', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_onsite_form',\n children: [\n {\n i18nPath: 'common_time_attr_onsite_form', // 次数\n key: 'time_attr_onsite_form', // {metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_form',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_time_attr_cost_per_onsite_form', // 单次消耗\n key: 'time_attr_cost_per_onsite_form', // cost_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_cost_per_onsite_form',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_onsite_form_per_click', // 频率\n key: 'time_attr_onsite_form_per_click', // {metric}_per_click\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_form_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_time_attr_value_per_onsite_form', // 每个Event的平均价值\n key: 'time_attr_value_per_onsite_form', // total_{metric}_value\n hoverKey: 'campaign_hover_stat_data.time_attr_value_per_onsite_form',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_total_onsite_form_value', // 总付费价值 / 100000\n key: 'time_attr_total_onsite_form_value', // value_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_total_onsite_form_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_basic_onsite_download_start', // 事件名 App Store Click (Onsite)\n key: 'event_on_web_order', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_onsite_download_start',\n children: [\n {\n i18nPath: 'common_time_attr_onsite_download_start', // 次数\n key: 'time_attr_onsite_download_start', // {metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_download_start',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_time_attr_cost_per_onsite_download_start', // 单次消耗\n key: 'time_attr_cost_per_onsite_download_start', // cost_per_{metric}\n hoverKey: 'campaign_hover_stat_data.time_attr_cost_per_onsite_download_start',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_time_attr_onsite_download_start_per_click', // 频率\n key: 'time_attr_onsite_download_start_per_click', // {metric}_per_click\n hoverKey: 'campaign_hover_stat_data.time_attr_onsite_download_start_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n ],\n },\n {\n i18nPath: 'common_basic_ix_page_view_count', // 事件名 Page Views (Onsite)\n key: 'event_ix_page_view', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_ix_page_view_count',\n // hoverKey: 'campaign_hover_stat_data.basic_ix_page_view_count',\n children: [\n {\n i18nPath: 'common_ix_page_view_count', // 次数\n key: 'ix_page_view_count', // {metric}\n hint: 'campaign_hover_stat_data.ix_page_view_count',\n // hoverKey: 'campaign_hover_stat_data.initiate_checkout',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_cost_per_ix_page_view_count', // 单次消耗\n key: 'cost_per_ix_page_view_count', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.cost_per_ix_page_view_count',\n // hoverKey: 'campaign_hover_stat_data.cost_per_initiate_checkout',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_ix_page_view_count_per_click', // 开始下单率\n key: 'ix_page_view_count_per_click',\n hint: 'campaign_hover_stat_data.ix_page_view_count_per_click',\n // hoverKey: 'campaign_hover_stat_data.initiate_checkout_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n ],\n },\n {\n i18nPath: 'common_basic_ix_button_click_count', // 事件名 Call-to-Action Button Clicks (Onsite)\n key: 'event_ix_button_click', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_ix_button_click_count',\n // hoverKey: 'campaign_hover_stat_data.event_add_billing',\n children: [\n {\n i18nPath: 'common_ix_button_click_count', // 次数\n key: 'ix_button_click_count', // {metric}\n hint: 'campaign_hover_stat_data.ix_button_click_count',\n // hoverKey: 'campaign_hover_stat_data.add_billing',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_cost_per_ix_button_click_count', // 单次消耗 支付信息成本\n key: 'cost_per_ix_button_click_count', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.cost_per_ix_button_click_count',\n // hoverKey: 'campaign_hover_stat_data.cost_per_add_billing',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_ix_button_click_count_per_click', // 支付信息率\n key: 'ix_button_click_count_per_click',\n hint: 'campaign_hover_stat_data.ix_button_click_count_per_click',\n // hoverKey: 'campaign_hover_stat_data.add_billing_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n ],\n },\n {\n i18nPath: 'common_basic_ix_product_click_count', // 事件名 Product Clicks (Onsite)\n key: 'event_ix_product_click', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.basic_ix_product_click_count',\n // hoverKey: 'campaign_hover_stat_data.event_search',\n children: [\n {\n i18nPath: 'common_ix_product_click_count', // 次数\n key: 'ix_product_click_count', // {metric}\n hint: 'campaign_hover_stat_data.ix_product_click_count',\n // hoverKey: 'campaign_hover_stat_data.search',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_cost_per_ix_product_click_count', // 单次搜索成本\n key: 'cost_per_ix_product_click_count', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.cost_per_ix_product_click_count',\n // hoverKey: 'campaign_hover_stat_data.cost_per_search',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_ix_product_click_count_per_click', // 搜索率\n key: 'ix_product_click_count_per_click',\n hint: 'campaign_hover_stat_data.ix_product_click_count_per_click',\n // hoverKey: 'campaign_hover_stat_data.search_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n ],\n },\n];\n","/**\n * @file Performance Data\n */\nimport {\n noneFormatter,\n percentCellFormatter,\n integerValueFormatter,\n moneyFormatterWithUnit,\n} from 'src/const/statistics/formatters';\nimport { isGrossImpressionMetricsWhite } from 'src/const/whiteList';\nimport { COLUMN_WIDTH } from 'src/const/column-width';\n\n/**\n * 每项对应的字段\n * {\n * key: 对应的后端字段\n * i18nPath: title 文案对应的 key\n * hint:\n * hoverKey: 用于表头hover内容,绝大部分列的类型可以由key计算得来,特殊的列需要写死\n * min-width: 最小宽度\n * sortable: 是否可排序\n * currency: ??存在的意义是什么。发现没用先删掉了\n * align: 对齐方向\n * header-align: header 对齐方向\n * formatter(Option): 数据格式化函数\n * }\n */\nexport const EnumCommonData = [\n {\n i18nPath: 'common_total_cost', // 总消耗\n key: 'stat_cost',\n hint: 'campaign_hover_stat_data.stat_cost',\n hoverKey: 'report_info_hover_data_report_dimensions_index_stat_cost',\n 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: moneyFormatterWithUnit, // 格式化具体展示数据,千分位分隔+币种精度\n },\n {\n i18nPath: 'common_CPC', // cpc\n key: 'cpc',\n hint: 'campaign_hover_stat_data.click_cost',\n hoverKey: 'report_info_hover_common_CPC',\n 'min-width': COLUMN_WIDTH.M,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_CPM', // cpm\n key: 'cpm',\n hint: 'campaign_hover_stat_data.cpm',\n hoverKey: 'report_info_hover_common_cpm',\n 'min-width': COLUMN_WIDTH.M,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'list_total_impression', // 展示数\n hint: 'campaign_hover_stat_data.show_cnt',\n key: 'show_cnt',\n 'min-width': COLUMN_WIDTH.M,\n sortable: true,\n formatter: integerValueFormatter, // 单元格数据格式化\n },\n {\n i18nPath: 'common_gross_show_cnt', // 总展示数\n hint: 'campaign_hover_stat_data.gross_show_cnt',\n hoverKey: 'campaign_hover_stat_data.gross_show_cnt',\n key: 'gross_show_count',\n 'min-width': COLUMN_WIDTH.M,\n sortable: true,\n hide: () => !isGrossImpressionMetricsWhite(), // R&F 白名单可见\n formatter: integerValueFormatter, // 单元格数据格式化\n },\n {\n i18nPath: 'list_total_click', // 点击数\n hint: 'campaign_hover_stat_data.click_cnt',\n key: 'click_cnt',\n 'min-width': COLUMN_WIDTH.S,\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'common_CTR', // 点击率\n hint: 'campaign_hover_stat_data.ctr',\n key: 'ctr',\n 'min-width': COLUMN_WIDTH.S,\n sortable: true,\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'list_video_show_uv', // 总覆盖UV\n hint: 'campaign_hover_stat_data.show_uv',\n disabledText: 'campaign_hover_stat_data.show_uv.disabled',\n key: 'show_uv',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'list_video_cost_per_show_uv_mille', // 覆盖千人成本\n hint: 'campaign_hover_stat_data.cost_per_show_uv_mille',\n disabledText: 'campaign_hover_stat_data.cost_per_show_uv_mille.disabled',\n key: 'cost_per_show_uv_mille',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_frequency', // frequency\n hint: 'campaign_hover_stat_data.frequency',\n key: 'frequency',\n sortable: true,\n formatter: noneFormatter,\n },\n];\n","/**\n * @file basic skan data\n */\nimport {\n moneyFormatterWithUnit,\n percentCellFormatter,\n integerValueFormatter,\n} from 'src/const/statistics/formatters';\nimport store from 'src/store';\n\n/**\n * 每项对应的字段\n * {\n * key: 对应的后端字段\n * i18nPath: title 文案对应的 key\n * hint:\n * hoverKey: 用于表头hover内容,绝大部分列的类型可以由key计算得来,特殊的列需要写死\n * min-width: 最小宽度\n * sortable: 是否可排序\n * currency: ??存在的意义是什么。发现没用先删掉了\n * align: 对齐方向\n * header-align: header 对齐方向\n * formatter(Option): 数据格式化函数\n * }\n */\nexport const EnumBasicSkanData = [\n {\n i18nPath: 'list_skan_result', // 成效 (SKAN)\n key: 'skan_effect_cnt',\n hint: 'campaign_hover_stat_data.skan_result',\n hoverKey: 'campaign_hover_stat_data.skan_result',\n // 'min-width': COLUMN_WIDTH.L,\n sortable: true,\n align: 'right',\n 'header-align': 'right',\n formatter: integerValueFormatter, // 格式化具体展示数据,千分位分隔+币种精度\n hide: () => !store.getters['dashboard/isDedicatedCampaignExist'],\n },\n {\n i18nPath: 'list_skan_per_cost', // 单次成效费用 (SKAN)\n hint: 'campaign_hover_stat_data.skan_per_cost',\n hoverKey: 'campaign_hover_stat_data.skan_per_cost',\n key: 'skan_effect_cost',\n // 'min-width': COLUMN_WIDTH.M,\n sortable: true,\n formatter: moneyFormatterWithUnit, // 单元格数据格式化\n hide: () => !store.getters['dashboard/isDedicatedCampaignExist'],\n },\n {\n i18nPath: 'list_skan_result_rate', // 成效率 (%) (SKAN)\n hint: 'campaign_hover_stat_data.skan_result_rate',\n hoverKey: 'campaign_hover_stat_data.skan_result_rate',\n key: 'skan_effect_rate',\n // 'min-width': COLUMN_WIDTH.S,\n sortable: true,\n formatter: percentCellFormatter,\n hide: () => !store.getters['dashboard/isDedicatedCampaignExist'],\n },\n {\n i18nPath: 'list_skan_conversion', // 转化数 (SKAN)\n // disabledText: 'campaign_hover_stat_data.cost_per_show_uv_mille.disabled',\n key: 'skan_convert_cnt',\n hint: 'campaign_hover_stat_data.skan_conversion',\n hoverKey: 'campaign_hover_stat_data.skan_conversion',\n sortable: true,\n formatter: integerValueFormatter,\n hide: () => !store.getters['dashboard/isDedicatedCampaignExist'],\n },\n {\n i18nPath: 'list_skan_cpa', // 转化成本 (SKAN)\n hint: 'campaign_hover_stat_data.skan_cpa',\n hoverKey: 'campaign_hover_stat_data.skan_cpa',\n key: 'skan_conversion_cost',\n sortable: true,\n formatter: moneyFormatterWithUnit,\n hide: () => !store.getters['dashboard/isDedicatedCampaignExist'],\n },\n {\n i18nPath: 'list_skan_cvr', // 成效率 (%) (SKAN)\n hint: 'campaign_hover_stat_data.skan_cvr',\n hoverKey: 'campaign_hover_stat_data.skan_cvr',\n key: 'skan_conversion_rate',\n // 'min-width': COLUMN_WIDTH.S,\n sortable: true,\n formatter: percentCellFormatter,\n hide: () => !store.getters['dashboard/isDedicatedCampaignExist'],\n },\n];\n","/**\n * @file Video Play Data\n */\nimport {\n durationFormatter,\n integerValueFormatter,\n} from 'src/const/statistics/formatters';\nimport { isAdmin } from 'src/utils/authUtil';\nimport { isMRCWhite } from 'src/const/whiteList';\n\n// 视频播放数据\nexport const EnumVideoPlayData = [\n {\n key: 'total_play',\n i18nPath: 'list_video_play_count', // 播放次数\n hint: 'campaign_hover_stat_data.total_play',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n key: 'play_duration_2s',\n i18nPath: 'list_video_play_duration_2s', // 播放2s\n hint: 'campaign_hover_stat_data.play_duration_2s',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'module_video_play_mrc_play_count', // 连续播放2s次数\n hint: 'campaign_hover_stat_data.mrc_play_count',\n key: 'mrc_play_count',\n hide: () => !isMRCWhite(), // 可见 mrc 指标的白名单\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n key: 'play_duration_6s',\n i18nPath: 'list_video_play_duration_6s', // 播放6s\n hint: 'campaign_hover_stat_data.play_duration_6s',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n key: 'play_over',\n i18nPath: 'module_video_play_complete', // 播放100%\n hint: 'module_video_play_complete_hint',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n key: 'play_third_quartile',\n i18nPath: 'module_video_play_third_quartile', // 播放75%\n hint: 'module_video_play_third_quartile_hint',\n hoverKey: 'module_video_play_third_quartile_hint',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n key: 'play_midpoint',\n i18nPath: 'module_video_play_midpoint', // 播放50%\n hint: 'module_video_play_midpoint_hint',\n hoverKey: 'module_video_play_midpoint_hint',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n key: 'play_first_quartile',\n i18nPath: 'module_video_play_first_quartile', // 播放25%\n hint: 'module_video_play_first_quartile_hint',\n hoverKey: 'module_video_play_first_quartile_hint',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n key: 'average_video_play',\n i18nPath: 'list_video_average_play_duration', // 平均视频播放时长\n hint: 'campaign_hover_stat_data.average_video_play',\n 'min-width': 200,\n sortable: true,\n formatter: durationFormatter,\n },\n {\n key: 'average_video_play_per_user',\n i18nPath: 'list_video_average_video_play_per_user', // 平均每人播放时长\n hint: 'campaign_hover_stat_data.average_video_play_per_user',\n 'min-width': 200,\n sortable: true,\n formatter: durationFormatter,\n },\n];\n\nexport const EnumUVData = [\n {\n i18nPath: 'list_video_total_play_uv', // 播放人数\n hint: 'campaign_hover_stat_data.total_play_uv',\n key: 'total_play_uv',\n sortable: true,\n formatter: integerValueFormatter,\n },\n {\n i18nPath: 'list_video_play_duration_6s_uv', // 播放6s UV\n hint: 'campaign_hover_stat_data.play_duration_6s_uv',\n key: 'play_duration_6s_uv',\n sortable: true,\n formatter: integerValueFormatter,\n hide: () => !isAdmin(),\n },\n {\n i18nPath: 'list_video_play_over_uv', // 播放完成UV\n hint: 'campaign_hover_stat_data.play_over_uv',\n key: 'play_over_uv',\n sortable: true,\n formatter: integerValueFormatter,\n },\n];\n","/**\n * @file Wev Event 网页事件数据\n */\nimport {\n percentTextFormatter,\n percentCellFormatter,\n integerValueFormatter,\n moneyFormatterWithUnit,\n durationFormatter,\n} from 'src/const/statistics/formatters';\nimport { EVENT_ATTRIBUTE } from 'src/const/statistics/metrics-emun';\n\n// 页面事件数据\nexport const EnumPageEventData = [\n {\n i18nPath: 'common_web_event_shopping_roas', // 事件名\n key: 'event_shopping_roas', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_shopping_roas',\n children: [\n {\n i18nPath: 'common_web_event_shopping_roas_count', // 次数\n key: 'time_attr_shopping_roas', // {metric}\n hint: 'campaign_hover_stat_data.shopping_roas',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: durationFormatter, // 格式化表格数据\n },\n {\n key: 'time_attr_cost_per_shopping_roas', // cost_per_{metric}\n disabled: true,\n },\n {\n key: 'time_attr_shopping_roas_per_click', // {metric}_per_click\n disabled: true,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_shopping', // 事件名\n key: 'event_shopping', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_shopping',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_shopping_count', // 次数\n key: 'time_attr_shopping', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_shopping',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_shopping', // 单次消耗\n key: 'time_attr_cost_per_shopping', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_shopping',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_shopping_per_click', // 频率\n key: 'time_attr_shopping_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_shopping_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_shopping', // 每个Event的平均价值\n key: 'time_attr_value_per_shopping', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_shopping',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_shopping_value', // 总付费价值 / 100000\n key: 'time_attr_total_shopping_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_shopping_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_view', // 事件名\n key: 'event_view', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_view',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_view_count', // 次数\n key: 'time_attr_view', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_view',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_view', // 单次消耗\n key: 'time_attr_cost_per_view', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_view',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_view_per_click', // 频率\n key: 'time_attr_view_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_view_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter, // 格式化表格头\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_view', // 每个Event的平均价值\n key: 'time_attr_value_per_view', // {metric}_per_click\n hint: 'campaign_hover_stat_data.value_per_view',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_view_value', // 总付费价值 / 100000\n key: 'time_attr_total_view_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_view_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_button', // 事件名\n key: 'event_button', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_button',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_button_count', // 次数\n key: 'time_attr_button', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_button',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_button', // 单次消耗\n key: 'time_attr_cost_per_button', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_button',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_button_per_click', // 频率\n key: 'time_attr_button_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_button_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_button', // 每个Event的平均价值\n key: 'time_attr_value_per_button', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_button',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_button_value', // 总付费价值 / 100000\n key: 'time_attr_total_button_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_button_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_consult', // 事件名\n key: 'event_consult', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_consult',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_consult_count', // 次数\n key: 'time_attr_consult', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_consult',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_consult', // 单次消耗\n key: 'time_attr_cost_per_consult', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_consult',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_consult_per_click', // 频率\n key: 'time_attr_consult_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_consult_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_consult', // 每个Event的平均价值\n key: 'time_attr_value_per_consult', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_consult',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_consult_value', // 总付费价值 / 100000\n key: 'time_attr_total_consult_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_consult_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_on_web_register', // 事件名\n key: 'event_on_web_register', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_on_web_register',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_on_web_register_count', // 次数\n key: 'time_attr_on_web_register', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_on_web_register',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_on_web_register', // 单次消耗\n key: 'time_attr_cost_per_on_web_register', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_on_web_register',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_on_web_register_per_click', // 频率\n key: 'time_attr_on_web_register_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_on_web_register_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_on_web_register', // 每个Event的平均价值\n key: 'time_attr_value_per_on_web_register', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_on_web_register',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_on_web_register_value', // 总付费价值 / 100000\n key: 'time_attr_total_on_web_register_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_on_web_register_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_on_web_detail', // 事件名\n key: 'event_on_web_detail', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_on_web_detail',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_on_web_detail_count', // 次数\n key: 'time_attr_on_web_detail', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_on_web_detail',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_on_web_detail', // 单次消耗\n key: 'time_attr_cost_per_on_web_detail', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_on_web_detail',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_on_web_detail_per_click', // 频率\n key: 'time_attr_on_web_detail_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_on_web_detail_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_on_web_detail', // 每个Event的平均价值\n key: 'time_attr_value_per_on_web_detail', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_on_web_detail',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_on_web_detail_value', // 总付费价值 / 100000\n key: 'time_attr_total_on_web_detail_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_on_web_detail_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_on_web_cart', // 事件名\n key: 'event_on_web_cart', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_on_web_cart',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_on_web_cart_count', // 次数\n key: 'time_attr_on_web_cart', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_on_web_cart',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_on_web_cart', // 单次消耗\n key: 'time_attr_cost_per_on_web_cart', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_on_web_cart',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_on_web_cart_per_click', // 频率\n key: 'time_attr_on_web_cart_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_on_web_cart_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_on_web_cart', // 每个Event的平均价值\n key: 'time_attr_value_per_on_web_cart', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_on_web_cart',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_web_cart_value', // 总付费价值 / 100000\n key: 'time_attr_total_on_web_cart_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_on_web_cart_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_on_web_order', // 事件名\n key: 'event_on_web_order', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_on_web_order',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_on_web_order_count', // 次数\n key: 'time_attr_on_web_order', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_on_web_order',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_on_web_order', // 单次消耗\n key: 'time_attr_cost_per_on_web_order', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_on_web_order',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_on_web_order_per_click', // 频率\n key: 'time_attr_on_web_order_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_on_web_order_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_on_web_order', // 每个Event的平均价值\n key: 'time_attr_value_per_on_web_order', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_on_web_order',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_button_on_web_order', // 总付费价值 / 100000\n key: 'time_attr_total_on_web_order_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_on_web_order_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n // Initiate Checkout\n {\n i18nPath: 'common_web_initiate_checkout', // 事件名\n key: 'event_initiate_checkout', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_initiate_checkout',\n hoverKey: 'campaign_hover_stat_data.event_initiate_checkout',\n children: [\n {\n i18nPath: 'module_initiate_checkout', // 次数\n key: 'time_attr_initiate_checkout_count', // {metric}\n hint: 'campaign_hover_stat_data.initiate_checkout',\n hoverKey: 'campaign_hover_stat_data.initiate_checkout',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'module_cost_per_initiate_checkout', // 单次消耗\n key: 'time_attr_cost_per_initiate_checkout_count', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.cost_per_initiate_checkout',\n hoverKey: 'campaign_hover_stat_data.cost_per_initiate_checkout',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'module_initiate_checkout_per_click', // 开始下单率\n key: 'time_attr_initiate_checkout_count_per_click',\n hint: 'campaign_hover_stat_data.initiate_checkout_per_click',\n hoverKey: 'campaign_hover_stat_data.initiate_checkout_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'module_value_per_initiate_checkout', // 每个Event的平均价值\n key: 'time_attr_value_per_initiate_checkout_count',\n hint: 'campaign_hover_stat_data.value_per_initiate_checkout',\n hoverKey: 'campaign_hover_stat_data.value_per_initiate_checkout',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'module_total_initiate_checkout_value', // 总付费价值 / 100000\n key: 'time_attr_total_initiate_checkout_value',\n hint: 'campaign_hover_stat_data.total_initiate_checkout_value',\n hoverKey: 'campaign_hover_stat_data.total_initiate_checkout_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n // Add Billing\n {\n i18nPath: 'common_web_event_add_billing', // 事件名\n key: 'event_add_billing', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_add_billing',\n hoverKey: 'campaign_hover_stat_data.event_add_billing',\n children: [\n {\n i18nPath: 'module_add_billing', // 次数\n key: 'time_attr_add_billing_count', // {metric}\n hint: 'campaign_hover_stat_data.add_billing',\n hoverKey: 'campaign_hover_stat_data.add_billing',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'module_cost_per_add_billing', // 单次消耗 支付信息成本\n key: 'time_attr_cost_per_add_billing_count', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.cost_per_add_billing',\n hoverKey: 'campaign_hover_stat_data.cost_per_add_billing',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'module_add_billing_per_click', // 支付信息率\n key: 'time_attr_add_billing_count_per_click',\n hint: 'campaign_hover_stat_data.add_billing_per_click',\n hoverKey: 'campaign_hover_stat_data.add_billing_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'module_value_per_add_billing', // 单次支付信息价值\n key: 'time_attr_value_per_add_billing_count',\n hint: 'campaign_hover_stat_data.value_per_add_billing',\n hoverKey: 'campaign_hover_stat_data.value_per_add_billing',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'module_total_add_billing_value', // 添加支付信息总价值\n key: 'time_attr_total_add_billing_value',\n hint: 'campaign_hover_stat_data.total_add_billing_value',\n hoverKey: 'campaign_hover_stat_data.total_add_billing_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n // Search\n {\n i18nPath: 'common_web_event_search', // 事件名\n key: 'event_search', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_search',\n hoverKey: 'campaign_hover_stat_data.event_search',\n children: [\n {\n i18nPath: 'module_search', // 次数\n key: 'time_attr_search_count', // {metric}\n hint: 'campaign_hover_stat_data.search',\n hoverKey: 'campaign_hover_stat_data.search',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'module_cost_per_search', // 单次搜索成本\n key: 'time_attr_cost_per_search_count', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.cost_per_search',\n hoverKey: 'campaign_hover_stat_data.cost_per_search',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'module_search_per_click', // 搜索率\n key: 'time_attr_search_count_per_click',\n hint: 'campaign_hover_stat_data.search_per_click',\n hoverKey: 'campaign_hover_stat_data.search_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'module_value_per_search', // 单次搜索价值平均价值\n key: 'time_attr_value_per_search_count',\n hint: 'campaign_hover_stat_data.value_per_search',\n hoverKey: 'campaign_hover_stat_data.value_per_search',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'module_total_search_value', // event的总价值\n key: 'time_attr_total_search_value',\n hint: 'campaign_hover_stat_data.total_search_value',\n hoverKey: 'campaign_hover_stat_data.total_search_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_form_detail', // 事件名\n key: 'event_form_detail', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_form_detail',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_form_detail_count', // 次数\n key: 'time_attr_form_detail', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_form_detail',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_form_detail', // 单次消耗\n key: 'time_attr_cost_per_form_detail', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_form_detail',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_form_detail_per_click', // 频率\n key: 'time_attr_form_detail_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_form_detail_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_form_detail', // 每个Event的平均价值\n key: 'time_attr_value_per_form_detail', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_form_detail',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_form_detail_value', // 总付费价值 / 100000\n key: 'time_attr_total_form_detail_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_form_detail_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_form_button', // 事件名\n key: 'event_form_button', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_form_button',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_form_button_count', // 次数\n key: 'time_attr_form_button', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_form_button',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_form_button', // 单次消耗\n key: 'time_attr_cost_per_form_button', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_form_button',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_form_button_per_click', // 频率\n key: 'time_attr_form_button_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_form_button_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_form_button', // 每个Event的平均价值\n key: 'time_attr_value_per_form_button', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_form_button',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_form_button_value', // 总付费价值 / 100000\n key: 'time_attr_total_form_button_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_form_button_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_form', // 事件名\n key: 'event_form', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_form',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_form_count', // 次数\n key: 'time_attr_form', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_form',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_form', // 单次消耗\n key: 'time_attr_cost_per_form', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_form',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_form_per_click', // 频率\n key: 'time_attr_form_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_form_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_form', // 每个Event的平均价值\n key: 'time_attr_value_per_form', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_form',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_form_value', // 总付费价值 / 100000\n key: 'time_attr_total_form_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_form_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_phone_detail', // 事件名\n key: 'event_phone_detail', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_phone_detail',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_phone_detail_count', // 次数\n key: 'time_attr_phone_detail', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_phone_detail',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_phone_detail', // 单次消耗\n key: 'time_attr_cost_per_phone_detail', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_phone_detail',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_phone_detail_per_click', // 频率\n key: 'time_attr_phone_detail_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_phone_detail_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_phone_detail', // 每个Event的平均价值\n key: 'time_attr_value_per_phone_detail', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_phone_detail',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_phone_detail_value', // 总付费价值 / 100000\n key: 'time_attr_total_phone_detail_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_phone_detail_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_phone_button', // 事件名\n key: 'event_phone_button', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_phone_button',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_phone_button_count', // 次数\n key: 'time_attr_phone_button', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_phone_button',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_phone_button', // 单次消耗\n key: 'time_attr_cost_per_phone_button', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_phone_button',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_phone_button_per_click', // 频率\n key: 'time_attr_phone_button_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_phone_button_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_phone_button', // 每个Event的平均价值\n key: 'time_attr_value_per_phone_button', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_phone_button',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_phone_button_value', // 总付费价值 / 100000\n key: 'time_attr_total_phone_button_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_phone_button_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_phone', // 事件名\n key: 'event_phone', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_phone',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_phone_count', // 次数\n key: 'time_attr_phone', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_phone',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_phone', // 单次消耗\n key: 'time_attr_cost_per_phone', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_phone',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_phone_per_click', // 频率\n key: 'time_attr_phone_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_phone_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_phone', // 每个Event的平均价值\n key: 'time_attr_value_per_phone', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_phone',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_phone_value', // 总付费价值 / 100000\n key: 'time_attr_total_phone_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_phone_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_download_detail', // 事件名\n key: 'event_download_detail', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_download_detail',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_download_detail_count', // 次数\n key: 'time_attr_download_detail', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_download_detail',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_download_detail', // 单次消耗\n key: 'time_attr_cost_per_download_detail', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_download_detail',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_download_detail_per_click', // 频率\n key: 'time_attr_download_detail_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_download_detail_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_download_detail', // 每个Event的平均价值\n key: 'time_attr_value_per_download_detail', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_download_detail',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_download_detail_value', // 总付费价值 / 100000\n key: 'time_attr_total_download_detail_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_download_detail_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_download_button', // 事件名\n key: 'event_download_button', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_download_button',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_download_button_count', // 次数\n key: 'time_attr_download_button', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_download_button',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_download_button', // 单次消耗\n key: 'time_attr_cost_per_download_button', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_download_button',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_download_button_per_click', // 频率\n key: 'time_attr_download_button_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_download_button_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_download_button', // 每个Event的平均价值\n key: 'time_attr_value_per_download_button', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_download_button',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_download_button_value', // 总付费价值 / 100000\n key: 'time_attr_total_download_button_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_download_button_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_web_event_download_start', // 事件名\n key: 'event_download_start', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.event_download_start',\n children: [\n {\n i18nPath: 'common_web_event_time_attr_download_start_count', // 次数\n key: 'time_attr_download_start', // {metric}\n hint: 'campaign_hover_stat_data.time_attr_download_start',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_web_event_time_attr_cost_per_download_start', // 单次消耗\n key: 'time_attr_cost_per_download_start', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.time_attr_cost_per_download_start',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_web_event_time_attr_download_start_per_click', // 频率\n key: 'time_attr_download_start_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.time_attr_download_start_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_value_per_download_start', // 每个Event的平均价值\n key: 'time_attr_value_per_download_start', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_download_start',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_time_attr_total_download_start_value', // 总付费价值 / 100000\n key: 'time_attr_total_download_start_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_download_start_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_on_web_add_to_wishlist', // 事件父节点\n key: 'event_add_to_wishlist', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.on_web_add_to_wishlist_title',\n children: [\n {\n i18nPath: 'common_in_web_event_on_web_add_to_wishlist', // 次数\n key: 'time_attr_on_web_add_to_wishlist', // {metric}\n hint: 'campaign_hover_stat_data.on_web_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_web_event_cost_per_on_web_add_to_wishlist', // 单次消耗\n key: 'time_attr_cost_per_on_web_add_to_wishlist', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.cost_per_on_web_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_on_web_add_to_wishlist_per_click', // 频率\n key: 'time_attr_on_web_add_to_wishlist_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.on_web_add_to_wishlist_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_value_per_on_web_add_to_wishlist', // 每个Event的平均价值\n key: 'time_attr_value_per_on_web_add_to_wishlist', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_on_web_add_to_wishlist',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_total_on_web_add_to_wishlist_value', // 总付费价值 / 100000\n key: 'time_attr_total_on_web_add_to_wishlist_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_on_web_add_to_wishlist_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n {\n i18nPath: 'common_on_web_subscribe', // 事件父节点\n key: 'event_subscribe', // event_{event} 只是标识作用,不会传到后端\n hint: 'campaign_hover_stat_data.on_web_subscribe_title',\n children: [\n {\n i18nPath: 'common_in_web_event_on_web_subscribe', // 次数\n key: 'time_attr_on_web_subscribe', // {metric}\n hint: 'campaign_hover_stat_data.on_web_subscribe',\n attribute: EVENT_ATTRIBUTE.EVENT_COUNT.value,\n sortable: true,\n formatter: integerValueFormatter, // 格式化表格数据\n },\n {\n i18nPath: 'common_in_web_event_cost_per_on_web_subscribe', // 单次消耗\n key: 'time_attr_cost_per_on_web_subscribe', // cost_per_{metric}\n hint: 'campaign_hover_stat_data.cost_per_on_web_subscribe',\n attribute: EVENT_ATTRIBUTE.COST_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_on_web_subscribe_per_click', // 频率\n key: 'time_attr_on_web_subscribe_per_click', // {metric}_per_click\n hint: 'campaign_hover_stat_data.on_web_subscribe_per_click',\n attribute: EVENT_ATTRIBUTE.RATE_PER_EVENT.value,\n sortable: true,\n textFormatter: percentTextFormatter, // 格式化表格头\n formatter: percentCellFormatter,\n },\n {\n i18nPath: 'common_in_web_event_value_per_on_web_subscribe', // 每个Event的平均价值\n key: 'time_attr_value_per_on_web_subscribe', // total_{metric}_value\n hint: 'campaign_hover_stat_data.value_per_on_web_subscribe',\n attribute: EVENT_ATTRIBUTE.VALUE_PER_EVENT.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n {\n i18nPath: 'common_in_web_event_total_on_web_subscribe_value', // 总付费价值 / 100000\n key: 'time_attr_total_on_web_subscribe_value', // value_per_{metric}\n hint: 'campaign_hover_stat_data.total_on_web_subscribe_value',\n attribute: EVENT_ATTRIBUTE.TOTAL_EVENT_VALUE.value,\n sortable: true,\n formatter: moneyFormatterWithUnit,\n },\n ],\n },\n];\n","/**\n * @file 提供给 table item 的 formatter\n */\nimport numeral from 'numeral';\nimport store from 'src/store';\nimport { isAdministrator } from 'src/utils/authUtil';\nimport { quailficationRejectReasonType } from 'src/const/state/account';\nimport SkanNumberHover from 'src/components/dashboard/perf/skan-num-hover';\nimport { isPcmPhase2White } from 'src/const/whiteList';\nimport tool from 'src/utils/tool';\nimport { LeadBCShare } from 'src/const/state/creative';\nimport exportLeadAds from 'src/utils/exportLeadAds';\nimport {\n getUserCurrency,\n formatBrandMoney,\n percentileDivisionFormatMoney,\n} from 'src/mixins/currencyMixin';\nimport { campaignObjectiveValue, campaignType } from 'src/const/state/campaign';\n\nimport { currencyLocaleFormat } from 'src/utils/currencyUtil';\n\nexport const isPcmWebStatistic = (row) => {\n const {\n objective_type, ad_ref_pixel_id, promotion_website_type, dedicate_type,\n } = row;\n return isPcmPhase2White() && ad_ref_pixel_id && !(+promotion_website_type) && dedicate_type !== campaignType.dedicatedCampaign &&\n [campaignObjectiveValue.Traffic, campaignObjectiveValue.DPA,\n campaignObjectiveValue.Conversion, campaignObjectiveValue.Shop].includes(objective_type);\n};\n\nexport const downLoadAdsForm = (requestParams, $t, statusChangeFn = () => { }) => {\n // 只有管理员能下载广告主数据\n if (!isAdministrator()) {\n return;\n }\n statusChangeFn(true);\n exportLeadAds({\n requestParams,\n teaParams: {\n download_source: 1,\n adv_id: store.state.account.permissionData?.account?.id,\n ...requestParams,\n },\n finallyCb: () => statusChangeFn(false),\n });\n};\n// 统计的数据list和view data, 素材库层级不一样,需要考虑两种情况的处理\nexport const getStatisticDataKey = (row, key) => {\n const itemKey = (typeof (row.stat_data && row.stat_data[key]) !== 'undefined') ?\n (row.stat_data && row.stat_data[key]) : (row[key]);\n return itemKey;\n};\nexport const currencyKey = getUserCurrency();\n\n// 数据转化成整数型\nexport const integerValueFormatter = (row, col, cellValue) => {\n if (typeof cellValue === 'undefined' || cellValue === '-') {\n return '-';\n }\n if (window.CURRENCY_LOCALE) {\n return currencyLocaleFormat(cellValue, 0);\n }\n return numeral(cellValue).format('0,0');\n};\n\n// 如果没数据显示 '-'\nexport const noneFormatter = (row, col, cellValue) => {\n if (!cellValue) {\n return '-';\n }\n if (window.CURRENCY_LOCALE) {\n return currencyLocaleFormat(cellValue);\n }\n return cellValue;\n};\n\n// 百分比 formatter,用于表头\nexport const percentTextFormatter = str => `${str} (%)`;\n\n// 百分比 formatter,用于表格内部数据\nexport const percentCellFormatter = (row, col, cellValue) => {\n if (typeof cellValue === 'undefined' || cellValue === '-') {\n return '-';\n }\n if (!cellValue) {\n return '0%';\n }\n if (window.CURRENCY_LOCALE) {\n return `${currencyLocaleFormat(cellValue)}%`;\n }\n return `${cellValue}%`;\n};\n\n// 小数转化为百分数\nexport const decimalTransferpercentFormatter = (num = 0) => {\n const _multiply = (num1, num2) => {\n let m = 0;\n const s1 = num1.toString();\n const s2 = num2.toString();\n try {\n m += s1.split('.')[1].length;\n } catch (e) {\n // error\n }\n try {\n m += s2.split('.')[1].length;\n } catch (e) {\n // error\n }\n return Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / (10 ** m);\n };\n\n return `${_multiply(num, 100)}%`;\n};\n\n\n// 金钱 formatter(不包含单位)\nexport const moneyFormatter = (row, col, cellValue) => percentileDivisionFormatMoney(cellValue);\n\n// 金钱 formatter(包含单位)\nexport const moneyFormatterWithUnit = (row, col, cellValue) => {\n const currencyKey = getUserCurrency();\n if (typeof cellValue === 'undefined' || cellValue === '-') {\n return '-';\n }\n return `${moneyFormatter(row, col, cellValue)} ${currencyKey}`;\n};\n\n// 货币单位 formatter 用于图表绘制\nexport const moneyUnitTextFormatter = (str) => {\n const currencyKey = getUserCurrency();\n return `${str}(${currencyKey})`;\n};\n\n// 金钱 formatter,用于 title\nexport const moneyUnitFormatter = (str) => {\n const currencyKey = getUserCurrency();\n return `${str} (${currencyKey})`;\n};\n\n// 时长 formatter\nexport const durationFormatter = (row, col, cellValue) => {\n if (typeof cellValue === 'undefined' || cellValue === '-') {\n return '-';\n }\n if (window.CURRENCY_LOCALE) {\n return currencyLocaleFormat(cellValue, 2);\n }\n return numeral(cellValue).format('0,0.00');\n}; // 播放时长格式化\n\n// 成效数 formatter\n// FIX: ReferenceError: h is not defined\n// https://github.com/vuejs/jsx/issues/64\n// https://github.com/vuejs/babel-plugin-transform-vue-jsx#h-auto-injection\n// isTimeAttr 涉及一个转化对回的概念,表现是字段前缀是否是 time_attr_*,具体文档:https://bytedance.feishu.cn/docs/doccnnyOwM83ciI4AOuDKVFDTed\nexport function effectCountFomatter(row, h, isTimeAttr, $t, instance) {\n const {\n effect_note, dedicate_type, objective_type,\n } = row;\n const isMMPDcData = dedicate_type === campaignType.dedicatedCampaign;\n const isAlreadyShared = row?.page_id_status === LeadBCShare.ISSHARED;\n const isLeadsModalDisabled = !isAdministrator() || isAlreadyShared;\n const leadDownClass = ['display-status', 'lead-ads-status', { 'lead-ads-disable': isLeadsModalDisabled }];\n const isPcmWeb = isPcmWebStatistic(row);\n const hintKey = isPcmWeb ? 'module_dc_hover_pcm' : 'module_dc_hover_idmatching';\n const getDownloadTooltip = () => {\n if (!isAdministrator()) {\n return $t('module_lead_ads_form_download_hint');\n }\n if (isAlreadyShared) {\n return $t('download_leads_tooltip');\n }\n return $t('module_lead_ads_form_download_hint');\n };\n\n if (+objective_type === campaignObjectiveValue.LeadAds && window.location.pathname === '/i18n/perf/creative') {\n return (\n \n !isLeadsModalDisabled && instance.$bus.$emit('toggle-download-leads', row)}>\n {$t('module_lead_ads_form_download')}\n \n \n );\n }\n\n let count = 0;\n count = isTimeAttr ? getStatisticDataKey(row, 'time_attr_effect_cnt') : getStatisticDataKey(row, 'effect_cnt');\n const effectCount = getStatisticDataKey(row, 'time_attr_effect_cnt') === '-' ? '-' : integerValueFormatter('', '', count);\n const numberData = effectCount;\n const formatNumberData = typeof numberData === 'undefined' ? '-' : numberData;\n if (!isMMPDcData && !isPcmWeb) {\n return (\n
\n
\n {formatNumberData}\n
\n
{effect_note}
\n
);\n }\n return (\n \n );\n}\n\n// 成效成本 formatter\nexport function effectCostFomatter(row, h, isTimeAttr) {\n const { objective_type, effect_cost_note, dedicate_type } = row;\n const isMMPDcData = dedicate_type === campaignType.dedicatedCampaign;\n const currencyKey = getUserCurrency();\n const isPcmWeb = isPcmWebStatistic(row);\n let effectCost = 0;\n effectCost = isTimeAttr ? getStatisticDataKey(row, 'time_attr_effect_cost') : getStatisticDataKey(row, 'effect_cost');\n if (effectCost !== '-') {\n if (objective_type === campaignObjectiveValue.Reach || objective_type === campaignObjectiveValue.VideoView) {\n effectCost = `${formatBrandMoney(effectCost)}${currencyKey}`;\n } else {\n effectCost = `${percentileDivisionFormatMoney(effectCost)}${currencyKey}`;\n }\n }\n const hintKey = isPcmWeb ? 'module_dc_hover_pcm' : 'module_dc_hover_idmatching';\n const numberData = effectCost;\n const formatNumberData = typeof numberData === 'undefined' ? '-' : numberData;\n if (!isMMPDcData && !isPcmWeb) {\n return (\n
\n
\n {formatNumberData}\n
\n
{effect_cost_note}
\n
);\n }\n return (\n \n );\n}\n\n// 成效率 formatter\nexport function effectRateFormatter(row, h, isTimeAttr) {\n const {\n effect_rate_note, dedicate_type,\n } = row;\n const isMMPDcData = dedicate_type === campaignType.dedicatedCampaign;\n const isPcmWeb = isPcmWebStatistic(row);\n const hintKey = isPcmWeb ? 'module_dc_hover_pcm' : 'module_dc_hover_idmatching';\n\n let effectRate = 0;\n if (row.pricing !== 'CPM') {\n effectRate = isTimeAttr ? getStatisticDataKey(row, 'time_attr_effect_rate') : getStatisticDataKey(row, 'effect_rate');\n effectRate = [undefined, null, '-'].includes(effectRate) ? effectRate : `${effectRate}%`;\n } else {\n effectRate = '-';\n }\n const numberData = effectRate;\n const formatNumberData = typeof numberData === 'undefined' ? '-' : numberData;\n if (!isMMPDcData && !isPcmWeb) {\n return (\n
\n
\n {formatNumberData}\n
\n
{effect_rate_note}
\n
);\n }\n return (\n \n );\n}\n\n// 建议 formatter\nexport function suggestionFormatter(data, h, hasPharmacyQualification, isSelfAccount, aadvid, $t, creativeName = '') {\n if (!data || !data.suggestion || !data.suggestion.length || data.suggestion === '-') {\n return '-';\n }\n // 医药类拒绝的response code\n const medicineRejectCode = [101703, 101706, 101707, 101708, 101709, 101713];\n let jumpUrl = '/help/article?aid=6684149081637388293';\n let jumpText = $t('common_learn_more');\n\n // 通过白名单枚举方式控制医药资质入口\n const isMedicineQulification = medicineRejectCode.includes(data.disapproval_code) && hasPharmacyQualification;\n if (isMedicineQulification) {\n jumpUrl = `/i18n/account/qualification_list?aadvid=${aadvid}`;\n jumpText = $t('module_account_qualification_supplement');\n }\n\n // 音乐资质拒审 跳转至添加资质页面\n const isMusicQualification = data.reason_type === quailficationRejectReasonType.MUSIC;\n if (isMusicQualification) {\n const creative_id = data.creative_id || data.cid || '';\n const creative_name = data.name || creativeName;\n const identity_id = data.identity_id || '';\n const identity_type = data.identity_type || '';\n\n const temp = {\n aadvid,\n source: 'reject_suggestion',\n creative_id,\n creativeName: encodeURIComponent(creative_name),\n identity_type,\n identity_id,\n };\n jumpUrl = `/i18n/account/qualification_list${tool.jsonToQuery(temp)}`;\n }\n\n\n const showBot = isSelfAccount && data.disapproval_code && store.state.isAthenaCallerReady;\n\n // 行业拒审 code 需要拼接禁投国家传给 bot\n const industryDisapprovalCodes = [100125, 100126, 100127, 100128, 100135];\n\n const forbiddenCountry = industryDisapprovalCodes.includes(data.disapproval_code) && data.forbidden_country?.length === 1\n ? data.forbidden_country[0]\n : '';\n\n const materialCode = `${data.disapproval_code}${forbiddenCountry ? `_${forbiddenCountry}` : ''}`;\n const revokeBot = () => {\n window.intelliCS && window.intelliCS.openDialog({\n question: {\n type: 'best_practice',\n keyword: materialCode,\n },\n });\n window._app && window._app.$tea.trackEvent('suggestion_learnmore_bot_click');\n };\n\n return
\n \n {showBot\n ? {$t('common_learn_more')} \n : {jumpText} \n }\n
;\n}\n\n\nexport { currencyLocaleFormat };\n","/**\n * @file Metrics 有关的枚举值\n */\n// 子事件属性映射\nexport const EVENT_ATTRIBUTE_SKAN = {\n UNIQUE_EVENT: {\n value: 1,\n i18n: 'common_unique_event',\n },\n UNIQUE_CPA: {\n value: 2,\n i18n: 'common_unique_cost',\n },\n UNIQUE_CONVERSION_RATE: {\n value: 3,\n i18n: 'common_unique_rate',\n },\n TOTAL_EVENTS: {\n value: 4,\n i18n: 'common_total_event',\n },\n TOTAL_CPA: {\n value: 5,\n i18n: 'common_CPA',\n },\n TOTAL_CONVERSION_RATE: {\n value: 6,\n i18n: 'common_total_value',\n },\n};\nexport const EVENT_ATTRIBUTE = {\n EVENT_COUNT: { // 事件发生的次数\n value: 1,\n i18n: 'common_event_total_count',\n },\n COST_PER_EVENT: { // 单次事件的付费成本\n value: 2,\n i18n: 'common_Cost',\n },\n RATE_PER_EVENT: { // 平均每个用户执行某事件的概率/次数\n value: 3,\n i18n: 'common_rate',\n },\n VALUE_PER_EVENT: { // 每个Event的平均价值\n value: 4,\n i18n: 'common_value_per_event',\n },\n TOTAL_EVENT_VALUE: { // 总付费价值\n value: 5,\n i18n: 'common_total_value',\n },\n};\nexport const EVENT_ATTRIBUTE_EACH = {\n EVENT_COUNT: { // 事件发生的次数\n value: 1,\n i18n: 'common_total_event',\n },\n COST_PER_EVENT: { // 单次事件的付费成本\n value: 2,\n i18n: 'common_CPA',\n },\n VALUE_PER_EVENT: { // 每个Event的平均价值\n value: 3,\n i18n: 'common_value_per_event',\n },\n TOTAL_EVENT_VALUE: { // 总付费价值\n value: 4,\n i18n: 'common_total_value',\n },\n};\nexport const EVENT_ATTRIBUTE_UNIQUE = {\n EVENT_COUNT: { // 事件发生的次数\n value: 1,\n i18n: 'common_unique_event',\n },\n COST_PER_EVENT: { // 单次事件的付费成本\n value: 2,\n i18n: 'common_unique_cost',\n },\n RATE_PER_EVENT: { // 平均每个用户执行某事件的概率/次数\n value: 3,\n i18n: 'common_unique_rate',\n },\n};\n\n// 指标类型\nexport const METRIC_TYPE = {\n BASIC_DATA: 0,\n VIDEO_PLAY: 1,\n APP_EVENT: 2,\n ATTRIBUTION: 3,\n PAGE_EVENT: 4,\n APP_EVENT_EACH: 5, // app event下的子tab - each\n APP_EVENT_UNIQUE: 6, // app event下的子tab - unique\n INTERACTION: 7,\n // 新增指标 engagement\n ENGAGEMENT: 8,\n // skan 相关的指标\n SKAN_APP_EVENT: 9,\n // https://bytedance.feishu.cn/wiki/wikcnlF7RQtO87J8xLfcyAQtVTb#\n SETTINGS_NAMES_IDS: 10,\n SETTINGS_STATUS_DATES: 11,\n SETTINGS_OBJECTIVE_BUDGET_GOAL: 12,\n SETTINGS_AD_CREATIVE: 13,\n SETTINGS_OTHER: 14,\n\n // 素材库新增类型\n LIBRARY_CREATIVE_INFO: 20,\n // LIBRARY_CREATIVE_BASE_INFO: 21,\n LIBRARY_CREATIVE_DATE_INFO: 22,\n LIBRARY_CREATIVE_DETAILS_INFO: 23,\n LIBRARY_CREATIVE_RELATED_INFO: 24,\n LIVE: 25,\n ASSET: 26,\n ONSITE_EVENT: 27,\n};\n\nexport const METRIC_TYPE_EVENT_ATTRIBUTES_MAP = {\n [METRIC_TYPE.APP_EVENT_EACH]: Object.values(EVENT_ATTRIBUTE_EACH),\n [METRIC_TYPE.APP_EVENT_UNIQUE]: Object.values(EVENT_ATTRIBUTE_UNIQUE),\n [METRIC_TYPE.APP_EVENT]: Object.values(EVENT_ATTRIBUTE), // in-app event所有子事件都有\n // [METRIC_TYPE.PAGE_EVENT]: [EVENT_ATTRIBUTE.EVENT_COUNT, EVENT_ATTRIBUTE.COST_PER_EVENT, EVENT_ATTRIBUTE.RATE_PER_EVENT], // page event只有3种子事件\n [METRIC_TYPE.PAGE_EVENT]: Object.values(EVENT_ATTRIBUTE), // page event所有子事件都有\n [METRIC_TYPE.SKAN_APP_EVENT]: Object.values(EVENT_ATTRIBUTE_SKAN),\n [METRIC_TYPE.ONSITE_EVENT]: Object.values(EVENT_ATTRIBUTE), // onsite event所有子事件都有\n};\n\nexport const SORT_ORDER = {\n ACENT: 0, // 正序\n DECENT: 1, // 倒序\n};\n","import _ from 'lodash';\nimport Vue from 'vue';\nimport tool from 'src/utils/tool';\nimport { i18n } from 'src/utils/localeUtil';\n\n// 筛选需要的 list\nexport function filterColumns(columns, keys) {\n const result = [];\n const keySet = new Set(keys);\n columns.forEach((item) => {\n if (keySet.has(item.key)) {\n result.push(item);\n } else if (item.children && item.children.find(child => keySet.has(child.key))) {\n const children = item.children.filter(child => keySet.has(child.key));\n result.push({\n ...item,\n children,\n });\n }\n });\n return result;\n}\n\n// 筛选【不需要】的 list\nexport function filterExcludesColumns(columns, excludesKeys) {\n const result = [];\n const excludesKeysSet = new Set(excludesKeys);\n columns.forEach((item) => {\n // 当前节点不在需要排除的key中 并且没有子节点\n if (!excludesKeysSet.has(item.key) && !item.children) {\n result.push(item);\n // 当前节点不再需要排除的key中并且有子节点,过滤子节点\n } else if (!excludesKeysSet.has(item.key) && item.children) {\n const children = item.children.filter(child => !excludesKeysSet.has(child.key));\n result.push({\n ...item,\n children,\n });\n }\n });\n return result;\n}\n\nexport function joinKey(prefix, key, col) {\n // 使用根节点的key,不加前缀(用于自定义列的基本信息列)\n if (col && col.useRootKey) {\n return key;\n }\n if (!prefix) {\n return key;\n }\n return [prefix, key].join('.');\n}\n\n/**\n * 对初始的 columns 配置做一些预处理\n * @param list list 原始 list\n * @param prefix key 重组后的前缀,默认为空\n * @returns formatter 后的 columns\n */\nexport function formatterStatsColumns(list, prefix = '') {\n // 解决 jsx 渲染的问题\n const h = new Vue().$createElement; // eslint-disable-line\n\n // 此处猜测是一个历史坑,通常很多列的hint属性与计算出来的hoverKey是相等的。 但还有一些列的hint属性不好改造?\n const getHoverKey = col => (col.hoverKey ? col.hoverKey : col.hint);\n\n const transformCol = (col) => {\n const title = _.isFunction(col.textFormatter) ? col.textFormatter(i18n.t(col.i18nPath), i18n.t) : i18n.t(col.i18nPath);\n const newCol = {\n ...col,\n title,\n align: col.align || 'right',\n key: joinKey(prefix, col.key, col), // 加前缀从嵌套路径中取值\n 'header-align': col['header-align'] || 'right',\n 'min-width': col['min-width'] || 150,\n };\n\n if (col.hoverKey || col.hint) {\n const hoverKey = getHoverKey(col);\n newCol.hoverKey = hoverKey;\n\n // 这个应该配置在组件里面而不是列表项中,之后需要移除\n newCol.renderString = () => (\n \n {title}\n \n );\n }\n\n return newCol;\n };\n\n return list.map((col) => {\n const transformed = transformCol(col); // 转换自身\n const { children = [] } = col;\n if (children.length) {\n transformed.children = children.map(transformCol); // 转换二级子事件\n }\n return transformed;\n });\n}\n\n/**\n * 将 keys 转化成对应的列表配置项\n * @param {Array} keys 需要转化的项的 key 集合\n * @param {Array} allColumns 所有的列表项配置\n * @returns {Array} 转化后的列表项配置\n */\nexport function getDisplayColumns(keys, allColumns) {\n const pathMap = tool.getPathMap(allColumns);\n return keys.reduce((results, key) => {\n const path = pathMap[key] || '';\n const target = _.get(allColumns, path);\n if (!path || !target) {\n return results;\n }\n return results.concat(target);\n }, []);\n}\n\n\n/**\n * 格式化选项\n * @param options 筛选项\n */\nexport function formatterOptions(options) {\n return options\n .filter((item) => {\n if (typeof item.hidden === 'function') {\n return !item.hidden();\n }\n return !item.hidden;\n })\n .map(item => ({\n label: item.label || i18n.t(item.key), // 部分没有翻译的 options 用 label 表示\n value: item.id,\n reKey: item.reKey || '',\n disabled: !!item.disabled,\n }));\n}\n","import {\n getUserCurrency,\n percentileDivisionFormatMoney,\n} from 'src/mixins/currencyMixin';\nimport Description from 'src/components/transaction/description';\nimport DescriptionDeduction from 'src/components/transaction/description-deduction';\nimport TransactionType from 'src/components/transaction/transaction-type';\nimport invoice from 'src/components/transaction/invoice';\nimport DateDisplay from 'src/components/transaction/date-display';\nimport DetailDescription from 'src/components/transaction/detail-description';\n\nconst transactionTypeMap = {\n costs: '0',\n payment: '1',\n nonStandard: '4', // 非标\n taxes: '6',\n deduction: '9', // 优惠券\n};\n\n// 1-默认 pdf\n// 2-xml下载\nexport const DownloadInvoiceType = {\n PDF: 1,\n XML: 2,\n};\n\nexport const paymethodTypes = {\n CASH: {\n type: 'cash',\n name_i18n: 'module_transaction_paymethod_cash',\n },\n GRANT: {\n type: 'grant',\n name_i18n: 'module_transaction_paymethod_grant',\n },\n REBATE: {\n type: 'rebate',\n name_i18n: 'module_transaction_paymethod_rebate',\n },\n};\n\nconst payTypeMap = {\n REBATE: 2, // 返点\n GRANT: 3, // 赠款\n CASH_PRE: 11, // 预付费现金\n CREDIT: 0, // 给后付费补位用\n // 不返回授信充值流水\n};\n\nconst accountTypeMap = {\n // 账户类型\n PRE_AND_CREDIT: 0, // 预付&授信\n CREDIT: 1, // 后付费\n};\n\nconst taxTypeMap = {\n // 计税类型\n UNSET: -1, // 未设定\n COST: 0, // 消耗计税\n CHARGE: 1, // 充值计税\n};\n\nconst createDateDisplay = (vm, props) => vm.$createElement(DateDisplay, {\n props,\n});\n\nconst createTransactionType = (vm, props) => vm.$createElement(TransactionType, {\n props,\n});\n\nconst createDetailDescription = (vm, props) => vm.$createElement(DetailDescription, {\n props,\n});\n\nconst createTaxItem = (vm = {}, props = {}, showId = true) => vm.$createElement(Description, {\n props: {\n ...props,\n showId,\n },\n});\nconst createDeduction = (vm = {}, props = {}) => vm.$createElement(DescriptionDeduction, {\n props,\n});\nconst createInvoice = (vm = {}, props = {}) => vm.$createElement(invoice, {\n props: {\n invoice: !props.invoice_info ? {} : props.invoice_info,\n },\n});\nconst getPaymentDescription = (item = {}, vm = {}) => {\n if (item.transaction_type === +transactionTypeMap.deduction) {\n return createDeduction(vm, {\n deductionDetail: item,\n });\n }\n\n if (\n +item.transaction_type !== +transactionTypeMap.payment\n ) {\n // 非payment类型descreption无内容\n return '-';\n }\n const {\n transaction_id: id,\n account_type: accountType,\n tax_type: taxType,\n capital_attr: payType,\n tax_detail: taxDetail,\n pay_method: card,\n amount: totalAmount,\n balance_change: chargeAmount,\n payment_detail: paymentDetail,\n } = item;\n const taxProps = {\n id,\n taxDetail,\n card,\n totalAmount,\n chargeAmount,\n paymentDetail,\n };\n\n switch (\n payType // 支付方式\n ) {\n case payTypeMap.GRANT: // 赠款\n return vm.$t(paymethodTypes.GRANT.name_i18n);\n case payTypeMap.CASH_PRE: // 预付现金\n if (taxType === taxTypeMap.COST) {\n // 消耗计税\n return vm.$t(paymethodTypes.CASH.name_i18n);\n }\n if (taxType === taxTypeMap.CHARGE) {\n // 充值计税\n return createTaxItem(\n vm,\n { ...taxProps, card: vm.$t(paymethodTypes.CASH.name_i18n) },\n false,\n );\n }\n break;\n case payTypeMap.REBATE:\n return vm.$t(paymethodTypes.REBATE.name_i18n); // 其他现金类型\n default:\n // 其他方式\n if (accountType === accountTypeMap.CREDIT) {\n // 后付费类型\n // return createTaxItem(vm, taxProps, true);\n return createDetailDescription(vm, taxProps);\n }\n return vm.$t(paymethodTypes.CASH.name_i18n); // 其他 现金类型\n }\n};\nconst invoiceFormatter = (row, vm) => createInvoice(vm, row);\n\nconst moneyFormatter = (row) => {\n const type = String(row.transaction_type);\n let amount = 0;\n switch (type) {\n case transactionTypeMap.deduction:\n case transactionTypeMap.payment: {\n const additionalSign = Number(row.amount) > 0 ? '+' : '';\n amount = `${additionalSign}${percentileDivisionFormatMoney(row.amount)}`;\n break;\n }\n case transactionTypeMap.costs:\n case transactionTypeMap.nonStandard:\n case transactionTypeMap.taxes:\n amount = `-${percentileDivisionFormatMoney(row.amount)}`;\n break;\n default:\n amount = percentileDivisionFormatMoney(row.amount);\n }\n return amount;\n};\n\nexport const transactionTypesAll = [\n {\n label_i18n: 'module_transaction_type_all',\n value: Object.values(transactionTypeMap).join(','),\n type: 'all',\n },\n {\n label_i18n: 'module_transaction_type_payment',\n value: transactionTypeMap.payment,\n type: 'payment',\n hint_i18n: 'module_transaction_type_payment_hint',\n },\n {\n label_i18n: 'module_transaction_type_costs',\n value: transactionTypeMap.costs,\n type: 'costs',\n hint_i18n: 'module_transaction_type_costs_hint',\n },\n {\n label_i18n: 'module_transaction_type_costs_non_standard',\n value: transactionTypeMap.nonStandard,\n type: 'nonStandard',\n hint_i18n: 'module_transaction_type_costs_non_standard_hint',\n },\n {\n label_i18n: 'module_transaction_type_taxes',\n value: transactionTypeMap.taxes,\n type: 'taxes',\n hint_i18n: 'module_transaction_type_taxes_hint',\n },\n {\n label_i18n: 'module_transaction_type_deduction',\n value: transactionTypeMap.deduction,\n type: 'deduction',\n hint_i18n: 'module_transaction_type_deduction_hint',\n },\n];\n\n// export const transactionTypesWithoutTaxes = [\n// {\n// label_i18n: 'module_transaction_type_all',\n// value: `${transactionTypeMap.payment},${transactionTypeMap.costs}`,\n// type: 'all',\n// },\n// {\n// label_i18n: 'module_transaction_type_payment',\n// value: transactionTypeMap.payment,\n// type: 'payment',\n// hint_i18n: 'module_transaction_type_payment_hint',\n// },\n// {\n// label_i18n: 'module_transaction_type_costs',\n// value: transactionTypeMap.costs,\n// type: 'costs',\n// hint_i18n: 'module_transaction_type_costs_hint',\n// },\n// ];\n\nexport const transactionTypesDefault = transactionTypesAll;\n\nconst transactionTypesMap = transactionTypesAll.reduce((res, item) => {\n res[item.value] = item;\n return res;\n}, {});\n\nexport const dateTypes = [\n {\n label_i18n: 'module_transaction_current_month',\n value: 1,\n type: 'CURRENT_MONTH',\n },\n {\n label_i18n: 'module_transaction_previous_month',\n value: 2,\n type: 'PREVIOUS_MONTH',\n },\n {\n label_i18n: 'module_transaction_last_3_month',\n value: 3,\n type: 'LAST_3_MONTH',\n },\n {\n label_i18n: 'module_transaction_last_6_month',\n value: 4,\n type: 'LAST_6_MONTH',\n },\n {\n label_i18n: 'module_transaction_this_year',\n value: 5,\n type: 'THIS_YEAR',\n },\n // {\n // label_i18n: 'module_transaction_last_12_month',\n // value: 6,\n // type: 'LAST_12_MONTH',\n // },\n {\n label_i18n: 'module_transaction_time_all',\n value: 7,\n hint_i18n: 'module_transaction_time_all_hint',\n type: 'ALL_TIME',\n },\n];\n\nexport const dateTypesMap = dateTypes.reduce((res, item) => {\n res[item.type] = item.value;\n return res;\n}, {});\n\nexport const defaultFilters = {\n transactionType: transactionTypesDefault[0].value,\n dateType: 3,\n};\n\nconst createTransactionTypeFormatter = vm => row => createTransactionType(vm, {\n row,\n text: transactionTypesMap[row.transaction_type].label_i18n,\n transactionTypeMap,\n});\n\nexport const getTableColumns = vm => [\n {\n title: vm.$t('module_transaction_column_date'),\n key: 'date',\n fixed: 'left',\n 'min-width': 240,\n hint: vm.$t('module_transaction_column_date_tooltip'),\n // formatter: row => row.transaction_date,\n formatter: row => createDateDisplay(vm, { row }),\n },\n {\n title: vm.$t('module_transaction_column_type'),\n key: 'type',\n 'min-width': 180,\n hint: vm.$t('module_transaction_column_transaction_type_tooltip'),\n // formatter: row => vm.$t(transactionTypesMap[row.transaction_type].label_i18n),\n formatter: createTransactionTypeFormatter(vm),\n },\n {\n title: vm.$t('module_transaction_column_description'),\n key: 'description',\n 'min-width': 480,\n hint: vm.$t('module_transaction_column_description_tooltip'),\n formatter: row => getPaymentDescription(row, vm),\n },\n {\n title: `${vm.$t(\n 'module_transaction_column_amount',\n )} (${getUserCurrency()})`,\n key: 'amount',\n 'min-width': 190,\n align: 'right',\n hint: vm.$t('module_transaction_column_amount_hint'),\n formatter: row => moneyFormatter(row),\n },\n];\n\n// 自助用户\nexport const getSelfTableColumns = vm => [\n {\n title: vm.$t('module_transaction_column_date'),\n key: 'date',\n fixed: 'left',\n 'min-width': 240,\n hint: vm.$t('module_transaction_column_date_tooltip'),\n // formatter: row => row.transaction_date,\n formatter: row => createDateDisplay(vm, { row }),\n },\n {\n title: vm.$t('module_transaction_column_type'),\n key: 'type',\n 'min-width': 180,\n hint: vm.$t('module_transaction_column_transaction_type_tooltip'),\n // formatter: row => vm.$t(transactionTypesMap[row.transaction_type].label_i18n),\n formatter: createTransactionTypeFormatter(vm),\n },\n {\n title: vm.$t('module_transaction_column_description'),\n key: 'description',\n 'min-width': 255,\n hint: vm.$t('module_transaction_column_description_tooltip'),\n formatter: row => getPaymentDescription(row, vm),\n },\n {\n title: `${vm.$t(\n 'module_transaction_column_amount',\n )} (${getUserCurrency()})`,\n key: 'amount',\n width: 165,\n align: 'right',\n hint: vm.$t('module_transaction_column_amount_hint'),\n formatter: row => moneyFormatter(row),\n },\n {\n title: vm.$t('module_transaction_column_invoice'),\n key: 'invoice',\n 'min-width': 240,\n formatter: row => invoiceFormatter(row, vm),\n },\n];\n\n// 流水类型映射\nexport const newTransactionTypeMap = {\n payments: '1',\n costs: '2',\n tax: '3',\n};\n\n// payments类型映射\nexport const paymentsTypeMap = {\n payments: '1',\n promotions: '2',\n adjustments: '3',\n};\n\n// summary数据类型映射\nexport const summaryDataMap = {\n campaignCosts: '1',\n payments: '2',\n promotions: '3',\n adjustments: '4',\n};\n\n// summary数据类型i18n key映射\nexport const summaryDataTitleI18nKeyMap = {\n [summaryDataMap.campaignCosts]: 'module_transaction_total_campaign_costs',\n [summaryDataMap.payments]: 'module_transaction_total_payments',\n [summaryDataMap.promotions]: 'module_transaction_total_promotions',\n [summaryDataMap.adjustments]: 'module_transaction_total_adjustments',\n};\n\n// tab类型\nexport const transactionTabType = {\n payments: '1',\n costs: '2',\n};\n\n// tab类型i18n key映射\nexport const transactionTabTypeI18nKeyMap = {\n [transactionTabType.payments]: 'module_transaction_tab_payments',\n [transactionTabType.costs]: 'module_transaction_tab_costs',\n};\n\n\n// 流水状态\nexport const transactionStatusMap = {\n processing: '0', // 合并类型1 跟 2前端使用 代表未处理状态\n pending: '1', // 待处理\n handling: '2', // 处理中\n paid: '3', // 已支付\n failed: '4', // 失败\n};\n\nexport const transactionStatusDataMap = {\n [transactionStatusMap.processing]: {\n i18nKey: 'common_processing',\n className: 'processing',\n },\n [transactionStatusMap.paid]: {\n i18nKey: 'common_paid',\n className: 'paid',\n },\n [transactionStatusMap.failed]: {\n i18nKey: 'common_failed',\n className: 'failed',\n },\n};\n\nexport const billingTransactionTypeMap = {\n TOP_UP: '101',\n CANCEL: '102',\n AUTOPAY_BILL: '801',\n MI_BILL: '901',\n ISSUED: '301',\n EXPIRED: '302',\n CHECKOUT: '1',\n CHECKOUT_BACK: '2',\n REFUND: '103',\n TRANSFER_IN: '501',\n TRANSFER_OUT: '502',\n};\n\nconst getBillingTransactionTypeSymbolMap = status => ({\n get [billingTransactionTypeMap.TOP_UP]() {\n return status === transactionStatusMap.paid ? '+ ' : '';\n },\n [billingTransactionTypeMap.CANCEL]: '- ',\n get [billingTransactionTypeMap.AUTOPAY_BILL]() {\n return status === transactionStatusMap.paid ? '+ ' : '';\n },\n get [billingTransactionTypeMap.MI_BILL]() {\n return status === transactionStatusMap.paid ? '+ ' : '';\n },\n [billingTransactionTypeMap.ISSUED]: '+ ',\n [billingTransactionTypeMap.EXPIRED]: '- ',\n [billingTransactionTypeMap.CHECKOUT]: '',\n [billingTransactionTypeMap.CHECKOUT_BACK]: '',\n [billingTransactionTypeMap.REFUND]: '- ',\n [billingTransactionTypeMap.TRANSFER_IN]: '+ ',\n [billingTransactionTypeMap.TRANSFER_OUT]: '- ',\n});\n\nconst noData = ['', null, undefined];\n\nexport function handleFormatterVal(val) {\n return noData.includes(val) ? '-' : val;\n}\n\n\nexport function formatterAmount(amount, currency, status, type) {\n if (isNaN(Number(amount))) return '-';\n const symbol = getBillingTransactionTypeSymbolMap(status)[type] ?? '';\n const absAmount = symbol ? Math.abs(Number(amount)) : amount;\n return `${symbol}${percentileDivisionFormatMoney(absAmount)} ${currency}`;\n}\n\n// 使用类型映射关系\nexport const usageConditionMap = {\n AD_CREDIT: ['2', '3', '-9999999'],\n COUPON: ['1'],\n};\n\nexport const promotionsStatusDataMap = {\n [billingTransactionTypeMap.ISSUED]: {\n i18nKey: 'common_issued',\n className: 'issued',\n },\n [billingTransactionTypeMap.EXPIRED]: {\n i18nKey: 'common_expired',\n className: 'expired',\n },\n};\n\nexport const adjustmentTypeMap = {\n CARD_VERIFICATION: [billingTransactionTypeMap.CHECKOUT],\n CARD_VERIFICATION_REFUND: [billingTransactionTypeMap.CHECKOUT_BACK],\n REFUND: [billingTransactionTypeMap.REFUND],\n TRANSFER_IN: [billingTransactionTypeMap.TRANSFER_IN],\n TRANSFER_OUT: [billingTransactionTypeMap.TRANSFER_OUT],\n};\n\nexport const newTransactionTaxTypeMap = {\n // 计税类型\n UNSET: '-1', // 未设定\n COST: '0', // 消耗计税\n CHARGE: '1', // 充值计税\n};\n\n\nexport function getCommonColumns(vm, columns) {\n return [\n {\n title: vm.$t('module_transaction_column_time'),\n key: 'transaction_time',\n width: 160,\n formatter: row => handleFormatterVal(row.transaction_time),\n },\n ...columns,\n {\n title: vm.$t('module_transaction_column_amount'),\n key: 'amount',\n width: 180,\n align: 'right',\n formatter: row => formatterAmount(\n row?.stat_data?.amount,\n row?.currency,\n row?.transaction_status,\n row?.stat_data?.billing_transaction_type,\n ),\n },\n ];\n}\n\n// table通用属性\nexport const commonDataKeyObj = {\n listDataKey: 'list',\n amountDataKey: 'amount',\n currencyDataKey: 'currency',\n};\n","export const isIesWhite = () => {\n // 是否视频 9:16白名单\n const { ies_white } = window.WHITE_LIST_OBJECT || {};\n return !!ies_white;\n};\n\n// tt ies语言白名值, 全部开放的话就挪到inventory-type.js对应的配置选项。\nexport const whiteLanguages = {\n JP: 'ja',\n TW: 'zh-Hant',\n IN: 'en',\n US: 'en',\n KR: 'ko',\n TH: 'th',\n MY: 'ms',\n ID: 'id',\n VN: 'vi',\n GB: 'en',\n DE: 'de',\n FR: 'fr',\n IT: 'it',\n ES: 'es',\n TR: 'tr',\n SA: 'ar',\n RU: 'ru',\n AE: 'ar',\n EG: 'ar',\n};\n\n// https://wiki.bytedance.net/pages/viewpage.action?pageId=323716087\n// white_value 白名单常量值\nexport const whiteValue = {\n // ies mt 白名单\n mt: 1,\n // ocpm\n ocpm: 2,\n // 开发pixel链接\n pixel: 3,\n // i18n新平台\n i18n_upgrade: 4,\n // ies jp 开放tw地区和语言白名单,已全量\n mt_jp: 5,\n // ies tw 开放tw地区和语言白名单,已全量\n mt_tw: 6,\n // 代理商币种合同白名单\n currency_white: 7,\n // dmp 白名单\n dmp: 8,\n // 印度tt白名单,已全量\n mt_in: 9,\n // 美国tt白名单\n mt_us: 10,\n // nr 台湾白名单\n nr_tw: 11,\n mt_kr: 12,\n mt_th: 13,\n mt_my: 14,\n mt_id: 15,\n mt_vn: 16,\n mt_uk: 17,\n mt_de: 18,\n mt_fr: 19,\n mt_it: 20,\n mt_es: 21,\n mt_tr: 22,\n mt_sa: 23,\n mt_ru: 24,\n // 新增22个竞价国家定向\n mt_brazil: 72,\n mt_mexico: 73,\n mt_ukraine: 74, // 乌克兰\n mt_belarus: 75,\n mt_hungary: 76,\n mt_czech: 77,\n mt_romania: 78,\n mt_kuwait: 79,\n mt_qatar: 80,\n mt_oman: 81,\n mt_bahrain: 82,\n mt_newZealand: 83,\n mt_phli: 84,\n mt_sweden: 85,\n mt_netherlands: 86,\n mt_norway: 87,\n mt_finland: 88,\n mt_denmark: 89,\n mt_switzerland: 90,\n mt_belgium: 91,\n mt_austria: 92,\n mt_ireland: 93,\n\n // nr韩国白名单\n bv_kr: 25,\n mt_ae: 26, // 阿联酋\n mt_eg: 27, // 埃及\n bv_in: 28, // 印尼\n bb_in: 29, // babe 印尼\n tt_ad_network: 30, // 穿山甲placemnet 自动、手动都披露rit\n dynamic_creative: 31, // 程序化创意\n vigo: 32, // vigo placemnet 自动、手动模式都披露rit\n tt_ad_network_auto_disable: 33, // 不出网盟rit自动,只显示手动\n tt_ad_network_select_disable: 34, // 不出网盟rit手动,只显示自动\n helo: 35, // helo placemnet 自动、手动模式都披露rit\n smart_bid_strategy: 36, // maxcv bid 后面会下掉\n max_conversion_no_bid: 56,\n deeplink: 37,\n defferedDeeplink: 71, // defferedDeeplink的白名单\n reach: 38, // 品牌reach白名单\n videoView: 39, // 品牌videoView白名单\n brand_safety: 40, // brand_safety\n mt_au: 42, // TikTok 澳大利亚\n mt_ca: 43, // TikTok 澳大利亚\n mt_hk: 44, // TikTok 香港\n playable: 46, // 试玩广告\n deep_goal: 47, // 深度转化白名单\n split_test: 50, // split_test白名单\n deep_convertion: 51, // 深度转化数据披露白名单\n mt_il: 52, // TikTok 以色列\n mt_pl: 53, // TikTok 波兰\n pangle_image: 54, // pangle图片版位\n // pangle_kr: 55, // pangle 韩国\n // pangle_tailand: 64, // pangle 泰国\n // pangle_taiwan: 65, // pangle 台湾\n behavior_target: 57, // 行为定向\n bulkDownload: 58, // 批量一期下载\n bulkUpload: 59, // 批量二期上传\n moat_tagless: 60, // moat tagless 白名单\n track_DV: 458, // dv白名单\n track_view_IAS: 473, // viewability IAS 白名单\n nativeBrandAdWhite: 61, // tiktok达人视频拉取\n postPay: 63, // 自助后付款白名单\n appRetarget: 69, // App retargeting\n split_test_creative: 68, // split test创意层级\n creativeCopy: 70, // 支持创意复制\n traffic_sink: 97, // traffic 下沉结构,\n conversion_sink: 99, // conversion 下沉结构,\n reach_sink: 100, // reach 下沉结构\n videoview_sink: 101, // video view 下沉结构\n dpa_sink: 102, // Dpa下沉\n pangle_mideast: 103, // 国际化网盟-中东地区定向\n pangle_southeast_asia: 104, // 国际化网盟-东南亚地区定向\n pangle_sa: 103,\n pangle_ae: 103,\n pangle_eg: 103,\n pangle_tr: 103,\n pangle_vn: 104,\n pangle_my: 104,\n pangle_th: 104,\n bid_ocpm: 120, // oCPM 二期\n dpa_app_retargeting: 111, // DPA支持app重定向\n dpa_app_install: 112, // DPA支持app安装\n dpa_website_retargeting: 113, // DPA支持website重定向\n dpa_website_prospecting: 114, // DPA支持website非重定向\n native_ad_traffic: 134,\n native_ad_appinstall: 135,\n native_ad_conversion: 136,\n rf: 151, // rf广告白名单\n hide_suggestion_list: 475, // 屏蔽adgroup诊断列白名单\n campaign_planer: 329, // 效率工具 campaign planer\n campaign_budget_optimization: 117, // CBO Campaign层级预算择优分配\n campaign_budget_optimiza_lifetime: 487, // CBO budget是否展示lifetime\n campaign_budget_optimize_vo_normal_highest_value: 518, // CBO VO highest value\n campaign_budget_optimize_vo_min_roas: 519, // CBO VO min roas\n isNewStructure: 98,\n videoTrackLink: 152, // 视频播放三方链接白名单\n isLeadAds: 154,\n auction_collection_ads: 243, // Collection Ads 创意\n brand_auction_collection_ads: 308, // Reach & VV 支持 Collection Ads 创意\n collection_ads_app: 479, // App 支持 Collection Ads\n collection_ads_image_card: 279, // Collection Ads 创编中添加图片卡片\n mrc_play_count: 203, // MRC 指标 连续播放2秒次数 白名单\n modelSole: 206,\n modelSoleAmazon: 207,\n postPayCash: 204, // 预付费原生收银台白名单\n isSplitTestBidding: 205, // split test bidding白名单\n engagement: 223,\n carouselImage_v1: 209, // 多图轮播1.0\n carouselImage_v2: 242, // 多图轮播2.0\n aco_presented_video: 224, // 程序化赠送视频白名单\n aco_presented_video_preview: 283, // 赠送视频2.0用于区分高风险/低风险地区的白名单\n campaign_engagement: 223, // engagement 指标显示的白名单,位置是campaign/ad/ad group层级(包括viewData)的自定义列和reporting部分的metrics\n gross_impression: 238, // 无效流量指标白名单,控制未来竞价平台上的无效流量指标\n captureImageFromVideoTool: 239, // 视频抽帧转图片工具\n // creative_authorization: 240, // 创意素材授权 // 下线\n // creative_authorization_default_checked: 244, // 创意素材授权是否为默认勾选状态 // 下线\n native_ad_rf: 241, // RF支持原生广告\n brand_safety_flagship: 245, // 竞价三方品牌安全白名单\n brand_safety_open_slate: 546, // 竞价三方品牌安全OpenSlate白名单\n brand_safety_ias: 547, // 竞价三方品牌安全IAS白名单\n newBrandSafetyInventory: 581, // 新一方品牌安全RF\n pangle_ocpx_nobid: 254, // 直投pangle ocpm ocpc 支持 no bid\n pangle_cpc_nobid: 255, // 直投pangle cpc 支持 no bid\n inspect: 248, // 诊断白名单\n dma: 249, // 美国地域定向 DMA\n cta_auto_optimized: 247, // dynamic cta针对DPA的白名单\n creative_video_editor: 264, // 视频编辑器\n athena_intelligent_caller: 265, // 右下角雅典娜智能客服\n scheduled_budget: 267, // 定时预算\n coldBoot: 269, // 冷启动白名单\n new_creative_detail: 256, // 接口迁移,新creative/detail普通创意接口 白名单\n new_creative_procedural_detail: 257, // 接口迁移, 新creative/detail程序化创意接口 白名单\n new_creative_list: 258, // 接口迁移,新创意列表creative/list接口 白名单\n comment_manage: 266, // 统计列表评论管理入口\n ios14_drop: 270, // 只支持traffic cpc,方案三\n ios14_only_cpc: 271, // 支持ios app cpc方案2\n ios14_mvp: 272, // 支持ios app cpc ocpc方案三\n ios14_dialog: 273, // 控制iOS14弹窗展示\n refactor_creation: 281, // 跳转到重构后的创编流程\n vo_dpa: 284,\n targeting_recommendation: 275, // 定向推荐\n targeting_recommendation_newui: 484, // 定向推荐新UI\n reporting_v5: 231, // 数据中台5期(Reporting)\n targeting_expansion: 276, // 定向扩量\n catalog_asset: 277, // 商品库\n s4smb_custom_mode: 288, // 默认禁止导入pclite白名单\n additional_customized_image_card: 285, // 附加创意自定义图片卡\n additional_customized_game_gift_card: 286, // 附加创意游戏礼包卡\n additional_customized_instant_page: 287, // 附加创意轻自定义落地页\n additional_rf_customized_instant_page: 414, // RF 附加创意轻自定义落地页\n native_music_promote: 290, // 原生视频推广音乐\n ios14_multiple: 307,\n account_and_asset_linking: 282, // 创意使用 Identity 新结构\n upgraded_viewdata: 305, // 受众分析升级\n interest_keywords: 310, // 兴趣关键词定向\n dpa_inventory_flow_pangle_app: 314, // DPA x Pangle x APP\n dpa_inventory_flow_pangle_msite: 486, // DPA x Pangle x msite\n smb_diagnose: 311, // smb诊断白名单\n audit_reject_appeal: 316, // 创意创建预览使用二维码预览\n creative_preview_with_qrcode: 317, // 创意创建预览使用二维码预览\n diagnosis_suggestion_v2: 319, // 诊断建议2.0白名单\n reporting_ttads: 232, // ad.site.statistics_i18n 报告接口迁移tt_ads\n rf_appinstall: 332, // rf appinstall白名单\n contact_service: 326, // 拒审建议界面雅典娜工单入口白名单\n brandSafetyInventory: 327, // 一方品牌安全\n rf_engagement: 360, // rf eo白名单\n app_profile_instant_page: 320, // app profile instant page 白名单\n capitalization: 318, // 商品库资产化白名单\n need_capitalized: 579, // 商品库需要资产化白名单,否则广告会下线\n aco_max_upload: 324, // aco最大上传视频数量封印,如果有白名单,可以上传30个,如果没有白名单只能上传10个\n split_test_support_ios_14: 325, // split test 白名单\n bulk_edit: 330,\n automated_rules: 331, // 自动规则\n rf_support_wip: 335, // RF站内导流跳转\n rf_only_support_wip: 481, // RF仅支持站内导流跳转\n traffic_cbo: 339,\n vv_cbo: 340,\n reach_cbo: 341,\n engagement_cbo: 342,\n dpa_cbo: 419,\n aeo_cbo: 476,\n lead_ads_cbo: 418,\n rf_statistics_upgrade: 338, // RF 统计接口迁移\n pcm_phase1: 358,\n pcm_phase2: 359,\n search_ads: 545, // searchAds白名单,只有在开白的情况下TT版位才才能出现开关\n search_ads_preview: 396, // 控制searchAds中披露给广告主的样式\n ttba_push_native_video: 346,\n tiktok_duet_stitch_auth: 391, // 原生帖子双授权\n zefrWhite: 337,\n pixel_standard: 395,\n shop: 336, // objective shop monetization\n AUTOMATED_TARGETING: 343, // pc lite 自动定向白名单\n BUDGET_LIMIT_REDUCTION: 344, // pc lite 预算限制下调,命中白名单的用户可以创建预算更低的广告\n vo_appinstall_standard: 280, // VO在 AppInstalls 下 CostCap 方式的白名单\n vo_appinstall_roas: 374, // VO在 AppInstalls 下 ROAS 方式的白名单\n vo_conversions_app_standard: 375, // VO在 Conversions-App 下 CostCap 方式的白名单\n vo_conversions_app_roas: 376, // VO在 Conversions-App 下 ROAS 方式的白名单\n vo_conversions_web_standard: 377, // VO在 Conversions-WEB 下 CostCap 方式的白名单\n vo_conversions_web_roas: 378, // VO在 Conversions-WEB 下 ROAS 方式的白名单\n vo_dpa_app_standard: 284, // VO在 DPA 下 CostCap 方式的白名单\n vo_dpa_app_roas: 379, // VO在 DPA-App 下 ROAS 方式的白名单\n vo_dpa_web_standard: 380, // VO在 DPA-WEB 下 CostCap 方式的白名单\n vo_dpa_web_roas: 381, // VO在 DPA-WEB 下 ROAS 方式的白名单\n vo_pangle_appinstall_standard: 452, // vo pangle appinstall costcap白名单\n vo_pangle_appinstall_roas: 453, // vo pangle appinstall roas白名单\n aco_support_cta_optimized: 399, // ACO 支持CTA优选\n tiktok_playable_ads: 373,\n lead_ads_crm: 397, // Lead ads 集成 CRM\n rf_gesture: 362, // rf 附加创意手势\n rf_painted_egg: 363, // rf 附加创意彩蛋\n disclaimer: 382,\n rfDisclaimer: 544,\n SHOP_LIVE: 405,\n smb_suggestion_v2: 392, // SMB诊断2.0\n new_identity: 445, // 新identity\n ttp_support: 411, // TTP 白名单\n ttp_statistics_api: 421, // ttp 受众分析接口白名单,接口放量与业务 GTM 节奏不同,用两个枚举值\n ttp_viewdata_reporting: 516, // ttp 受众分析 使用 516,与其它业务方区分\n diagnosis_two_point_one: 417, // suggestion2.1\n aco_reporting_upgrade: 415, // ACO报表升级白名单\n automated_rules_today_conversion: 448,\n rf_dmp: 398, // rf支持dmp\n hashtag: 446, // 行为 hashtag 定向白名单\n videoUploadfrontPrecheck: 459,\n ttp_banner: 460, // 内部用户 ttp banner 披露白名单\n attachement_creative_refact: 420, // Instant Experience 创意流程重构\n bulletboard: 464, // 首页宣传栏\n dc_multiple_five: 466,\n rf_creative_mode: 455, // rf 支持多素材播放方式\n cmo_v2: 461, // CMO 二期\n video_shopping_multi_products: 472, // video shopping多商品\n brand_track_data: 467,\n dpa_image: 469, // dpa pangle支持image\n rf_pi: 474, // premium inventory 白名单\n context_target: 571, // 展示上下文定向白名单\n context_target_premium: 572, // 展示上下文 permium topic 白名单\n cmo_name_sort: 482, // CMO 支持name列排序\n shop_multiple_attribution: 485,\n library_dashboard: 493, // 添加素材库首页\n industry_type: 495, // 广告行业类型白名单\n refactor_creation_smb: 497, // smb用户跳转重构创编\n bsIasWhite: 503, // brand safety ias产品\n bsDvWhite: 624, // brand safety ias产品\n shop_live_optimize_goal_product_click: 507, // shop live ads优化目标支持product click\n shop_live_optimize_goal_initate_checkout: 508, // shop live ads优化目标支持initate\n shop_live_optimize_goal_complete_payment: 589, // shop live ads优化目标支持complete payment\n rf_90_days__delivery: 509, // 预定活动开放90天\n rf_adgroup_copy: 539, // rf复制广告组\n perf_total_async: 510, // Campaign List 汇总行拆分请求\n ttp_2fa: 517, // 2fa 白名单\n comment_new: 514, // 新版评论管理\n budget_recommend: 515, // 预算推荐白名单\n pharmacy_qualification: 526, // 医药资质白名单\n music_qualification_simplified_submission: 527, // 音乐资质简洁流程\n perf_table_optimize: 528, // 表格优化改造 白名单\n perf_list_cache: 529, // 短时切换 tab 使用缓存\n in_market_target: 531, // in-market 定向白名单\n app_profile_page_support_cost_cap: 532, // app profile page 支持 cost cap\n required_creative: 533, // Campaign List 按需请求投前指标白名单 533\n ttp_uv: 541, // ttp reporting uv 白名单\n URL_SUPPORT_EDIT: 537, // url是否支持编辑\n hide_pixel_event: 538, // 隐藏优化事件白名单\n rf_fe_refactor: 560, // RF 前端重构白名单\n Newcomment: 568, // 评论管理白名单\n search_ads_mt: 545, // 搜索广告明投白名单 545\n split_test_entry: 552, // Split Test 投中入口\n htc: 480, // HTC 计费回显\n dashboard_api_optimize: 587, // Dashboard 接口优化\n dsa_with_collection_ad: 590, // dsa*ca白名单\n high_household_income: 595, // hhi白名单\n shop_ads_product_anchor: 607, // shop prodcut anchor白名单\n aeo_dc_cost_cap: 573, // dc aeo支持cost cap白名单\n refactor_creation_create_campaign: 663, // panda强制跳转到creation campaign兜底白名单\n migration_dsa_ca_phase_two: 725,\n migration_dsa_ca_phase_three: 726,\n migration_dsa_ca_phase_four: 727,\n migration_dsa_ca_no_migrate: 728,\n migration_dsa_ca: 729,\n ads_manager_clover: 744, // Clover 白名单\n\n migrate_shop_purchase_exclude: 783, // 豁免 SHOP PURCHASE 新增\n migrate_shop_purchase: 784, // 禁用 SHOP PURCHASE 新增\n\n migrate_shop_purchase_edit_copy_exclude: 802, // 豁免 SHOP PURCHASE 编辑、复制\n migrate_shop_purchase_phase2: 801, // 禁用 SHOP PURCHASE 编辑、复制\n\n // 自动规则\n automatic_rule_support_new_schedule: 830, // 自动规则 新版本run schedule + 仅运行一次白名单\n};\n\nconst whiteHelper = value => () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(value) >= 0;\n};\nexport const isBrandTrackDataWhite = whiteHelper(whiteValue.brand_track_data);\n\nexport const isNewCommentWhite = whiteHelper(whiteValue.Newcomment);\n\nexport const isRefactorCreationCreateCampaignWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.refactor_creation_create_campaign) >= 0;\n};\n\nexport const isPixelStandardWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.pixel_standard) >= 0;\n};\nexport const isAeoCboWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.aeo_cbo) >= 0;\n};\nexport const isTrafficCboWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.traffic_cbo) >= 0;\n};\nexport const isVVCboWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.vv_cbo) >= 0;\n};\nexport const isReachCboWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.reach_cbo) >= 0;\n};\nexport const isEngagementCboWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.engagement_cbo) >= 0;\n};\nexport const isDpaCboWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.dpa_cbo) >= 0;\n};\nexport const isLeadAdsCboWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.lead_ads_cbo) >= 0;\n};\nexport const isPcmPhase1White = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.pcm_phase1) >= 0;\n};\nexport const isPcmPhase2White = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.pcm_phase2) >= 0;\n};\n\nexport const isBudgetRecommendWhite = whiteHelper(whiteValue.budget_recommend);\n\nexport const isInMarketTargetWhite = whiteHelper(whiteValue.in_market_target);\nexport const isAutoTargetingEnabled = whiteHelper(whiteValue.AUTOMATED_TARGETING);\nexport const isBudgetReductionEnabled = whiteHelper(whiteValue.BUDGET_LIMIT_REDUCTION);\nexport const isDiagnosis2Point1 = whiteHelper(whiteValue.diagnosis_two_point_one);\n\nexport const isBulkEditWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.bulk_edit) >= 0;\n};\nexport const isAcoReportingUpgradeWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.aco_reporting_upgrade) >= 0;\n};\n\nexport const isIOS14MultipleTwoWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.ios14_multiple) >= 0;\n};\nexport const isIOS14MultipleFiveWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.dc_multiple_five) >= 0;\n};\n\n// 一对多的白名单,,分两种一种是1对2,一种是一对5\nexport const isIOS14MultipleWhite = () => isIOS14MultipleTwoWhite() || isIOS14MultipleFiveWhite();\nexport const isDiagnosisV2White = whiteHelper(whiteValue.diagnosis_suggestion_v2);\nexport const isSmbDiagnoseWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.smb_diagnose) >= 0\n || white_value.indexOf(whiteValue.smb_suggestion_v2) >= 0;\n};\nexport const isIOS14StatisticWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.ios14_only_cpc) >= 0\n || white_value.indexOf(whiteValue.ios14_mvp) >= 0;\n};\nexport const isIOSDialog = whiteHelper(whiteValue.ios14_dialog);\n// 命中ios14任意一种方案\nexport const hitIOSAnyOne = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.ios14_drop) >= 0\n || white_value.indexOf(whiteValue.ios14_only_cpc) >= 0\n || white_value.indexOf(whiteValue.ios14_mvp) >= 0;\n};\nexport const isModelSoleWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.modelSole) >= 0 && white_value.indexOf(whiteValue.modelSoleAmazon) >= 0;\n};\n\nexport const isLeadAdsWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.isLeadAds) >= 0;\n};\nexport const isVideoTrackLinkWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.videoTrackLink) >= 0;\n};\nexport const isStoreFrontsPlpWhite = whiteHelper(whiteValue.auction_collection_ads);\n\nexport const isBrandAuctionCAWhite = whiteHelper(whiteValue.brand_auction_collection_ads);\n\nexport const isCollectionAdsImageCardWhite = whiteHelper(whiteValue.collection_ads_image_card);\n\nexport const isCollectionAdsAppWhite = whiteHelper(whiteValue.collection_ads_app);\n\nexport default whiteValue;\nexport const isAgentCurrencyWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.currency_white) >= 0;\n};\n\n// 美国tt白名单\nexport const isMtUSWhite = whiteHelper(whiteValue.mt_us);\n\n// 多币种合同白名单\nexport const isBulkDownloadWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.bulkDownload) >= 0;\n};\nexport const isBulkUploadWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.bulkUpload) >= 0;\n};\n// app retarget白名单\nexport const isAppRetargetWhite = function () {\n const { white_value = [] } = window && window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.appRetarget) >= 0;\n};\nexport const isDeeplinkWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.deeplink) >= 0;\n};\nexport const isNewStructureWhite = function () { // 是url下沉后的app新结构的白名单\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.isNewStructure) >= 0;\n};\nexport const isDefferedDeeplinkWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.defferedDeeplink) >= 0;\n};\nexport const isRFWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.rf) >= 0;\n};\n\nexport const isRFRefactorWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.rf_fe_refactor) >= 0 && isRFWhite(); // 需要同时满足 rf 白名单和前端重构白名单\n};\n\nexport const isHideSuggestionListWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.hide_suggestion_list) >= 0;\n};\nexport const isCommentNewWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.comment_new) >= 0;\n};\n\nexport const isAppProfilePageSupportCostCap = whiteHelper(whiteValue.app_profile_page_support_cost_cap);\n\n// VO出价白名单\nexport const isVoAppInstallStandardWhite = whiteHelper(whiteValue.vo_appinstall_standard);\nexport const isVoAppInstallRoasWhite = whiteHelper(whiteValue.vo_appinstall_roas);\nexport const isVoConversionsAppStandardWhite = whiteHelper(whiteValue.vo_conversions_app_standard);\nexport const isVoConversionsAppRoasWhite = whiteHelper(whiteValue.vo_conversions_app_roas);\nexport const isVoConversionsWebStandardWhite = whiteHelper(whiteValue.vo_conversions_web_standard);\nexport const isVoConversionsWebRoasWhite = whiteHelper(whiteValue.vo_conversions_web_roas);\nexport const isVoDpaAppStandardWhite = whiteHelper(whiteValue.vo_dpa_app_standard);\nexport const isVoDpaAppRoasWhite = whiteHelper(whiteValue.vo_dpa_app_roas);\nexport const isVoDpaWebStandardWhite = whiteHelper(whiteValue.vo_dpa_web_standard);\nexport const isVoDpaWebRoasWhite = whiteHelper(whiteValue.vo_dpa_web_roas);\nexport const isVoPangleInstallRoasWhite = whiteHelper(whiteValue.vo_pangle_appinstall_roas);\nexport const isVoPangleInstallStandardWhite = whiteHelper(whiteValue.vo_pangle_appinstall_standard);\n\n// DPA支持app重定向\nexport const isDpaAppRetargetingWhite = whiteHelper(whiteValue.dpa_app_retargeting);\n\n// DPA支持app安装\nexport const isDpaAppInstallWhite = whiteHelper(whiteValue.dpa_app_install);\n\n// DPA支持website重定向\nexport const isDpaWebsiteRetargetingWhite = whiteHelper(whiteValue.dpa_website_retargeting);\n\n// DPA支持website非重定向\nexport const isDpaWebsiteProspectingWhite = whiteHelper(whiteValue.dpa_website_prospecting);\n\n// 支持商品库\nexport const isCatalogAssetWhite = whiteHelper(whiteValue.catalog_asset);\n\n// 历史遗留坑的处理:DPA相关的几个白名单任开一个,就认为可见DPA\n// https://bytedance.feishu.cn/docs/doccnIPhuos5RIiRHIsmDjAiaYe#\nexport const isDpaWhite = function () {\n return (\n isDpaAppRetargetingWhite() ||\n isDpaAppInstallWhite() ||\n isDpaWebsiteRetargetingWhite() ||\n isDpaWebsiteProspectingWhite()\n );\n};\n\n// DPA X Pangle支持app\nexport const isDpaPangleAppWhite = whiteHelper(whiteValue.dpa_inventory_flow_pangle_app);\n\n// DPA X Pangle支持msite\nexport const isDpaPangleWebsiteWhite = whiteHelper(whiteValue.dpa_inventory_flow_pangle_msite);\n\n// DPA支持投放Pangle(APP or msite)\nexport const isDpaPangleWhite = () => isDpaPangleAppWhite() || isDpaPangleWebsiteWhite();\n\nexport const isSmartBidStrategyWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.smart_bid_strategy) >= 0;\n};\nexport const isMaxConversionNoBidWhite = () => {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.max_conversion_no_bid) >= 0;\n};\n\n// vigo\nexport const isVigoWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.vigo) >= 0;\n};\n\nexport const isBrandSafetyWhite = function () {\n // const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n // return white_value.indexOf(whiteValue.brand_safety) >= 0;\n // 此功能暂未开启,暂且关闭\n return false;\n};\n\n/** 竞价三方品牌安全 */\nexport const isBrandSafetyFlagShipWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.brand_safety_flagship) >= 0;\n};\n\n/** 竞价三方品牌安全OpenSlate */\nexport const isOpenSlateWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.brand_safety_open_slate) >= 0;\n};\n\n/** 竞价三方品牌安全IAS */\nexport const isIasWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.brand_safety_ias) >= 0;\n};\n\n/** 一方品牌安全 */\nexport const isBrandSafetyInventoryWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.brandSafetyInventory) >= 0;\n};\n\n/** 新一方品牌安全 */\nexport const isNewBrandSafetyInventoryWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.newBrandSafetyInventory) >= 0;\n};\n\n// playable\nexport const isPlayableWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.playable) >= 0;\n};\n\n// 深度转化数据披露白名单\nexport const isDeepConvertWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.deep_convertion) >= 0;\n};\n\nexport const isSplitTestWhite = () => true;\n\n// Pangle投放图片\nexport const isPangleImageWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.pangle_image) >= 0;\n};\n\n// tiktok达人视频拉取 ,reach和videoview共用一个白名单\nexport const isNativeBrandAdWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.nativeBrandAdWhite) >= 0;\n};\nexport const isNativeAdTrafficWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.native_ad_traffic) >= 0;\n};\nexport const isNativeAdAppInstallWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.native_ad_appinstall) >= 0;\n};\nexport const isNativeAdAppConversionWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.native_ad_conversion) >= 0;\n};\nexport const isNativeAdRFWhite = whiteHelper(whiteValue.native_ad_rf);\n\n// split test创意层级\nexport const isSplitTestCreativeWhite = whiteHelper(whiteValue.split_test_creative);\n\n// 是否多shop归因白名单\nexport const isShopMultipleAttr = whiteHelper(whiteValue.shop_multiple_attribution);\n\n// https://wiki.bytedance.net/pages/viewpage.action?pageId=333075084\n// 印尼语语言码in改ID\n// https://wiki.bytedance.net/pages/viewpage.action?pageId=332691546\nexport const tbnrWhite = {\n // nr_tw: {\n // country: ['TW'],\n // language: ['zh-Hant'],\n // // InventoryType value List\n // },\n // bv_kr: {\n // country: ['KR'],\n // language: ['ko'],\n // rit: [11211084, 11211083, 11211009, 11211003, 11211001],\n // },\n bv_in: {\n // 印尼\n country: ['ID'],\n language: ['id'],\n rit: [11124003, 11124001],\n },\n bb_in: {\n // 印尼\n country: ['ID'],\n language: ['id'],\n rit: [11125003, 11125001],\n },\n};\n\n/**\n * 自助地域定向黑名单\n * wiki: https://bytedance.feishu.cn/docs/doccnh1AecyyO346BbT4ue5hp5e\n * 2020.3.16:再加上台湾中东等7个地区 (台湾,韩国,土耳其、沙特、阿联酋、埃及、巴西及其省份)\n * doc: https://bytedance.feishu.cn/docs/doccnDkQdw44vjg97m5MsrTNFCb\n * 2020-04-15 放开 俄罗斯、韩国、埃及\n * 2020-05-26 放开土耳其、沙特、阿联酋\n */\n// export const selfBlackCountryCode = ['RU', 'TW', 'KR', 'TR', 'SA', 'AE', 'EG', 'BR'];\nexport const selfBlackCountryCode = ['TW'];\n\n// 是否信用卡后付款白名单\nexport const isPostPayWhite = whiteHelper(whiteValue.postPay);\nexport const isEngagementWhite = whiteHelper(whiteValue.engagement);\n// 支持创意复制\nexport const isInCopyCreativeWhite = whiteHelper(whiteValue.creativeCopy);\n\n// CBOwhiteHelper\nexport const isCBOWhite = whiteHelper(whiteValue.campaign_budget_optimization);\n\n// CBO lifetime是否展示\nexport const isCBOLifetimeWhite = whiteHelper(whiteValue.campaign_budget_optimiza_lifetime);\n\n// CBO VO Highest Value\nexport const isCBOVOHighestValueWhite = whiteHelper(whiteValue.campaign_budget_optimize_vo_normal_highest_value);\n\n// CBO VO Min Roas\nexport const isCBOVOMinRoasWhite = whiteHelper(whiteValue.campaign_budget_optimize_vo_min_roas);\n/** 广告行业类型白名单 */\nexport const isIndustryTypeWhite = whiteHelper(whiteValue.industry_type);\n\n// MRC 指标白名单\nexport const isMRCWhite = whiteHelper(whiteValue.mrc_play_count);\n\n// 行为定向\nexport const isBehaviorWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.behavior_target) >= 0;\n};\n\nexport const isSplitTestBiddingWhite = whiteHelper(whiteValue.isSplitTestBidding);\n\n// 下沉Objetive的白名单\nexport const isSinkTrafficWhite = whiteHelper(whiteValue.traffic_sink);\nexport const isSinkConversionWhite = whiteHelper(whiteValue.conversion_sink);\nexport const isSinkReachWhite = whiteHelper(whiteValue.reach_sink);\nexport const isSinkVideoViewWhite = whiteHelper(whiteValue.videoview_sink);\nexport const isSinkDpaWhite = whiteHelper(whiteValue.dpa_sink);\n// 多图轮播\nexport const isCarouselImageCreativeAllowed_v1 = whiteHelper(whiteValue.carouselImage_v1);\nexport const isCarouselImageCreativeAllowed_v2 = whiteHelper(whiteValue.carouselImage_v2);\nexport const isCarouselImageCreativeAllowed = isCarouselImageCreativeAllowed_v1 || isCarouselImageCreativeAllowed_v2;\n// engagement指标的访问,六个任有其一就可以浏览\nexport const isEngagementMetricsWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n const {\n nativeBrandAdWhite, native_ad_traffic, native_ad_appinstall, native_ad_conversion, campaign_engagement, native_ad_rf,\n } = whiteValue;\n return [nativeBrandAdWhite, native_ad_traffic, native_ad_appinstall, native_ad_conversion, campaign_engagement, native_ad_rf]\n .some(key => white_value.includes(key));\n};\n// engagement指标中的 follow 白名单单独设置\nexport const isFollowMetricsWhite = whiteHelper(whiteValue.campaign_engagement);\n\n// 程序化赠送视频白名单\nexport const isAcoPresentedVideoWhiteList = whiteHelper(whiteValue.aco_presented_video);\n// 赠送视频2.0用于区分高/低风险地区白名单\nexport const isHightRiskAreas = whiteHelper(whiteValue.aco_presented_video_preview);\n\n// 无效流量指标白名单,控制未来竞价平台上的无效流量指标\nexport const isGrossImpressionMetricsWhite = function () {\n const { white_value = [] } = window.WHITE_LIST_OBJECT || {};\n return white_value.indexOf(whiteValue.gross_impression) >= 0;\n};\nexport const isCaptureImageFromVideoToolEnable = whiteHelper(whiteValue.captureImageFromVideoTool);\nexport const isPangleOcpxNobidWhite = whiteHelper(whiteValue.pangle_ocpx_nobid);\nexport const isPangleCPCNobidWhite = whiteHelper(whiteValue.pangle_cpc_nobid);\nexport const isInspectWhite = whiteHelper(whiteValue.inspect);\n// CTA文案优选白名单\nexport const isCtaAutoOptimizedWhite = whiteHelper(whiteValue.cta_auto_optimized);\n\n// 创意中心视频编辑器\nexport const isCreativeVideoEditorEnable = whiteHelper(whiteValue.creative_video_editor);\n// 雅典娜智能客服\nexport const isAthenaIntelligentCallerWhite = whiteHelper(whiteValue.athena_intelligent_caller);\n\n// 评论管理入口\nexport const isCommentManageWhite = whiteHelper(whiteValue.comment_manage);\n\n// 新普通创意接口白名单\nexport const isNewCreativeDetailWhite = whiteHelper(whiteValue.new_creative_detail);\n// 新程序化创意接口白名单\nexport const isNewCreativeProceduralDetailWhite = whiteHelper(whiteValue.new_creative_procedural_detail);\n// 新创意列表接口白名单\nexport const isNewCreativeListWhite = whiteHelper(whiteValue.new_creative_list);\n// 冷启动是否展示白名单\nexport const isColdBoot = whiteHelper(whiteValue.coldBoot);\n\nexport const isReportingV5White = whiteHelper(whiteValue.reporting_v5);\n\n// 跳转到重构后的创编流程\nexport const isRefactorCreationWhite = whiteHelper(whiteValue.refactor_creation);\n// smb跳转到重构后的创编流程\nexport const isSMBRefactorCreationWhite = whiteHelper(whiteValue.refactor_creation_smb);\n/** 定时预算白名单 */\nexport const isScheduledBudgetWhite = whiteHelper(whiteValue.scheduled_budget);\n\n// 默认禁止导入pclite白名单\nexport const isForbidPcliteRedirect = whiteHelper(whiteValue.s4smb_custom_mode);\n\nexport const isTargetingRecommendationWhite = whiteHelper(whiteValue.targeting_recommendation);\nexport const isTargetingRecommendationNewUIWhite = whiteHelper(whiteValue.targeting_recommendation_newui);\n\n// 是否开启附加创意自定义图片卡白名单\nexport const isAdditionalImageCardEnable = whiteHelper(whiteValue.additional_customized_image_card);\n\n/** 定向扩量白名单 */\nexport const isTargetingExpansionWhite = whiteHelper(whiteValue.targeting_expansion);\n\n/** 原生视频推广音乐白名单 */\nexport const isNativeMusicPromoteWhite = whiteHelper(whiteValue.native_music_promote);\n// 游戏礼包码卡片白名单\nexport const isAdditionalGameGiftCardEnable = whiteHelper(whiteValue.additional_customized_game_gift_card);\n// 落地页白名单\nexport const isAdditionalInstantPageCardEnable = whiteHelper(whiteValue.additional_customized_instant_page);\n// RF 落地页白名单,和竞价拆开\nexport const isAdditionalRfInstantPageEnable = whiteHelper(whiteValue.additional_rf_customized_instant_page);\n// 创意是否显示Identity组件\nexport const isCreativeHasIdentityWhite = () => whiteHelper(whiteValue.account_and_asset_linking)()\n || whiteHelper(whiteValue.new_identity)()\n || whiteHelper(whiteValue.attachement_creative_refact)();\n\n// 创编创意层级重构\nexport const isNewCreativeStyle = () => whiteHelper(whiteValue.attachement_creative_refact)();\n\n\n// aco上传素材限制是否解开\nexport const isAcoUploadUnLockWhite = whiteHelper(whiteValue.aco_max_upload);\n\n// 受众分析升级\nexport const isUpgradedViewDataWhite = whiteHelper(whiteValue.upgraded_viewdata);\n\n// 定向选项兴趣关键词白名单\nexport const isInterestKeywordsWhite = whiteHelper(whiteValue.interest_keywords);\n\n// 定向选型行为 hashtag 白名单\nexport const isHashtagWhite = whiteHelper(whiteValue.hashtag);\n\n/** 创意创建预览使用二维码白名单 */\nexport const isCreativePreviewWithQrcodeWhite = whiteHelper(whiteValue.creative_preview_with_qrcode);\n\n// 一键申诉白名单\nexport const isAuditRejectAppealEnable = whiteHelper(whiteValue.audit_reject_appeal);\n\n// 审核雅典娜工单入口白名单\nexport const isContactServiceWhite = whiteHelper(whiteValue.contact_service);\n\n// ad.site.statistics_i18n 报告接口迁移tt_ads\nexport const isReportingTTAdsWhite = whiteHelper(whiteValue.reporting_ttads);\n// app Profile Instant page 白名单\nexport const isAppProfileInstantPageEnable = whiteHelper(whiteValue.app_profile_instant_page);\n\n// 商品库资产化白名单\nexport const isCapitalization = whiteHelper(whiteValue.capitalization);\nexport const isTransferredCapitalize = () => whiteHelper(whiteValue.need_capitalized)() && isCapitalization();\n\nexport const isAutomatedRulesWhite = whiteHelper(whiteValue.automated_rules);\n\nexport const isRFEngagementWhite = whiteHelper(whiteValue.rf_engagement);\nexport const isRFSupportWip = whiteHelper(whiteValue.rf_support_wip);\nexport const isRFOnlySupportWip = whiteHelper(whiteValue.rf_only_support_wip);\n\n// ACO支持CTA优选白名单\nexport const isAcoSupportCtaOptimizedWhite = whiteHelper(whiteValue.aco_support_cta_optimized);\n\n// TTBA 原生推视频\nexport const isTTBAPushNativeVideoAllowed = whiteHelper(whiteValue.ttba_push_native_video);\n\n// 合拍&跟拍 双授权\nexport const isDoubleAuthorizationWhite = whiteHelper(whiteValue.tiktok_duet_stitch_auth);\nexport const isRFAppinstall = whiteHelper(whiteValue.rf_appinstall);\n\n// Shop ads\nexport const isShopWhite = whiteHelper(whiteValue.shop);\nexport const isShopLiveWhite = whiteHelper(whiteValue.SHOP_LIVE);\nexport const isVideoShoppingMultiProductsWhite = whiteHelper(whiteValue.video_shopping_multi_products); // video shopping多商品\n\n// searchAds 白名单\nexport const searchAdsWhite = whiteHelper(whiteValue.search_ads);\nexport const searchAdsPreviewWhite = whiteHelper(whiteValue.search_ads_preview);\n\nexport const tiktokPlayableAdsWhite = whiteHelper(whiteValue.tiktok_playable_ads);\nexport const isLeadAdsCrmWhite = whiteHelper(whiteValue.lead_ads_crm);\n\nexport const isSplitTestSupportIOS14White = whiteHelper(whiteValue.split_test_support_ios_14);\n\nexport const isSupportGesture = whiteHelper(whiteValue.rf_gesture);\nexport const isSupportPaintedEgg = whiteHelper(whiteValue.rf_painted_egg);\n\nexport const disclaimerWhite = whiteHelper(whiteValue.disclaimer);\nexport const rfDisclaimerWhite = whiteHelper(whiteValue.rfDisclaimer);\n\nexport const isNewIdentityWhite = whiteHelper(whiteValue.new_identity);\n\n/** [TTP] 白名单 */\nexport const isHasTTPWhite = whiteHelper(whiteValue.ttp_support);\n/** [Clover] 白名单 */\nexport const isHasCloverWhite = whiteHelper(whiteValue.ads_manager_clover);\n\n// TTP 统计接口白名单\nexport const isTTPStatisticsApiWhite = whiteHelper(whiteValue.ttp_statistics_api);\n\n// Instant Page - Custom Instant Page/Collection Ads白名单\nexport const isInstantPageWhite = () => isStoreFrontsPlpWhite() || isBrandAuctionCAWhite() || isAdditionalInstantPageCardEnable();\n\nexport const isRFSupportDMP = whiteHelper(whiteValue.rf_dmp);\n\nexport const isRFSupportPI = whiteHelper(whiteValue.rf_pi);\nexport const isContextTarget = whiteHelper(whiteValue.context_target);\nexport const isPremiumTopic = whiteHelper(whiteValue.context_target_premium);\n\nexport const isVideoUploadfrontPrecheckWhite = whiteHelper(whiteValue.videoUploadfrontPrecheck);\n\nexport const isMoatWhite = whiteHelper(whiteValue.moat_tagless);\nexport const isViewIASWhite = whiteHelper(whiteValue.track_view_IAS);\nexport const isDVWhite = whiteHelper(whiteValue.track_DV);\n\nexport const isZefrWhite = whiteHelper(whiteValue.zefrWhite);\nexport const isBsIasWhite = whiteHelper(whiteValue.bsIasWhite);\nexport const isBsDvWhite = whiteHelper(whiteValue.bsDvWhite);\n\n// TTP 受众分析业务白名单\nexport const isTTPStatisticsWhite = whiteHelper(whiteValue.ttp_viewdata_reporting);\n\n// TTP 内部用户 Banner 展示白名单\nexport const isTTPBannerWhite = whiteHelper(whiteValue.ttp_banner);\n\n// TTP 2fa 白名单\nexport const isTTP2FAWhite = whiteHelper(whiteValue.ttp_2fa);\n\n// TTP UV Reporting 白名单\nexport const isTTPUVWhite = whiteHelper(whiteValue.ttp_uv);\n\nexport const isBulletboardWhite = whiteHelper(whiteValue.bulletboard);\nexport const isSupportCreativeMode = whiteHelper(whiteValue.rf_creative_mode);\n\n// CMO 二期 白名单\nexport const isCMOV2White = whiteHelper(whiteValue.cmo_v2);\n\nexport const isDPASupportImage = whiteHelper(whiteValue.dpa_image);\n\nexport const isSupportPangleImage = (isDpa = false) => (isDpa ? isDPASupportImage() : isPangleImageWhite());\n\n// CMO 支持 名称排序白名单\nexport const isCMONameSortWhite = whiteHelper(whiteValue.cmo_name_sort);\n\n// shop live ads优化目标支持product click\nexport const isLiveSupportProductClick = whiteHelper(whiteValue.shop_live_optimize_goal_product_click);\n\n// shop live ads优化目标支持initate\nexport const isLiveSupportInitateCheckout = whiteHelper(whiteValue.shop_live_optimize_goal_initate_checkout);\n\n// shop live ads优化目标支持complete payment\nexport const isLiveSupportCompletePayment = whiteHelper(whiteValue.shop_live_optimize_goal_complete_payment);\n\n// 预定活动开发90天\nexport const isRf90DaysDelivery = whiteHelper(whiteValue.rf_90_days__delivery);\n\n// 列表页 identity filter 披露白名单\nexport const isIdentityFilterWhite = () => whiteHelper(whiteValue.new_identity)() || whiteHelper(whiteValue.account_and_asset_linking)();\n// 是否支持素材库首页\nexport const isLibraryDashboardWhite = whiteHelper(whiteValue.library_dashboard);\n\n// 复制rf广告组白名单\nexport const isRfAdgroupCopy = whiteHelper(whiteValue.rf_adgroup_copy);\n// Campaign List 汇总行拆分请求白名单\nexport const isPerfTotalAsyncWhite = whiteHelper(whiteValue.perf_total_async);\n\n// 医药资质判断\nexport const isPharmacyQualificationWhite = whiteHelper(whiteValue.pharmacy_qualification);\n// 短时切换 Tab 使用缓存\nexport const isPerfListCacheWhite = whiteHelper(whiteValue.perf_list_cache);\n// 表格优化:固定列+虚拟展示\nexport const isPerfTableOptimizeWhite = whiteHelper(whiteValue.perf_table_optimize);\n// 音乐资质简洁流程白名单\nexport const isMusicSimplifiedAllowed = whiteHelper(whiteValue.music_qualification_simplified_submission);\n// URL在Edit场景下是否可编辑\nexport const isSupportURLEditWhite = whiteHelper(whiteValue.URL_SUPPORT_EDIT);\n// Campaign List 按需请求白名单\nexport const isRequiredCreativeWhite = whiteHelper(whiteValue.required_creative);\n// 隐藏优化事件\nexport const isHideOptimizationEventWhite = whiteHelper(whiteValue.hide_pixel_event);\n\n// 搜索广告明投白名单判断\nexport const isSearchAdsMtWhite = whiteHelper(whiteValue.search_ads_mt);\n// 是否支持 Split Test 投中入口\nexport const isSplitTestEntryWhite = whiteHelper(whiteValue.split_test_entry);\n\nexport const isHtcWhite = whiteHelper(whiteValue.htc);\n\n// Dashboard 接口优化\nexport const isDashboardApiOptimizeWhite = whiteHelper(whiteValue.dashboard_api_optimize);\n// dsa*ca新增白名单\nexport const isDsaWithCollectionAdWhite = whiteHelper(whiteValue.dsa_with_collection_ad);\n// 是否支持shop product anchor投放\nexport const isShopProductAnchor = whiteHelper(whiteValue.shop_ads_product_anchor);\n// dc aeo支持cost cap\nexport const isAeoDcCostCapWhite = whiteHelper(whiteValue.aeo_dc_cost_cap);\n// hhi白名单判断\nexport const isHhiWhite = whiteHelper(whiteValue.high_household_income);\n\n// dsa * ca迁移白名单\nexport const isSupportDSAAndCAMigration = whiteHelper(whiteValue.migration_dsa_ca);\nexport const isSupportDSAAndCANoMigration = whiteHelper(whiteValue.migration_dsa_ca_no_migrate);\nexport const isSupportMigrationPhaseTwo = whiteHelper(whiteValue.migration_dsa_ca_phase_two);\nexport const isSupportMigrationPhaseThree = whiteHelper(whiteValue.migration_dsa_ca_phase_three);\nexport const isSupportMigrationPhaseFour = whiteHelper(whiteValue.migration_dsa_ca_phase_four);\n\n// 在迁移白名单且不在迁移豁免白名单\nexport const isMigrationDSAAndCAWhite = () => isSupportDSAAndCAMigration() &&\n !isSupportDSAAndCANoMigration();\nexport const isMigrationPhaseOneWhite = () => isMigrationDSAAndCAWhite() &&\n !isSupportMigrationPhaseTwo();\nexport const isMigrationPhaseTwoWhite = () => isMigrationDSAAndCAWhite() &&\n isSupportMigrationPhaseTwo();\nexport const isMigrationPhaseThreeWhite = () => isMigrationDSAAndCAWhite() &&\n isSupportMigrationPhaseThree() &&\n !isSupportMigrationPhaseFour();\n\nexport const isMigrationPhaseFourWhite = () => isMigrationDSAAndCAWhite() &&\n isSupportMigrationPhaseFour();\n\n// 禁用 SHOP PURCHASE 的 新增\nexport const isShopMigration = whiteHelper(whiteValue.migrate_shop_purchase);\n// 豁免 SHOP PURCHASE 的 新增\nexport const isShopNoMigration = whiteHelper(whiteValue.migrate_shop_purchase_exclude);\n// 是否禁用 SHOP PURCHASE 的 新增\nexport const isShopCreateDisabled = () => isShopMigration() && !isShopNoMigration();\n\n// 禁用 SHOP PURCHASE 的 复制、修改\nexport const isShopMigrationPhase2 = whiteHelper(whiteValue.migrate_shop_purchase_phase2);\n// 豁免 SHOP PURCHASE 的 复制、修改\nexport const isShopNoMigrationPhase2 = whiteHelper(whiteValue.migrate_shop_purchase_edit_copy_exclude);\n// 是否禁用 SHOP PURCHASE 的 复制、修改\nexport const isShopEditCopyDisabled = () => isShopMigrationPhase2() && !isShopNoMigrationPhase2() && isShopCreateDisabled();\n\n// 自动规则相关===\n/** @desc 自动规则——是否支持新版本run schedule + run once功能 */\nexport const isAutomaticRuleRunOnce = whiteHelper(whiteValue.automatic_rule_support_new_schedule);\n"],"names":["STATUS_DISABLE","STATUS_PENDING_CONFIRM","STATUS_AGENCY","STATUS_PENDING_VERIFIED","STATUS_CONFIRM_FAIL","STATUS_ENABLE","STATUS_CONFIRM_FAIL_END","STATUS_PENDING_CONFIRM_MODIFY","STATUS_CONFIRM_MODIFY_FAIL","STATUS_PUNISH","STATUS_WAIT_FOR_BPM_AUDIT","STATUS_SELF_SERVICE_UNAUDITED","STATUS_ENABLE_AND_AVATAR_AUDITING","STATUS_WAIT_FOR_BPM_FILE_CONTACT","STATUS_WAIT_FOR_ACCOUNT_FEE","STATUS_WAIT_FOR_PUBLIC_AUTH","STATUS_BUSINESS_MANAGER","MUSIC","MEDICINES","auditStatus","NOT_SUBMIT","NOT_STARTED","UNDER_REVIEWING","APPROVAL","REJECT","EXPIRE","INVALID","ADMIN","AGENT","REFUND","AGENT_RELATE","CREDIT_CARD_DEDUCTION_FAIL","OVERDUE_PAYMENT","NON_TRADE_COMPLIANCE","aduitStatusMap","label","value","CREATION_MODE_BTN","CLOSE_ARABIC_TIPS","POST_INVOICE_CONFIRM","AD_MODE","OBSERVER","OPERATOR","bcRole","ANALYST","bcRoleMap","name_i18n","accountOwnerType","BC","PERSONAL","accountOwnerTypeMap","window","location","protocol","host","BOE_BC_HOST","CURRENT_BC_HOST","isNormal","isBOE","BC_ORIGIN","BC_HOME_URL","BC_AD_ACCOUNT_URL","bc_info_url","dashboard","dashboardData","newDashboardData","dashboardAudience","newDashboardAudience","dashboardCost","dashboardDeparting","newDashboardDeparting","dashboardAccountStatus","newDashboardAccountStatus","optimizeDashboardAccountStatus","dashboardSuggestion","newDashboardSuggestion","optimizeDashboardSuggestion","suggestionFilters","newSuggestionFilters","getBulletBoardData","getShopifyDialogStatus","getShopifyType","ad","info","update","create","newUpdate","newCreate","copy","nav_list","ad_list","operator_map","checkAdGroup","checkNewAdGroup","update_status","batch_update_bid","action_opts","custom_audience","suggestion_filter","update_name","context","ad_id","update_bid","update_budget","update_scheduled_budget","update_budget_task","procedural_audit_detail","get_app_list","get_pixel_list","get_pixel_event_list","get_pixel_info_by_pixelId","get_behavior_list","get_action_categort","get_device_model_list","search_interest_keywords","get_interest_keywords_info","search_keywords","get_keywords_info","breakdown_report_stat","new_breakdown_report_stat","ttp_breakdown_report_stat","breakdown_download_trail_url","new_breakdown_download_trail_url","breakdown_download_url","frequency_projected_stat","new_frequency_projected_stat","frequency_download_trail_url","new_frequency_download_trail_url","frequency_download_url","new_frequency_download_url","total_cost","new_total_cost","new_breakdown_download_url","ttp_breakdown_download_url","list","newList","newStatisticList","suggestions","download_url","new_promote_download_url","ttp_promote_download_url","new_download_url","new_statistic_download_url","report_stat","new_report_stat","download_trail_url","new_download_trail_url","checkAppInstallType","audience_estimate","app_event_list","budgetRecommend","budgetRecommendReturn","getImpression","audience_analysis_ad","audience_analysis_creative","audience_analysis_compaign","audience_analysis_download","new_audience_analysis_download","ttp_audience_analysis_download","preview_create","preview_qr","package_parse","image_material_list","video_material_list","promotion_url_recommend","get_price_suggest","get_split_price_suggest","getSplitTestBudget","getPower","splitTestAuEstimate","bulkEditBudgetCheck","bulkEditBudgetUpdate","bulkEditBidUpdate","bulkEditBidCheck","bulkExportUrl","bulkExportPollUrl","bulkUploadAds","bulkUploadAdsAnalyse","bulkUploadAdsPollAnalyse","bulkUploadAdsAnalyseErrorDownload","bulkCreateAds","bulkPollCreateAds","bulkCreateAdsErrorDownload","bulkGetIOSNumber","bulkUserVersion","bulkExportNum","bulkUserUpdate","checkTrackUrl","adAuditRejectReason","creativeAuditRejectReason","adInspectRejectReason","auditRejectAppeal","auditRejectAppealV2","realLivAuditRejectAppealV2","appealImageUpload","aeoUnlock","rfContractTime","rfOrderCancel","stockEstimate","allowCountries","notifyUserList","suggestBid","checkVideoMusic","pangleFlowPkg","operationSystemList","learnParse","campaignQuota","getAppIdInWhiteList","getIos14AdgroupQuota","getIos14CampaignQuota","targetingRecommendation","allLanguagesList","getCBOBid","externalUrlDomain","getMaterialStat","updateCreativeStatus","updateName","checkName","getShadowTags","splitTestToAll","splitTestStopTest","voStatus","negative_keywords_list","add_negative_keywords","modify_negative_keywords","delete_negative_keywords","download_negative_keywords","assetDetail","contextualTags","contextualTagsInfo","campaign","dashboardStatisticList","checkCampaign","audience_dim_filter","updateBudget","checkBudget","updatePoNumber","campaign_list","assign_campaign","creative","delete","appInfo","new_info","new_procedural_info","new_list","verify","video_repeat_check","video_generator_check","video_generator_check_v2","video_info","catalog_video_info","create_generic","video_plum","cover_process","music_auth","video_info_v2","video_info_v3","libAuthIsDefaultOn","statList","newStatList","requiredStatisticList","list_from_ad","leadAdsForm","protocalQuery","leadAdsExport","leadAdsExportDownload","leadAdsExportDownloadVa","leadAdsProtocalSign","getLeadAdsFormDetail","quick_optimization_tools","optimizeGiveVideoTwo","quick_optimization_lite","precheck","batchClipImage","smart_text_tools","smart_translation_tools","creative_tools_choose","creative_tools_video_editor","front_creative_tool","getVideoCoverUrisByVids","fetchVideoCopyright","captureImagesFromVideo","fetchVideoLisFromLibrary","storefrontPageDetail","protocolQuery","protocolSign","entryNotification","leadConnectorAuth","leadRedirect","getPositionFormatList","get_cta_recommend_list","save_cta_optimized_list","get_cta_optimized_detail","copy_cta_optimized_id","fetch_hot_music_list","check_video_volume","app_data","challengeAudit","urlPrecheck","realTimePrecheck","get_playable_info_by_url","create_additional_creative_customized_image_card","get_additional_creative_card_info","validate_promote_music","get_additional_creative_page_info","get_additional_creative_engagement_info","creative_id","get_additional_creative_info","identity_list","identity_list_v2","identity_save","get_identity_info","native_video_list","fetch_video_render_result_by_uids_batch","creative_video_render_task_retry","batch_change_lib_video_name_by_vid","fetch_video_bgm_supplement","get_country_number_codes_by_char_codes","get_custom_instant_page_template_list","getIdentityStatus","getOpenUrl","getStickerInfo","bsThridPartySupportCountries","brandSafetyAuthority","playable_ads_uploader_url","playable_ads_preview_tool_url","uploadVideoPrecheckFix","uploadVideoPrecheckFixCheck","get_origin_video_info","fillImageByBlur","checkImageIsCover","app_profile_instant_page_editor","custom_instant_page_editor","custom_instant_page_from_library","attachment_creative_editor","triggerTitleBlur","smartTitleSuggestion","trackTitleSuggestion","trackSubmitTitleSuggestion","attachmentAsset","transaction","export","newExport","download","newDownLoad","invoice","new_invoice","paymentsList","costsList","taxList","account","contact_info","passport","permission","extra","billing_info","all_timezone_list","ad_info","white_list","notification_msg","advertiser_chart","advertiser_avatar","get_new_msg","get_notification","get_notification_conf","post_notification_conf","logout","getLogoutUrl","oauth","accountList","accountUpdate","firstPostAccountInfo","getGeoByCode","getGeoByCodeNew","getReginNameByCode","cancel_account","name_exist","check_tax_vat","punish_info","get_industry_nations","get_delivery_nations","get_industry_list","get_industry_rules_by_nation","get_industry_rules_by_name","get_account_rules","post_industry_rule_verify","post_industry_rule_delete","dataPrivacy","verificationStatus","sharkPayment","IOSDialogDone","dedicatedTime","getQualificationList","deleteQualification","postMedicineQualification","getQualificationUrls","getRecordCompanies","postMusicQualification","userCustomerName","upgradeInfo","bcOwnDetails","checkIptTextLanguage","checkHasNeedPostInvoiceInfo","getTTPFlag","common_tcc","PONumber","canChangeBusinessName","checkTTCMAccount","bc","bc_manage_list","account_remove_bc","billing_config","payment","balance","rf_balance","cardInfo","credit","charge_info","statistics_charge_info","ready","get_creditline_quota","increase_amt_balance","get_decrease_state","decrease_amt_balance","apply_creditline","getChargeTax","verifyReloadAmount","threshold_info","threshold_switch","paymentBalance","getBindLink","subPrePay","getPayNowLink","paymentChange","canApplyMonthlyInvoiceForSelfServe","checkHistoryBill","billing_share_banner","stop_billing_setting","get_billing_setting","get_billing_share","set_billing_setting","get_billing_owner","get_change_pay_method","reporting","save_reporting","new_save_reporting","new_run_reporting_trail_url","new_run_reporting_download_url","reporting_info","new_reporting_info","delete_reporting","new_delete_reporting","get_templates","new_get_templates","new_download","log_info","new_log_info","template_update","simplifiedSmb","adgroup","get_user_draft_checked","check_and_update_user_draft","all","submit_saved","ad_category","new_ad_category","areasList","imageUploadUrl","imageUploadUrlSecret","imageUploadUrlLibrary","enclosureUploadUrl","enclosureDownload","interestOption","manageSysMsg","splashUploadUrl","videoCovers","create_ad","qualification","captcha_url","captcha_eamil","password_reset","videoUpload","videoUploadKey","app_info","tea_url","bpmRegister","industryList","selfIndustryList","openapi_adver_info","openapi_sign","toolbox","logs","convert_create","convert_update_status","convert_edit","convertId","conversionUpdate","partnerList","appInfoUpdate","logs_refactor","logs_info","logs_list","download_get_id","task_download","dashboard_log_list","dmp","custom_content","detail","newDetail","newDelete","library","playable_list","new_playable_list","playable_export_create","playable_export_download","video_list","image_list","material_list","native_list","tt_user_list","export_create","export_download","playable_validate","playable_validate_result","playable_create","image_create","native_create","get_native_info","delete_native_info","double_authorize_native_info","playable_delete","image_delete","video_delete","playable_update_name","image_update_name","video_update_name","check_name_exist","notify","notify_list","click","read","config","categoryInfo","readAll","getOne","help","article","crm","customer_info","register","whale_token","lite_open_check","catalogue","dpaIndex","getAll","catalogInfo","lexicon","platformId","getVideoPackages","getDvgMeta","getPreviewMeta","getProduct","getProductList","advancedGetList","getAvailableLocation","getPreviewData","checkProductTargetUrl","catalogueId","deeplinkCheck","id","getVGTemplate","checkAuthorized","checkAvailable","getProductInfo","queryByCondition","productSetList","tanblock","upload","idCode","splittest","save","result","adDetail","metrics","newMetrics","exclude","total","optimizeGoal","user","promotion","register_v3","selfInvite","postSurvey","athenaInfo","athenaFormDetail","athenaOrderCreate","leadCreate","dailycap","plan_download","plan_check","contract","getShownContract","assignDsa","getAssignDsaInfo","smb_support","get_payment_status","creation_mode","statusNotification","close","refund_status","submit","check_all_ads_off","bill_status","libra","abtest","abtestByTraceSid","rfuSuggestion","getSuggestions","tutorial","get_status","email_touch","inspect","diagnosisNobid","diagnosisConsumption","diagnosisActionHistory","reportDiagnosisAction","diagnosisSuggestion","diagnosisSuggestionBid","diagnosisSuggestionBudget","lastDate","funnel","participating","targeting","auction","overall","editBid","smbReport","smbCheck","diagnosisLibra","diagnosisLibraV2","promotion_coupon","code_recharge","coupon_list","deduction_voucher_list","ad_credits","standard_coupons","comment","getCommentList","getCommentListNew","updateCommentStatus","getCommentInfoById","getBlockedWordsList","deleteBlockedWords","checkBlockedWordsExist","updateBlockedWord","addBlockedWords","exportCreateCommentList","exportDownloadCommentList","exportCreateBlockedWords","exportDownloadBlockedWords","getAdListByKeyword","getCommentCreate","getCreativeByKeyword","getTopComment","setTopComment","replyComment","deleteComment","getCommentUserInfo","getCommonWords","exportCreateCommonWords","exportDownloadCommonWords","deleteCommonWords","checkCommonWordsExist","addCommonWords","updateCommonWords","updateLikeComments","efficientTool","createPlan","getPlan","createVersion","updateVersion","getVersion","shop","getStore","getStoreInfo","getSpuProduct","catalogId","createProductSet","getShopCount","instantPage","getTemplateList","getTemplateInfo","publish","pageId","getShopAdsPreviewData","draft","getCheckedDraft","deleteDraft","rf_apply","includes","XS","S","M","L","XL","XXL","CREATE_CAMPAIGN","CREATE_AD_GROUP","CREATE_AD","COPY_CAMPAIGN","COPY_AD_GROUP_TO_NEW_CAMPAIGN","COPY_AD_GROUP_TO_EXISTED_CAMPAIGN","COPY_AD_TO_NEW_CAMPAIGN_AD_GROUP","COPY_AD_TO_EXISTED_CAMPAIGN_AD_GROUP","COPY_AD_TO_EXISTED_CAMPAIGN_NEW_AD_GROUP","BRAND_AD_BULK_COPY","NOT_SUPPORT_INSTANT_PAGE","i18nKey","NOT_SUPPORT_COLLECTION_ADS","SINGLE_VIDEO","AD_TYPE","CATALOGUE_VIDEO","AppInstall","campaignObjectiveValue","Conversion","Traffic","Reach","VideoView","RF","RF_VV","RF_ENGAGEMENT","RF_TRAFFIC","RF_APPINSTALL","LeadAds","customizedAdditionalCreativeObjectiveTypes","additionalCreativeCustomizedImageCardEnableInfo","objectiveType","inventoryFlow","INVENTORY_FLOW","TIKTOK","adTypes","additionalCreativeGameGiftCardEnableInfo","normalAdditionalInstantPageEnableInfo","additionalAppProfileInstantPageEnableInfo","additionalInstantPageEnableInfo","Set","isUserEnable","adType","isObjectTypeEnable","EnableInventoryFlowList","isInventoryFlowEnable","length","isAdTypeAllowed","getIsAppProfileInstantPageEnable","isAppProfileInstantPageUserEnable","isIos14Creative","isInstall","isAppProfilePageOpen","getIsCustomInstantPageEnable","isAppDownload","isNormalInstantPageUserEnable","params","COLLECTION_ADS_ENABLE_CONFIG","identityTypeMap","UN_SET","FAKE_USER","AUTH_CODE_USER","TT_USER","BC_SELF_TT","BC_AUTH_TT","NATIVE_AD_IDENTITY_TYPES","identityType","Array","isArray","_","intersection","identityAvailableStatus","Available","NO_VALID_BIND_ACCOUNT","SCOPE_UNAVAILABLE","IS_PRIVATE_ACCOUNT","NOT_BUSINESS_ACCOUNT","NO_DATA","IS_PRIVATE_POST","NOT_IDENTITY","USER_NO_PRIVILEGE","NO_LIVE_PREMISSION","BC_NO_VALID_BIND_ACCOUNT","BC_NO_VIDEO_RIGHT","BC_UN_BIND_ACCOUNT","BC_NO_LIVE_RIGHT","normalAdIdentityTypes","nativeAdIdentityTypes","externalTypeAuthMap","Scenario","ShortVideo","Live","bcIdentityTypesList","JUDGE_IDENTITY_PERMISSION_LIST","IDENTITY_NAME_MAP","i18n","unavailableI18n","desc","hoverDesc","icon","disabledIcon","UNAVAILABLE_IDENTITY_ACCOUNT_STATUS_MAP","name","authorizationDesc","editUnAvailableDesc","reAuthorizationDesc","hasNoVideoDesc","bannerAlertDesc","UNAVAILABLE_IDENTITY_TYPE_MAP","IsAvalable","IsObjectiveUnsupportNative","IsObjectiveUnsupportNormal","IsHasNoTiktok","IsAcoAd","IsEditNormalAd","IsEditNativeAd","IsEditAcoAd","UNAVAILABLE_IDENTITY_PROMPT_MAP","SHOP_ADS_UNAVAILABLE_TTBA_ACCOUNT_TYPE_MAP","adGroupBannerAlertDesc","IDENTITY_OP_SWITCH_DISABLED_KEY_MAP","NOT_CONTAIN_TT_REASON","DISABLED_ACO_REASON","DISABLED_OBJECTIVE_NOT_NATIVE_REASON","DISABLED_OBJECTIVE_NOT_NORMAL_REASON","DISABLED_IS_FIRST_CREATE_CUSTOM_REASON","DISABLED_NORMAL_TO_NATIVE_REASON","DISABLED_NATIVE_TO_NORMAL_REASON","IDENTITY_OP_SWITCH_DISABLED_MAP","IDENTITY_FEEL_GOOD_MAP","IDENTITY_VALIDATION_ERROR_TEXT","currencyLocale","BR","currency","precision","lang_code","apply_lang","separator_symbol","LAST_SEVEN_DAYS","key","val","TODAY","YESTERDAY","LAST_THREE_DAYS","LAST_THIRTY_DAYS","LAST_MONTH","THIS_MONTH","LAST_THREE_MONTH","LAST_QUARTER","LAST_FOURTEEN_DAYS","THIS_WEEK","LAST_WEEK","CUSTOM","LIFETIME","TWENTY_EIGHT","chosen","unchosen","version","sort_stat","sort_order","page","limit","scene","list_version","page_view_scene","st","et","query_list","eu_compliance","lifetime","relative_time","compare_st","compare_et","keyword","search_type","selection_filter","campaign_status","ad_status","opt_status","creative_status","objective_type","pricing","placement_id","image_mode","item_source","smart_creative_material_mode","ab_test","having_filter","country","province","city","particle_locations","bid_strategy","age","gender","diagnosis_detail","dedicate_type_profile_page_type","selection_ids","ad_ids","campaign_ids","creative_ids","dpa_local_audience","optimize_goal","promotion_type","flow_control_mode","ad_entity_type","creative_material_mode","campaign_category","budget_optimizer_switch","app_campaign_type","universal_type","destination","ecomm_type","is_attr_required","satisfaction","openAccount","dataFunction","promotionManagement","adCreate","createTool","deliveryEffect","audit","operatingEfficiency","test","batch","diagnosis","aco","viewdata","smbSuggestion","newUser","viewAudit","useCreativeTool","completeCreation","completeAdDelivery","turnOffAco","openViewData","useCustomIdentity","useTtaIdentity","useTtbaIdentity","accountSuspend","de","en","es","fr","it","ja","ko","ms","ru","th","tr","vi","zh","ar","region","ORIGIN","COMPRESS_WEBP","COMPRESS_IMAGE","BOE_I18N","GCP_SSO_HOST","GCP_SSO_URL","GCP_SSO_LOGOUT","origin","TRAFFIC","CONVERSION","DPA","LEAD","CATALOG_BASE","CATALOG","catalog","product","productSet","videoList","eventSources","PLAN","english","japanese","portuguese","german","french","italian","spanish","russian","pt","StepActiveRoutes","STEP_1_ACCOUNT_REVIEW","STEP_2_ADD_PAYMENT","STEP_3_CREATE_AD","TO_FIX_REVIEW_DIS_APPROVED","btnWhiteList","Object","values","reduce","item","NewTaskWhiteRouteList","OBJECTIVE","PIXEL","TARGETING","BUDGET","BID","FORMAT","MSGTYPE_VAT_TH","Symbol","MSGTYPE_VAT_KR","MSGTYPE_VAT_SG","red","orange","blue","closeNoti","PREDIT","CREDIT","CREDIT_LINE","default","costPay","chargePay","creditlineApplyStatus","LIMIT","CAN_APPLY","REJECTED","UNDER_ADDINFO","display","notDisplay","url","return_url","isSelfAccount","store","getters","adverId","paymentUrl","destUrl","encodeURIComponent","report_url","athenaLink","SUCCESS","FAIL","PAY","CREATE","DID_MOUNT","CAN_SUBMIT","CANNOT_SUBMIT","SUBMITTED","STATUS_RESULT","PAYMENT_TRANSFER","MANAGER_DELETE_CARD","TRIGGER_SUBMIT","TRIGGER_OPEN_PAYMENT_TRANSFER","TRIGGER_CLOSE_NEW_TAB","TRIGGER_OPEN_MANAGER_ADD_CARD_MODAL","TRIGGER_REFRESH_MANAGER_LIST","UPAY_SUCCESS","UPAY_FAIL","UPAY_PIXEL_FINISHED","AMOUNT_SUBMIT","MANAGER_DELETE_PAYMENT","QUAL_PREPAY_SUCCESS","QUAL_POSTPAY_SUCCESS","QUAL_PREPAY_FAIL","QUAL_POSTPAY_FAIL","PREPAY_SDK_MODAL_BACK","CREDIT_PERIOD_LOADED","REFRESH_MANAGER_LIST","BIND","CHANGE","language","SECURE_ORIGIN","GET_STARTED_PIXEL_URL","PRE_PAY","BINDCARD","PAY_UNPAID_BILL","MOUNTED","FINISH","SHOPIFY","AD_MANAGER","QUALIFICATION","PAYMENT","SDK_USE","SDK_NOT_USE","SELECT","INPUT","$this","listenerConfig","entries","refStr","refConfig","$refs","eventName","listener","$on","SHOW_AD_CREATE_DIALOG","CLOSE_AD_CREATE_DIALOG","SKIP_AD_CREATE_PAYMENT","PAYMENT_RESOLVE","PAYMENT_PIXEL_FINISHED","UPAY_LINK_READY","SUCCESS_UPAY","FAIL_UPAY","SourceMode","NONE","SIMPLIFIED","SIMPLIFIED_05","CUSTOM_AUTOMATED","CUSTOM_ACCOUNT_INFO","CUSTOM_BANNER","CUSTOM_TRANSACTION","MANAGER_CREATION_NORMAL","MANAGER_CREATION_AUTOMATIC","TIKTOK_BUSINESS_PLUGIN","FAST_QUALIFICATION_PAGE","FAST_ONBOARDING_PAGE","TTAM_PANDA","TTAM_PANDA_AUTOMATED","SourceModeTitleMap","keys","NOE_SHARE","CUR_SHARE","CUR_NOT_SHARE","UNLIMITED","MI_MODE","UPGRADE_PAY_STATUS","DISABLE","UNDER_CURRENT_METHOD","UPGRADE_PAY_STATUS_MAP","ROLE_ADVERTISER","ROLE_AGENT","ROLE_VIRTAUL_ADVERTISER","ROLE_ADMIN","ROLE_INTERNAL_ADV","ROLE_CHILD_AGENT","ROLE_PGC_ADVERTISER","ROLE_DSP_ADVERTISER","ROLE_MAJORDOMO","ROLE_SLEF_ACCOUNT","ROLE_COMMON_ACCOUNT","ROLE_VIRTAUL_ACCOUNT","PENDING_CONFIRM","PENDING_VERIFIED","CONFIRM_FAIL","ENABLE","CONFIRM_FAIL_END","PENDING_CONFIRM_MODIFY","CONFIRM_MODIFY_FAIL","PUNISH","WAIT_FOR_BPM_AUDIT","PROMOTION_SELF_SERVICE","STATUS_CONTACT_PENDING","NATIONAL","LOCAL","ALL","SYSTEM","SYSTEM_BC","ADVERTISER_BC","AGENT_BC","ADMIN_BC","SYSTEM_DM","AUTO_DM","AD_AUDIT_SUCCESS","AD_AUDIT_REJECT","AD_PRE_OFFLINE_BUDGET","AD_OFFLINE_BUDGET","AD_OFFLINE_BALANCE","AD_PRE_OFFLINE_BUDGET_NEW","ADMIN_RECHARGE","ONLINE_RECHARGE","AGENT_RECHARGE","AGENT_REFUND","CAMPAIGN_PRE_OFFLINE_BUDGET","CAMPAIGN_OFFLINE_BUDGET","CAMPAIGN_PRE_OFFLINE_BUDGET_NEW","GRANT_RECHARGE","COMPENSATE_RECHARGE","PRE_OFFLINE_BALANCE","ADV_AUDIT_SUCCESS","ADV_AUDIT_REJECT","ADV_AUDIT_DISABLE","CONVERT_ID_DISABLE","ADVERTISER_CPA_CHEATING_MIN","ADVERTISER_CPA_CHEATING_MAX","TETRIS_ADDTION_FIX","VIDEO_CONVERT_INFO","AD_AWEME_AUDIT_REJECT","NOT_FROM_BC","NO_SET","RESERVATION","AUCTION","TTP","NON_TTP","REQUIRED","RECOMMEND","HIDE","reject","success","qualificationCategory","musicQualification","medicineQualification","medicineQualificationParams","starling_namespace","starling_project","category","pictures","content_fields","country_codes","starling_key","contents","certification_number","qualification_name","certification_url","supplement_info","FAILED","PROCESSING","NO_PROCESS","WAIT_USER_SIGN","DURING_UPGRADE","UPGRADE_FAILED","UPGRADE_SUCCESS","HAWAII","WEST_VIRGINIA","NEW_MEXICO","iosReg","androidReg","adAppType","ANDROID","IOS","NO_LIMIT","ON","OFF","FROZEN","NotSupport","NoRecentActivity","Active","EM","SHARE_WITH_OTHERS","SHARED_BY_OTHERS","UNBUNDLING","CPM","CPC","CPT","NOC","FREE","GD","OCPC","CPA","CPSD","OCPM","CPV","CONTINOUSLY","DATE_RANGE","CUSTOM_AUDIENCE","NEW_CUSTOM_AUDIENCE","INCLUDE_SPECIFIC_EVENTS","EXCLUDE_SPECIFIC_EVENTS","INCLUDE_INTERACTE_USERS","EXCLUDE_INTERACTE_USERS","CUSTOMER_FILE","APP_ACTIVITY","PARTNER","fixedBudget","fixedImpression","fixedReachPercent","fixedReach","text","PHONE","FORM","MAP_SEARCH","DOWNLOAD_FINISH","INSTALL_FINISH","UN_ACTIVE","ACTIVE","PHASE_FIRST","PHASE_SECOND","NO_DELETE","DELIVERY_OK","NOT_DELIVERY","PARTIAL_DELIVERLY_OK","TIME_NO_REACH","TIME_DONE","NO_SCHEDULE","DELETE","CAMPAIGN_DISABLE","AUDIT","REAUDIT","OFFLINE_AUDIT","OFFLINE_BUDGET","OFFLINE_BALANCE","PRE_ONLINE","AD_DISABLE","AUDIT_STATUS_ERROR","CLOSED","AD_ASSET_AUTHORIZATION_LOST","OUT_BUDGET","DIAGNOSIS","PRE_OFFLINE_BUDGET","DRAFT","PARTIAL_AUDIT","AD_AUDIT_FAIL","START","PAUSE","AUDIT_AND_MEDIA","PM_AND_RD","ADVERTISER","WHITE_LIST","CREATE_FROM_CAMPAIGN","CREATE_FROM_AD","CREATE_FROM_CREATIVE","REVISE_CAMPAIGN","REVISE_FROM_AD","REVISE_CREATIVE","unset","ios14Below","ios14Above","UNOCCUPIED","OCCUPIED","NO","YES","TWO","platform","PC","platformToAppType","AppStatusValue","Permitted","OwnershipVerifiedViaTTAppID","Whitelisted","Probated","BlockedConflictAppAccount","BlockedUnsupportedMMP","AppStatusObject","hint","type","EXTERNAL","DOWNLOAD","PURE_SHOW","first","second","range","percent","money","standard","maxConvertion","maxConvertionNoBid","labelKey","MIN","PACING","IAEO","VO_COST_CAP","VO_MINIMUN_ROAS","VO_HIGHEST_VALUE","latest","canUpdate","offline","skipVersion","willUpdata","creating","someError","createFail","createSuccess","CLICK","IMPRESSION","OTHERS","VIDEO_VIEWABILITY","IN_7_DAY","IN_15_DAY","contentString","contentImg","contentVideo","importAds","downloadTemplate","exportAdSet","exportAppList","exportPixelList","exportAudienceList","RETARGET","disableHint","NORMAL","QUICK_OPTIMIZATION_TOOLS","VIDEO_EDITOR_TOOLS","AD_SITE","PICTURE_TO_VIDEO","OPEN_API","MICRO_MOVIE","FAST_CREATION","QUICK_OPTIMIZATION_LITE","VIDEO_AUTO_SCALE","SMART_SOUND_TRACK","SMB_DIAGNOSIS_TOOLS","TT4B_DIAGNOSIS_TOOLS","IMAGE","VIDEO","AUTO","ACTIVE_REGISTER","ACTIVE_PAY","NEXT_DAY_OPEN","LTV_ROI","GAME_ADDICTION","CUSTOMER_EFFECT","SOCIAL_ROI","FIRST_DAY_ROI","UG_ROI","CLUE_CONFIRM","CLUE_INTERFLOW","CLUE_HIGH_INTENTION","CLUE_PAY_SUCCEED","PREMIUM_ROI","video","creator","hashtag","INTEREST_CATEGORIES","INTEREST_KEYWORDS","BEHAVIOR_HASHTAG","FUZZY","SEMANTIC","ONLINE","OFFLINE","PRE_OFFLINE","LEGAL_OFFLINE","HASHTAG","HASHTAG_GROUP","DEFAULT","STORE_FRONT","ERROR","WARNING","LOW_BID","LOW_RESOLUTION","INSUFFICIENT_LENGTH","NO_BACKGROUND_MUSIC","LOADING_PAGE_TIME","PIXEL_NO_RECENT_ACTION","none","MANUAL","OPENEDIT","OPEN_SUGGESTION","nameI18nKey","hoverI18nKey","FEED_POSITION_ENUM","STANDARD","PREMIUM","FEED_POSITION_OPTIONS","i18n_key","MOAT","DV","IAS","VOStatus","QUALIFIED","NOEVENT","NOVALUE","INSUFFICIENT_EVENTS","NOTSUPPORT","showPopover","disabled","hoverTitle","t","hoverContext","eventNum","dayNum","AGE","GENDER","INTEREST_BEHAVIOR","AUDIENCE","UNSET","ZEFR","RequiredTargets","creativeType","CREATIVE_TYPE","SHOP_LIVE_REAL_TIME","ADS_TYPE","searchDeliveryType","HHIType","TOP5","TOP10","TOP10_25","TOP25_50","HHIList","num","invalid","on","off","codeList","map","code","target","BidRegion","find","idList","BidRegionMap","pre","cur","apply","detailApply","manual","SHOP_NOW_CTA","TTCallToAction","CALL_TO_ACTION_NOT_EN","SHOP_LIVE_CTA","AllCallToActions","hidden","customization","autoOptimized","collectionAds","oldNormalCampaign","uncertainCampaign","dedicatedCampaign","contentType","website","app","brandPureExposure","dpaDeeplink","leadAds","ExternalOrDisplay","promotionVideo","DCQuotaSum","quotaFive","quotaTwo","quotaOne","isDcQuotaTwo","isIOS14MultipleWhite","isIOS14MultipleFiveWhite","insufficient","empty","sufficient","productDeepLink","customeLink","fallbackApp","fallbackWeb","catalogueLink","defalutLink","promotionTypes","isDpa","isNewStructure","DAY_BUDGET","TOTAL_BUDGET","Engagement","Shop","rfObjectiveName","campaignObjective","Auction","Awareness","children","iconName","Consideration","isLeadAdsWhite","isEngagementWhite","hasNewIconOnly","isDpaWhite","isCatalogAssetWhite","isMigrationDSAAndCAWhite","hoverTips","placement","isShopWhite","isCreativeHasIdentityWhite","state","hasMagellanShop","isShopCreateDisabled","isBeta","isRFWhite","isRFAppinstall","isRFEngagementWhite","p","c","concat","filter","enableOpenUrl","disableOpenUrl","campaignObjectiveI18nKey","campaignObjectiveKey","campaignObjectiveSearch","campaignBuyingTypeSearch","arr","String","split","tempArr","adgroup_data_placement","adgroup_data_apporwebsite","adgroup_data_website_link","adgroup_data_app_link","adgroup_data_app_type","adgroup_data_app_displayname","adgroup_data_category","adgroup_data_tags","adgroup_data_comment","adgroup_data_automated_creative","adgroup_data_particle_locations","adgroup_data_gender","adgroup_data_age","adgroup_data_languages","adgroup_data_interest","adgroup_data_connection","adgroup_data_carriers","adgroup_data_device_type","adgroup_data_device_pricerange","adgroup_data_android_versions","adgroup_data_ios_versions","adgroup_data_budget_mode","adgroup_data_budget_number","adgroup_data_schedule_type","adgroup_data_schedule_start","adgroup_data_schedule_end","adgroup_data_dayparting","adgroup_data_optimization_goa","adgroup_data_smart_optimization","adgroup_data_learning_bid","adgroup_data_cpa_bid","adgroup_data_delivery_type","adgroup_data_impression_tracking","adgroup_data_click_tracking","adgroup_data_retargeting_tags","adgroup_data_retargeting_tags_exclud","adgroup_data_app_convert_id","adgroup_data_objective_type","UNINITIALIZED","TARGET","CREATIVE","OPTIMIZE","orient","lable_i18n","externalType","normal","campaignPlaner","percentage","increase","decrease","campaignName","original_key","adjust_key","budget_mode_key","error_map_key","campaignBudget","adgroupName","budget","bid","currentLang","indexOf","require","REFERER","STORE_MANAGER","queryFields","MAGELLAN","SWITCH_TO_CONVERSION_SHORTCUT","assetsValue","product_platform_id","ad_ref_pixel_id","ShopType","ecommShop","tt4bShop","assetFieldValue","assetLabelValue","identity_id","handleValidAssetsField","fieldName","formData","validValue","identity_type","excludeAssetFieldArr","assetsName","assetId","shop_type","asset_id","asset_type","assetsInfo","adGroupNum","adGroupAssets","creativeNum","creativeAssets","adGroupAssetsMap","asset","allAssetsMap","available_quota","total_quota","availableNum","assetName","e","CONTEXT_TARGET_OBJECTIVE_TYPES","FieldTypes","Int64","Float","Inter","Union","SensTypes","Default","CaseInsensitive","Eq","Ne","Gt","Gte","Lt","Lte","Rng","Wildcard","Prefix","Exist","In","Inactive","All","Approve","Reject","Pending","Init","PartlyReject","Offline","Online","Deleted","Fields","title","fieldType","sensType","OuterID","spuID","activeStatus","storefrontStatus","getReverseMap","tool","isSupportWebp","NONESHARE","ISSHARED","NAEEOW","TEXT","OTHER","specialImgPrefixConfig","data","process","isIndia","isSg","realTimePrecheckSplicingMap","material_language_mismatch","ownKey","countryHitCode","occupy","replaceKey","link","getSingleCountriesHitList","realTimePrecheckSuggtions","index","countryhitList","JSON","parse","hit_countries","this","$t","replace","toString","suitableConfig","imgSrcPrefix","v","supportSortAjaxUrl","API","sortData","sort_type","imgUri","imageType","IMAGE_X_IMG_TEMPLATE","search","imageXTemplate","URL","CUSTOMIZE","PROCEDURAL","imageMode","IMAGE_I18N_SMALL","IMAGE_I18N_LARGE","IMAGE_I18N_VERTICAL","IMAGE_I18N_SQUARE","IMAGE_I18N_VERTICAL_720P","IMAGE_I18N_GROUP","VIDEO_TYPE_1","VIDEO_TYPE_2","VIDEO_TYPE_3","GIF_IMAGE","CAROUSEL_IMAGE","LOCAL_IMAGE","SEARCH_IMAGE","CAROUSEL_IMAGE_SQUARE","CAROUSEL_IMAGE_HORIZONTAL","REAL_TIME_LIVE","CAROUSEL_IMAGE_MODE","square","horizontal","Map","forEach","set","countryCodeIdList","targetCountry","toUpperCase","Boolean","CAROUSEL_IMAGE_CREATIVE_ALLOWED_COUNTRIES","SUB_NAME","CAROUSEL_ENABLE_OBJECTIVE_LIST_V1","CAROUSEL_ENABLE_OBJECTIVE_LIST_V2","QUESTIONNAIRE_OPTIMIZATION","BRAND_LIFT_STUDY","ONLY_ENGAGEMENT_USEABLE_CTA_LIST","ONLY_RF_USEABLE_CTA_LIST","width","height","imageTemplate","IMAGE_TYPE_0","ratio","HORIZONTAL","VERTICAL","VERTICAL_720P","SQUARE","ADDITIONAL_CUSTOMIZED_IMAGE_CARD_HORIZONTAL","ration","CAROUSEL_IMAGE_SIZE_RULE","externalUrl","DELIVERY","ONE_DELIVERY","ONE_DONE","TWO_AUDIT_1","TWO_AUDIT_2","TWO_OFFLINE_AUDIT_1","TWO_OFFLINE_AUDIT_2","CREATIVE_ASSET_AUTHORIZATION_LOST","conversions","webSite","appDownload","traffic","appInstall","cuttingRange","cutType","VERIFY_ERROR_CODE","unsupported","maxSize","resolution","duration","bitrate","cuttable","invalidCpr","transcodeFail","LOADING","READY","VFAILED","UPLOADING","UNSELECTED","CUTTING","DUPLICATE_NAME","NAME_LENGTH_INVALID","NAME_INCLUDE_EMOJI","ANALYSIS_FAILED","OVER_SIZE","afterUpload","beforeUpload","NORMAL_AD_SOURCES","CREATE_NEW","NATIVE_VIDEO","TTBA_PUSH_NATIVE_VIDEO","adItemSource","NORMAL_AD_SOURCES_REVERSE_MAP","SINGLE_IMAGE","aliasType","CATALOGUE_IMAGE","CUSTOMIZED","iconClass","EXISTING_COMBINATION","teaData","IMAGE_CARD","INSTANT_PAGE","ENGAGEMENT","ADDITIONAL_CREATIVE_IMAGE_CARD_TEMPLATE_TYPES","GAME_GIFT_CARD","img","introduce","CUSTOMIZED_IMAGE","CUSTOM_INSTANT_PAGE_SUPPORT_CARD_TYPES","APP_PROFILE_INSTANT_PAGE","template_id","editor_data","schema_data","description","creation_type","video_infos","card","video_url","video_cover_url","thumbnail","business_type","template_name","supportCardTypes","creativeTypeMap","CAROUSEL_IMAGE_COUNT_LIMIT","CAROUSEL_IMAGE_SUPPORT_APP_LIST","TOPBUZZ","VIDEO_GENERATOR","LANDING_PAGE_VIDEO","VIDEO_SOUND_TRACK","CREATIVE_COVER_HANDLER","HORIZONTAL_BLACK_1TO1","VERTICAL_GOSS_9TO16","VERTICAL_BLACK_9TO16","VERTICAL_EDGE_COLOR_9TO16","HORIZONTAL_GOSS_1TO1","HORIZONTAL_EDGE_COLOR_1TO1","CREATIVE_PREIVEW_HANDLER_MAP","HELO","VIGO","TIKTOKADNETWORK","PLAYABLE_ORIENTATION","BOTH","PORTRAIT","LANDSCAPE","PLAYABLE_ORIENTATION_REVERSE_MAP","PLAYABLE_AUDIT_STATUS","VALIDATING","color","VALIDATE_FAIL","APPROVING","APPROVED","PLAYABLE_AUDIT_STATUS_REVERSE_MAP","PLAYABLE_ERROR_CODE","NOT_ZIP","BEYOND_SIZE_LIMIT","NO_ENTRY_HTML","NO_CONFIG_FILE","WRONG_CONFIG_FORMAT","NO_ORIENTATION_CONFIG","WRONG_ORIENTATION_VALUE","NO_SDK","NOT_EXECUTE_SDK","FORBID_MRAID","FORBID_EXTERNAL_RESOURCE","FORBID_REQUEST","UNKNOWN_ERROR","NO_LANG","ERROR_LANG","PLAYABLE_REQUIREMENTS","FORMAT_SIZE","errorCodes","SDK","HTML","DIRECTION","MARID","DYNAMIC_MATERIAL","REDIRECTION","HTTP_REQUEST","LANGUAGE_EXIST","LANGUAGE_MATCH","PLAYABLE_UPLOAD_ERROR_MAP","TIMEOUT","NETWORK","UNKNOWN","PLAYABLE_UPLOAD_ERROR_REVERSE_MAP","subInfo","template","microVideo","NATIVE_AUDIT_STATUS","APPLYING","AUTHORIZED","EXPIRED","NORESPONSE","CANCEL","NATIVE_AUDIT_STATUS_REVERSE_MAP","IES","UNAUDITED","CONFIRMED","UNAUTHORIZED","completed","LEAD_ADS","STOREFRONTS","selfServiceActivityHiddenSend","enVatValidateDetail","instantPageProtocol","crmConnected","iosWebAlert","AdvertiserOnly","AdvertiserAndUser","call_to_action","page_id","product_set_id","catalog_language","dpa_products","dpa_preview_products","page_product_configuration","page_preview_url","page_image_url","page_card_format","gallery","imageCard","DPA_TPL","DPA_CREATIVE","LYNX_PDP","LYNX_PLP","SHOP_PDP","SHOP_PLP","SHOP_LIVE_VIDEO","SEARCHADS","OPEN","CLOSE","PANGLE_PREVIEW_NAME","INTERSTITIAL","REWARDED","NATIVE","BANNER","SMALL_VIDEO_BANNER","NORMAL_BANNER","THUMBNAIL_BANNER","ICONS_ONLY_BANNER","NORMAL_NATIVE","VIDEO_THUMBNAIL_NATIVE","PANGLE_VIDEO_AD_VIEWER_LIST","options","flow","position","hasEndcard","comp","support","PANGLE_IMG_AD_VIEWER_LIST","DPA_PANGLE_VIDEO_AD_VIEWER_LIST","MATERIALTYPE","IMG","module_library_normal_banner","module_library_normal_banner_img","module_library_video_thumbnail_banner","module_library_small_video_banner","module_library_icons_only_banner","module_library_icons_only_banner_img","module_library_normal_native","module_library_normal_native_img","module_library_video_thumbnail_native","images","display_name","videos","CREATIVE_TITLE_LENGTH_LIMIT","invalidTitleLengthI18nParams","halfMinLength","halfMaxLength","fullMinLength","Math","ceil","MIN_TITLE_LENGTH","fullMaxLength","MAX_TITLE_LENGTH","EN","NOTEN","PRECHECK_RESULT_TRACK_EVENT_ENUMS_MAP","PRECHECK_RESULT_CODE_MAP","precheckCanFixCodeList","uploadVideoFixProblemCodeList","PRECHECKPROBLEMNUMBER","VIDEO_VOICE","VIDEO_DURATION","uploadVideoProblemMapNumber","fixProblemTipsList","content","eventTrackName","campaignList","AutoGenerateCreativeNameUseableAdTypes","tiktokNotSupportImgObjTypes","autoGenerateCreativeNameUseableObjTypes","COMPUTER","LIBRARY","TOOL","PRECHECK_RESULT_TYPE_MAP","videoCanNotUseOptimizePrecheckTypes","titles","urls","TITLE_HAS","URL_HAS","WITHOUT_SONG_ID","AUTHORIZATION_MISSING","WITH_FULL_AUTHORIZATION","NOT_AUTHORIZED","TURN_ON","TURN_OFF","PLP","PDP","GAME_H52LYNX","CUSTOM_IMAGE_CARD_AND_INSTANT_PAGE","INSTANT_PAGE_ONLY","videoInfoExpectRule","Number","size","lang","imageTypes","videoTypes","gifTypes","ADD_NEW_CREATIVE","CHANGE_CREATIVE","VIDEO_ASYNC_RENDER_RENDERING_STATUS","RENDERING","CANCELLED","WAITING_FOR_DEPENDENCY","PAUSED","RESUMED","VIDEO_ASYNC_RENDER_ERROR_STATUS","RENDER_ERROR","VIDEO_ASYNC_RENDER_STATUS","RENDER_DONE_NOT_CREATED","RENDER_DONE_AND_CREATED","RENDER_DONE_NAME_ERROR","RENDER_DONE_CREATED_FAILED","POLLING_DELAY","SINGLE_VIDEO_RENDER_TRY_COUNT","RENDER_BY_TOOL","RENDER_BY_PLATFORM","ITEM","STICKER","CHALLENGE","USER","SHOP","USERPROFILE","STICKER_SHOOTER","NATIVE_AD_ACTION_TYPE","PULL_TT_POST","PUSH_VIDEO_TO_TTBA","PULL_VIDEO_IGNORE_CODE_LIST","PUSH_VIDEO_IGNORE_CODE_LIST","withIndexremoveItemsfromArrary","targetArr","indexList","i","splice","filterPrechckSomeResult","precheckRes","removeCodeList","summaryResults","deepclonePrecheckRes","material_results","AdItem","videoItem","needRemoveCodeList","tag_ids","needRemoveCodeIndexList","removeCode","findIndex","suggestion","details","adItem","itemSuggtion","push","summary_results","verifyAdsParams","creativeList","every","isAllNativeAdOrTTBAPushVideo","SUPPORT_TTBA_PUSH_NATIVE_ADS_OBJECTIVE_TYPES","campaignLibrary","change","preview","moduleTips","bubbleTips","emptyLibrary","EGG","GESTURE","DISCLAIMER_TYPES","TEXT_ONLY","TEXT_WITH_LINK","disclaimerOptions","textOnly","textLengthOptions","textWithLink","maxCount","minCount","GET_DISCLAIMER_PROPS_NAME_BY_TYPE","SET_DISCLAIMER_PROPS_NAME_BY_TYPE","SHOP_ADS_LIVE_VIDEO","SHOP_ADS_LIVE_REAL_TIME","SPLIT_TEST","ON_SITE","OFF_SITE","ATTACHMENT_CREATIVE_TYPES_ENUM","GIFT_CODE_CARD","DISPLAY_CARD","LUCKY_BAG_V2","VOTING_STICKER","GIFT_CODE_STICKER","COUNTDOWN_STICKER","ATTACHMENT_CTEATIVE_TYPES2_ENABLE_URL","ATTACHMENT_ID_TYPE","ATTACHMENT_ID_TYPE2_LABEL_MAP","AUTO_OPEN_DESTINATION_STWICH_OBJECTIVE_TYPES","ADDITIONAL_CREATIVE_ENGAGEMENT_TYPES","customizedImageCardPoster","eggDemoImg","gestureDemoImg","SHOP_ANCHOR_STATUS","CHECK_SUCCESS","CHECK_ING","CHECK_FAIL","PRODUCT_TAKEN_DOWN","PRODUCT_NO_STOCK","SHOP_ANCHOR_UNAVAILABLE_MAP","anchors","supId","isSingleProductAnchor","videoAnchorId","videoAnchorStatus","visibility_status","isVideoAnchorStatusAvailable","isCurSpuIdEqualToAnchorId","TRANSCODE_FAIL","TRANSCODE_SUCCESS","specFail","BIDDING_FILTER","BIDDING_CAMPAIGN_COLUMN","BIDDING_AD_COLUMN","BIDDING_CREATIVE_COLUMN","BIDDING_CUSMTOM_COLUMN","BIDDING_STATISTIC_USER_CONFIG","BRAND_FILTER","BRAND_COLUMN","LIBRARY_VIDEO_COLUMN","LIBRARY_IMAGE_COLUMN","LIBRARY_PLAYABLE_COLUMN","LIBRARY_VIDEO_FILTER","LIBRARY_IMAGE_FILTER","LIBRARY_PLAYABLE_FILTER","APIDownGradeList","apis","APITTPDowngradeList","common","arrive_i18n","event_type","event_action","account_audit_rejected","ad_group_audit_rejected","account_balance_empty","account_balance_insufficient","first_creative_no_charge_deferred","arrive_platform","CHECK_PLACEMENT_FLOW","INVENTORY_FLOW_MAP","productLine","languages","availableCountries","isSupportQrcodePreview","supportImageType","tiktokLanguages","show","TopbuzzLanguages","isVigoWhite","HeloLanguages","tiktokAdNetworkLanguages","isSupportPangleImage","dashboardPlacement","FLOW_VIEWER_LIST","FLOW_TYPE","INVENTORY_FLOW_REVERSE_MAP","kk","obj","OpenSlate","NeedCheckFlow","flowID","CheckEffectivePlacement","flowId","opts","valid","isDpaPangleWhite","GenerateInventory","args","urlParams","queryToJson","inventoryFlowMap","inventoryFlowReverseMap","inventoryFlowList","generateInventoryFlow","allKey","allItem","mergeItem","flowItem","itemLanguage","itemCountry","from","tbnrWhite","whiteItem","WHITE_LIST_OBJECT","white_value","whiteValue","inventory_flow_type","MATERIAL_ORIGIN_TYPE","ADSITE","CREATIVE_TOOL","QUICK_OPTIMIZATION","VIDEO_TEMPLATE","SMART_VIDEO_SOUNDTRACK","VIDEO_EDITOR","TCPP","VIDEO_GENERATOR_FROM_DPA","DYNAMIC_VIDEO_GENERATOR_FROM_DPA","TCM_VIDEO","QUICK_GENERATION","GIFT_VIDEO","CC_VIDEO_UPLOAD","CC_VIDEO_EDITOR","CC_VIDEO_TEMPLATE","materialOrigin","LIB_SEARCH_TYPE_ID_MAP","SEARCH_CAMPAIGN","SEARCH_ADGROUP","SEARCH_AD","SEARCH_VIDEO_MATERIAL","LIB_SEARCH_TYPES","adsManager","marketingApi","tcm","rap","isdel","enable","notDelivery","notSupported","paused","rfClosed","frozen","countryCodes","regionOptions","countryBidPathMap","getPathBidMap","path","cityOptions","fetchAreasData","param","request","get","areaRes","areaData","areas","pathPrefix","intoChildren","curObj","curPath","rlt","countryOptions","push2Result","translation","isDma","commonEuCountryInfo","hide","commonEUCountryListAccount","whiteAccountCountry","accountPaymentOptions","automatic","infoV2","tagKey","oldInfo","cardsMap","imgSrc","imgIcon","newImg","PERMISSION_DATA","getAthenaLink","disableCityCountry","ScenarioList","subLabel","isShopLiveWhite","binded","unbinded","admin","advertise","shopStateMap","available","unavailable","notbindTTAdmin","notbindTTNotAdmin","shopWarningTipsMap","creativeBannerText","edit","ProductAvailability","InOrder","AvailableForOrder","Preorder","OutOfStock","Discontinued","ProductStoreFrontStatus","InStoreFront","NotInStoreFront","ProductStoreFrontStatusMap","vm","$createElement","isEcommShop","handleSelectSpu","isMultiSelectionType","isRowSelectable","inStorefrontThRenderer","component","ProductDetail","className","selectable","formatter","row","ProductItem","props","spu","availability_status","idPrefix","select","align","price","price_range","min","max","separator","price_unit","renderString","storefront_status","shopType","tip","OptimizeGoal","externalAction","enableShopTypes","convert","ExternalAction","initiateOrder","shopping","isNottt4bShop","isLiveAdSupportCompletePayment","isLiveSupportCompletePayment","liveStayTime","isLiveSupportProductClick","productClickInLive","liveClickProduct","isLiveSupportInitateCheckout","optimizeGoalOptions","firstOptimizeGoal","tt4bShopDefaultOptimizeGoal","og","PRODUCT_SELECTION_TYPE","SINGLE","MULTIPLE","productSelectionTypeOptions","MAX","StoreManagerDomain","storeId","IN_2_EX","EX_2_IN","PcmDrop","PcmNotDrop","PcmDefault","reach","videoView","install","inAppEvent","lead","fans","webViews","post_engagement","valueOptimization","fakeOptimizeGoal","installWithInAppEvents","optimizationGoalToKey","inactive","ExternalActionI18nPrefix","translateDeepExternalAction","dea","translateExternalAction","active","activeRegister","login","createGameRole","completeTutorial","VIDEOVIEW_DURATION_TYPE","SIX_SECONDS","TWO_SECONDS","OptimizeGoalOptions","labelInfo","brandOptimizeGoalOptions","UN_SAFE","SAFE","HOT","FLAGSHIP","STANDARD_INVENTORY","SELECTED_INVENTORY","INVENTORY_FILTER","THIRDPARTY_FILTER","EDIT","message","ctaText","customer_type_value","accountRole","transactionOptions","colKey","INCLUDE","EXCLUDE","inAppEventDcHover","inAppEventdata","childItem","required","render","h","isMMPDcData","dedicate_type","campaignType","itemKey","getStatisticDataKey","numberData","formatNumberData","tooltipTextKey","class","skanHoverRendered","isDcSkan","isSkanData","tempSkanKey","validKeys","EnumInAppEventSkanData","items","childrenItems","tempBasicSkanKey","allSkanOptions","EnumBasicSkanData","EnumAttributionSkanData","tempSkanInAppKey","allSkanTimeAttrOptions","allSkanBasicOptions","active_cost","active_rate","conversion_cost","conversion_rate","convert_cnt","effect_cnt","effect_cost","effect_rate","EnumInAppEventDataEach","EnumInAppEventData","onlyForUniq","dummy","slice","child","attribute","EnumInAppEventDataUnique","onlyForEach","EnumSettingNamesIDs","i18nPath","sortable","showLevel","useRootKey","COLUMN_WIDTH","exportKeys","isDiagnosisV2White","EnumSettingStatusDates","EnumSettingObjectiveBudgetGoal","EnumSettingAdCreative","EnumSettingOther","hoverKey","learnMoreLink","isSearchAdsMtWhite","CustomColSettings","keyIndex","METRIC_TYPE","SETTINGS_NAMES_IDS","SETTINGS_STATUS_DATES","SETTINGS_OBJECTIVE_BUDGET_GOAL","SETTINGS_AD_CREATIVE","SETTINGS_OTHER","CustomColMainCampaignSort","BASIC_DATA","VIDEO_PLAY","ASSET","LIVE","APP_EVENT","ViPointGray","clickIcon","ViPointBlue","SKAN_APP_EVENT","ATTRIBUTION","PAGE_EVENT","ONSITE_EVENT","EnumCommonData","EnumConversionData","EnumEngagementData","EnumAssetData","EnumLiveData","EnumAttributionData","rendered","metric","EnumVideoPlayData","APP_EVENT_EACH","APP_EVENT_UNIQUE","isAdmin","EnumUVData","EnumPageEventData","pageEventData","isPcmWeb","isPcmWebStatistic","EnumOnsiteEventData","integerValueFormatter","isDedicatedCampaign","moneyFormatterWithUnit","EnumAttributionNonSkanData","EnumImageInfo","image","EnumVideoDateInfo","EnumVideoDetailsInfo","EnumVideoRelatedInfo","EnumVideoInfo","minute","parseInt","conversionDcHover","hintKey","percentCellFormatter","effectCountFomatter","effectCostFomatter","effectRateFormatter","isDeepConvertWhite","time_attr_deep_convert_cnt","deep_convert_cnt_note","isShowNote","noteData","time_attr_deep_convert_cost","deep_convert_cost_note","moneyFormatter","time_attr_deep_cvr","isEngagementMetricsWhite","isNativeMusicPromoteWhite","isInReportingModule","href","EVENT_ATTRIBUTE_SKAN","UNIQUE_EVENT","UNIQUE_CPA","UNIQUE_CONVERSION_RATE","TOTAL_EVENTS","TOTAL_CPA","TOTAL_CONVERSION_RATE","durationFormatter","EVENT_ATTRIBUTE","EVENT_COUNT","COST_PER_EVENT","itemIndex","RATE_PER_EVENT","textFormatter","percentTextFormatter","VALUE_PER_EVENT","TOTAL_EVENT_VALUE","isGrossImpressionMetricsWhite","disabledText","noneFormatter","isMRCWhite","isTimeAttr","instance","effect_note","isAlreadyShared","page_id_status","LeadBCShare","isLeadsModalDisabled","isAdministrator","leadDownClass","pathname","effect","$bus","$emit","count","effect_cost_note","currencyKey","getUserCurrency","effectCost","formatBrandMoney","percentileDivisionFormatMoney","effect_rate_note","effectRate","undefined","hasPharmacyQualification","aadvid","creativeName","medicineRejectCode","jumpUrl","jumpText","isMedicineQulification","disapproval_code","isMusicQualification","reason_type","quailficationRejectReasonType","cid","creative_name","temp","source","jsonToQuery","showBot","isAthenaCallerReady","industryDisapprovalCodes","forbiddenCountry","forbidden_country","materialCode","revokeBot","intelliCS","openDialog","question","_app","$tea","trackEvent","promotion_website_type","isPcmPhase2White","requestParams","statusChangeFn","teaParams","download_source","adv_id","permissionData","finallyCb","stat_data","col","cellValue","CURRENCY_LOCALE","currencyLocaleFormat","format","str","_multiply","num1","num2","m","s1","s2","EVENT_ATTRIBUTE_EACH","EVENT_ATTRIBUTE_UNIQUE","INTERACTION","LIBRARY_CREATIVE_INFO","LIBRARY_CREATIVE_DATE_INFO","LIBRARY_CREATIVE_DETAILS_INFO","LIBRARY_CREATIVE_RELATED_INFO","METRIC_TYPE_EVENT_ATTRIBUTES_MAP","ACENT","DECENT","columns","keySet","has","excludesKeys","excludesKeysSet","prefix","Vue","getHoverKey","transformCol","newCol","joinKey","field","transformed","allColumns","pathMap","getPathMap","results","reKey","join","handleFormatterVal","transaction_time","formatterAmount","amount","transaction_status","billing_transaction_type","transactionTypeMap","costs","nonStandard","taxes","deduction","PDF","XML","paymethodTypes","CASH","GRANT","REBATE","payTypeMap","accountTypeMap","taxTypeMap","createDateDisplay","DateDisplay","createDetailDescription","DetailDescription","createTaxItem","showId","Description","createDeduction","DescriptionDeduction","getPaymentDescription","transaction_type","deductionDetail","transaction_id","accountType","account_type","taxType","tax_type","payType","capital_attr","taxDetail","tax_detail","pay_method","totalAmount","chargeAmount","balance_change","paymentDetail","payment_detail","taxProps","invoiceFormatter","invoice_info","createInvoice","additionalSign","transactionTypesAll","label_i18n","hint_i18n","transactionTypesDefault","transactionTypesMap","res","dateTypes","dateTypesMap","defaultFilters","transactionType","dateType","createTransactionTypeFormatter","TransactionType","createTransactionType","fixed","payments","tax","promotions","adjustments","summaryDataMap","campaignCosts","summaryDataTitleI18nKeyMap","transactionTabType","transactionTabTypeI18nKeyMap","transactionStatusMap","processing","pending","handling","paid","failed","transactionStatusDataMap","billingTransactionTypeMap","TOP_UP","AUTOPAY_BILL","MI_BILL","ISSUED","CHECKOUT","CHECKOUT_BACK","TRANSFER_IN","TRANSFER_OUT","noData","status","isNaN","symbol","getBillingTransactionTypeSymbolMap","absAmount","abs","AD_CREDIT","COUPON","promotionsStatusDataMap","adjustmentTypeMap","CARD_VERIFICATION","CARD_VERIFICATION_REFUND","COST","CHARGE","listDataKey","amountDataKey","currencyDataKey","ies_white","JP","TW","IN","US","KR","TH","MY","ID","VN","GB","DE","FR","IT","ES","TR","SA","RU","AE","EG","mt","ocpm","pixel","i18n_upgrade","mt_jp","mt_tw","currency_white","mt_in","mt_us","nr_tw","mt_kr","mt_th","mt_my","mt_id","mt_vn","mt_uk","mt_de","mt_fr","mt_it","mt_es","mt_tr","mt_sa","mt_ru","mt_brazil","mt_mexico","mt_ukraine","mt_belarus","mt_hungary","mt_czech","mt_romania","mt_kuwait","mt_qatar","mt_oman","mt_bahrain","mt_newZealand","mt_phli","mt_sweden","mt_netherlands","mt_norway","mt_finland","mt_denmark","mt_switzerland","mt_belgium","mt_austria","mt_ireland","bv_kr","mt_ae","mt_eg","bv_in","bb_in","tt_ad_network","dynamic_creative","vigo","tt_ad_network_auto_disable","tt_ad_network_select_disable","helo","smart_bid_strategy","max_conversion_no_bid","deeplink","defferedDeeplink","brand_safety","mt_au","mt_ca","mt_hk","playable","deep_goal","split_test","deep_convertion","mt_il","mt_pl","pangle_image","behavior_target","bulkDownload","bulkUpload","moat_tagless","track_DV","track_view_IAS","nativeBrandAdWhite","postPay","appRetarget","split_test_creative","creativeCopy","traffic_sink","conversion_sink","reach_sink","videoview_sink","dpa_sink","pangle_mideast","pangle_southeast_asia","pangle_sa","pangle_ae","pangle_eg","pangle_tr","pangle_vn","pangle_my","pangle_th","bid_ocpm","dpa_app_retargeting","dpa_app_install","dpa_website_retargeting","dpa_website_prospecting","native_ad_traffic","native_ad_appinstall","native_ad_conversion","rf","hide_suggestion_list","campaign_planer","campaign_budget_optimization","campaign_budget_optimiza_lifetime","campaign_budget_optimize_vo_normal_highest_value","campaign_budget_optimize_vo_min_roas","videoTrackLink","isLeadAds","auction_collection_ads","brand_auction_collection_ads","collection_ads_app","collection_ads_image_card","mrc_play_count","modelSole","modelSoleAmazon","postPayCash","isSplitTestBidding","engagement","carouselImage_v1","carouselImage_v2","aco_presented_video","aco_presented_video_preview","campaign_engagement","gross_impression","captureImageFromVideoTool","native_ad_rf","brand_safety_flagship","brand_safety_open_slate","brand_safety_ias","newBrandSafetyInventory","pangle_ocpx_nobid","pangle_cpc_nobid","dma","cta_auto_optimized","creative_video_editor","athena_intelligent_caller","scheduled_budget","coldBoot","new_creative_detail","new_creative_procedural_detail","new_creative_list","comment_manage","ios14_drop","ios14_only_cpc","ios14_mvp","ios14_dialog","refactor_creation","vo_dpa","targeting_recommendation","targeting_recommendation_newui","reporting_v5","targeting_expansion","catalog_asset","s4smb_custom_mode","additional_customized_image_card","additional_customized_game_gift_card","additional_customized_instant_page","additional_rf_customized_instant_page","native_music_promote","ios14_multiple","account_and_asset_linking","upgraded_viewdata","interest_keywords","dpa_inventory_flow_pangle_app","dpa_inventory_flow_pangle_msite","smb_diagnose","audit_reject_appeal","creative_preview_with_qrcode","diagnosis_suggestion_v2","reporting_ttads","rf_appinstall","contact_service","brandSafetyInventory","rf_engagement","app_profile_instant_page","capitalization","need_capitalized","aco_max_upload","split_test_support_ios_14","bulk_edit","automated_rules","rf_support_wip","rf_only_support_wip","traffic_cbo","vv_cbo","reach_cbo","engagement_cbo","dpa_cbo","aeo_cbo","lead_ads_cbo","rf_statistics_upgrade","pcm_phase1","pcm_phase2","search_ads","search_ads_preview","ttba_push_native_video","tiktok_duet_stitch_auth","zefrWhite","pixel_standard","AUTOMATED_TARGETING","BUDGET_LIMIT_REDUCTION","vo_appinstall_standard","vo_appinstall_roas","vo_conversions_app_standard","vo_conversions_app_roas","vo_conversions_web_standard","vo_conversions_web_roas","vo_dpa_app_standard","vo_dpa_app_roas","vo_dpa_web_standard","vo_dpa_web_roas","vo_pangle_appinstall_standard","vo_pangle_appinstall_roas","aco_support_cta_optimized","tiktok_playable_ads","lead_ads_crm","rf_gesture","rf_painted_egg","disclaimer","rfDisclaimer","SHOP_LIVE","smb_suggestion_v2","new_identity","ttp_support","ttp_statistics_api","ttp_viewdata_reporting","diagnosis_two_point_one","aco_reporting_upgrade","automated_rules_today_conversion","rf_dmp","videoUploadfrontPrecheck","ttp_banner","attachement_creative_refact","bulletboard","dc_multiple_five","rf_creative_mode","cmo_v2","video_shopping_multi_products","brand_track_data","dpa_image","rf_pi","context_target","context_target_premium","cmo_name_sort","shop_multiple_attribution","library_dashboard","industry_type","refactor_creation_smb","bsIasWhite","bsDvWhite","shop_live_optimize_goal_product_click","shop_live_optimize_goal_initate_checkout","shop_live_optimize_goal_complete_payment","rf_90_days__delivery","rf_adgroup_copy","perf_total_async","ttp_2fa","comment_new","budget_recommend","pharmacy_qualification","music_qualification_simplified_submission","perf_table_optimize","perf_list_cache","in_market_target","app_profile_page_support_cost_cap","required_creative","ttp_uv","URL_SUPPORT_EDIT","hide_pixel_event","rf_fe_refactor","Newcomment","search_ads_mt","split_test_entry","htc","dashboard_api_optimize","dsa_with_collection_ad","high_household_income","shop_ads_product_anchor","aeo_dc_cost_cap","refactor_creation_create_campaign","migration_dsa_ca_phase_two","migration_dsa_ca_phase_three","migration_dsa_ca_phase_four","migration_dsa_ca_no_migrate","migration_dsa_ca","ads_manager_clover","migrate_shop_purchase_exclude","migrate_shop_purchase","migrate_shop_purchase_edit_copy_exclude","migrate_shop_purchase_phase2","automatic_rule_support_new_schedule","whiteHelper","isBrandTrackDataWhite","isNewCommentWhite","isBudgetRecommendWhite","isInMarketTargetWhite","isAutoTargetingEnabled","isBudgetReductionEnabled","isDiagnosis2Point1","isIOS14MultipleTwoWhite","isIOSDialog","isStoreFrontsPlpWhite","isBrandAuctionCAWhite","isCollectionAdsImageCardWhite","isCollectionAdsAppWhite","isMtUSWhite","isAppProfilePageSupportCostCap","isVoAppInstallStandardWhite","isVoAppInstallRoasWhite","isVoConversionsAppStandardWhite","isVoConversionsAppRoasWhite","isVoConversionsWebStandardWhite","isVoConversionsWebRoasWhite","isVoDpaAppStandardWhite","isVoDpaAppRoasWhite","isVoDpaWebStandardWhite","isVoDpaWebRoasWhite","isVoPangleInstallRoasWhite","isVoPangleInstallStandardWhite","isDpaAppRetargetingWhite","isDpaAppInstallWhite","isDpaWebsiteRetargetingWhite","isDpaWebsiteProspectingWhite","isDpaPangleAppWhite","isDpaPangleWebsiteWhite","isPangleImageWhite","isNativeAdRFWhite","isSplitTestCreativeWhite","isShopMultipleAttr","rit","isPostPayWhite","isInCopyCreativeWhite","isCBOWhite","isCBOLifetimeWhite","isCBOVOHighestValueWhite","isCBOVOMinRoasWhite","isIndustryTypeWhite","isSplitTestBiddingWhite","isSinkTrafficWhite","isSinkConversionWhite","isSinkReachWhite","isSinkVideoViewWhite","isSinkDpaWhite","isCarouselImageCreativeAllowed_v1","isCarouselImageCreativeAllowed_v2","isCarouselImageCreativeAllowed","some","isFollowMetricsWhite","isAcoPresentedVideoWhiteList","isHightRiskAreas","isCaptureImageFromVideoToolEnable","isPangleOcpxNobidWhite","isPangleCPCNobidWhite","isInspectWhite","isCtaAutoOptimizedWhite","isCreativeVideoEditorEnable","isAthenaIntelligentCallerWhite","isCommentManageWhite","isNewCreativeDetailWhite","isNewCreativeProceduralDetailWhite","isNewCreativeListWhite","isColdBoot","isReportingV5White","isRefactorCreationWhite","isSMBRefactorCreationWhite","isScheduledBudgetWhite","isForbidPcliteRedirect","isTargetingRecommendationWhite","isTargetingRecommendationNewUIWhite","isAdditionalImageCardEnable","isTargetingExpansionWhite","isAdditionalGameGiftCardEnable","isAdditionalInstantPageCardEnable","isAdditionalRfInstantPageEnable","isAcoUploadUnLockWhite","isUpgradedViewDataWhite","isInterestKeywordsWhite","isHashtagWhite","isCreativePreviewWithQrcodeWhite","isAuditRejectAppealEnable","isContactServiceWhite","isReportingTTAdsWhite","isAppProfileInstantPageEnable","isCapitalization","isAutomatedRulesWhite","isRFSupportWip","isRFOnlySupportWip","isAcoSupportCtaOptimizedWhite","isTTBAPushNativeVideoAllowed","isDoubleAuthorizationWhite","isVideoShoppingMultiProductsWhite","searchAdsWhite","searchAdsPreviewWhite","tiktokPlayableAdsWhite","isLeadAdsCrmWhite","isSplitTestSupportIOS14White","isSupportGesture","isSupportPaintedEgg","disclaimerWhite","rfDisclaimerWhite","isNewIdentityWhite","isHasTTPWhite","isHasCloverWhite","isTTPStatisticsApiWhite","isRFSupportDMP","isRFSupportPI","isContextTarget","isPremiumTopic","isVideoUploadfrontPrecheckWhite","isMoatWhite","isViewIASWhite","isDVWhite","isZefrWhite","isBsIasWhite","isBsDvWhite","isTTPStatisticsWhite","isTTPBannerWhite","isTTP2FAWhite","isTTPUVWhite","isBulletboardWhite","isSupportCreativeMode","isCMOV2White","isDPASupportImage","isCMONameSortWhite","isRf90DaysDelivery","isLibraryDashboardWhite","isRfAdgroupCopy","isPerfTotalAsyncWhite","isPharmacyQualificationWhite","isPerfListCacheWhite","isPerfTableOptimizeWhite","isMusicSimplifiedAllowed","isSupportURLEditWhite","isRequiredCreativeWhite","isHideOptimizationEventWhite","isSplitTestEntryWhite","isHtcWhite","isDashboardApiOptimizeWhite","isDsaWithCollectionAdWhite","isShopProductAnchor","isAeoDcCostCapWhite","isHhiWhite","isSupportDSAAndCAMigration","isSupportDSAAndCANoMigration","isSupportMigrationPhaseTwo","isSupportMigrationPhaseThree","isSupportMigrationPhaseFour","isShopMigration","isShopNoMigration","isShopMigrationPhase2","isShopNoMigrationPhase2","isAutomaticRuleRunOnce"],"sourceRoot":""}