File: /www/server/panel/BTPanel/static/js/index176.js
import{cN as C,X as Pe,e as Se,_ as Te,w as Ue,b as $e,a as Fe,cO as Je,c7 as ge,K as et,f as tt,k as at,Y as ot,cW as lt,db as rt,cP as nt,M as st}from"./utils-lib.js?v=1777008528";import{c as be,H as de,r as x,g as G,aC as Be,w as Me,o as we,j as g,k as A,e as l,v as r,q as _,p as a,C as E,x as j,y as M,F as ne,B as me,Q as se,J as I,K as q,a1 as Oe,s as ce,z as Re,ad as ye,am as Le,an as Ne,aW as it,U as dt,ak as ut,aj as pt,aB as Ae,ab as Ie,a0 as mt,I as ct,M as _t}from"./base-lib.js?v=1777008528";import{_ as vt}from"./index.vue_vue_type_script_setup_true_lang8.js?v=1777008528";import{_ as ft}from"./index116.js?v=1777008528";import{addLocalJdk as jt,getCommand as gt,getSpringbootPort as bt,jarRestartJavaProject as wt,checkJavaParams as yt,modifyJavaProject as xt,addJavaProject as Vt,getJavaInfo as kt,getTomcat as ht}from"./site.js?v=1777008528";import{w as ie}from"./index3.js?v=1777008528";import{u as xe,S as Dt}from"./useStore2.js?v=1777008528";import{i as m,b as Xe,e as Ct}from"./useController10.js?v=1777008528";import{l as ze}from"./useController13.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index119.js?v=1777008528";const Et={class:"flex items-center"},St={class:"flex items-center justify-between"},Tt={class:"flex items-center"},Pt={class:"flex items-center custom-refresh-select"},Ut={class:"el-input-group__append !h-3rem !flex items-center"},$t={class:"flex items-center"},Ft={class:"flex items-center"},Jt={class:"flex items-center"},Bt={class:"flex items-center"},Mt={class:"flex items-center"},Ot=["title"],Rt={key:0,class:"mb-[18px] ml-[122px] block text-warning"},Lt={class:"py-[1.6rem]"},Nt=be({__name:"spring-boot",props:{projectData:{default:{}}},setup(X,{expose:Z}){var he,De,Ce;const w=X,{siteInfo:P,isRefreshList:O}=xe(),s=de(w.projectData),h=tt(),e=x({project_path:"/www/wwwroot",project_type:3,project_jar:"",project_name:"",port:"",project_jdk:((he=w.projectData.jdk_info[0])==null?void 0:he.path)||"",project_cmd:"",nohup_log:!0,run_user:"www",auth:!1,project_ps:"",domains:"",jmx_port:"",debug:!1,is_separation:!1,release_firewall:!1,host_url:"http://127.0.0.1",env:"",envPath:"/www",by_process:0,daemon_status:!1,proxy_dir:"/",target_dir:"/",static_dir:""}),R=G(()=>{if(e.value.domains){const o=e.value.domains.split("\n")[0].trim();return"http://".concat(o)}return"http://域名"}),f=x(0),L=x(!1),T=x(""),z=x(!1),y=x(),V=x(!1),D=de({project_jar:((Ce=(De=P.value)==null?void 0:De.project_config)==null?void 0:Ce.project_jar)||""}),H=de({project_jar:[C({message:"请输入项目jar路径"})]}),U=Be("getSystemInfoEvent",o=>{});x("file"),x([{label:".jar",value:"file"},{label:".war",value:"war"}]);const $=G(()=>e.value.proxy_dir==="/"?"当前未启用前后端分离,nginx仅代理本地java服务":e.value.proxy_dir.startsWith("/")?"使用".concat(R.value).concat(e.value.proxy_dir,"访问后端接口,以实现前后端分离"):"");Me(()=>w.projectData.jdk_info.length,()=>{var o;e&&!m.value&&(e.value.project_jdk=(o=w.projectData.jdk_info[0])==null?void 0:o.path,e.value.project_jdk&&e.value.project_cmd&&S(e.value.project_jdk))},{immediate:!0,deep:!0});const{BtForm:Q,validate:K,ref:Y}=Pe({data:e.value,options:o=>G(()=>[{type:"slots",key:"custom",rules:{project_jdk:[C({message:"请选择项目JDK"})],project_path:[C({message:"请输入项目路径"})],project_jar:[C({message:"请输入项目jar路径"})],project_name:[C({message:"请输入项目名称"})],project_cmd:[C({message:"请输入项目执行命令"})],proxy_dir:[{validator:(t,d,p)=>{if(d&&e.value.static_dir&&e.value.proxy_dir==="/")return p(new Error("前端资源需使用根路由【/】,请修改合理的后端路由,用于实现前后端分离,如:/api/")),!1;p()},trigger:["blur","change"]}],static_dir:[{validator:(t,d,p)=>{var c;d&&((c=Y.value)==null||c.validateField("proxy_dir")),p()},trigger:["blur","change"]}]}}])}),u=()=>{Se({isAsync:!0,title:"接管已启动项目",area:76,component:()=>Te(()=>import("./take-over-started-project.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:{setProject:F}})},i=o=>{e.value.project_ps=o},S=o=>{var t;if(e.value.project_jdk=o,m.value)T.value.indexOf("/bin/java")===-1&&(T.value=T.value+"/bin/java"),e.value.project_cmd=(t=e.value.project_cmd)==null?void 0:t.replace(T.value,o),T.value=o;else if(e.value.project_cmd){let d=e.value.project_cmd.split("-Xmx1024M -Xms256M");e.value.project_cmd=e.value.project_jdk+" -jar -Xmx1024M -Xms256M "+d[1]}else e.value.project_cmd=e.value.project_jdk+" -jar -Xmx1024M -Xms256M "+e.value.project_jar},W=G(()=>m.value&&e.value.port===""?"未设置":"选择项目文件,自动获取端口"),F=async o=>{if(!o.java_bin&&!o.jar_path)return h.error("未能解析到项目信息");if(e.value.project_path=o.jar_path,e.value.project_jar=o.jar_path,e.value.port=o.port,e.value.project_cmd=o.cmdline,e.value.project_name=o.project_name,e.value.run_user=o.user,!s.jdk_info.some(t=>t.path===o.java_bin)&&o.java_bin!==""){const t=o.java_bin.split("/");s.jdk_info.push({name:t[t.length-3],path:o.java_bin}),await jt({data:JSON.stringify({jdk:o.java_bin})})}e.value.project_jdk=o.java_bin||"",e.value.by_process=o.pid,ee(o.env)},k=o=>{let t=o.split("\n").filter(p=>p!==""),d=[];return t.forEach(p=>{let c=p.split("=");d.push({k:c[0],v:c[1]})}),d},ee=o=>{if(e&&o.length!==0)switch(f.value){case 0:e.value.env=o.map(c=>c.k+"="+c.v).join("\n"),f.value=1;break;case 1:let t=k(e.value.env);const d=new Map,p=[...t,...o].reduce((c,J)=>{const v=J.k;return d.has(v)||(d.set(v,!0),c.push(J)),c},[]);e.value.env=p==null?void 0:p.map(c=>c.k+"="+c.v).join("\n");break}},ue=()=>{ie({type:"file",path:e.value.envPath,change:o=>{e.value.envPath=o}})},_e=()=>{if(!e||m.value)return;let o=e.value.project_cmd.match(/--server.port=(\d+)/);o&&(e.value.port=o[1])},pe=async o=>{if(e&&e.value.project_jar!=="/www/wwwroot")try{let t={type:o,project_name:e.value.project_name,project_cmd:e.value.project_cmd,project_jar:e.value.project_jar,project_jdk:e.value.project_jdk,port:e.value.port};const{data:d}=await gt(t);if(!d.status)return h.request(d);e.value.project_cmd=d.data,d.data.match(/--server.port=(\d+)/)?d.data.match(/--server.port=(\d+)/)[1]!==e.value.port&&(e.value.project_cmd=e.value.project_cmd.replace(/--server.port=(\d+)/,"--server.port="+e.value.port)):e.value.project_cmd=e.value.project_cmd+" --server.port="+e.value.port,e.value.host_url="http://127.0.0.1:".concat(e.value.port);let p="Dcom.sun.management.jmxremote.port";e.value.jmx_port=d.data.substr(d.data.indexOf(p)+p.length+1,4)}catch(t){}},ve=()=>{e&&ie({type:"file",path:e.value.project_jar,change:async o=>{var t;if(m.value)e.value.project_cmd&&(e.value.project_cmd=(t=e.value.project_cmd)==null?void 0:t.replace(e.value.project_jar,o));else{let d=o.substring(o.lastIndexOf("/")+1).split(".")[0];e.value.project_name=d,e.value.project_ps=d,e.value.project_cmd=e.value.project_jdk+" -jar -Xmx1024M -Xms256M "+o;const{data:p}=await bt({jar_path:o});p.status&&(e.value.port=p.data.port)}e.value.project_jar=o,e.value.project_path=o}})},b=()=>{e&&ie({type:"dir",path:e.value.static_dir,change:o=>{e.value.static_dir=o}})},fe=()=>{e&&ie({type:"file",path:D.project_jar,change:o=>{D.project_jar=o}})},Ke=async()=>{await y.value.validate();const{name:o}=P.value;await Ue({title:"更新项目",content:"将要重启项目【".concat(o,"】,是否继续?")});const t={project_name:o,project_jar:D.project_jar};try{const d=await wt(t);h.msg({dangerouslyUseHTMLString:!0,message:d.msg,type:d.status?"success":"error",duration:d.status?2e3:0,showClose:!d.status}),d.status&&(O.value=!0,L.value=!1)}catch(d){}};let te=null;const qe=async o=>{try{let t=e.value.env;f.value===1&&(t=k(t));let d={project_jar:e.value.project_jar,project_cmd:e.value.project_cmd,by_process:e.value.by_process,env_file:f.value===2?e.value.envPath:"",env_list:JSON.stringify(f.value===1?t:[])};const p=await yt(d);if(p.status&&p.data.length>0)te=await Se({isAsync:!0,title:"项目帮助",area:76,component:()=>Te(()=>import("./springboot-check-list.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:{data:p.data,params:d,confirmEvent:o},btn:"继续创建",onConfirm:o,cancel:()=>{te=null}});else return o()}catch(t){}},Ve=async(o,t,d)=>{await t();let p=o.env;f.value===1&&(p=k(p));let c={project_type:0,domains:o.domains?o.domains.split("\n"):[],project_jar:o.project_jar,project_jdk:o.project_jdk,project_name:o.project_name,project_cmd:o.project_cmd,project_ps:o.project_ps,run_user:o.run_user,env_file:f.value===2?o.envPath:"",env_list:f.value===1?p:[],ps:o.project_ps,port:o.port,project_path:o.project_path,proxy_dir:o.proxy_dir,target_dir:o.target_dir,static_dir:o.static_dir,daemon_status:o.daemon_status};m.value?(c.daemon_status=o.daemon_status,c.project_id=P.value.id):(c.by_process=o.by_process,c.release_firewall=o.release_firewall,o.domains.includes("[")&&await ze());const J=m.value?xt:Vt,v=await at({loading:"正在操作,请稍后...",request:J({data:JSON.stringify(c)}),message:!0});return v.status&&(O.value=!0,m.value||d()),v.status},ke=async o=>(await K(),m.value?await Ve(e.value,K,o):qe(async()=>{if(te){const t=await te;t==null||t.unmount(),te=null}return await Ve(e.value,K,o)})),He=o=>{try{const t=/--server\.port=(\d+)/,d=o.match(t);return d?d[1]:!1}catch(t){}};return we(()=>{if(m.value){const{ps:o,project_config:t}=P.value,{project_jar:d,project_jdk:p,run_user:c,project_cmd:J,jmx_status:v,java_type:ae,watch_file:oe,env_file:le,env_list:B}=t;T.value=p,f.value=B!=null&&B.length?1:le?2:0;const re=ae==="springboot"?He(J)||t.port:!1;Object.assign(e.value,{project_ps:o,project_jar:d,project_jdk:(p==null?void 0:p.indexOf("/bin/java"))===-1?p+"/bin/java":p,project_name:t.project_name,project_cmd:J,run_user:c,env_file:le,env_list:B,proxy_path:t.proxy_path,watch_file:oe,domains:t.domains.join("\n"),daemon_status:t.daemon_status,envPath:le,env:B==null?void 0:B.map(N=>N.k+"="+N.v).join("\n"),port:re||"",project_path:t.project_jar,proxy_dir:t.proxy_dir,target_dir:t.target_dir,static_dir:t.static_dir})}}),Z({onConfirm:ke}),(o,t)=>{const d=$e,p=Fe,c=Je,J=Re,v=ye,ae=Le,oe=Ne,le=ge,B=it,re=dt,N=ut,Ee=pt,je=ft,We=Ae,Ge=vt,Qe=Ie,Ye=et;return g(),A("div",null,[l(a(Q),{class:"mt-2rem","label-width":"100px"},{custom:r(()=>[_("div",Et,[l(v,{label:"项目路径",prop:"project_path"},{default:r(()=>[l(c,{width:"30rem",modelValue:a(e).project_path,"onUpdate:modelValue":t[0]||(t[0]=n=>a(e).project_path=n)},{append:r(()=>[l(p,{onClick:ve},{default:r(()=>[l(d,{icon:"el-folder-opened",class:"cursor-pointer"})]),_:1})]),_:1},8,["modelValue"]),a(m)?M("",!0):(g(),E(J,{key:0,class:"ml-[12px]",type:"default",onClick:u},{default:r(()=>[...t[30]||(t[30]=[j("接管原项目",-1)])]),_:1}))]),_:1})]),l(v,{label:"项目名称",prop:"project_name"},{default:r(()=>[_("div",St,[l(c,{onChange:i,width:"32rem",modelValue:a(e).project_name,"onUpdate:modelValue":t[1]||(t[1]=n=>a(e).project_name=n),disabled:a(m),placeholder:"选择项目文件,自动获取名称"},null,8,["modelValue","disabled"])])]),_:1}),l(v,{label:"项目JDK",prop:"project_jdk"},{default:r(()=>[_("div",Tt,[_("div",Pt,[l(oe,{modelValue:a(e).project_jdk,"onUpdate:modelValue":t[2]||(t[2]=n=>a(e).project_jdk=n),onChange:S,class:"!w-[32rem]",disabled:!a(s).jdk_info},{default:r(()=>[(g(!0),A(ne,null,me(a(s).jdk_info,(n,Ze)=>(g(),E(ae,{key:Ze,value:n.path,label:n.name+"["+n.path+"]"},null,8,["value","label"]))),128))]),_:1},8,["modelValue","disabled"]),_("div",Ut,[l(p,{title:"刷新项目JDK",class:"!flex",onClick:t[3]||(t[3]=n=>a(U)("项目JDK"))},{default:r(()=>[l(d,{icon:"el-refresh",class:"!text-base"})]),_:1})])]),l(le,{class:"ml-8px",onClick:t[4]||(t[4]=n=>a(Xe)())},{default:r(()=>[...t[31]||(t[31]=[j("添加JDK信息",-1)])]),_:1})])]),_:1}),l(v,{label:"项目启动命令",prop:"project_cmd"},{default:r(()=>[l(c,{onBlur:_e,width:"40rem",type:"textarea",rows:4,resize:"none",modelValue:a(e).project_cmd,"onUpdate:modelValue":t[5]||(t[5]=n=>a(e).project_cmd=n),placeholder:"选择项目jar文件,自动获取项目执行命令"},null,8,["modelValue"])]),_:1}),a(m)?(g(),A(ne,{key:0},[l(v,{label:"启动用户"},{default:r(()=>[_("div",$t,[l(oe,{modelValue:a(e).run_user,"onUpdate:modelValue":t[6]||(t[6]=n=>a(e).run_user=n),class:"mr-8px !w-[16rem]"},{default:r(()=>[(g(!0),A(ne,null,me(a(s).userList,n=>(g(),E(ae,{key:n,value:n,label:n},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])])]),_:1}),l(v,{label:"项目端口",prop:"port"},{default:r(()=>[_("div",Ft,[l(c,{type:"number",onChange:t[7]||(t[7]=n=>pe(1)),width:"20rem",class:"mr-[1rem]",modelValue:a(e).port,"onUpdate:modelValue":t[8]||(t[8]=n=>a(e).port=n),placeholder:a(W)},null,8,["modelValue","placeholder"]),a(m)?M("",!0):(g(),E(re,{key:0,modelValue:a(e).release_firewall,"onUpdate:modelValue":t[9]||(t[9]=n=>a(e).release_firewall=n)},{default:r(()=>[t[33]||(t[33]=j(" 放行端口 ",-1)),l(B,{class:"item",effect:"dark",content:"选中将在防火墙安全组放行监听端口,放行后该项目可在外网访问",placement:"right"},{default:r(()=>[...t[32]||(t[32]=[_("i",{class:"svgtofont-el-question text-warning"},null,-1)])]),_:1})]),_:1},8,["modelValue"]))])]),_:1}),l(v,{label:"环境变量"},{default:r(()=>[l(Ee,{modelValue:a(f),"onUpdate:modelValue":t[10]||(t[10]=n=>se(f)?f.value=n:null)},{default:r(()=>[l(N,{label:0},{default:r(()=>[...t[34]||(t[34]=[j("无",-1)])]),_:1}),l(N,{label:1},{default:r(()=>[...t[35]||(t[35]=[j("指定变量",-1)])]),_:1}),l(N,{label:2},{default:r(()=>[...t[36]||(t[36]=[j("从文件加载",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),I(l(v,{label:" "},{default:r(()=>[I(l(c,{width:"40rem",type:"textarea",rows:4,resize:"none",modelValue:a(e).env,"onUpdate:modelValue":t[11]||(t[11]=n=>a(e).env=n),placeholder:"环境变量,1行1个,例如: JAVA_HOME=/usr/local/btjdk/jdk8"},null,8,["modelValue"]),[[q,a(f)===1]]),I(l(je,{width:"40rem",modelValue:a(e).envPath,"onUpdate:modelValue":t[12]||(t[12]=n=>a(e).envPath=n),placeholder:"请选择环境变量文件,如:项目路径/.xx.env",icon:"el-folder-opened",onIconClick:ue},null,8,["modelValue"]),[[q,a(f)===2]])]),_:1},512),[[q,a(f)!==0]]),l(v,{label:"项目备注"},{default:r(()=>[l(c,{width:"32rem",modelValue:a(e).project_ps,"onUpdate:modelValue":t[13]||(t[13]=n=>a(e).project_ps=n),placeholder:"输入项目备注,非必填"},null,8,["modelValue"])]),_:1})],64)):M("",!0),l(Ge,{isShowDivider:!a(m)},Oe({_:2},[a(m)?void 0:{name:"config",fn:r(()=>[l(v,{label:"启动用户"},{default:r(()=>[_("div",Jt,[l(oe,{modelValue:a(e).run_user,"onUpdate:modelValue":t[14]||(t[14]=n=>a(e).run_user=n),class:"mr-8px !w-[16rem]"},{default:r(()=>[(g(!0),A(ne,null,me(a(s).userList,n=>(g(),E(ae,{key:n,value:n,label:n},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])])]),_:1}),l(v,{label:"项目端口",prop:"port"},{default:r(()=>[_("div",Bt,[l(c,{type:"number",onChange:t[15]||(t[15]=n=>pe(1)),width:"20rem",class:"mr-[1rem]",modelValue:a(e).port,"onUpdate:modelValue":t[16]||(t[16]=n=>a(e).port=n),placeholder:a(W)},null,8,["modelValue","placeholder"]),a(m)?M("",!0):(g(),E(re,{key:0,modelValue:a(e).release_firewall,"onUpdate:modelValue":t[17]||(t[17]=n=>a(e).release_firewall=n)},{default:r(()=>[t[38]||(t[38]=j(" 放行端口 ",-1)),l(B,{class:"item",effect:"dark",content:"选中将在防火墙安全组放行监听端口,放行后该项目可在外网访问",placement:"right"},{default:r(()=>[...t[37]||(t[37]=[_("i",{class:"svgtofont-el-question text-warning"},null,-1)])]),_:1})]),_:1},8,["modelValue"]))])]),_:1}),l(v,{label:"环境变量"},{default:r(()=>[l(Ee,{modelValue:a(f),"onUpdate:modelValue":t[18]||(t[18]=n=>se(f)?f.value=n:null)},{default:r(()=>[l(N,{label:0},{default:r(()=>[...t[39]||(t[39]=[j("无",-1)])]),_:1}),l(N,{label:1},{default:r(()=>[...t[40]||(t[40]=[j("指定变量",-1)])]),_:1}),l(N,{label:2},{default:r(()=>[...t[41]||(t[41]=[j("从文件加载",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),I(l(v,{label:" "},{default:r(()=>[I(l(c,{width:"40rem",type:"textarea",rows:4,resize:"none",modelValue:a(e).env,"onUpdate:modelValue":t[19]||(t[19]=n=>a(e).env=n),placeholder:"环境变量,1行1个,例如: JAVA_HOME=/usr/local/btjdk/jdk8"},null,8,["modelValue"]),[[q,a(f)===1]]),I(l(je,{width:"40rem",modelValue:a(e).envPath,"onUpdate:modelValue":t[20]||(t[20]=n=>a(e).envPath=n),placeholder:"请选择环境变量文件,如:项目路径/.xx.env",icon:"el-folder-opened",onIconClick:ue},null,8,["modelValue"]),[[q,a(f)===2]])]),_:1},512),[[q,a(f)!==0]]),l(v,{label:"绑定域名"},{default:r(()=>[l(We,{placement:"top-start","popper-class":"green-tips-popover !p-0",title:"",width:"400",visible:a(z),"onUpdate:visible":t[23]||(t[23]=n=>se(z)?z.value=n:null),"trigger-keys":[],trigger:"focus"},{reference:r(()=>[l(c,{rows:5,resize:"none",width:"40rem",modelValue:a(e).domains,"onUpdate:modelValue":t[21]||(t[21]=n=>a(e).domains=n),type:"textarea",onFocus:t[22]||(t[22]=n=>z.value=!0),placeholder:"如需填写多个域名,请换行填写,每行一个域名,默认为80端口\nIP地址格式:192.168.1.199\n泛解析添加方法 *.domain.com\n如另加端口格式为 www.domain.com:88\nipv6格式:[2001:db8:85a3::8a2e:370:7334]:88"},null,8,["modelValue"])]),default:r(()=>[t[42]||(t[42]=_("div",{class:"!p-[12px] bg-primary text-white"},[j(" 如果需要绑定外网,请输入需要绑定的域名,该选项可为空"),_("br"),j("如需填写多个域名,请换行填写,每行一个域名,默认为80端口"),_("br"),j("泛解析添加方法 *.domain.com"),_("br"),j(" 如另加端口格式为 www.domain.com:88 "),_("br"),j(" ipv6格式:[2001:db8:85a3::8a2e:370:7334]:88 ")],-1))]),_:1},8,["visible"])]),_:1}),l(v,{label:"后端路由",prop:"proxy_dir"},{default:r(()=>[_("div",Mt,[l(c,{disabled:a(m),width:"40rem",modelValue:a(e).proxy_dir,"onUpdate:modelValue":t[24]||(t[24]=n=>a(e).proxy_dir=n),placeholder:"请输入访问地址"},{prepend:r(()=>[_("div",{class:"max-w-[20rem] truncate",title:a(R)},ce(a(R)),9,Ot)]),_:1},8,["disabled","modelValue"])])]),_:1}),a(m)?M("",!0):(g(),A("span",Rt,ce(a($)),1)),l(v,{label:"前端资源",prop:"static_dir"},{default:r(()=>[l(c,{width:"40rem",disabled:a(m),modelValue:a(e).static_dir,"onUpdate:modelValue":t[25]||(t[25]=n=>a(e).static_dir=n)},{append:r(()=>[l(p,{onClick:b},{default:r(()=>[l(d,{icon:"el-folder-opened",class:"cursor-pointer"})]),_:1})]),_:1},8,["disabled","modelValue"])]),_:1}),l(v,{label:"项目备注"},{default:r(()=>[l(c,{width:"32rem",modelValue:a(e).project_ps,"onUpdate:modelValue":t[26]||(t[26]=n=>a(e).project_ps=n),placeholder:"输入项目备注,非必填"},null,8,["modelValue"])]),_:1}),l(v,{label:"守护进程"},{default:r(()=>[l(re,{modelValue:a(e).daemon_status,"onUpdate:modelValue":t[27]||(t[27]=n=>a(e).daemon_status=n)},{default:r(()=>[...t[43]||(t[43]=[j(" 项目意外停止时自动重启 ",-1)])]),_:1},8,["modelValue"])]),_:1})]),key:"0"}]),1032,["isShowDivider"]),a(m)?(g(),E(v,{key:1,label:" "},{default:r(()=>[l(J,{type:"primary",onClick:ke},{default:r(()=>[...t[44]||(t[44]=[j("保存当前配置",-1)])]),_:1})]),_:1})):M("",!0)]),_:1}),l(Ye,{modelValue:a(L),"onUpdate:modelValue":t[29]||(t[29]=n=>se(L)?L.value=n:null),area:50,showFooter:"",onConfirm:Ke,title:"项目更新"},{default:r(()=>[_("div",Lt,[l(Qe,{ref_key:"javaFormRef",ref:y,model:a(D),disabled:a(V),"label-width":"9rem",rules:a(H)},{default:r(()=>[l(v,{label:"jar包路径",prop:"project_jar"},{default:r(()=>[l(je,{modelValue:a(D).project_jar,"onUpdate:modelValue":t[28]||(t[28]=n=>a(D).project_jar=n),icon:"el-folder-opened",onIconClick:fe,width:"32rem"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","disabled","rules"])])]),_:1},8,["modelValue"])])}}}),At={class:"flex items-center"},It={class:"flex items-center justify-between"},Xt={class:"flex items-center"},zt={class:"flex items-center justify-between"},Kt={class:"text-tertiary"},qt={class:"flex items-center"},Ht=be({__name:"traditional-project",props:{projectData:{default:{}},editForm:{}},setup(X,{expose:Z}){var $,Q,K,Y;const w=X,{siteInfo:P}=xe();let O=!1;const s=x({project_path:"/www/wwwroot",project_ps:"",release_firewall:!1,tomcat_version:((Q=($=w==null?void 0:w.projectData)==null?void 0:$.tomcat_list[0])==null?void 0:Q.version)||"",port:"",project_name:"",domains:"",proxy_dir:"/",target_dir:"/",tomcat_name:((Y=(K=w==null?void 0:w.projectData)==null?void 0:K.tomcat_list[0])==null?void 0:Y.name)||"",run_user:"",use_project_watch:!1}),h=x(!1),e=x("file");x([{label:".war",value:"file"},{label:"文件夹",value:"dir"}]),G(()=>{if(s.value.domains){const u=s.value.domains.split("\n")[0].trim();return"http://".concat(u)}return"http://域名"}),Be("getSystemInfoEvent",u=>{});const R=u=>{m.value||(s.value.project_ps=u,s.value.target_dir="/".concat(u),(s.value.project_path==="/www/wwwroot"||s.value.project_path==="/www/wwwroot/")&&(s.value.project_path="/www/wwwroot/".concat(u)))},f=()=>{ie({type:"all",path:s.value.project_path,change:u=>{s.value.project_path=u;let i=u.substring(u.lastIndexOf("/")+1).split(".")[0];s.value.project_ps=i,m.value||(s.value.project_name=i,D(i))}})},L=()=>{O=!0},{BtForm:T,validate:z,param:y}=Pe({data:s.value,options:()=>G(()=>[{type:"slots",key:"custom",rules:{project_path:[C({message:"请输入项目路径"})],tomcat_version:[C({message:"请选择tomcat版本",trigger:"change"})],port:[C({message:"请输入端口号",trigger:"blur"}),ot()],project_name:[C({message:"请输入项目名称"})],domains:[C({message:"请输入项目域名"})],proxy_dir:[C({message:"请输入访问地址"})],target_dir:[C({message:"请输入到达地址"})]}}])}),V=async u=>{const i=w.projectData.tomcat_list.find(S=>S.name===u);i&&(s.value.tomcat_version=i.version,s.value.run_user=i.user,s.value.port=i.port)};G(()=>"http://127.0.0.1".concat(s.value.port?":".concat(s.value.port):"").concat(s.value.target_dir));const D=u=>{s.value.target_dir=u.charAt(0)==="/"?u:"/"+u},H=u=>{if(!u||/[/\\]$/.test(u))return"dir";const i=u.toLowerCase();return i.endsWith(".war")||i.endsWith(".jar")?"file":"dir"},U=async()=>{await z();let u={...y.value,domains:y.value.domains.split("\n"),project_type:1};return m.value&&(O&&await Ue({title:"提示",width:"35rem",icon:"warning-filled",content:"更改后会重启Tomcat,是否继续?"}),O=!1,u.project_jar="",u.debug=y.value.debug?1:0,delete u.jmx_info,u.log_conf,delete u.logs,u.scripts),!m.value&&y.value.domains.includes("[")&&await ze(),Ct(u)};return Me(()=>w.projectData.tomcat_list.length,()=>{var u,i,S,W;if(s&&!m.value&&(s.value.tomcat_name=(u=w.projectData.tomcat_list[0])==null?void 0:u.name,s.value.tomcat_version=(i=w.projectData.tomcat_list[0])==null?void 0:i.version,s.value.port=(S=w.projectData.tomcat_list[0])==null?void 0:S.port,V((W=w.projectData.tomcat_list[0])==null?void 0:W.name)),P.value){const{project_config:F}=P.value;if(!F.tomcat_name&&m.value){const k=w.projectData.tomcat_list.find(ee=>ee.config_path===F.server_xml);k&&(s.value.tomcat_name=k.name,s.value.tomcat_version=k.version)}}},{immediate:!0,deep:!0}),we(()=>{if(m.value){const{project_config:u,ps:i,path:S}=P.value;Object.assign(s.value,{...u,domains:u.domains.join("\n"),project_path:S,project_name:u.project_name,is_separation:u.is_separation===1,debug:0,release_firewall:!1,project_ps:lt(i),host_url:"http://127.0.0.1:"+u.port,jmx_status:!1,proxy_dir:u.proxy_dir,target_dir:u.target_dir}),e.value=H(S)}else e.value="dir"}),Z({onConfirm:U}),(u,i)=>{const S=$e,W=Fe,F=Je,k=ye,ee=Ae,ue=Le,_e=Ne,pe=ge,ve=Re;return g(),A("div",null,[l(a(T),{"label-width":"100px",class:"mt-[2rem]"},{custom:r(()=>[_("div",At,[l(k,{label:"项目路径",prop:"project_path"},{default:r(()=>[l(F,{width:"30rem",disabled:a(m),modelValue:a(s).project_path,"onUpdate:modelValue":i[0]||(i[0]=b=>a(s).project_path=b)},Oe({_:2},[a(m)?void 0:{name:"append",fn:r(()=>[l(W,{onClick:f},{default:r(()=>[l(S,{icon:"el-folder-opened",class:"cursor-pointer"})]),_:1})]),key:"0"}]),1032,["disabled","modelValue"])]),_:1})]),a(m)?M("",!0):(g(),E(k,{key:0,label:"项目名称",prop:"project_name"},{default:r(()=>[_("div",It,[l(F,{onChange:R,width:"36rem",modelValue:a(s).project_name,"onUpdate:modelValue":i[1]||(i[1]=b=>a(s).project_name=b),placeholder:"选择项目文件,自动获取名称"},null,8,["modelValue"])])]),_:1})),a(m)?M("",!0):(g(),E(k,{key:1,label:"绑定域名",prop:"domains"},{default:r(()=>[l(ee,{placement:"top-start","popper-class":"green-tips-popover !p-0",title:"",width:"400",visible:a(h),"onUpdate:visible":i[4]||(i[4]=b=>se(h)?h.value=b:null),"trigger-keys":[],trigger:"focus"},{reference:r(()=>[l(F,{rows:5,resize:"none",width:"40rem",modelValue:a(s).domains,"onUpdate:modelValue":i[2]||(i[2]=b=>a(s).domains=b),type:"textarea",onFocus:i[3]||(i[3]=b=>h.value=!0),placeholder:"如需填写多个域名,请换行填写,每行一个域名,默认为80端口\nIP地址格式:192.168.1.199\n泛解析添加方法 *.domain.com\n如另加端口格式为 www.domain.com:88\nipv6格式:[2001:db8:85a3::8a2e:370:7334]:88"},null,8,["modelValue"])]),default:r(()=>[i[9]||(i[9]=_("div",{class:"!p-[12px] bg-primary text-white"},[j(" 如果需要绑定外网,请输入需要绑定的域名,该选项可为空"),_("br"),j(" 如需填写多个域名,请换行填写,每行一个域名,默认为80端口"),_("br"),j(" 泛解析添加方法 *.domain.com"),_("br"),j(" 如另加端口格式为 www.domain.com:88"),_("br"),j(" ipv6格式:[2001:db8:85a3::8a2e:370:7334]:88 ")],-1))]),_:1},8,["visible"])]),_:1})),l(k,{label:"Tomcat版本",prop:"tomcat_version"},{default:r(()=>[_("div",Xt,[l(_e,{modelValue:a(s).tomcat_name,"onUpdate:modelValue":i[5]||(i[5]=b=>a(s).tomcat_name=b),class:"mr-[8px] !w-[20rem]",disabled:a(m),onChange:V},{default:r(()=>[(g(!0),A(ne,null,me(X.projectData.tomcat_list,(b,fe)=>(g(),E(ue,{key:fe,value:b.name},{default:r(()=>[_("div",zt,[_("span",null,ce(b.name),1),_("span",Kt,ce(b.path.includes("/www/server/bt_tomcat_web")?"独立Tomcat":"全局Tomcat"),1)])]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","disabled"]),l(pe,{onClick:i[6]||(i[6]=b=>a(Xe)("newTomCat"))},{default:r(()=>[...i[10]||(i[10]=[j("安装/管理Tomcat",-1)])]),_:1})])]),_:1}),l(k,{label:"Tomcat端口",prop:"port"},{default:r(()=>[_("div",qt,[l(F,{width:"20rem",type:"number",onChange:L,class:"mr-[12px]",modelValue:a(s).port,"onUpdate:modelValue":i[7]||(i[7]=b=>a(s).port=b),placeholder:"选择Tomcat版本,自动获取端口"},null,8,["modelValue"])])]),_:1}),l(k,{label:"项目备注"},{default:r(()=>[l(F,{width:"36rem",modelValue:a(s).project_ps,"onUpdate:modelValue":i[8]||(i[8]=b=>a(s).project_ps=b),placeholder:"输入项目备注,非必填"},null,8,["modelValue"])]),_:1}),a(m)?(g(),E(k,{key:2,label:" "},{default:r(()=>[l(ve,{type:"primary",onClick:U},{default:r(()=>[...i[11]||(i[11]=[j("保存当前配置",-1)])]),_:1})]),_:1})):M("",!0)]),_:1})])}}}),Wt={class:"flex items-center"},Gt={class:"flex items-center ml-[12px]"},ia=be({__name:"index",props:{compData:{default:()=>({isEdit:!1})}},setup(X,{expose:Z}){const{siteInfo:w}=xe(),{getRootUser:P}=Dt(),O=x(),s=x(),h=de({userList:[],jdk_info:[],tomcat_list:[]}),e=de({radioType:"SpringBoot"}),R=x(!1),f=async(y="")=>{var V;try{const D=await kt();h.jdk_info=(V=D.data.jdk_info)==null?void 0:V.filter(U=>U.operation!==0);const H=await ht();Object.entries(H.data).forEach(([U,$])=>{$.status&&h.tomcat_list.push({...$,name:U,version:Number($.version.split(".")[0])})}),y&&st.success("".concat(y,",刷新成功"))}catch(D){}};mt("getSystemInfoEvent",f);const L=async()=>{if(e.radioType==="tomcat")return;const{data:y}=await P({springboot:+(e.radioType==="SpringBoot")});h.userList=y},T=async()=>{var y;R.value=!0,await L(),await f(),R.value=!1,m.value&&(e.radioType=((y=w.value.project_config)==null?void 0:y.java_type)==="springboot"?"SpringBoot":"tomcat")},z=async y=>{await(e.radioType==="SpringBoot"?O.value:s.value).onConfirm(y)&&y&&y()};return we(T),Z({init:T,onConfirm:z}),(y,V)=>{const D=rt,H=ge,U=ye,$=Ie,Q=nt,K=ct("bt-loading");return g(),A("div",{class:"overflow-auto p-2rem",style:_t("max-height:".concat(a(m)?68:64,"rem"))},[I((g(),E($,{model:a(e),"label-width":"100px"},{default:r(()=>[a(m)?M("",!0):(g(),E(U,{key:0,label:"项目类型"},{default:r(()=>[_("div",Wt,[l(D,{modelValue:a(e).radioType,"onUpdate:modelValue":V[0]||(V[0]=Y=>a(e).radioType=Y),type:"button",options:[{label:"SpringBoot",value:"SpringBoot"},{label:"Tomcat项目",value:"tomcat"}],disabled:a(m),onChange:L},null,8,["modelValue","disabled"]),_("div",Gt,[l(H,{href:"https://www.bt.cn/bbs/thread-76217-1-1.html"},{default:r(()=>[...V[1]||(V[1]=[j("Java项目教程",-1)])]),_:1}),V[2]||(V[2]=_("i",{class:"svgtofont-el-link text-primary text-medium ml-[4px]"},null,-1))])])]),_:1})),I(l(Nt,{ref_key:"SpringBootFormRef",ref:O,isEdit:X.compData.isEdit,onCloseEvent:X.compData.closeEvent,projectData:a(h)},null,8,["isEdit","onCloseEvent","projectData"]),[[q,a(e).radioType=="SpringBoot"]]),I(l(Ht,{ref_key:"TraditionalProjectRef",ref:s,isEdit:X.compData.isEdit,projectData:a(h)},null,8,["isEdit","projectData"]),[[q,a(e).radioType=="tomcat"]])]),_:1},8,["model"])),[[K,a(R)]]),l(Q,{options:[{content:"过往内置Tomcat项目、独立Tomcat项目的添加已经整合到Tomcat项目中"}],class:"ml-[40px] mt-[20px]"})],4)}}});export{ia as default};
function __vite__mapDeps(indexes) {
if (!__vite__mapDeps.viteFileDeps) {
__vite__mapDeps.viteFileDeps = []
}
return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}