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/useController20.js
import{L as w,eh as A,o as b,k as m,ei as N,ej as B,ek as T,el as j,M as H,w as y,em as F,en as J,eo as K,ep as M,eq as W,er as z,es as G,et as Q,eu as U,c as X,e as S,_,cm as Y,df as Z,ev as ee,ew as te}from"./utils-lib.js?v=1777008528";import{aJ as x,r as d,aI as k,a7 as ae,e as g,J as se,I as ne}from"./base-lib.js?v=1777008528";import{N as re,o as ie,d as le}from"./index3.js?v=1777008528";import{q as ce}from"./useController19.js?v=1777008528";const C=x("DOCKER-SITE-STORE",()=>{const e=d({}),{refreshSiteTable:t}=w(),n=d(""),i=d({}),r=d("all"),c=d([]);return{getDockerSiteList:async a=>{try{const{data:s}=await A(a);return{data:s.data,total:b(s.page)}}catch(s){}},pluginInfo:e,setDockerSiteStatus:async(a,s)=>{try{const o=new Date().setHours(0,0,0,0);if(a.edate!=="0000-00-00"&&new Date(a.edate).getTime()/1e3<o/1e3){H.error("项目已过期,请设置站点到期时间后再操作");return}await y({title:"提示",content:a.status?"启动站点【".concat(a.site_name,"】后,用户可以正常访问网站内容,是否继续操作?"):"停用站点【".concat(a.site_name,"】后,用户访问会显示当前网站停用后的提示页,是否继续操作?"),icon:"warning-filled"}),await m({loading:"正在".concat(a.status?"开启":"关闭",",请稍后..."),request:F(a),message:!0,success:E=>{t(),s&&s(E)}})}catch(o){}},setDockerSiteRemark:async(a,s)=>{try{await m({loading:"正在保存备注,请稍后...",request:J(a),message:!0,success:o=>{t(),s&&s(o)}})}catch(o){}},getEnvList:async a=>{try{const{data:s}=await j(a);return{data:s.data,total:b(s.page)}}catch(s){}},delDockerSite:async(a,s)=>{try{await y({title:"删除【".concat(a.name,"】项目"),content:"风险操作,此操作不可逆,删除【".concat(a.name,"】项目后您将无法管理该项目,是否继续操作?"),icon:"warning-filled",type:"check",check:{content:"同时删除网站根目录",onConfirm:async o=>{const v={id:a.id,site_name:a.name,remove_path:o?1:0};await m({loading:"正在删除,请稍后...",request:K(v),message:!0,success:E=>{t(),s&&s(E)}})}}})}catch(o){}},setSiteInfo:async(a,s)=>(a&&(i.value={...a}),n.value=(typeof s=="string"?s:"")||"",i.value),siteInfo:i,settingTabActive:n,getClassList:async()=>{try{return await m({request:N(),success:({data:a})=>{c.value=[{label:"全部分类",value:"all"},...a.data.map(s=>({label:s.name,value:String(s.id)}))]}}),{data:c.value,status:!0}}catch(a){return{data:[],status:!1}}},setClass:async(a,s)=>{try{switch(s){case"add":return await m({loading:"正在新增分类,请稍后...",request:T({name:a.name}),message:!0});case"edit":return await m({loading:"正在编辑分类,请稍后...",request:T({name:a.name,id:a.id}),message:!0});case"del":return await m({loading:"正在删除分类,请稍后...",request:B({id:a.id}),message:!0});default:break}}catch(o){}},classList:c,resetData:()=>{n.value="",i.value={},c.value=[]},statusFilterKey:r}}),_e=()=>k(C()),I=x("DOCKER-SITE-ENV-STORE",()=>{const e=d("php"),t=d(!1),n=d(!1),i=d(!1),r=d(!1),c=d(!1),l=u=>{switch(u){case"php":t.value=!0;break;case"java":n.value=!0;break;case"python":i.value=!0;break;case"go":r.value=!0;break;case"nodejs":c.value=!0;break}};return{tabActive:e,refreshEnvTable:t,refreshJavaEnvTable:n,refreshPythonEnvTable:i,refreshGoEnvTable:r,refreshNodeEnvTable:c,setTypeRefreshTable:l,delDockerEnv:async(u,a,s)=>{try{await y({title:"删除【".concat(u.name,"】环境"),content:"风险操作删除【".concat(u.name,"】环境,此操作不可逆,是否继续操作?"),icon:"warning-filled"}),await m({loading:"正在删除,请稍后...",request:M({id:u.id}),message:!0,success:o=>{l(a),s&&s(o)}})}catch(o){}},useBatchEventHandle:async(u,a,s,o,v)=>{await y({title:"删除环境",content:"风险操作删除选中的".concat(s.value.length,"个环境,此操作不可逆,是否继续操作?"),icon:"warning-filled"});const E={ids:s.value.map(V=>V.id).join(",")};await m({loading:"正在删除,请稍后...",request:W(E),message:!0,success:()=>{v(),l(e.value)}})},cleanCache:async(u,a)=>{try{await y({title:"清理构建缓存",content:"即将清理构建缓存,是否继续操作?",icon:"warning-filled"}),await m({loading:"正在清理,请稍后...",request:z(),message:!0,success:s=>{l(u),a&&a(s)}})}catch(s){}},refreshTemplate:async(u,a)=>{try{await m({loading:"正在刷新,请稍后...",request:Q(),message:!0,success:s=>{l(u),a&&a(s)}})}catch(s){}},getVersion:async(u="all")=>{try{return await m({loading:"正在获取版本,请稍后...",request:U({runtime_type:u}),message:!1})}catch(a){}},setStatus:async(u,a,s,o)=>{try{await m({loading:"正在设置,请稍后...",request:G({runtime_status:u,compose_file:a.compose}),message:!0,success:v=>{l(s),o&&o(v)}})}catch(v){}},resetData:()=>{e.value="php",t.value=!1,n.value=!1,i.value=!1,r.value=!1,c.value=!1}}}),Ee=()=>k(I()),oe=ae(),{plugin:q}=X(),{refreshSiteTable:L}=w(),{pluginInfo:ue}=k(C()),{setSiteInfo:me,getClassList:de,setClass:D}=C(),{resetData:fe}=I(),De={get:async()=>{const{data:e}=await de();return e},add:e=>D({...e},"add"),update:e=>{const{id:t,name:n}=e;return D({id:t,name:n},"edit")},delete:e=>{const{id:t}=e;return D({id:t},"del")}},ke=e=>({label:"设置分类",value:"setClass",event:async(t,n,i,r,c)=>{await le({name:"分类",options:e.classList.value.filter(l=>l.value!=="all"&&l.value!=="-2"),selectList:i.value,request:async(l,f)=>{const h=i.value.map(p=>p.id);await m({loading:"正在批量设置分类,请稍后...",request:ee({id:JSON.stringify(h),classify:l.id}),message:!0}),c(),L(),f()}})}}),Ce=e=>({label:"到期时间",isCustom:!0,render:t=>{const n=new Date().setHours(0,0,0,0),i=Date.now(),r=t.edate!=="0000-00-00"?new Date(t.edate).getTime():null,c=r&&r<n,l=r&&r-i<7*24*60*60*1e3;return g("span",{class:"cursor-pointer "+(c?"bt-danger":l?"bt-warn":"bt-link"),onClick:()=>ge(t)},[c?"已过期":t.edate==="0000-00-00"?"永久":t.edate])}}),ge=(e,t=!1)=>{S({title:"【".concat(e.name,"】到期时间设置"),area:48,component:()=>_(()=>import("./index398.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:{rowData:e,isMult:t},showFooter:!0})},be=e=>({label:(e==null?void 0:e.label)||"网站名",prop:"name",minWidth:150,showOverflowTooltip:{show:!0,enterable:!1},render:t=>{var r;let n=(r=q.value)==null?void 0:r.web;const i=(e==null?void 0:e.type)==="java"&&!(t.is_file_ok||typeof t.is_file_ok>"u");return g("div",{class:"flex items-center inline-block truncate"},[t!=null&&t.waf&&(t!=null&&t.isWaf||(t==null?void 0:t.isWaf)===void 0)?g("span",{class:"w-[1.6rem] mr-[4px] cursor-pointer flex items-center",onClick:()=>{e.openPlugin&&e.openPlugin(t,"iconWaf")}},[g("i",{class:"svgtofont-left-waf !text-extraLarge ".concat(t.waf.status&&(n==null?void 0:n.type)==="proxy"&&(n!=null&&n.status)&&(n!=null&&n.setup)?"text-primary":"text-tertiary")},null)]):"",g("span",{class:"!whitespace-pre-line inline-block w-[calc(100%-1.6rem)]",title:t==null?void 0:t.cn_name},[g("span",{onClick:()=>{i||e.onClick(t)},class:"justify-start cursor-pointer ".concat(i?"":"bt-link"," ")},[t.name])])])}}),Te=e=>({label:"状态",prop:"status",minWidth:70,isCustom:!0,sortable:!1,width:80,render:t=>{let n=t==null?void 0:t.run;return e!=null&&e.prop&&(n=t[e.prop]==="1"),t[e.prop||"status"]===void 0?se(g("div",{class:"loading h-[2rem]"},null),[[ne("bt-loading"),!0]]):g(re,{modelValue:n?1:0,data:["已停止","运行中"],onClick:()=>e.onClick(t)},null)}}),we=e=>({label:"SSL证书",isCustom:!0,render:t=>{var n,i,r;return g("span",{class:"cursor-pointer ".concat(t.ssl===-1?"text-warning":((n=t.ssl)==null?void 0:n.endtime)<0?"text-danger":"text-primary"),onClick:()=>{e.onClick(t)}},[t.ssl===-1?"未部署":((i=t.ssl)==null?void 0:i.endtime)<0?"已过期":"剩余".concat((r=t.ssl)==null?void 0:r.endtime,"天")])}}),xe=async(e,t,n,i,r)=>{await y({title:"删除项目",content:"风险操作,此操作不可逆,删除选中的".concat(n.value.length,"个项目后您将无法管理这些项目,是否继续操作?"),icon:"warning-filled",type:"check",check:{content:"同时删除网站根目录",onConfirm:async c=>{const l={site_list:JSON.stringify(n.value.map(f=>({site_name:f.name,id:f.id}))),remove_path:c?1:0};await m({loading:"正在删除,请稍后...",request:te(l),message:!0,success:()=>{r(),L()}})}}})},Ie=async()=>{try{const{data:e}=await Y({name:"nginx"});return ue.value=e,e}catch(e){return{}}},qe=(e={readonly:!1,theme:"chrome"})=>({mode:"ace/mode/nginx",theme:oe.value?"ace/theme/clouds_midnight":"ace/theme/".concat(e.theme),wrap:!0,showInvisibles:!1,showFoldWidgets:!1,useSoftTabs:!0,tabSize:2,showPrintMargin:!1,readOnly:e.readonly,fontSize:"12px"}),Le=e=>new Promise((t,n)=>{S({title:"创建网站",area:70,btn:["确认","取消"],component:()=>_(()=>import("./index399.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:e||{}})}),Oe=e=>new Promise((t,n)=>{S({title:"运行环境",area:120,component:()=>_(()=>import("./index362.js?v=1777008528").then(i=>i.O),__vite__mapDeps([]),import.meta.url),onCancel:()=>{fe(),e&&e()}})}),Re=(e,t)=>{S({title:(e==null?void 0:e.title)||"批量操作结果",area:42,component:()=>_(()=>import("./index127.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:e})},$e=(e="setDefaultPage")=>S({isAsync:!0,title:"常用设置",area:[96,62],component:()=>_(()=>import("./index306.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:e,showFooter:!1}),Pe=(e,t="")=>{me(e,t),S({title:"Docker项目管理【"+e.name+"】 -- 添加时间【"+e.addtime+"】",area:[86,70],component:()=>_(()=>import("./index365.js?v=1777008528").then(n=>n.$),__vite__mapDeps([]),import.meta.url)})},ve=e=>{switch(e){case"monitor":return 47;case"bt_waf":return 48;case"iconWaf":return 49}},Ve=async(e,t)=>{if(t==="monitor-setting"&&(t="monitor"),t==="monitor"){if(!await ce(e,!1))return;Z("total_website",e.name)}const n=q.value.web.type==="nginx"?"btwaf":"btwaf_httpd",i=ve(t);t!=="monitor"&&(t=n),await ie({source:i,name:t,callback:r=>{if(r&&t!=="monitor"){const c=setInterval(()=>{var f;const l=r.document.getElementsByClassName("layui-layer-page")[0];if(r.site_waf_config&&l){clearInterval(c),l&&(l.style.display="none"),r.site_waf_config(e.name);const h=r.document.getElementsByClassName("layui-layer-page")[1];h&&((f=h.querySelector(".layui-layer-close"))==null||f.addEventListener("click",()=>{var p;(p=l.querySelector(".layui-layer-close"))==null||p.click()}))}},50)}}})};export{C as D,be as a,Te as b,Ce as c,we as d,Ie as e,De as f,qe as g,Pe as h,Ve as i,Le as j,$e as k,ke as l,xe as m,I as n,Re as o,Ee as p,Oe as s,_e as u};
function __vite__mapDeps(indexes) {
  if (!__vite__mapDeps.viteFileDeps) {
    __vite__mapDeps.viteFileDeps = []
  }
  return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}