HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/panel/BTPanel/static/js/index35.js
import{_ as ee}from"./index118.js?v=1777008528";import{_ as te}from"./index217.js?v=1777008528";import{L as M,c as B,e as w,_ as x,k as g,fR as ae,G as ne,fS as oe,M as P,w as A,fT as se,U as le,fU as re,df as ie,V as ce,fV as ue,fW as me,c7 as _e,c_ as pe,d2 as de,d3 as ge,d4 as fe,cZ as ve}from"./utils-lib.js?v=1777008528";import{_ as be}from"./index317.js?v=1777008528";import{f as p,o as he,c as y,g as ke,r as O,C as U,t as $,e as D,N as ye}from"./useMethods.js?v=1777008528";import{H as Ce,r as b,V as De,c as we,w as S,o as xe,n as Ee,a8 as Te,I as Le,j as Ne,k as Se,e as u,v as d,q as Re,p as o,x as R,J as Ve}from"./base-lib.js?v=1777008528";import{u as qe}from"./use-socket-request.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index3.js?v=1777008528";import"./index119.js?v=1777008528";import"./index116.js?v=1777008528";const{refs:{customLimit:Ie,cpuAndMemData:H,maxCPU:Me,maxMem:Be,maxGpus:Pe}}=M(),{mainHeight:Ae,enterpriseRec:Oe}=B(),a=Ce({loading:!1,total:0,p:1,limit:Number(localStorage.getItem("dockercontainerlimit"))||20,usedList:[],search:""}),r=b([]),_=De([]),E=b([]),V=b("all"),Ue=[{label:"启动",value:"start",event:p},{label:"重启",value:"restart",event:p},{label:"停止",value:"stop",event:p},{label:"强制停止",value:"kill",event:p},{label:"暂停",value:"pause",event:p},{label:"恢复",value:"unpause",event:p},{label:"删除",value:"delete",event:p}],$e=[{active:!0,content:"创建容器",event:()=>he()},{content:"日志管理",event:()=>T()},{content:"清理容器",event:()=>et()},...Oe.value?[{content:"安全检测",event:async()=>{w({title:"安全检测",area:70,component:()=>x(()=>import("./index494.js?v=1777008528"),__vite__mapDeps([]),import.meta.url)})}}]:[]],He=()=>{Ie.value.container=!0,localStorage.setItem("dockercontainerlimit",String(a.limit)),m(!1)},Je=async(e,t)=>{g({loading:"正在设置容器状态,请稍候...",request:le({data:JSON.stringify({id:e.id,status:t})}),message:!0,success:m})},J=async e=>{g({loading:"正在获取容器目录,请稍候...",request:re({data:JSON.stringify({id:e.id})}),success:t=>{ie("Path",t.data.path),window.location.href=window.location.origin+"/files"},error:t=>{P.error((t==null?void 0:t.msg)||"获取容器目录失败")}})},Ge=async e=>{try{await A({title:"删除容器【".concat(e.name,"】"),content:"删除容器【".concat(e.name,"】,是否继续操作?")}),g({loading:"正在删除容器,请稍候...",request:ce({data:JSON.stringify({id:e.id})}),message:!0,success:m})}catch(t){}},We=(e,t)=>{switch(e){case"terminal":$(t);break;case"reName":O(t);break;case"realMonitor":U(t);break;case"proxyDetails":D(t,"proxy");break;case"dir":J(t);break;case"log":T(t);break}},Ke=async(e,t)=>{g({loading:"正在设置容器置顶,请稍候...",request:ue({type:t=="top"?"add":"del",container_name:e.name}),message:!0,success:()=>{e.is_top=t=="top"?1:0,Qe()}})},Fe=async()=>{if(a.p=1,a.search===""){a.total=r.value.length,m(!1);return}const e=a.search.toLowerCase(),t=["name","id","image"],n=r.value.filter(s=>t.some(i=>{var f;return(f=s[i])==null?void 0:f.toLowerCase().includes(e)}));a.total=n.length,_.value=y({limit:a.limit,list:n,p:a.p})||[]},k=b(ke({reNameEvent:e=>O(e),realMonitorEvent:e=>U(e),terminalEvent:$,dirEvent:J,logDataEvent:e=>T(e),deleteDataEvent:Ge,conDetailEvent:D,setStatusEvent:Je,openContainerBackups:e=>Ye(e),openProxyDetails:e=>D(e,"proxy"),changeTaskTopEvent:Ke,moreEvent:We,setStatusTitle:async e=>{var t;if(e==="all")return V.value=e,await m();_.value=((t=E.value[e])==null?void 0:t.map(n=>{const s=r.value.find(i=>i.id===n.id);return{...n,backup_count:(s==null?void 0:s.backup_count)||0,remark:(s==null?void 0:s.remark)||""}}))||[]},statusFilterKey:V}));let l=null;const Ze=()=>{l==null||l.socketDestroy(),l=qe("/ws_model")},G=async e=>{try{const t=e;t.data.container_stats_data&&ze(t.data),t.end&&(l==null||l.socketRequest({params:{model_index:"btdocker",mod_name:"container",def_name:"get_all_stats",ws_callback:"get_all_stats"},onMessage:G}))}catch(t){}},W=async()=>{Ze();const e={model_index:"btdocker",mod_name:"container",def_name:"get_all_stats",ws_callback:"get_all_stats"};l==null||l.socketRequest({params:e,onMessage:G})},je=e=>e.id,ze=e=>{if(!e.container_stats_data)return;const t=e.container_stats_data;_.value.forEach(n=>{if(n.status==="running"){const s=t.find(i=>i.id==n.id);s&&(H.value[n.id]={cpu_usage:s.cpu_usage||0,mem_percent:s.mem_percent||0})}})},q=()=>{l==null||l.socketDestroy(),l=null,a.loading=!1,a.total=0,a.p=1,a.search="",a.usedList=[],a.limit=Number(localStorage.getItem("dockercontainerlimit"))||20,r.value=[],_.value=[],E.value=[]},Qe=()=>{r.value=r.value.sort((e,t)=>e.is_top==1&&t.is_top!=1?-1:e.is_top!=1&&t.is_top==1?1:e.created_time>t.created_time?-1:1),_.value=y({limit:a.limit,list:r.value,p:a.p})||[]},Xe=()=>{setTimeout(()=>{Ae.value>900?a.limit=20:a.limit=10},0)};let I=!0;const m=async e=>{if(e===!1){_.value=y({...a,list:r.value})||[];return}I&&(a.loading=!0),await g({request:ae(),data:{container_list:Array,grouped_by_status:Object,mem_total:Number,online_cpus:Number,gpu:Number},success:t=>{I=!1;const n=t.container_list;t.container_list.forEach(s=>{H.value[s.id]={cpu_usage:0,mem_percent:0}}),r.value=n,a.total=n.length,_.value=y({...a,list:n})||[],a.loading=!1,E.value=t,Me.value=t.online_cpus,Be.value=Number(ne(Number(t.mem_total),!1,0,"MB")),Pe.value=t.gpu||0}}),await g({request:oe(),data:Array,success:t=>{r.value.forEach((n,s)=>{const i=t.find(f=>f.id===n.id);i&&(n.backup_count=i.backup_count,n.remark=i.remark)}),W()}})},T=(e={})=>{if(!r.value.length)return P.error("容器列表为空");w({component:()=>x(()=>import("./index454.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),title:"容器日志",area:92,compData:{row:e,list:r.value}})},Ye=e=>w({component:()=>x(()=>import("./index455.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),title:"备份容器 - ["+e.name+"]",area:79,compData:{row:e}}),et=async()=>{await A({content:"将删除所有已停止、未使用的容器,是否继续?",title:"清理容器",width:"42rem",type:"check",check:{content:'删除<span class="text-danger">所有</span>容器,包含正在运行的容器',onConfirm:async e=>{a.loading=!0,g({request:se({type:e?1:0}),message:!0,success:m,error:()=>{a.loading=!1}})}}})},tt={class:"relative container-table-tab"},at={class:"flex items-center"},nt=we({__name:"index",setup(e,{expose:t}){const{refs:{refreshWs:n,isRefreshTableList:s,customLimit:i},resetRefresh:f}=M(),{mainHeight:K}=B(),C=b(null);return S(()=>n.value,h=>{h&&(n.value=!1,W())}),S(()=>s.value,h=>{h&&(f(),m())}),xe(async()=>{k.value=me(JSON.parse(localStorage.getItem("dockerContainerTableColumn")||"[]")||[],k.value),m(),Ee(()=>{i.value.container||Xe()})}),t({init:m,destroy:q}),Te(()=>q()),(h,c)=>{const F=be,L=_e,Z=pe,j=de,z=ge,Q=fe,X=te,Y=ee,N=Le("bt-loading");return Ne(),Se("div",tt,[u(Y,null,{"header-left":d(()=>[Re("div",at,[u(F,{options:o($e)},null,8,["options"]),u(L,{class:"ml-[1.6rem]",onClick:o(ye)},{default:d(()=>[...c[3]||(c[3]=[R("需求反馈",-1)])]),_:1},8,["onClick"]),u(L,{class:"ml-[1.6rem]",href:"https://www.bt.cn/bbs/thread-140412-1-1.html"},{default:d(()=>[...c[4]||(c[4]=[R(">>使用帮助",-1)])]),_:1})])]),"header-right":d(()=>[u(Z,{class:"!w-[26rem] mr-1rem",modelValue:o(a).search,"onUpdate:modelValue":c[0]||(c[0]=v=>o(a).search=v),onSearch:o(Fe),placeholder:"请输入容器名、ID、容器镜像"},null,8,["modelValue","onSearch"]),u(j,{name:"dockerContainerTableColumn",column:o(k),tableRef:o(C)},null,8,["column","tableRef"])]),content:d(()=>[Ve(u(z,{ref_key:"containerTable",ref:C,key:"containerTable",column:o(k),data:o(_),"row-key":o(je),description:"容器列表为空","max-height":o(K)-230},null,8,["column","data","row-key","max-height"]),[[N,o(a).loading],[N,"正在加载容器列表,请稍后...","title"]])]),"footer-left":d(()=>[u(Q,{"table-ref":o(C),options:o(Ue)},null,8,["table-ref","options"])]),"footer-right":d(()=>[u(X,{page:o(a).p,"onUpdate:page":c[1]||(c[1]=v=>o(a).p=v),row:o(a).limit,"onUpdate:row":c[2]||(c[2]=v=>o(a).limit=v),useStorage:!1,total:o(a).total,onChange:o(He)},null,8,["page","row","total","onChange"])]),_:1})])}}}),gt=ve(nt,[["__scopeId","data-v-b42b5680"]]);export{gt as default};
function __vite__mapDeps(indexes) {
  if (!__vite__mapDeps.viteFileDeps) {
    __vite__mapDeps.viteFileDeps = []
  }
  return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}