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