码桶

发现社区成员的开源项目

geekssl /

wstats

公开
main
wstats/public/assets/Ads-CIcrNdFL.js
Ads-CIcrNdFL.js5.4 KB
import{u as K,a as R,c as B,r as d,q as L,b as V,j as s,B as k,f as l,g as b,T as A}from"./index-GWuvg2UH.js";import{B as F}from"./index-DihvOmSo.js";import{E as f}from"./index-VbOLTMR0.js";import{R as G,a as z}from"./index-DIHsQVbu.js";import{S as m}from"./index-BZDftoba.js";import{T as M}from"./index-mZVFvfKe.js";import{T as o}from"./index-Bpyda4LF.js";import{E as $}from"./EChart-Bps-t-O3.js";import"./IconTickCircle-BYgwCdAe.js";import"./_baseDifference-DopHgqVv.js";import"./slice-B6jKCnyX.js";import"./object-DkPZvw8u.js";import"./index-BMbdBPA2.js";import"./echarts-CEICS1Jr.js";const U=[1,7,30];function ns(){var j,y;const{t:a}=K(),N=R(),{site:c}=B(),[p,S]=d.useState(7),[e,w]=d.useState(null),[_,h]=d.useState(!1),[v,u]=d.useState(""),[n,P]=d.useState("campaign"),x=d.useCallback(async()=>{if(c){h(!0);try{const{start:t,end:r}=L(p);w(await V.ads(c.id,t,r)),u("")}catch(t){u(t.message)}finally{h(!1)}}},[c,p]);if(d.useEffect(()=>{x()},[x]),!c)return s.jsx("div",{className:"page",children:s.jsx(f,{style:{marginTop:60},title:a("noSiteHint"),children:s.jsx(k,{theme:"solid",onClick:()=>N("/sites"),children:a("goSites")})})});const i=(e==null?void 0:e.totals)||{paid_pv:0,total_pv:0,paid_visits:0,total_visits:0,paid_new:0,bounce_rate:0,avg_duration:0},T=i.total_pv>0?Math.round(i.paid_pv/i.total_pv*1e3)/10:0,D=i.total_visits>0?Math.round(i.paid_visits/i.total_visits*1e3)/10:0,E=i.paid_visits>0?Math.round(i.paid_new/i.paid_visits*1e3)/10:0,g=(y=(j=e==null?void 0:e.trend)==null?void 0:j.days)!=null&&y.length?{color:["#f5714c","#2a5cff"],tooltip:{trigger:"axis"},legend:{data:[a("adsPaidPv"),a("colViews")],top:0},grid:{left:12,right:16,top:34,bottom:8,containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:e.trend.days,axisLabel:{color:"#86909c"}},yAxis:{type:"value",splitLine:{lineStyle:{color:"#f0f1f3"}},axisLabel:{color:"#86909c"}},series:[{name:a("adsPaidPv"),type:"line",smooth:!0,symbol:"none",areaStyle:{opacity:.12},lineStyle:{width:2},data:e.trend.paid},{name:a("colViews"),type:"line",smooth:!0,symbol:"none",lineStyle:{width:1.5,type:"dashed"},data:e.trend.total}]}:null,C={campaign:(e==null?void 0:e.campaigns)||[],utm:(e==null?void 0:e.utms)||[],platform:(e==null?void 0:e.platforms)||[],term:(e==null?void 0:e.terms)||[],landing:(e==null?void 0:e.landings)||[]}[n],I=[{title:a(n==="landing"?"colEntryUrl":n==="utm"?"dimSource":"colName"),dataIndex:"k",ellipsis:{showTitle:!0},render:t=>s.jsx("span",{style:{fontFamily:n==="landing"?"monospace":void 0,fontSize:n==="landing"?12:void 0},children:t})},...n==="landing"?[{title:a("funnelVisitors"),dataIndex:"visits",width:100,render:t=>l(t)}]:[{title:a("colViews"),dataIndex:"pv",width:100,render:t=>l(t)},{title:a("visits"),dataIndex:"visits",width:100,render:t=>l(t)},{title:a("adsPvPerVisit"),width:90,render:(t,r)=>r.visits>0?(r.pv/r.visits).toFixed(1):"-"}],...n==="landing"?[{title:a("bounceRate"),dataIndex:"bounce_rate",width:100,render:t=>`${t}%`},{title:a("colStay"),dataIndex:"duration",width:100,render:t=>b(t)}]:[]];return s.jsxs("div",{className:"page",children:[s.jsxs("div",{className:"toolbar",children:[s.jsx(A.Title,{heading:5,style:{margin:0},children:a("ads")}),s.jsx(G,{type:"button",buttonSize:"small",value:p,onChange:t=>S(Number(t.target.value)),children:U.map(t=>s.jsxs(z,{value:t,children:[t,"D"]},t))})]}),v&&s.jsx(F,{type:"danger",description:v,style:{marginBottom:12}}),_&&!e?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"stat-grid",children:s.jsx("div",{className:"stat-card",children:s.jsx(m,{active:!0,placeholder:s.jsx(m.Paragraph,{rows:2}),loading:!0})})}),s.jsx("div",{className:"card",children:s.jsx(m,{active:!0,placeholder:s.jsx(m.Paragraph,{rows:6}),loading:!0})})]}):s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"stat-grid",children:[s.jsxs("div",{className:"stat-card",children:[s.jsx("div",{className:"stat-label",children:a("adsPaidPv")}),s.jsx("div",{className:"stat-value",style:{color:"#f5714c"},children:l(i.paid_pv)}),s.jsxs("div",{className:"stat-sub",children:[a("adsShare")," ",T,"%"]})]}),s.jsxs("div",{className:"stat-card",children:[s.jsx("div",{className:"stat-label",children:a("adsPaidVisits")}),s.jsx("div",{className:"stat-value",children:l(i.paid_visits)}),s.jsxs("div",{className:"stat-sub",children:[a("adsShare")," ",D,"%"]})]}),s.jsxs("div",{className:"stat-card",children:[s.jsx("div",{className:"stat-label",children:a("adsPaidNew")}),s.jsx("div",{className:"stat-value",children:l(i.paid_new)}),s.jsxs("div",{className:"stat-sub",children:[a("adsShare")," ",E,"%"]})]}),s.jsxs("div",{className:"stat-card",children:[s.jsx("div",{className:"stat-label",children:a("adsBounce")}),s.jsxs("div",{className:"stat-value",children:[i.bounce_rate,"%"]}),s.jsxs("div",{className:"stat-sub",children:[a("avgDuration")," ",b(i.avg_duration)]})]})]}),g&&s.jsxs("div",{className:"chart-box",children:[s.jsx("div",{className:"card-title",children:a("adsTrend")}),s.jsx($,{option:g,height:240})]}),s.jsxs("div",{className:"card",style:{padding:0,overflow:"hidden",marginTop:14},children:[s.jsxs(o,{type:"line",activeKey:n,onChange:P,style:{padding:"0 16px"},children:[s.jsx(o.TabPane,{tab:a("adsDimCampaign"),itemKey:"campaign"}),s.jsx(o.TabPane,{tab:a("adsDimUtm"),itemKey:"utm"}),s.jsx(o.TabPane,{tab:a("adsDimPlatform"),itemKey:"platform"}),s.jsx(o.TabPane,{tab:a("adsDimTerm"),itemKey:"term"}),s.jsx(o.TabPane,{tab:a("adsDimLanding"),itemKey:"landing"})]}),s.jsx(M,{columns:I,dataSource:C,rowKey:(t,r)=>`${n}-${r}`,pagination:!1,size:"small",empty:s.jsx(f,{description:a("adsNoPaid")})})]})]})]})}export{ns as default};