File: /www/server/panel/BTPanel/static/js/useController19.js
import{du as V,k as P,o as Q,c as Z,e as p,_ as g,M as D,df as K,I as F,cN as l,Y as U,dO as x,w as A,Q as W}from"./utils-lib.js?v=1777008528";import{getDataInfoNew as Y,modifyProjectRunState as X,setSiteStatus as ee,getScanList as te,getGitInfo as ae,batchPhpBasedir as se,batchPhpDomain as ne,batchPhpStatus as oe,batchPhpBack as re}from"./site.js?v=1777008528";import{aJ as M,r as f,H as E,aI as T,c as ie,e as k}from"./base-lib.js?v=1777008528";import{o as ce,p as N,a as S,c as B,b as le,v as ue}from"./index3.js?v=1777008528";import{S as $}from"./useStore2.js?v=1777008528";import{o as me,i as pe,j as ge}from"./useController13.js?v=1777008528";import{u as q,g as _e}from"./useMethod12.js?v=1777008528";import{_ as fe}from"./index192.js?v=1777008528";const de=M("WP-LOCAL-STORE",()=>{const e=f(!1),a=f(!1),t=f(!1),c=f({}),s=f(""),n=E({value:!1,message:""}),o=E({method:1,subDomain:V(8,"letter"),subPath:"",newDomain:"",newPath:"",cache_status:!1}),r=E({status:!0,text:""}),{loading:i,setLoading:u}=q(!1),{loading:y,setLoading:v}=q(!1);return{localRow:c,loginUrl:s,isLoginMask:n,loginInit:async L=>{n.value=!1,await P({loading:"正在加载,请稍后...",request:_e({s_id:L}),success:d=>{d.status?s.value=d.data.msg.login_url:(n.value=!0,n.message=d.msg)}})},isRefreshLocalList:e,isRefreshBackupList:a,isRefreshMigrateSiteList:t,cloneLocalForm:o,verifyingData:r,verifyingLoading:i,setVerifyingLoading:u,reinstallLoading:y,setReinstallLoading:v,resetVerifyingData:()=>{r.status=!0,r.text=""},resetCloneLocalForm:()=>{o.method=1,o.subDomain=V(8,"letter"),o.subPath="",o.newDomain="",o.newPath=""}}}),C=M("SITE-PHP-STORE",()=>{const e=f({});return{scanData:f({info:[],time:"",is_pay:!0,loophole_num:0,site_num:0,web_scaning_times:0}),pluginInfo:e,getPhpList:async s=>{try{const n=Ae("phpTableColumn"),{data:{data:o,page:r,search_history:i,error:u}}=await Y(s);return{data:o.map(v=>({...v,isWaf:n!=null&&n.length?n[0].isCustom:!0})),total:Q(r),other:{search_history:i,error:u}}}catch(n){return{data:[],total:0,other:{search_history:{page:1,page_size:10,total:0},error:{code:"get value error!",message:"获取数据失败"}}}}},changeStatusEvent:async({row:s,action:n},{isAsync:o,status:r})=>{try{const i=await P({loading:"正在"+(r?"停止":"启动")+",请稍后...",request:o?X({sitename:s.name,project_action:n}):ee({id:s.id,name:s.name},n),message:!0});return{status:i.status,msg:i.msg}}catch(i){return{status:!1,msg:"操作失败"}}}}}),z=()=>T(C()),qe=Object.freeze(Object.defineProperty({__proto__:null,SITE_PHP_STORE:C,useSitePhpStore:z},Symbol.toStringTag,{value:"Module"})),{isRefreshList:J,selectedList:H,batchConfig:w,isSiteMult:He}=T($()),{setSiteInfo:he}=$(),{plugin:O,payment:Fe}=Z(),{isRefreshLocalList:ve}=T(de()),ye=f([]),h=f([]),Me=f(),I=async(e,a,t,c,s,n)=>{const{label:o,value:r}=c,{enable:i,exclude:u}=n,y=new Map([["start","批量启用选中的站点后,站点将恢复正常访问"],["stop","批量停用选中的站点后,站点将无法正常访问,用户访问会显示当前网站停用后的提示页"],["backSite","批量备份选中的站点,可能耗费时间较长"]]),v=async()=>{const _=new Map([["backSite",re]]).get(r);switch(r){case"start":case"stop":const j=t.value.map(d=>{var R;return{id:d.id,name:d.name,phpsync:+(((R=d.project_config)==null?void 0:R.type)==="PHPMOD")}}),L=S(!1,u,i,{params:{option:r==="start"?"1":"0",project_type:"PHP",site_list:JSON.stringify(j)}});return await oe(L);case"backSite":if(_){const d=S(t.value,u,i,{params:{project_type:"PHP"}});return await _(d)}break}};await e({title:"批量".concat(o),content:"".concat(y.get(r),",是否继续操作?"),column:[{label:"网站名",prop:"rname"},le()],onConfirm:async()=>{const m=await v();J.value=!0,ve.value=!0,s&&s();let{data:_}=B(m.data);ue(_,{title:"".concat(o)})}})},Ne=[{label:"启动站点",value:"start",event:I},{label:"停用站点",value:"stop",event:I},{label:"备份站点",value:"backSite",event:I},{label:"设置到期时间",value:"setTimeSite",event:async(e,a,t,c,s,n)=>{p({title:"批量设置到期时间",area:48,compData:{rowData:t.value,config:n},component:()=>g(()=>import("./index394.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),showFooter:!0,onCancel:()=>s&&s()})}},{label:"设置PHP版本",value:"setPhpSite",event:async(e,a,t,c,s,n)=>{w.value=n,p({title:"批量设置PHP版本",area:42,compData:t.value,component:()=>g(()=>import("./index285.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),onCancel:()=>s&&s(),showFooter:!0})}},{label:"防跨站",value:"antiCrossingStation",event:async(e,a,t,c,s,n)=>{A({title:"批量设置防跨站",content:"批量开启后,可防止黑客通过其他网站目录进行入侵攻击,是否继续操作?",type:"check",check:{content:"防跨站攻击(open_basedir)",value:!0,onConfirm:async o=>{let r=[];t.value.forEach(m=>{var _;((_=m==null?void 0:m.project_config)==null?void 0:_.type)==="PHPMOD"&&r.push({name:m.name,msg:"异步项目不支持",status:!1})});const i=t.value.filter(m=>{var _;return((_=m==null?void 0:m.project_config)==null?void 0:_.type)!=="PHPMOD"}),{enable:u,exclude:y}=n,v=S(i,y,u,{params:{project_type:"PHP",stat:o?"open":"close"}});await P({request:se(v),success:m=>{const{data:_}=B(m.data);s&&s(),me({title:"批量设置防跨站",resultData:r.concat(_),resultTitle:"设置防跨站"})}})}}})}},{label:"防盗链",value:"hotLinkProtect",event:async(e,a,t,c,s,n)=>{p({title:"批量设置防盗链",area:50,compData:{selectedList:t.value,config:n},component:()=>g(()=>import("./index294.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),showFooter:!0,onCancel:()=>s&&s()})}},{label:"流量限制",value:"limitFlowSite",event:async(e,a,t,c,s,n)=>{H.value=t.value,w.value=n,p({title:"批量设置流量限制",area:44,compData:{selectedList:t.value,config:n},component:()=>g(()=>import("./index189.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),showFooter:!0,onCancel:()=>{s&&s(),H.value=[]}})}},pe(),{label:"部署伪静态",value:"setPseudoStatic",event:async(e,a,t,c,s,n)=>{w.value=n,p({title:"批量部署伪静态",area:72,compData:t.value,component:()=>g(()=>import("./index286.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),showFooter:!0,onCancel:()=>s&&s()})}},ge({callback:()=>{},classList:ye}),{label:"复制网站域名",value:"copySiteDomain",event:async(e,a,t,c,s,n)=>{await A({title:"批量复制网站域名",content:"批量复制网站所有域名,是否继续操作?"});const{enable:o,exclude:r}=n,i=S(t.value,r,o,{params:{project_type:"PHP"}});P({loading:"正在复制网站域名,请稍后...",request:ne(i),success:u=>{s&&s(),W({value:u.data.data.join("\n")})}})}},{label:"删除站点",value:"delete",event:async(e,a,t,c,s,n)=>{w.value=n,Ie(t.value,s)}}],Be=()=>{p({title:"添加站点-支持批量建站",area:80,component:()=>g(()=>import("./index395.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),showFooter:!0})},$e=e=>{p({isAsync:!0,title:"网站备份数据【"+e.name+"】",area:90,component:()=>g(()=>import("./index396.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:e})},be=(e,a="")=>{var c;const t=((c=e==null?void 0:e.project_config)==null?void 0:c.type)==="PHPMOD";if(he(e,a),t&&O.value.webserver!=="nginx")return D.error("当前为动态项目仅支持nginx服务器使用");p({title:"站点修改[".concat(e.rname,"] -- 添加时间[").concat(e.addtime,"]").concat(t?' -- <code class="tag">异步项目</code>':""),area:[86,72],component:()=>t?g(()=>import("./phpasync-setting.js?v=1777008528"),__vite__mapDeps([]),import.meta.url):g(()=>import("./index257.js?v=1777008528"),__vite__mapDeps([]),import.meta.url)})},Pe=e=>{switch(e){case"monitor":return 47;case"bt_waf":return 48;case"iconWaf":return 49}},ze=async(e,a)=>{if(a==="monitor-setting"&&(a="monitor"),a==="monitor"){if(!await Le(e,!1))return;K("total_website",e.name)}const t=O.value.web.type==="nginx"?"btwaf":"btwaf_httpd",c=Pe(a);a!=="monitor"&&(a=t),await ce({source:c,name:a,callback:s=>{if(s&&a!=="monitor"){const n=setInterval(()=>{var r;const o=s.document.getElementsByClassName("layui-layer-page")[0];if(s.site_waf_config&&o){clearInterval(n),o&&(o.style.display="none"),s.site_waf_config(e.name);const i=s.document.getElementsByClassName("layui-layer-page")[1];i&&((r=i.querySelector(".layui-layer-close"))==null||r.addEventListener("click",()=>{var u;(u=o.querySelector(".layui-layer-close"))==null||u.click()}))}},50)}}})},De=e=>{p({isAsync:!0,title:"流量数据",area:50,component:()=>g(()=>import("./index303.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:e,showFooter:!1})},Je=()=>{p({isAsync:!0,title:"网站安全扫描",area:[75,65],component:()=>g(()=>import("./index397.js?v=1777008528"),__vite__mapDeps([]),import.meta.url)})},we=()=>{p({isAsync:!0,title:"漏洞扫描",area:[80,71],component:()=>g(()=>import("./index235.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:{isSiteModule:!0}})},Ee=f(!1),G={title:"网站监控报表 --功能介绍",imgSrc:"/soft_ico/ico-total.png",ps:"快速浏览不同时间段的流量数据,发现高峰和趋势,助您迅速优化网站!",source:142,desc:["分析近期攻击","快速分析流量状况","多时段切换","排查趋势变化"],tabImgs:["https://www.bt.cn/Public/new/plugin/total/siteTraffic/traffic.png"]},Se=e=>{p({title:"插件预览",area:66,component:ie({name:"IntroduceComponent",setup(){return()=>k("div",{class:"p-[20px] pb-[24px]"},[k(fe,{data:G},null)])}}),showFooter:!1})},Le=async(e,a=!0)=>{try{const{data:t}=await F({sName:"monitor"});return t.endtime<0?e.hasOwnProperty("container_id")?(Se(G),!1):(Ee.value=!0,!1):t.setup?(a&&De(e),!0):(await N({name:t==null?void 0:t.name,type:"i",pluginInfo:t}),!1)}catch(t){}},Ge=async e=>{var i,u;const a=((i=e==null?void 0:e.project_config)==null?void 0:i.type)==="PHPMOD",t=Number(e.status),c=t?"stop":"start";if(a&&((u=e==null?void 0:e.project_config)==null?void 0:u.dependence)===1&&O.value.webserver!=="nginx")return D.error("当前仅支持nginx服务器使用");const s=new Date().setHours(0,0,0,0);if(e.edate!=="0000-00-00"&&new Date(e.edate).getTime()/1e3<s/1e3)return D.error("项目已过期,请设置站点到期时间后再操作");await A({title:"提示",content:t?"停用站点【".concat(e.name,"】后,用户访问会显示当前网站停用后的提示页,是否继续操作?"):"启动站点【".concat(e.name,"】后,用户可以正常访问网站内容,是否继续操作?"),icon:"warning-filled"});const{changeStatusEvent:o}=C(),r=await o({row:e,action:c},{isAsync:a,status:t});return r.status&&(J.value=!0),r},Qe=f([{name:"漏洞扫描",callback:we},{name:"网站安全扫描",callback:()=>{b(h.value[0],"siteSecurity")}},{name:"网站拨测告警",callback:()=>{b(h.value[0],"siteAlarm")}},{name:"日志安全分析",callback:()=>{b({...h.value[0],tabName:"safe"},"siteLogs")}},{name:"网站防篡改",callback:()=>{b(h.value[0],"antiTamper")}},{name:"网站容量限制",callback:()=>{var e,a;if(h.value.length&&((a=(e=h.value[0])==null?void 0:e.project_config)==null?void 0:a.type)==="PHPMOD")return D.error("异步项目不支持容量限制");b({...h.value[0],tabName:"flowQuota"},"directory")}}]),b=(e,a)=>{if(!h.value.length)return D.msg({message:"暂无网站,请添加网站后使用",type:"warning"});be(e,a)},Ze=(e="setDefaultPage")=>p({isAsync:!0,title:"高级设置",area:[96,62],component:()=>g(()=>import("./index304.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:e,showFooter:!1}),Ke=async()=>{try{const{data:e}=await te();if(e.hasOwnProperty("status")&&!e.status)return;const{scanData:a}=z();a.value={loophole_num:(e==null?void 0:e.loophole_num)||0,web_scaning_times:(e==null?void 0:e.web_scaning_times)||0,time:(e==null?void 0:e.time)||0,site_num:(e==null?void 0:e.site_num)||0}}catch(e){}},Ie=(e,a)=>{const t=Array.isArray(e);p({title:t?"批量删除站点":"删除站点-【".concat(e.name,"】"),component:()=>g(()=>import("./index305.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),area:"auto",compData:e,onCancel:()=>{a&&a()}})},Ue=E({project_jar:[l({message:"请输入项目jar路径"})],project_name:[l({message:"请输入项目名称"})],project_file:[{required:!0,message:"请输入项目启动文件",trigger:["blur","change"]}],port:[l({message:"请输入端口号",trigger:"blur"}),U()],project_jdk:[l({message:"请输入项目JDK"})],project_cmd:[l({message:"请输入项目执行命令"})],php_version:[l({message:"请选择PHP版本",trigger:"change"})],project_path:[l({message:"请输入项目路径"})],domain:[l({message:"请输入项目域名"})],tomcat_version:[l({message:"请选择tomcat版本",trigger:"change"})],project_script:[l({message:"请选择项目启动脚本"})],project_cwd:[l({message:"请输入项目启动目录"})],userCmd:[l({message:"请输入命令",trigger:["blur","input"]})],config_body:[{required:!0,message:"请输入配置内容",trigger:["blur","input"]}],cluster:[{required:!0,message:"请输入负载实例数量",trigger:["blur","change"]}],max_memory_limit:[{required:!0,message:"请输入内存上限",trigger:["blur","change"]}],project_exe:[l({message:"请选择项目可执行文件"})],rfile:[l({message:"请选择项目运行文件"})],run_user:[{required:!0,message:"请选择运行用户",trigger:"change"}],pjname:[l({message:"请输入项目名称"})],path:[l({message:"请选择路径"})],nodejs_version:[{required:!0,message:"请选择Node版本",trigger:["blur","change"]}],dotnet_version:[{required:!0,message:"请选择Net版本",trigger:["blur","change"]}],webname:[l({message:"请输入域名",trigger:"blur"}),x()],processes:[l({message:"请输入进程数"})],threads:[l({message:"请输入线程数"})],ftp_username:[{validator:(e,a,t)=>{a.length===0?t(new Error("FTP用户名不能为空!")):/^[a-zA-Z0-9_]+$/g.test(a)?a.length<=3?t(new Error("FTP用户名长度错误,需要大于3个字符!")):t():t(new Error("FTP用户名只能包含字母、数字和下划线!"))},trigger:["blur","change"]}],datauser:[{trigger:["blur","change"],validator:(e,a,t)=>{a.length===0?t(new Error("名称不能为空!")):/^[a-zA-Z0-9_]+$/g.test(a)?a.length<=3?t(new Error("名称长度错误,不能少于3个字符!")):a.length>16?t(new Error("名称长度错误,不能大于16个字符!")):t():t(new Error("名称只能包含字母、数字和下划线!"))}}],site_path:[{required:!0,message:"请输入项目目录",trigger:["blur","change"]},{valitor:(e,a,t)=>{a?t():t(new Error("请输入项目目录"))},trigger:["blur","input","change"]}],domains:[{required:!0,message:"请输入域名",trigger:"blur"},x()]}),Ae=e=>{try{const a=localStorage.getItem(e);if(!a)return[];const t=JSON.parse(a);return Array.isArray(t)?t:[]}catch(a){return localStorage.removeItem(e),[]}},We=async()=>{try{return await P({request:ae(),data:{"data.ssh_key":[Object,"ssh_key"],"data.webhook_install":[Boolean,"webhook_install"]}})}catch(e){}},Ye=async(e,a)=>{const{data:t}=await F({sName:e});N({name:t.name,type:"i",softData:{callBack:()=>{a()}},pluginInfo:t})};export{C as S,we as a,Je as b,Ae as c,ze as d,be as e,$e as f,Me as g,Ke as h,Ee as i,G as j,ye as k,Ge as l,Ie as m,Ne as n,Be as o,Ze as p,Le as q,Qe as r,Ue as s,h as t,de as u,Ye as v,We as w,I as x,qe as y};
function __vite__mapDeps(indexes) {
if (!__vite__mapDeps.viteFileDeps) {
__vite__mapDeps.viteFileDeps = []
}
return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}