File: /www/server/panel/BTPanel/static/js/index83.js
import{k as Y,I as ne,e as M,_ as E,a2 as j,f as re,w as le,c as ie,dc as ce,da as ue,i as pe,G as me,cU as de}from"./utils-lib.js?v=1777008528";import{_ as _e}from"./index118.js?v=1777008528";import{g as fe,r as U,aw as ge,c as ve,aI as ye,e as c,x as I,w as be,o as je,n as ke,j as w,k as J,p as n,C as H,v as g,q as d,y as Ce,Q as he,F as Ee,B as Se,L as xe,am as Ne,an as we}from"./base-lib.js?v=1777008528";import{_ as Pe}from"./index175.js?v=1777008528";import{o as Ve,b as Be,c as Oe,v as Te,a as z,e as De,F as Le,J as Ae,E as Ie,g as Re}from"./index3.js?v=1777008528";import{u as Fe,f as qe,s as Me,b as Ue,c as $e,d as G,g as Je,a as K,i as He,j as ze,k as Ge}from"./useController13.js?v=1777008528";import{u as Ke,S as F}from"./useStore2.js?v=1777008528";import{u as Qe}from"./index151.js?v=1777008528";import{getNodeVersionList as We,setDefaultEnv as Xe,getNodeJsEnvironment as Ye,delNodeProject as Ze,getPackageManagers as et,modifyNodeProject as tt,batchDelSite as at,batchStatus as R}from"./site.js?v=1777008528";import{i as st}from"./useController8.js?v=1777008528";const Z=re(),{siteInfo:ee,isRefreshList:$,activeType:Q}=Ke(),{setSiteInfo:ot}=F(),Ct=fe(()=>!!ee.value),h=U("0"),k=U([]),q=ge("_node_mask",!1),nt=async()=>{var a;try{const s=await We();if(k.value=[],!s.status){q.value=!0;return}q.value=!1,(a=s.data)==null||a.forEach(l=>{l.setup&&k.value.push({label:l.version,value:l.version}),l.is_default===1&&(h.value=l.version)}),k.value.unshift({label:"未设置",value:"0"})}catch(s){}},rt=async()=>{var s;const a=await Y({loading:"正在设置,请稍后...",request:Xe({version:h.value})});Z.request({status:(s=a.data)==null?void 0:s.status,msg:a.data.data||a.data.error_msg})},b=async()=>{try{const{data:a}=await ne({sName:"nodejs"});await Ve({name:"nodejs",softData:a})}catch(a){}},W=()=>{ee.value=null,M({title:"添加Node项目",area:80,component:()=>E(()=>import("./index343.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),showFooter:!0})},lt=()=>{M({title:"PM2监控",area:120,showFooter:!1,component:()=>E(()=>import("./index405.js?v=1777008528"),__vite__mapDeps([]),import.meta.url)})},it=async a=>{await le({type:"default",title:"删除项目-".concat(a.name),content:"风险操作,此操作不可逆,删除【".concat(a.name,"】项目后您将无法管理该项目,是否继续操作?"),input:{content:"删除项目"}});try{let s=a.project_config,l={project_name:s.project_name,project_type:s.project_type||"nodejs"};s.pm2_name&&(l.pm2_name=s.pm2_name);const _=await Ze(l);Z.request(_),$.value=!0}catch(s){}},P=(a,s)=>{ot(a,s),M({isAsync:!0,title:"Node项目管理["+a.name+"] -- 添加时间["+a.addtime+"]",area:[87,71],component:()=>E(()=>import("./index406.js?v=1777008528"),__vite__mapDeps([]),import.meta.url)})},ht=async a=>{try{const{data:s}=await et({version:a});return s.package_managers}catch(s){}},X=U({nodejs_versions:[],package_managers:[],user_list:[],maximum_memory:0}),Et=async()=>{var a,s,l,_;try{const o=await Ye();return Object.assign(X.value,{...o==null?void 0:o.data,maximum_memory:((a=o==null?void 0:o.data)==null?void 0:a.maximum_memory)||0,nodejs_versions:j((s=o==null?void 0:o.data)==null?void 0:s.nodejs_versions,"array",[]),user_list:j((l=o==null?void 0:o.data)==null?void 0:l.user_list,"array",[]),package_managers:j((_=o==null?void 0:o.data)==null?void 0:_.package_managers,"array",[])}),o.data}catch(o){return X.value}},St=async a=>{a&&(await Y({loading:"正在保存修改,请稍后...",request:tt(a),message:!0}),$.value=!0)},V=async(a,s,l,_,o,B)=>{const{label:C,value:v}=_,{enable:S,exclude:x}=B,O=new Map([["start","批量启动选中项目后,项目将正常访问"],["stop","批量停用选中的项目后,项目将会停止运行"],["restart","批量重启选中的项目后,项目将会重新启动"],["delete","批量删除选中的项目后,项目将无法恢复"]]),T=async N=>{const f=new Map([["start",R],["stop",R],["restart",R]]).get(v);switch(v){case"start":case"stop":case"restart":if(f){const i=l.value.map(u=>u.project_config.pm2_name?{id:u.id,project_name:u.name,project_type:u.project_config.project_type||"nodejs",pm2_name:u.project_config.pm2_name}:{id:u.id,project_name:u.name,project_type:u.project_config.project_type||"nodejs"}),A=z(!1,x,S,{params:{site_list:JSON.stringify(i),status:v,project_type:"NODE"}});return await f(A,Q.value)}case"delete":const D=l.value.map(i=>i.project_config.pm2_name?{id:i.id,name:i.name,project_type:i.project_config.project_type||"nodejs",pm2_name:i.project_config.pm2_name}:{id:i.id,name:i.name,project_type:i.project_config.project_type||"nodejs"}),L=z(!1,x,S,{params:{project_type:Q.value.toUpperCase(),site_list:JSON.stringify(D)}});return await at(L)}};await a({title:"批量".concat(C),content:"".concat(O.get(v),",是否继续操作?"),column:[{label:"项目名称",prop:"name"},Be()],onConfirm:async()=>{const N=await T();$.value=!0,o&&o();let{data:y}=Oe(N.data);y=y.map(f=>({...f,name:f.name||f.project_name})),Te(y,{title:"".concat(C,"网站")})}})},ct={class:"content-mask"},ut={class:"flex items-center mx-12px"},pt=ve({__name:"index",setup(a){const{mainHeight:s,enterpriseRec:l}=ie(),{getSiteList:_,setSiteInfo:o}=F(),{activeType:B,isRefreshList:C,siteInfo:v,searchWidth:S}=ye(F()),{BtOperation:x}=ce({options:[{type:"button",label:"添加项目",active:!0,onClick:()=>{var t;if(!((t=k.value)!=null&&t.length))return b();W()}},{type:"button",label:"Node版本管理器",onClick:b},{type:"button",label:"PM2监控",onClick:lt},{type:"button",label:"网站统计总览",onClick:()=>K("all")}]}),O=Qe({key:"type_id",name:"Node分类",options:()=>[{label:"全部分类",value:"all"}],event:Je,ignore:["0"],field:"type_name"}),T=de([{label:"启动项目",value:"start",event:V},{label:"停用项目",value:"stop",event:V},{label:"重启项目",value:"restart",event:V},He(),ze({classList:Ge}),{label:"删除项目",value:"delete",event:V}]),{BtTable:N,BtPage:y,BtRefresh:f,BtSearch:D,BtColumn:L,BtBatch:i,BtTableCategory:A,refresh:u,config:te}=ue({request:t=>{const{type_id:e,...r}=t;return _({data:JSON.stringify({...r,type_id:pe(e)||e==="all"?"":e})})},columns:[De({type:"page",key:"id"}),Fe({onClick:t=>{P(t)}}),qe({type:B.value,onClick:(t,e)=>{if(e==="setting"){P(t,"state");return}const r=t.run?"stop":"start";Me(t,e==="restart"?e:r)}}),{label:"PID",isCustom:!0,render:t=>{const e=j(t.load_info,"object",{});if(Object.keys(e).length==0)return"--";let r=[];for(var p in t.load_info)t.load_info.hasOwnProperty(p)&&r.push(p);return r.join(",")}},{label:"CPU",isCustom:!1,render:t=>{const e=j(t.load_info,"object",{});if(Object.keys(e).length==0)return"--";let r=0;for(var p in t.load_info)r+=t.load_info[p].cpu_percent;return r.toFixed(2)+"%"}},{label:"内存",isCustom:!1,render:t=>{const e=j(t.load_info,"object",{});if(Object.keys(e).length==0)return"--";let r=0;for(var p in t.load_info)r+=t.load_info[p].memory_used;return me(r)}},Le(),...l.value?[Ae({storageKey:"/site/node_day_metric",onClick:K})]:[],Ue(),Ie({table:"sites",width:200}),{label:"Node版本",isCustom:!0,render:t=>t.project_config.nodejs_version||"--"},$e({onClick:t=>{st(()=>P(t,"ssl"))}}),Re([{title:"设置",onClick:t=>{P(t)}},{title:"删除",onClick:t=>{it(t)}}])],extension:[O,T],empty:()=>c("span",null,[I("您的列表为空,您可以"),c("span",{class:"bt-link",onClick:W},[I("添加一个项目")])])});return be(C,async t=>{var e;if(t){if(await u(),(e=v.value)!=null&&e.name){const r=te.data.find(p=>p.name===v.value.name);r&&o(r)}C.value=!1}}),je(()=>{nt(),ke(()=>{E(()=>import("./index343.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),E(()=>import("./index406.js?v=1777008528"),__vite__mapDeps([]),import.meta.url)})}),(t,e)=>{const r=Pe,p=Ne,ae=we,se=_e;return w(),J("div",null,[n(q)?(w(),H(r,{key:0},{content:g(()=>[d("div",ct,[e[4]||(e[4]=d("i",{class:"svgtofont-el-warning text-warning !text-subtitleLarge mr-4px"},null,-1)),e[5]||(e[5]=I(" 未安装Node版本管理器,",-1)),d("span",{class:"bt-link",onClick:e[0]||(e[0]=(...m)=>n(b)&&n(b)(...m))},"点击安装")])]),_:1})):Ce("",!0),c(se,null,{"header-left":g(()=>[c(n(x)),d("div",ut,[e[7]||(e[7]=d("span",{class:"mr-4px"},"命令行版本",-1)),c(ae,{class:"!w-[10rem]",placeholder:"未设置",modelValue:n(h),"onUpdate:modelValue":e[2]||(e[2]=m=>he(h)?h.value=m:null),options:n(k),onChange:n(rt)},{footer:g(()=>[d("div",{class:"flex items-center justify-center py-[.8rem] cursor-pointer",onClick:e[1]||(e[1]=(...m)=>n(b)&&n(b)(...m))},[...e[6]||(e[6]=[d("span",{class:"bt-link"},"前往管理",-1)])])]),default:g(()=>[(w(!0),J(Ee,null,Se(n(k),(m,oe)=>(w(),H(p,{key:oe,label:m.label,value:m.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","options","onChange"])]),d("div",{class:"flex items-center ml-1rem",onClick:e[3]||(e[3]=(...m)=>n(G)&&n(G)(...m))},[...e[8]||(e[8]=[d("i",{class:"svgtofont-desired text-medium"},null,-1),d("span",{class:"bt-link ml-1"},"需求反馈",-1)])])]),"header-right":g(()=>[c(n(A),{class:"!w-[140px] mr-[10px]"}),c(n(D),{class:xe(["mr-[10px]","!w-[".concat(n(S),"px]")]),placeholder:"请输入项目名称或备注"},null,8,["class"]),c(n(f),{class:"mr-[10px]"}),c(n(L))]),content:g(()=>[c(n(N))]),"footer-left":g(()=>[c(n(i))]),"footer-right":g(()=>[c(n(y))]),_:1})])}}}),xt=Object.freeze(Object.defineProperty({__proto__:null,default:pt},Symbol.toStringTag,{value:"Module"}));export{xt as a,Et as g,Ct as i,X as n,b as o,St as s,ht as u};
function __vite__mapDeps(indexes) {
if (!__vite__mapDeps.viteFileDeps) {
__vite__mapDeps.viteFileDeps = []
}
return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}