// ==UserScript==
// @name GTA导出
// @namespace http://tampermonkey.net/
// @license MIT
// @version 0.2
// @description 云图扩展工具
// @author siji-Xian
// @match *://yuntu.oceanengine.com/yuntu_ng/assets/crowd/monitoring?*
// @icon https://www.google.com/s2/favicons?domain=oceanengine.com
// @grant none
// @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.2.1/jquery.min.js
// @require https://cdn.bootcss.com/moment.js/2.20.1/moment.min.js
// @require https://gf.qytechs.cn/scripts/404478-jsonexportexcel-min/code/JsonExportExcelmin.js?version=811266
// @require https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js
// @require https://gf.qytechs.cn/scripts/455576-qmsg/code/Qmsg.js?version=1122361
// ==/UserScript==
(function () {
"use strict";
var analysis_type = 1, //0是蓄水期, 1是活动期
gta_type = 1 //1是新客蓄水期 ,2是新客活动期 ,4是老客 //analysis_type = 0 不用管这个
var new_element = document.createElement('link');
new_element.setAttribute('rel', 'stylesheet');
new_element.setAttribute('href', 'https://qmsg.refrain.xyz/message.min.css');
document.body.appendChild(new_element);
var button1_1 = document.createElement("button"); //创建一个按钮
button1_1.textContent = "进行中蓄水"; //按钮内容
button1_1.style.height = "32px"; //高
button1_1.style.lineHeight = "32px"; //行高
button1_1.style.align = "center"; //文本居中
button1_1.style.color = "white"; //按钮文字颜色
button1_1.style.background = "#1f4bd9"; //按钮底色
button1_1.style.border = "0px"; //边框属性
button1_1.style.borderRadius = "0px"; //按钮四个角弧度
button1_1.style.marginLeft = '10px';
button1_1.style.fontSize = '12px';
button1_1.style.padding = '0 5px';
button1_1.addEventListener("click", urlClick1_1); //监听按钮点击事件
var button1_2 = document.createElement("button"); //创建一个按钮
button1_2.textContent = "进行中新客蓄水"; //按钮内容
button1_2.style.height = "32px"; //高
button1_2.style.lineHeight = "32px"; //行高
button1_2.style.align = "center"; //文本居中
button1_2.style.color = "white"; //按钮文字颜色
button1_2.style.background = "#1f4bd9"; //按钮底色
button1_2.style.border = "0px"; //边框属性
button1_2.style.borderRadius = "0px"; //按钮四个角弧度
button1_2.style.marginLeft = '10px';
button1_2.style.fontSize = '12px';
button1_2.style.padding = '0 5px';
button1_2.addEventListener("click", urlClick1_2); //监听按钮点击事件
var button1_3 = document.createElement("button"); //创建一个按钮
button1_3.textContent = "进行中活动新增"; //按钮内容
button1_3.style.height = "32px"; //高
button1_3.style.lineHeight = "32px"; //行高
button1_3.style.align = "center"; //文本居中
button1_3.style.color = "white"; //按钮文字颜色
button1_3.style.background = "#1f4bd9"; //按钮底色
button1_3.style.border = "0px"; //边框属性
button1_3.style.borderRadius = "0px"; //按钮四个角弧度
button1_3.style.marginLeft = '10px';
button1_3.style.fontSize = '12px';
button1_3.style.padding = '0 5px';
button1_3.addEventListener("click", urlClick1_3); //监听按钮点击事件
var button1_4 = document.createElement("button"); //创建一个按钮
button1_4.textContent = "进行中老客转化"; //按钮内容
button1_4.style.height = "32px"; //高
button1_4.style.lineHeight = "32px"; //行高
button1_4.style.align = "center"; //文本居中
button1_4.style.color = "white"; //按钮文字颜色
button1_4.style.background = "#1f4bd9"; //按钮底色
button1_4.style.border = "0px"; //边框属性
button1_4.style.borderRadius = "0px"; //按钮四个角弧度
button1_4.style.marginLeft = '10px';
button1_4.style.fontSize = '12px';
button1_4.style.padding = '0 5px';
button1_4.addEventListener("click", urlClick1_4); //监听按钮点击事件
var button = document.createElement("button"); //创建一个按钮
button.textContent = "进行中成交概览"; //按钮内容
button.style.height = "32px"; //高
button.style.lineHeight = "32px"; //行高
button.style.align = "center"; //文本居中
button.style.color = "white"; //按钮文字颜色
button.style.background = "#1f4bd9"; //按钮底色
button.style.border = "0px"; //边框属性
button.style.borderRadius = "0px"; //按钮四个角弧度
button.style.marginLeft = '10px';
button.style.fontSize = '12px';
button.style.padding = '0 5px';
button.addEventListener("click", urlClick); //监听按钮点击事件
var button2_1 = document.createElement("button"); //创建一个按钮
button2_1.textContent = "历史蓄水"; //按钮内容
button2_1.style.height = "32px"; //高
button2_1.style.lineHeight = "32px"; //行高
button2_1.style.align = "center"; //文本居中
button2_1.style.color = "white"; //按钮文字颜色
button2_1.style.background = "#1f4bd9"; //按钮底色
button2_1.style.border = "0px"; //边框属性
button2_1.style.borderRadius = "0px"; //按钮四个角弧度
button2_1.style.marginLeft = '10px';
button2_1.style.fontSize = '12px';
button2_1.style.padding = '0 5px';
button2_1.addEventListener("click", urlClick2_1); //监听按钮点击事件
var button2_2 = document.createElement("button"); //创建一个按钮
button2_2.textContent = "历史新客蓄水"; //按钮内容
button2_2.style.height = "32px"; //高
button2_2.style.lineHeight = "32px"; //行高
button2_2.style.align = "center"; //文本居中
button2_2.style.color = "white"; //按钮文字颜色
button2_2.style.background = "#1f4bd9"; //按钮底色
button2_2.style.border = "0px"; //边框属性
button2_2.style.borderRadius = "0px"; //按钮四个角弧度
button2_2.style.marginLeft = '10px';
button2_2.style.fontSize = '12px';
button2_2.style.padding = '0 5px';
button2_2.addEventListener("click", urlClick2_2); //监听按钮点击事件
var button2_3 = document.createElement("button"); //创建一个按钮
button2_3.textContent = "历史新客新增"; //按钮内容
button2_3.style.height = "32px"; //高
button2_3.style.lineHeight = "32px"; //行高
button2_3.style.align = "center"; //文本居中
button2_3.style.color = "white"; //按钮文字颜色
button2_3.style.background = "#1f4bd9"; //按钮底色
button2_3.style.border = "0px"; //边框属性
button2_3.style.borderRadius = "0px"; //按钮四个角弧度
button2_3.style.marginLeft = '10px';
button2_3.style.fontSize = '12px';
button2_3.style.padding = '0 5px';
button2_3.addEventListener("click", urlClick2_3); //监听按钮点击事件
var button2_4 = document.createElement("button"); //创建一个按钮
button2_4.textContent = "历史老客转化"; //按钮内容
button2_4.style.height = "32px"; //高
button2_4.style.lineHeight = "32px"; //行高
button2_4.style.align = "center"; //文本居中
button2_4.style.color = "white"; //按钮文字颜色
button2_4.style.background = "#1f4bd9"; //按钮底色
button2_4.style.border = "0px"; //边框属性
button2_4.style.borderRadius = "0px"; //按钮四个角弧度
button2_4.style.marginLeft = '10px';
button2_4.style.fontSize = '12px';
button2_4.style.padding = '0 5px';
button2_4.addEventListener("click", urlClick2_4); //监听按钮点击事件
var button3_1 = document.createElement("button"); //创建一个按钮
button3_1.textContent = "自定义蓄水"; //按钮内容
button3_1.style.height = "32px"; //高
button3_1.style.lineHeight = "32px"; //行高
button3_1.style.align = "center"; //文本居中
button3_1.style.color = "white"; //按钮文字颜色
button3_1.style.background = "#1f4bd9"; //按钮底色
button3_1.style.border = "0px"; //边框属性
button3_1.style.borderRadius = "0px"; //按钮四个角弧度
button3_1.style.marginLeft = '10px';
button3_1.style.fontSize = '12px';
button3_1.style.padding = '0 5px';
button3_1.addEventListener("click", urlClick3_1); //监听按钮点击事件
var button3_2 = document.createElement("button"); //创建一个按钮
button3_2.textContent = "自定义新客蓄水"; //按钮内容
button3_2.style.height = "32px"; //高
button3_2.style.lineHeight = "32px"; //行高
button3_2.style.align = "center"; //文本居中
button3_2.style.color = "white"; //按钮文字颜色
button3_2.style.background = "#1f4bd9"; //按钮底色
button3_2.style.border = "0px"; //边框属性
button3_2.style.borderRadius = "0px"; //按钮四个角弧度
button3_2.style.marginLeft = '10px';
button3_2.style.fontSize = '12px';
button3_2.style.padding = '0 5px';
button3_2.addEventListener("click", urlClick3_2); //监听按钮点击事件
var button3_3 = document.createElement("button"); //创建一个按钮
button3_3.textContent = "自定义新客新增"; //按钮内容
button3_3.style.height = "32px"; //高
button3_3.style.lineHeight = "32px"; //行高
button3_3.style.align = "center"; //文本居中
button3_3.style.color = "white"; //按钮文字颜色
button3_3.style.background = "#1f4bd9"; //按钮底色
button3_3.style.border = "0px"; //边框属性
button3_3.style.borderRadius = "0px"; //按钮四个角弧度
button3_3.style.marginLeft = '10px';
button3_3.style.fontSize = '12px';
button3_3.style.padding = '0 5px';
button3_3.addEventListener("click", urlClick3_3); //监听按钮点击事件
var button3_4 = document.createElement("button"); //创建一个按钮
button3_4.textContent = "自定义老客转化"; //按钮内容
button3_4.style.height = "32px"; //高
button3_4.style.lineHeight = "32px"; //行高
button3_4.style.align = "center"; //文本居中
button3_4.style.color = "white"; //按钮文字颜色
button3_4.style.background = "#1f4bd9"; //按钮底色
button3_4.style.border = "0px"; //边框属性
button3_4.style.borderRadius = "0px"; //按钮四个角弧度
button3_4.style.marginLeft = '10px';
button3_4.style.fontSize = '12px';
button3_4.style.padding = '0 5px';
button3_4.addEventListener("click", urlClick3_4); //监听按钮点击事件
var button3 = document.createElement("button"); //创建一个按钮
button3.textContent = "自定义成交概览"; //按钮内容
button3.style.height = "32px"; //高
button3.style.lineHeight = "32px"; //行高
button3.style.align = "center"; //文本居中
button3.style.color = "white"; //按钮文字颜色
button3.style.background = "#1f4bd9"; //按钮底色
button3.style.border = "0px"; //边框属性
button3.style.borderRadius = "0px"; //按钮四个角弧度
button3.style.marginLeft = '10px';
button3.style.fontSize = '12px';
button3.style.padding = '0 5px';
button3.addEventListener("click", urlClick3); //监听按钮点击事件
//品牌
let brandObj = {
'1672744301182989':'潘婷',
'1713573417704462': 'SSS',
'1716472555224075': '奶糖派NTP',
'1718566610217988': '南国食品旗舰店',
'1718731435013124': 'beautigo',
'1726899190084611': 'Kate Somerville海外旗舰店',
'1729546814550019': "让缇丝Jean d'estrées",
'1730713495040007': '科施佳官方旗舰店',
'1732519757634573': '[email protected]',
'1733594070401032': 'Sepai',
'1736238360556548': '杭州天萃诗化妆品有限公司',
'1739400043457611': '瑞斐时天津碧捷',
'1744999758913544': 'HORMETA欧米达',
'1648829120397320': 'Filorga/菲洛嘉',
'1696356811251726': 'HADAY/海天',
'1648829117571079': 'Nivea/妮维雅',
'1648829118742542': 'HomeFacialPro',
'1672744346769421': 'Mionsoo/棉上',
'1702602772284429': 'AUX/奥克斯',
'1696356998849550': 'Bear/小熊',
'1672744362622983': 'Baby elephant/红色小象',
'1657598035549197': 'OLAY/玉兰油',
'1657598044429383': 'BIOHYALUX/润百颜',
'1672744296373261': 'a2/至初',
'1672744348379143': '最生活',
'1672744376680456': 'MANTING/满婷',
'1672744368166926': 'pwu/朴物大美',
'1703060893535310': 'UNISKIN/优时颜',
'1679081331241997': 'ClorisLand/花皙蔻',
'1710507460462600': 'Bb LABORATORIES/苾莱宝',
'1702602792209421': 'BRITA/碧然德',
'1696356993701902': 'FLYCO/飞科',
'1696356967609421': 'PMPM',
'1703060791743559': 'RELLET/颐莲',
'1708581408431111': 'timage/彩棠',
'1715399324706823': 'Dermalogica/德美乐嘉',
'1713035750084616': '肌肉科技',
'1696356873768974': '官栈',
'1713035741929479': 'MOODY',
'1713035776524360': '猎聘',
'1703060860826648': 'Prof.Ling/凌博士',
'1696356964662285': 'LUONENG/罗能',
'1696356991309896': 'Ulike',
'1702602808232974': 'JINKAIRUI/金凯瑞',
'1713035768359943': 'Zhong An Insurance/众安保险',
'1726246245022727': '书亦烧仙草',
'1726246207527048': '可复美',
'1728619073817672': 'BeautiGO',
'1728619134274567': '奶糖派',
'1731407696747534': 'MURAD',
'1731407714116622': 'OVF',
'1737060287995918': "JEAND'ESTREES/让缇丝"
}
//message.js
let loadingMsg = null
// //导出文件名
let fileName = ''
//默认GET请求
const getRequestOptions = {
method: 'GET',
redirect: 'follow'
};
setTimeout(() => {
var like_comment = document.getElementsByClassName('index__container--QOzF4')[0];
// like_comment.append(button1_1); //把按钮加入到 x 的子节点中
like_comment.append(button1_2); //把按钮加入到 x 的子节点中
like_comment.append(button1_3); //把按钮加入到 x 的子节点中
like_comment.append(button1_4); //把按钮加入到 x 的子节点中
like_comment.append(button)
// like_comment.append(button2_1); //把按钮加入到 x 的子节点中
// like_comment.append(button2_2); //把按钮加入到 x 的子节点中
// like_comment.append(button2_3); //把按钮加入到 x 的子节点中
// like_comment.append(button2_4); //把按钮加入到 x 的子节点中
like_comment.append(button3_1); //把按钮加入到 x 的子节点中
like_comment.append(button3_2); //把按钮加入到 x 的子节点中
like_comment.append(button3_3); //把按钮加入到 x 的子节点中
like_comment.append(button3_4); //把按钮加入到 x 的子节点中
like_comment.append(button3); //把按钮加入到 x 的子节点中
}, 4000);
//导出(防抖)
var debounce
//导出数据
const sheetArr = []
//query参数获取
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
//获取brand信息
let brand = localStorage.getItem('__Garfish__platform__yuntu_user') || ''
let brands = JSON.parse(brand)
//封装网络请求(带导出)
function fetchFun(url,data={}, requestOptions=getRequestOptions){
const urlData = Object.keys(data).map(v => `${v}=${data[v]}`).join('&')
return fetch(`${url}?${urlData}`, requestOptions)
.then(response => response.text())
.then(result => {
debounce()
return JSON.parse(result)
})
.catch(error => console.log('error', error));
}
function fetchFun2(url,data={}, requestOptions=getRequestOptions){
const urlData = Object.keys(data).map(v => `${v}=${data[v]}`).join('&')
return fetch(`${url}?${urlData}`, requestOptions)
.then(response => response.text())
.then(result => {
return JSON.parse(result)
})
.catch(error => console.log('error', error));
}
//获取行业id
async function getIndustryId(){
let industry_id_url = `https://yuntu.oceanengine.com/yuntu_ng/api/v1/get_user_info`
let res = await fetchFun2(industry_id_url,{aadvid:getQueryVariable('aadvid')})
let industryValue = document.getElementsByClassName('byted-input-size-md')[0].value.split('/')[document.getElementsByClassName('byted-input-size-md')[0].value.split('/').length - 1]
let data = res
let a = data?.data?.brandMetadata?.filter((e)=>{
return e?.industry_name == industryValue
})[0]
return a.industry_id
}
//活动类型记录获取
async function getQueryType(e){
let industry_id = await getIndustryId()
let data = {
report_name:'',
page_index:1,
page_size:1,
query_type:e, //1:进行中活动,2:历史活动 3:自定义
report_status:0,
aadvid:getQueryVariable('aadvid'),
brand_id:brands.brand_id,
industry_id
}
let requestData1 = await fetchFun2(
'https://yuntu.oceanengine.com/yuntu_ng/api/v1/AudienceGtaReportQueryList',
data
)
data.page_size = requestData1.data.total
let requestData = await fetchFun2(
'https://yuntu.oceanengine.com/yuntu_ng/api/v1/AudienceGtaReportQueryList',
data
)
let titleValue = document.getElementsByClassName('index__name--yem7b')[0]?.innerText
console.log(titleValue)
if (titleValue) {
let arrList = requestData.data.reports.filter(v=>v.report_name === titleValue)
arrList.forEach(v => {
getTermTabsItem(v.impound_begin_date,v.impound_end_date,v.harvest_begin_date,v.harvest_end_date,v.report_id,v.report_name, arrList.length) //这是活动期转化分析
})
}else{
requestData.data.reports.forEach(v => {
getTermTabsItem(v.impound_begin_date,v.impound_end_date,v.harvest_begin_date,v.harvest_end_date,v.report_id,v.report_name, requestData.data.reports.length) //这是活动期转化分析
});
}
}
//活动类型记录获取
async function getQueryType1(e){
let industry_id = await getIndustryId()
let data = {
report_name:'',
page_index:1,
page_size:1,
query_type:e, //1:进行中活动,2:历史活动 3:自定义
report_status:0,
aadvid:getQueryVariable('aadvid'),
brand_id:brands.brand_id,
industry_id
}
let requestData1 = await fetchFun2(
'https://yuntu.oceanengine.com/yuntu_ng/api/v1/AudienceGtaReportQueryList',
data
)
data.page_size = requestData1.data.total
let requestData = await fetchFun2(
'https://yuntu.oceanengine.com/yuntu_ng/api/v1/AudienceGtaReportQueryList',
data
)
let titleValue = document.getElementsByClassName('index__name--yem7b')[0]?.innerText
if (titleValue) {
let arrList = requestData.data.reports.filter(v=>v.report_name === titleValue)
arrList.forEach(v => {
getTabsData(v.impound_begin_date,v.impound_end_date,v.harvest_begin_date,v.harvest_end_date,v.report_id,v.report_name,arrList.length) //这是上面的取数
})
}else{
requestData.data.reports.forEach(v => {
getTabsData(v.impound_begin_date,v.impound_end_date,v.harvest_begin_date,v.harvest_end_date,v.report_id,v.report_name,requestData.data.reports.length) //这是上面的取数
});
}
// requestData.data.reports.forEach(v => {
// getTabsData(v.impound_begin_date,v.impound_end_date,v.harvest_begin_date,v.harvest_end_date,v.report_id,v.report_name,requestData.data.reports.length) //这是上面的取数
// });
}
//活动数据获取
async function getTabsData(impound_begin_date,impound_end_date,harvest_begin_date,harvest_end_date,report_id,report_name) {
let contrast = {
蓄水期开始时间:'impound_begin_date',
蓄水期结束时间:'impound_end_date',
活动期开始时间:'harvest_begin_date',
活动期结束时间:'harvest_end_date',
新客人数:'old_gmv_deal_cnt',
新客GMV:'old_gmv_gmv',
新客客单价:'old_gmv_unit_price',
老客人数:'old_deal_cnt',
存量购买人数:'old_a4_cover_num',
存量购买转化率:'old_a4_rate',
老客GMV:'old_gmv',
老客客单价:'old_unit_price',
活动期成交人数:"cover_num",
活动期gmv:'gmv',
活动期客单价:'unit_price',
gmv目标完成度:'gmv_process',
最新日期:'latest_date',
新增A1规模:'new_A1_cover_num',
新增A1贡献新客人数:'new_A1_deal_cnt',
新增A1贡献占比:'new_A1_deal_rate',
新增A1转化率:'new_A1_flow_rate',
新增A2规模:'new_A2_cover_num',
新增A2贡献新客人数:'new_A2_deal_cnt',
新增A2贡献占比:'new_A2_deal_rate',
新增A2转化率:'new_A2_flow_rate',
新增A3规模:'new_A3_cover_num',
新增A3贡献新客人数:'new_A3_deal_cnt',
新增A3贡献占比:'new_A3_deal_rate',
新增A3转化率:'new_A3_flow_rate',
存量A1规模:'old_A1_cover_num',
存量A1贡献新客人数:'old_A1_deal_cnt',
存量A1贡献占比:'old_A1_deal_rate',
存量A1转化率:'old_A1_flow_rate',
存量A2规模:'old_A2_cover_num',
存量A2贡献新客人数:'old_A2_deal_cnt',
存量A2贡献占比:'old_A2_deal_rate',
存量A2转化率:'old_A2_flow_rate',
存量A3规模:'old_A3_cover_num',
存量A3贡献新客人数:'old_A3_deal_cnt',
存量A3贡献占比:'old_A3_deal_rate',
存量A3转化率:'old_A3_flow_rate',
o人群贡献占比:'o_rate'
}
let data = {
industry_id:13,
aadvid:getQueryVariable('aadvid'),
brand_id:brands.brand_id,
report_id,
}
let requestData = await fetchFun(
'https://yuntu.oceanengine.com/yuntu_ng/api/v1/AudienceGtaHarvestGmvProfile',
data
)
let res = requestData?.data?.profiles || requestData?.data?.profile
let new_gmv = {}
Object.keys(res.new_gmv).forEach(v => {
new_gmv[`old_gmv_${v}`] = res.new_gmv[v]
});
let new_gmv_new_analysis = {}
res.new_gmv.new_analysis.map((v,i)=>{
let name = i == 0 ? 'old' : i == 1 ? 'new' : 'o'
Object.keys(v).forEach(res => {
new_gmv_new_analysis[`${name}_${res}`] = v[res]
});
})
let new_gmv_new_analysis_details = {}
new_gmv_new_analysis.new_details.map((v,i)=>{
let name = i == 0 ? 'new_A1' : i == 1 ? 'new_A2' : 'new_A3'
Object.keys(v).forEach(res => {
new_gmv_new_analysis_details[`${name}_${res}`] = v[res]
});
})
new_gmv_new_analysis.old_details.map((v,i)=>{
let name = i == 0 ? 'old_A1' : i == 1 ? 'old_A2' : 'old_A3'
Object.keys(v).forEach(res => {
new_gmv_new_analysis_details[`${name}_${res}`] = v[res]
});
})
let old_gmv = {}
Object.keys(res.old_gmv).forEach(v => {
old_gmv[`old_${v}`] = res.old_gmv[v]
});
let sheetData = [{impound_begin_date,impound_end_date,harvest_begin_date,harvest_end_date,...res,...new_gmv,...old_gmv,...new_gmv_new_analysis,...new_gmv_new_analysis_details}]
let datas = {
sheetName:`(${report_id})${report_name}`,
sheetData,
sheetHeader:Object.keys(contrast),
sheetFilter:Object.values(contrast),
columnWidths: [], // 列宽
}
sheetArr.push(datas)
}
let expDatas = []
//活动期转化Item获取
async function getTermTabsItem(impound_begin_date,impound_end_date,harvest_begin_date,harvest_end_date,report_id,report_name,i) {
let contrast = (analysis_type===0) ? {
蓄水期开始时间:'impound_begin_date',
蓄水期结束时间:'impound_end_date',
触点:'trigger_point_name',
ID:'trigger_point_id',
曝光次数:'show_cnt',
曝光人数:'show_uv',
曝光人数:'show_uv',
人均曝光次数:'show_avg',
流转规模:'to_a3_cnt',
流转率:'to_a3_rate'
}:{
活动期开始时间:'harvest_begin_date',
活动期结束时间:'harvest_end_date',
触点:'trigger_point_name',
ID:'trigger_point_id',
曝光次数:'show_cnt',
曝光人数:'show_uv',
曝光人数:'show_uv',
人均曝光次数:'show_avg',
存量转化人数:'to_a4_cnt',
存量转化率:'to_a4_rate',
}
let industry_id = await getIndustryId()
let data = {
aadvid:getQueryVariable('aadvid'),
industry_id,
brand_id:brands.brand_id,
report_id,
gta_type:gta_type
}
let requestData = await fetchFun2(
'https://yuntu.oceanengine.com/yuntu_ng/api/v1/AudienceGtaHarvestAnalysisProfile',
data
)
let res = requestData?.data?.profiles || requestData?.data?.profile?.analysis
let expExcel2Data = await Promise.all(
res.map(async v => {
let a = await getTermTabsData(report_id,report_name,v.card)
return a
})
)
let arrData = [
{impound_begin_date,impound_end_date,harvest_begin_date,harvest_end_date}
]
expExcel2Data.forEach((v)=>{
arrData.push(...v.sheetData)
})
expDatas.push({
sheetName:`(${report_id})${report_name}`,
sheetData:arrData.length?arrData:[{}],
sheetHeader:Object.keys(contrast),
sheetFilter:Object.values(contrast),
columnWidths: [], // 列宽
})
if(expDatas.length === i){
expExcel2(`${brandObj[getQueryVariable('aadvid')]}${fileName}${moment().format("YYYYMMDDHHmmss")}GTA数据`,expDatas)
}
}
//活动期转化数据获取
async function getTermTabsData(report_id,report_name,card) {
let contrast =(analysis_type===0) ? {
触点:'trigger_point_name',
ID:'trigger_point_id',
曝光次数:'show_cnt',
曝光人数:'show_uv',
曝光人数:'show_uv',
人均曝光次数:'show_avg',
流转规模:'to_a3_cnt',
流转率:'to_a3_rate'
}:{
触点:'trigger_point_name',
ID:'trigger_point_id',
曝光次数:'show_cnt',
曝光人数:'show_uv',
曝光人数:'show_uv',
人均曝光次数:'show_avg',
存量转化人数:'to_a4_cnt',
存量转化率:'to_a4_rate',
}
let baseUrl = (analysis_type === 0) ? 'https://yuntu.oceanengine.com/yuntu_ng/api/v1/AudienceGtaImpoundAnalysis' : 'https://yuntu.oceanengine.com/yuntu_ng/api/v1/AudienceGtaHarvestAnalysis'
let industry_id = await getIndustryId()
let data = {
aadvid:getQueryVariable('aadvid'),
industry_id,
brand_id:brands.brand_id,
report_id,
gta_type:gta_type,
analysis_type:1,
card
}
let requestData = await fetchFun2(
baseUrl,
data
)
let res = requestData.data.ax_analysis.tps
let res2 = res.map(v=>{
return {
...v,
trigger_point_name:`A${card}${v.trigger_point_name}`
}
})
return {
sheetName:`${report_name}_A${card}`,
sheetData:res2,
sheetHeader:Object.keys(contrast),
sheetFilter:Object.values(contrast),
columnWidths: [], // 列宽
}
}
function expExcel() {
let option={};
option.fileName = fileName //文件名
option.datas=sheetArr;
var toExcel=new ExportJsonExcel(option);
console.log(option)
toExcel.saveExcel();
loadingMsg.close()
}
function expExcel2(e,data) {
console.log(data,'DATA');
let option={};
option.fileName = e //文件名
option.datas=data;
console.log(option)
// setdata_mgdb(data)
var toExcel=new ExportJsonExcel(option);
toExcel.saveExcel();
loadingMsg.close()
expDatas = []
}
function urlClick1_1() {
analysis_type = 0
fileName = "进行中蓄水"
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(1)
}
function urlClick1_2() {
analysis_type = 1
fileName = "进行中新客蓄水"
gta_type = 1
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(1)
}
function urlClick1_3() {
analysis_type = 1
gta_type = 2
fileName = "进行中新客新增"
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(1)
}
function urlClick1_4() {
analysis_type = 1
gta_type = 4
fileName = "进行中老客转化"
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(1)
}
function urlClick() {
fileName = `${brandObj[getQueryVariable('aadvid')]}进行中成交概览数据`
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType1(1)
}
function urlClick3() {
fileName = `${brandObj[getQueryVariable('aadvid')]}自定义成交概览数据`
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType1(3)
}
function urlClick2_1() {
analysis_type = 0
fileName = 'GTA历史活动蓄水期数据'
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(2)
}
function urlClick2_2() {
analysis_type = 1
gta_type = 1
fileName = 'GTA历史活动新客蓄水期数据'
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(2)
}
function urlClick2_3() {
analysis_type = 1
gta_type = 2
analysis_type = 0
fileName = 'GTA历史活动新客活动期数据'
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(2)
}
function urlClick2_4() {
analysis_type = 1
gta_type = 4
fileName = 'GTA历史活动老客转化数据'
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(2)
}
function urlClick3_1() {
analysis_type = 0
fileName = "进行中蓄水"
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(3)
}
function urlClick3_2() {
analysis_type = 1
gta_type = 1
fileName = "进行中新客蓄水"
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(3)
}
function urlClick3_3() {
analysis_type = 1
gta_type = 2
fileName = "进行中新客新增"
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(3)
}
function urlClick3_4() {
analysis_type = 1
gta_type = 4
fileName = "进行中老客转化"
debounce = _.debounce(expExcel, 5000)
loadingMsg = Qmsg.loading("正在导出,请勿重复点击!");
getQueryType(3)
}
})();