File: /www/server/panel/BTPanel/static/js/index473.js
import{c as D,r as L,g as O,o as J,a8 as G,j as m,C as _,v as s,e as a,q as n,p as e,J as f,K as y,k as V,s as b,y as u,L as C,x as i,B,F as U,a1 as H,ad as K,am as X,an as Q,al as W,aj as Y,ak as Z,U as ee,z as le}from"./base-lib.js?v=1777008528";import{_ as te}from"./index116.js?v=1777008528";import{X as oe,cN as x,cO as ae,c7 as se,b as ne,a as re}from"./utils-lib.js?v=1777008528";import{p as o,s as de,i as me,$ as ie,a as p,o as z,g as A,b as pe,e as ue,c as I,d as _e,f as fe,h as ye,j as be,u as ge,k as M}from"./index85.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index118.js?v=1777008528";import"./index151.js?v=1777008528";import"./index152.js?v=1777008528";import"./index3.js?v=1777008528";import"./index119.js?v=1777008528";import"./index.vue_vue_type_style_index_0_scoped_cdc7f4d3_lang.js?v=1777008528";import"./useController13.js?v=1777008528";import"./site.js?v=1777008528";import"./useStore2.js?v=1777008528";import"./useController8.js?v=1777008528";import"./ssl.js?v=1777008528";import"./useStore3.js?v=1777008528";import"./useController18.js?v=1777008528";import"./useMethod3.js?v=1777008528";import"./useController19.js?v=1777008528";import"./useMethod12.js?v=1777008528";import"./index192.js?v=1777008528";import"./useController20.js?v=1777008528";const Ve={class:"flex items-center"},ve={key:0,class:"absolute top-[34px] text-12px text-[red]"},xe={class:"flex items-center"},we={class:"text-small text-tertiary flex items-center justify-center"},ce=["title"],ke={key:0,class:"absolute top-[50%] right-[-1rem] translate-y-[-50%] flex items-center"},he={class:"text-small text-tertiary truncate max-w-[6rem]"},Ce={class:"text-small text-tertiary"},Ue={class:"flex items-center"},Ee={class:"truncate text-medium max-w-[13rem]"},Pe={class:"text-small text-tertiary mt-[.5rem]"},je={class:"text-small ml-8px"},Fe={class:"mt-[1.6rem]"},$e={class:"mt-[1.6rem]"},Be={class:"flex"},ze={key:2,class:"my-[20px]"},Ae={class:"flex items-center"},Ie={class:"ml-[1rem] text-primary w-[16rem] select-none"},Me={class:"pt-[0]"},rl=D({__name:"index",setup(Se,{expose:S}){const v=L(!1),{BtForm:T,submit:E}=oe({data:o.value,options:c=>O(()=>[{type:"slots",key:"custom",rules:{pjname:[x({message:"请输入项目名称"})],port:[{validator:(l,d,r)=>{o.value.stype!=="command"&&(!/^\d+$/.test(d)||d<0||d>65535)?o.value.listenMsg?r(new Error(" ")):r(new Error("端口号范围为0-65535")):r()},tirgger:["blur","change"]}],path:[x({message:"请选择路径"})],processes:[x({message:"请输入进程数"})],threads:[x({message:"请输入线程数"})],python_bin:[x({message:"请选择Python环境"})],parm:[{validator:(l,d,r)=>{o.value.stype==="command"&&d===""?r(new Error("请输入启动命令")):r()},tirgger:["blur","change"]}]}}]),submit:async(c,l)=>(await l(),await de(c.value))});return J(()=>{me()}),G(ie),S({onConfirm:E}),(c,l)=>{const d=ae,r=K,g=X,w=Q,N=se,k=W,P=Y,j=ne,F=re,$=te,h=Z,R=ee,q=le;return m(),_(e(T),{"label-width":"100px",class:"p-2rem"},{custom:s(()=>[a(r,{label:"项目名称",prop:"pjname"},{default:s(()=>[n("div",Ve,[a(d,{disabled:e(p),width:"22rem",modelValue:e(o).pjname,"onUpdate:modelValue":l[0]||(l[0]=t=>e(o).pjname=t),placeholder:"请输入Python项目名称"},null,8,["disabled","modelValue"]),f(a(r,{label:"项目端口",prop:"port","label-width":"7rem"},{default:s(()=>[a(d,{width:"18rem",type:"number",modelValue:e(o).port,"onUpdate:modelValue":l[1]||(l[1]=t=>e(o).port=t),placeholder:"项目的真实端口"},null,8,["modelValue"]),e(o).listenMsg&&e(o).stype!=="command"?(m(),V("div",ve,b(e(o).listenMsg),1)):u("",!0)]),_:1},512),[[y,e(o).stype!=="command"]])])]),_:1}),a(r,{label:"Python环境",prop:"python_bin"},{default:s(()=>[n("div",xe,[n("div",{class:C(["flex items-center",e(p)?"":"custom-refresh-select"])},[a(w,{modelValue:e(o).python_bin,"onUpdate:modelValue":l[3]||(l[3]=t=>e(o).python_bin=t),filterable:"",class:"!w-[24rem]","popper-class":"env-select",disabled:e(p)},{empty:s(()=>[n("div",we,[l[24]||(l[24]=i("暂无Python环境,",-1)),n("span",{class:"bt-link",onClick:l[2]||(l[2]=t=>e(z)(e(A)))},"点击添加")])]),default:s(()=>[(m(!0),V(U,null,B(e(ue),t=>(m(),_(g,{key:t.bin_path,value:t.bin_path,label:t.name},{default:s(()=>[n("div",{class:"relative pt-[1rem]",title:t.name},[t.project_name.length?(m(),V("div",ke,[n("span",he,b(t.project_name[0]),1),n("span",Ce,b("等".concat(t.project_name.length,"个项目正在使用")),1)])):u("",!0),n("div",Ue,[n("div",Ee,b(t.name),1),n("span",{class:C(["text-small ml-[8px] px-[.5rem] rounded-base border","tag-".concat(t.type)])},b(e(pe)(t.type)),3)]),n("div",Pe,b(t.version),1)],8,ce)]),_:2},1032,["value","label"]))),128))]),_:1},8,["modelValue","disabled"])],2),n("span",je,[l[26]||(l[26]=i(" * 如需添加Python环境,请点击",-1)),a(N,{onClick:l[4]||(l[4]=t=>e(z)(e(A)))},{default:s(()=>[...l[25]||(l[25]=[i("环境管理",-1)])]),_:1})])])]),_:1}),a(r,{label:"启动方式"},{default:s(()=>[a(P,{modelValue:e(o).stype,"onUpdate:modelValue":l[5]||(l[5]=t=>e(o).stype=t)},{default:s(()=>[a(k,{label:"command"},{default:s(()=>[...l[27]||(l[27]=[i("命令行启动",-1)])]),_:1}),a(k,{label:"uwsgi"},{default:s(()=>[...l[28]||(l[28]=[i("uwsgi",-1)])]),_:1}),a(k,{label:"gunicorn"},{default:s(()=>[...l[29]||(l[29]=[i("gunicorn",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"项目路径",prop:"path"},{default:s(()=>[a(d,{width:"42rem","icon-type":e(p)?!1:"folder",disabled:e(p),placeholder:"项目的根路径",onFolder:e(I),onChange:e(_e),modelValue:e(o).path,"onUpdate:modelValue":l[6]||(l[6]=t=>e(o).path=t)},H({_:2},[e(p)?void 0:{name:"append",fn:s(()=>[a(F,{onClick:e(I)},{default:s(()=>[a(j,{icon:"el-folder-opened",class:"cursor-pointer"})]),_:1},8,["onClick"])]),key:"0"}]),1032,["icon-type","disabled","onFolder","onChange","modelValue"])]),_:1}),f(n("div",{class:"mt-[1rem] ml-[12rem]"},"当前框架:"+b(e(o).framework),513),[[y,e(o).framework]]),f(n("div",Fe,[a(r,{label:"启动命令",prop:"parm"},{default:s(()=>[a(d,{modelValue:e(o).parm,"onUpdate:modelValue":l[7]||(l[7]=t=>e(o).parm=t),placeholder:"请输入启动命令",width:"42rem"},null,8,["modelValue"])]),_:1})],512),[[y,e(o).stype==="command"]]),f(n("div",$e,[a(r,{label:"入口文件"},{default:s(()=>[a($,{placeholder:"项目的入口文件",modelValue:e(o).rfile,"onUpdate:modelValue":l[8]||(l[8]=t=>e(o).rfile=t),icon:"el-folder-opened",onIconClick:l[9]||(l[9]=t=>e(fe)(e(o))),onChange:l[10]||(l[10]=t=>e(ye)(e(o))),width:"42rem"},null,8,["modelValue"])]),_:1}),a(r,{label:"通讯协议"},{default:s(()=>[n("div",Be,[a(w,{modelValue:e(o).xsgi,"onUpdate:modelValue":l[11]||(l[11]=t=>e(o).xsgi=t),class:"!w-[15rem]"},{default:s(()=>[a(g,{label:"wsgi",value:"wsgi"}),a(g,{label:"asgi",value:"asgi"})]),_:1},8,["modelValue"]),a(r,{label:"应用名称"},{default:s(()=>[a(d,{modelValue:e(o).app,"onUpdate:modelValue":l[12]||(l[12]=t=>e(o).app=t),placeholder:"请输入应用名称",width:"22rem"},null,8,["modelValue"])]),_:1})])]),_:1})],512),[[y,e(o).stype!=="command"]]),a(r,{label:"环境变量",class:"mt-[1.6rem]"},{default:s(()=>[a(P,{modelValue:e(o).envType,"onUpdate:modelValue":l[13]||(l[13]=t=>e(o).envType=t)},{default:s(()=>[a(h,{label:0},{default:s(()=>[...l[30]||(l[30]=[i("无",-1)])]),_:1}),a(h,{label:1},{default:s(()=>[...l[31]||(l[31]=[i("指定变量",-1)])]),_:1}),a(h,{label:2},{default:s(()=>[...l[32]||(l[32]=[i("从文件加载",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),f(a(r,{label:" "},{default:s(()=>[f(a(d,{width:"40rem",type:"textarea",rows:4,modelValue:e(o).env,"onUpdate:modelValue":l[14]||(l[14]=t=>e(o).env=t),placeholder:"环境变量,1行1个,例如: JAVA_HOME=/usr/local/btjdk/jdk8"},null,8,["modelValue"]),[[y,e(o).envType===1]]),f(a($,{modelValue:e(o).envPath,"onUpdate:modelValue":l[15]||(l[15]=t=>e(o).envPath=t),placeholder:"请选择环境变量文件",icon:"el-folder-opened",onIconClick:e(be),width:"42rem"},null,8,["modelValue","onIconClick"]),[[y,e(o).envType===2]])]),_:1},512),[[y,e(o).envType!==0]]),a(r,{label:"启动用户"},{default:s(()=>[a(w,{modelValue:e(o).user,"onUpdate:modelValue":l[16]||(l[16]=t=>e(o).user=t),class:"!w-[16rem]"},{default:s(()=>[(m(!0),V(U,null,B(e(ge),t=>(m(),_(g,{key:t,label:t,value:t},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(p)?(m(),_(r,{key:0,label:"开机启动"},{default:s(()=>[a(R,{modelValue:e(o).auto_run,"onUpdate:modelValue":l[17]||(l[17]=t=>e(o).auto_run=t)},{default:s(()=>[...l[33]||(l[33]=[i(" 是否设置开机自动启动(默认自带守护进程每120秒检测一次) ",-1)])]),_:1},8,["modelValue"])]),_:1})):u("",!0),e(p)?u("",!0):(m(),_(r,{key:1,label:"安装依赖包"},{default:s(()=>[a(d,{width:"42rem","icon-type":"folder",placeholder:"安装依赖包路径(非必填)",onFolder:e(M),modelValue:e(o).requirement_path,"onUpdate:modelValue":l[18]||(l[18]=t=>e(o).requirement_path=t)},{append:s(()=>[a(F,{onClick:e(M)},{default:s(()=>[a(j,{icon:"el-folder-opened",class:"cursor-pointer"})]),_:1},8,["onClick"])]),_:1},8,["onFolder","modelValue"])]),_:1})),e(p)?(m(),V("div",ze,[e(o).stype!="command"?(m(),_(r,{key:0,label:"进程数",prop:"processes"},{default:s(()=>[n("div",Ae,[a(d,{width:"16rem",modelValue:e(o).processes,"onUpdate:modelValue":l[19]||(l[19]=t=>e(o).processes=t)},null,8,["modelValue"]),a(r,{label:"线程数",prop:"threads"},{default:s(()=>[a(d,{width:"16rem",modelValue:e(o).threads,"onUpdate:modelValue":l[20]||(l[20]=t=>e(o).threads=t)},null,8,["modelValue"])]),_:1})])]),_:1})):u("",!0),e(p)&&e(o).stype==="uwsgi"?(m(),_(r,{key:1,label:"通信方式"},{default:s(()=>[a(w,{modelValue:e(o).is_http,"onUpdate:modelValue":l[21]||(l[21]=t=>e(o).is_http=t),class:"w-[16rem]"},{default:s(()=>[a(g,{label:"http",value:!0}),a(g,{label:"socket",value:!1})]),_:1},8,["modelValue"])]),_:1})):u("",!0)])):u("",!0),e(p)?u("",!0):(m(),V(U,{key:3},[n("div",{class:"more flex items-center cursor-pointer pl-[10rem] my-[2rem] px-[2rem]",onClick:l[22]||(l[22]=t=>v.value=!e(v))},[n("i",{class:C(e(v)?"svgtofont-el-arrow-down":"svgtofont-el-arrow-right")},null,2),n("div",Ie,b("更多设置,".concat(e(v)?"点击收回":"点击查看")),1)]),f(n("div",Me,[a(r,{label:"项目初始化命令",prop:"initialize"},{default:s(()=>[a(d,{rows:3,modelValue:e(o).initialize,"onUpdate:modelValue":l[23]||(l[23]=t=>e(o).initialize=t),type:"textarea",name:"initialize",width:"42rem",placeholder:"此处填写用于初始化项目的命令或脚本,常见的有项目数据库初始化操作等。例如:django常使用python manage.py makemigrations 和 python manage.py migrate 初始化数据库"},null,8,["modelValue"])]),_:1})],512),[[y,e(v)]]),l[34]||(l[34]=n("ul",{class:"mt-[20px] leading-8 text-small list-disc ml-48px"},[n("li",null,"执行命令:请输入项目需要携带的参数,默认请输入执行文件名"),n("li",null,[i(" 通讯协议:wsgi:同步通讯,一次处理一个请求, asgi:异步处理,并发处理请求 "),n("br"),i(" 根据项目情况具体选择,例如: 传统Flask就是wsgi, Fastapi框架就是asgi, Django两者都可以支持 ")]),n("li",null,"项目初始化命令:初始化脚本会在创建虚拟环境,安装依赖库之后执行")],-1))],64)),e(p)?(m(),_(r,{key:4,label:" "},{default:s(()=>[a(q,{type:"primary",onClick:e(E)},{default:s(()=>[...l[35]||(l[35]=[i("保存配置",-1)])]),_:1},8,["onClick"])]),_:1})):u("",!0)]),_:1})}}});export{rl as default};