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/index258.js
import{X as k,cO as _,B,fm as V,W as $,a as A,b as I,dp as R}from"./utils-lib.js?v=1777008528";import{c as w,r as g,g as P,e as r,x as y,j as T,C as U,v as u,q as O,p as t,a1 as S,Q as j,ad as q,aI as L,o as H,k as N}from"./base-lib.js?v=1777008528";import{B as b}from"./index120.js?v=1777008528";import{h as D,i as X,j as z,k as M,S as Q}from"./useController29.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index3.js?v=1777008528";import"./index119.js?v=1777008528";import"./index116.js?v=1777008528";import"./useStore2.js?v=1777008528";import"./site.js?v=1777008528";import"./useController13.js?v=1777008528";const W={class:"flex items-center"},F=w({__name:"add-proxy-http",setup(E,{expose:v}){const i=g(!1),p=g(!1),m=async()=>{s.value.proxysite=s.value.targetType==="url"?"http://":""},c=a=>{if(typeof a=="object")return;if(s.value.targetType==="unix"){s.value.todomain="$http_host";return}let e=a.replace(/^http[s]?:\/\//,"");e=e.replace(/(:|\?|\/|\\)(.*)$/,""),s.value.todomain=e},{BtForm:f,submit:x,param:s}=k({data:{isEdit:!1,targetType:"url",sitename:"",cache:!1,advanced:!1,cachetime:1,proxysite:"http://",todomain:"$http_host",remark:"",port:80,domains:""},options:a=>P(()=>[{type:"custom",render:()=>r(B,{label:"域名",prop:"domains"},{default:()=>[r(b,{ref:"popover",placement:"top-start","popper-class":"green-tips-popover !p-0",title:"",width:"370",visible:i.value,"onUpdate:visible":e=>i.value=e,"trigger-keys":[],trigger:"focus"},{default:()=>r("div",{class:"!p-[12px] bg-primary text-white"},[y("如需填写多个域名,请换行填写,每行一个域名,默认为80端口"),r("br",null,null),y("IP地址格式:192.168.1.199"),r("br",null,null),y("如另加端口格式为 www.domain.com:88"),r("br",null,null),y("ipv6格式:[2001:db8:85a3::8a2e:370:7334]:88")]),reference:()=>r(_,{modelValue:a.value.domains,"onUpdate:modelValue":e=>a.value.domains=e,type:"textarea",width:"42rem",rows:6,resize:"none",onInput:e=>{typeof e!="object"&&(a.value.remark=e.split("\n")[0])},onFocus:()=>i.value=!0,placeholder:"如需填写多个域名,请换行填写,每行一个域名,默认为80端口\nIP地址格式:192.168.1.199\n如另加端口格式为 www.domain.com:88\nipv6格式:[2001:db8:85a3::8a2e:370:7334]:88"},null)})]}),rules:{domains:[{required:!0,message:"请输入域名",trigger:"blur"},{trigger:["blur","input","change"],validator:(e,l,o)=>{const d=l.split("\n").filter(n=>n.length),h=d.findIndex(n=>n.split(":")[0].length<3);d.map((n,C)=>{V(n)||o(new Error("当前域名格式错误,第".concat(C+1,"行,内容:").concat(n)))}),h!==-1?o(new Error("第 ".concat(h+1," 个域名长度不符合要求(必须大于3个字符)"))):o()}}]}},{type:"slots",key:"proxysite",rules:{proxysite:[{required:!0,message:"请输入目标地址",trigger:"blur"},{validator:(e,l,o)=>{if(!l){o(new Error(a.value.targetType==="url"?"目标地址不能为空":"请选择sock文件"));return}if(a.value.targetType==="unix"){o();return}const d=l.trim();if(/^https?:\/\/$/.test(d)){o(new Error("请输入目标URL域名"));return}if(!/^https?:\/\/.+/.test(d)){o(new Error("目标URL格式不正确,应以http://或https://开头"));return}const h=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;let n=l.replace(/^http[s]?:\/\//,"");n=n.replace(/(:|\?|\/|\\)(.*)$/,""),h.test(n)?a.value.todomain="$http_host":a.value.todomain=n,o()}}]}},{type:"slots",key:"todomain",rules:{todomain:[{required:!0,message:"请输入发送域名",trigger:["blur","change"]}]}},{type:"input",label:"备注",key:"remark",attrs:{placeholder:"请输入备注,可为空",width:"42rem"}},{type:"help",options:D}]),submit:X});return v({onConfirm:async a=>{await x()&&a("close")}}),(a,e)=>{const l=q;return T(),U(t(f),{class:"p-2rem","label-width":"100px"},{proxysite:u(()=>[r(l,{label:"目标",prop:"proxysite","label-width":"100px"},{default:u(()=>[O("div",W,[r(l,{"label-width":"50px"},{default:u(()=>[r(t($),{modelValue:t(s).targetType,"onUpdate:modelValue":e[0]||(e[0]=o=>t(s).targetType=o),placeholder:"请选择",options:t(z),style:{width:"16rem","margin-right":"1rem"},onChange:m},null,8,["modelValue","options"])]),_:1}),r(t(_),{modelValue:t(s).proxysite,"onUpdate:modelValue":e[2]||(e[2]=o=>t(s).proxysite=o),placeholder:t(s).targetType==="url"?"请输入目标地址":"请选择sock文件",width:"24rem",iconType:t(s).targetType==="url"?!1:"folder",onInput:c},S({_:2},[t(s).targetType!=="url"?{name:"append",fn:u(()=>[r(t(A),{onClick:e[1]||(e[1]=o=>t(M)(t(s)))},{default:u(()=>[r(t(I),{icon:"el-folder-opened",class:"cursor-pointer"})]),_:1})]),key:"0"}:void 0]),1032,["modelValue","placeholder","iconType"])])]),_:1})]),todomain:u(()=>[r(l,{label:"发送域名(host)",prop:"todomain","label-width":"100px"},{default:u(()=>[r(t(b),{placement:"top-start",effect:"dark",title:"",content:"请求转发到后端服务器时的主机名,一般为$http_host,如果目标URL是域名,则需要改为域名",width:"400",visible:t(p),"onUpdate:visible":e[5]||(e[5]=o=>j(p)?p.value=o:null),"trigger-keys":[],trigger:"focus"},{reference:u(()=>[r(t(_),{onFocus:e[3]||(e[3]=o=>p.value=!0),modelValue:t(s).todomain,"onUpdate:modelValue":e[4]||(e[4]=o=>t(s).todomain=o),placeholder:"请输入发送域名",width:"42rem"},null,8,["modelValue"])]),_:1},8,["visible"])]),_:1})]),_:1})}}}),ne=w({__name:"index",emits:["close"],setup(E,{expose:v,emit:i}){const{proxyType:p}=L(Q()),m=g("http"),c=i,f=g(),{BtTabs:x,tabs:s,tabsRefs:a}=R({type:"card",value:m,options:[{label:"HTTP",name:"http",render:()=>r(F,null,null)}]});return v({onConfirm:()=>{switch(s.value){case"http":f.value.onConfirm(c);break;case"tcp":a().tcp.onConfirm(c);break}}}),H(()=>{m.value=p.value}),(e,l)=>(T(),N("div",null,[r(F,{ref_key:"addProxyHttpRef",ref:f},null,512)]))}});export{ne as default};