PageSourceSearch

https://www.volumn.ai/_next/static/chunks/73900-c5a40a05b4b8d865.js

js volumn.ai collected 2026-10-01 16:17:19 UTC 23,282 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[73900],{18006:(e,t,a)=>{a.d(t,{A:()=>n});let n=(0,a(56059).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},46303:(e,t,a)=>{a.d(t,{A:()=>n});let n=(0,a(56059).A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]])},46870:(e,t,a)=>{a.d(t,{A:()=>n});let n=(0,a(56059).A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]])},55607:(e,t,a)=>{a.d(t,{A:()=>n});let n=(0,a(56059).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},73900:(e,t,a)=>{a.r(t),a.d(t,{TabTrackingLinks:()=>j});var n=a(53757),r=a(55607),s=a(79428),i=a(81396),c=a(18006),l=a(56059);let d=(0,l.A)("wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]);var o=a(96782),x=a(46870),m=a(83903);let h=(0,l.A)("qr-code",[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]]);var u=a(46303),p=a(24361);function z(e){if(!e)return"—";try{return new Date(e).toLocaleString("zh-CN",{hour12:!1})}catch{return e}}function b(e){return`$${(Math.max(0,e)/100).toFixed(2)}`}function g(e){return`https://api.qrserver.com/v1/create-qr-code/?size=240x240&data=${encodeURIComponent(e)}`}function k(e){let{label:t,value:a,hint:r,icon:s}=e;return(0,n.jsxs)("div",{className:"rounded-xl border border-zinc-200 bg-white p-4 shadow-sm dark:border-zinc-800 dark:bg-zinc-900",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-xs font-medium text-zinc-500 dark:text-zinc-400",children:t}),(0,n.jsx)(s,{className:"h-4 w-4 text-zinc-400"})]}),(0,n.jsx)("div",{className:"mt-3 text-2xl font-semibold text-zinc-900 dark:text-zinc-50",children:a}),(0,n.jsx)("div",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400",children:r})]})}function j(e){let{authReady:t,accessToken:a,adminTrackingLinksUrl:l,trackingLinksUrl:j,trackingLinksSettingsUrl:y,showTrackingLinksAccessSettings:f=!1,trackingLinksTitle:N="归因链接平台",trackingLinksDescription:v="生成带参数链接,并查看点击、登录、付费归因数据。"}=e,w=j||l,A=y||l,[C,S]=(0,p.useState)([]),[_,M]=(0,p.useState)([]),[P,E]=(0,p.useState)(null),[T,$]=(0,p.useState)(""),[L,q]=(0,p.useState)(!1),[H,U]=(0,p.useState)(null),[O,B]=(0,p.useState)(null),[I,V]=(0,p.useState)(!1),[J,F]=(0,p.useState)(null),[R,D]=(0,p.useState)(null),[Q,G]=(0,p.useState)(!1),[K,W]=(0,p.useState)(""),[X,Y]=(0,p.useState)(""),[Z,ee]=(0,p.useState)("/upgrade"),[et,ea]=(0,p.useState)(""),[en,er]=(0,p.useState)(""),[es,ei]=(0,p.useState)(""),[ec,el]=(0,p.useState)(""),[ed,eo]=(0,p.useState)(""),[ex,em]=(0,p.useState)(null),eh=(0,p.useCallback)(async()=>{if(t&&a&&w){q(!0),U(null);try{let e=await fetch(w,{headers:{Authorization:`Bearer ${a}`}}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t?.message??t?.error??`HTTP ${e.status}`);S(Array.isArray(t?.links)?t.links:[]),M(Array.isArray(t?.recentPaid)?t.recentPaid:[]);let n=t?.settings&&"object"==typeof t.settings?t.settings:null;E(n),$(Array.isArray(n?.allowedEmails)?n.allowedEmails.join("\n"):"")}catch(e){U(e instanceof Error?e.message:"加载失败")}finally{q(!1)}}},[a,t,w]);(0,p.useEffect)(()=>{eh()},[eh]);let eu=(0,p.useMemo)(()=>C.reduce((e,t)=>
1(e.clicks+=t.clicks,e.logins+=t.logins,e.paid+=t.paid,e.revenueCents+=t.revenueCents,e),{clicks:0,logins:0,paid:0,revenueCents:0}),[C]),ep=(0,p.useCallback)(()=>{F(null),W(""),Y(""),ee("/upgrade"),ea(""),er(""),ei(""),el(""),eo("")},[]),ez=(0,p.useCallback)(e=>{F(e.id),W(e.name),Y(e.slug),ee(e.targetPath),ea(e.queryParams.utm_source??""),er(e.queryParams.utm_medium??""),ei(e.queryParams.utm_campaign??""),el(e.queryParams.utm_content??""),eo(Object.entries(e.queryParams).filter(e=>{let[t]=e;return!["utm_source","utm_medium","utm_campaign","utm_content"].includes(t)}).map(e=>{let[t,a]=e;return`${t}=${a}`}).join("\n")),window.scrollTo({top:0,behavior:"smooth"})},[]),eb=async()=>{if(t&&a&&w){V(!0),U(null),B(null);try{let e={...et.trim()?{utm_source:et.trim()}:{},...en.trim()?{utm_medium:en.trim()}:{},...es.trim()?{utm_campaign:es.trim()}:{},...ec.trim()?{utm_content:ec.trim()}:{},...function(e){let t={};for(let a of e.split(/\n+/g)){let e=a.trim();if(!e)continue;let n=e.indexOf("=");if(n<=0)continue;let r=e.slice(0,n).trim(),s=e.slice(n+1).trim();r&&s&&(t[r]=s)}return t}(ed)},t=await fetch(w,{method:J?"PATCH":"POST",headers:{Authorization:`Bearer ${a}`,"content-type":"application/json"},body:JSON.stringify({...J?{action:"update_link",id:J,name:K,slug:X,targetPath:Z,queryParams:e}:{name:K,slug:X,targetPath:Z,queryParams:e}})}),n=await t.json().catch(()=>({}));if(!t.ok)throw Error(n?.message??n?.error??`HTTP ${t.status}`);B(J?"已保存短链修改":`已生成链接:${n?.link?.fullLink??""}`),ep(),await eh()}catch(e){U(e instanceof Error?e.message:J?"保存失败":"创建失败")}finally{V(!1)}}},eg=async e=>{if(t&&a&&w&&window.confirm(`确认删除短链 "${e.name}" 吗?删除后该短链将无法继续访问。`)){D(e.id),U(null),B(null);try{let t=await fetch(w,{method:"PATCH",headers:{Authorization:`Bearer ${a}`,"content-type":"application/json"},body:JSON.stringify({action:"delete_link",id:e.id})}),n=await t.json().catch(()=>({}));if(!t.ok)throw Error(n?.message??n?.error??`HTTP ${t.status}`);J===e.id&&ep(),ex?.id===e.id&&em(null),B("已删除短链"),await eh()}catch(e){U(e instanceof Error?e.message:"删除失败")}finally{D(null)}}},ek=async()=>{if(t&&a&&A){G(!0),U(null),B(null);try{let e=T.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean),t=await fetch(A,{method:"PATCH",headers:{Authorization:`Bearer ${a}`,"content-type":"application/json"},body:JSON.stringify({action:"update_access_settings",allowedEmails:e})}),n=await t.json().catch(()=>({}));if(!t.ok)throw Error(n?.message??n?.error??`HTTP ${t.status}`);if(B("已保存可访问邮箱"),n?.settings&&"object"==typeof n.settings){let e={...P??{},...n.settings};E(e),$(Array.isArray(e.allowedEmails)?e.allowedEmails.join("\n"):"")}}catch(e){U(e instanceof Error?e.message:"保存失败")}finally{G(!1)}}},ej=async e=>{try{await navigator.clipboard.writeText(e),B("已复制链接")}catch{U("复制失败,请手动复制")}};return(0,n.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,n.jsxs)("section",{className:"rounded-xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-800 dark:bg-zinc-900",children:[(0,n.jsx)("h1",{className:"text-lg font-semibold text-zinc-900 dark:text-zinc-50",children:N}),(0,n.jsx)("p",{className:"mt-1 text-sm text-zinc-500 dark:text-zinc-400",children:v}),P?.standaloneUrl?(0,n.jsxs)("div",{className:"mt-3 flex items-center gap-2 text-xs text-zinc-500 dark:text-zinc-400",children:[(0,n.jsx)("span",{children:"独立入口"}),(0,n.jsx)("code",{className:"rounded bg-zinc-100 px-2 py-1 dark:bg-zinc-800",children:P.standaloneUrl}),(0,n.jsx)("button",{type:"button",onClick:()=>void ej(P.standaloneUrl||""),className:"rounded p-1 text-zinc-500 hover:bg-zinc-100 dark:hover:bg-zinc-800",children:(0,n.jsx)(r.A,{className:"h-4 w-4"})})]}):null]}),f?(0,n.jsxs)("section",{className:"rounded-xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-800 dark:bg-zinc-900",children:[(0,n.jsxs)("div",{className:"mb-4",children:[(0,n.jsx)("h2",{className:"text-sm font-semibold text-zinc-900 dark:text-zinc-50",children:"可访问邮箱"}),(0,n.jsx)("p",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400",children:"这些邮箱可以访问独立平台 `/tracking-links`。每行一个邮箱,也支持逗号分隔。"})]}),(0,n.jsx)("textarea",{value:T,onChange:e=>$(e.target.value),rows:5,className:"w-full rounded-lg border border-zinc-200 px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-zinc-900 dark:border-zinc-700 dark:bg-zinc-950 dark:focus:ring-zinc-100",placeholder:"[email protected]"}),(0,n.jsxs)("div",{className:"mt-3 flex items-center justify-between gap-3",children:[(0,n.jsxs)("div",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:["最近更新:",z(P?.updatedAt??null)]}),(0,n.jsxs)("button",{type:"button",onClick:()=>void ek(),disabled:Q,className:"inline-flex items-center gap-2 rounded-lg bg-zinc-900 px-4 py-2 text-sm font-medium text-white hover:bg-zinc-800 disabled:opacity-60 dark:bg-zinc-100 dark:text-zinc-900 dark:hover:bg-zinc-200",children:[Q?(0,n.jsx)(s.A,{className:"h-4 w-4 animate-spin"}):null,"保存访问名单"]})]})]}):null,(0,n.jsxs)("section",{className:"grid gap-4 md:grid-cols-4",children:[(0,n.jsx)(k,{label:"总点击",value:String(eu.clicks),hint:"所有归因链接累计点击",icon:i.A}),(0,n.jsx)(k,{label:"总登录",value:String(eu.logins),hint:"通过链接完成登录绑定",icon:c.A}),(0,n.jsx)(k,{label:"总付费",value:String(eu.paid),hint:"已归因到链接的付费人数",icon:d}),(0,n.jsx)(k,{label:"归因收入",value:b(eu.revenueCents),hint:"已记录付费金额合计",icon:d})]}),(0,n.jsxs)("section",{className:"rounded-xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-800 dark:bg-zinc-900",children:[(0,n.jsxs)("div",{className:"mb-4 flex items-center justify-between gap-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h2",{className:"text-sm font-semibold text-zinc-900 dark:text-zinc-50",children:J?"编辑归因链接":"生成归因链接"}),(0,n.jsx)("p",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400",children:J?"修改名称、slug、跳转页面和参数后保存。":"生成 `/r/slug` 短链,点击会自动统计;登录和付费也会继续归因。"})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[J?(0,n.jsx)("button",{type:"button",onClick:()=>ep(),className:"rounded-md border border-zinc-200 px-3 py-1.5 text-xs text-zinc-600 hover:bg-zinc-50 dark:border-zinc-700 dark:text-zinc-300 dark:hover:bg-zinc-800",children:"取消编辑"}):null,(0,n.jsx)("button",{type:"button",onClick:()=>void eh(),disabled:L,className:"rounded-md border border-zinc-200 px-3 py-1.5 text-xs text-zinc-600 hover:bg-zinc-50 disabled:opacity-60 dark:border-zinc-700 dark:text-zinc-300 dark:hover:bg-zinc-800",children:L?"刷新中...":"刷新"})]})]}),H?(0,n.jsx)("div",{className:"mb-3 rounded-md bg-red-50 px-3 py-2 text-xs text-red-700 dark:bg-red-900/20 dark:text-red-300",children:H}):null,O&&!H?(0,n.jsx)("div",{className:"mb-3 rounded-md bg-emerald-50 px-3 py-2 text-xs text-emerald-700 dark:bg-emerald-900/20 dark:text-emerald-300",children:O}):null,(0,n.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,n.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-zinc-600 dark:text-zinc-300",children:["链接名称",(0,n.jsx)("input",{value:K,onChange:e=>W(e.target.value),className:"rounded-lg border border-zinc-200 px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-zinc-900 dark:border-zinc-700 dark:bg-zinc-950 dark:focus:ring-zinc-100",placeholder:"ä¾
1‹å¦‚:Founder May Campaign"})]}),(0,n.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-zinc-600 dark:text-zinc-300",children:["自定义 slug",(0,n.jsx)("input",{value:X,onChange:e=>Y(e.target.value),className:"rounded-lg border border-zinc-200 px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-zinc-900 dark:border-zinc-700 dark:bg-zinc-950 dark:focus:ring-zinc-100",placeholder:"例如:founder-may-2026"})]}),(0,n.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-zinc-600 dark:text-zinc-300 md:col-span-2",children:["跳转页面",(0,n.jsx)("input",{value:Z,onChange:e=>ee(e.target.value),className:"rounded-lg border border-zinc-200 px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-zinc-900 dark:border-zinc-700 dark:bg-zinc-950 dark:focus:ring-zinc-100",placeholder:"/upgrade"})]}),(0,n.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-zinc-600 dark:text-zinc-300",children:["utm_source",(0,n.jsx)("input",{value:et,onChange:e=>ea(e.target.value),className:"rounded-lg border border-zinc-200 px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-zinc-900 dark:border-zinc-700 dark:bg-zinc-950 dark:focus:ring-zinc-100",placeholder:"x_dm"})]}),(0,n.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-zinc-600 dark:text-zinc-300",children:["utm_medium",(0,n.jsx)("input",{value:en,onChange:e=>er(e.target.value),className:"rounded-lg border border-zinc-200 px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-zinc-900 dark:border-zinc-700 dark:bg-zinc-950 dark:focus:ring-zinc-100",placeholder:"affiliate"})]}),(0,n.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-zinc-600 dark:text-zinc-300",children:["utm_campaign",(0,n.jsx)("input",{value:es,onChange:e=>ei(e.target.value),className:"rounded-lg border border-zinc-200 px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-zinc-900 dark:border-zinc-700 dark:bg-zinc-950 dark:focus:ring-zinc-100",placeholder:"may_launch"})]}),(0,n.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-zinc-600 dark:text-zinc-300",children:["utm_content",(0,n.jsx)("input",{value:ec,onChange:e=>el(e.target.value),className:"rounded-lg border border-zinc-200 px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-zinc-900 dark:border-zinc-700 dark:bg-zinc-950 dark:focus:ring-zinc-100",placeholder:"variant_a"})]}),(0,n.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-zinc-600 dark:text-zinc-300 md:col-span-2",children:["其他参数",(0,n.jsx)("textarea",{value:ed,onChange:e=>eo(e.target.value),rows:3,className:"rounded-lg border border-zinc-200 px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-zinc-900 dark:border-zinc-700 dark:bg-zinc-950 dark:focus:ring-zinc-100",placeholder:"ref=kuma\nchannel=dm"})]})]}),(0,n.jsxs)("div",{className:"mt-4 flex items-center gap-2",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>void eb(),disabled:I||!K.trim(),className:"inline-flex items-center gap-2 rounded-lg bg-zinc-900 px-4 py-2 text-sm font-medium text-white hover:bg-zinc-800 disabled:opacity-60 dark:bg-zinc-100 dark:text-zinc-900 dark:hover:bg-zinc-200",children:[I?(0,n.jsx)(s.A,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(c.A,{className:"h-4 w-4"}),J?"保存修改":"生成链接"]}),J?(0,n.jsxs)("button",{type:"button",onClick:()=>ep(),className:"inline-flex items-center gap-2 rounded-lg border border-zinc-200 px-4 py-2 text-sm font-medium text-zinc-700 hover:bg-zinc-50 dark:border-zinc-700 dark:text-zinc-200 dark:hover:bg-zinc-800",children:[(0,n.jsx)(o.A,{className:"h-4 w-4"}),"取消"]}):null]})]}),ex?(0,n.jsx)("section",{className:"rounded-xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-800 dark:bg-zinc-900",children:(0,n.jsxs)("div",{className:"flex flex-col gap-4 md:flex-row md:items-start md:justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h2",{className:"text-sm font-semibold text-zinc-900 dark:text-zinc-50",children:"二维码预览"}),(0,n.jsx)("p",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400",children:"扫码后会直接访问这个短链,并继续走归因统计。"}),(0,n.jsx)("div",{className:"mt-3 rounded-lg bg-zinc-100 px-3 py-2 text-xs text-zinc-700 dark:bg-zinc-800 dark:text-zinc-200",children:ex.fullLink}),(0,n.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>void ej(ex.fullLink),className:"inline-flex items-center gap-2 rounded-lg border border-zinc-200 px-3 py-2 text-sm text-zinc-700 hover:bg-zinc-50 dark:border-zinc-700 dark:text-zinc-200 dark:hover:bg-zinc-800",children:[(0,n.jsx)(r.A,{className:"h-4 w-4"}),"复制短链"]}),(0,n.jsxs)("a",{href:g(ex.fullLink),target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-2 rounded-lg border border-zinc-200 px-3 py-2 text-sm text-zinc-700 hover:bg-zinc-50 dark:border-zinc-700 dark:text-zinc-200 dark:hover:bg-zinc-800",children:[(0,n.jsx)(x.A,{className:"h-4 w-4"}),"下载二维码"]}),(0,n.jsxs)("button",{type:"button",onClick:()=>em(null),className:"inline-flex items-center gap-2 rounded-lg border border-zinc-200 px-3 py-2 text-sm text-zinc-700 hover:bg-zinc-50 dark:border-zinc-700 dark:text-zinc-200 dark:hover:bg-zinc-800",children:[(0,n.jsx)(o.A,{className:"h-4 w-4"}),"关闭"]})]})]}),(0,n.jsx)("div",{className:"shrink-0 rounded-2xl border border-zinc-200 bg-white p-3 dark:border-zinc-700 dark:bg-zinc-950",children:(0,n.jsx)("img",{src:g(ex.fullLink),alt:`QR for ${ex.fullLink}`,className:"h-56 w-56 rounded-lg object-contain"})})]})}):null,(0,n.jsxs)("section",{className:"rounded-xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-800 dark:bg-zinc-900",children:[(0,n.jsx)("h2",{className:"mb-4 text-sm font-semibold text-zinc-900 dark:text-zinc-50",children:"链接统计"}),(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsxs)("table",{className:"min-w-full text-left text-sm",children:[(0,n.jsx)("thead",{className:"text-xs uppercase text-zinc-500 dark:text-zinc-400",children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{className:"px-3 py-2",children:"名称"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"短链"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"点击"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"登录"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"付费"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"收入"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"最近付费"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"操作"})]})}),(0,n.jsxs)("tbody",{children:[C.map(e=>(0,n.jsxs)("tr",{className:"border-t border-zinc-100 dark:border-zinc-800",children:[(0,n.jsxs)("td",{className:"px-3 py-3 align-top",children:[(0,n.jsx)("div",{className:"font-medium text-zinc-900 dark:text-zinc-50",children:e.name}),(0,n.jsx)("div",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400",children:e.targetPath})]}),(0,n.jsx)("td",{className:"px-3 py-3 align-top",children:(0,n.jsxs)("div",{className:"flex items-start gap-2",children:[(0,n.jsx)("code",{className:"max-w-[280px] break-all rounded bg-zinc-100 px-2 py-1 text-xs dar
1k:bg-zinc-800",children:e.fullLink}),(0,n.jsx)("button",{type:"button",onClick:()=>void ej(e.fullLink),className:"rounded p-1 text-zinc-500 hover:bg-zinc-100 dark:hover:bg-zinc-800",children:(0,n.jsx)(r.A,{className:"h-4 w-4"})})]})}),(0,n.jsx)("td",{className:"px-3 py-3",children:e.clicks}),(0,n.jsx)("td",{className:"px-3 py-3",children:e.logins}),(0,n.jsx)("td",{className:"px-3 py-3",children:e.paid}),(0,n.jsx)("td",{className:"px-3 py-3",children:b(e.revenueCents)}),(0,n.jsx)("td",{className:"px-3 py-3 text-xs text-zinc-500 dark:text-zinc-400",children:z(e.lastPaidAt)}),(0,n.jsx)("td",{className:"px-3 py-3",children:(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("button",{type:"button",onClick:()=>ez(e),className:"rounded p-1.5 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-700 dark:hover:bg-zinc-800 dark:hover:text-zinc-200",title:"编辑",children:(0,n.jsx)(m.A,{className:"h-4 w-4"})}),(0,n.jsx)("button",{type:"button",onClick:()=>em(e),className:"rounded p-1.5 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-700 dark:hover:bg-zinc-800 dark:hover:text-zinc-200",title:"二维码",children:(0,n.jsx)(h,{className:"h-4 w-4"})}),(0,n.jsx)("button",{type:"button",onClick:()=>void ej(e.fullLink),className:"rounded p-1.5 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-700 dark:hover:bg-zinc-800 dark:hover:text-zinc-200",title:"复制",children:(0,n.jsx)(r.A,{className:"h-4 w-4"})}),(0,n.jsx)("button",{type:"button",onClick:()=>void eg(e),disabled:R===e.id,className:"rounded p-1.5 text-zinc-500 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:hover:bg-red-900/20 dark:hover:text-red-300",title:"删除",children:R===e.id?(0,n.jsx)(s.A,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(u.A,{className:"h-4 w-4"})})]})})]},e.id)),L||0!==C.length?null:(0,n.jsx)("tr",{children:(0,n.jsx)("td",{colSpan:8,className:"px-3 py-8 text-center text-sm text-zinc-500 dark:text-zinc-400",children:"暂无归因链接"})})]})]})})]}),(0,n.jsxs)("section",{className:"rounded-xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-800 dark:bg-zinc-900",children:[(0,n.jsx)("h2",{className:"mb-4 text-sm font-semibold text-zinc-900 dark:text-zinc-50",children:"最近付费用户"}),(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsxs)("table",{className:"min-w-full text-left text-sm",children:[(0,n.jsx)("thead",{className:"text-xs uppercase text-zinc-500 dark:text-zinc-400",children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{className:"px-3 py-2",children:"时间"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"来源链接"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"用户"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"套餐"}),(0,n.jsx)("th",{className:"px-3 py-2",children:"金额"})]})}),(0,n.jsxs)("tbody",{children:[_.map(e=>(0,n.jsxs)("tr",{className:"border-t border-zinc-100 dark:border-zinc-800",children:[(0,n.jsx)("td",{className:"px-3 py-3 text-xs text-zinc-500 dark:text-zinc-400",children:z(e.paidAt)}),(0,n.jsxs)("td",{className:"px-3 py-3",children:[(0,n.jsx)("div",{className:"font-medium text-zinc-900 dark:text-zinc-50",children:e.slug}),(0,n.jsx)("div",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400",children:e.targetPath})]}),(0,n.jsxs)("td",{className:"px-3 py-3",children:[(0,n.jsx)("div",{className:"text-zinc-900 dark:text-zinc-50",children:e.paidUserEmail||e.paidUserId||"—"}),e.paidUserEmail&&e.paidUserId?(0,n.jsx)("div",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400",children:e.paidUserId}):null]}),(0,n.jsx)("td",{className:"px-3 py-3",children:e.paidPlanId||"—"}),(0,n.jsx)("td",{className:"px-3 py-3",children:b(e.paidAmountCents??0)})]},e.id)),L||0!==_.length?null:(0,n.jsx)("tr",{children:(0,n.jsx)("td",{colSpan:5,className:"px-3 py-8 text-center text-sm text-zinc-500 dark:text-zinc-400",children:"暂无付费归因数据"})})]})]})})]})]})}},79428:(e,t,a)=>{a.d(t,{A:()=>n});let n=(0,a(56059).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},83903:(e,t,a)=>{a.d(t,{A:()=>n});let n=(0,a(56059).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.