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/add-port-rule.js
import{c as K,r as V,V as M,H as G,o as Q,j as c,C as v,v as r,e as a,p as s,k as g,B as w,F as y,y as W,Q as Z,ad as $,am as z,an as X,T as Y,ab as ee}from"./base-lib.js?v=1777008528";import{c as te,fL as oe,k as ae,W as le,cO as se,cP as ne,K as re,cZ as pe}from"./utils-lib.js?v=1777008528";import{_ as de}from"./index192.js?v=1777008528";import{aK as ie,aJ as ce}from"./firewall.js?v=1777008528";import{e as ue,d as me}from"./useMethod7.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index3.js?v=1777008528";import"./index119.js?v=1777008528";import"./index116.js?v=1777008528";import"./useStore8.js?v=1777008528";const _e=K({__name:"add-port-rule",props:{compData:{default:()=>{}}},setup(h,{expose:D}){const n=h,{payment:k}=te(),{authType:I}=k.value,u=V(!1),m=V(),i=M(n.compData.isEdit),U={title:"指定域名-功能介绍",ps:"系统防火墙将会放行/阻止设置域名所解析的A/AAAA记录",source:106,desc:["放行/阻止域名解析记录"],tabImgs:[{title:"防火墙禁止端口",imgSrc:"https://www.bt.cn/Public/new/plugin/introduce/firewall/specify_domain_1.png"},{title:"域名解析已生效",imgSrc:"https://www.bt.cn/Public/new/plugin/introduce/firewall/specify_domain_2.png"},{title:"设置效果",imgSrc:"https://www.bt.cn/Public/new/plugin/introduce/firewall/specify_domain_3.png"}]},t=G({protocol:"tcp",port:"",choose:"all",types:"accept",brief:"",address:"",domain:"",chain:"INPUT"}),S=[{content:"支持添加多个端口,如:80,88"},{content:"支持添加多个端口范围,如:80,88,90-99,110-120"},{content:"默认配置下防火墙无法管理Docker容器端口"},{content:"此操作将重载防火墙,未持久化的 iptables 规则会清空,请先备份保存!"}],C=[{title:"入站(默认)",key:"INPUT"},{title:"出站",key:"OUTPUT"}],E={ports:"请输入指定IP,多个IP请用,隔开或换行。例如192.168.1.1,192.168.1.2",domain:"请输入指定域名。例如www.bt.cn"},O=[{label:"TCP",value:"tcp"},{label:"UDP",value:"udp"},{label:"TCP/UDP",value:"all"}],R=[{title:"所有IP",key:"all"},{title:"指定IP",key:"point"}],F=[{title:"放行",key:"accept"},{title:"禁止",key:"drop"}],N={port:[{validator:oe,trigger:["blur"],required:!0}],address:[{trigger:["blur","change"],required:!0,message:"请输入指定IP"}],domain:[{trigger:["blur","change"],required:!0,message:"请输入指定域名"}]},T=l=>{try{const e=/[^0-9,-]/g;t.port=l.replace(e,"")}catch(e){}},A=l=>{if(m.value.clearValidate(),I!=="ltd"&&l==="domain"){t.choose="all",u.value=!0;return}else t.choose=l},x=()=>{const l={...t,operation:"add",strategy:t.types};if(l.choose==="all"&&delete l.address,l.brief||(l.brief=""),i.value&&(l.id=n.compData.id),i.value){const e={...n.compData};return e.noNps&&delete e.noNps,{old_data:JSON.stringify(e),new_data:JSON.stringify(l)}}else return l},q=async l=>{await m.value.validate();const e=await x(),d=t.choose==="domain";await ae({loading:"正在提交,请稍后...",message:!0,request:i.value?ie(e,d):ce(e,d),success:p=>{p.status&&l()}}),n.compData.refreshFn(),await ue(),me(),i.value};return Q(()=>{var l,e;if(t.port=((l=n.compData)==null?void 0:l.port)||"",n.compData.isEdit){const d=((e=n.compData)==null?void 0:e.Address)==="all";Object.assign(t,{protocol:n.compData.Protocol,port:n.compData.Port,types:n.compData.Strategy,brief:n.compData.brief,chain:n.compData.Chain,address:d?"":n.compData.Address,domain:n.compData.domain}),t.choose=d?"all":n.compData.domain===""?"point":"domain"}}),D({onConfirm:q}),(l,e)=>{const d=le,p=$,P=se,_=z,f=X,B=Y,J=ne,L=de,j=re,H=ee;return c(),v(H,{ref_key:"editPortRulesRef",ref:m,rules:N,model:s(t),class:"p-[2rem] addfrom"},{default:r(()=>[a(p,{label:"协议"},{default:r(()=>[a(d,{modelValue:s(t).protocol,"onUpdate:modelValue":e[0]||(e[0]=o=>s(t).protocol=o),class:"!w-[24rem]",options:O},null,8,["modelValue"])]),_:1}),a(p,{label:"端口",prop:"port"},{default:r(()=>[a(P,{modelValue:s(t).port,"onUpdate:modelValue":e[1]||(e[1]=o=>s(t).port=o),width:"24rem",placeholder:"请输入端口",disabled:s(i),onInput:T},null,8,["modelValue","disabled"])]),_:1}),a(p,{label:"来源"},{default:r(()=>[a(f,{modelValue:s(t).choose,"onUpdate:modelValue":e[2]||(e[2]=o=>s(t).choose=o),onChange:A,class:"!w-[24rem]"},{default:r(()=>[(c(),g(y,null,w(R,(o,b)=>a(_,{key:b,label:o.title,value:o.key},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),s(t).choose==="point"?(c(),v(p,{key:0,label:"指定IP",prop:"address"},{default:r(()=>[a(P,{type:"textarea",rows:3,width:"24rem",modelValue:s(t).address,"onUpdate:modelValue":e[3]||(e[3]=o=>s(t).address=o),placeholder:E.ports,clearable:""},null,8,["modelValue","placeholder"])]),_:1})):W("",!0),a(p,{label:"策略"},{default:r(()=>[a(f,{modelValue:s(t).types,"onUpdate:modelValue":e[4]||(e[4]=o=>s(t).types=o),class:"!w-[24rem]"},{default:r(()=>[(c(),g(y,null,w(F,(o,b)=>a(_,{key:b,label:o.title,value:o.key},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),a(p,{label:"方向"},{default:r(()=>[a(f,{modelValue:s(t).chain,"onUpdate:modelValue":e[5]||(e[5]=o=>s(t).chain=o),class:"!w-[24rem]"},{default:r(()=>[(c(),g(y,null,w(C,o=>a(_,{key:o.key,label:o.title,value:o.key},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),a(p,{label:"备注"},{default:r(()=>[a(B,{modelValue:s(t).brief,"onUpdate:modelValue":e[6]||(e[6]=o=>s(t).brief=o),class:"!w-[24rem] special-input",clearable:"",placeholder:"请填写备注,可为空"},null,8,["modelValue"])]),_:1}),a(J,{options:S,listStyle:"disc",class:"pl-[6rem] pt-[1.2rem]"}),a(j,{title:"指定域名-功能介绍",area:60,modelValue:s(u),"onUpdate:modelValue":e[7]||(e[7]=o=>Z(u)?u.value=o:null)},{default:r(()=>[a(L,{data:U,class:"p-4rem"})]),_:1},8,["modelValue"])]),_:1},8,["model"])}}}),ke=pe(_e,[["__scopeId","data-v-247d5224"]]);export{ke as default};