2 lines
22 KiB
JavaScript
2 lines
22 KiB
JavaScript
import{a as He,_ as Je,i as he,r as k,c as i,u as Ke,b as Oe,t as ge,k as Xe,s as Ye,l as el,d as ll,o as tl,e as al,f as y,g as w,h as p,j as e,m as t,n as W,p as u,F as Z,q as ke,w as s,v as B,x as d,y as sl,z as ul,A as nl,B as R,C as ol,D as ye,E as il,G as dl}from"./index-CpTjoI5H.js";import{f as rl}from"./email-DXFDTcFR.js";import{f as cl,a as vl,b as _l,c as pl}from"./tasks-DZN3Iufx.js";import{f as fl}from"./system-DoHHS63d.js";import{M as I}from"./MetricGrid-CO_q83yh.js";async function ml(){const{data:ue}=await He.get("/browser_pool/stats");return ue}const bl={class:"page-stack"},hl={class:"report-hero"},gl={class:"hero-head"},kl={class:"hero-main"},yl={class:"hero-meta app-muted"},wl={key:0},xl={key:1,class:"hero-dot"},Sl={key:2},Cl={class:"mobile-report"},Ml={class:"mobile-module-head"},Pl={class:"mobile-module-title"},Tl={class:"mobile-module-desc app-muted"},Wl={class:"mobile-metrics"},$l={class:"mobile-metric-label app-muted"},ql={class:"mobile-metric-value"},Rl={class:"desktop-report"},Il={class:"panel-head"},zl={class:"head-left"},Ll={class:"head-icon tone-purple"},Al={class:"head-text"},Bl={class:"panel-sub app-muted"},Nl={class:"metrics-block"},Ul={class:"metrics-block"},Vl={class:"panel-head"},El={class:"head-left"},Dl={class:"head-icon tone-blue"},Fl={class:"head-text"},Gl={class:"panel-sub app-muted"},jl={class:"tab-label"},Ql={class:"table-wrap"},Zl={key:0,class:"help app-muted"},Hl={class:"tab-label"},Jl={class:"table-wrap"},Kl={key:0,class:"help app-muted"},Ol={class:"panel-head"},Xl={class:"head-left"},Yl={class:"head-icon tone-cyan"},et={class:"head-text"},lt={class:"panel-sub app-muted"},tt={class:"metrics-block"},at={class:"panel-head"},st={class:"head-left"},ut={class:"head-icon tone-orange"},nt={class:"head-text"},ot={class:"panel-sub app-muted"},it={class:"panel-head"},dt={class:"head-left"},rt={class:"head-icon tone-green"},ct={class:"resource-grid"},vt={class:"resource-item"},_t={class:"resource-sub app-muted"},pt={class:"resource-item"},ft={class:"resource-sub app-muted"},mt={class:"resource-item"},bt={class:"resource-sub app-muted"},ht={class:"panel-head"},gt={class:"head-left"},kt={class:"head-text"},yt={class:"panel-sub app-muted"},wt={class:"table-wrap"},xt={class:"panel-head"},St={class:"head-left"},Ct={class:"head-icon tone-red"},Mt={class:"config-grid"},Pt={class:"config-item"},Tt={class:"config-v"},Wt={class:"config-inline app-muted"},$t={class:"config-sub app-muted"},qt={class:"config-item"},Rt={class:"config-v"},It={key:2,class:"config-inline app-muted"},zt={class:"config-sub app-muted"},Lt={class:"config-item"},At={class:"config-v"},Bt={__name:"ReportPage",setup(ue){const we=he("refreshStats",null),xe=he("adminStats",null),C=k(!1),H=k(!1),V=k(""),J=k(null),g=k(null),f=k(null),M=k(null),r=k(null),S=k(null),T=k(null),x=k(null),ne=k("running");function Se(){try{V.value=new Date().toLocaleString("zh-CN",{hour12:!1,timeZone:"Asia/Shanghai"})}catch{V.value=""}}function a(o){const l=Number(o);return Number.isFinite(l)?l:0}function b(o){const l=String(o??"").trim();if(!l)return 0;const v=l.endsWith("%")?l.slice(0,-1):l,_=Number(v);return!Number.isFinite(_)||_<0?0:_>1e3?1e3:_}function K(o){return`${Math.round(b(o))}%`}function O(o){const l=String(o??"").trim();return!l||l==="manual"?"手动":l==="scheduled"?"系统定时":l==="batch"?"批量执行":l==="resumed"?"断点续跑":l.startsWith("user_scheduled:")?"用户定时":l}const Ce=i(()=>{const o=xe?.value||{},l=a(g.value?.max_concurrent);return[{label:"总用户数",value:a(o.total_users),icon:Ke,tone:"blue"},{label:"今日注册",value:a(o.new_users_today),icon:Oe,tone:"green"},{label:"近7天注册",value:a(o.new_users_7d),icon:ge,tone:"purple"},{label:"总账号数",value:a(o.total_accounts),icon:Xe,tone:"cyan"},{label:"VIP用户",value:a(o.vip_users),icon:Ye,tone:"orange"},{label:"运行中任务",value:a(g.value?.running_count),icon:el,tone:"green",sub:l?`并发上限 ${l}`:""},{label:"排队任务",value:a(g.value?.queuing_count),icon:ll,tone:"purple"}]}),m=i(()=>J.value?.today||{}),$=i(()=>J.value?.total||{}),Me=i(()=>g.value?.running||[]),N=i(()=>g.value?.queuing||[]),X=i(()=>a(g.value?.running_count)),Y=i(()=>a(g.value?.queuing_count)),oe=i(()=>{const o=T.value?.workers;return Array.isArray(o)?[...o].sort((l,v)=>a(l?.worker_id)-a(v?.worker_id)):[]}),ie=i(()=>a(T.value?.total_workers)),E=i(()=>oe.value.filter(o=>!!o?.has_browser).length),de=i(()=>a(T.value?.idle_workers)),ee=i(()=>a(T.value?.queue_size)),D=i(()=>a(T.value?.active_workers));function Pe(o){return o?.thread_alive?o?.has_browser?"success":"info":"danger"}function Te(o){return o?.thread_alive?o?.has_browser?"活跃":"空闲":"异常"}function We(o){return o?.thread_alive?o?.idle?"info":"warning":"danger"}function $e(o){return o?.thread_alive?o?.idle?"空闲":"忙碌":"停止"}const z=i(()=>{const o=a(m.value.success_tasks),l=a(m.value.failed_tasks),v=o+l;return v>0?Math.round(o/v*1e3)/10:0}),F=i(()=>a(f.value?.success_rate)),qe=i(()=>[{label:"总任务",value:a(m.value.total_tasks),tone:"blue"},{label:"成功",value:a(m.value.success_tasks),tone:"green"},{label:"失败",value:a(m.value.failed_tasks),tone:"red"},{label:"浏览内容",value:a(m.value.total_items),tone:"purple"},{label:"查看附件",value:a(m.value.total_attachments),tone:"cyan"}]),Re=i(()=>[{label:"总任务",value:a($.value.total_tasks),tone:"blue"},{label:"成功",value:a($.value.success_tasks),tone:"green"},{label:"失败",value:a($.value.failed_tasks),tone:"red"},{label:"浏览内容",value:a($.value.total_items),tone:"purple"},{label:"查看附件",value:a($.value.total_attachments),tone:"cyan"}]),Ie=i(()=>[{label:"总发送",value:a(f.value?.total_sent),tone:"blue"},{label:"成功",value:a(f.value?.total_success),tone:"green"},{label:"失败",value:a(f.value?.total_failed),tone:"red"},{label:"成功率",value:`${F.value}%`,tone:"purple"}]),ze=i(()=>[{label:"注册验证",value:a(f.value?.register_sent),tone:"cyan"},{label:"密码重置",value:a(f.value?.reset_sent),tone:"orange"},{label:"邮箱绑定",value:a(f.value?.bind_sent),tone:"purple"},{label:"任务完成",value:a(f.value?.task_complete_sent),tone:"green"}]),Le=i(()=>[{label:"总反馈",value:a(M.value?.total),tone:"blue"},{label:"待处理",value:a(M.value?.pending),tone:"orange"},{label:"已回复",value:a(M.value?.replied),tone:"green"}]),Ae=i(()=>[{label:"总 Worker",value:ie.value,tone:"blue"},{label:"活跃 Worker",value:E.value,tone:"green"},{label:"空闲 Worker",value:de.value,tone:"cyan"},{label:"忙碌 Worker",value:D.value,tone:"orange"},{label:"队列",value:ee.value,tone:"purple"}]),re=i(()=>(x.value?.schedule_enabled??0)===1),ce=i(()=>x.value?.schedule_time||"-"),ve=i(()=>x.value?.schedule_browse_type||"-"),_e=i(()=>String(x.value?.schedule_weekdays||"").trim()),Be=i(()=>{const o=_e.value;if(!o)return"";const l={1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六",7:"周日"},v=o.split(",").map(_=>_.trim()).filter(Boolean);return v.length?v.map(_=>l[Number(_)]||_).join("、"):o}),le=i(()=>(x.value?.proxy_enabled??0)===1),pe=i(()=>x.value?.proxy_api_url||""),te=i(()=>a(x.value?.proxy_expire_minutes)),G=i(()=>a(x.value?.max_concurrent_global)),fe=i(()=>a(x.value?.max_concurrent_per_account)),me=i(()=>a(x.value?.max_screenshot_concurrent)),j=i(()=>{const o=a(g.value?.running_count),l=a(g.value?.queuing_count),v=a(g.value?.max_concurrent);return`运行中 ${o} / 排队 ${l} / 并发上限 ${v||G.value||"-"}`}),Ne=i(()=>[{label:"今日总任务",value:a(m.value.total_tasks)},{label:"今日成功",value:a(m.value.success_tasks)},{label:"今日失败",value:a(m.value.failed_tasks)},{label:"今日成功率",value:`${z.value}%`},{label:"累计任务",value:a($.value.total_tasks)},{label:"累计成功",value:a($.value.success_tasks)}]),Ue=i(()=>[{label:"运行中",value:X.value},{label:"排队中",value:Y.value},{label:"并发上限",value:a(g.value?.max_concurrent)||G.value||"-"},{label:"排队首条来源",value:O(N.value[0]?.source)},{label:"排队首条状态",value:N.value[0]?.detail_status||N.value[0]?.status||"-"},{label:"最长等待",value:N.value[0]?.elapsed_display||"-"}]),Ve=i(()=>[{label:"总发送",value:a(f.value?.total_sent)},{label:"成功",value:a(f.value?.total_success)},{label:"失败",value:a(f.value?.total_failed)},{label:"成功率",value:`${F.value}%`},{label:"注册验证",value:a(f.value?.register_sent)},{label:"重置密码",value:a(f.value?.reset_sent)}]),Ee=i(()=>[{label:"总反馈",value:a(M.value?.total)},{label:"待处理",value:a(M.value?.pending)},{label:"已回复",value:a(M.value?.replied)}]),De=i(()=>[{label:"CPU",value:K(r.value?.cpu_percent)},{label:"内存",value:K(r.value?.memory_percent)},{label:"磁盘",value:K(r.value?.disk_percent)},{label:"容器状态",value:S.value?.status||"-"},{label:"容器名",value:S.value?.container_name||"-"},{label:"容器运行",value:S.value?.uptime||"-"}]),Fe=i(()=>[{label:"总 Worker",value:ie.value},{label:"活跃 Worker",value:E.value},{label:"忙碌 Worker",value:D.value},{label:"空闲 Worker",value:de.value},{label:"任务队列",value:ee.value}]),Ge=i(()=>[{label:"定时任务",value:re.value?"启用":"关闭"},{label:"执行时间",value:ce.value||"-"},{label:"浏览类型",value:ve.value||"-"},{label:"代理",value:le.value?"启用":"关闭"},{label:"代理有效期",value:te.value?`${te.value} 分钟`:"-"},{label:"全局并发",value:G.value||"-"},{label:"单账号并发",value:fe.value||"-"},{label:"截图并发",value:me.value||"-"}]),je=i(()=>[{key:"task",title:"任务概览",desc:a(m.value.total_tasks)>0?`今日成功率 ${z.value}%`:"今日暂无任务",tone:"purple",items:Ne.value},{key:"queue",title:"队列监控",desc:j.value,tone:"blue",items:Ue.value},{key:"email",title:"邮件报表",desc:`成功率 ${F.value}%`,tone:"cyan",items:Ve.value},{key:"feedback",title:"反馈概览",desc:`待处理 ${a(M.value?.pending)} 条`,tone:"orange",items:Ee.value},{key:"resource",title:"系统资源",desc:r.value?.uptime?`运行 ${r.value.uptime}`:"运行状态获取中",tone:"green",items:De.value},{key:"worker",title:"截图线程池",desc:`活跃 ${E.value} · 忙碌 ${D.value}`,tone:"cyan",items:Fe.value},{key:"config",title:"配置概览",desc:"并发 / 代理 / 定时任务",tone:"red",items:Ge.value}]);async function be(o={}){const l=o.showLoading??!0;if(!H.value){H.value=!0,l&&(C.value=!0);try{const[v,_,q,P,h,c,L,U]=await Promise.allSettled([cl(),vl(),rl(),dl(),_l(),pl(),ml(),fl()]);v.status==="fulfilled"&&(J.value=v.value),_.status==="fulfilled"&&(g.value=_.value),q.status==="fulfilled"&&(f.value=q.value),P.status==="fulfilled"&&(M.value=P.value),h.status==="fulfilled"&&(r.value=h.value),c.status==="fulfilled"&&(S.value=c.value),L.status==="fulfilled"&&(T.value=L.value),U.status==="fulfilled"&&(x.value=U.value),await we?.(),Se()}finally{H.value=!1,l&&(C.value=!1)}}}let Q=null;return tl(()=>{be({showLoading:!1}),Q=setInterval(()=>be({showLoading:!1}),5e3)}),al(()=>{Q&&(clearInterval(Q),Q=null)}),(o,l)=>{const v=y("el-card"),_=y("el-icon"),q=y("el-progress"),P=y("el-col"),h=y("el-tag"),c=y("el-table-column"),L=y("el-table"),U=y("el-tab-pane"),Qe=y("el-tabs"),ae=y("el-row"),A=y("el-descriptions-item"),Ze=y("el-descriptions");return p(),w("div",bl,[e("section",hl,[e("div",gl,[e("div",kl,[l[1]||(l[1]=e("h2",null,"报表中心",-1)),e("div",yl,[V.value?(p(),w("span",wl,"更新时间:"+u(V.value),1)):W("",!0),r.value?.uptime?(p(),w("span",xl,"·")):W("",!0),r.value?.uptime?(p(),w("span",Sl,"运行 "+u(r.value.uptime),1)):W("",!0)])])]),t(I,{items:Ce.value,loading:C.value,"min-width":165},null,8,["items","loading"])]),e("section",Cl,[(p(!0),w(Z,null,ke(je.value,n=>(p(),R(v,{key:n.key,shadow:"never",class:ye(["mobile-module-card",`mobile-tone-${n.tone}`]),"body-style":{padding:"12px"}},{default:s(()=>[e("div",Ml,[e("div",Pl,u(n.title),1),e("div",Tl,u(n.desc),1)]),e("div",Wl,[(p(!0),w(Z,null,ke(n.items,se=>(p(),w("div",{key:`${n.key}-${se.label}`,class:"mobile-metric-item"},[e("div",$l,u(se.label),1),e("div",ql,u(se.value),1)]))),128))])]),_:2},1032,["class"]))),128))]),e("div",Rl,[t(ae,{gutter:12},{default:s(()=>[t(P,{xs:24,lg:12},{default:s(()=>[t(v,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:s(()=>[e("div",Il,[e("div",zl,[e("div",Ll,[t(_,null,{default:s(()=>[t(B(ge))]),_:1})]),e("div",Al,[l[2]||(l[2]=e("div",{class:"panel-title"},"任务概览",-1)),e("div",Bl,[a(m.value.total_tasks)>0?(p(),w(Z,{key:0},[d(" 今日成功率 "+u(z.value)+"% · "+u(j.value),1)],64)):(p(),w(Z,{key:1},[d("今日无任务 · "+u(j.value),1)],64))])])]),t(q,{type:"circle",percentage:a(m.value.total_tasks)>0?Math.round(z.value):0,width:74,"stroke-width":10,status:a(m.value.total_tasks)===0||z.value>=90?"success":z.value>=60?"warning":"exception"},null,8,["percentage","status"])]),e("div",Nl,[l[3]||(l[3]=e("div",{class:"block-title"},"今日",-1)),t(I,{items:qe.value,loading:C.value,"min-width":120},null,8,["items","loading"])]),l[5]||(l[5]=e("div",{class:"divider"},null,-1)),e("div",Ul,[l[4]||(l[4]=e("div",{class:"block-title"},"累计",-1)),t(I,{items:Re.value,loading:C.value,"min-width":120},null,8,["items","loading"])])]),_:1})]),_:1}),t(P,{xs:24,lg:12},{default:s(()=>[t(v,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:s(()=>[e("div",Vl,[e("div",El,[e("div",Dl,[t(_,null,{default:s(()=>[t(B(sl))]),_:1})]),e("div",Fl,[l[6]||(l[6]=e("div",{class:"panel-title"},"队列监控",-1)),e("div",Gl,u(j.value),1)])])]),t(Qe,{modelValue:ne.value,"onUpdate:modelValue":l[0]||(l[0]=n=>ne.value=n),class:"queue-tabs",stretch:""},{default:s(()=>[t(U,{name:"running"},{label:s(()=>[e("span",jl,[l[7]||(l[7]=d(" 运行中 ",-1)),t(h,{size:"small",effect:"light",type:"success"},{default:s(()=>[d(u(X.value),1)]),_:1})])]),default:s(()=>[e("div",Ql,[t(L,{data:Me.value.slice(0,10),size:"small",style:{width:"100%"}},{default:s(()=>[t(c,{label:"用户","min-width":"120"},{default:s(({row:n})=>[d(u(n.user_username||"-"),1)]),_:1}),t(c,{label:"账号","min-width":"150"},{default:s(({row:n})=>[d(u(n.username||"-"),1)]),_:1}),t(c,{label:"来源",width:"100"},{default:s(({row:n})=>[d(u(O(n.source)),1)]),_:1}),t(c,{label:"类型",width:"90"},{default:s(({row:n})=>[d(u(n.browse_type||"-"),1)]),_:1}),t(c,{label:"进度",width:"100"},{default:s(({row:n})=>[d(u(n.progress_items)+"/"+u(n.progress_attachments),1)]),_:1}),t(c,{label:"耗时",width:"100"},{default:s(({row:n})=>[d(u(n.elapsed_display||"-"),1)]),_:1}),t(c,{label:"状态","min-width":"140"},{default:s(({row:n})=>[d(u(n.detail_status||n.status||"-"),1)]),_:1})]),_:1},8,["data"])]),X.value===0?(p(),w("div",Zl,"当前无运行任务")):W("",!0)]),_:1}),t(U,{name:"queuing"},{label:s(()=>[e("span",Hl,[l[8]||(l[8]=d(" 排队中 ",-1)),t(h,{size:"small",effect:"light",type:"warning"},{default:s(()=>[d(u(Y.value),1)]),_:1})])]),default:s(()=>[e("div",Jl,[t(L,{data:N.value.slice(0,10),size:"small",style:{width:"100%"}},{default:s(()=>[t(c,{label:"用户","min-width":"120"},{default:s(({row:n})=>[d(u(n.user_username||"-"),1)]),_:1}),t(c,{label:"账号","min-width":"150"},{default:s(({row:n})=>[d(u(n.username||"-"),1)]),_:1}),t(c,{label:"来源",width:"100"},{default:s(({row:n})=>[d(u(O(n.source)),1)]),_:1}),t(c,{label:"类型",width:"90"},{default:s(({row:n})=>[d(u(n.browse_type||"-"),1)]),_:1}),t(c,{label:"等待",width:"100"},{default:s(({row:n})=>[d(u(n.elapsed_display||"-"),1)]),_:1}),t(c,{label:"状态","min-width":"160"},{default:s(({row:n})=>[d(u(n.detail_status||n.status||"-"),1)]),_:1})]),_:1},8,["data"])]),Y.value===0?(p(),w("div",Kl,"当前无排队任务")):W("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(ae,{gutter:12},{default:s(()=>[t(P,{xs:24,lg:12},{default:s(()=>[t(v,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:s(()=>[e("div",Ol,[e("div",Xl,[e("div",Yl,[t(_,null,{default:s(()=>[t(B(ul))]),_:1})]),e("div",et,[l[9]||(l[9]=e("div",{class:"panel-title"},"邮件报表",-1)),e("div",lt,"成功率 "+u(F.value)+"%",1)])])]),t(I,{items:Ie.value,loading:C.value,"min-width":132},null,8,["items","loading"]),l[11]||(l[11]=e("div",{class:"divider"},null,-1)),e("div",tt,[l[10]||(l[10]=e("div",{class:"block-title"},"类型统计",-1)),t(I,{items:ze.value,loading:C.value,"min-width":132},null,8,["items","loading"])])]),_:1})]),_:1}),t(P,{xs:24,lg:12},{default:s(()=>[t(v,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:s(()=>[e("div",at,[e("div",st,[e("div",ut,[t(_,null,{default:s(()=>[t(B(nl))]),_:1})]),e("div",nt,[l[12]||(l[12]=e("div",{class:"panel-title"},"反馈概览",-1)),e("div",ot,"待处理 "+u(a(M.value?.pending))+" 条",1)])])]),t(I,{items:Le.value,loading:C.value,"min-width":145},null,8,["items","loading"]),l[13]||(l[13]=e("div",{class:"help app-muted"},"提示:反馈处理越及时,用户留存与满意度越高。",-1))]),_:1})]),_:1})]),_:1}),t(ae,{gutter:12},{default:s(()=>[t(P,{xs:24,lg:12},{default:s(()=>[t(v,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:s(()=>[e("div",it,[e("div",dt,[e("div",rt,[t(_,null,{default:s(()=>[t(B(ol))]),_:1})]),l[14]||(l[14]=e("div",{class:"head-text"},[e("div",{class:"panel-title"},"系统资源"),e("div",{class:"panel-sub app-muted"},"服务器与容器运行状态")],-1))]),r.value?.uptime?(p(),R(h,{key:0,effect:"light",type:"info"},{default:s(()=>[d("运行 "+u(r.value.uptime),1)]),_:1})):W("",!0)]),e("div",ct,[e("div",vt,[l[15]||(l[15]=e("div",{class:"resource-k app-muted"},"CPU",-1)),t(q,{percentage:Math.round(b(r.value?.cpu_percent)),status:b(r.value?.cpu_percent)>=90?"exception":b(r.value?.cpu_percent)>=75?"warning":"success"},null,8,["percentage","status"]),e("div",_t,u(Math.round(b(r.value?.cpu_percent)))+"%",1)]),e("div",pt,[l[16]||(l[16]=e("div",{class:"resource-k app-muted"},"内存",-1)),t(q,{percentage:Math.round(b(r.value?.memory_percent)),status:b(r.value?.memory_percent)>=90?"exception":b(r.value?.memory_percent)>=75?"warning":"success"},null,8,["percentage","status"]),e("div",ft,u(r.value?.memory_used||"-")+" / "+u(r.value?.memory_total||"-")+"("+u(Math.round(b(r.value?.memory_percent)))+"%) ",1)]),e("div",mt,[l[17]||(l[17]=e("div",{class:"resource-k app-muted"},"磁盘",-1)),t(q,{percentage:Math.round(b(r.value?.disk_percent)),status:b(r.value?.disk_percent)>=90?"exception":b(r.value?.disk_percent)>=75?"warning":"success"},null,8,["percentage","status"]),e("div",bt,u(r.value?.disk_used||"-")+" / "+u(r.value?.disk_total||"-")+"("+u(Math.round(b(r.value?.disk_percent)))+"%) ",1)])]),l[20]||(l[20]=e("div",{class:"divider"},null,-1)),l[21]||(l[21]=e("div",{class:"block-title"},"容器",-1)),t(Ze,{border:"",column:2,size:"small"},{default:s(()=>[t(A,{label:"状态"},{default:s(()=>[d(u(S.value?.status||"-"),1)]),_:1}),t(A,{label:"容器名"},{default:s(()=>[d(u(S.value?.container_name||"-"),1)]),_:1}),t(A,{label:"运行时长"},{default:s(()=>[d(u(S.value?.uptime||"-"),1)]),_:1}),t(A,{label:"CPU"},{default:s(()=>[d(u(S.value?.cpu_percent||"-"),1)]),_:1}),t(A,{label:"内存"},{default:s(()=>[d(u(S.value?.memory_usage||"-"),1)]),_:1}),t(A,{label:"内存占比"},{default:s(()=>[d(u(S.value?.memory_percent||"-"),1)]),_:1})]),_:1}),l[22]||(l[22]=e("div",{class:"divider"},null,-1)),e("div",ht,[e("div",gt,[e("div",kt,[l[18]||(l[18]=e("div",{class:"panel-title"},"截图线程池",-1)),e("div",yt," 活跃(有执行环境)"+u(E.value)+" · 忙碌 "+u(D.value)+" · 队列 "+u(ee.value),1)])]),T.value?.server_time_cst?(p(),R(h,{key:0,effect:"light",type:"info"},{default:s(()=>[d(u(T.value.server_time_cst),1)]),_:1})):W("",!0)]),t(I,{items:Ae.value,loading:C.value,"min-width":120},null,8,["items","loading"]),l[23]||(l[23]=e("div",{class:"divider"},null,-1)),e("div",wt,[t(L,{data:oe.value,size:"small",border:""},{default:s(()=>[t(c,{prop:"worker_id",label:"Worker",width:"90"}),t(c,{label:"状态",width:"90"},{default:s(({row:n})=>[t(h,{type:Pe(n),effect:"light"},{default:s(()=>[d(u(Te(n)),1)]),_:2},1032,["type"])]),_:1}),t(c,{label:"执行",width:"90"},{default:s(({row:n})=>[t(h,{type:We(n),effect:"light"},{default:s(()=>[d(u($e(n)),1)]),_:2},1032,["type"])]),_:1}),t(c,{label:"任务",width:"120"},{default:s(({row:n})=>[e("span",null,u(a(n?.total_tasks)),1),l[19]||(l[19]=e("span",{class:"app-muted"}," / ",-1)),e("span",{class:ye(a(n?.failed_tasks)?"err":"app-muted")},u(a(n?.failed_tasks)),3)]),_:1}),t(c,{prop:"browser_use_count",label:"复用",width:"90"}),t(c,{prop:"last_active_at",label:"最近活跃","min-width":"160"}),t(c,{prop:"browser_created_at",label:"环境创建","min-width":"160"})]),_:1},8,["data"])])]),_:1})]),_:1}),t(P,{xs:24,lg:12},{default:s(()=>[t(v,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:s(()=>[e("div",xt,[e("div",St,[e("div",Ct,[t(_,null,{default:s(()=>[t(B(il))]),_:1})]),l[24]||(l[24]=e("div",{class:"head-text"},[e("div",{class:"panel-title"},"配置概览"),e("div",{class:"panel-sub app-muted"},"定时 / 代理 / 并发")],-1))])]),e("div",Mt,[e("div",Pt,[l[27]||(l[27]=e("div",{class:"config-k app-muted"},"定时任务",-1)),e("div",Tt,[re.value?(p(),R(h,{key:0,type:"success",effect:"light"},{default:s(()=>[...l[25]||(l[25]=[d("启用",-1)])]),_:1})):(p(),R(h,{key:1,type:"info",effect:"light"},{default:s(()=>[...l[26]||(l[26]=[d("关闭",-1)])]),_:1})),e("span",Wt,u(ce.value)+" / "+u(ve.value),1)]),e("div",$t,"日期:"+u(Be.value||_e.value||"-"),1)]),e("div",qt,[l[30]||(l[30]=e("div",{class:"config-k app-muted"},"代理",-1)),e("div",Rt,[le.value?(p(),R(h,{key:0,type:"success",effect:"light"},{default:s(()=>[...l[28]||(l[28]=[d("启用",-1)])]),_:1})):(p(),R(h,{key:1,type:"info",effect:"light"},{default:s(()=>[...l[29]||(l[29]=[d("关闭",-1)])]),_:1})),le.value&&pe.value?(p(),w("span",It,u(pe.value),1)):W("",!0)]),e("div",zt,"有效期:"+u(te.value||"-")+" 分钟",1)]),e("div",Lt,[l[33]||(l[33]=e("div",{class:"config-k app-muted"},"并发",-1)),e("div",At,[e("span",null,"全局 "+u(G.value||"-"),1),l[31]||(l[31]=e("span",{class:"config-split app-muted"},"/",-1)),e("span",null,"单账号 "+u(fe.value||"-"),1),l[32]||(l[32]=e("span",{class:"config-split app-muted"},"/",-1)),e("span",null,"截图 "+u(me.value||"-"),1)])])])]),_:1})]),_:1})]),_:1})])])}}},Ft=Je(Bt,[["__scopeId","data-v-f601d04c"]]);export{Ft as default};
|