码桶
发现社区成员的开源项目
Sources-BXEDHCPE.js7.1 KB
import{u as P,a as W,c as O,r as l,q as E,b as F,j as e,B as y,T as g,S as B,v as u,f as p,t as G}from"./index-GWuvg2UH.js";import{B as K}from"./index-DihvOmSo.js";import{E as h}from"./index-VbOLTMR0.js";import{S as I}from"./index-BZDftoba.js";import{T as D}from"./index-mZVFvfKe.js";import{E as M}from"./EChart-Bps-t-O3.js";import{E as _}from"./ExportButton-ChE0FTgH.js";import"./IconTickCircle-BYgwCdAe.js";import"./_baseDifference-DopHgqVv.js";import"./index-DIHsQVbu.js";import"./slice-B6jKCnyX.js";import"./object-DkPZvw8u.js";import"./index-BMbdBPA2.js";import"./echarts-CEICS1Jr.js";import"./index-BW_2QB9V.js";const q=[7,30,90],v=["direct","search","social","link","paid","utm","internal"],o={direct:"#86909c",search:"#2a5cff",social:"#00b42a",link:"#ff7d00",paid:"#f53f3f",utm:"#722ed1",internal:"#00b2ff"};function m(s,d){return s({direct:"chDirect",search:"chSearch",social:"chSocial",link:"chLink",paid:"chPaid",utm:"chUtm",internal:"chInternal"}[d]||"chOther")}function U(s,d){const i=s.filter(r=>r.pv>0).map(r=>({name:m(d,r.type),value:r.pv}));return{color:v.filter(r=>s.find(c=>c.type===r&&c.pv>0)).map(r=>o[r]),tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},legend:{orient:"vertical",right:10,top:"middle",icon:"circle",itemWidth:9,itemHeight:9},series:[{type:"pie",radius:["46%","70%"],center:["38%","50%"],avoidLabelOverlap:!0,itemStyle:{borderColor:"#fff",borderWidth:2},label:{show:!1},emphasis:{label:{show:!1}},data:i}]}}function Y(s,d){return{color:v.map(i=>o[i]),tooltip:{trigger:"axis"},legend:{top:0,icon:"roundRect",itemWidth:10,itemHeight:10},grid:{left:12,right:16,top:40,bottom:8,containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:s.days.map(i=>i.slice(5)),axisLabel:{color:"#86909c"}},yAxis:{type:"value",splitLine:{lineStyle:{color:"#f0f1f3"}},axisLabel:{color:"#86909c"}},series:v.map(i=>({name:m(d,i),type:"line",stack:"s",smooth:!0,symbol:"none",areaStyle:{opacity:.14},lineStyle:{width:1.5},data:s.data&&s.data[i]||[]}))}}function oe(){var w,N;const{t:s}=P(),d=W(),{site:i}=O(),[r,c]=l.useState(30),[a,R]=l.useState(null),[L,j]=l.useState(!1),[b,S]=l.useState(""),C=l.useCallback(async()=>{if(i){j(!0);try{const{start:t,end:f}=E(r);R(await F.sources(i.id,t,f)),S("")}catch(t){S(t.message)}finally{j(!1)}}},[i,r]);if(l.useEffect(()=>{C()},[C]),!i)return e.jsx("div",{className:"page",children:e.jsx(h,{style:{marginTop:60},title:e.jsx(g.Title,{heading:5,children:s("noSiteHint")}),description:s("createHint"),children:e.jsx(y,{theme:"solid",onClick:()=>d("/sites"),children:s("goSites")})})});const x=l.useMemo(()=>(a==null?void 0:a.channels)||[],[a]),z=l.useMemo(()=>(a==null?void 0:a.referrers)||[],[a]),n=(a==null?void 0:a.total_pv)||0,k=l.useMemo(()=>({title:s("srcColShare"),dataIndex:"pv",width:220,render:(t,f)=>{const T=n>0?t/n*100:0;return e.jsxs(B,{style:{width:"100%"},children:[e.jsx("span",{style:{width:42,textAlign:"right",fontSize:12},children:u(T)}),e.jsx("span",{style:{flex:1,height:6,background:"#f0f1f3",borderRadius:3,overflow:"hidden"},children:e.jsx("span",{style:{display:"block",height:"100%",width:`${Math.min(100,T)}%`,background:o[f.type]||"#2a5cff"}})})]})}}),[s,n]),A=l.useMemo(()=>[{title:s("srcColChannel"),dataIndex:"type",render:t=>e.jsxs(B,{children:[e.jsx("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:o[t]}}),m(s,t)]})},{title:s("srcColPv"),dataIndex:"pv",width:90,render:t=>p(t)},k],[s,n,k]),H=l.useMemo(()=>[{title:s("srcColHost"),dataIndex:"host",render:t=>e.jsx("span",{style:{fontFamily:"monospace"},children:t})},{title:s("srcColPv"),dataIndex:"pv",width:90,render:t=>p(t)},{title:s("srcColShare"),dataIndex:"pv",width:90,render:t=>u(n>0?t/n*100:0)}],[s,n]);return e.jsxs("div",{className:"page",children:[e.jsxs("div",{className:"toolbar",children:[e.jsx(g.Title,{heading:5,style:{margin:0},children:s("sources")}),e.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[e.jsx(_,{siteId:i==null?void 0:i.id,items:[{kind:"channels",label:s("expChannels")},{kind:"referrers",label:s("expReferrers")},{kind:"daily",label:s("expDaily")}],params:()=>E(r)}),q.map(t=>e.jsx(y,{size:"small",theme:r===t?"solid":"borderless",onClick:()=>c(t),children:s(t===7?"last7":t===30?"last30":"last90")},t))]})]}),b&&e.jsx(K,{type:"danger",style:{marginBottom:12},description:e.jsx("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",fontFamily:"Consolas, Menlo, monospace",fontSize:12},children:b})}),e.jsxs("div",{className:"stat-grid",children:[e.jsxs("div",{className:"stat-card",children:[e.jsx("div",{className:"stat-label",children:s("srcPvTotal")}),e.jsx("div",{className:"stat-value",children:p(n)}),e.jsxs("div",{className:"stat-sub",children:[(w=a==null?void 0:a.range)==null?void 0:w.start," ~ ",(N=a==null?void 0:a.range)==null?void 0:N.end]})]}),x.filter(t=>t.pv>0).slice(0,3).map(t=>e.jsxs("div",{className:"stat-card",children:[e.jsxs("div",{className:"stat-label",children:[e.jsx("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:o[t.type],marginRight:6}}),m(s,t.type)]}),e.jsx("div",{className:"stat-value",children:p(t.pv)}),e.jsx("div",{className:"stat-sub",children:u(n>0?t.pv/n*100:0)})]},t.type))]}),L&&!a?e.jsx(I,{active:!0,placeholder:e.jsx(I.Paragraph,{rows:6}),loading:!0}):a?e.jsxs(e.Fragment,{children:[e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:16,marginBottom:16},children:[e.jsxs("div",{className:"chart-box",children:[e.jsx("div",{className:"card-title",children:s("srcChannelTitle")}),e.jsx(M,{option:U(x,s),height:280})]}),e.jsxs("div",{className:"chart-box",children:[e.jsx("div",{className:"card-title",children:s("srcTrendTitle")}),e.jsx(M,{option:Y(a.trend,s),height:280})]})]}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:16,marginBottom:16},children:[e.jsxs("div",{className:"card",style:{padding:0,overflow:"hidden"},children:[e.jsx("div",{className:"card-title",style:{padding:"14px 16px 6px"},children:s("srcChannelTable")}),e.jsx(D,{columns:A,dataSource:x,rowKey:"type",pagination:!1,size:"small",empty:e.jsx(h,{description:s("noData")})})]}),e.jsxs("div",{className:"card",style:{padding:0,overflow:"hidden"},children:[e.jsx("div",{className:"card-title",style:{padding:"14px 16px 6px"},children:s("srcReferrers")}),e.jsx(D,{columns:H,dataSource:z,rowKey:"host",pagination:!1,size:"small",empty:e.jsx(h,{description:s("noData")})})]})]}),e.jsx("div",{className:"card",style:{padding:"18px 20px"},children:e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"},children:[e.jsxs("div",{children:[e.jsx("div",{style:{fontWeight:600,marginBottom:6},children:s("srcAdsMovedTitle")}),e.jsx("div",{style:{fontSize:13,color:"#86909c",lineHeight:1.7},children:s("srcAdsMovedDesc")})]}),e.jsx(y,{theme:"solid",size:"small",onClick:()=>d("/ads"),children:s("srcAdsMovedBtn")})]})}),e.jsxs(g.Text,{type:"tertiary",style:{fontSize:12,display:"block",marginTop:16},children:[i.name," · ",i.domain," · ",s("range"),": ",a.range.start," ~ ",a.range.end,"(",G(),") · ",s("source"),": direct/search/social/link/paid/utm"]})]}):e.jsx(h,{description:s("noData"),style:{margin:"40px 0"}})]})}export{oe as default};