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/index-legacy395.js
!function(){function e(n){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(n)}function n(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return t(e,n);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?t(e,n):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,a=Array(n);t<n;t++)a[t]=e[t];return a}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,a)}return t}function r(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach(function(n){l(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function l(n,t,a){return(t=function(n){var t=function(n,t){if("object"!=e(n)||!n)return n;var a=n[Symbol.toPrimitive];if(void 0!==a){var r=a.call(n,t||"default");if("object"!=e(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(n)}(n,"string");return"symbol"==e(t)?t:t+""}(t))in n?Object.defineProperty(n,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[t]=a,n}function u(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,n,t="function"==typeof Symbol?Symbol:{},a=t.iterator||"@@iterator",r=t.toStringTag||"@@toStringTag";function l(t,a,r,l){var u=a&&a.prototype instanceof i?a:i,c=Object.create(u.prototype);return o(c,"_invoke",function(t,a,r){var l,u,o,i=0,c=r||[],p=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(n,t){return l=n,u=0,o=e,d.n=t,s}};function f(t,a){for(u=t,o=a,n=0;!p&&i&&!r&&n<c.length;n++){var r,l=c[n],f=d.p,v=l[2];t>3?(r=v===a)&&(o=l[(u=l[4])?5:(u=3,3)],l[4]=l[5]=e):l[0]<=f&&((r=t<2&&f<l[1])?(u=0,d.v=a,d.n=l[1]):f<v&&(r=t<3||l[0]>a||a>v)&&(l[4]=t,l[5]=a,d.n=v,u=0))}if(r||t>1)return s;throw p=!0,a}return function(r,c,v){if(i>1)throw TypeError("Generator is already running");for(p&&1===c&&f(c,v),u=c,o=v;(n=u<2?e:o)||!p;){l||(u?u<3?(u>1&&(d.n=-1),f(u,o)):d.n=o:d.v=o);try{if(i=2,l){if(u||(r="next"),n=l[r]){if(!(n=n.call(l,o)))throw TypeError("iterator result is not an object");if(!n.done)return n;o=n.value,u<2&&(u=0)}else 1===u&&(n=l.return)&&n.call(l),u<2&&(o=TypeError("The iterator does not provide a '"+r+"' method"),u=1);l=e}else if((n=(p=d.n<0)?o:t.call(a,d))!==s)break}catch(n){l=e,u=1,o=n}finally{i=1}}return{value:n,done:p}}}(t,r,l),!0),c}var s={};function i(){}function c(){}function p(){}n=Object.getPrototypeOf;var d=[][a]?n(n([][a]())):(o(n={},a,function(){return this}),n),f=p.prototype=i.prototype=Object.create(d);function v(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,o(e,r,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=p,o(f,"constructor",p),o(p,"constructor",c),c.displayName="GeneratorFunction",o(p,r,"GeneratorFunction"),o(f),o(f,r,"Generator"),o(f,a,function(){return this}),o(f,"toString",function(){return"[object Generator]"}),(u=function(){return{w:l,m:v}})()}function o(e,n,t,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}o=function(e,n,t,a){function l(n,t){o(e,n,function(e){return this._invoke(n,t,e)})}n?r?r(e,n,{value:t,enumerable:!a,configurable:!a,writable:!a}):e[n]=t:(l("next",0),l("throw",1),l("return",2))},o(e,n,t,a)}function s(e,n,t,a,r,l,u){try{var o=e[l](u),s=o.value}catch(e){return void t(e)}o.done?n(s):Promise.resolve(s).then(a,r)}function i(e){return function(){var n=this,t=arguments;return new Promise(function(a,r){var l=e.apply(n,t);function u(e){s(l,a,r,u,o,"next",e)}function o(e){s(l,a,r,u,o,"throw",e)}u(void 0)})}}System.register(["./base-lib-legacy.js?v=1777008528","./utils-lib-legacy.js?v=1777008528","./site-legacy.js?v=1777008528","./hooks-legacy.js?v=1777008528","./index-legacy256.js?v=1777008528","./form-item-legacy.js?v=1777008528","./index-legacy3.js?v=1777008528","./useStore-legacy2.js?v=1777008528","./useController-legacy19.js?v=1777008528","./useController-legacy13.js?v=1777008528","./index-legacy116.js?v=1777008528","./__commonjsHelpers__-legacy.js?v=1777008528","./index-legacy119.js?v=1777008528","./useMethod-legacy12.js?v=1777008528","./index-legacy192.js?v=1777008528"],function(e,t){"use strict";var a,l,o,s,c,p,d,f,v,m,b,w,h,_,y,g,x,k,V,S,P,j,U,q,C,I,O,D,H,L,M,F,A,T,N,z,G,E,Q,R,B,J,$,K,W,Y,X,Z,ee,ne,te,ae,re,le,ue,oe,se,ie,ce,pe,de,fe,ve,me,be,we,he,_e,ye,ge,xe,ke,Ve,Se,Pe,je,Ue,qe,Ce,Ie,Oe,De,He,Le,Me,Fe;return{setters:[function(e){a=e.c,l=e.aC,o=e.r,s=e.e,c=e.x,p=e.g,d=e.aB,f=e.o,v=e.n,m=e.j,b=e.k,w=e.v,h=e.p,_=e.C,y=e.q,g=e.y,x=e.F,k=e.ad,V=e.H,S=e.Q,P=e.J,j=e.B,U=e.s,q=e.am,C=e.an,I=e.ab,O=e.bf,D=e.w,H=e.L,L=e.K,M=e.aF,F=e.aV},function(e){A=e.c,T=e.X,N=e.cO,z=e.B,G=e.fc,E=e.cN,Q=e.M,R=e.k,B=e.Q,J=e.W,$=e.b,K=e.a,W=e.cP,Y=e.cZ,X=e.I,Z=e.a2,ee=e.du,ne=e.w,te=e.c7,ae=e.f,re=e.e,le=e._,ue=e.d8,oe=e.K,se=e.dp},function(e){ie=e.addSiteGit,ce=e.getBranchList,pe=e.checkAutoInstall,de=e.createAsync,fe=e.getSwooleCorrespondencePhp,ve=e.getSystemUserListAsync,me=e.GetPHPVersion,be=e.checkInstallAsync,we=e.getPluginInfo,he=e.addPhpSite,_e=e.setDeploymentInfo,ye=e.getDeploymentList,ge=e.createWebsiteMultiple,xe=e.getIgnoreAd,ke=e.getFtpMysqlStatus,Ve=e.ignoreAd},function(e){Se=e.u},function(e){Pe=e.default},function(e){je=e.e},function(e){Ue=e.w,qe=e.p,Ce=e.o},function(e){Ie=e.u},function(e){Oe=e.s,De=e.v,He=e.w},function(e){Le=e.l,Me=e.o},function(e){Fe=e._},null,null,null,null],execute:function(){var Ae={class:"flex flex-col gap-8px"},Te={class:"flex items-center gap-10px"},Ne=["data-clipboard-text"],ze={class:"flex items-center custom-refresh-select"},Ge={class:"el-input-group__append !h-3rem !flex items-center"},Ee=a({__name:"index",setup:function(e,n){var t,a=n.expose,r=l("popupClose"),V=A().panel,S=Ie().isRefreshList,P="/www/wwwroot/",j=o(!1),U=o([]),q=o(!1),C=[{content:s("span",null,[c("Git部署教程可参考:"),s("a",{href:"https://docs.bt.cn/practical-tutorials/create-from-git-website",class:"bt-link",target:"_blank"},[c("https://docs.bt.cn/practical-tutorials/create-from-git-website")])])}],I=function(){var e=i(u().m(function e(n){return u().w(function(e){for(;;)if(0===e.n)return e.a(2,De(n,D))},e)}));return function(n){return e.apply(this,arguments)}}(),O=function(){var e=i(u().m(function e(){var n,t=arguments;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.length>0&&void 0!==t[0]&&t[0],e.p=1,F.value.repo){e.n=2;break}return Q.error("请先填写仓库地址"),e.a(2);case 2:R({loading:"正在获取分支列表,请稍后...",request:ce({repo:F.value.repo,force:n?1:0}),success:function(e){var t,a;U.value=Array.isArray(null===(t=e.data)||void 0===t?void 0:t.data)?e.data.data.map(function(e){return{label:e,value:e}}):[],F.value.branch&&U.value.some(function(e){return e.value===F.value.branch})||(F.value.branch=(null===(a=U.value[0])||void 0===a?void 0:a.value)||""),n&&e.status&&Q.success("分支列表已刷新")}}),e.n=4;break;case 3:e.p=3,e.v;case 4:return e.a(2)}},e,null,[[1,3]])}));return function(){return e.apply(this,arguments)}}(),D=function(){var e=i(u().m(function e(){var n;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,He();case 1:n=e.v,F.value.ssh_key=n.ssh_key.msg,q.value=n.webhook_install,e.n=3;break;case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),H=T({data:function(){var e,n={deploy_type:"git",deploy_script:"",ftp:!1,sql:!1,type_id:0,add_dns_record:!1,version:"00",type:"PHP"},t=V.value.sitePath;t&&(n.path=t,P=null===(e=t+"/")||void 0===e?void 0:e.replace(/\/\//g,"/"));return n},options:function(e){return p(function(){return[{type:"custom",rules:{webname:Oe.webname},render:function(n){return n.value.hasOwnProperty("webname")||(n.value.webname=""),s(z,{label:"域名",prop:"webname"},{default:function(){return[s(d,{ref:"popover",placement:"top-start","popper-class":"green-tips-popover !p-0",title:"",width:"400",visible:j.value,"onUpdate:visible":function(e){return j.value=e},"trigger-keys":[],trigger:"focus"},{default:function(){return s("div",{class:"!p-[12px] bg-primary text-white"},[c("如需填写多个域名,请换行填写,每行一个域名,默认为80端口"),s("br",null,null),c("IP地址格式:192.168.1.199"),s("br",null,null),c("泛解析添加方法 *.domain.com"),s("br",null,null),c("如另加端口格式为 www.domain.com:88"),s("br",null,null),c("IPv6格式:[2001:db8:85a3::8a2e:370:7334]:88")])},reference:function(){return s(N,{rows:5,resize:"none",width:"52rem",modelValue:e.value.webname,"onUpdate:modelValue":function(n){return e.value.webname=n},onFocus:function(){j.value=!0},type:"textarea",placeholder:"如需填写多个域名,请换行填写,每行一个域名,默认为80端口\nIP地址格式:192.168.1.199\n泛解析添加方法 *.domain.com\n如另加端口格式为 www.domain.com:88\nIPv6格式:[2001:db8:85a3::8a2e:370:7334]:88",onInput:function(n){var t,a;e.value.ps=n.split("\n")[0],e.value.path=(null===(t=P)||void 0===t?void 0:t.replace(/\/\//g,"/"))+(null===(a=n.split("\n")[0])||void 0===a||null===(a=a.replace(/:/g,"_"))||void 0===a?void 0:a.trim())}},null)}})]}})}},je("网站路径","path",{attrs:{class:"!w-[52rem]",placeholder:"请输入根目录"},rules:[G()]},function(){Ue({type:"dir",path:"/www/wwwroot",change:function(n){e.value.path=n}})}),{type:"slots",key:"gitconf",rules:{ssh_key:[E({message:"请输入SSH Key",trigger:["blur","input"]})],repo:[E({message:"请输入SSH仓库地址",trigger:["blur","input"]})],branch:[E({message:"请输入SSH分支名称",trigger:["blur","input"]})]}}]})},submit:(t=i(u().m(function e(n,t,a){var l,o,s,i,c;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,t();case 1:if(q.value){e.n=2;break}return Q.error("Webhook 未安装,无法保存配置"),e.a(2);case 2:if(l=Object.assign({},n.value),o=l.webname.split("\n")[0].trim(),s=o.match(/:(\d+)$/),l.port=s?parseInt(s[1],10):80,!l.webname.includes("[")){e.n=3;break}return e.n=3,Le();case 3:return(i=l.webname.split("\n")).shift(),l.webname=JSON.stringify({domain:l.webname.split("\n")[0],domainlist:i,count:i.length}),e.n=4,R({loading:"正在添加git部署,请稍后...",request:ie(l),data:{status:Boolean},message:!0,success:function(e){S.value=!0}});case 4:return(c=e.v).status&&r(),console.log("添加git站点返回:",c),e.a(2,c.status);case 5:e.p=5,e.v;case 6:return e.a(2)}},e,null,[[0,5]])})),function(e,n,a){return t.apply(this,arguments)})}),L=H.BtForm,M=H.submit,F=H.param;return f(function(){v(function(){D()})}),a({onConfirm:M}),function(e,n){var t=k,a=N,r=J,l=$,u=K,o=W;return m(),b(x,null,[s(h(L),null,{gitconf:w(function(){return[h(q)?g("",!0):(m(),_(t,{key:0,label:"Webhook"},{default:w(function(){return[y("span",{class:"bt-danger text-small",onClick:n[0]||(n[0]=function(e){return I("webhook")})}," 未安装Webhook,点击安装 ")]}),_:1})),s(t,{label:"SSH Key",prop:"ssh_key"},{default:w(function(){return[y("div",Ae,[y("div",Te,[s(a,{type:"textarea",disabled:"",rows:3,class:"!w-52rem",resize:"none",placeholder:"请输入SSH Key",modelValue:h(F).ssh_key,"onUpdate:modelValue":n[1]||(n[1]=function(e){return h(F).ssh_key=e}),width:"24rem"},null,8,["modelValue"]),y("i",{id:"ssh_key","data-clipboard-text":h(F).ssh_key,class:"svgtofont-el-document-copy cursor-pointer text-default text-medium copy svgtofont-icon-copy !text-16px",title:"复制SSH KEY",onClick:n[2]||(n[2]=function(){return h(B)({value:h(F).ssh_key})})},null,8,Ne)]),n[7]||(n[7]=y("div",{class:"text-small"},"* 请确保在 Git 提供商的 Git 账号下添加此 SSH 密钥",-1))])]}),_:1}),s(t,{label:"仓库",prop:"repo"},{default:w(function(){return[s(a,{placeholder:"请输入GIT仓库地址,例:git@github.com:username/repo.git",class:"!w-52rem",modelValue:h(F).repo,"onUpdate:modelValue":n[3]||(n[3]=function(e){return h(F).repo=e}),onBlur:n[4]||(n[4]=function(e){return O()})},null,8,["modelValue"])]}),_:1}),s(t,{label:"分支",prop:"branch"},{default:w(function(){return[y("div",ze,[s(r,{modelValue:h(F).branch,"onUpdate:modelValue":n[5]||(n[5]=function(e){return h(F).branch=e}),options:h(U),class:"!w-[30rem]",placeholder:"请选择分支"},null,8,["modelValue","options"]),y("div",Ge,[s(u,{title:"刷新分支",class:"!flex",onClick:n[6]||(n[6]=function(e){return O(!0)})},{default:w(function(){return[s(l,{icon:"el-refresh",class:"!text-base"})]}),_:1})])])]}),_:1})]}),_:1}),s(o,{options:C})],64)}}}),Qe=Y(Ee,[["__scopeId","data-v-aaa30fdf"]]),Re={class:"flex"},Be={class:"flex items-center h-3.2rem"},Je=["onClick"],$e={key:0,class:"text-small ml-[8px] flex items-center"},Ke={key:1,class:"text-small ml-[8px] flex items-center"},We={class:"flex items-center"},Ye={class:"flex items-center mb-[4px]"},Xe=a({__name:"index",props:{compData:{default:{}}},setup:function(e,t){var a=t.expose,l=e,p=A().panel,v=Ie().isRefreshList,D=V({database:!1}),H=o(),L=o(!1),M=o({site_path:"/www/wwwroot",project_cmd:"",install_dependence:0,php_version:"",swoole_version:4,domains:"",sql:!1,project_ps:"",project_port:"",codeing:"utf8mb4",open_proxy:!1,project_proxy_path:"",datauser:"",datapassword:"",run_user:"www",composer_version:""}),F=o(!1),T=o([]),z=o([]);o({});var G=o(!1),E=o({}),Q="/www/wwwroot/",B=[{content:"当前仅支持nginx服务器使用"},{content:"【swoole版本】开启自动安装依赖时会给对应版本的php安装swoole"},{content:s(x,null,[c("【自动安装项目依赖】只尝试"),s("span",{class:"text-danger"},[c("composer install")]),c("进行安装依赖,最终安装结果请前往 项目-日志-安装依赖日志 进行确认,若安装依赖不成功,项目会"),s("span",{class:"text-danger"},[c("启动失败")])])},{content:"安装依赖不成功,可能和composer版本有关,可尝试切换composer版本"}],J=function(){var e=i(u().m(function e(n){var t,a,r;return u().w(function(e){for(;;)switch(e.n){case 0:return t="mysql"===n?n:"php-"+(Number(n)/10).toFixed(1),e.n=1,X({sName:t});case 1:a=e.v,r=a.data,qe({name:r.name,type:"i",pluginInfo:r});case 2:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),$=function(){Ue({type:"dir",path:M.value.site_path.replace(/\/$/,""),change:function(e){Z(e,"string",""),M.value.site_path=e,G.value=!0,K()}})},K=function(){var e=i(u().m(function e(){var n,t;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,pe({path:M.value.site_path});case 1:n=e.v,M.value.composer_version=n.data?"2.7.3":"",M.value.install_dependence=n.data?1:0,e.n=3;break;case 2:e.p=2,t=e.v,console.log(t);case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),Y=function(){var e=i(u().m(function e(){var n;return u().w(function(e){for(;;)switch(e.n){case 0:try{(n="php-"+(Number(M.value.php_version)/10).toFixed(1))&&Ce({name:n})}catch(t){}case 1:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}(),ae=function(){var e=i(u().m(function e(n){var t;return u().w(function(e){for(;;)switch(e.n){case 0:M.value.php_version=n,E.value=null!==(t=T.value.find(function(e){return e.php_version===n}))&&void 0!==t?t:{};case 1:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),re=function(e,n){if(!e)return"";var t={}.randomLength,a=void 0===t?1:t;return Array.from(e).map(function(e){return":"===e||"."===e?"_":function(e){return e.charCodeAt(0)<=127}(e)?e:function(e){for(var n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",t="",a=0;a<e;a++)t+=n[Math.floor(52*Math.random())];return t}(a)}).join("")},le=function(e){var n,t,a;"string"==typeof e&&(M.value.site_path&&M.value.site_path!==Q.replace(/\/$/,"")||(G.value=!1),G.value||(M.value.site_path=(null===(n=Q)||void 0===n?void 0:n.replace(/\/\//g,"/"))+(null===(t=e.split("\n")[0])||void 0===t||null===(t=t.replace(/:/g,"_"))||void 0===t?void 0:t.trim())),M.value.datauser=null===(a=re(e.split("\n")[0]))||void 0===a?void 0:a.substr(0,16),M.value.datapassword=ee(16),M.value.project_ps=e.split("\n")[0])},ue=function(e){M.value.composer_version=e,M.value.install_dependence=e?1:0},oe=function(e){var n,t=r(r({},e),{},{sql_user:e.datauser,sql_pwd:e.datapassword,sql_codeing:e.codeing,install_dependence:e.install_dependence,open_proxy:e.open_proxy?1:0,webname:{domain:"",domainlist:[],count:0}}),a=null===(n=e.domains)||void 0===n?void 0:n.split("\n");return a.forEach(function(e,n){0===n?t.webname.domain=e:t.webname.domainlist.push(a[n])}),t.webname.count=t.webname.domainlist.length,t.webname=JSON.stringify(t.webname),delete t.domains,delete t.datauser,delete t.datapassword,delete t.codeing,t},se=function(){var e=i(u().m(function e(n){var t,a,r;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,H.value.validate();case 1:if(null!==(t=E.value)&&void 0!==t&&t.swoole_status){e.n=2;break}return e.n=2,ne({width:50,title:"提示",isHtml:!0,content:"当前版本PHP-安装扩展未安装swoole,可能导致项目无法启动,是否继续操作?",icon:"warning-filled"});case 2:if(!M.value.domains.includes("[")){e.n=3;break}return e.n=3,Le();case 3:return a=oe(M.value),e.n=4,R({loading:"正在添加swoole站点,请稍后...",request:de(a),message:!0});case 4:null!=(r=e.v)&&r.status&&(v.value=!0,n());case 5:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),ie=function(){var e=i(u().m(function e(){var n;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,ve();case 1:n=e.v,z.value=n.data,e.n=3;break;case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),ce=function(){var e=i(u().m(function e(n){return u().w(function(e){for(;;)switch(e.n){case 0:return M.value.swoole_version=n,e.n=1,me();case 1:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),me=function(){var e=i(u().m(function e(){var n,t,a,r,l;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,fe({swoole_version:M.value.swoole_version});case 1:(n=e.v).status&&(T.value=n.data,l=null===(t=T.value)||void 0===t?void 0:t.filter(function(e){return e.setup_status}),M.value.php_version=null===(a=l[0])||void 0===a?void 0:a.php_version,E.value=null!==(r=l[0])&&void 0!==r?r:{}),e.n=3;break;case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),be=function(){var e=i(u().m(function e(){var n,t,a;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,l.compData.getStatus();case 1:n=e.v,D.database=n.mysql,(t=p.value.sitePath)&&(M.value.site_path=t,Q=null===(a=t+"/")||void 0===a?void 0:a.replace(/\/\//g,"/")),me(),ie();case 2:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();return f(be),a({init:be,onConfirm:se}),function(e,t){var a=N,r=d,l=k,u=Fe,o=q,i=C,p=te,f=I,v=W,V=O;return m(),b("div",null,[s(f,{ref_key:"addSwooleSiteFormRef",ref:H,disabled:h(L),model:h(M),rules:h(Oe)},{default:w(function(){return[s(l,{label:"绑定域名",prop:"domains"},{default:w(function(){return[s(r,{ref:"popover",placement:"top-start","popper-class":"green-tips-popover !p-0",title:"",width:"400",visible:h(F),"onUpdate:visible":t[2]||(t[2]=function(e){return S(F)?F.value=e:null}),"trigger-keys":[],trigger:"focus"},{reference:w(function(){return[P(s(a,{onInput:le,modelValue:h(M).domains,"onUpdate:modelValue":t[0]||(t[0]=function(e){return h(M).domains=e}),type:"textarea",width:"52rem",rows:5,resize:"none",onFocus:t[1]||(t[1]=function(e){return F.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"]),[[V,void 0,"popover"]])]}),default:w(function(){return[t[16]||(t[16]=y("div",{class:"!p-[12px] bg-primary text-white"},[c(" 如需填写多个域名,请换行填写,每行一个域名,默认为80端口 "),y("br"),c(" IP地址格式:192.168.1.199 "),y("br"),c(" 泛解析添加方法 *.domain.com "),y("br"),c(" 如另加端口格式为 www.domain.com:88 "),y("br"),c(" IPv6格式:[2001:db8:85a3::8a2e:370:7334]:88 ")],-1))]}),_:1},8,["visible"])]}),_:1}),s(l,{label:"项目目录",prop:"site_path"},{default:w(function(){return[s(u,{modelValue:h(M).site_path,"onUpdate:modelValue":t[3]||(t[3]=function(e){return h(M).site_path=e}),placeholder:"请输入项目目录",icon:"el-folder-opened",width:"52rem",onFocus:t[4]||(t[4]=function(e){return G.value=!0}),onBlur:K,onIconClick:$},null,8,["modelValue"])]}),_:1}),s(l,{label:"swoole版本"},{default:w(function(){return[y("div",Re,[y("div",null,[s(i,{modelValue:h(M).swoole_version,"onUpdate:modelValue":t[5]||(t[5]=function(e){return h(M).swoole_version=e}),class:"!w-[8rem]",onChange:ce},{default:w(function(){return[s(o,{label:"2.x",value:2}),s(o,{label:"4.x",value:4}),s(o,{label:"5.x",value:5})]}),_:1},8,["modelValue"])]),s(l,{label:"PHP版本",prop:"php_version"},{default:w(function(){var e,a,r;return[y("div",Be,[s(i,{modelValue:h(M).php_version,"onUpdate:modelValue":t[6]||(t[6]=function(e){return h(M).php_version=e}),placeholder:"请选择PHP版本",class:"!w-[14rem]",onChange:ae},{default:w(function(){return[(m(!0),b(x,null,j(h(T),function(e,n){return m(),_(o,{key:n,disabled:!e.setup_status,label:"PHP-".concat(e.php_version),value:e.php_version},{default:w(function(){return[y("span",null,"PHP-"+U(e.php_version),1),e.setup_status?g("",!0):(m(),b(x,{key:0},[t[17]||(t[17]=c(" [ ",-1)),y("span",{class:"mx-[4px] bt-link",onClick:function(n){return J(e.php_version)}},"未安装",8,Je),t[18]||(t[18]=c(" ] ",-1))],64))]}),_:2},1032,["disabled","label","value"])}),128))]}),_:1},8,["modelValue"]),h(M).php_version?(m(),b(x,{key:0},[null!==(e=h(E))&&void 0!==e&&e.swoole_status?null!==(a=h(E))&&void 0!==a&&a.setup_swoole_isactive||null===(r=h(E))||void 0===r||!r.swoole_version?g("",!0):(m(),b("span",Ke,[c(" 当前php未安装swoole"+U(h(M).swoole_version)+"扩展 ",1),s(p,{class:"ml-[4px]",onClick:Y},{default:w(function(){return n(t[21]||(t[21]=[c(">>立即安装",-1)]))}),_:1})])):(m(),b("span",$e,[t[20]||(t[20]=c(" 当前php未安装swoole扩展 ",-1)),s(p,{class:"ml-[4px]",onClick:Y},{default:w(function(){return n(t[19]||(t[19]=[c(">>立即安装",-1)]))}),_:1})]))],64)):g("",!0)])]}),_:1})])]}),_:1}),s(l,{label:"数据库"},{default:w(function(){return[y("div",We,[s(i,{class:"!w-[16rem]",modelValue:h(M).sql,"onUpdate:modelValue":t[7]||(t[7]=function(e){return h(M).sql=e}),disabled:!h(D).database},{default:w(function(){return[s(o,{label:"不创建",value:!1}),s(o,{label:"MySQL",value:"MYSQL"})]}),_:1},8,["modelValue","disabled"]),h(D).database?g("",!0):(m(),b("span",{key:0,onClick:t[8]||(t[8]=function(e){return J("mysql")}),class:"ml-[4px] text-danger cursor-pointer !text-small"},"未安装数据库,点击安装")),h(M).sql?(m(),_(i,{key:1,class:"!w-[16rem] ml-[8px]",modelValue:h(M).codeing,"onUpdate:modelValue":t[9]||(t[9]=function(e){return h(M).codeing=e})},{default:w(function(){return[s(o,{label:"utf8mb4",value:"utf8mb4"}),s(o,{label:"utf8",value:"utf8"}),s(o,{label:"gbk",value:"gbk"}),s(o,{label:"big5",value:"big5"})]}),_:1},8,["modelValue"])):g("",!0)])]}),_:1}),h(M).sql?(m(),_(l,{key:0,label:"数据库账号"},{default:w(function(){return[y("div",Ye,[s(l,{prop:"datauser"},{default:w(function(){return[s(a,{placeholder:"创建数据库账号",class:"w-[24rem]",modelValue:h(M).datauser,"onUpdate:modelValue":t[10]||(t[10]=function(e){return h(M).datauser=e})},null,8,["modelValue"])]}),_:1}),s(l,{label:"密码",class:"!mt-0"},{default:w(function(){return[s(a,{placeholder:"数据库密码",class:"w-[24rem]",modelValue:h(M).datapassword,"onUpdate:modelValue":t[11]||(t[11]=function(e){return h(M).datapassword=e})},null,8,["modelValue"])]}),_:1})]),t[22]||(t[22]=y("span",{class:"text-tertiary text-small"},"创建站点的同时,为站点创建一个对应的数据库帐户,方便不同站点使用不同数据库。",-1))]}),_:1})):g("",!0),s(l,{label:"运行用户"},{default:w(function(){return[s(i,{class:"!w-[16rem]",modelValue:h(M).run_user,"onUpdate:modelValue":t[12]||(t[12]=function(e){return h(M).run_user=e})},{default:w(function(){return[(m(!0),b(x,null,j(h(z),function(e){return m(),_(o,{key:e,label:e,value:e},null,8,["label","value"])}),128))]}),_:1},8,["modelValue"]),t[23]||(t[23]=y("span",{class:"text-tertiary text-small ml-[.4rem]"},"* 无特殊需求请选择www用户",-1))]}),_:1}),s(l,{label:"启动命令",prop:"project_cmd"},{default:w(function(){return[s(a,{modelValue:h(M).project_cmd,"onUpdate:modelValue":t[13]||(t[13]=function(e){return h(M).project_cmd=e}),width:"52rem",placeholder:"请输入项目的启动命令,例:php serve.php"},null,8,["modelValue"])]}),_:1}),s(l,{label:"依赖安装"},{default:w(function(){return[s(i,{class:"!w-[16rem]",modelValue:h(M).composer_version,"onUpdate:modelValue":t[14]||(t[14]=function(e){return h(M).composer_version=e}),"empty-values":[null,void 0],onChange:ue},{default:w(function(){return[s(o,{label:"不安装",value:""}),s(o,{label:"用composer2.7.3安装",value:"2.7.3"}),s(o,{label:"用composer1.10.27安装",value:"1.10.27"})]}),_:1},8,["modelValue"])]}),_:1}),s(l,{label:"备注"},{default:w(function(){return[s(a,{modelValue:h(M).project_ps,"onUpdate:modelValue":t[15]||(t[15]=function(e){return h(M).project_ps=e}),placeholder:"请输入备注,可为空",width:"52rem"},null,8,["modelValue"])]}),_:1})]}),_:1},8,["disabled","model","rules"]),s(v,{class:"mt-2rem pl-1rem",options:B})])}}}),Ze=Y(Xe,[["__scopeId","data-v-e54823e3"]]),en={class:"flex"},nn={class:"mr-2rem"},tn={key:1,class:"!text-small"},an={class:"flex items-center"},rn={class:"flex items-center mb-[4px]"},ln=a({__name:"index",props:{compData:{default:{}}},setup:function(e,t){var a=t.expose,l=e,p=A().panel,v=Ie().isRefreshList,P=ae(),U=V({database:!1}),O=o(),D=o(!1),H=o({site_path:"/www/wwwroot",project_cmd:"php think run",install_dependence:0,php_version:"",thinkphp_version:!0,domains:"",sql:!1,project_ps:"",project_port:"",codeing:"utf8mb4",open_proxy:!1,project_proxy_path:"",datauser:"",datapassword:"",run_user:"www",composer_version:""}),L=o(!1),M=o([]),F=o([]),T=o({}),z=o(!1),G="/www/wwwroot/",E=[{content:"当前仅支持nginx服务器使用"},{content:"【fileinfo版本】若未安装,项目会启动失败"},{content:s(x,null,[c("【自动安装项目依赖】只尝试"),s("span",{class:"text-danger"},[c("composer install")]),c("进行安装依赖,最终安装结果请前往 项目-日志-安装依赖日志 进行确认,若安装依赖不成功,项目会"),s("span",{class:"text-danger"},[c("启动失败")])])},{content:"安装依赖不成功,可能和composer版本有关,可尝试切换composer版本"}],Q=function(){Ue({type:"dir",path:H.value.site_path.replace(/\/$/,""),change:function(e){Z(e,"string",""),H.value.site_path=e,z.value=!0,B()}})},B=function(){var e=i(u().m(function e(){var n,t;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,pe({path:H.value.site_path});case 1:n=e.v,H.value.composer_version=n.data?"2.7.3":"",H.value.install_dependence=n.data?1:0,e.n=3;break;case 2:e.p=2,t=e.v,console.log(t);case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),J=function(){var e=i(u().m(function e(n){var t,a;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,X({sName:n});case 1:t=e.v,a=t.data,qe({name:a.name,type:"i",pluginInfo:a});case 2:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),$=function(){var e=i(u().m(function e(){var n,t,a;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,me();case 1:t=e.v,M.value=t.data.filter(function(e){return"纯静态"!==e.name}),M.value=M.value.reverse(),H.value.php_version=null!==(n=M.value)&&void 0!==n&&n.length?M.value[0].version:"",e.n=3;break;case 2:e.p=2,a=e.v,console.log(a);case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),K=function(){var e=i(u().m(function e(){var n,t,a,r=arguments;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return n=r.length>0&&void 0!==r[0]&&r[0],e.p=1,n&&(t=P.load("正在检查安装信息,请稍后...")),e.n=2,be({name:"fileinfo",php_version:H.value.php_version});case 2:a=e.v,n&&t.close(),T.value=a,e.n=4;break;case 3:e.p=3,e.v;case 4:return e.a(2)}},e,null,[[1,3]])}));return function(){return e.apply(this,arguments)}}(),Y=function(){var e=i(u().m(function e(){var n;return u().w(function(e){for(;;)switch(e.n){case 0:try{n="php-"+(Number(H.value.php_version)/10).toFixed(1),Ce({name:n})}catch(t){}case 1:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}(),re=function(){var e=i(u().m(function e(n){return u().w(function(e){for(;;)switch(e.n){case 0:H.value.php_version=n,K(!0);case 1:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),le=function(e,n){if(!e)return"";var t={}.randomLength,a=void 0===t?1:t;return Array.from(e).map(function(e){return":"===e||"."===e?"_":function(e){return e.charCodeAt(0)<=127}(e)?e:function(e){for(var n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",t="",a=0;a<e;a++)t+=n[Math.floor(52*Math.random())];return t}(a)}).join("")},ue=function(e){var n,t,a;"string"==typeof e&&(H.value.site_path&&H.value.site_path!==G.replace(/\/$/,"")||(z.value=!1),z.value||(H.value.site_path=(null===(n=G)||void 0===n?void 0:n.replace(/\/\//g,"/"))+(null===(t=e.split("\n")[0])||void 0===t||null===(t=t.replace(/:/g,"_"))||void 0===t?void 0:t.trim())),H.value.datauser=null===(a=le(e.split("\n")[0]))||void 0===a?void 0:a.substr(0,16),H.value.datapassword=ee(16),H.value.project_ps=e.split("\n")[0])},oe=function(e){var n,t=r(r({},e),{},{sql_user:e.datauser,sql_pwd:e.datapassword,sql_codeing:e.codeing,install_dependence:e.install_dependence?1:0,open_proxy:e.open_proxy?1:0,webname:{domain:"",domainlist:[],count:0}}),a=null===(n=e.domains)||void 0===n?void 0:n.split("\n");return a.forEach(function(e,n){0===n?t.webname.domain=e:t.webname.domainlist.push(a[n])}),t.webname.count=t.webname.domainlist.length,t.webname=JSON.stringify(t.webname),delete t.domains,delete t.datauser,delete t.datapassword,delete t.codeing,t},se=function(){var e=i(u().m(function e(n){var t,a;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,O.value.validate();case 1:if(T.value.status){e.n=2;break}return e.n=2,ne({width:50,title:"提示",isHtml:!0,content:"当前版本PHP-安装扩展未安装fileinfo,可能导致项目无法启动,是否继续操作?",icon:"warning-filled"});case 2:if(!H.value.domains.includes("[")){e.n=3;break}return e.n=3,Le();case 3:return t=oe(H.value),D.value=!0,e.n=4,R({loading:"正在添加thinkphp站点,请稍后...",request:de(t),message:!0});case 4:a=e.v,D.value=!1,a.status&&(v.value=!0,n());case 5:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),ie=function(){var e=i(u().m(function e(){var n;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,ve();case 1:n=e.v,F.value=n.data,e.n=3;break;case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),ce=function(){var e=i(u().m(function e(){var n,t,a;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,l.compData.getStatus();case 1:return n=e.v,U.database=n.mysql,(t=p.value.sitePath)&&(H.value.site_path=t,G=null===(a=t+"/")||void 0===a?void 0:a.replace(/\/\//g,"/")),e.n=2,$();case 2:return e.n=3,K();case 3:ie();case 4:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();return f(ce),a({init:ce,onConfirm:se}),function(e,t){var a=N,r=d,l=k,u=Fe,o=q,i=C,p=te,f=I,v=W;return m(),b("div",null,[s(f,{ref_key:"addThinkphpSiteFormRef",ref:O,disabled:h(D),model:h(H),rules:h(Oe)},{default:w(function(){return[s(l,{label:"绑定域名",prop:"domains"},{default:w(function(){return[s(r,{ref:"popover",placement:"top-start","popper-class":"green-tips-popover !p-0",title:"",width:"400",visible:h(L),"onUpdate:visible":t[2]||(t[2]=function(e){return S(L)?L.value=e:null}),"trigger-keys":[],trigger:"focus"},{reference:w(function(){return[s(a,{onInput:ue,modelValue:h(H).domains,"onUpdate:modelValue":t[0]||(t[0]=function(e){return h(H).domains=e}),type:"textarea",width:"52rem",rows:5,resize:"none",onFocus:t[1]||(t[1]=function(e){return L.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:w(function(){return[t[15]||(t[15]=y("div",{class:"!p-[12px] bg-primary text-white"},[c(" 如需填写多个域名,请换行填写,每行一个域名,默认为80端口 "),y("br"),c(" IP地址格式:192.168.1.199 "),y("br"),c(" 泛解析添加方法 *.domain.com "),y("br"),c(" 如另加端口格式为 www.domain.com:88 "),y("br"),c(" IPv6格式:[2001:db8:85a3::8a2e:370:7334]:88 ")],-1))]}),_:1},8,["visible"])]}),_:1}),s(l,{label:"项目目录",prop:"site_path"},{default:w(function(){return[s(u,{modelValue:h(H).site_path,"onUpdate:modelValue":t[3]||(t[3]=function(e){return h(H).site_path=e}),placeholder:"请输入项目目录",icon:"el-folder-opened",width:"52rem",onFocus:t[4]||(t[4]=function(e){return z.value=!0}),onIconClick:Q},null,8,["modelValue"])]}),_:1}),s(l,{label:"PHP版本"},{default:w(function(){return[y("div",en,[y("div",nn,[s(i,{class:"!w-[16rem]",modelValue:h(H).php_version,"onUpdate:modelValue":t[5]||(t[5]=function(e){return h(H).php_version=e}),onChange:re},{default:w(function(){return[(m(!0),b(x,null,j(h(M),function(e){return m(),_(o,{key:e.value,label:e.name,value:e.version},null,8,["label","value"])}),128))]}),_:1},8,["modelValue"])]),s(l,{label:"fileinfo版本"},{default:w(function(){return[h(T).status?(m(),b("span",tn,"当前php已安装fileinfo扩展")):(m(),_(p,{key:0,onClick:Y},{default:w(function(){return n(t[16]||(t[16]=[c("当前php未安装fileinfo扩展 >>立即安装",-1)]))}),_:1}))]}),_:1})])]}),_:1}),s(l,{label:"数据库"},{default:w(function(){return[y("div",an,[s(i,{class:"!w-[16rem]",modelValue:h(H).sql,"onUpdate:modelValue":t[6]||(t[6]=function(e){return h(H).sql=e}),disabled:!h(U).database},{default:w(function(){return[s(o,{label:"不创建",value:!1}),s(o,{label:"MySQL",value:"MYSQL"})]}),_:1},8,["modelValue","disabled"]),h(U).database?g("",!0):(m(),b("span",{key:0,onClick:t[7]||(t[7]=function(e){return J("mysql")}),class:"ml-[4px] text-danger cursor-pointer !text-small"},"未安装数据库,点击安装")),h(H).sql?(m(),_(i,{key:1,class:"ml-[8px] !w-[16rem]",modelValue:h(H).codeing,"onUpdate:modelValue":t[8]||(t[8]=function(e){return h(H).codeing=e})},{default:w(function(){return[s(o,{label:"utf8mb4",value:"utf8mb4"}),s(o,{label:"utf8",value:"utf8"}),s(o,{label:"gbk",value:"gbk"}),s(o,{label:"big5",value:"big5"})]}),_:1},8,["modelValue"])):g("",!0)])]}),_:1}),h(H).sql?(m(),_(l,{key:0,label:"数据库账号"},{default:w(function(){return[y("div",rn,[s(l,{prop:"datauser"},{default:w(function(){return[s(a,{placeholder:"创建数据库账号",class:"w-[24rem]",modelValue:h(H).datauser,"onUpdate:modelValue":t[9]||(t[9]=function(e){return h(H).datauser=e})},null,8,["modelValue"])]}),_:1}),s(l,{label:"密码",class:"!mt-0"},{default:w(function(){return[s(a,{placeholder:"数据库密码",class:"w-[24rem]",modelValue:h(H).datapassword,"onUpdate:modelValue":t[10]||(t[10]=function(e){return h(H).datapassword=e})},null,8,["modelValue"])]}),_:1})]),t[17]||(t[17]=y("span",{class:"text-tertiary text-small"},"创建站点的同时,为站点创建一个对应的数据库帐户,方便不同站点使用不同数据库。",-1))]}),_:1})):g("",!0),s(l,{label:"运行用户"},{default:w(function(){return[s(i,{class:"!w-[16rem]",modelValue:h(H).run_user,"onUpdate:modelValue":t[11]||(t[11]=function(e){return h(H).run_user=e})},{default:w(function(){return[(m(!0),b(x,null,j(h(F),function(e){return m(),_(o,{key:e,label:e,value:e},null,8,["label","value"])}),128))]}),_:1},8,["modelValue"]),t[18]||(t[18]=y("span",{class:"text-tertiary text-small ml-[.4rem]"},"* 无特殊需求请选择www用户",-1))]}),_:1}),s(l,{label:"启动命令",prop:"project_cmd"},{default:w(function(){return[s(a,{modelValue:h(H).project_cmd,"onUpdate:modelValue":t[12]||(t[12]=function(e){return h(H).project_cmd=e}),width:"52rem",placeholder:"请输入项目的启动命令,例:php serve.php"},null,8,["modelValue"])]}),_:1}),s(l,{label:"依赖安装"},{default:w(function(){return[s(i,{class:"!w-[16rem]",modelValue:h(H).composer_version,"onUpdate:modelValue":t[13]||(t[13]=function(e){return h(H).composer_version=e}),"empty-values":[null,void 0]},{default:w(function(){return[s(o,{label:"不安装",value:""}),s(o,{label:"用composer2.7.3安装",value:"2.7.3"}),s(o,{label:"用1.10.27安装",value:"1.10.27"})]}),_:1},8,["modelValue"])]}),_:1}),s(l,{label:"备注"},{default:w(function(){return[s(a,{modelValue:h(H).project_ps,"onUpdate:modelValue":t[14]||(t[14]=function(e){return h(H).project_ps=e}),placeholder:"请输入备注,可为空",width:"52rem"},null,8,["modelValue"])]}),_:1})]}),_:1},8,["disabled","model","rules"]),s(v,{class:"mt-2rem pl-1rem",options:E})])}}}),un=Y(ln,[["__scopeId","data-v-51cb38fd"]]),on={class:"flex items-center"},sn={class:"flex items-center mb-[4px]"},cn=a({__name:"index",props:{compData:{default:{}}},setup:function(e,n){var t=n.expose,a=e,l=A().panel,p=Ie().isRefreshList,v=V({database:!1}),P=o(),U=o(!1),O=o({site_path:"/www/wwwroot",project_cmd:"",install_dependence:0,php_version:"",domains:"",sql:!1,project_ps:"",project_port:"",codeing:"utf8mb4",open_proxy:!1,project_proxy_path:"",datauser:"",datapassword:"",run_user:"www",composer_version:""}),D=o(!1),H=o([]),L=o([]),M=o(!1),F="/www/wwwroot/",T=[{content:"当前仅支持nginx服务器使用"},{content:s(x,null,[c("【自动安装项目依赖】只尝试"),s("span",{class:"text-danger"},[c("composer install")]),c("进行安装依赖,最终安装结果请前往 项目-日志-安装依赖日志 进行确认,若安装依赖不成功,项目会"),s("span",{class:"text-danger"},[c("启动失败")])])},{content:"安装依赖不成功,可能和composer版本有关,可尝试切换composer版本"}],z=function(){Ue({type:"dir",path:O.value.site_path.replace(/\/$/,""),change:function(e){Z(e,"string",""),O.value.site_path=e,M.value=!0,G()}})},G=function(){var e=i(u().m(function e(){var n,t;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,pe({path:O.value.site_path});case 1:n=e.v,O.value.composer_version=n.data?"2.7.3":"",O.value.install_dependence=n.data?1:0,e.n=3;break;case 2:e.p=2,t=e.v,console.log(t);case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),E=function(){var e=i(u().m(function e(n){var t,a;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,X({sName:n});case 1:t=e.v,a=t.data,qe({name:a.name,type:"i",pluginInfo:a});case 2:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),Q=function(){var e=i(u().m(function e(){var n,t,a;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,me();case 1:t=e.v,H.value=t.data.filter(function(e){return"纯静态"!==e.name}),H.value=H.value.reverse(),O.value.php_version=null!==(n=H.value)&&void 0!==n&&n.length?H.value[0].version:"",e.n=3;break;case 2:e.p=2,a=e.v,console.log(a);case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),B=function(e,n){if(!e)return"";var t={}.randomLength,a=void 0===t?1:t;return Array.from(e).map(function(e){return":"===e||"."===e?"_":function(e){return e.charCodeAt(0)<=127}(e)?e:function(e){for(var n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",t="",a=0;a<e;a++)t+=n[Math.floor(52*Math.random())];return t}(a)}).join("")},J=function(e){var n,t,a;"string"==typeof e&&(O.value.site_path&&O.value.site_path!==F.replace(/\/$/,"")||(M.value=!1),M.value||(O.value.site_path=(null===(n=F)||void 0===n?void 0:n.replace(/\/\//g,"/"))+(null===(t=e.split("\n")[0])||void 0===t||null===(t=t.replace(/:/g,"_"))||void 0===t?void 0:t.trim())),O.value.datauser=null===(a=B(e.split("\n")[0]))||void 0===a?void 0:a.substr(0,16),O.value.datapassword=ee(16),O.value.project_ps=e.split("\n")[0])},$=function(e){var n,t=r(r({},e),{},{sql_user:e.datauser,sql_pwd:e.datapassword,sql_codeing:e.codeing,install_dependence:e.install_dependence?1:0,open_proxy:e.open_proxy?1:0,webname:{domain:"",domainlist:[],count:0}}),a=null===(n=e.domains)||void 0===n?void 0:n.split("\n");return a.forEach(function(e,n){0===n?t.webname.domain=e:t.webname.domainlist.push(a[n])}),t.webname.count=t.webname.domainlist.length,t.webname=JSON.stringify(t.webname),delete t.domains,delete t.datauser,delete t.datapassword,delete t.codeing,t},K=function(){var e=i(u().m(function e(n){var t,a;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,P.value.validate();case 1:if(t=$(O.value),!O.value.domains.includes("[")){e.n=2;break}return e.n=2,Le();case 2:return U.value=!0,e.n=3,R({loading:"正在添加异步站点,请稍后...",request:de(t),message:!0});case 3:a=e.v,U.value=!1,a.status&&(p.value=!0,n());case 4:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),Y=function(){var e=i(u().m(function e(){var n;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,ve();case 1:n=e.v,L.value=n.data,e.n=3;break;case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),ne=function(){var e=i(u().m(function e(){var n,t,r;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,a.compData.getStatus();case 1:n=e.v,v.database=n.mysql,(t=l.value.sitePath)&&(O.value.site_path=t,F=null===(r=t+"/")||void 0===r?void 0:r.replace(/\/\//g,"/")),Q(),Y();case 2:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();return f(ne),t({init:ne,onConfirm:K}),function(e,n){var t=N,a=d,r=k,l=Fe,u=q,o=C,i=I,p=W;return m(),b("div",null,[s(i,{ref_key:"addUniversalSiteFormRef",ref:P,disabled:h(U),model:h(O),rules:h(Oe)},{default:w(function(){return[s(r,{label:"绑定域名",prop:"domains"},{default:w(function(){return[s(a,{ref:"popover",placement:"top-start","popper-class":"green-tips-popover !p-0",title:"",width:"400",visible:h(D),"onUpdate:visible":n[2]||(n[2]=function(e){return S(D)?D.value=e:null}),"trigger-keys":[],trigger:"focus"},{reference:w(function(){return[s(t,{onInput:J,modelValue:h(O).domains,"onUpdate:modelValue":n[0]||(n[0]=function(e){return h(O).domains=e}),type:"textarea",width:"52rem",rows:5,resize:"none",onFocus:n[1]||(n[1]=function(e){return D.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:w(function(){return[n[15]||(n[15]=y("div",{class:"!p-[12px] bg-primary text-white"},[c(" 如需填写多个域名,请换行填写,每行一个域名,默认为80端口 "),y("br"),c(" IP地址格式:192.168.1.199 "),y("br"),c(" 泛解析添加方法 *.domain.com "),y("br"),c(" 如另加端口格式为 www.domain.com:88 "),y("br"),c(" IPv6格式:[2001:db8:85a3::8a2e:370:7334]:88 ")],-1))]}),_:1},8,["visible"])]}),_:1}),s(r,{label:"项目目录",prop:"site_path"},{default:w(function(){return[s(l,{modelValue:h(O).site_path,"onUpdate:modelValue":n[3]||(n[3]=function(e){return h(O).site_path=e}),placeholder:"请输入项目目录",icon:"el-folder-opened",width:"52rem",onFocus:n[4]||(n[4]=function(e){return M.value=!0}),onIconClick:z},null,8,["modelValue"])]}),_:1}),s(r,{label:"PHP版本"},{default:w(function(){return[s(o,{class:"!w-[16rem]",modelValue:h(O).php_version,"onUpdate:modelValue":n[5]||(n[5]=function(e){return h(O).php_version=e})},{default:w(function(){return[(m(!0),b(x,null,j(h(H),function(e){return m(),_(u,{key:e.value,label:e.name,value:e.version},null,8,["label","value"])}),128))]}),_:1},8,["modelValue"])]}),_:1}),s(r,{label:"数据库"},{default:w(function(){return[y("div",on,[s(o,{class:"!w-[16rem]",modelValue:h(O).sql,"onUpdate:modelValue":n[6]||(n[6]=function(e){return h(O).sql=e}),disabled:!h(v).database},{default:w(function(){return[s(u,{label:"不创建",value:!1}),s(u,{label:"MySQL",value:"MYSQL"})]}),_:1},8,["modelValue","disabled"]),h(v).database?g("",!0):(m(),b("span",{key:0,onClick:n[7]||(n[7]=function(e){return E("mysql")}),class:"ml-[4px] text-danger cursor-pointer !text-small"},"未安装数据库,点击安装")),h(O).sql?(m(),_(o,{key:1,class:"ml-[8px] !w-[16rem]",modelValue:h(O).codeing,"onUpdate:modelValue":n[8]||(n[8]=function(e){return h(O).codeing=e})},{default:w(function(){return[s(u,{label:"utf8mb4",value:"utf8mb4"}),s(u,{label:"utf8",value:"utf8"}),s(u,{label:"gbk",value:"gbk"}),s(u,{label:"big5",value:"big5"})]}),_:1},8,["modelValue"])):g("",!0)])]}),_:1}),h(O).sql?(m(),_(r,{key:0,label:"数据库账号"},{default:w(function(){return[y("div",sn,[s(r,{prop:"datauser"},{default:w(function(){return[s(t,{placeholder:"创建数据库账号",class:"w-[24rem]",modelValue:h(O).datauser,"onUpdate:modelValue":n[9]||(n[9]=function(e){return h(O).datauser=e})},null,8,["modelValue"])]}),_:1}),s(r,{label:"密码",class:"!mt-0"},{default:w(function(){return[s(t,{placeholder:"数据库密码",class:"w-[24rem]",modelValue:h(O).datapassword,"onUpdate:modelValue":n[10]||(n[10]=function(e){return h(O).datapassword=e})},null,8,["modelValue"])]}),_:1})]),n[16]||(n[16]=y("span",{class:"text-tertiary text-small"},"创建站点的同时,为站点创建一个对应的数据库帐户,方便不同站点使用不同数据库。",-1))]}),_:1})):g("",!0),s(r,{label:"运行用户"},{default:w(function(){return[s(o,{class:"!w-[16rem]",modelValue:h(O).run_user,"onUpdate:modelValue":n[11]||(n[11]=function(e){return h(O).run_user=e})},{default:w(function(){return[(m(!0),b(x,null,j(h(L),function(e){return m(),_(u,{key:e,label:e,value:e},null,8,["label","value"])}),128))]}),_:1},8,["modelValue"]),n[17]||(n[17]=y("span",{class:"text-tertiary text-small ml-[.4rem]"},"* 无特殊需求请选择www用户",-1))]}),_:1}),s(r,{label:"启动命令",prop:"project_cmd"},{default:w(function(){return[s(t,{modelValue:h(O).project_cmd,"onUpdate:modelValue":n[12]||(n[12]=function(e){return h(O).project_cmd=e}),width:"52rem",placeholder:"请输入项目的启动命令,例:php serve.php"},null,8,["modelValue"])]}),_:1}),s(r,{label:"依赖安装"},{default:w(function(){return[s(o,{class:"!w-[16rem]",modelValue:h(O).composer_version,"onUpdate:modelValue":n[13]||(n[13]=function(e){return h(O).composer_version=e}),"empty-values":[null,void 0]},{default:w(function(){return[s(u,{label:"不安装",value:""}),s(u,{label:"用2.7.3安装",value:"2.7.3"}),s(u,{label:"用1.10.27安装",value:"1.10.27"})]}),_:1},8,["modelValue"])]}),_:1}),s(r,{label:"备注"},{default:w(function(){return[s(t,{modelValue:h(O).project_ps,"onUpdate:modelValue":n[14]||(n[14]=function(e){return h(O).project_ps=e}),placeholder:"请输入备注,可为空",width:"52rem"},null,8,["modelValue"])]}),_:1})]}),_:1},8,["disabled","model","rules"]),s(p,{class:"mt-2rem pl-1rem",options:T})])}}}),pn=Y(cn,[["__scopeId","data-v-72265d7e"]]),dn={class:"pb-0 w-full"},fn={class:"py-[8px] px-[12px] text-secondary bg-[var(--el-color-success-light-9)] !w-full block flex items-center"},vn={class:"inline-grid grid-cols-3 text-small gap-x-6 gap-y-2 !w-[60rem] !h-[12.3rem]"},mn=["onClick"],bn={class:"flex flex-col text-secondary"},wn={class:"w-full flex items-center"},hn={class:"flex flex-col items-start leading-9 w-full"},_n={class:"truncate font-bold"},yn={class:"w-[14rem] truncate"},gn={class:"flex items-center"},xn={key:0,class:"svgtofont-el-success-filled text-iconLarge mr-[8px]"},kn={class:"flex flex-col items-start leading-9 w-full"},Vn={key:0,class:"truncate font-bold"},Sn={class:"flex flex-col bg-light p-[12px] px-[16px] text-small w-full"},Pn={class:"flex items-center justify-between"},jn={class:"text-tertiary flex items-center text-small p-[12px] px-[16px]"},Un={class:"p-[20px]"},qn={class:"flex items-center mb-[4px]"},Cn=a({__name:"index",props:{compData:{default:{}}},setup:function(e,a){var r=a.expose,p=e,v=A().panel,M=Ie().isRefreshList,F=ae(),T=o([]),z=o(0),G=o(!1),E=o(),Q=o(!1),R=l("popupClose"),B="/www/wwwroot/",J=o({menuType:"addDeployment",path:"/www/wwwroot",ftp:!1,type:"PHP",type_id:0,ps:"",port:"",version:"",need_index:0,need_404:0,sql:!1,codeing:"utf8mb4",webname:"",ftp_username:"",ftp_password:"",datauser:"",datapassword:""}),$=o({ftp:!0,ftpData:{username:"",password:""},sql:!0,databaseStatus:!0,sqlData:{username:"",password:""},siteStatus:!1,site:{name:""}}),K=o({isSetup:!1,versions:[],version:"",code:"utf8mb4"}),W=o({title:"111",version:"222"}),Y=V({datauser:"",datapassword:"",type:"MySQL",code:"utf8mb4",version:""}),X=o(null),Z=o([]),ne=o(!1),se=o(!1),ie=o([]),ce=function(){Ue({type:"dir",path:J.value.path,change:function(e){J.value.path=e}})},pe=function(e,n){if(!e)return"";var t={}.randomLength,a=void 0===t?1:t;return Array.from(e).map(function(e){return":"===e||"."===e?"_":function(e){return e.charCodeAt(0)<=127}(e)?e:function(e){for(var n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",t="",a=0;a<e;a++)t+=n[Math.floor(52*Math.random())];return t}(a)}).join("")},de=function(e){var n,t,a;"string"==typeof e&&(J.value.ps=e.split("\n")[0],J.value.path=(null===(n=B)||void 0===n?void 0:n.replace(/\/\//g,"/"))+(null===(t=e.split("\n")[0])||void 0===t||null===(t=t.replace(/:/g,"_"))||void 0===t?void 0:t.trim()),J.value.datapassword=ee(),J.value.datauser=null===(a=pe(e.split("\n")[0]))||void 0===a?void 0:a.substring(0,16))},fe=function(){var e=i(u().m(function e(n){var t,a,r;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,t="php-"+(Number(n)/10).toFixed(1),e.n=1,we({sName:t});case 1:a=e.v,r=a.data,qe({name:t,type:"i",pluginInfo:r}),e.n=3;break;case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}));return function(n){return e.apply(this,arguments)}}(),ve=function(){var e=i(u().m(function e(){var n,t;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,ye();case 1:n=e.v,t=n.data,T.value=t.list,Z.value=t.list,X.value=t,e.n=3;break;case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),be=function(){re({isAsync:!0,title:"模板",area:84,component:function(){return le(function(){return t.import("./other-template-legacy.js?v=1777008528")},void 0,t.meta.url)},compData:{templateData:X.value,templateId:z.value,selectTemplate:Pe}})},ge=function(){ne.value=!0,Y.datauser=J.value.datauser,Y.datapassword=J.value.datapassword,Y.version=K.value.version},xe=function(){var e=i(u().m(function e(n){var t,a;return u().w(function(e){for(;;)switch(e.n){case 0:t=null==n?void 0:n.php.split(","),a=K.value.versions.filter(function(e){return t.includes(e.version)}).map(function(e){return e.version}),ie.value=t.map(function(e){return{name:"PHP-"+e,version:e,status:a.includes(e)}}),K.value.version=a[a.length-1],Y.version=K.value.version,J.value.version=K.value.version;case 1:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),ke=function(){var e=i(u().m(function e(){var n,t;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,p.compData.getStatus();case 1:return n=e.v,e.n=2,me();case 2:t=e.v,K.value.isSetup=n.mysql,K.value.versions=t.data.filter(function(e){return"00"!==e.version}),e.n=4;break;case 3:e.p=3,e.v;case 4:return e.a(2)}},e,null,[[0,3]])}));return function(){return e.apply(this,arguments)}}(),Ve=function(){var e=i(u().m(function e(){return u().w(function(e){for(;;)switch(e.n){case 0:ne.value=!1,J.value.datauser=Y.datauser,J.value.datapassword=Y.datapassword,J.value.codeing=Y.code,K.value.version=Y.version,K.value.code=Y.code,J.value.version=K.value.version;case 1:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}(),Se=function(){var e=i(u().m(function e(n){var a,r,l,o,s,i,c,p,d;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:if((a=Object.assign({},J.value)).ftp?($.value.ftpData.username=a.ftp_username,$.value.ftpData.password=a.ftp_password):(delete a.ftp_username,delete a.ftp_password,$.value.ftp=!1),a.sql?($.value.sqlData.username=a.user,$.value.sqlData.password=a.password):(delete a.datauser,delete a.datapassword,$.value.sql=!1),r=a.webname.split("\n")[0].trim(),l=r.match(/:(\d+)$/),a.port=l?parseInt(l[1],10):80,!a.webname.includes("[")){e.n=1;break}return e.n=1,Le();case 1:return(o=a.webname.split("\n")).shift(),a.webname=JSON.stringify({domain:a.webname.split("\n")[0],domainlist:o,count:o.length}),delete a.menuType,s=null,e.n=2,E.value.validate();case 2:return e.p=2,G.value=!0,s=F.load("正在部署中..."),e.n=3,he(a);case 3:if(!1!==(i=e.v).data.status){e.n=4;break}return e.a(2,F.msg({customClass:"bt-message-error-html",dangerouslyUseHTMLString:!0,message:i.status?"添加网站成功":i.msg,type:i.status?"success":"error",duration:i.status?3e3:0,showClose:!i.status}));case 4:return i.status&&R(),e.n=5,_e({source:1,site_name:JSON.parse(a.webname).domain,php_version:a.version,dname:T.value.find(function(e){return e.id===z.value}).name});case 5:c=e.v,p=c.data,s.close(),i.data.siteStatus&&($.value.siteStatus=!0,$.value.site.name=JSON.parse(a.webname).domain+p.msg.success_url),a.ftp||a.sql?($.value.sqlData.username=a.datauser,$.value.sqlData.password=a.datapassword,$.value.databaseStatus=i.data.databaseStatus,re({isAsync:!0,title:"网站添加结果",area:46,component:function(){return le(function(){return t.import("./add-result-legacy.js?v=1777008528")},void 0,t.meta.url)},compData:$.value})):F.msg({customClass:"bt-message-error-html",dangerouslyUseHTMLString:!0,message:i.data.status?"添加网站成功":i.data.msg,type:i.data.status?"success":"error",duration:i.data.status?3e3:0,showClose:!i.data.status}),M.value=!0,e.n=7;break;case 6:e.p=6,e.v;case 7:return e.p=7,null===(d=s)||void 0===d||d.close(),G.value=!1,e.f(7);case 8:return e.a(2)}},e,null,[[2,6,7,8]])}));return function(n){return e.apply(this,arguments)}}(),Pe=function(e){z.value=e;var n=Z.value.findIndex(function(n){return n.id===e});n<5?(W.value={},xe(Z.value[n])):(W.value=Z.value.find(function(n){return n.id===e}),xe(W.value)),J.value.datauser="sql"+ee(6),J.value.datapassword=ee(6,"password")};D(function(){return K.value.version},function(){J.value.version=K.value.version});var je=function(){var e=i(u().m(function e(){var n,t,a,r;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,se.value=!0,e.n=1,ke();case 1:return e.n=2,ve();case 2:return z.value=null===(n=Z.value[0])||void 0===n?void 0:n.id,e.n=3,xe(Z.value[0]);case 3:Pe(null===(t=Z.value[0])||void 0===t?void 0:t.id),se.value=!1,J.value.sql="MySQL",W.value={},(a=v.value.sitePath)&&(J.value.path=a,B=null===(r=a+"/")||void 0===r?void 0:r.replace(/\/\//g,"/")),e.n=5;break;case 4:e.p=4,e.v,se.value=!1;case 5:return e.a(2)}},e,null,[[0,4]])}));return function(){return e.apply(this,arguments)}}();return f(je),r({init:je,onConfirm:Se}),function(e,t){var a=te,r=ue,l=d,u=k,o=N,i=Fe,p=I,f=q,v=C,V=oe,D=O;return m(),b("div",dn,[y("span",fn,[t[12]||(t[12]=c(" 快速的部署网站程序,商城、论坛、博客、框架等程序, ",-1)),s(a,{href:"https://www.bt.cn/bbs/thread-33063-1-1.html"},{default:w(function(){return n(t[11]||(t[11]=[c(" 免费入驻平台 ",-1)]))}),_:1})]),s(p,{model:h(J),rules:h(Oe),class:"pt-[12px]",ref_key:"addDeploySiteFormRef",ref:E},{default:w(function(){return[s(u,{label:"模板部署",class:""},{default:w(function(){var e,u;return[y("div",vn,[(m(!0),b(x,null,j(h(Z),function(e,n){return P((m(),b("div",{key:e.id,class:H([{"template-focus":h(z)===e.id},"mb-[4px] w-full flex items-center border border-darker py-[4px] px-[8px] rounded-base cursor-pointer template-hover"]),onClick:function(n){return function(e){z.value=e.id,Pe(e.id)}(e)}},[s(l,{ref_for:!0,ref:"popover",placement:"top-start",width:"200","popper-class":"white-tips-popover",trigger:"hover"},{reference:w(function(){return[y("div",wn,[s(r,{src:"/site_dep_ico/".concat(e.name.toLowerCase(),".png"),class:"w-[3.6rem] mr-[4px]"},null,8,["src"]),y("div",hn,[y("span",_n,U(e.title)+" "+U(e.version),1),y("span",yn,U(e.ps.split("<")[0]),1)])])]}),default:w(function(){return[y("div",bn,[y("span",null,"名称:"+U(e.title),1),y("span",null,"版本:"+U(e.version),1),y("span",null,"简介:"+U(e.ps.split("<")[0]),1),y("span",null,[t[13]||(t[13]=c("官网:",-1)),s(a,{href:e.official,target:"_blank"},{default:w(function(){return[c(U(e.official),1)]}),_:2},1032,["href"])]),y("span",null,"评价:"+U(e.score),1)])]}),_:2},1536)],10,mn)),[[L,n<5]])}),128)),y("div",{onClick:be,class:H([{"justify-center":!h(W).id,"template-focus":h(W).id},"mb-[4px] w-full flex items-center border border-darker py-[4px] px-[12px] rounded-base cursor-pointer template-hover"])},[y("div",gn,[null!==(e=h(W))&&void 0!==e&&e.id?(m(),b("i",xn)):g("",!0),y("div",kn,[null!==(u=h(W))&&void 0!==u&&u.id?(m(),b("span",Vn,U(h(W).title)+" "+U(h(W).version),1)):g("",!0),s(a,null,{default:w(function(){return n(t[14]||(t[14]=[c("更多模板 >>",-1)]))}),_:1})])])],2)])]}),_:1}),s(u,{label:"域名",prop:"webname"},{default:w(function(){return[s(l,{ref:"popover",placement:"top-start","popper-class":"green-tips-popover !p-0",title:"",width:"400",visible:h(Q),"onUpdate:visible":t[2]||(t[2]=function(e){return S(Q)?Q.value=e:null}),"trigger-keys":[],trigger:"focus"},{reference:w(function(){return[P(s(o,{onInput:de,modelValue:h(J).webname,"onUpdate:modelValue":t[0]||(t[0]=function(e){return h(J).webname=e}),type:"textarea",width:"52rem",rows:4,resize:"none",onFocus:t[1]||(t[1]=function(e){return Q.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"]),[[D,void 0,"popover"]])]}),default:w(function(){return[t[15]||(t[15]=y("div",{class:"!p-[12px] bg-primary text-white"},[c(" 如需填写多个域名,请换行填写,每行一个域名,默认为80端口 "),y("br"),c(" IP地址格式:192.168.1.199 "),y("br"),c(" 泛解析添加方法 *.domain.com "),y("br"),c(" 如另加端口格式为 www.domain.com:88 "),y("br"),c(" IPv6格式:[2001:db8:85a3::8a2e:370:7334]:88 ")],-1))]}),_:1},8,["visible"])]}),_:1}),s(u,{label:"备注"},{default:w(function(){return[s(o,{modelValue:h(J).ps,"onUpdate:modelValue":t[3]||(t[3]=function(e){return h(J).ps=e}),placeholder:"请输入备注,可为空",width:"52rem"},null,8,["modelValue"])]}),_:1}),s(u,{label:"根目录",prop:"path"},{default:w(function(){return[s(i,{modelValue:h(J).path,"onUpdate:modelValue":t[4]||(t[4]=function(e){return h(J).path=e}),placeholder:"请输入根目录",icon:"el-folder-opened",width:"52rem",onIconClick:ce},null,8,["modelValue"])]}),_:1}),s(u,{label:"其他配置",prop:"other"},{default:w(function(){return[y("div",Sn,[y("div",Pn,[y("span",{class:H({"text-danger":!h(K).isSetup})}," 数据库:"+U(h(K).isSetup?"MySQL数据库":"数据库未安装!"),3),y("span",null,"编码:"+U(h(K).code),1),y("span",null,"账号:"+U(h(J).datauser),1),y("span",null,"密码:"+U(h(J).datapassword),1),y("span",null,"PHP版本:"+U(h(K).version),1)])]),y("span",jn,[t[17]||(t[17]=c(" 其他配置初始状态为默认选择的配置项,如需修改请点击 ",-1)),s(a,{onClick:ge},{default:w(function(){return n(t[16]||(t[16]=[c("编辑配置",-1)]))}),_:1})])]}),_:1})]}),_:1},8,["model","rules"]),s(V,{title:"编辑配置",modelValue:h(ne),"onUpdate:modelValue":t[10]||(t[10]=function(e){return S(ne)?ne.value=e:null}),showFooter:"",area:62,onConfirm:Ve},{default:w(function(){return[y("div",Un,[s(p,{model:h(Y),rules:h(Oe),ref:"editFormRef"},{default:w(function(){return[s(u,{label:"数据库"},{default:w(function(){return[s(v,{class:"!w-[16rem]",modelValue:h(J).sql,"onUpdate:modelValue":t[5]||(t[5]=function(e){return h(J).sql=e})},{default:w(function(){return[s(f,{label:"MySQL",value:"MySQL"})]}),_:1},8,["modelValue"]),s(v,{modelValue:h(Y).code,"onUpdate:modelValue":t[6]||(t[6]=function(e){return h(Y).code=e}),class:"ml-[8px] !w-[16rem]"},{default:w(function(){return[s(f,{label:"utf8mb4",value:"utf8mb4"}),s(f,{label:"utf8",value:"utf8"}),s(f,{label:"gbk",value:"gbk"}),s(f,{label:"big5",value:"big5"})]}),_:1},8,["modelValue"])]}),_:1}),s(u,{label:"数据库账号"},{default:w(function(){return[y("div",qn,[s(u,{prop:"datauser",label:""},{default:w(function(){return[s(o,{placeholder:"创建数据库账号",modelValue:h(Y).datauser,"onUpdate:modelValue":t[7]||(t[7]=function(e){return h(Y).datauser=e}),width:"17rem"},null,8,["modelValue"])]}),_:1}),s(u,{label:"",class:"!mt-0"},{default:w(function(){return[s(o,{class:"ml-[8px]",width:"16rem",placeholder:"数据库密码",modelValue:h(Y).datapassword,"onUpdate:modelValue":t[8]||(t[8]=function(e){return h(Y).datapassword=e})},null,8,["modelValue"])]}),_:1})]),t[18]||(t[18]=y("span",{class:"text-tertiary text-small"}," 创建站点的同时,为站点创建一个对应的数据库帐户,方便不同站点使用不同数据库。 ",-1))]}),_:1}),s(u,{label:"PHP版本"},{default:w(function(){return[s(v,{class:"!w-[16rem]",modelValue:h(Y).version,"onUpdate:modelValue":t[9]||(t[9]=function(e){return h(Y).version=e})},{default:w(function(){return[(m(!0),b(x,null,j(h(ie),function(e){return m(),_(f,{key:e.value,label:e.name,disabled:!e.status,value:e.version},{default:w(function(){return[y("span",null,U(e.name),1),e.status?g("",!0):(m(),b(x,{key:0},[t[20]||(t[20]=c(" [ ",-1)),s(a,{class:"my-4px",onClick:function(n){return fe(e.version)}},{default:w(function(){return n(t[19]||(t[19]=[c("未安装",-1)]))}),_:1},8,["onClick"]),t[21]||(t[21]=c(" ] ",-1))],64))]}),_:2},1032,["label","disabled","value"])}),128))]}),_:1},8,["modelValue"]),t[22]||(t[22]=y("span",{class:"text-tertiary text-small ml-1rem"},"* 仅显示选中模板所支持的PHP版本",-1))]}),_:1})]}),_:1},8,["model","rules"])])]}),_:1},8,["modelValue"])])}}}),In=Y(Cn,[["__scopeId","data-v-df2b7de8"]]),On=a({__name:"index",setup:function(e,n){var t=n.expose,a=Ie().isRefreshList,r=ae(),p=o("域名|1|0|0|0\n域名|1|0|0|0\n域名|1|0|0|0"),d=l("popupClose"),f=function(e){return e.replace(/\s+/g,"")},v=function(e){return/^([\w\u4e00-\u9fa5\-\*]{1,100}\.){1,10}([\w\u4e00-\u9fa5\-]{1,24}|[\w\u4e00-\u9fa5\-]{1,24}\.[\w\u4e00-\u9fa5\-]{1,24})$/.test(f(e))},w=function(e){return/^([1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/.test(e)},_=[{label:"名称",prop:"name"},{label:"FTP",prop:"db_status",render:function(e){return"boolean"==typeof e.db_status?M("span",{class:e.db_status?"text-primary":""},e.db_status?"已配置":"未配置"):M("span",e.db_status)}},{label:"数据库",prop:"ftp_status",render:function(e){return"boolean"==typeof e.ftp_status?M("span",{class:e.ftp_status?"text-primary":""},e.ftp_status?"已配置":"未配置"):M("span",e.ftp_status)}},{label:"结果",render:function(e){return M("span",{class:e.status?"text-primary":"text-danger truncate !w-[9.6rem] inline-block"},e.status?"操作成功":e.msg)}}],g=function(){var e=i(u().m(function e(n){var t,l,o,s,i,c,m,b,h,y,g,x,k,V,S,P,j,U;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:t=p.value.split("\n"),l=[],o=0;case 1:if(!(o<t.length)){e.n=14;break}if(s=t[o],i=s.split("|"),c=[],""!==s){e.n=2;break}return e.a(3,13);case 2:m=0;case 3:if(!(m<i.length)){e.n=12;break}b=o+1,h=f(i[m]),c.push(h),U=m,e.n=0===U?4:1===U?9:11;break;case 4:y=h.split(","),g=0;case 5:if(!(g<y.length)){e.n=8;break}if(x=y[g].trim(),k=x.split(":"),v(k[0])){e.n=6;break}return r.error("第"+b+"行,域名格式错误【"+k[0]+"】"),e.a(2,!1);case 6:if(void 0===k[1]){e.n=7;break}if(w(k[1])){e.n=7;break}return r.error("第"+b+"行,端口格式错误【"+k[1]+"】"),e.a(2,!1);case 7:g++,e.n=5;break;case 8:return e.a(3,11);case 9:if("1"===h){e.n=10;break}if(!(h.indexOf("/")<-1)){e.n=10;break}return r.error("第"+b+"行,站点目录格式错误【"+h+"】"),e.a(2,!1);case 10:return e.a(3,11);case 11:m++,e.n=3;break;case 12:l.push(c.join("|").replace(/\r|\n/,""));case 13:o++,e.n=1;break;case 14:return V=r.load("正在批量添加站点,请稍后..."),e.p=15,e.n=16,ge({create_type:"txt",websites_content:JSON.stringify(l)});case 16:S=e.v,P=S.data,j=[],Object.keys(P.success).forEach(function(e){j.push({name:e,status:!0,ftp_status:P.success[e].ftp_status,db_status:P.success[e].db_status})}),Object.keys(P.error).forEach(function(e){j.push({name:e,status:!1,ftp_status:"--",db_status:"--",msg:P.error[e]})}),a.value=!0,d(),Me({resultColumn:_,resultData:j,resultTitle:"添加站点"},46),p.value="域名|1|0|0|0\n域名|1|0|0|0\n域名|1|0|0|0",e.n=18;break;case 17:e.p=17,e.v;case 18:return e.p=18,V.close(),e.f(18);case 19:return e.a(2)}},e,null,[[15,17,18,19]])}));return function(n){return e.apply(this,arguments)}}();return t({onConfirm:g}),function(e,n){var t=N;return m(),b("div",null,[s(t,{type:"textarea",modelValue:h(p),"onUpdate:modelValue":n[0]||(n[0]=function(e){return S(p)?p.value=e:null}),rows:12,resize:"none",width:"72rem"},null,8,["modelValue"]),n[1]||(n[1]=y("ul",{class:"mt-[8px] text-tertiary leading-10"},[y("li",null,"批量格式:域名|根目录|FTP|数据库|PHP版本"),y("li",null,"域名参数:多个域名用 , 分割"),y("li",null,"根目录参数:填写 1 为自动创建,或输入具体目录"),y("li",null,"FTP参数:填写 1 为自动创建,填写 0 为不创建"),y("li",null,"数据库参数:填写 1 为自动创建,填写 0 为不创建"),y("li",null,"PHP版本参数:填写 0 为静态,或输入PHP具体版本号列如:56、71、74"),y("li",null,"如需添加多个站点,请换行填写"),y("li",null,[c(" 案例: "),y("span",null,"bt.cn,test.cn:8081|/www/wwwroot/bt.cn|1|1|56")])],-1))])}}}),Dn={class:"p-[20px]"},Hn=["innerHTML"];e("default",a({__name:"index",props:{compData:{default:{}}},setup:function(e,n){var t=n.expose,a=e,r=A().plugin,c=o(!0),p=o(!1),d=o(""),v=ae(),x=o("addSiteDefault");o(null);var k=l("popupSetFooter",function(e){}),V=function(){var e=i(u().m(function e(){var n,t;return u().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,ke();case 1:return n=e.v,t=n.data,e.a(2,{ftp:t.ftp,mysql:t.mysql});case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}(),S=a.compData,P=S.typeList,j=S.refresh,U=se({type:"card",value:x,options:[{label:"站点",name:"addSiteDefault",lazy:!0,render:s(Pe,{compData:{getStatus:V,typeList:P,refresh:j}},null)},{label:"一键部署",name:"addDeployment",lazy:!0,render:s(In,{compData:{getStatus:V}},null)},{label:"Git部署",name:"addGit",lazy:!0,render:s(Qe,null,null)},{label:"swoole异步项目",name:"addSwoole",lazy:!0,render:s(Ze,{compData:{getStatus:V}},null)},{label:"thinkphp异步项目",name:"addThinkphp",lazy:!0,render:s(un,{compData:{getStatus:V}},null)},{label:"异步项目",name:"addUniversal",lazy:!0,render:s(pn,{compData:{getStatus:V}},null)},{label:"批量创建",name:"batchAddSite",lazy:!0,render:s(On,null,null)}]}),q=U.BtTabs,C=U.tabsRefs;D(function(){return x.value},function(e){k("addPack"!==e)});var I=function(){var e=i(u().m(function e(n){return u().w(function(e){for(;;)switch(e.n){case 0:if("addSwoole"!==x.value&&"addThinkphp"!==x.value&&"addUniversal"!==x.value||"nginx"===r.value.webserver){e.n=1;break}return e.a(2,v.error("当前仅支持nginx服务器使用"));case 1:C()[x.value].onConfirm(n);case 2:return e.a(2)}},e)}));return function(n){return e.apply(this,arguments)}}(),O=function(){var e=i(u().m(function e(){return u().w(function(e){for(;;)switch(e.n){case 0:Ve(),c.value=!0;case 1:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();return f(i(u().m(function e(){var n,t,a,r;return u().w(function(e){for(;;)switch(e.n){case 0:return"addPack"===x.value&&k(!1),e.n=1,xe();case 1:return n=e.v,t=n.data,a=!(null!=t&&t.status),d.value=(null==t?void 0:t.msg)||"",e.n=2,Se({});case 2:r=e.v,c.value=!a&&!r;case 3:return e.a(2)}},e)}))),t({onConfirm:I,getStatus:V}),function(e,n){var t=F;return m(),b("div",Dn,[h(c)?g("",!0):(m(),_(t,{key:0,class:"!mb-[1rem]",type:"info",closable:h(p),"close-text":"不再显示","show-icon":"",onMouseenter:n[0]||(n[0]=function(e){return p.value=!0}),onMouseleave:n[1]||(n[1]=function(e){return p.value=!1}),onClose:O},{default:w(function(){return[y("div",{class:"flex text-small",innerHTML:h(d)},null,8,Hn)]}),_:1},8,["closable"])),s(h(q))])}}}))}}})}();