File: /www/server/panel/BTPanel/static/js/add-area-rule.js
import{c as P,r as f,o as q,I as H,j as i,C as c,v as s,e as n,p as a,k as g,B as k,F as D,y as _,J as L,x as R,q as y,am as A,an as S,ad as h,U as j,ab as J}from"./base-lib.js?v=1777008528";import{e8 as M,k as w,cO as T}from"./utils-lib.js?v=1777008528";import{a7 as z,a8 as G,a9 as K}from"./firewall.js?v=1777008528";import{e as Q,d as W}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 X={class:"mt-20px leading-8 text-small list-disc ml-24px"},Y={key:0},ne=P({__name:"add-area-rule",props:{compData:{default:()=>{}}},setup(u,{expose:C}){const d=u,v=f(),V=f(!1),b=f([]),t=f({country:["美国"],brief:"",types:"drop",ports:"",choose:"all",is_update:!1}),x=[{title:"所有端口",key:"all"},{title:"指定端口",key:"point"}],E={country:[{required:!0,message:"请选择国家或地区",trigger:"change"}],ports:[{validator:(r,e,l)=>{e.length>0&&(M(e)||l(new Error("端口格式错误,可用范围:1-65535")),l()),l(new Error("请输入源端口"))},trigger:["input"]}]},F=async r=>{await v.value.validate();let e={...t.value};const l=d.compData.isEdit;l&&(e.id=d.compData.id,e.addtime=d.compData.addtime,e.country=t.value.country,e.brief=b.value.find(m=>m.CH===t.value.country).brief),t.value.choose==="all"&&(e.ports=""),e={data:JSON.stringify(e)},await w({loading:"正在设置规则,请稍后...",request:l?z(e):G(e),message:!0}),r(),d.compData.refreshFn(),Q(),W()},I=async()=>{await w({loading:V,request:K(),data:[Array,b]})};return q(()=>{if(I(),d.compData.isEdit){const r=d.compData;Object.assign(t.value,{country:r.country,brief:r.brief,types:r.types,ports:r.ports,choose:r.ports?"point":"all"})}}),C({onConfirm:F}),(r,e)=>{const l=A,m=S,p=h,O=T,U=j,B=J,N=H("bt-loading");return i(),c(B,{ref_key:"editAreaRulesRef",ref:v,model:a(t),rules:E,class:"p-[2rem] addfrom"},{default:s(()=>[n(p,{label:"策略"},{default:s(()=>[n(m,{modelValue:a(t).types,"onUpdate:modelValue":e[0]||(e[0]=o=>a(t).types=o),class:"!w-[24rem]"},{default:s(()=>[n(l,{label:"屏蔽",value:"drop"})]),_:1},8,["modelValue"])]),_:1}),n(p,{label:"端口"},{default:s(()=>[n(m,{modelValue:a(t).choose,"onUpdate:modelValue":e[1]||(e[1]=o=>a(t).choose=o),class:"!w-[24rem]"},{default:s(()=>[(i(),g(D,null,k(x,o=>n(l,{key:o.key,label:o.title,value:o.key},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),a(t).choose==="point"?(i(),c(p,{key:0,label:"指定端口",prop:"ports"},{default:s(()=>[n(O,{modelValue:a(t).ports,"onUpdate:modelValue":e[2]||(e[2]=o=>a(t).ports=o),type:"number",min:"1",max:"65535",width:"24rem",placeholder:"请输入指定端口"},null,8,["modelValue"])]),_:1})):_("",!0),n(p,{label:"地区",prop:"country"},{default:s(()=>[L((i(),c(m,{modelValue:a(t).country,"onUpdate:modelValue":e[3]||(e[3]=o=>a(t).country=o),class:"!w-[24rem]",multiple:!u.compData.id,filterable:!u.compData.id,"collapse-tags":!u.compData.id},{default:s(()=>[(i(!0),g(D,null,k(a(b),o=>(i(),c(l,{key:o.brief,label:o.CH,value:o.CH},null,8,["label","value"]))),128))]),_:1},8,["modelValue","multiple","filterable","collapse-tags"])),[[N,a(V)]])]),_:1}),u.compData.id?_("",!0):(i(),c(p,{key:1,label:" "},{default:s(()=>[n(U,{modelValue:a(t).is_update,"onUpdate:modelValue":e[4]||(e[4]=o=>a(t).is_update=o)},{default:s(()=>[...e[5]||(e[5]=[R("更新IP池",-1)])]),_:1},8,["modelValue"])]),_:1})),y("ul",X,[e[6]||(e[6]=y("li",null,"地区规则中IP数量较多,添加时可能耗时较长",-1)),u.compData.id?_("",!0):(i(),g("li",Y,"勾选【更新IP池】会从云端获取指定地区近1个月最新的IP池")),e[7]||(e[7]=y("li",null,"添加【除中国之外】或多个地区时,可能会导致系统防火墙占用高,添加完成后会恢复",-1)),e[8]||(e[8]=y("li",null,"此操作将重载防火墙,未持久化的 iptables 规则会清空,请先备份保存!",-1))])]),_:1},8,["model"])}}});export{ne as default};