// ==UserScript== // @name GTA导出 // @namespace http://tampermonkey.net/ // @license MIT // @version 0.4 // @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://greasyfork.org/scripts/404478-jsonexportexcel-min/code/JsonExportExcelmin.js?version=811266 // @require https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js // @require https://greasyfork.org/scripts/455576-qmsg/code/Qmsg.js?version=1122361 // @downloadURL none // ==/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': 'xinmei@golong.cn', '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 = [] const sheetArr1 = [] //query参数获取 function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i `${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.report_name,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.report_name,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.report_name,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.report_name,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(sheetName,impound_begin_date,impound_end_date,harvest_begin_date,harvest_end_date,report_id,report_name) { let contrast = { sheetName:'sheetName', 蓄水期开始时间:'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 = {sheetName,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})`, sheetData, sheetHeader:Object.keys(contrast), sheetFilter:Object.values(contrast), columnWidths: [], // 列宽 } sheetArr1.push(sheetData) } 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 expExcel1() { let contrast = { sheetName:'sheetName', 蓄水期开始时间:'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 option={}; option.fileName = fileName //文件名 option.datas=[{ sheetName:'sheet1', sheetData:sheetArr1, sheetHeader:Object.keys(contrast), sheetFilter:Object.values(contrast), columnWidths: [], // 列宽 }] sheetArr1; 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(expExcel1, 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) } })();