From e1362a7b85ffb2a414c59df233e4eef251ef0dde Mon Sep 17 00:00:00 2001
From: snltty <1069410172@qq.com>
Date: Wed, 11 Sep 2024 16:24:26 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../docs/5、组网权限/1、组网权限.md | 2 +-
linker.tray.win/dist/linker.tray.win.exe | Bin 4905472 -> 4905472 bytes
.../{727.ff78edad.css => 967.db32e0d8.css} | 2 +-
linker.tray.win/web/index.html | 2 +-
linker.tray.win/web/js/727.d7ae4b5c.js | 1 -
linker.tray.win/web/js/967.bbfb8700.js | 1 +
.../js/{app.a12082c0.js => app.900ae304.js} | 2 +-
linker.web/src/views/full/devices/Oper.vue | 2 +-
version.txt | 2 +-
9 files changed, 7 insertions(+), 7 deletions(-)
rename linker.tray.win/web/css/{727.ff78edad.css => 967.db32e0d8.css} (94%)
delete mode 100644 linker.tray.win/web/js/727.d7ae4b5c.js
create mode 100644 linker.tray.win/web/js/967.bbfb8700.js
rename linker.tray.win/web/js/{app.a12082c0.js => app.900ae304.js} (97%)
diff --git a/linker.doc.web/docs/5、组网权限/1、组网权限.md b/linker.doc.web/docs/5、组网权限/1、组网权限.md
index f1ae65ee..0c4a87c0 100644
--- a/linker.doc.web/docs/5、组网权限/1、组网权限.md
+++ b/linker.doc.web/docs/5、组网权限/1、组网权限.md
@@ -7,7 +7,7 @@ sidebar_position: 1
:::tip[说明]
1. 按 首次运行,安装,此设备拥有完全管理权限,可导出配置,用以作为组网子设备运行
2. 导出配置可指定设备名,以及其管理密码,建议使用与管理设备不同的管理密码,如果指定为`单设备`,则此配置仅可同时运行于一台设备,无法重复连接服务端(当相同配置的设备离线后,另外的设备可以连接)
-3. 在运行中,拥有`配置权限`的设备,仍然可以实时修改其它设备的权限
+3. 在运行中,拥有`配置权限`的设备,仍然可以实时修改其它设备的权限,但是有一个限制,仅当B是A的子集时,A可管理B的权限,表现为 `~A & B == 0` 时
4. 对于拥有`导出配置`权限的子设备,可再次导出配置,但,不超过自身权限,无法指定管理密码,必须为单设备
:::
diff --git a/linker.tray.win/dist/linker.tray.win.exe b/linker.tray.win/dist/linker.tray.win.exe
index 5aacf586e0c47f100834c5e8aa022eab76bfd416..9aef034e164e51eb725a4ae27ae21c580aaa34aa 100644
GIT binary patch
delta 763
zcmYMy&1(}u7zXgkN87}WY1%YNo3`4RoPgJ+9aF
zxqi3H?RIS`EJ{lim1_0wZB2A<>ugM{3>uRK
zz9q41UW*Ak#9sCK3{~ZCB5XkH46|mW^U^z+l>(wqXPU25yJWK8Kg8yo@jZ?_f4^u%
z{fJZXdC_3O5lh#zsj8tfU9n0j*yJDWS7iYxtp0RAZBrT_o{
delta 797
zcmX}q%}*0S7zXgSAC}gwfPA$SP^gNcTj(ykGi`-Rp#|v)FN9z)ENxK}BLs*>i3D_$
za`E74NcPzq&G4#%MaDxnIhp#}mFgjxte9n?buoPd+i2u%=%Q*av2Kr@_$
zbI=0k;euR9s;}<_^HUR(`H8!?ujZ{8D{?2oqE>rOH!bmZLk)_@@6^$fgUZ0N8W765
z8uIQ}M#Q%dZ6VpWuKreJ>ZMv=TGTdGh(If}K@>F5p$YQJIp1oVe^A;YI!&5Blbxez;x2#!Q
z`^h}=(|zW39lTX;Jz#&f#AKa0Bs=`9BO||z@UJyau8S8lywZ)%OunDt%vX<#6X86!
z3dWe33#)O{OoYd|$xJP7iO?Kh*h`F$^H?Eo<@XbD!-|b*xq_5)JmvH4Hqmy^79EQm
zVi1P}T!aqjgd|*oE=WN)^gtRi&zv$d?@8{PZN
dG%A0sWviVICf53WDcSWV`{QtNV?Dc6@eir^^n(BZ
diff --git a/linker.tray.win/web/css/727.ff78edad.css b/linker.tray.win/web/css/967.db32e0d8.css
similarity index 94%
rename from linker.tray.win/web/css/727.ff78edad.css
rename to linker.tray.win/web/css/967.db32e0d8.css
index 4c83e202..80fe1ba5 100644
--- a/linker.tray.win/web/css/727.ff78edad.css
+++ b/linker.tray.win/web/css/967.db32e0d8.css
@@ -1 +1 @@
-.dropdown[data-v-60a3c25a]{border:1px solid #ddd;padding:.4rem;font-size:1.3rem;border-radius:.4rem;position:relative}.dropdown .el-icon[data-v-60a3c25a]{vertical-align:middle}.dropdown .badge[data-v-60a3c25a]{position:absolute;right:-1rem;top:-50%;border-radius:10px;background-color:#f1ae05;color:#fff;padding:.2rem .6rem;font-size:1.2rem}a[data-v-56d38c60]{color:#666;text-decoration:underline}a.green[data-v-56d38c60]{color:green;font-weight:700}a.download[data-v-56d38c60]{margin-left:.6rem}a.download .el-icon[data-v-56d38c60]{vertical-align:middle;font-weight:700;margin-left:.3rem}a.download .el-icon.loading[data-v-56d38c60]{animation:loading-56d38c60 1s linear infinite}@keyframes loading-56d38c60{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a[data-v-a998806a]{color:#666;text-decoration:underline}a.green[data-v-a998806a]{color:green;font-weight:700}img.system[data-v-a998806a]{height:1.6rem;vertical-align:middle;margin-right:.4rem}.ipaddress span[data-v-358fba0e]{vertical-align:middle}.el-input[data-v-358fba0e]{width:15rem;margin-right:.6rem}.el-col[data-v-d5958228]{text-align:left}.el-icon.loading[data-v-8a7ccef2],a.loading[data-v-8a7ccef2]{vertical-align:middle;font-weight:700;animation:loading-8a7ccef2 1s linear infinite}.el-switch.is-disabled[data-v-8a7ccef2]{opacity:1}.el-input[data-v-8a7ccef2]{width:8rem}.gateway[data-v-8a7ccef2]{background:linear-gradient(90deg,#c5b260,#858585,#c5b260,#858585);-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}.gateway.green[data-v-8a7ccef2]{background:linear-gradient(90deg,#e4bb10,green,#e4bb10,green);-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}.delay[data-v-8a7ccef2]{position:absolute;right:0;bottom:0;line-height:normal}.switch-btn[data-v-8a7ccef2]{font-size:1.5rem}@keyframes loading-8a7ccef2{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-switch.is-disabled[data-v-44067f74]{opacity:1}.upgrade-wrap[data-v-44067f74]{border:1px solid #ddd;margin-bottom:2rem;padding:0 0 1rem 0}.el-switch.is-disabled[data-v-56597dfc]{opacity:1}.green[data-v-56597dfc]{font-weight:700}.el-switch.is-disabled[data-v-1f7f67a4]{opacity:1}a[data-v-3653b6fb]{text-decoration:underline;font-weight:700}.head[data-v-2c1a8404]{padding-bottom:1rem}.green[data-v-2c1a8404]{color:green;font-weight:700}.error[data-v-2c1a8404]{font-weight:700}.error .el-icon[data-v-2c1a8404]{vertical-align:text-bottom}.el-select[data-v-3a13c86f]{width:12rem}.head[data-v-3a13c86f]{padding-bottom:1rem}.foot[data-v-3a13c86f]{padding-top:1rem}.page-wrap[data-v-3a13c86f]{display:inline-block}.head[data-v-5e37381c]{padding-bottom:1rem}.error[data-v-5e37381c]{font-weight:700}.error .el-icon[data-v-5e37381c]{vertical-align:text-bottom}.el-select[data-v-5512121a]{width:12rem}.head[data-v-5512121a]{padding-bottom:1rem}.foot[data-v-5512121a]{padding-top:1rem}.page-wrap[data-v-5512121a]{display:inline-block}.head[data-v-36027c60]{padding-bottom:1rem}.table-sort.el-table th.el-table__cell.is-leaf{border-bottom:0}.table-sort.el-table .el-table__inner-wrapper:before{height:0}.table-sort th[data-v-3e4fd378]{border-bottom:0}.home-list-wrap[data-v-3e4fd378]{padding:1rem}.home-list-wrap .page[data-v-3e4fd378]{padding-top:1rem}.home-list-wrap .page-wrap[data-v-3e4fd378]{display:inline-block}
\ No newline at end of file
+.dropdown[data-v-619f5cb0]{border:1px solid #ddd;padding:.4rem;font-size:1.3rem;border-radius:.4rem;position:relative}.dropdown .el-icon[data-v-619f5cb0]{vertical-align:middle}.dropdown .badge[data-v-619f5cb0]{position:absolute;right:-1rem;top:-50%;border-radius:10px;background-color:#f1ae05;color:#fff;padding:.2rem .6rem;font-size:1.2rem}a[data-v-56d38c60]{color:#666;text-decoration:underline}a.green[data-v-56d38c60]{color:green;font-weight:700}a.download[data-v-56d38c60]{margin-left:.6rem}a.download .el-icon[data-v-56d38c60]{vertical-align:middle;font-weight:700;margin-left:.3rem}a.download .el-icon.loading[data-v-56d38c60]{animation:loading-56d38c60 1s linear infinite}@keyframes loading-56d38c60{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a[data-v-a998806a]{color:#666;text-decoration:underline}a.green[data-v-a998806a]{color:green;font-weight:700}img.system[data-v-a998806a]{height:1.6rem;vertical-align:middle;margin-right:.4rem}.ipaddress span[data-v-358fba0e]{vertical-align:middle}.el-input[data-v-358fba0e]{width:15rem;margin-right:.6rem}.el-col[data-v-d5958228]{text-align:left}.el-icon.loading[data-v-8a7ccef2],a.loading[data-v-8a7ccef2]{vertical-align:middle;font-weight:700;animation:loading-8a7ccef2 1s linear infinite}.el-switch.is-disabled[data-v-8a7ccef2]{opacity:1}.el-input[data-v-8a7ccef2]{width:8rem}.gateway[data-v-8a7ccef2]{background:linear-gradient(90deg,#c5b260,#858585,#c5b260,#858585);-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}.gateway.green[data-v-8a7ccef2]{background:linear-gradient(90deg,#e4bb10,green,#e4bb10,green);-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}.delay[data-v-8a7ccef2]{position:absolute;right:0;bottom:0;line-height:normal}.switch-btn[data-v-8a7ccef2]{font-size:1.5rem}@keyframes loading-8a7ccef2{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-switch.is-disabled[data-v-44067f74]{opacity:1}.upgrade-wrap[data-v-44067f74]{border:1px solid #ddd;margin-bottom:2rem;padding:0 0 1rem 0}.el-switch.is-disabled[data-v-56597dfc]{opacity:1}.green[data-v-56597dfc]{font-weight:700}.el-switch.is-disabled[data-v-1f7f67a4]{opacity:1}a[data-v-3653b6fb]{text-decoration:underline;font-weight:700}.head[data-v-2c1a8404]{padding-bottom:1rem}.green[data-v-2c1a8404]{color:green;font-weight:700}.error[data-v-2c1a8404]{font-weight:700}.error .el-icon[data-v-2c1a8404]{vertical-align:text-bottom}.el-select[data-v-3a13c86f]{width:12rem}.head[data-v-3a13c86f]{padding-bottom:1rem}.foot[data-v-3a13c86f]{padding-top:1rem}.page-wrap[data-v-3a13c86f]{display:inline-block}.head[data-v-5e37381c]{padding-bottom:1rem}.error[data-v-5e37381c]{font-weight:700}.error .el-icon[data-v-5e37381c]{vertical-align:text-bottom}.el-select[data-v-5512121a]{width:12rem}.head[data-v-5512121a]{padding-bottom:1rem}.foot[data-v-5512121a]{padding-top:1rem}.page-wrap[data-v-5512121a]{display:inline-block}.head[data-v-36027c60]{padding-bottom:1rem}.table-sort.el-table th.el-table__cell.is-leaf{border-bottom:0}.table-sort.el-table .el-table__inner-wrapper:before{height:0}.table-sort th[data-v-3e4fd378]{border-bottom:0}.home-list-wrap[data-v-3e4fd378]{padding:1rem}.home-list-wrap .page[data-v-3e4fd378]{padding-top:1rem}.home-list-wrap .page-wrap[data-v-3e4fd378]{display:inline-block}
\ No newline at end of file
diff --git a/linker.tray.win/web/index.html b/linker.tray.win/web/index.html
index 47e70473..941d35bb 100644
--- a/linker.tray.win/web/index.html
+++ b/linker.tray.win/web/index.html
@@ -1 +1 @@
-linker.web
\ No newline at end of file
+linker.web
\ No newline at end of file
diff --git a/linker.tray.win/web/js/727.d7ae4b5c.js b/linker.tray.win/web/js/727.d7ae4b5c.js
deleted file mode 100644
index d8690acd..00000000
--- a/linker.tray.win/web/js/727.d7ae4b5c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[727],{743:function(e,t,a){a.d(t,{$U:function(){return s},Ap:function(){return n},Co:function(){return o},DY:function(){return u},Qs:function(){return d},eX:function(){return i},pY:function(){return r}});var l=a(4);const n=()=>(0,l.zG)("sforwardclient/GetSecretKey"),o=e=>(0,l.zG)("sforwardclient/SetSecretKey",e),r=(e="0")=>(0,l.zG)("sforwardclient/get",e),s=e=>(0,l.zG)("sforwardclient/getremote",e),u=e=>(0,l.zG)("sforwardclient/remove",e),d=e=>(0,l.zG)("sforwardclient/add",e),i=()=>(0,l.zG)("sforwardclient/TestLocal")},83:function(e,t,a){a.d(t,{$M:function(){return d},KW:function(){return u},S3:function(){return h},Vn:function(){return c},b0:function(){return o},gM:function(){return s},ix:function(){return n},r7:function(){return r},xo:function(){return i}});var l=a(4);const n=()=>(0,l.zG)("tunnel/gettypes"),o=e=>(0,l.zG)("tunnel/SetServers",e),r=(e="0")=>(0,l.zG)("tunnel/get",e),s=()=>(0,l.zG)("tunnel/refresh"),u=e=>(0,l.zG)("tunnel/SetRouteLevel",e),d=e=>(0,l.zG)("tunnel/SetTransports",e),i=e=>(0,l.zG)("tunnel/SetExcludeIPs",e),c=()=>(0,l.zG)("tunnel/GeInterfaces"),h=e=>(0,l.zG)("tunnel/SetInterface",e)},920:function(e,t,a){a.d(t,{BJ:function(){return i},NS:function(){return r},Vk:function(){return d},aP:function(){return h},ir:function(){return u},lJ:function(){return o},mK:function(){return n},y2:function(){return c},yN:function(){return s}});var l=a(4);const n=(e="0")=>(0,l.zG)("updaterclient/get",e),o=e=>(0,l.zG)("updaterclient/confirm",e),r=e=>(0,l.zG)("updaterclient/exit",e),s=()=>(0,l.zG)("updaterclient/GetSecretKey"),u=e=>(0,l.zG)("updaterclient/SetSecretKey",e),d=()=>(0,l.zG)("updaterclient/getcurrent"),i=()=>(0,l.zG)("updaterclient/getserver"),c=e=>(0,l.zG)("updaterclient/confirmserver",e),h=()=>(0,l.zG)("updaterclient/exitserver")},9383:function(e,t,a){a.d(t,{T:function(){return d},d:function(){return u}});var l=a(920),n=a(3830),o=a(144),r=a(6768);const s=Symbol(),u=()=>{const e=(0,n.B)(),t=(0,o.KR)({timer:0,list:{},hashcode:0,current:{Version:"",Msg:[],DateTime:"",Status:0,Length:0,Current:0}});(0,r.Gt)(s,t);const a=()=>{(0,l.mK)(t.value.hashcode.toString()).then((l=>{if(t.value.hashcode=l.HashCode,l.List){const a=Object.values(l.List).filter((e=>!!e.Version))[0];a&&(Object.assign(t.value.current,{DateTime:a.DateTime,Version:a.Version,Status:a.Status,Length:a.Length,Current:a.Current,Msg:a.Msg}),e.value.updater=t.value.current),t.value.list=l.List}t.value.timer=setTimeout(a,800)})).catch((()=>{t.value.timer=setTimeout(a,800)}))},u=()=>{clearTimeout(t.value.timer)};return{updater:t,_getUpdater:a,clearUpdaterTimeout:u}},d=()=>(0,r.WQ)(s)},1699:function(e,t,a){a.d(t,{A:function(){return c}});var l=a(6768);function n(e,t,a,n,o,r){const s=(0,l.g2)("el-checkbox"),u=(0,l.g2)("el-col"),d=(0,l.g2)("el-row"),i=(0,l.g2)("el-checkbox-group");return(0,l.uX)(),(0,l.Wv)(i,{modelValue:n.state.checkList,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.checkList=e)},{default:(0,l.k6)((()=>[(0,l.bF)(d,null,{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.access,((e,t)=>((0,l.uX)(),(0,l.Wv)(u,{key:t,span:8},{default:(0,l.k6)((()=>[(0,l.bF)(s,{value:e.Value,label:e.Text},null,8,["value","label"])])),_:2},1024)))),128))])),_:1})])),_:1},8,["modelValue"])}a(4114);var o=a(144),r=a(3830),s=a(8835),u={props:["machineid"],setup(e){const t=(0,r.B)(),a=(0,l.EW)((()=>{const e=t.value.config.Client.Accesss;return Object.keys(e).reduce(((a,l,n)=>{if(t.value.hasAccess(l)){const t=e[l];t.Key=l,a.push(t)}return a}),[])})),n=(0,o.Kh)({checkList:[t.value.config.Client.Accesss.Api.Value,t.value.config.Client.Accesss.Web.Value,t.value.config.Client.Accesss.NetManager.Value]}),u=()=>n.checkList.reduce(((e,t)=>(e|t)>>>0),0);return(0,l.sV)((()=>{e.machineid!=t.value.config.Client.Id&&(0,s.QI)(e.machineid).then((e=>{n.checkList=a.value.reduce(((t,a)=>((e&a.Value)>>>0==a.Value&&t.push(a.Value),t)),[])})).catch((()=>{}))})),{state:n,access:a,getValue:u}}},d=a(1241);const i=(0,d.A)(u,[["render",n],["__scopeId","data-v-d5958228"]]);var c=i},1346:function(e,t,a){a.r(t),a.d(t,{default:function(){return ha}});var l=a(6768);const n={class:"home-list-wrap absolute"},o={class:"page t-c"},r={class:"page-wrap"};function s(e,t,a,s,u,d){const i=(0,l.g2)("el-table-column"),c=(0,l.g2)("el-table"),h=(0,l.g2)("Device"),m=(0,l.g2)("Tunnel"),p=(0,l.g2)("Tuntap"),g=(0,l.g2)("Forward"),f=(0,l.g2)("Oper"),v=(0,l.g2)("el-pagination"),w=(0,l.g2)("DeviceEdit"),k=(0,l.g2)("AccessEdit"),b=(0,l.g2)("TunnelEdit"),F=(0,l.g2)("ConnectionsEdit"),C=(0,l.g2)("TuntapEdit"),L=(0,l.g2)("ForwardEdit"),T=(0,l.g2)("ForwardCopy"),V=(0,l.g2)("SForwardEdit"),_=(0,l.g2)("SForwardCopy");return(0,l.uX)(),(0,l.CE)("div",n,[(0,l.bF)(c,{border:"",style:{width:"100%"},height:"32px",size:"small",onSortChange:s.handleSortChange,class:"table-sort"},{default:(0,l.k6)((()=>[(0,l.bF)(i,{prop:"MachineId",label:"设备名",width:"120",sortable:"custom"}),(0,l.bF)(i,{prop:"Version",label:"版本",width:"120",sortable:"custom"}),(0,l.bF)(i,{prop:"tunnel",label:"网关",width:"90",sortable:"custom"}),(0,l.bF)(i,{prop:"tuntap",label:"网卡IP",width:"150",sortable:"custom"}),(0,l.bF)(i,{prop:"forward",label:""}),(0,l.bF)(i,{label:"",width:"74",fixed:"right"})])),_:1},8,["onSortChange"]),(0,l.bF)(c,{data:s.devices.page.List,stripe:"",border:"",style:{width:"100%"},height:`${s.state.height}px`,size:"small"},{default:(0,l.k6)((()=>[(0,l.bF)(h,{onEdit:s.handleDeviceEdit,onRefresh:s.handlePageRefresh},null,8,["onEdit","onRefresh"]),(0,l.bF)(m,{onEdit:s.handleTunnelEdit,onRefresh:s.handleTunnelRefresh,onConnections:s.handleTunnelConnections},null,8,["onEdit","onRefresh","onConnections"]),(0,l.bF)(p,{onEdit:s.handleTuntapEdit,onRefresh:s.handleTuntapRefresh},null,8,["onEdit","onRefresh"]),(0,l.bF)(g,{onEdit:s._handleForwardEdit,onSedit:s.handleSForwardEdit},null,8,["onEdit","onSedit"]),(0,l.bF)(f,{onRefresh:s.handlePageRefresh,onAccess:s.handleAccessEdit},null,8,["onRefresh","onAccess"])])),_:1},8,["data","height"]),(0,l.Lk)("div",o,[(0,l.Lk)("div",r,[(0,l.bF)(v,{small:"",background:"",layout:"total,sizes,prev,pager, next",total:s.devices.page.Count,"page-size":s.devices.page.Request.Size,"current-page":s.devices.page.Request.Page,onCurrentChange:s.handlePageChange,onSizeChange:s.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])]),s.devices.showDeviceEdit?((0,l.uX)(),(0,l.Wv)(w,{key:0,modelValue:s.devices.showDeviceEdit,"onUpdate:modelValue":t[0]||(t[0]=e=>s.devices.showDeviceEdit=e),onChange:s.handlePageChange,data:s.devices.deviceInfo},null,8,["modelValue","onChange","data"])):(0,l.Q3)("",!0),s.devices.showAccessEdit?((0,l.uX)(),(0,l.Wv)(k,{key:1,modelValue:s.devices.showAccessEdit,"onUpdate:modelValue":t[1]||(t[1]=e=>s.devices.showAccessEdit=e),onChange:s.handlePageChange,data:s.devices.deviceInfo},null,8,["modelValue","onChange","data"])):(0,l.Q3)("",!0),s.tunnel.showEdit?((0,l.uX)(),(0,l.Wv)(b,{key:2,modelValue:s.tunnel.showEdit,"onUpdate:modelValue":t[2]||(t[2]=e=>s.tunnel.showEdit=e),onChange:s.handleTunnelRefresh},null,8,["modelValue","onChange"])):(0,l.Q3)("",!0),s.connections.showEdit?((0,l.uX)(),(0,l.Wv)(F,{key:3,modelValue:s.connections.showEdit,"onUpdate:modelValue":t[3]||(t[3]=e=>s.connections.showEdit=e)},null,8,["modelValue"])):(0,l.Q3)("",!0),s.tuntap.showEdit?((0,l.uX)(),(0,l.Wv)(C,{key:4,modelValue:s.tuntap.showEdit,"onUpdate:modelValue":t[4]||(t[4]=e=>s.tuntap.showEdit=e),onChange:s.handleTuntapRefresh},null,8,["modelValue","onChange"])):(0,l.Q3)("",!0),s.forward.showEdit?((0,l.uX)(),(0,l.Wv)(L,{key:5,modelValue:s.forward.showEdit,"onUpdate:modelValue":t[5]||(t[5]=e=>s.forward.showEdit=e)},null,8,["modelValue"])):(0,l.Q3)("",!0),s.forward.showCopy?((0,l.uX)(),(0,l.Wv)(T,{key:6,modelValue:s.forward.showCopy,"onUpdate:modelValue":t[6]||(t[6]=e=>s.forward.showCopy=e)},null,8,["modelValue"])):(0,l.Q3)("",!0),s.sforward.showEdit?((0,l.uX)(),(0,l.Wv)(V,{key:7,modelValue:s.sforward.showEdit,"onUpdate:modelValue":t[7]||(t[7]=e=>s.sforward.showEdit=e)},null,8,["modelValue"])):(0,l.Q3)("",!0),s.sforward.showCopy?((0,l.uX)(),(0,l.Wv)(_,{key:8,modelValue:s.sforward.showCopy,"onUpdate:modelValue":t[8]||(t[8]=e=>s.sforward.showCopy=e)},null,8,["modelValue"])):(0,l.Q3)("",!0)])}a(4114);var u=a(3830),d=a(144);const i=e=>((0,l.Qi)("data-v-60a3c25a"),e=e(),(0,l.jt)(),e),c={class:"dropdown"},h=i((()=>(0,l.Lk)("span",null,"操作",-1)));function m(e,t,a,n,o,r){const s=(0,l.g2)("ArrowDown"),u=(0,l.g2)("el-icon"),d=(0,l.g2)("SwitchButton"),i=(0,l.g2)("el-dropdown-item"),m=(0,l.g2)("Delete"),p=(0,l.g2)("Flag"),g=(0,l.g2)("el-dropdown-menu"),f=(0,l.g2)("el-dropdown"),v=(0,l.g2)("el-table-column");return(0,l.uX)(),(0,l.Wv)(v,{label:"操作",width:"74",fixed:"right"},{default:(0,l.k6)((e=>[(0,l.bF)(f,{size:"small"},{dropdown:(0,l.k6)((()=>[(0,l.bF)(g,null,{default:(0,l.k6)((()=>[e.row.showReboot&&n.hasReboot?((0,l.uX)(),(0,l.Wv)(i,{key:0,onClick:t=>n.handleExit(e.row.MachineId,e.row.MachineName)},{default:(0,l.k6)((()=>[(0,l.bF)(u,null,{default:(0,l.k6)((()=>[(0,l.bF)(d)])),_:1}),(0,l.eW)(" 重启")])),_:2},1032,["onClick"])):(0,l.Q3)("",!0),e.row.showDel&&n.hasRemove?((0,l.uX)(),(0,l.Wv)(i,{key:1,onClick:t=>n.handleDel(e.row.MachineId,e.row.MachineName)},{default:(0,l.k6)((()=>[(0,l.bF)(u,null,{default:(0,l.k6)((()=>[(0,l.bF)(m)])),_:1}),(0,l.eW)(" 删除")])),_:2},1032,["onClick"])):(0,l.Q3)("",!0),n.handleShowAccess(e.row,n.accessList[e.row.MachineId]||0)?((0,l.uX)(),(0,l.Wv)(i,{key:2,onClick:t=>n.handleAccess(e.row)},{default:(0,l.k6)((()=>[(0,l.bF)(u,null,{default:(0,l.k6)((()=>[(0,l.bF)(p)])),_:1}),(0,l.eW)(" 权限")])),_:2},1032,["onClick"])):(0,l.Q3)("",!0)])),_:2},1024)])),default:(0,l.k6)((()=>[(0,l.Lk)("div",c,[h,(0,l.bF)(u,{class:"el-icon--right"},{default:(0,l.k6)((()=>[(0,l.bF)(s)])),_:1})])])),_:2},1024)])),_:1})}var p=a(9299),g=a(920),f=a(7477),v=a(2933),w=a(8835);const k=Symbol(),b=()=>{const e=(0,d.KR)({list:{},timer:0,hashcode:0});(0,l.Gt)(k,e);const t=()=>{(0,w.QI)(e.value.hashcode.toString()).then((a=>{e.value.hashcode=a.HashCode,a.List&&(e.value.list=a.List),e.value.timer=setTimeout(t,1e3)})).catch((()=>{e.value.timer=setTimeout(t,1e3)}))},a=()=>{clearTimeout(e.value.timer)};return{access:e,_getAccessInfo:t,clearAccessTimeout:a}},F=()=>(0,l.WQ)(k);var C={emits:["refresh","access"],components:{Delete:f.epd,SwitchButton:f.L$q,ArrowDown:f.yd$,Flag:f.lNU},setup(e,{emit:t}){const a=(0,u.B)(),n=F(),o=(0,l.EW)((()=>a.value.config.Client.Accesss)),r=(0,l.EW)((()=>a.value.hasAccess("Access"))),s=(0,l.EW)((()=>n.value.list)),d=(0,l.EW)((()=>a.value.hasAccess("Reboot"))),i=(0,l.EW)((()=>a.value.hasAccess("Remove"))),c=(e,a)=>{v.s.confirm(`确认删除[${a}]?`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,p.Se)(e).then((()=>{t("refresh")}))})).catch((()=>{}))},h=(e,a)=>{v.s.confirm(`确认关闭[${a}]?`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,g.NS)(e).then((()=>{t("refresh")}))})).catch((()=>{}))},m=(e,t)=>e.showAccess&&r.value&&t>0&&(~o.value&t)>>>0==0,f=e=>{t("access",e)};return{accessList:s,handleDel:c,handleExit:h,hasReboot:d,hasRemove:i,hasAccess:r,handleShowAccess:m,handleAccess:f}}},L=a(1241);const T=(0,L.A)(C,[["render",m],["__scopeId","data-v-60a3c25a"]]);var V=T,_=a(4232);const E=e=>((0,l.Qi)("data-v-358fba0e"),e=e(),(0,l.jt)(),e),y={class:"flex"},I=E((()=>(0,l.Lk)("span",{class:"flex-1"},"设备",-1))),S={class:"flex"},P=["onClick"],M=["onClick"],R=E((()=>(0,l.Lk)("span",null,"😴㊙.㊙.㊙.㊙",-1))),W=[R],z=E((()=>(0,l.Lk)("span",{class:"flex-1"},null,-1)));function B(e,t,a,n,o,r){const s=(0,l.g2)("el-input"),u=(0,l.g2)("Search"),d=(0,l.g2)("el-icon"),i=(0,l.g2)("el-button"),c=(0,l.g2)("DeviceName"),h=(0,l.g2)("UpdaterBtn"),m=(0,l.g2)("el-table-column");return(0,l.uX)(),(0,l.Wv)(m,{prop:"MachineId",label:"设备",width:"240"},{header:(0,l.k6)((()=>[(0,l.Lk)("div",y,[I,(0,l.Lk)("span",null,[(0,l.bF)(s,{size:"small",modelValue:n.name,"onUpdate:modelValue":t[0]||(t[0]=e=>n.name=e),clearable:"",onInput:n.handleRefresh,placeholder:"设备/虚拟网卡/端口转发"},null,8,["modelValue","onInput"])]),(0,l.Lk)("span",null,[(0,l.bF)(i,{size:"small",onClick:n.handleRefresh},{default:(0,l.k6)((()=>[(0,l.bF)(d,null,{default:(0,l.k6)((()=>[(0,l.bF)(u)])),_:1})])),_:1},8,["onClick"])])])])),default:(0,l.k6)((e=>[(0,l.Lk)("div",null,[(0,l.Lk)("p",null,[(0,l.bF)(c,{onEdit:n.handleEdit,config:!0,item:e.row},null,8,["onEdit","item"])]),(0,l.Lk)("p",S,[e.row.showip?((0,l.uX)(),(0,l.CE)("span",{key:0,title:"此设备的外网IP",class:"ipaddress",onClick:t=>n.handleExternal(e.row)},[(0,l.Lk)("span",null,"😀"+(0,_.v_)(e.row.IP),1)],8,P)):((0,l.uX)(),(0,l.CE)("span",{key:1,title:"此设备的外网IP",class:"ipaddress",onClick:t=>n.handleExternal(e.row)},W,8,M)),z,(0,l.bF)(h,{config:!0,item:e.row},null,8,["item"])])])])),_:1})}var A=a(2126),N=a(886),X={emits:["edit","refresh"],components:{Search:f.vji,UpdaterBtn:A.A,DeviceName:N.A},setup(e,{emit:t}){const a=(0,u.B)(),n=(0,l.EW)((()=>a.value.hasAccess("ExternalShow"))),o=(0,d.KR)(sessionStorage.getItem("search-name")||""),r=e=>{n.value&&(e.showip=!e.showip)},s=e=>{t("edit",e)},i=()=>{sessionStorage.setItem("search-name",o.value),t("refresh",o.value)};return{handleEdit:s,handleRefresh:i,name:o,handleExternal:r}}};const U=(0,L.A)(X,[["render",B],["__scopeId","data-v-358fba0e"]]);var x=U;const D=(0,l.Lk)("div",null,"修改后最好能重启一次客户端",-1),K={class:"t-c w-100"};function G(e,t,a,n,o,r){const s=(0,l.g2)("el-form-item"),u=(0,l.g2)("el-input"),d=(0,l.g2)("el-button"),i=(0,l.g2)("el-form"),c=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(c,{modelValue:n.state.show,"onUpdate:modelValue":t[2]||(t[2]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.ruleForm.MachineName}]设备`,width:"300"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(i,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"auto"},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:""},{default:(0,l.k6)((()=>[D])),_:1}),(0,l.bF)(s,{label:"设备名",prop:"MachineName"},{default:(0,l.k6)((()=>[(0,l.bF)(u,{maxlength:"12","show-word-limit":"",modelValue:n.state.ruleForm.MachineName,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.ruleForm.MachineName=e)},null,8,["modelValue"])])),_:1}),(0,l.bF)(s,{label:"",prop:"Btns"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",K,[(0,l.bF)(d,{onClick:t[1]||(t[1]=e=>n.state.show=!1)},{default:(0,l.k6)((()=>[(0,l.eW)("取消")])),_:1}),(0,l.bF)(d,{type:"primary",onClick:n.handleSave},{default:(0,l.k6)((()=>[(0,l.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var O=a(1219),$={props:["data","modelValue"],emits:["change","update:modelValue"],setup(e,{emit:t}){const a=(0,d.KR)(null),n=(0,d.Kh)({show:!0,ruleForm:{MachineName1:e.data.MachineName,MachineName:e.data.MachineName},rules:{}});(0,l.wB)((()=>n.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const o=()=>{e.data.MachineName!=n.ruleForm.MachineName&&(0,p.gC)({Id:e.data.MachineId,newName:n.ruleForm.MachineName}).then((()=>{n.show=!1,O.nk.success("已操作!"),t("change")})).catch((()=>{O.nk.error("操作失败!")}))};return{state:n,ruleFormRef:a,handleSave:o}}};const Q=(0,L.A)($,[["render",G]]);var q=Q;function j(e,t,a,n,o,r){const s=(0,l.g2)("Access"),u=(0,l.g2)("el-button"),d=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(d,{modelValue:n.state.show,"onUpdate:modelValue":t[1]||(t[1]=e=>n.state.show=e),"close-on-click-modal":!1,center:"","append-to":".app-wrap",title:`设置[${n.machineName}]的权限`,width:"580",top:"1vh"},{footer:(0,l.k6)((()=>[(0,l.bF)(u,{plain:"",onClick:t[0]||(t[0]=e=>n.state.show=!1),loading:n.state.loading},{default:(0,l.k6)((()=>[(0,l.eW)("取消")])),_:1},8,["loading"]),(0,l.bF)(u,{type:"success",plain:"",onClick:n.handleSave,loading:n.state.loading},{default:(0,l.k6)((()=>[(0,l.eW)("确定保存")])),_:1},8,["onClick","loading"])])),default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(s,{machineid:n.machineid,ref:"accessDom"},null,8,["machineid"])])])),_:1},8,["modelValue","title"])}var H=a(1699),J={props:["data","modelValue"],emits:["change","update:modelValue"],components:{Access:H.A},setup(e,{emit:t}){const a=(0,d.Kh)({show:!0,loading:!1});(0,l.wB)((()=>a.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const n=(0,d.KR)(null),o=()=>{a.loading=!0,(0,w.ZK)({ToMachineId:e.data.MachineId,Access:n.value.getValue()}).then((()=>{a.loading=!1,a.show=!1,O.nk.success("已操作!"),t("change")})).catch((()=>{a.loading=!1,O.nk.error("操作失败!")}))};return{machineName:e.data.MachineName,machineid:e.data.MachineId,state:a,accessDom:n,handleSave:o}}};const Y=(0,L.A)(J,[["render",j]]);var Z=Y;const ee={key:0};function te(e,t,a,n,o,r){const s=(0,l.g2)("TuntapShow"),u=(0,l.g2)("el-table-column");return(0,l.uX)(),(0,l.Wv)(u,{prop:"tuntap",label:"虚拟网卡",width:"160"},{default:(0,l.k6)((e=>[n.tuntap.list[e.row.MachineId]?((0,l.uX)(),(0,l.CE)("div",ee,[(0,l.bF)(s,{config:!0,item:e.row,onEdit:n.handleTuntapIP,onRefresh:n.handleTuntapRefresh},null,8,["item","onEdit","onRefresh"])])):(0,l.Q3)("",!0)])),_:1})}var ae=a(8104),le=a(3630),ne={emits:["edit","refresh"],components:{TuntapShow:le.A},setup(e,{emit:t}){const a=(0,ae.W)(),l=e=>{t("edit",e)},n=()=>{t("refresh")};return{tuntap:a,handleTuntapIP:l,handleTuntapRefresh:n}}};const oe=(0,L.A)(ne,[["render",te]]);var re=oe;const se=e=>((0,l.Qi)("data-v-44067f74"),e=e(),(0,l.jt)(),e),ue=se((()=>(0,l.Lk)("span",null,"/",-1))),de=se((()=>(0,l.Lk)("span",{style:{width:"3rem"}},null,-1))),ie={key:0,class:"upgrade-wrap"},ce=se((()=>(0,l.Lk)("span",{class:"yellow"},"此设备能使用NAT转发,只需局域网IP,剩下的交给NAT(linux、macos、win10+)",-1))),he={class:"flex-1"},me=se((()=>(0,l.Lk)("span",null,"/",-1))),pe={class:"pdl-10"},ge=se((()=>(0,l.Lk)("span",{class:"yellow"},"此设备无法使用NAT转发,或只想使用端口转发",-1))),fe={class:"flex-1"},ve={class:"pdl-10"};function we(e,t,a,n,o,r){const s=(0,l.g2)("el-form-item"),u=(0,l.g2)("el-input"),d=(0,l.g2)("el-checkbox"),i=(0,l.g2)("el-popover"),c=(0,l.g2)("Delete"),h=(0,l.g2)("el-icon"),m=(0,l.g2)("el-button"),p=(0,l.g2)("Plus"),g=(0,l.g2)("el-form"),f=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(f,{modelValue:n.state.show,"onUpdate:modelValue":t[6]||(t[6]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.machineName}]组网`,top:"1vh",width:"700"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(g,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"140"},{default:(0,l.k6)((()=>[(0,l.bF)(s,{prop:"gateway",style:{"margin-bottom":"0"}},{default:(0,l.k6)((()=>[(0,l.eW)(" 赐予此设备IP,其它设备可通过此IP访问 ")])),_:1}),(0,l.bF)(s,{label:"此设备的虚拟网卡IP",prop:"IP"},{default:(0,l.k6)((()=>[(0,l.bF)(u,{modelValue:n.state.ruleForm.IP,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.ruleForm.IP=e),style:{width:"14rem"}},null,8,["modelValue"]),ue,(0,l.bF)(u,{onChange:n.handlePrefixLengthChange,modelValue:n.state.ruleForm.PrefixLength,"onUpdate:modelValue":t[1]||(t[1]=e=>n.state.ruleForm.PrefixLength=e),style:{width:"4rem"}},null,8,["onChange","modelValue"]),de,(0,l.bF)(d,{modelValue:n.state.ruleForm.ShowDelay,"onUpdate:modelValue":t[2]||(t[2]=e=>n.state.ruleForm.ShowDelay=e),label:"显示延迟",size:"large"},null,8,["modelValue"]),(0,l.bF)(i,{placement:"top",title:"提示",width:400,trigger:"hover",content:"在测试延迟时,如果未连接,将自动去打洞连接,当你有一百个设备时,每个设备都同时去与其它99台设备连接,这数据量不小,所以尽量不要个设备都勾选"},{reference:(0,l.k6)((()=>[(0,l.bF)(d,{modelValue:n.state.ruleForm.AutoConnect,"onUpdate:modelValue":t[3]||(t[3]=e=>n.state.ruleForm.AutoConnect=e),label:"自动连接?",size:"large"},null,8,["modelValue"])])),_:1})])),_:1}),(0,l.bF)(s,{prop:"upgrade",style:{"margin-bottom":"0"}},{default:(0,l.k6)((()=>[(0,l.bF)(d,{modelValue:n.state.ruleForm.Upgrade,"onUpdate:modelValue":t[4]||(t[4]=e=>n.state.ruleForm.Upgrade=e),label:"我很懂,我要使用高级功能(点对网和网对网)",size:"large"},null,8,["modelValue"])])),_:1}),n.state.ruleForm.Upgrade?((0,l.uX)(),(0,l.CE)("div",ie,[(0,l.bF)(s,{prop:"nat",style:{"margin-bottom":"0"}},{default:(0,l.k6)((()=>[ce])),_:1}),(0,l.bF)(s,{label:"此设备局域网IP",prop:"LanIP",style:{"border-bottom":"1px solid #ddd","margin-bottom":"0"}},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.ruleForm.LanIPs,((e,t)=>((0,l.uX)(),(0,l.CE)("div",{key:t,class:"flex",style:{"margin-bottom":".6rem"}},[(0,l.Lk)("div",he,[(0,l.bF)(u,{modelValue:n.state.ruleForm.LanIPs[t],"onUpdate:modelValue":e=>n.state.ruleForm.LanIPs[t]=e,style:{width:"14rem"}},null,8,["modelValue","onUpdate:modelValue"]),me,(0,l.bF)(u,{onChange:e=>n.handleMaskChange(t),modelValue:n.state.ruleForm.Masks[t],"onUpdate:modelValue":e=>n.state.ruleForm.Masks[t]=e,style:{width:"4rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"])]),(0,l.Lk)("div",pe,[(0,l.bF)(m,{type:"danger",onClick:e=>n.handleDel(t)},{default:(0,l.k6)((()=>[(0,l.bF)(h,null,{default:(0,l.k6)((()=>[(0,l.bF)(c)])),_:1})])),_:2},1032,["onClick"]),(0,l.bF)(m,{type:"primary",onClick:e=>n.handleAdd(t)},{default:(0,l.k6)((()=>[(0,l.bF)(h,null,{default:(0,l.k6)((()=>[(0,l.bF)(p)])),_:1})])),_:2},1032,["onClick"])])])))),128))])),_:1}),(0,l.bF)(s,{prop:"forward",style:{"margin-bottom":"0"}},{default:(0,l.k6)((()=>[ge])),_:1}),(0,l.bF)(s,{label:"端口转发",prop:"forwards"},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.ruleForm.Forwards,((e,t)=>((0,l.uX)(),(0,l.CE)("div",{key:t,class:"flex",style:{"margin-bottom":".6rem"}},[(0,l.Lk)("div",fe,[(0,l.bF)(u,{modelValue:e.ListenAddr,"onUpdate:modelValue":t=>e.ListenAddr=t,style:{width:"7rem"},readonly:""},null,8,["modelValue","onUpdate:modelValue"]),(0,l.eW)(" : "),(0,l.bF)(u,{onChange:e=>n.handleForwardChange(t),modelValue:e.ListenPort,"onUpdate:modelValue":t=>e.ListenPort=t,style:{width:"6rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"]),(0,l.eW)(" -> "),(0,l.bF)(u,{modelValue:e.ConnectAddr,"onUpdate:modelValue":t=>e.ConnectAddr=t,style:{width:"14rem"}},null,8,["modelValue","onUpdate:modelValue"]),(0,l.eW)(" : "),(0,l.bF)(u,{onChange:e=>n.handleForwardChange(t),modelValue:e.ConnectPort,"onUpdate:modelValue":t=>e.ConnectPort=t,style:{width:"6rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"])]),(0,l.Lk)("div",ve,[(0,l.bF)(m,{type:"danger",onClick:e=>n.handleDelForward(t)},{default:(0,l.k6)((()=>[(0,l.bF)(h,null,{default:(0,l.k6)((()=>[(0,l.bF)(c)])),_:1})])),_:2},1032,["onClick"]),(0,l.bF)(m,{type:"primary",onClick:e=>n.handleAddForward(t)},{default:(0,l.k6)((()=>[(0,l.bF)(h,null,{default:(0,l.k6)((()=>[(0,l.bF)(p)])),_:1})])),_:2},1032,["onClick"])])])))),128))])),_:1})])):(0,l.Q3)("",!0),(0,l.bF)(s,{label:"",prop:"Btns"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(m,{onClick:t[5]||(t[5]=e=>n.state.show=!1)},{default:(0,l.k6)((()=>[(0,l.eW)("取消")])),_:1}),(0,l.bF)(m,{type:"primary",onClick:n.handleSave},{default:(0,l.k6)((()=>[(0,l.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var ke=a(5241),be={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:f.epd,Plus:f.FWt},setup(e,{emit:t}){const a=(0,u.B)(),n=(0,ae.W)(),o=(0,d.KR)(null),r=(0,d.Kh)({show:!0,machineName:n.value.current.device.MachineName,bufferSize:a.value.bufferSize,ruleForm:{IP:n.value.current.IP,LanIPs:n.value.current.LanIPs.slice(0),Masks:n.value.current.Masks.slice(0),PrefixLength:n.value.current.PrefixLength||24,Gateway:n.value.current.Gateway,ShowDelay:n.value.current.ShowDelay,AutoConnect:n.value.current.AutoConnect,Upgrade:n.value.current.Upgrade,Forwards:0==n.value.current.Forwards.length?[{ListenAddr:"0.0.0.0",ListenPort:0,ConnectAddr:"0.0.0.0",ConnectPort:0}]:n.value.current.Forwards.slice(0)},rules:{}});0==r.ruleForm.LanIPs.length&&(r.ruleForm.LanIPs.push(""),r.ruleForm.Masks.push(24)),(0,l.wB)((()=>r.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const s=()=>{var e=+r.ruleForm.PrefixLength;(e>32||e<16||isNaN(e))&&(e=24),r.ruleForm.PrefixLength=e},i=e=>{var t=+r.ruleForm.Masks[e];(t>32||t<16||isNaN(t))&&(t=24),r.ruleForm.Masks[e]=t},c=e=>{r.ruleForm.LanIPs.splice(e,1),r.ruleForm.Masks.splice(e,1),0==r.ruleForm.LanIPs.length&&h(0)},h=e=>{r.ruleForm.LanIPs.splice(e+1,0,""),r.ruleForm.Masks.splice(e+1,0,24)},m=()=>{const e=JSON.parse(JSON.stringify(n.value.current));e.IP=r.ruleForm.IP||"0.0.0.0";const{lanips:a,masks:l}=r.ruleForm.LanIPs.reduce(((e,t,a)=>(t&&r.ruleForm.Masks[a]&&(e.lanips.push(t),e.masks.push(r.ruleForm.Masks[a])),e)),{lanips:[],masks:[]});e.LanIPs=a,e.Masks=l,e.PrefixLength=+r.ruleForm.PrefixLength,e.Gateway=r.ruleForm.Gateway,e.ShowDelay=r.ruleForm.ShowDelay,e.AutoConnect=r.ruleForm.AutoConnect,e.Upgrade=r.ruleForm.Upgrade,e.Forwards=r.ruleForm.Forwards,e.Forwards.forEach((e=>{e.ListenPort=+e.ListenPort,e.ConnectPort=+e.ConnectPort})),(0,ke.ac)(e).then((()=>{r.show=!1,O.nk.success("已操作!"),t("change")})).catch((()=>{O.nk.error("操作失败!")}))},p=e=>{r.ruleForm.Forwards.splice(e,1),0==r.ruleForm.Forwards.length&&g(0)},g=e=>{r.ruleForm.Forwards.splice(e+1,0,{ListenAddr:"0.0.0.0",ListenPort:0,ConnectAddr:"0.0.0.0",ConnectPort:0})},f=()=>{};return{state:r,ruleFormRef:o,handlePrefixLengthChange:s,handleMaskChange:i,handleDel:c,handleAdd:h,handleSave:m,handleForwardChange:f,handleDelForward:p,handleAddForward:g}}};const Fe=(0,L.A)(be,[["render",we],["__scopeId","data-v-44067f74"]]);var Ce=Fe;const Le={key:0},Te=["title","onClick"],Ve=["onClick"];function _e(e,t,a,n,o,r){const s=(0,l.g2)("el-table-column");return(0,l.uX)(),(0,l.Wv)(s,{prop:"tunnel",label:"隧道",width:"90"},{default:(0,l.k6)((e=>[n.tunnel.list[e.row.MachineId]?((0,l.uX)(),(0,l.CE)("div",Le,[(0,l.Lk)("a",{href:"javascript:;",class:(0,_.C4)(["a-line",{yellow:n.tunnel.list[e.row.MachineId].NeedReboot}]),title:n.tunnel.list[e.row.MachineId].NeedReboot?"需要重启":"调整网关层级有助于打洞成功",onClick:t=>n.handleTunnel(n.tunnel.list[e.row.MachineId],e.row)},[(0,l.Lk)("span",null,"网关 : "+(0,_.v_)(n.tunnel.list[e.row.MachineId].RouteLevel)+" + "+(0,_.v_)(n.tunnel.list[e.row.MachineId].RouteLevelPlus),1)],10,Te)])):(0,l.Q3)("",!0),(0,l.Lk)("div",null,[(0,l.Lk)("a",{href:"javascript:;",title:"与此设备的隧道连接",class:(0,_.C4)(["a-line",{green:n.connectionCount(e.row.MachineId)>0}]),onClick:t=>n.handleConnections(e.row)},[(0,l.eW)(" 连接数 : "),(0,l.Lk)("span",null,(0,_.v_)(n.connectionCount(e.row.MachineId)),1)],10,Ve)])])),_:1})}var Ee=a(83);const ye=Symbol(),Ie=()=>{(0,u.B)();const e=(0,d.KR)({timer:0,showEdit:!1,current:null,list:{},hashcode:0});(0,l.Gt)(ye,e);const t=()=>{(0,Ee.r7)(e.value.hashcode.toString()).then((a=>{e.value.hashcode=a.HashCode,a.List&&(e.value.list=a.List),e.value.timer=setTimeout(t,1060)})).catch((()=>{e.value.timer=setTimeout(t,1060)}))},a=t=>{e.value.current=t,e.value.showEdit=!0},n=()=>{(0,Ee.gM)(),O.nk.success({message:"刷新成功",grouping:!0})},o=()=>{clearTimeout(e.value.timer)},r=t=>Object.values(e.value.list).sort(((e,t)=>e.RouteLevel+e.RouteLevelPlus-t.RouteLevel+t.RouteLevelPlus)).map((e=>e.MachineId));return{tunnel:e,_getTunnelInfo:t,handleTunnelEdit:a,handleTunnelRefresh:n,clearTunnelTimeout:o,sortTunnel:r}},Se=()=>(0,l.WQ)(ye);var Pe=a(4);const Me=(e="0")=>(0,Pe.zG)("forwardclient/connections",e),Re=e=>(0,Pe.zG)("forwardclient/removeconnection",e),We=(e="0")=>(0,Pe.zG)("forwardclient/get",e),ze=e=>(0,Pe.zG)("forwardclient/getremote",e),Be=()=>(0,Pe.zG)("forwardclient/bindips"),Ae=e=>(0,Pe.zG)("forwardclient/remove",e),Ne=e=>(0,Pe.zG)("forwardclient/add",e),Xe=e=>(0,Pe.zG)("forwardclient/TestTarget",e),Ue=Symbol(),xe=Symbol(),De=Symbol(),Ke=()=>{(0,u.B)();const e=(0,d.KR)({showEdit:!1,speedCache:{},current:"",currentName:"",hashcode:0,hashcode1:0});(0,l.Gt)(Ue,e);const t=(0,d.KR)({timer:0,list:{}});(0,l.Gt)(xe,t);const a=()=>{Me(e.value.hashcode.toString()).then((l=>{e.value.hashcode=l.HashCode,l.List&&(r(l.List,Re),t.value.list=l.List),t.value.timer=setTimeout(a,1e3)})).catch((e=>{t.value.timer=setTimeout(a,1e3)}))},n=(0,d.KR)({timer:0,list:{}});(0,l.Gt)(De,n);const o=()=>{(0,ke.kl)(e.value.hashcode1.toString()).then((t=>{e.value.hashcode1=t.HashCode,t.List&&(r(t.List,ke.vB),n.value.list=t.List),n.value.timer=setTimeout(o,1e3)})).catch((e=>{n.value.timer=setTimeout(o,1e3)}))},r=(t,a)=>{const l=e.value.speedCache;for(let e in t){const n=t[e];n.removeFunc=a;const o=`${n.RemoteMachineId}-${n.TransactionId}`,r=l[o]||{SendBytes:0,ReceiveBytes:0};n.SendBytesText=s(n.SendBytes-r.SendBytes),n.ReceiveBytesText=s(n.ReceiveBytes-r.ReceiveBytes),r.SendBytes=n.SendBytes,r.ReceiveBytes=n.ReceiveBytes,l[o]=r}},s=e=>{let t=0;while(e>=1024)e/=1024,t++;return`${e.toFixed(2)}${["B/s","KB/s","MB/s","GB/s","TB/s"][t]}`},i=t=>{e.value.current=t.MachineId,e.value.currentName=t.MachineName,e.value.showEdit=!0},c=()=>{clearTimeout(t.value.timer),clearTimeout(n.value.timer)};return{connections:e,forwardConnections:t,_getForwardConnections:a,tuntapConnections:n,_getTuntapConnections:o,handleTunnelConnections:i,clearConnectionsTimeout:c}},Ge=()=>(0,l.WQ)(Ue),Oe=()=>(0,l.WQ)(xe),$e=()=>(0,l.WQ)(De);var Qe={emits:["edit","refresh"],setup(e,{emit:t}){const a=(0,u.B)(),n=(0,l.EW)((()=>a.value.config.Client.Id)),o=(0,l.EW)((()=>a.value.hasAccess("TunnelChangeSelf"))),r=(0,l.EW)((()=>a.value.hasAccess("TunnelChangeOther"))),s=Se(),d=(Ge(),Oe()),i=$e(),c=e=>[d.value.list[e],i.value.list[e]].filter((e=>!!e&&e.Connected)).length,h=(e,a)=>{if(n.value===e.MachineId){if(!o.value)return}else if(!r.value)return;e.device=a,t("edit",e)},m=()=>{t("refresh")},p=e=>{t("connections",e)};return{tunnel:s,handleTunnel:h,handleTunnelRefresh:m,connectionCount:c,handleConnections:p}}};const qe=(0,L.A)(Qe,[["render",_e],["__scopeId","data-v-56597dfc"]]);var je=qe;const He=e=>((0,l.Qi)("data-v-1f7f67a4"),e=e(),(0,l.jt)(),e),Je=He((()=>(0,l.Lk)("div",null,"网关层级为你的设备与外网的距离,你可以手动调整数值",-1))),Ye=He((()=>(0,l.Lk)("div",null,"光猫映射了端口后,可以直接连接,把TcpPortMap调到第一",-1))),Ze={class:"t-c w-100"};function et(e,t,a,n,o,r){const s=(0,l.g2)("el-form-item"),u=(0,l.g2)("el-input"),d=(0,l.g2)("el-col"),i=(0,l.g2)("el-input-number"),c=(0,l.g2)("el-row"),h=(0,l.g2)("el-button"),m=(0,l.g2)("el-form"),p=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(p,{modelValue:n.state.show,"onUpdate:modelValue":t[5]||(t[5]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.machineName}]网关`,width:"400"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(m,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"auto"},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:"",prop:"alert"},{default:(0,l.k6)((()=>[Je])),_:1}),(0,l.bF)(s,{label:""},{default:(0,l.k6)((()=>[(0,l.bF)(c,null,{default:(0,l.k6)((()=>[(0,l.bF)(d,{span:12},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:"网关层级",prop:"RouteLevel"},{default:(0,l.k6)((()=>[(0,l.bF)(u,{readonly:"",modelValue:n.state.ruleForm.RouteLevel,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.ruleForm.RouteLevel=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,l.bF)(d,{span:12},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:"调整层级",prop:"RouteLevelPlus"},{default:(0,l.k6)((()=>[(0,l.bF)(i,{modelValue:n.state.ruleForm.RouteLevelPlus,"onUpdate:modelValue":t[1]||(t[1]=e=>n.state.ruleForm.RouteLevelPlus=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,l.bF)(s,{label:"",prop:"alert"},{default:(0,l.k6)((()=>[Ye])),_:1}),(0,l.bF)(s,{label:""},{default:(0,l.k6)((()=>[(0,l.bF)(c,null,{default:(0,l.k6)((()=>[(0,l.bF)(d,{span:12},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:"外网端口",prop:"PortMapWan"},{default:(0,l.k6)((()=>[(0,l.bF)(i,{modelValue:n.state.ruleForm.PortMapWan,"onUpdate:modelValue":t[2]||(t[2]=e=>n.state.ruleForm.PortMapWan=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,l.bF)(d,{span:12},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:"内网端口",prop:"PortMapLan"},{default:(0,l.k6)((()=>[(0,l.bF)(i,{modelValue:n.state.ruleForm.PortMapLan,"onUpdate:modelValue":t[3]||(t[3]=e=>n.state.ruleForm.PortMapLan=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,l.bF)(s,{label:"",prop:"Btns"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",Ze,[(0,l.bF)(h,{onClick:t[4]||(t[4]=e=>n.state.show=!1)},{default:(0,l.k6)((()=>[(0,l.eW)("取消")])),_:1}),(0,l.bF)(h,{type:"primary",onClick:n.handleSave},{default:(0,l.k6)((()=>[(0,l.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var tt={props:["modelValue"],emits:["change","update:modelValue"],setup(e,{emit:t}){const a=Se(),n=(0,d.KR)(null),o=(0,d.Kh)({show:!0,machineName:a.value.current.device.MachineName,ruleForm:{RouteLevel:a.value.current.RouteLevel,RouteLevelPlus:a.value.current.RouteLevelPlus,PortMapWan:a.value.current.PortMapWan,PortMapLan:a.value.current.PortMapLan},rules:{}});(0,l.wB)((()=>o.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const r=()=>{const e=JSON.parse(JSON.stringify(a.value.current));e.RouteLevel=+o.ruleForm.RouteLevel,e.RouteLevelPlus=+o.ruleForm.RouteLevelPlus,e.PortMapWan=+o.ruleForm.PortMapWan,e.PortMapLan=+o.ruleForm.PortMapLan,(0,Ee.KW)(e).then((()=>{o.show=!1,O.nk.success("已操作!"),t("change")})).catch((()=>{O.nk.error("操作失败!")}))};return{state:o,ruleFormRef:n,handleSave:r}}};const at=(0,L.A)(tt,[["render",et],["__scopeId","data-v-1f7f67a4"]]);var lt=at;const nt={key:0},ot={class:"list forward"},rt=["onClick"],st={key:1},ut=["onClick"],dt={key:0},it={class:"list sforward"},ct={key:1};function ht(e,t,a,n,o,r){const s=(0,l.g2)("el-table-column");return(0,l.uX)(),(0,l.Wv)(s,{prop:"forward",label:"端口转发"},{default:(0,l.k6)((e=>[e.row.isSelf?((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[n.hasForwardShowSelf?((0,l.uX)(),(0,l.CE)("div",dt,[(0,l.Lk)("ul",it,[n.sforward.list&&n.sforward.list.length>0?((0,l.uX)(!0),(0,l.CE)(l.FK,{key:0},(0,l.pI)(n.sforward.list.slice(0,5),((e,a)=>((0,l.uX)(),(0,l.CE)("li",{key:a,class:(0,_.C4)({red:!!e.Msg})},[(0,l.Lk)("a",{href:"javascript:;",onClick:t[0]||(t[0]=e=>n.handleSEdit()),class:(0,_.C4)({green:e.Started})},[(0,l.Lk)("span",null,[(0,l.Lk)("span",{class:(0,_.C4)({red:!!e.Msg})},(0,_.v_)(e.Domain||e.RemotePort),3),(0,l.eW)(" -> "),(0,l.Lk)("span",{class:(0,_.C4)({red:!!e.LocalMsg})},(0,_.v_)(e.LocalEP),3)])],2),(0,l.Lk)("span",null," ("+(0,_.v_)(1<n.handleSEdit())},"暂无配置")]))])])):(0,l.Q3)("",!0)],64)):((0,l.uX)(),(0,l.CE)(l.FK,{key:0},[n.hasForwardShowOther?((0,l.uX)(),(0,l.CE)("div",nt,[(0,l.Lk)("ul",ot,[n.forward.list[e.row.MachineId]&&n.forward.list[e.row.MachineId].length>0?((0,l.uX)(!0),(0,l.CE)(l.FK,{key:0},(0,l.pI)(n.forward.list[e.row.MachineId],((t,a)=>((0,l.uX)(),(0,l.CE)("li",{key:a},[(0,l.Lk)("a",{href:"javascript:;",onClick:t=>n.handleEdit(e.row.MachineId),class:(0,_.C4)({green:t.Started})},[(0,l.Lk)("span",null,[(0,l.Lk)("span",{class:(0,_.C4)({red:!!t.Msg})},(0,_.v_)(t.Port),3),(0,l.eW)(" -> "),(0,l.Lk)("span",{class:(0,_.C4)({red:!!t.TargetMsg})},(0,_.v_)(t.TargetEP),3)])],10,rt),(0,l.Lk)("span",null," ("+(0,_.v_)(1<n.handleEdit(e.row.MachineId)},"暂无配置",8,ut)]))])])):(0,l.Q3)("",!0)],64))])),_:1})}const mt=Symbol(),pt=()=>{(0,u.B)();const e=(0,d.KR)({timer:0,showEdit:!1,showCopy:!1,current:null,list:{},testTimer:0,testTargetTimer:0,hashcode:0,hashcode1:0});(0,l.Gt)(mt,e);const t=()=>{We(e.value.hashcode.toString()).then((a=>{e.value.hashcode=a.HashCode,a.List&&(e.value.list=a.List),e.value.timer=setTimeout(t,1020)})).catch((()=>{e.value.timer=setTimeout(t,1020)}))},a=(t,a)=>{e.value.current=t,e.value.machineName=a,e.value.showEdit=!0},n=()=>{clearTimeout(e.value.testTargetTimer),Xe(e.value.current).then((t=>{e.value.testTargetTimer=setTimeout(n,5e3)})).catch((()=>{e.value.testTargetTimer=setTimeout(n,5e3)}))},o=()=>{clearTimeout(e.value.timer),clearTimeout(e.value.testTimer),clearTimeout(e.value.testTargetTimer)},r=t=>Object.values(e.value.list).reduce(((e,t)=>(e=e.concat(t),e)),[]).filter((e=>(e.Name||"").indexOf(t)>=0||(e.BindIPAddress||"").indexOf(t)>=0||e.Port.toString().indexOf(t)>=0||(e.TargetEP||"").indexOf(t)>=0)).map((e=>e.MachineId));return{forward:e,_getForwardInfo:t,handleForwardEdit:a,_testTargetForwardInfo:n,clearForwardTimeout:o,getForwardMachines:r}},gt=()=>(0,l.WQ)(mt);var ft=a(743);const vt=Symbol(),wt=()=>{const e=(0,u.B)(),t=(0,l.EW)((()=>e.value.config.Client.Id)),a=(0,d.KR)({timer:0,showEdit:!1,showCopy:!1,list:[],testTimer:0,hashcode:0});(0,l.Gt)(vt,a);const n=()=>{(0,ft.pY)(a.value.hashcode.toString()).then((e=>{a.value.hashcode=e.HashCode,e.List&&(a.value.list=e.List),a.value.timer=setTimeout(n,1040)})).catch((()=>{a.value.timer=setTimeout(n,1040)}))},o=()=>{a.value.showEdit=!0},r=()=>{clearTimeout(a.value.testTimer),(0,ft.eX)().then((e=>{a.value.testTimer=setTimeout(r,5e3)})).catch((()=>{a.value.testTimer=setTimeout(r,5e3)}))},s=()=>{clearTimeout(a.value.timer),clearTimeout(a.value.testTimer)},i=e=>{const l=a.value.list.filter((t=>(t.Name||"").indexOf(e)>=0||(t.Domain||"").indexOf(e)>=0||t.RemotePort.toString().indexOf(e)>=0||t.LocalEP.indexOf(e)>=0));return l.length>0?[t.value]:[]};return{sforward:a,_getSForwardInfo:n,handleSForwardEdit:o,_testLocalSForwardInfo:r,clearSForwardTimeout:s,getSForwardMachines:i}},kt=()=>(0,l.WQ)(vt);var bt={emits:["edit","sedit"],setup(e,{emit:t}){const a=gt(),n=kt(),o=(0,u.B)(),r=(0,l.EW)((()=>o.value.config.Client.Id)),s=(0,l.EW)((()=>o.value.hasAccess("ForwardShowSelf"))),d=(0,l.EW)((()=>o.value.hasAccess("ForwardShowOther"))),i=(0,l.EW)((()=>o.value.hasAccess("ForwardSelf"))),c=(0,l.EW)((()=>o.value.hasAccess("Accesss"))),h=e=>{if(r.value===e){if(!i.value)return}else if(!c.value)return;t("edit",e)},m=()=>{i.value&&t("sedit")},p=()=>{t("refresh")};return{forward:a,sforward:n,hasForwardShowSelf:s,hasForwardShowOther:d,handleEdit:h,handleSEdit:m,handleForwardRefresh:p}}};const Ft=(0,L.A)(bt,[["render",ht],["__scopeId","data-v-3653b6fb"]]);var Ct=Ft;const Lt={class:"t-c head"},Tt={class:"error red"},Vt={class:"error red"};function _t(e,t,a,n,o,r){const s=(0,l.g2)("el-button"),u=(0,l.g2)("el-input"),d=(0,l.g2)("el-table-column"),i=(0,l.g2)("el-option"),c=(0,l.g2)("el-select"),h=(0,l.g2)("WarnTriangleFilled"),m=(0,l.g2)("el-icon"),p=(0,l.g2)("el-popover"),g=(0,l.g2)("el-switch"),f=(0,l.g2)("Delete"),v=(0,l.g2)("el-popconfirm"),w=(0,l.g2)("el-table"),k=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(k,{modelValue:n.state.show,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:`端口转发到【${n.state.machineName}】`,top:"1vh",width:"700"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.Lk)("div",Lt,[(0,l.bF)(s,{type:"success",size:"small",onClick:n.handleAdd},{default:(0,l.k6)((()=>[(0,l.eW)("添加")])),_:1},8,["onClick"]),(0,l.bF)(s,{size:"small",onClick:n.handleRefresh},{default:(0,l.k6)((()=>[(0,l.eW)("刷新")])),_:1},8,["onClick"]),(0,l.bF)(s,{size:"small",onClick:n.handleCopy},{default:(0,l.k6)((()=>[(0,l.eW)("复制转发配置")])),_:1},8,["onClick"])]),(0,l.bF)(w,{data:n.state.data,size:"small",border:"",height:"500",onCellDblclick:n.handleCellClick},{default:(0,l.k6)((()=>[(0,l.bF)(d,{property:"Name",label:"名称"},{default:(0,l.k6)((e=>[e.row.NameEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":t=>e.row.Name=t,onBlur:t=>n.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[(0,l.eW)((0,_.v_)(e.row.Name),1)],64))])),_:1}),(0,l.bF)(d,{prop:"BufferSize",label:"缓冲区",width:"100"},{default:(0,l.k6)((e=>[(0,l.bF)(c,{modelValue:e.row.BufferSize,"onUpdate:modelValue":t=>e.row.BufferSize=t,placeholder:"Select",size:"small",disabled:e.row.Started,onChange:t=>n.handleEditBlur(e.row,"BufferSize")},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.bufferSize,((e,t)=>((0,l.uX)(),(0,l.Wv)(i,{key:t,label:e,value:t},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","disabled","onChange"])])),_:1}),(0,l.bF)(d,{property:"BindIPAddress",label:"监听IP",width:"140"},{default:(0,l.k6)((e=>[(0,l.bF)(c,{modelValue:e.row.BindIPAddress,"onUpdate:modelValue":t=>e.row.BindIPAddress=t,size:"small",disabled:e.row.Started},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.ips,(e=>((0,l.uX)(),(0,l.Wv)(i,{key:e,label:e,value:e},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","disabled"])])),_:1}),(0,l.bF)(d,{property:"Port",label:"监听端口",width:"80"},{default:(0,l.k6)((e=>[e.row.PortEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,type:"number",autofocus:"",size:"small",modelValue:e.row.Port,"onUpdate:modelValue":t=>e.row.Port=t,onBlur:t=>n.handleEditBlur(e.row,"Port")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[e.row.Msg?((0,l.uX)(),(0,l.Wv)(p,{key:0,placement:"top",title:"msg",width:"20rem",trigger:"hover",content:e.row.Msg},{reference:(0,l.k6)((()=>[(0,l.Lk)("div",Tt,[(0,l.Lk)("span",null,(0,_.v_)(e.row.Port),1),(0,l.bF)(m,{size:"20"},{default:(0,l.k6)((()=>[(0,l.bF)(h)])),_:1})])])),_:2},1032,["content"])):((0,l.uX)(),(0,l.CE)("span",{key:1,class:(0,_.C4)({green:e.row.Started})},(0,_.v_)(e.row.Port),3))],64))])),_:1}),(0,l.bF)(d,{property:"TargetEP",label:"目标服务",width:"140"},{default:(0,l.k6)((e=>[e.row.TargetEPEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.TargetEP,"onUpdate:modelValue":t=>e.row.TargetEP=t,onBlur:t=>n.handleEditBlur(e.row,"TargetEP")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[e.row.TargetMsg?((0,l.uX)(),(0,l.Wv)(p,{key:0,placement:"top",title:"msg",width:"20rem",trigger:"hover",content:e.row.TargetMsg},{reference:(0,l.k6)((()=>[(0,l.Lk)("span",Vt,(0,_.v_)(e.row.TargetEP),1),(0,l.bF)(m,{size:"20"},{default:(0,l.k6)((()=>[(0,l.bF)(h)])),_:1})])),_:2},1032,["content"])):((0,l.uX)(),(0,l.CE)("span",{key:1,class:(0,_.C4)({green:e.row.Started})},(0,_.v_)(e.row.TargetEP),3))],64))])),_:1}),(0,l.bF)(d,{property:"Started",label:"状态",width:"60"},{default:(0,l.k6)((e=>[(0,l.bF)(g,{modelValue:e.row.Started,"onUpdate:modelValue":t=>e.row.Started=t,onChange:t=>n.handleStartChange(e.row),"inline-prompt":"","active-text":"开","inactive-text":"关"},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,l.bF)(d,{label:"操作",width:"54"},{default:(0,l.k6)((e=>[(0,l.bF)(v,{"confirm-button-text":"确认","cancel-button-text":"取消",title:"删除不可逆,是否确认?",onConfirm:t=>n.handleDel(e.row.Id)},{reference:(0,l.k6)((()=>[(0,l.bF)(s,{type:"danger",size:"small"},{default:(0,l.k6)((()=>[(0,l.bF)(m,null,{default:(0,l.k6)((()=>[(0,l.bF)(f)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])])),_:1})])),_:1},8,["data","onCellDblclick"])])])),_:1},8,["modelValue","onOpen","title"])}var Et={props:["data","modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:f.DtC,Delete:f.epd},setup(e,{emit:t}){const a=(0,u.B)(),n=gt(),o=(0,d.Kh)({show:!0,machineId:n.value.current,machineName:n.value.machineName,data:[],ips:[],timerTestTarget:0,timerTestListen:0,bufferSize:a.value.bufferSize});(0,l.wB)((()=>o.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const r=()=>{Be().then((e=>{e.splice(0,0,"127.0.0.1"),e.splice(0,0,"0.0.0.0"),o.ips=e})).catch((()=>{}))},s=()=>{Xe(n.value.current).then((e=>{o.timerTestTarget=setTimeout(s,1e3)})).catch((()=>{o.timerTestTarget=setTimeout(s,1e3)}))},i=()=>{We().then((e=>{e.List&&(o.data=e.List[o.machineId]||[])})).catch((()=>{}))},c=()=>{i()},h=(e,t)=>{g(e,t.property)},m=()=>{i(),O.nk.success("已刷新")},p=()=>{k({ID:0,Name:"",Port:0,TargetEP:"127.0.0.1:80",machineId:o.machineId})},g=(e,t)=>{e.Started?O.nk.error("请先停止"):(o.data.forEach((e=>{e["NameEditing"]=!1,e["PortEditing"]=!1,e["TargetEPEditing"]=!1,e["BindIPAddressEditing"]=!1})),e[`${t}Editing`]=!0)},f=(e,t)=>{e.Started?O.nk.error("请先停止"):(e[`${t}Editing`]=!1,k(e))},v=e=>{Ae(e).then((()=>{i()}))},w=e=>{k(e)},k=e=>{e.Port=parseInt(e.Port),Ne(e).then((()=>{i()})).catch((e=>{O.nk.error(e)}))},b=()=>{n.value.showCopy=!0};return(0,l.sV)((()=>{i(),r(),s()})),(0,l.hi)((()=>{clearTimeout(o.timerTestTarget),clearTimeout(o.timerTestListen)})),{state:o,handleOnShowList:c,handleCellClick:h,handleRefresh:m,handleAdd:p,handleEdit:g,handleEditBlur:f,handleDel:v,handleStartChange:w,handleCopy:b}}};const yt=(0,L.A)(Et,[["render",_t],["__scopeId","data-v-2c1a8404"]]);var It=yt;const St=e=>((0,l.Qi)("data-v-3a13c86f"),e=e(),(0,l.jt)(),e),Pt={class:"t-c head"},Mt=St((()=>(0,l.Lk)("span",null,"复制",-1))),Rt={class:"t-c"},Wt={class:"page-wrap"},zt={class:"foot t-c"};function Bt(e,t,a,n,o,r){const s=(0,l.g2)("el-pagination"),u=(0,l.g2)("el-option"),d=(0,l.g2)("el-select"),i=(0,l.g2)("el-table-column"),c=(0,l.g2)("el-checkbox"),h=(0,l.g2)("el-table"),m=(0,l.g2)("el-button"),p=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(p,{modelValue:n.state.show,"onUpdate:modelValue":t[1]||(t[1]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:"复制端口转发",top:"1vh",width:"500"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.Lk)("div",Pt,[Mt,(0,l.bF)(d,{modelValue:n.state.machineId,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.machineId=e),onChange:n.handleMachineChange,filterable:"",remote:"",loading:n.state.loading,"remote-method":n.handleSearch},{header:(0,l.k6)((()=>[(0,l.Lk)("div",Rt,[(0,l.Lk)("div",Wt,[(0,l.bF)(s,{small:"",background:"",layout:"prev, pager, next","page-size":n.state.machineIds.Request.Size,total:n.state.machineIds.Count,"pager-count":5,"current-page":n.state.machineIds.Request.Page,onCurrentChange:n.handlePageChange},null,8,["page-size","total","current-page","onCurrentChange"])])])])),default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.machineIds.List,((e,t)=>((0,l.uX)(),(0,l.Wv)(u,{key:t,label:e.MachineName,value:e.MachineId},null,8,["label","value"])))),128))])),_:1},8,["modelValue","onChange","loading","remote-method"]),(0,l.Lk)("span",null,"到【"+(0,_.v_)(n.state.toMachineName)+"】的端口转发记录",1)]),(0,l.bF)(h,{data:n.state.forwards,size:"small",border:""},{default:(0,l.k6)((()=>[(0,l.bF)(i,{property:"Name",label:"名称"}),(0,l.bF)(i,{prop:"BufferSize",label:"缓冲区",width:"60"},{default:(0,l.k6)((e=>[(0,l.eW)((0,_.v_)(1<[(0,l.bF)(c,{modelValue:e.row.use,"onUpdate:modelValue":t=>e.row.use=t},{default:(0,l.k6)((()=>[(0,l.eW)("使用")])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1})])),_:1},8,["data"]),(0,l.Lk)("div",zt,[(0,l.bF)(m,{type:"primary",onClick:n.handleConfirm},{default:(0,l.k6)((()=>[(0,l.eW)("确定复制")])),_:1},8,["onClick"])])])])),_:1},8,["modelValue","onOpen"])}var At={props:["modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:f.DtC},setup(e,{emit:t}){(0,u.B)();const a=gt(),n=(0,d.Kh)({show:!0,loading:!1,machineId:"",toMachineId:a.value.current,toMachineName:a.value.machineName,machineIds:{Request:{Page:1,Size:10,Name:""},Count:0,List:[]},forwards:[]});(0,l.wB)((()=>n.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const o=()=>{r()},r=()=>{n.loading=!0,(0,p.BS)(n.machineIds.Request).then((e=>{n.loading=!1,n.machineIds.Request=e.Request,n.machineIds.Count=e.Count,n.machineIds.List=e.List,!n.machineId&&n.machineIds.List.length>0&&(n.machineId=n.machineIds.List[0].MachineId,c())})).catch((e=>{n.loading=!1}))},s=e=>{n.machineIds.Request.Page=e,r()},i=e=>{n.machineIds.Request.Name=e,r()},c=()=>{ze({MachineId:n.machineId,ToMachineId:n.toMachineId}).then((e=>{e.forEach((e=>{e.use=!0})),n.forwards=e})).catch((e=>{console.log(e)}))},h=()=>{c()},m=()=>{const e=n.forwards.filter((e=>e.use)).map((e=>Ne({Name:e.Name,Port:e.Port,TargetEP:e.TargetEP,BufferSize:e.BufferSize,MachineId:n.toMachineId})));Promise.all(e).then((()=>{O.nk.success("已操作!"),n.show=!1})).catch((()=>{O.nk.success("操作失败!")}))};return(0,l.sV)((()=>{r()})),(0,l.hi)((()=>{})),{state:n,handleSearch:i,handleOnShowList:o,handleMachineChange:h,handleConfirm:m,handlePageChange:s}}};const Nt=(0,L.A)(At,[["render",Bt],["__scopeId","data-v-3a13c86f"]]);var Xt=Nt;const Ut={class:"t-c head"},xt={class:"error red"},Dt={class:"error red"};function Kt(e,t,a,n,o,r){const s=(0,l.g2)("el-button"),u=(0,l.g2)("el-input"),d=(0,l.g2)("el-table-column"),i=(0,l.g2)("WarnTriangleFilled"),c=(0,l.g2)("el-icon"),h=(0,l.g2)("el-popover"),m=(0,l.g2)("el-switch"),p=(0,l.g2)("Delete"),g=(0,l.g2)("el-popconfirm"),f=(0,l.g2)("el-table"),v=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(v,{modelValue:n.state.show,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:"服务器代理穿透",top:"1vh",width:"700"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.Lk)("div",Ut,[(0,l.bF)(s,{type:"success",size:"small",onClick:n.handleAdd},{default:(0,l.k6)((()=>[(0,l.eW)("添加")])),_:1},8,["onClick"]),(0,l.bF)(s,{size:"small",onClick:n.handleRefresh},{default:(0,l.k6)((()=>[(0,l.eW)("刷新")])),_:1},8,["onClick"]),(0,l.bF)(s,{size:"small",onClick:n.handleCopy},{default:(0,l.k6)((()=>[(0,l.eW)("复制穿透配置")])),_:1},8,["onClick"])]),(0,l.bF)(f,{data:n.state.data,size:"small",border:"",height:"500",onCellDblclick:n.handleCellClick},{default:(0,l.k6)((()=>[(0,l.bF)(d,{property:"Name",label:"名称"},{default:(0,l.k6)((e=>[e.row.NameEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":t=>e.row.Name=t,onBlur:t=>n.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[(0,l.eW)((0,_.v_)(e.row.Name),1)],64))])),_:1}),(0,l.bF)(d,{prop:"BufferSize",label:"缓冲区",width:"100"},{default:(0,l.k6)((e=>[(0,l.Lk)("span",null,(0,_.v_)(1<[e.row.TempEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Temp,"onUpdate:modelValue":t=>e.row.Temp=t,onBlur:t=>n.handleEditBlur(e.row,"Temp")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[e.row.Msg?((0,l.uX)(),(0,l.Wv)(h,{key:0,placement:"top",title:"msg",width:"20rem",trigger:"hover",content:e.row.Msg},{reference:(0,l.k6)((()=>[(0,l.Lk)("div",xt,[(0,l.Lk)("span",null,(0,_.v_)(e.row.Temp),1),(0,l.bF)(c,{size:"20"},{default:(0,l.k6)((()=>[(0,l.bF)(i)])),_:1})])])),_:2},1032,["content"])):((0,l.uX)(),(0,l.CE)("span",{key:1,class:(0,_.C4)({green:e.row.Started})},(0,_.v_)(e.row.Temp),3))],64))])),_:1}),(0,l.bF)(d,{property:"LocalEP",label:"本机服务",width:"140"},{default:(0,l.k6)((e=>[e.row.LocalEPEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.LocalEP,"onUpdate:modelValue":t=>e.row.LocalEP=t,onBlur:t=>n.handleEditBlur(e.row,"LocalEP")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[e.row.LocalMsg?((0,l.uX)(),(0,l.Wv)(h,{key:0,placement:"top",title:"msg",width:"20rem",trigger:"hover",content:e.row.LocalMsg},{reference:(0,l.k6)((()=>[(0,l.Lk)("span",Dt,(0,_.v_)(e.row.LocalEP),1),(0,l.bF)(c,{size:"20"},{default:(0,l.k6)((()=>[(0,l.bF)(i)])),_:1})])),_:2},1032,["content"])):((0,l.uX)(),(0,l.CE)("span",{key:1,class:(0,_.C4)({green:e.row.Started})},(0,_.v_)(e.row.LocalEP),3))],64))])),_:1}),(0,l.bF)(d,{property:"Started",label:"状态",width:"60"},{default:(0,l.k6)((e=>[(0,l.bF)(m,{modelValue:e.row.Started,"onUpdate:modelValue":t=>e.row.Started=t,onChange:t=>n.handleStartChange(e.row),"inline-prompt":"","active-text":"是","inactive-text":"否"},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,l.bF)(d,{label:"操作",width:"54"},{default:(0,l.k6)((e=>[(0,l.bF)(g,{"confirm-button-text":"确认","cancel-button-text":"取消",title:"删除不可逆,是否确认?",onConfirm:t=>n.handleDel(e.row.Id)},{reference:(0,l.k6)((()=>[(0,l.bF)(s,{type:"danger",size:"small"},{default:(0,l.k6)((()=>[(0,l.bF)(c,null,{default:(0,l.k6)((()=>[(0,l.bF)(p)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])])),_:1})])),_:1},8,["data","onCellDblclick"])])])),_:1},8,["modelValue","onOpen"])}var Gt={props:["data","modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:f.DtC,Delete:f.epd},setup(e,{emit:t}){const a=(0,u.B)(),n=kt(),o=(0,d.Kh)({bufferSize:a.value.bufferSize,show:!0,data:[],timerTestLocal:0});(0,l.wB)((()=>o.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const r=()=>{(0,ft.eX)().then((e=>{o.timerTestLocal=setTimeout(r,1e3)})).catch((()=>{o.timerTestLocal=setTimeout(r,1e3)}))},s=()=>{(0,ft.pY)().then((e=>{let t=e.List||[];t.forEach((e=>{e.Temp=(e.Domain||e.RemotePort).toString(),e.RemotePort=0,e.Domain=""})),o.data=t})).catch((()=>{}))},i=()=>{s()},c=(e,t)=>{p(e,t.property)},h=()=>{s(),O.nk.success("已刷新")},m=()=>{(0,ft.Qs)({Id:0,Name:"",RemotePort:0,LocalEP:"127.0.0.1:80",Domain:"",Temp:""}).then((()=>{setTimeout((()=>{s()}),100)})).catch((e=>{O.nk.error(e)}))},p=(e,t)=>{e.Started?O.nk.error("请先停止运行"):(o.data.forEach((e=>{e["NameEditing"]=!1,e["RemotePortEditing"]=!1,e["LocalEPEditing"]=!1,e["DomainEditing"]=!1,e["TempEditing"]=!1})),e[`${t}Editing`]=!0)},g=(e,t)=>{e.Started?O.nk.error("请先停止运行"):(e[`${t}Editing`]=!1,w(e))},f=e=>{(0,ft.DY)(e).then((()=>{s()}))},v=e=>{w(e)},w=e=>{e.Temp&&(/^\d+$/.test(e.Temp)?e.RemotePort=parseInt(e.Temp):e.Domain=e.Temp,(0,ft.Qs)(e).then((()=>{setTimeout((()=>{s()}),100)})).catch((e=>{O.nk.error(e)})))},k=()=>{n.value.showCopy=!0},b=()=>{const e=(t=1e4)=>{if(t>2e4)return;const a={Name:`s-${t}`,RemotePort:t,LocalEP:"127.0.0.1:80",Started:!0};(0,ft.Qs)(a).then((a=>{setTimeout((()=>{e(++t)}),50)})).catch((a=>{console.log(a),O.nk.error(a),setTimeout((()=>{e(++t)}),100)}))};e()};return(0,l.sV)((()=>{s(),r()})),(0,l.hi)((()=>{clearTimeout(o.timerTestLocal)})),{state:o,handleOnShowList:i,handleCellClick:c,handleRefresh:h,handleAdd:m,handleEdit:p,handleEditBlur:g,handleDel:f,handleStartChange:v,handleCopy:k,handle10000:b}}};const Ot=(0,L.A)(Gt,[["render",Kt],["__scopeId","data-v-5e37381c"]]);var $t=Ot;const Qt=e=>((0,l.Qi)("data-v-5512121a"),e=e(),(0,l.jt)(),e),qt={class:"t-c head"},jt=Qt((()=>(0,l.Lk)("span",null,"复制",-1))),Ht={class:"t-c"},Jt={class:"page-wrap"},Yt=Qt((()=>(0,l.Lk)("span",null,"的服务器代理穿透记录",-1))),Zt={class:"foot t-c"};function ea(e,t,a,n,o,r){const s=(0,l.g2)("el-pagination"),u=(0,l.g2)("el-option"),d=(0,l.g2)("el-select"),i=(0,l.g2)("el-table-column"),c=(0,l.g2)("el-checkbox"),h=(0,l.g2)("el-table"),m=(0,l.g2)("el-button"),p=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(p,{modelValue:n.state.show,"onUpdate:modelValue":t[1]||(t[1]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:"复制服务器代理穿透",top:"1vh",width:"500"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.Lk)("div",qt,[jt,(0,l.bF)(d,{modelValue:n.state.machineId,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.machineId=e),onChange:n.handleMachineChange,filterable:"",remote:"",loading:n.state.loading,"remote-method":n.handleSearch},{header:(0,l.k6)((()=>[(0,l.Lk)("div",Ht,[(0,l.Lk)("div",Jt,[(0,l.bF)(s,{small:"",background:"",layout:"prev, pager, next","page-size":n.state.machineIds.Request.Size,total:n.state.machineIds.Count,"pager-count":5,"current-page":n.state.machineIds.Request.Page,onCurrentChange:n.handlePageChange},null,8,["page-size","total","current-page","onCurrentChange"])])])])),default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.machineIds.List,((e,t)=>((0,l.uX)(),(0,l.Wv)(u,{key:t,label:e.MachineName,value:e.MachineId},null,8,["label","value"])))),128))])),_:1},8,["modelValue","onChange","loading","remote-method"]),Yt]),(0,l.bF)(h,{data:n.state.forwards,size:"small",border:""},{default:(0,l.k6)((()=>[(0,l.bF)(i,{property:"Name",label:"名称"}),(0,l.bF)(i,{property:"Domain",label:"域名/端口"},{default:(0,l.k6)((e=>[(0,l.Lk)("span",null,(0,_.v_)(e.row.Domain||e.row.RemotePort),1)])),_:1}),(0,l.bF)(i,{property:"LocalEP",label:"本机服务",width:"140"}),(0,l.bF)(i,{label:"操作",width:"80"},{default:(0,l.k6)((e=>[(0,l.bF)(c,{modelValue:e.row.use,"onUpdate:modelValue":t=>e.row.use=t},{default:(0,l.k6)((()=>[(0,l.eW)("使用")])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1})])),_:1},8,["data"]),(0,l.Lk)("div",Zt,[(0,l.bF)(m,{type:"primary",onClick:n.handleConfirm},{default:(0,l.k6)((()=>[(0,l.eW)("确定复制")])),_:1},8,["onClick"])])])])),_:1},8,["modelValue","onOpen"])}var ta={props:["modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:f.DtC},setup(e,{emit:t}){(0,u.B)();const a=(0,d.Kh)({show:!0,loading:!1,machineId:"",machineIds:{Request:{Page:1,Size:10,Name:""},Count:0,List:[]},forwards:[]});(0,l.wB)((()=>a.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const n=()=>{o()},o=()=>{a.loading=!0,(0,p.BS)(a.machineIds.Request).then((e=>{a.loading=!1,a.machineIds.Request=e.Request,a.machineIds.Count=e.Count,a.machineIds.List=e.List,!a.machineId&&a.machineIds.List.length>0&&(a.machineId=a.machineIds.List[0].MachineId,i())})).catch((e=>{a.loading=!1}))},r=e=>{a.machineIds.Request.Page=e,o()},s=e=>{a.machineIds.Request.Name=e,o()},i=()=>{(0,ft.$U)(a.machineId).then((e=>{e.forEach((e=>{e.use=!0})),a.forwards=e})).catch((e=>{console.log(e)}))},c=()=>{i()},h=()=>{const e=a.forwards.filter((e=>e.use)).map((e=>(0,ft.Qs)({Name:e.Name,Domain:e.Domain,RemotePort:e.RemotePort,LocalEP:e.LocalEP})));Promise.all(e).then((()=>{O.nk.success("已操作!"),a.show=!1})).catch((()=>{O.nk.success("操作失败!")}))};return(0,l.sV)((()=>{o()})),(0,l.hi)((()=>{})),{state:a,handleSearch:s,handleOnShowList:n,handleMachineChange:c,handleConfirm:h,handlePageChange:r}}};const aa=(0,L.A)(ta,[["render",ea],["__scopeId","data-v-5512121a"]]);var la=aa;function na(e,t,a,n,o,r){const s=(0,l.g2)("el-table-column"),u=(0,l.g2)("Delete"),d=(0,l.g2)("el-icon"),i=(0,l.g2)("el-button"),c=(0,l.g2)("el-popconfirm"),h=(0,l.g2)("el-table"),m=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(m,{modelValue:n.state.show,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.show=e),"append-to":".app-wrap",title:`与[${n.state.machineName}]的链接`,top:"1vh",width:"700"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(h,{data:n.state.data,size:"small",border:"",height:"500"},{default:(0,l.k6)((()=>[(0,l.bF)(s,{property:"RemoteMachineId",label:"目标"},{default:(0,l.k6)((e=>[(0,l.Lk)("div",{class:(0,_.C4)({green:e.row.Connected})},[(0,l.Lk)("p",null,(0,_.v_)(e.row.IPEndPoint),1),(0,l.Lk)("p",null,"ssl : "+(0,_.v_)(e.row.SSL),1)],2)])),_:1}),(0,l.bF)(s,{property:"TransactionId",label:"事务",width:"80"},{default:(0,l.k6)((e=>[(0,l.Lk)("span",null,(0,_.v_)(n.state.transactions[e.row.TransactionId]),1)])),_:1}),(0,l.bF)(s,{property:"TransportName",label:"协议"},{default:(0,l.k6)((e=>[(0,l.Lk)("div",null,[(0,l.Lk)("p",null,(0,_.v_)(e.row.TransportName)+"("+(0,_.v_)(n.state.protocolTypes[e.row.ProtocolType])+")",1),(0,l.Lk)("p",null,(0,_.v_)(n.state.types[e.row.Type])+" - "+(0,_.v_)(1<[(0,l.Lk)("span",null,(0,_.v_)(e.row.Delay)+"ms",1)])),_:1}),(0,l.bF)(s,{property:"Bytes",label:"通信"},{default:(0,l.k6)((e=>[(0,l.Lk)("div",null,[(0,l.Lk)("p",null,"up : "+(0,_.v_)(e.row.SendBytesText),1),(0,l.Lk)("p",null,"down : "+(0,_.v_)(e.row.ReceiveBytesText),1)])])),_:1}),(0,l.bF)(s,{label:"操作",width:"54"},{default:(0,l.k6)((e=>[n.hasTunnelRemove?((0,l.uX)(),(0,l.Wv)(c,{key:0,"confirm-button-text":"确认","cancel-button-text":"取消",title:"确定关闭此连接?",onConfirm:t=>n.handleDel(e.row)},{reference:(0,l.k6)((()=>[(0,l.bF)(i,{type:"danger",size:"small"},{default:(0,l.k6)((()=>[(0,l.bF)(d,null,{default:(0,l.k6)((()=>[(0,l.bF)(u)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])):(0,l.Q3)("",!0)])),_:1})])),_:1},8,["data"])])])),_:1},8,["modelValue","title"])}var oa={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:f.epd},setup(e,{emit:t}){const a=(0,u.B)(),n=(0,l.EW)((()=>a.value.hasAccess("TunnelRemove"))),o=Ge(),r=Oe(),s=$e(),i=(0,d.Kh)({show:!0,protocolTypes:{1:"tcp",2:"udp",4:"msquic"},types:{0:"打洞",1:"中继"},transactions:{forward:"端口转发",tuntap:"虚拟网卡"},machineName:o.value.currentName,data:(0,l.EW)((()=>[r.value.list[o.value.current],s.value.list[o.value.current]].filter((e=>!!e))))});(0,l.wB)((()=>i.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e),t("change")}),300)}));const c=e=>{n.value&&e.removeFunc(e.RemoteMachineId).then((()=>{O.nk.success("删除成功")})).catch((()=>{}))};return{state:i,handleDel:c,hasTunnelRemove:n}}};const ra=(0,L.A)(oa,[["render",na],["__scopeId","data-v-36027c60"]]);var sa=ra,ua=a(7985),da=a(9383),ia={components:{Oper:V,Device:x,DeviceEdit:q,AccessEdit:Z,Tunnel:je,TunnelEdit:lt,ConnectionsEdit:sa,Tuntap:re,TuntapEdit:Ce,Forward:Ct,ForwardEdit:It,ForwardCopy:Xt,SForwardEdit:$t,SForwardCopy:la},setup(e){const t=(0,u.B)(),a=(0,d.Kh)({height:(0,l.EW)((()=>t.value.height-90))}),{devices:n,machineId:o,_getSignList:r,_getSignList1:s,handleDeviceEdit:i,handleAccessEdit:c,handlePageChange:h,handlePageSizeChange:m,handleDel:p,clearDevicesTimeout:g,setSort:f}=(0,ua.r)(),{tuntap:v,_getTuntapInfo:w,handleTuntapEdit:k,handleTuntapRefresh:F,clearTuntapTimeout:C,getTuntapMachines:L,sortTuntapIP:T}=(0,ae.O)(),{tunnel:V,_getTunnelInfo:_,handleTunnelEdit:E,handleTunnelRefresh:y,clearTunnelTimeout:I,sortTunnel:S}=Ie(),{forward:P,_getForwardInfo:M,handleForwardEdit:R,_testTargetForwardInfo:W,clearForwardTimeout:z,getForwardMachines:B}=pt(),{sforward:A,_getSForwardInfo:N,handleSForwardEdit:X,_testLocalSForwardInfo:U,clearSForwardTimeout:x,getSForwardMachines:D}=wt(),{connections:K,forwardConnections:G,_getForwardConnections:$,tuntapConnections:Q,_getTuntapConnections:q,handleTunnelConnections:j,clearConnectionsTimeout:H}=Ke(),{_getUpdater:J,clearUpdaterTimeout:Y}=(0,da.d)(),{_getAccessInfo:Z,clearAccessTimeout:ee}=b(),te=e=>{n.page.Request.Prop=e.prop,n.page.Request.Asc="ascending"==e.order;let t=new Promise(((e,t)=>{e()}));if("tunnel"==e.prop){const e=S(n.page.Request.Asc);e.length>0&&(t=f(e))}else if("tuntap"==e.prop){const e=T(n.page.Request.Asc);e.length>0&&(t=f(e))}t.then((()=>{h()})).catch((()=>{}))},le=e=>{R(e,n.page.List.filter((t=>t.MachineId==e))[0].MachineName)},ne=e=>{n.page.Request.Name=e||"",n.page.Request.Name?n.page.Request.Ids=L(n.page.Request.Name).concat(B(n.page.Request.Name)).concat(D(n.page.Request.Name)).reduce(((e,t)=>(-1==e.indexOf(t)&&e.push(t),e)),[]):n.page.Request.Ids=[],h(),y(),F(),O.nk.success({message:"刷新成功",grouping:!0})},oe=()=>{h(),y(),F(),O.nk.success({message:"刷新成功",grouping:!0})};return(0,l.sV)((()=>{h(),y(),F(),r(),s(),w(),_(),$(),q(),M(),N(),J(),Z(),W(),U()})),(0,l.hi)((()=>{g(),H(),C(),I(),z(),x(),Y(),ee()})),{state:a,devices:n,machineId:o,handleSortChange:te,handleDeviceEdit:i,handleAccessEdit:c,handlePageRefresh:ne,handlePageSearch:oe,handlePageChange:h,handlePageSizeChange:m,handleDel:p,tuntap:v,handleTuntapEdit:k,handleTuntapRefresh:F,tunnel:V,connections:K,handleTunnelEdit:E,handleTunnelRefresh:y,handleTunnelConnections:j,forward:P,_handleForwardEdit:le,sforward:A,handleSForwardEdit:X}}};const ca=(0,L.A)(ia,[["render",s],["__scopeId","data-v-3e4fd378"]]);var ha=ca},2126:function(e,t,a){a.d(t,{A:function(){return b}});var l=a(6768),n=a(4232);const o=["title"],r={key:0,class:"progress"},s={key:1,class:"progress"};function u(e,t,a,u,d,i){const c=(0,l.g2)("Loading"),h=(0,l.g2)("el-icon"),m=(0,l.g2)("Download"),p=(0,l.g2)("CircleCheck");return(0,l.uX)(),(0,l.CE)("a",{href:"javascript:;",class:(0,n.C4)(["download",u.updaterColor]),onClick:t[0]||(t[0]=e=>u.handleUpdate()),title:u.updaterText},[(0,l.Lk)("span",null,[(0,l.Lk)("span",null,(0,n.v_)(u.item.Version),1),u.updater.list[u.item.MachineId]?((0,l.uX)(),(0,l.CE)(l.FK,{key:0},[1==u.updater.list[u.item.MachineId].Status?((0,l.uX)(),(0,l.Wv)(h,{key:0,size:"14",class:"loading"},{default:(0,l.k6)((()=>[(0,l.bF)(c)])),_:1})):2==u.updater.list[u.item.MachineId].Status?((0,l.uX)(),(0,l.Wv)(h,{key:1,size:"14"},{default:(0,l.k6)((()=>[(0,l.bF)(m)])),_:1})):3==u.updater.list[u.item.MachineId].Status||5==u.updater.list[u.item.MachineId].Status?((0,l.uX)(),(0,l.CE)(l.FK,{key:2},[(0,l.bF)(h,{size:"14",class:"loading"},{default:(0,l.k6)((()=>[(0,l.bF)(c)])),_:1}),0==u.updater.list[u.item.MachineId].Length?((0,l.uX)(),(0,l.CE)("span",r,"0%")):((0,l.uX)(),(0,l.CE)("span",s,(0,n.v_)(parseInt(u.updater.list[u.item.MachineId].Current/u.updater.list[u.item.MachineId].Length*100))+"%",1))],64)):6==u.updater.list[u.item.MachineId].Status?((0,l.uX)(),(0,l.Wv)(h,{key:3,size:"14",class:"yellow"},{default:(0,l.k6)((()=>[(0,l.bF)(p)])),_:1})):(0,l.Q3)("",!0)],64)):((0,l.uX)(),(0,l.Wv)(h,{key:1,size:"14"},{default:(0,l.k6)((()=>[(0,l.bF)(m)])),_:1}))])],10,o)}a(4114);var d=a(3830),i=a(144),c=a(1219),h=a(2933),m=a(2248),p=a(920),g=a(7477),f=a(9383),v={props:["item","config"],components:{Download:g.f5X,Loading:g.Rhj,CircleCheck:g.rW7},setup(e){const t=(0,d.B)(),a=(0,l.EW)((()=>t.value.hasAccess("UpdateSelf"))),n=(0,l.EW)((()=>t.value.hasAccess("UpdateOther"))),o=(0,f.T)(),r=(0,l.EW)((()=>t.value.signin.Version)),s=(0,l.EW)((()=>o.value.current.Version)),u=(0,l.EW)((()=>`${s.value}->${o.value.current.DateTime}\n${o.value.current.Msg.map(((e,t)=>`${t+1}、${e}`)).join("\n")}`)),g=(0,l.EW)((()=>o.value.list[e.item.MachineId]?o.value.list[e.item.MachineId].Status<=2?e.item.Version!=r.value?`与服务器版本(${r.value})不一致,建议更新`:s.value!=e.item.Version?`不是最新版本(${s.value}),建议更新\n${u.value}`:`是最新版本,但我无法阻止你喜欢更新\n${u.value}`:{3:"正在下载",4:"已下载",5:"正在解压",6:"已解压,请重启"}[o.value.list[e.item.MachineId].Status]:"未检测到更新")),v=(0,l.EW)((()=>e.item.Version!=r.value?"red":o.value.list[e.item.MachineId]&&s.value!=e.item.Version?"yellow":"green")),w=()=>{if(!e.config)return;if(!a.value)return;const t=o.value.list[e.item.MachineId];if(t)if([0,1,3,5].indexOf(t.Status)>=0)c.nk.error("操作中,请稍后!");else if(6!=t.Status){if(2==t.Status){const t=(0,i.KR)(s.value),a=[(0,l.h)(m.P9,{label:`仅[${e.item.MachineName}] -> ${s.value}(最新版本)`,value:s.value})];e.config&&n.value&&a.push((0,l.h)(m.P9,{label:`[所有] -> ${s.value}(最新版本)`,value:`all->${s.value}`})),e.item.Version!=r.value&&s.value!=r.value&&(a.push((0,l.h)(m.P9,{label:`仅[${e.item.MachineName}] -> ${r.value}(服务器版本)`,value:r.value})),e.config&&n.value&&a.push((0,l.h)(m.P9,{label:`[所有] -> ${r.value}(服务器版本)`,value:`all->${r.value}`}))),(0,h.s)({title:"选择版本",message:()=>(0,l.h)(m.AV,{modelValue:t.value,placeholder:"请选择",style:"width:20rem;","onUpdate:modelValue":e=>{t.value=e}},a),confirmButtonText:"确定",cancelButtonText:"取消"}).then((()=>{const a={MachineId:e.item.MachineId,Version:t.value.replace("all->",""),All:t.value.indexOf("all->")>=0};a.All&&(a.MachineId=""),(0,p.lJ)(a)})).catch((()=>{}))}}else h.s.confirm("确定关闭程序吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{exit(e.item.MachineId)})).catch((()=>{}));else c.nk.error("未检测到更新")};return{item:(0,l.EW)((()=>e.item)),updater:o,updaterText:g,updaterColor:v,handleUpdate:w}}},w=a(1241);const k=(0,w.A)(v,[["render",u],["__scopeId","data-v-56d38c60"]]);var b=k}}]);
\ No newline at end of file
diff --git a/linker.tray.win/web/js/967.bbfb8700.js b/linker.tray.win/web/js/967.bbfb8700.js
new file mode 100644
index 00000000..fe2daa35
--- /dev/null
+++ b/linker.tray.win/web/js/967.bbfb8700.js
@@ -0,0 +1 @@
+"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[967],{743:function(e,t,a){a.d(t,{$U:function(){return s},Ap:function(){return n},Co:function(){return o},DY:function(){return u},Qs:function(){return d},eX:function(){return i},pY:function(){return r}});var l=a(4);const n=()=>(0,l.zG)("sforwardclient/GetSecretKey"),o=e=>(0,l.zG)("sforwardclient/SetSecretKey",e),r=(e="0")=>(0,l.zG)("sforwardclient/get",e),s=e=>(0,l.zG)("sforwardclient/getremote",e),u=e=>(0,l.zG)("sforwardclient/remove",e),d=e=>(0,l.zG)("sforwardclient/add",e),i=()=>(0,l.zG)("sforwardclient/TestLocal")},83:function(e,t,a){a.d(t,{$M:function(){return d},KW:function(){return u},S3:function(){return h},Vn:function(){return c},b0:function(){return o},gM:function(){return s},ix:function(){return n},r7:function(){return r},xo:function(){return i}});var l=a(4);const n=()=>(0,l.zG)("tunnel/gettypes"),o=e=>(0,l.zG)("tunnel/SetServers",e),r=(e="0")=>(0,l.zG)("tunnel/get",e),s=()=>(0,l.zG)("tunnel/refresh"),u=e=>(0,l.zG)("tunnel/SetRouteLevel",e),d=e=>(0,l.zG)("tunnel/SetTransports",e),i=e=>(0,l.zG)("tunnel/SetExcludeIPs",e),c=()=>(0,l.zG)("tunnel/GeInterfaces"),h=e=>(0,l.zG)("tunnel/SetInterface",e)},920:function(e,t,a){a.d(t,{BJ:function(){return i},NS:function(){return r},Vk:function(){return d},aP:function(){return h},ir:function(){return u},lJ:function(){return o},mK:function(){return n},y2:function(){return c},yN:function(){return s}});var l=a(4);const n=(e="0")=>(0,l.zG)("updaterclient/get",e),o=e=>(0,l.zG)("updaterclient/confirm",e),r=e=>(0,l.zG)("updaterclient/exit",e),s=()=>(0,l.zG)("updaterclient/GetSecretKey"),u=e=>(0,l.zG)("updaterclient/SetSecretKey",e),d=()=>(0,l.zG)("updaterclient/getcurrent"),i=()=>(0,l.zG)("updaterclient/getserver"),c=e=>(0,l.zG)("updaterclient/confirmserver",e),h=()=>(0,l.zG)("updaterclient/exitserver")},9383:function(e,t,a){a.d(t,{T:function(){return d},d:function(){return u}});var l=a(920),n=a(3830),o=a(144),r=a(6768);const s=Symbol(),u=()=>{const e=(0,n.B)(),t=(0,o.KR)({timer:0,list:{},hashcode:0,current:{Version:"",Msg:[],DateTime:"",Status:0,Length:0,Current:0}});(0,r.Gt)(s,t);const a=()=>{(0,l.mK)(t.value.hashcode.toString()).then((l=>{if(t.value.hashcode=l.HashCode,l.List){const a=Object.values(l.List).filter((e=>!!e.Version))[0];a&&(Object.assign(t.value.current,{DateTime:a.DateTime,Version:a.Version,Status:a.Status,Length:a.Length,Current:a.Current,Msg:a.Msg}),e.value.updater=t.value.current),t.value.list=l.List}t.value.timer=setTimeout(a,800)})).catch((()=>{t.value.timer=setTimeout(a,800)}))},u=()=>{clearTimeout(t.value.timer)};return{updater:t,_getUpdater:a,clearUpdaterTimeout:u}},d=()=>(0,r.WQ)(s)},1699:function(e,t,a){a.d(t,{A:function(){return c}});var l=a(6768);function n(e,t,a,n,o,r){const s=(0,l.g2)("el-checkbox"),u=(0,l.g2)("el-col"),d=(0,l.g2)("el-row"),i=(0,l.g2)("el-checkbox-group");return(0,l.uX)(),(0,l.Wv)(i,{modelValue:n.state.checkList,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.checkList=e)},{default:(0,l.k6)((()=>[(0,l.bF)(d,null,{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.access,((e,t)=>((0,l.uX)(),(0,l.Wv)(u,{key:t,span:8},{default:(0,l.k6)((()=>[(0,l.bF)(s,{value:e.Value,label:e.Text},null,8,["value","label"])])),_:2},1024)))),128))])),_:1})])),_:1},8,["modelValue"])}a(4114);var o=a(144),r=a(3830),s=a(8835),u={props:["machineid"],setup(e){const t=(0,r.B)(),a=(0,l.EW)((()=>{const e=t.value.config.Client.Accesss;return Object.keys(e).reduce(((a,l,n)=>{if(t.value.hasAccess(l)){const t=e[l];t.Key=l,a.push(t)}return a}),[])})),n=(0,o.Kh)({checkList:[t.value.config.Client.Accesss.Api.Value,t.value.config.Client.Accesss.Web.Value,t.value.config.Client.Accesss.NetManager.Value]}),u=()=>n.checkList.reduce(((e,t)=>(e|t)>>>0),0);return(0,l.sV)((()=>{e.machineid!=t.value.config.Client.Id&&(0,s.QI)(e.machineid).then((e=>{n.checkList=a.value.reduce(((t,a)=>((e&a.Value)>>>0==a.Value&&t.push(a.Value),t)),[])})).catch((()=>{}))})),{state:n,access:a,getValue:u}}},d=a(1241);const i=(0,d.A)(u,[["render",n],["__scopeId","data-v-d5958228"]]);var c=i},7330:function(e,t,a){a.r(t),a.d(t,{default:function(){return ha}});var l=a(6768);const n={class:"home-list-wrap absolute"},o={class:"page t-c"},r={class:"page-wrap"};function s(e,t,a,s,u,d){const i=(0,l.g2)("el-table-column"),c=(0,l.g2)("el-table"),h=(0,l.g2)("Device"),m=(0,l.g2)("Tunnel"),p=(0,l.g2)("Tuntap"),g=(0,l.g2)("Forward"),f=(0,l.g2)("Oper"),v=(0,l.g2)("el-pagination"),w=(0,l.g2)("DeviceEdit"),k=(0,l.g2)("AccessEdit"),b=(0,l.g2)("TunnelEdit"),F=(0,l.g2)("ConnectionsEdit"),C=(0,l.g2)("TuntapEdit"),L=(0,l.g2)("ForwardEdit"),T=(0,l.g2)("ForwardCopy"),V=(0,l.g2)("SForwardEdit"),_=(0,l.g2)("SForwardCopy");return(0,l.uX)(),(0,l.CE)("div",n,[(0,l.bF)(c,{border:"",style:{width:"100%"},height:"32px",size:"small",onSortChange:s.handleSortChange,class:"table-sort"},{default:(0,l.k6)((()=>[(0,l.bF)(i,{prop:"MachineId",label:"设备名",width:"120",sortable:"custom"}),(0,l.bF)(i,{prop:"Version",label:"版本",width:"120",sortable:"custom"}),(0,l.bF)(i,{prop:"tunnel",label:"网关",width:"90",sortable:"custom"}),(0,l.bF)(i,{prop:"tuntap",label:"网卡IP",width:"150",sortable:"custom"}),(0,l.bF)(i,{prop:"forward",label:""}),(0,l.bF)(i,{label:"",width:"74",fixed:"right"})])),_:1},8,["onSortChange"]),(0,l.bF)(c,{data:s.devices.page.List,stripe:"",border:"",style:{width:"100%"},height:`${s.state.height}px`,size:"small"},{default:(0,l.k6)((()=>[(0,l.bF)(h,{onEdit:s.handleDeviceEdit,onRefresh:s.handlePageRefresh},null,8,["onEdit","onRefresh"]),(0,l.bF)(m,{onEdit:s.handleTunnelEdit,onRefresh:s.handleTunnelRefresh,onConnections:s.handleTunnelConnections},null,8,["onEdit","onRefresh","onConnections"]),(0,l.bF)(p,{onEdit:s.handleTuntapEdit,onRefresh:s.handleTuntapRefresh},null,8,["onEdit","onRefresh"]),(0,l.bF)(g,{onEdit:s._handleForwardEdit,onSedit:s.handleSForwardEdit},null,8,["onEdit","onSedit"]),(0,l.bF)(f,{onRefresh:s.handlePageRefresh,onAccess:s.handleAccessEdit},null,8,["onRefresh","onAccess"])])),_:1},8,["data","height"]),(0,l.Lk)("div",o,[(0,l.Lk)("div",r,[(0,l.bF)(v,{small:"",background:"",layout:"total,sizes,prev,pager, next",total:s.devices.page.Count,"page-size":s.devices.page.Request.Size,"current-page":s.devices.page.Request.Page,onCurrentChange:s.handlePageChange,onSizeChange:s.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])]),s.devices.showDeviceEdit?((0,l.uX)(),(0,l.Wv)(w,{key:0,modelValue:s.devices.showDeviceEdit,"onUpdate:modelValue":t[0]||(t[0]=e=>s.devices.showDeviceEdit=e),onChange:s.handlePageChange,data:s.devices.deviceInfo},null,8,["modelValue","onChange","data"])):(0,l.Q3)("",!0),s.devices.showAccessEdit?((0,l.uX)(),(0,l.Wv)(k,{key:1,modelValue:s.devices.showAccessEdit,"onUpdate:modelValue":t[1]||(t[1]=e=>s.devices.showAccessEdit=e),onChange:s.handlePageChange,data:s.devices.deviceInfo},null,8,["modelValue","onChange","data"])):(0,l.Q3)("",!0),s.tunnel.showEdit?((0,l.uX)(),(0,l.Wv)(b,{key:2,modelValue:s.tunnel.showEdit,"onUpdate:modelValue":t[2]||(t[2]=e=>s.tunnel.showEdit=e),onChange:s.handleTunnelRefresh},null,8,["modelValue","onChange"])):(0,l.Q3)("",!0),s.connections.showEdit?((0,l.uX)(),(0,l.Wv)(F,{key:3,modelValue:s.connections.showEdit,"onUpdate:modelValue":t[3]||(t[3]=e=>s.connections.showEdit=e)},null,8,["modelValue"])):(0,l.Q3)("",!0),s.tuntap.showEdit?((0,l.uX)(),(0,l.Wv)(C,{key:4,modelValue:s.tuntap.showEdit,"onUpdate:modelValue":t[4]||(t[4]=e=>s.tuntap.showEdit=e),onChange:s.handleTuntapRefresh},null,8,["modelValue","onChange"])):(0,l.Q3)("",!0),s.forward.showEdit?((0,l.uX)(),(0,l.Wv)(L,{key:5,modelValue:s.forward.showEdit,"onUpdate:modelValue":t[5]||(t[5]=e=>s.forward.showEdit=e)},null,8,["modelValue"])):(0,l.Q3)("",!0),s.forward.showCopy?((0,l.uX)(),(0,l.Wv)(T,{key:6,modelValue:s.forward.showCopy,"onUpdate:modelValue":t[6]||(t[6]=e=>s.forward.showCopy=e)},null,8,["modelValue"])):(0,l.Q3)("",!0),s.sforward.showEdit?((0,l.uX)(),(0,l.Wv)(V,{key:7,modelValue:s.sforward.showEdit,"onUpdate:modelValue":t[7]||(t[7]=e=>s.sforward.showEdit=e)},null,8,["modelValue"])):(0,l.Q3)("",!0),s.sforward.showCopy?((0,l.uX)(),(0,l.Wv)(_,{key:8,modelValue:s.sforward.showCopy,"onUpdate:modelValue":t[8]||(t[8]=e=>s.sforward.showCopy=e)},null,8,["modelValue"])):(0,l.Q3)("",!0)])}a(4114);var u=a(3830),d=a(144);const i=e=>((0,l.Qi)("data-v-619f5cb0"),e=e(),(0,l.jt)(),e),c={class:"dropdown"},h=i((()=>(0,l.Lk)("span",null,"操作",-1)));function m(e,t,a,n,o,r){const s=(0,l.g2)("ArrowDown"),u=(0,l.g2)("el-icon"),d=(0,l.g2)("SwitchButton"),i=(0,l.g2)("el-dropdown-item"),m=(0,l.g2)("Delete"),p=(0,l.g2)("Flag"),g=(0,l.g2)("el-dropdown-menu"),f=(0,l.g2)("el-dropdown"),v=(0,l.g2)("el-table-column");return(0,l.uX)(),(0,l.Wv)(v,{label:"操作",width:"74",fixed:"right"},{default:(0,l.k6)((e=>[(0,l.bF)(f,{size:"small"},{dropdown:(0,l.k6)((()=>[(0,l.bF)(g,null,{default:(0,l.k6)((()=>[e.row.showReboot&&n.hasReboot?((0,l.uX)(),(0,l.Wv)(i,{key:0,onClick:t=>n.handleExit(e.row.MachineId,e.row.MachineName)},{default:(0,l.k6)((()=>[(0,l.bF)(u,null,{default:(0,l.k6)((()=>[(0,l.bF)(d)])),_:1}),(0,l.eW)(" 重启")])),_:2},1032,["onClick"])):(0,l.Q3)("",!0),e.row.showDel&&n.hasRemove?((0,l.uX)(),(0,l.Wv)(i,{key:1,onClick:t=>n.handleDel(e.row.MachineId,e.row.MachineName)},{default:(0,l.k6)((()=>[(0,l.bF)(u,null,{default:(0,l.k6)((()=>[(0,l.bF)(m)])),_:1}),(0,l.eW)(" 删除")])),_:2},1032,["onClick"])):(0,l.Q3)("",!0),n.handleShowAccess(e.row,n.accessList[e.row.MachineId]||0)?((0,l.uX)(),(0,l.Wv)(i,{key:2,onClick:t=>n.handleAccess(e.row)},{default:(0,l.k6)((()=>[(0,l.bF)(u,null,{default:(0,l.k6)((()=>[(0,l.bF)(p)])),_:1}),(0,l.eW)(" 权限")])),_:2},1032,["onClick"])):(0,l.Q3)("",!0)])),_:2},1024)])),default:(0,l.k6)((()=>[(0,l.Lk)("div",c,[h,(0,l.bF)(u,{class:"el-icon--right"},{default:(0,l.k6)((()=>[(0,l.bF)(s)])),_:1})])])),_:2},1024)])),_:1})}var p=a(9299),g=a(920),f=a(7477),v=a(2933),w=a(8835);const k=Symbol(),b=()=>{const e=(0,d.KR)({list:{},timer:0,hashcode:0});(0,l.Gt)(k,e);const t=()=>{(0,w.QI)(e.value.hashcode.toString()).then((a=>{e.value.hashcode=a.HashCode,a.List&&(e.value.list=a.List),e.value.timer=setTimeout(t,1e3)})).catch((()=>{e.value.timer=setTimeout(t,1e3)}))},a=()=>{clearTimeout(e.value.timer)};return{access:e,_getAccessInfo:t,clearAccessTimeout:a}},F=()=>(0,l.WQ)(k);var C={emits:["refresh","access"],components:{Delete:f.epd,SwitchButton:f.L$q,ArrowDown:f.yd$,Flag:f.lNU},setup(e,{emit:t}){const a=(0,u.B)(),n=F(),o=(0,l.EW)((()=>a.value.config.Client.Access)),r=(0,l.EW)((()=>a.value.hasAccess("Access"))),s=(0,l.EW)((()=>n.value.list)),d=(0,l.EW)((()=>a.value.hasAccess("Reboot"))),i=(0,l.EW)((()=>a.value.hasAccess("Remove"))),c=(e,a)=>{v.s.confirm(`确认删除[${a}]?`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,p.Se)(e).then((()=>{t("refresh")}))})).catch((()=>{}))},h=(e,a)=>{v.s.confirm(`确认关闭[${a}]?`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,g.NS)(e).then((()=>{t("refresh")}))})).catch((()=>{}))},m=(e,t)=>e.showAccess&&r.value&&t>0&&(~o.value&t)>>>0==0,f=e=>{t("access",e)};return{accessList:s,handleDel:c,handleExit:h,hasReboot:d,hasRemove:i,hasAccess:r,handleShowAccess:m,handleAccess:f}}},L=a(1241);const T=(0,L.A)(C,[["render",m],["__scopeId","data-v-619f5cb0"]]);var V=T,_=a(4232);const E=e=>((0,l.Qi)("data-v-358fba0e"),e=e(),(0,l.jt)(),e),y={class:"flex"},I=E((()=>(0,l.Lk)("span",{class:"flex-1"},"设备",-1))),S={class:"flex"},P=["onClick"],M=["onClick"],R=E((()=>(0,l.Lk)("span",null,"😴㊙.㊙.㊙.㊙",-1))),W=[R],z=E((()=>(0,l.Lk)("span",{class:"flex-1"},null,-1)));function B(e,t,a,n,o,r){const s=(0,l.g2)("el-input"),u=(0,l.g2)("Search"),d=(0,l.g2)("el-icon"),i=(0,l.g2)("el-button"),c=(0,l.g2)("DeviceName"),h=(0,l.g2)("UpdaterBtn"),m=(0,l.g2)("el-table-column");return(0,l.uX)(),(0,l.Wv)(m,{prop:"MachineId",label:"设备",width:"240"},{header:(0,l.k6)((()=>[(0,l.Lk)("div",y,[I,(0,l.Lk)("span",null,[(0,l.bF)(s,{size:"small",modelValue:n.name,"onUpdate:modelValue":t[0]||(t[0]=e=>n.name=e),clearable:"",onInput:n.handleRefresh,placeholder:"设备/虚拟网卡/端口转发"},null,8,["modelValue","onInput"])]),(0,l.Lk)("span",null,[(0,l.bF)(i,{size:"small",onClick:n.handleRefresh},{default:(0,l.k6)((()=>[(0,l.bF)(d,null,{default:(0,l.k6)((()=>[(0,l.bF)(u)])),_:1})])),_:1},8,["onClick"])])])])),default:(0,l.k6)((e=>[(0,l.Lk)("div",null,[(0,l.Lk)("p",null,[(0,l.bF)(c,{onEdit:n.handleEdit,config:!0,item:e.row},null,8,["onEdit","item"])]),(0,l.Lk)("p",S,[e.row.showip?((0,l.uX)(),(0,l.CE)("span",{key:0,title:"此设备的外网IP",class:"ipaddress",onClick:t=>n.handleExternal(e.row)},[(0,l.Lk)("span",null,"😀"+(0,_.v_)(e.row.IP),1)],8,P)):((0,l.uX)(),(0,l.CE)("span",{key:1,title:"此设备的外网IP",class:"ipaddress",onClick:t=>n.handleExternal(e.row)},W,8,M)),z,(0,l.bF)(h,{config:!0,item:e.row},null,8,["item"])])])])),_:1})}var A=a(2126),N=a(886),X={emits:["edit","refresh"],components:{Search:f.vji,UpdaterBtn:A.A,DeviceName:N.A},setup(e,{emit:t}){const a=(0,u.B)(),n=(0,l.EW)((()=>a.value.hasAccess("ExternalShow"))),o=(0,d.KR)(sessionStorage.getItem("search-name")||""),r=e=>{n.value&&(e.showip=!e.showip)},s=e=>{t("edit",e)},i=()=>{sessionStorage.setItem("search-name",o.value),t("refresh",o.value)};return{handleEdit:s,handleRefresh:i,name:o,handleExternal:r}}};const U=(0,L.A)(X,[["render",B],["__scopeId","data-v-358fba0e"]]);var x=U;const D=(0,l.Lk)("div",null,"修改后最好能重启一次客户端",-1),K={class:"t-c w-100"};function G(e,t,a,n,o,r){const s=(0,l.g2)("el-form-item"),u=(0,l.g2)("el-input"),d=(0,l.g2)("el-button"),i=(0,l.g2)("el-form"),c=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(c,{modelValue:n.state.show,"onUpdate:modelValue":t[2]||(t[2]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.ruleForm.MachineName}]设备`,width:"300"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(i,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"auto"},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:""},{default:(0,l.k6)((()=>[D])),_:1}),(0,l.bF)(s,{label:"设备名",prop:"MachineName"},{default:(0,l.k6)((()=>[(0,l.bF)(u,{maxlength:"12","show-word-limit":"",modelValue:n.state.ruleForm.MachineName,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.ruleForm.MachineName=e)},null,8,["modelValue"])])),_:1}),(0,l.bF)(s,{label:"",prop:"Btns"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",K,[(0,l.bF)(d,{onClick:t[1]||(t[1]=e=>n.state.show=!1)},{default:(0,l.k6)((()=>[(0,l.eW)("取消")])),_:1}),(0,l.bF)(d,{type:"primary",onClick:n.handleSave},{default:(0,l.k6)((()=>[(0,l.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var O=a(1219),$={props:["data","modelValue"],emits:["change","update:modelValue"],setup(e,{emit:t}){const a=(0,d.KR)(null),n=(0,d.Kh)({show:!0,ruleForm:{MachineName1:e.data.MachineName,MachineName:e.data.MachineName},rules:{}});(0,l.wB)((()=>n.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const o=()=>{e.data.MachineName!=n.ruleForm.MachineName&&(0,p.gC)({Id:e.data.MachineId,newName:n.ruleForm.MachineName}).then((()=>{n.show=!1,O.nk.success("已操作!"),t("change")})).catch((()=>{O.nk.error("操作失败!")}))};return{state:n,ruleFormRef:a,handleSave:o}}};const Q=(0,L.A)($,[["render",G]]);var q=Q;function j(e,t,a,n,o,r){const s=(0,l.g2)("Access"),u=(0,l.g2)("el-button"),d=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(d,{modelValue:n.state.show,"onUpdate:modelValue":t[1]||(t[1]=e=>n.state.show=e),"close-on-click-modal":!1,center:"","append-to":".app-wrap",title:`设置[${n.machineName}]的权限`,width:"580",top:"1vh"},{footer:(0,l.k6)((()=>[(0,l.bF)(u,{plain:"",onClick:t[0]||(t[0]=e=>n.state.show=!1),loading:n.state.loading},{default:(0,l.k6)((()=>[(0,l.eW)("取消")])),_:1},8,["loading"]),(0,l.bF)(u,{type:"success",plain:"",onClick:n.handleSave,loading:n.state.loading},{default:(0,l.k6)((()=>[(0,l.eW)("确定保存")])),_:1},8,["onClick","loading"])])),default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(s,{machineid:n.machineid,ref:"accessDom"},null,8,["machineid"])])])),_:1},8,["modelValue","title"])}var H=a(1699),J={props:["data","modelValue"],emits:["change","update:modelValue"],components:{Access:H.A},setup(e,{emit:t}){const a=(0,d.Kh)({show:!0,loading:!1});(0,l.wB)((()=>a.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const n=(0,d.KR)(null),o=()=>{a.loading=!0,(0,w.ZK)({ToMachineId:e.data.MachineId,Access:n.value.getValue()}).then((()=>{a.loading=!1,a.show=!1,O.nk.success("已操作!"),t("change")})).catch((()=>{a.loading=!1,O.nk.error("操作失败!")}))};return{machineName:e.data.MachineName,machineid:e.data.MachineId,state:a,accessDom:n,handleSave:o}}};const Y=(0,L.A)(J,[["render",j]]);var Z=Y;const ee={key:0};function te(e,t,a,n,o,r){const s=(0,l.g2)("TuntapShow"),u=(0,l.g2)("el-table-column");return(0,l.uX)(),(0,l.Wv)(u,{prop:"tuntap",label:"虚拟网卡",width:"160"},{default:(0,l.k6)((e=>[n.tuntap.list[e.row.MachineId]?((0,l.uX)(),(0,l.CE)("div",ee,[(0,l.bF)(s,{config:!0,item:e.row,onEdit:n.handleTuntapIP,onRefresh:n.handleTuntapRefresh},null,8,["item","onEdit","onRefresh"])])):(0,l.Q3)("",!0)])),_:1})}var ae=a(8104),le=a(3630),ne={emits:["edit","refresh"],components:{TuntapShow:le.A},setup(e,{emit:t}){const a=(0,ae.W)(),l=e=>{t("edit",e)},n=()=>{t("refresh")};return{tuntap:a,handleTuntapIP:l,handleTuntapRefresh:n}}};const oe=(0,L.A)(ne,[["render",te]]);var re=oe;const se=e=>((0,l.Qi)("data-v-44067f74"),e=e(),(0,l.jt)(),e),ue=se((()=>(0,l.Lk)("span",null,"/",-1))),de=se((()=>(0,l.Lk)("span",{style:{width:"3rem"}},null,-1))),ie={key:0,class:"upgrade-wrap"},ce=se((()=>(0,l.Lk)("span",{class:"yellow"},"此设备能使用NAT转发,只需局域网IP,剩下的交给NAT(linux、macos、win10+)",-1))),he={class:"flex-1"},me=se((()=>(0,l.Lk)("span",null,"/",-1))),pe={class:"pdl-10"},ge=se((()=>(0,l.Lk)("span",{class:"yellow"},"此设备无法使用NAT转发,或只想使用端口转发",-1))),fe={class:"flex-1"},ve={class:"pdl-10"};function we(e,t,a,n,o,r){const s=(0,l.g2)("el-form-item"),u=(0,l.g2)("el-input"),d=(0,l.g2)("el-checkbox"),i=(0,l.g2)("el-popover"),c=(0,l.g2)("Delete"),h=(0,l.g2)("el-icon"),m=(0,l.g2)("el-button"),p=(0,l.g2)("Plus"),g=(0,l.g2)("el-form"),f=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(f,{modelValue:n.state.show,"onUpdate:modelValue":t[6]||(t[6]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.machineName}]组网`,top:"1vh",width:"700"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(g,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"140"},{default:(0,l.k6)((()=>[(0,l.bF)(s,{prop:"gateway",style:{"margin-bottom":"0"}},{default:(0,l.k6)((()=>[(0,l.eW)(" 赐予此设备IP,其它设备可通过此IP访问 ")])),_:1}),(0,l.bF)(s,{label:"此设备的虚拟网卡IP",prop:"IP"},{default:(0,l.k6)((()=>[(0,l.bF)(u,{modelValue:n.state.ruleForm.IP,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.ruleForm.IP=e),style:{width:"14rem"}},null,8,["modelValue"]),ue,(0,l.bF)(u,{onChange:n.handlePrefixLengthChange,modelValue:n.state.ruleForm.PrefixLength,"onUpdate:modelValue":t[1]||(t[1]=e=>n.state.ruleForm.PrefixLength=e),style:{width:"4rem"}},null,8,["onChange","modelValue"]),de,(0,l.bF)(d,{modelValue:n.state.ruleForm.ShowDelay,"onUpdate:modelValue":t[2]||(t[2]=e=>n.state.ruleForm.ShowDelay=e),label:"显示延迟",size:"large"},null,8,["modelValue"]),(0,l.bF)(i,{placement:"top",title:"提示",width:400,trigger:"hover",content:"在测试延迟时,如果未连接,将自动去打洞连接,当你有一百个设备时,每个设备都同时去与其它99台设备连接,这数据量不小,所以尽量不要个设备都勾选"},{reference:(0,l.k6)((()=>[(0,l.bF)(d,{modelValue:n.state.ruleForm.AutoConnect,"onUpdate:modelValue":t[3]||(t[3]=e=>n.state.ruleForm.AutoConnect=e),label:"自动连接?",size:"large"},null,8,["modelValue"])])),_:1})])),_:1}),(0,l.bF)(s,{prop:"upgrade",style:{"margin-bottom":"0"}},{default:(0,l.k6)((()=>[(0,l.bF)(d,{modelValue:n.state.ruleForm.Upgrade,"onUpdate:modelValue":t[4]||(t[4]=e=>n.state.ruleForm.Upgrade=e),label:"我很懂,我要使用高级功能(点对网和网对网)",size:"large"},null,8,["modelValue"])])),_:1}),n.state.ruleForm.Upgrade?((0,l.uX)(),(0,l.CE)("div",ie,[(0,l.bF)(s,{prop:"nat",style:{"margin-bottom":"0"}},{default:(0,l.k6)((()=>[ce])),_:1}),(0,l.bF)(s,{label:"此设备局域网IP",prop:"LanIP",style:{"border-bottom":"1px solid #ddd","margin-bottom":"0"}},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.ruleForm.LanIPs,((e,t)=>((0,l.uX)(),(0,l.CE)("div",{key:t,class:"flex",style:{"margin-bottom":".6rem"}},[(0,l.Lk)("div",he,[(0,l.bF)(u,{modelValue:n.state.ruleForm.LanIPs[t],"onUpdate:modelValue":e=>n.state.ruleForm.LanIPs[t]=e,style:{width:"14rem"}},null,8,["modelValue","onUpdate:modelValue"]),me,(0,l.bF)(u,{onChange:e=>n.handleMaskChange(t),modelValue:n.state.ruleForm.Masks[t],"onUpdate:modelValue":e=>n.state.ruleForm.Masks[t]=e,style:{width:"4rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"])]),(0,l.Lk)("div",pe,[(0,l.bF)(m,{type:"danger",onClick:e=>n.handleDel(t)},{default:(0,l.k6)((()=>[(0,l.bF)(h,null,{default:(0,l.k6)((()=>[(0,l.bF)(c)])),_:1})])),_:2},1032,["onClick"]),(0,l.bF)(m,{type:"primary",onClick:e=>n.handleAdd(t)},{default:(0,l.k6)((()=>[(0,l.bF)(h,null,{default:(0,l.k6)((()=>[(0,l.bF)(p)])),_:1})])),_:2},1032,["onClick"])])])))),128))])),_:1}),(0,l.bF)(s,{prop:"forward",style:{"margin-bottom":"0"}},{default:(0,l.k6)((()=>[ge])),_:1}),(0,l.bF)(s,{label:"端口转发",prop:"forwards"},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.ruleForm.Forwards,((e,t)=>((0,l.uX)(),(0,l.CE)("div",{key:t,class:"flex",style:{"margin-bottom":".6rem"}},[(0,l.Lk)("div",fe,[(0,l.bF)(u,{modelValue:e.ListenAddr,"onUpdate:modelValue":t=>e.ListenAddr=t,style:{width:"7rem"},readonly:""},null,8,["modelValue","onUpdate:modelValue"]),(0,l.eW)(" : "),(0,l.bF)(u,{onChange:e=>n.handleForwardChange(t),modelValue:e.ListenPort,"onUpdate:modelValue":t=>e.ListenPort=t,style:{width:"6rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"]),(0,l.eW)(" -> "),(0,l.bF)(u,{modelValue:e.ConnectAddr,"onUpdate:modelValue":t=>e.ConnectAddr=t,style:{width:"14rem"}},null,8,["modelValue","onUpdate:modelValue"]),(0,l.eW)(" : "),(0,l.bF)(u,{onChange:e=>n.handleForwardChange(t),modelValue:e.ConnectPort,"onUpdate:modelValue":t=>e.ConnectPort=t,style:{width:"6rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"])]),(0,l.Lk)("div",ve,[(0,l.bF)(m,{type:"danger",onClick:e=>n.handleDelForward(t)},{default:(0,l.k6)((()=>[(0,l.bF)(h,null,{default:(0,l.k6)((()=>[(0,l.bF)(c)])),_:1})])),_:2},1032,["onClick"]),(0,l.bF)(m,{type:"primary",onClick:e=>n.handleAddForward(t)},{default:(0,l.k6)((()=>[(0,l.bF)(h,null,{default:(0,l.k6)((()=>[(0,l.bF)(p)])),_:1})])),_:2},1032,["onClick"])])])))),128))])),_:1})])):(0,l.Q3)("",!0),(0,l.bF)(s,{label:"",prop:"Btns"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(m,{onClick:t[5]||(t[5]=e=>n.state.show=!1)},{default:(0,l.k6)((()=>[(0,l.eW)("取消")])),_:1}),(0,l.bF)(m,{type:"primary",onClick:n.handleSave},{default:(0,l.k6)((()=>[(0,l.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var ke=a(5241),be={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:f.epd,Plus:f.FWt},setup(e,{emit:t}){const a=(0,u.B)(),n=(0,ae.W)(),o=(0,d.KR)(null),r=(0,d.Kh)({show:!0,machineName:n.value.current.device.MachineName,bufferSize:a.value.bufferSize,ruleForm:{IP:n.value.current.IP,LanIPs:n.value.current.LanIPs.slice(0),Masks:n.value.current.Masks.slice(0),PrefixLength:n.value.current.PrefixLength||24,Gateway:n.value.current.Gateway,ShowDelay:n.value.current.ShowDelay,AutoConnect:n.value.current.AutoConnect,Upgrade:n.value.current.Upgrade,Forwards:0==n.value.current.Forwards.length?[{ListenAddr:"0.0.0.0",ListenPort:0,ConnectAddr:"0.0.0.0",ConnectPort:0}]:n.value.current.Forwards.slice(0)},rules:{}});0==r.ruleForm.LanIPs.length&&(r.ruleForm.LanIPs.push(""),r.ruleForm.Masks.push(24)),(0,l.wB)((()=>r.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const s=()=>{var e=+r.ruleForm.PrefixLength;(e>32||e<16||isNaN(e))&&(e=24),r.ruleForm.PrefixLength=e},i=e=>{var t=+r.ruleForm.Masks[e];(t>32||t<16||isNaN(t))&&(t=24),r.ruleForm.Masks[e]=t},c=e=>{r.ruleForm.LanIPs.splice(e,1),r.ruleForm.Masks.splice(e,1),0==r.ruleForm.LanIPs.length&&h(0)},h=e=>{r.ruleForm.LanIPs.splice(e+1,0,""),r.ruleForm.Masks.splice(e+1,0,24)},m=()=>{const e=JSON.parse(JSON.stringify(n.value.current));e.IP=r.ruleForm.IP||"0.0.0.0";const{lanips:a,masks:l}=r.ruleForm.LanIPs.reduce(((e,t,a)=>(t&&r.ruleForm.Masks[a]&&(e.lanips.push(t),e.masks.push(r.ruleForm.Masks[a])),e)),{lanips:[],masks:[]});e.LanIPs=a,e.Masks=l,e.PrefixLength=+r.ruleForm.PrefixLength,e.Gateway=r.ruleForm.Gateway,e.ShowDelay=r.ruleForm.ShowDelay,e.AutoConnect=r.ruleForm.AutoConnect,e.Upgrade=r.ruleForm.Upgrade,e.Forwards=r.ruleForm.Forwards,e.Forwards.forEach((e=>{e.ListenPort=+e.ListenPort,e.ConnectPort=+e.ConnectPort})),(0,ke.ac)(e).then((()=>{r.show=!1,O.nk.success("已操作!"),t("change")})).catch((()=>{O.nk.error("操作失败!")}))},p=e=>{r.ruleForm.Forwards.splice(e,1),0==r.ruleForm.Forwards.length&&g(0)},g=e=>{r.ruleForm.Forwards.splice(e+1,0,{ListenAddr:"0.0.0.0",ListenPort:0,ConnectAddr:"0.0.0.0",ConnectPort:0})},f=()=>{};return{state:r,ruleFormRef:o,handlePrefixLengthChange:s,handleMaskChange:i,handleDel:c,handleAdd:h,handleSave:m,handleForwardChange:f,handleDelForward:p,handleAddForward:g}}};const Fe=(0,L.A)(be,[["render",we],["__scopeId","data-v-44067f74"]]);var Ce=Fe;const Le={key:0},Te=["title","onClick"],Ve=["onClick"];function _e(e,t,a,n,o,r){const s=(0,l.g2)("el-table-column");return(0,l.uX)(),(0,l.Wv)(s,{prop:"tunnel",label:"隧道",width:"90"},{default:(0,l.k6)((e=>[n.tunnel.list[e.row.MachineId]?((0,l.uX)(),(0,l.CE)("div",Le,[(0,l.Lk)("a",{href:"javascript:;",class:(0,_.C4)(["a-line",{yellow:n.tunnel.list[e.row.MachineId].NeedReboot}]),title:n.tunnel.list[e.row.MachineId].NeedReboot?"需要重启":"调整网关层级有助于打洞成功",onClick:t=>n.handleTunnel(n.tunnel.list[e.row.MachineId],e.row)},[(0,l.Lk)("span",null,"网关 : "+(0,_.v_)(n.tunnel.list[e.row.MachineId].RouteLevel)+" + "+(0,_.v_)(n.tunnel.list[e.row.MachineId].RouteLevelPlus),1)],10,Te)])):(0,l.Q3)("",!0),(0,l.Lk)("div",null,[(0,l.Lk)("a",{href:"javascript:;",title:"与此设备的隧道连接",class:(0,_.C4)(["a-line",{green:n.connectionCount(e.row.MachineId)>0}]),onClick:t=>n.handleConnections(e.row)},[(0,l.eW)(" 连接数 : "),(0,l.Lk)("span",null,(0,_.v_)(n.connectionCount(e.row.MachineId)),1)],10,Ve)])])),_:1})}var Ee=a(83);const ye=Symbol(),Ie=()=>{(0,u.B)();const e=(0,d.KR)({timer:0,showEdit:!1,current:null,list:{},hashcode:0});(0,l.Gt)(ye,e);const t=()=>{(0,Ee.r7)(e.value.hashcode.toString()).then((a=>{e.value.hashcode=a.HashCode,a.List&&(e.value.list=a.List),e.value.timer=setTimeout(t,1060)})).catch((()=>{e.value.timer=setTimeout(t,1060)}))},a=t=>{e.value.current=t,e.value.showEdit=!0},n=()=>{(0,Ee.gM)(),O.nk.success({message:"刷新成功",grouping:!0})},o=()=>{clearTimeout(e.value.timer)},r=t=>Object.values(e.value.list).sort(((e,t)=>e.RouteLevel+e.RouteLevelPlus-t.RouteLevel+t.RouteLevelPlus)).map((e=>e.MachineId));return{tunnel:e,_getTunnelInfo:t,handleTunnelEdit:a,handleTunnelRefresh:n,clearTunnelTimeout:o,sortTunnel:r}},Se=()=>(0,l.WQ)(ye);var Pe=a(4);const Me=(e="0")=>(0,Pe.zG)("forwardclient/connections",e),Re=e=>(0,Pe.zG)("forwardclient/removeconnection",e),We=(e="0")=>(0,Pe.zG)("forwardclient/get",e),ze=e=>(0,Pe.zG)("forwardclient/getremote",e),Be=()=>(0,Pe.zG)("forwardclient/bindips"),Ae=e=>(0,Pe.zG)("forwardclient/remove",e),Ne=e=>(0,Pe.zG)("forwardclient/add",e),Xe=e=>(0,Pe.zG)("forwardclient/TestTarget",e),Ue=Symbol(),xe=Symbol(),De=Symbol(),Ke=()=>{(0,u.B)();const e=(0,d.KR)({showEdit:!1,speedCache:{},current:"",currentName:"",hashcode:0,hashcode1:0});(0,l.Gt)(Ue,e);const t=(0,d.KR)({timer:0,list:{}});(0,l.Gt)(xe,t);const a=()=>{Me(e.value.hashcode.toString()).then((l=>{e.value.hashcode=l.HashCode,l.List&&(r(l.List,Re),t.value.list=l.List),t.value.timer=setTimeout(a,1e3)})).catch((e=>{t.value.timer=setTimeout(a,1e3)}))},n=(0,d.KR)({timer:0,list:{}});(0,l.Gt)(De,n);const o=()=>{(0,ke.kl)(e.value.hashcode1.toString()).then((t=>{e.value.hashcode1=t.HashCode,t.List&&(r(t.List,ke.vB),n.value.list=t.List),n.value.timer=setTimeout(o,1e3)})).catch((e=>{n.value.timer=setTimeout(o,1e3)}))},r=(t,a)=>{const l=e.value.speedCache;for(let e in t){const n=t[e];n.removeFunc=a;const o=`${n.RemoteMachineId}-${n.TransactionId}`,r=l[o]||{SendBytes:0,ReceiveBytes:0};n.SendBytesText=s(n.SendBytes-r.SendBytes),n.ReceiveBytesText=s(n.ReceiveBytes-r.ReceiveBytes),r.SendBytes=n.SendBytes,r.ReceiveBytes=n.ReceiveBytes,l[o]=r}},s=e=>{let t=0;while(e>=1024)e/=1024,t++;return`${e.toFixed(2)}${["B/s","KB/s","MB/s","GB/s","TB/s"][t]}`},i=t=>{e.value.current=t.MachineId,e.value.currentName=t.MachineName,e.value.showEdit=!0},c=()=>{clearTimeout(t.value.timer),clearTimeout(n.value.timer)};return{connections:e,forwardConnections:t,_getForwardConnections:a,tuntapConnections:n,_getTuntapConnections:o,handleTunnelConnections:i,clearConnectionsTimeout:c}},Ge=()=>(0,l.WQ)(Ue),Oe=()=>(0,l.WQ)(xe),$e=()=>(0,l.WQ)(De);var Qe={emits:["edit","refresh"],setup(e,{emit:t}){const a=(0,u.B)(),n=(0,l.EW)((()=>a.value.config.Client.Id)),o=(0,l.EW)((()=>a.value.hasAccess("TunnelChangeSelf"))),r=(0,l.EW)((()=>a.value.hasAccess("TunnelChangeOther"))),s=Se(),d=(Ge(),Oe()),i=$e(),c=e=>[d.value.list[e],i.value.list[e]].filter((e=>!!e&&e.Connected)).length,h=(e,a)=>{if(n.value===e.MachineId){if(!o.value)return}else if(!r.value)return;e.device=a,t("edit",e)},m=()=>{t("refresh")},p=e=>{t("connections",e)};return{tunnel:s,handleTunnel:h,handleTunnelRefresh:m,connectionCount:c,handleConnections:p}}};const qe=(0,L.A)(Qe,[["render",_e],["__scopeId","data-v-56597dfc"]]);var je=qe;const He=e=>((0,l.Qi)("data-v-1f7f67a4"),e=e(),(0,l.jt)(),e),Je=He((()=>(0,l.Lk)("div",null,"网关层级为你的设备与外网的距离,你可以手动调整数值",-1))),Ye=He((()=>(0,l.Lk)("div",null,"光猫映射了端口后,可以直接连接,把TcpPortMap调到第一",-1))),Ze={class:"t-c w-100"};function et(e,t,a,n,o,r){const s=(0,l.g2)("el-form-item"),u=(0,l.g2)("el-input"),d=(0,l.g2)("el-col"),i=(0,l.g2)("el-input-number"),c=(0,l.g2)("el-row"),h=(0,l.g2)("el-button"),m=(0,l.g2)("el-form"),p=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(p,{modelValue:n.state.show,"onUpdate:modelValue":t[5]||(t[5]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.machineName}]网关`,width:"400"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(m,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"auto"},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:"",prop:"alert"},{default:(0,l.k6)((()=>[Je])),_:1}),(0,l.bF)(s,{label:""},{default:(0,l.k6)((()=>[(0,l.bF)(c,null,{default:(0,l.k6)((()=>[(0,l.bF)(d,{span:12},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:"网关层级",prop:"RouteLevel"},{default:(0,l.k6)((()=>[(0,l.bF)(u,{readonly:"",modelValue:n.state.ruleForm.RouteLevel,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.ruleForm.RouteLevel=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,l.bF)(d,{span:12},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:"调整层级",prop:"RouteLevelPlus"},{default:(0,l.k6)((()=>[(0,l.bF)(i,{modelValue:n.state.ruleForm.RouteLevelPlus,"onUpdate:modelValue":t[1]||(t[1]=e=>n.state.ruleForm.RouteLevelPlus=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,l.bF)(s,{label:"",prop:"alert"},{default:(0,l.k6)((()=>[Ye])),_:1}),(0,l.bF)(s,{label:""},{default:(0,l.k6)((()=>[(0,l.bF)(c,null,{default:(0,l.k6)((()=>[(0,l.bF)(d,{span:12},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:"外网端口",prop:"PortMapWan"},{default:(0,l.k6)((()=>[(0,l.bF)(i,{modelValue:n.state.ruleForm.PortMapWan,"onUpdate:modelValue":t[2]||(t[2]=e=>n.state.ruleForm.PortMapWan=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,l.bF)(d,{span:12},{default:(0,l.k6)((()=>[(0,l.bF)(s,{label:"内网端口",prop:"PortMapLan"},{default:(0,l.k6)((()=>[(0,l.bF)(i,{modelValue:n.state.ruleForm.PortMapLan,"onUpdate:modelValue":t[3]||(t[3]=e=>n.state.ruleForm.PortMapLan=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,l.bF)(s,{label:"",prop:"Btns"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",Ze,[(0,l.bF)(h,{onClick:t[4]||(t[4]=e=>n.state.show=!1)},{default:(0,l.k6)((()=>[(0,l.eW)("取消")])),_:1}),(0,l.bF)(h,{type:"primary",onClick:n.handleSave},{default:(0,l.k6)((()=>[(0,l.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var tt={props:["modelValue"],emits:["change","update:modelValue"],setup(e,{emit:t}){const a=Se(),n=(0,d.KR)(null),o=(0,d.Kh)({show:!0,machineName:a.value.current.device.MachineName,ruleForm:{RouteLevel:a.value.current.RouteLevel,RouteLevelPlus:a.value.current.RouteLevelPlus,PortMapWan:a.value.current.PortMapWan,PortMapLan:a.value.current.PortMapLan},rules:{}});(0,l.wB)((()=>o.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const r=()=>{const e=JSON.parse(JSON.stringify(a.value.current));e.RouteLevel=+o.ruleForm.RouteLevel,e.RouteLevelPlus=+o.ruleForm.RouteLevelPlus,e.PortMapWan=+o.ruleForm.PortMapWan,e.PortMapLan=+o.ruleForm.PortMapLan,(0,Ee.KW)(e).then((()=>{o.show=!1,O.nk.success("已操作!"),t("change")})).catch((()=>{O.nk.error("操作失败!")}))};return{state:o,ruleFormRef:n,handleSave:r}}};const at=(0,L.A)(tt,[["render",et],["__scopeId","data-v-1f7f67a4"]]);var lt=at;const nt={key:0},ot={class:"list forward"},rt=["onClick"],st={key:1},ut=["onClick"],dt={key:0},it={class:"list sforward"},ct={key:1};function ht(e,t,a,n,o,r){const s=(0,l.g2)("el-table-column");return(0,l.uX)(),(0,l.Wv)(s,{prop:"forward",label:"端口转发"},{default:(0,l.k6)((e=>[e.row.isSelf?((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[n.hasForwardShowSelf?((0,l.uX)(),(0,l.CE)("div",dt,[(0,l.Lk)("ul",it,[n.sforward.list&&n.sforward.list.length>0?((0,l.uX)(!0),(0,l.CE)(l.FK,{key:0},(0,l.pI)(n.sforward.list.slice(0,5),((e,a)=>((0,l.uX)(),(0,l.CE)("li",{key:a,class:(0,_.C4)({red:!!e.Msg})},[(0,l.Lk)("a",{href:"javascript:;",onClick:t[0]||(t[0]=e=>n.handleSEdit()),class:(0,_.C4)({green:e.Started})},[(0,l.Lk)("span",null,[(0,l.Lk)("span",{class:(0,_.C4)({red:!!e.Msg})},(0,_.v_)(e.Domain||e.RemotePort),3),(0,l.eW)(" -> "),(0,l.Lk)("span",{class:(0,_.C4)({red:!!e.LocalMsg})},(0,_.v_)(e.LocalEP),3)])],2),(0,l.Lk)("span",null," ("+(0,_.v_)(1<n.handleSEdit())},"暂无配置")]))])])):(0,l.Q3)("",!0)],64)):((0,l.uX)(),(0,l.CE)(l.FK,{key:0},[n.hasForwardShowOther?((0,l.uX)(),(0,l.CE)("div",nt,[(0,l.Lk)("ul",ot,[n.forward.list[e.row.MachineId]&&n.forward.list[e.row.MachineId].length>0?((0,l.uX)(!0),(0,l.CE)(l.FK,{key:0},(0,l.pI)(n.forward.list[e.row.MachineId],((t,a)=>((0,l.uX)(),(0,l.CE)("li",{key:a},[(0,l.Lk)("a",{href:"javascript:;",onClick:t=>n.handleEdit(e.row.MachineId),class:(0,_.C4)({green:t.Started})},[(0,l.Lk)("span",null,[(0,l.Lk)("span",{class:(0,_.C4)({red:!!t.Msg})},(0,_.v_)(t.Port),3),(0,l.eW)(" -> "),(0,l.Lk)("span",{class:(0,_.C4)({red:!!t.TargetMsg})},(0,_.v_)(t.TargetEP),3)])],10,rt),(0,l.Lk)("span",null," ("+(0,_.v_)(1<n.handleEdit(e.row.MachineId)},"暂无配置",8,ut)]))])])):(0,l.Q3)("",!0)],64))])),_:1})}const mt=Symbol(),pt=()=>{(0,u.B)();const e=(0,d.KR)({timer:0,showEdit:!1,showCopy:!1,current:null,list:{},testTimer:0,testTargetTimer:0,hashcode:0,hashcode1:0});(0,l.Gt)(mt,e);const t=()=>{We(e.value.hashcode.toString()).then((a=>{e.value.hashcode=a.HashCode,a.List&&(e.value.list=a.List),e.value.timer=setTimeout(t,1020)})).catch((()=>{e.value.timer=setTimeout(t,1020)}))},a=(t,a)=>{e.value.current=t,e.value.machineName=a,e.value.showEdit=!0},n=()=>{clearTimeout(e.value.testTargetTimer),Xe(e.value.current).then((t=>{e.value.testTargetTimer=setTimeout(n,5e3)})).catch((()=>{e.value.testTargetTimer=setTimeout(n,5e3)}))},o=()=>{clearTimeout(e.value.timer),clearTimeout(e.value.testTimer),clearTimeout(e.value.testTargetTimer)},r=t=>Object.values(e.value.list).reduce(((e,t)=>(e=e.concat(t),e)),[]).filter((e=>(e.Name||"").indexOf(t)>=0||(e.BindIPAddress||"").indexOf(t)>=0||e.Port.toString().indexOf(t)>=0||(e.TargetEP||"").indexOf(t)>=0)).map((e=>e.MachineId));return{forward:e,_getForwardInfo:t,handleForwardEdit:a,_testTargetForwardInfo:n,clearForwardTimeout:o,getForwardMachines:r}},gt=()=>(0,l.WQ)(mt);var ft=a(743);const vt=Symbol(),wt=()=>{const e=(0,u.B)(),t=(0,l.EW)((()=>e.value.config.Client.Id)),a=(0,d.KR)({timer:0,showEdit:!1,showCopy:!1,list:[],testTimer:0,hashcode:0});(0,l.Gt)(vt,a);const n=()=>{(0,ft.pY)(a.value.hashcode.toString()).then((e=>{a.value.hashcode=e.HashCode,e.List&&(a.value.list=e.List),a.value.timer=setTimeout(n,1040)})).catch((()=>{a.value.timer=setTimeout(n,1040)}))},o=()=>{a.value.showEdit=!0},r=()=>{clearTimeout(a.value.testTimer),(0,ft.eX)().then((e=>{a.value.testTimer=setTimeout(r,5e3)})).catch((()=>{a.value.testTimer=setTimeout(r,5e3)}))},s=()=>{clearTimeout(a.value.timer),clearTimeout(a.value.testTimer)},i=e=>{const l=a.value.list.filter((t=>(t.Name||"").indexOf(e)>=0||(t.Domain||"").indexOf(e)>=0||t.RemotePort.toString().indexOf(e)>=0||t.LocalEP.indexOf(e)>=0));return l.length>0?[t.value]:[]};return{sforward:a,_getSForwardInfo:n,handleSForwardEdit:o,_testLocalSForwardInfo:r,clearSForwardTimeout:s,getSForwardMachines:i}},kt=()=>(0,l.WQ)(vt);var bt={emits:["edit","sedit"],setup(e,{emit:t}){const a=gt(),n=kt(),o=(0,u.B)(),r=(0,l.EW)((()=>o.value.config.Client.Id)),s=(0,l.EW)((()=>o.value.hasAccess("ForwardShowSelf"))),d=(0,l.EW)((()=>o.value.hasAccess("ForwardShowOther"))),i=(0,l.EW)((()=>o.value.hasAccess("ForwardSelf"))),c=(0,l.EW)((()=>o.value.hasAccess("Accesss"))),h=e=>{if(r.value===e){if(!i.value)return}else if(!c.value)return;t("edit",e)},m=()=>{i.value&&t("sedit")},p=()=>{t("refresh")};return{forward:a,sforward:n,hasForwardShowSelf:s,hasForwardShowOther:d,handleEdit:h,handleSEdit:m,handleForwardRefresh:p}}};const Ft=(0,L.A)(bt,[["render",ht],["__scopeId","data-v-3653b6fb"]]);var Ct=Ft;const Lt={class:"t-c head"},Tt={class:"error red"},Vt={class:"error red"};function _t(e,t,a,n,o,r){const s=(0,l.g2)("el-button"),u=(0,l.g2)("el-input"),d=(0,l.g2)("el-table-column"),i=(0,l.g2)("el-option"),c=(0,l.g2)("el-select"),h=(0,l.g2)("WarnTriangleFilled"),m=(0,l.g2)("el-icon"),p=(0,l.g2)("el-popover"),g=(0,l.g2)("el-switch"),f=(0,l.g2)("Delete"),v=(0,l.g2)("el-popconfirm"),w=(0,l.g2)("el-table"),k=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(k,{modelValue:n.state.show,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:`端口转发到【${n.state.machineName}】`,top:"1vh",width:"700"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.Lk)("div",Lt,[(0,l.bF)(s,{type:"success",size:"small",onClick:n.handleAdd},{default:(0,l.k6)((()=>[(0,l.eW)("添加")])),_:1},8,["onClick"]),(0,l.bF)(s,{size:"small",onClick:n.handleRefresh},{default:(0,l.k6)((()=>[(0,l.eW)("刷新")])),_:1},8,["onClick"]),(0,l.bF)(s,{size:"small",onClick:n.handleCopy},{default:(0,l.k6)((()=>[(0,l.eW)("复制转发配置")])),_:1},8,["onClick"])]),(0,l.bF)(w,{data:n.state.data,size:"small",border:"",height:"500",onCellDblclick:n.handleCellClick},{default:(0,l.k6)((()=>[(0,l.bF)(d,{property:"Name",label:"名称"},{default:(0,l.k6)((e=>[e.row.NameEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":t=>e.row.Name=t,onBlur:t=>n.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[(0,l.eW)((0,_.v_)(e.row.Name),1)],64))])),_:1}),(0,l.bF)(d,{prop:"BufferSize",label:"缓冲区",width:"100"},{default:(0,l.k6)((e=>[(0,l.bF)(c,{modelValue:e.row.BufferSize,"onUpdate:modelValue":t=>e.row.BufferSize=t,placeholder:"Select",size:"small",disabled:e.row.Started,onChange:t=>n.handleEditBlur(e.row,"BufferSize")},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.bufferSize,((e,t)=>((0,l.uX)(),(0,l.Wv)(i,{key:t,label:e,value:t},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","disabled","onChange"])])),_:1}),(0,l.bF)(d,{property:"BindIPAddress",label:"监听IP",width:"140"},{default:(0,l.k6)((e=>[(0,l.bF)(c,{modelValue:e.row.BindIPAddress,"onUpdate:modelValue":t=>e.row.BindIPAddress=t,size:"small",disabled:e.row.Started},{default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.ips,(e=>((0,l.uX)(),(0,l.Wv)(i,{key:e,label:e,value:e},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","disabled"])])),_:1}),(0,l.bF)(d,{property:"Port",label:"监听端口",width:"80"},{default:(0,l.k6)((e=>[e.row.PortEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,type:"number",autofocus:"",size:"small",modelValue:e.row.Port,"onUpdate:modelValue":t=>e.row.Port=t,onBlur:t=>n.handleEditBlur(e.row,"Port")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[e.row.Msg?((0,l.uX)(),(0,l.Wv)(p,{key:0,placement:"top",title:"msg",width:"20rem",trigger:"hover",content:e.row.Msg},{reference:(0,l.k6)((()=>[(0,l.Lk)("div",Tt,[(0,l.Lk)("span",null,(0,_.v_)(e.row.Port),1),(0,l.bF)(m,{size:"20"},{default:(0,l.k6)((()=>[(0,l.bF)(h)])),_:1})])])),_:2},1032,["content"])):((0,l.uX)(),(0,l.CE)("span",{key:1,class:(0,_.C4)({green:e.row.Started})},(0,_.v_)(e.row.Port),3))],64))])),_:1}),(0,l.bF)(d,{property:"TargetEP",label:"目标服务",width:"140"},{default:(0,l.k6)((e=>[e.row.TargetEPEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.TargetEP,"onUpdate:modelValue":t=>e.row.TargetEP=t,onBlur:t=>n.handleEditBlur(e.row,"TargetEP")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[e.row.TargetMsg?((0,l.uX)(),(0,l.Wv)(p,{key:0,placement:"top",title:"msg",width:"20rem",trigger:"hover",content:e.row.TargetMsg},{reference:(0,l.k6)((()=>[(0,l.Lk)("span",Vt,(0,_.v_)(e.row.TargetEP),1),(0,l.bF)(m,{size:"20"},{default:(0,l.k6)((()=>[(0,l.bF)(h)])),_:1})])),_:2},1032,["content"])):((0,l.uX)(),(0,l.CE)("span",{key:1,class:(0,_.C4)({green:e.row.Started})},(0,_.v_)(e.row.TargetEP),3))],64))])),_:1}),(0,l.bF)(d,{property:"Started",label:"状态",width:"60"},{default:(0,l.k6)((e=>[(0,l.bF)(g,{modelValue:e.row.Started,"onUpdate:modelValue":t=>e.row.Started=t,onChange:t=>n.handleStartChange(e.row),"inline-prompt":"","active-text":"开","inactive-text":"关"},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,l.bF)(d,{label:"操作",width:"54"},{default:(0,l.k6)((e=>[(0,l.bF)(v,{"confirm-button-text":"确认","cancel-button-text":"取消",title:"删除不可逆,是否确认?",onConfirm:t=>n.handleDel(e.row.Id)},{reference:(0,l.k6)((()=>[(0,l.bF)(s,{type:"danger",size:"small"},{default:(0,l.k6)((()=>[(0,l.bF)(m,null,{default:(0,l.k6)((()=>[(0,l.bF)(f)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])])),_:1})])),_:1},8,["data","onCellDblclick"])])])),_:1},8,["modelValue","onOpen","title"])}var Et={props:["data","modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:f.DtC,Delete:f.epd},setup(e,{emit:t}){const a=(0,u.B)(),n=gt(),o=(0,d.Kh)({show:!0,machineId:n.value.current,machineName:n.value.machineName,data:[],ips:[],timerTestTarget:0,timerTestListen:0,bufferSize:a.value.bufferSize});(0,l.wB)((()=>o.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const r=()=>{Be().then((e=>{e.splice(0,0,"127.0.0.1"),e.splice(0,0,"0.0.0.0"),o.ips=e})).catch((()=>{}))},s=()=>{Xe(n.value.current).then((e=>{o.timerTestTarget=setTimeout(s,1e3)})).catch((()=>{o.timerTestTarget=setTimeout(s,1e3)}))},i=()=>{We().then((e=>{e.List&&(o.data=e.List[o.machineId]||[])})).catch((()=>{}))},c=()=>{i()},h=(e,t)=>{g(e,t.property)},m=()=>{i(),O.nk.success("已刷新")},p=()=>{k({ID:0,Name:"",Port:0,TargetEP:"127.0.0.1:80",machineId:o.machineId})},g=(e,t)=>{e.Started?O.nk.error("请先停止"):(o.data.forEach((e=>{e["NameEditing"]=!1,e["PortEditing"]=!1,e["TargetEPEditing"]=!1,e["BindIPAddressEditing"]=!1})),e[`${t}Editing`]=!0)},f=(e,t)=>{e.Started?O.nk.error("请先停止"):(e[`${t}Editing`]=!1,k(e))},v=e=>{Ae(e).then((()=>{i()}))},w=e=>{k(e)},k=e=>{e.Port=parseInt(e.Port),Ne(e).then((()=>{i()})).catch((e=>{O.nk.error(e)}))},b=()=>{n.value.showCopy=!0};return(0,l.sV)((()=>{i(),r(),s()})),(0,l.hi)((()=>{clearTimeout(o.timerTestTarget),clearTimeout(o.timerTestListen)})),{state:o,handleOnShowList:c,handleCellClick:h,handleRefresh:m,handleAdd:p,handleEdit:g,handleEditBlur:f,handleDel:v,handleStartChange:w,handleCopy:b}}};const yt=(0,L.A)(Et,[["render",_t],["__scopeId","data-v-2c1a8404"]]);var It=yt;const St=e=>((0,l.Qi)("data-v-3a13c86f"),e=e(),(0,l.jt)(),e),Pt={class:"t-c head"},Mt=St((()=>(0,l.Lk)("span",null,"复制",-1))),Rt={class:"t-c"},Wt={class:"page-wrap"},zt={class:"foot t-c"};function Bt(e,t,a,n,o,r){const s=(0,l.g2)("el-pagination"),u=(0,l.g2)("el-option"),d=(0,l.g2)("el-select"),i=(0,l.g2)("el-table-column"),c=(0,l.g2)("el-checkbox"),h=(0,l.g2)("el-table"),m=(0,l.g2)("el-button"),p=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(p,{modelValue:n.state.show,"onUpdate:modelValue":t[1]||(t[1]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:"复制端口转发",top:"1vh",width:"500"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.Lk)("div",Pt,[Mt,(0,l.bF)(d,{modelValue:n.state.machineId,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.machineId=e),onChange:n.handleMachineChange,filterable:"",remote:"",loading:n.state.loading,"remote-method":n.handleSearch},{header:(0,l.k6)((()=>[(0,l.Lk)("div",Rt,[(0,l.Lk)("div",Wt,[(0,l.bF)(s,{small:"",background:"",layout:"prev, pager, next","page-size":n.state.machineIds.Request.Size,total:n.state.machineIds.Count,"pager-count":5,"current-page":n.state.machineIds.Request.Page,onCurrentChange:n.handlePageChange},null,8,["page-size","total","current-page","onCurrentChange"])])])])),default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.machineIds.List,((e,t)=>((0,l.uX)(),(0,l.Wv)(u,{key:t,label:e.MachineName,value:e.MachineId},null,8,["label","value"])))),128))])),_:1},8,["modelValue","onChange","loading","remote-method"]),(0,l.Lk)("span",null,"到【"+(0,_.v_)(n.state.toMachineName)+"】的端口转发记录",1)]),(0,l.bF)(h,{data:n.state.forwards,size:"small",border:""},{default:(0,l.k6)((()=>[(0,l.bF)(i,{property:"Name",label:"名称"}),(0,l.bF)(i,{prop:"BufferSize",label:"缓冲区",width:"60"},{default:(0,l.k6)((e=>[(0,l.eW)((0,_.v_)(1<[(0,l.bF)(c,{modelValue:e.row.use,"onUpdate:modelValue":t=>e.row.use=t},{default:(0,l.k6)((()=>[(0,l.eW)("使用")])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1})])),_:1},8,["data"]),(0,l.Lk)("div",zt,[(0,l.bF)(m,{type:"primary",onClick:n.handleConfirm},{default:(0,l.k6)((()=>[(0,l.eW)("确定复制")])),_:1},8,["onClick"])])])])),_:1},8,["modelValue","onOpen"])}var At={props:["modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:f.DtC},setup(e,{emit:t}){(0,u.B)();const a=gt(),n=(0,d.Kh)({show:!0,loading:!1,machineId:"",toMachineId:a.value.current,toMachineName:a.value.machineName,machineIds:{Request:{Page:1,Size:10,Name:""},Count:0,List:[]},forwards:[]});(0,l.wB)((()=>n.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const o=()=>{r()},r=()=>{n.loading=!0,(0,p.BS)(n.machineIds.Request).then((e=>{n.loading=!1,n.machineIds.Request=e.Request,n.machineIds.Count=e.Count,n.machineIds.List=e.List,!n.machineId&&n.machineIds.List.length>0&&(n.machineId=n.machineIds.List[0].MachineId,c())})).catch((e=>{n.loading=!1}))},s=e=>{n.machineIds.Request.Page=e,r()},i=e=>{n.machineIds.Request.Name=e,r()},c=()=>{ze({MachineId:n.machineId,ToMachineId:n.toMachineId}).then((e=>{e.forEach((e=>{e.use=!0})),n.forwards=e})).catch((e=>{console.log(e)}))},h=()=>{c()},m=()=>{const e=n.forwards.filter((e=>e.use)).map((e=>Ne({Name:e.Name,Port:e.Port,TargetEP:e.TargetEP,BufferSize:e.BufferSize,MachineId:n.toMachineId})));Promise.all(e).then((()=>{O.nk.success("已操作!"),n.show=!1})).catch((()=>{O.nk.success("操作失败!")}))};return(0,l.sV)((()=>{r()})),(0,l.hi)((()=>{})),{state:n,handleSearch:i,handleOnShowList:o,handleMachineChange:h,handleConfirm:m,handlePageChange:s}}};const Nt=(0,L.A)(At,[["render",Bt],["__scopeId","data-v-3a13c86f"]]);var Xt=Nt;const Ut={class:"t-c head"},xt={class:"error red"},Dt={class:"error red"};function Kt(e,t,a,n,o,r){const s=(0,l.g2)("el-button"),u=(0,l.g2)("el-input"),d=(0,l.g2)("el-table-column"),i=(0,l.g2)("WarnTriangleFilled"),c=(0,l.g2)("el-icon"),h=(0,l.g2)("el-popover"),m=(0,l.g2)("el-switch"),p=(0,l.g2)("Delete"),g=(0,l.g2)("el-popconfirm"),f=(0,l.g2)("el-table"),v=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(v,{modelValue:n.state.show,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:"服务器代理穿透",top:"1vh",width:"700"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.Lk)("div",Ut,[(0,l.bF)(s,{type:"success",size:"small",onClick:n.handleAdd},{default:(0,l.k6)((()=>[(0,l.eW)("添加")])),_:1},8,["onClick"]),(0,l.bF)(s,{size:"small",onClick:n.handleRefresh},{default:(0,l.k6)((()=>[(0,l.eW)("刷新")])),_:1},8,["onClick"]),(0,l.bF)(s,{size:"small",onClick:n.handleCopy},{default:(0,l.k6)((()=>[(0,l.eW)("复制穿透配置")])),_:1},8,["onClick"])]),(0,l.bF)(f,{data:n.state.data,size:"small",border:"",height:"500",onCellDblclick:n.handleCellClick},{default:(0,l.k6)((()=>[(0,l.bF)(d,{property:"Name",label:"名称"},{default:(0,l.k6)((e=>[e.row.NameEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":t=>e.row.Name=t,onBlur:t=>n.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[(0,l.eW)((0,_.v_)(e.row.Name),1)],64))])),_:1}),(0,l.bF)(d,{prop:"BufferSize",label:"缓冲区",width:"100"},{default:(0,l.k6)((e=>[(0,l.Lk)("span",null,(0,_.v_)(1<[e.row.TempEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.Temp,"onUpdate:modelValue":t=>e.row.Temp=t,onBlur:t=>n.handleEditBlur(e.row,"Temp")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[e.row.Msg?((0,l.uX)(),(0,l.Wv)(h,{key:0,placement:"top",title:"msg",width:"20rem",trigger:"hover",content:e.row.Msg},{reference:(0,l.k6)((()=>[(0,l.Lk)("div",xt,[(0,l.Lk)("span",null,(0,_.v_)(e.row.Temp),1),(0,l.bF)(c,{size:"20"},{default:(0,l.k6)((()=>[(0,l.bF)(i)])),_:1})])])),_:2},1032,["content"])):((0,l.uX)(),(0,l.CE)("span",{key:1,class:(0,_.C4)({green:e.row.Started})},(0,_.v_)(e.row.Temp),3))],64))])),_:1}),(0,l.bF)(d,{property:"LocalEP",label:"本机服务",width:"140"},{default:(0,l.k6)((e=>[e.row.LocalEPEditing&&0==e.row.Started?((0,l.uX)(),(0,l.Wv)(u,{key:0,autofocus:"",size:"small",modelValue:e.row.LocalEP,"onUpdate:modelValue":t=>e.row.LocalEP=t,onBlur:t=>n.handleEditBlur(e.row,"LocalEP")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,l.uX)(),(0,l.CE)(l.FK,{key:1},[e.row.LocalMsg?((0,l.uX)(),(0,l.Wv)(h,{key:0,placement:"top",title:"msg",width:"20rem",trigger:"hover",content:e.row.LocalMsg},{reference:(0,l.k6)((()=>[(0,l.Lk)("span",Dt,(0,_.v_)(e.row.LocalEP),1),(0,l.bF)(c,{size:"20"},{default:(0,l.k6)((()=>[(0,l.bF)(i)])),_:1})])),_:2},1032,["content"])):((0,l.uX)(),(0,l.CE)("span",{key:1,class:(0,_.C4)({green:e.row.Started})},(0,_.v_)(e.row.LocalEP),3))],64))])),_:1}),(0,l.bF)(d,{property:"Started",label:"状态",width:"60"},{default:(0,l.k6)((e=>[(0,l.bF)(m,{modelValue:e.row.Started,"onUpdate:modelValue":t=>e.row.Started=t,onChange:t=>n.handleStartChange(e.row),"inline-prompt":"","active-text":"是","inactive-text":"否"},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,l.bF)(d,{label:"操作",width:"54"},{default:(0,l.k6)((e=>[(0,l.bF)(g,{"confirm-button-text":"确认","cancel-button-text":"取消",title:"删除不可逆,是否确认?",onConfirm:t=>n.handleDel(e.row.Id)},{reference:(0,l.k6)((()=>[(0,l.bF)(s,{type:"danger",size:"small"},{default:(0,l.k6)((()=>[(0,l.bF)(c,null,{default:(0,l.k6)((()=>[(0,l.bF)(p)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])])),_:1})])),_:1},8,["data","onCellDblclick"])])])),_:1},8,["modelValue","onOpen"])}var Gt={props:["data","modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:f.DtC,Delete:f.epd},setup(e,{emit:t}){const a=(0,u.B)(),n=kt(),o=(0,d.Kh)({bufferSize:a.value.bufferSize,show:!0,data:[],timerTestLocal:0});(0,l.wB)((()=>o.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const r=()=>{(0,ft.eX)().then((e=>{o.timerTestLocal=setTimeout(r,1e3)})).catch((()=>{o.timerTestLocal=setTimeout(r,1e3)}))},s=()=>{(0,ft.pY)().then((e=>{let t=e.List||[];t.forEach((e=>{e.Temp=(e.Domain||e.RemotePort).toString(),e.RemotePort=0,e.Domain=""})),o.data=t})).catch((()=>{}))},i=()=>{s()},c=(e,t)=>{p(e,t.property)},h=()=>{s(),O.nk.success("已刷新")},m=()=>{(0,ft.Qs)({Id:0,Name:"",RemotePort:0,LocalEP:"127.0.0.1:80",Domain:"",Temp:""}).then((()=>{setTimeout((()=>{s()}),100)})).catch((e=>{O.nk.error(e)}))},p=(e,t)=>{e.Started?O.nk.error("请先停止运行"):(o.data.forEach((e=>{e["NameEditing"]=!1,e["RemotePortEditing"]=!1,e["LocalEPEditing"]=!1,e["DomainEditing"]=!1,e["TempEditing"]=!1})),e[`${t}Editing`]=!0)},g=(e,t)=>{e.Started?O.nk.error("请先停止运行"):(e[`${t}Editing`]=!1,w(e))},f=e=>{(0,ft.DY)(e).then((()=>{s()}))},v=e=>{w(e)},w=e=>{e.Temp&&(/^\d+$/.test(e.Temp)?e.RemotePort=parseInt(e.Temp):e.Domain=e.Temp,(0,ft.Qs)(e).then((()=>{setTimeout((()=>{s()}),100)})).catch((e=>{O.nk.error(e)})))},k=()=>{n.value.showCopy=!0},b=()=>{const e=(t=1e4)=>{if(t>2e4)return;const a={Name:`s-${t}`,RemotePort:t,LocalEP:"127.0.0.1:80",Started:!0};(0,ft.Qs)(a).then((a=>{setTimeout((()=>{e(++t)}),50)})).catch((a=>{console.log(a),O.nk.error(a),setTimeout((()=>{e(++t)}),100)}))};e()};return(0,l.sV)((()=>{s(),r()})),(0,l.hi)((()=>{clearTimeout(o.timerTestLocal)})),{state:o,handleOnShowList:i,handleCellClick:c,handleRefresh:h,handleAdd:m,handleEdit:p,handleEditBlur:g,handleDel:f,handleStartChange:v,handleCopy:k,handle10000:b}}};const Ot=(0,L.A)(Gt,[["render",Kt],["__scopeId","data-v-5e37381c"]]);var $t=Ot;const Qt=e=>((0,l.Qi)("data-v-5512121a"),e=e(),(0,l.jt)(),e),qt={class:"t-c head"},jt=Qt((()=>(0,l.Lk)("span",null,"复制",-1))),Ht={class:"t-c"},Jt={class:"page-wrap"},Yt=Qt((()=>(0,l.Lk)("span",null,"的服务器代理穿透记录",-1))),Zt={class:"foot t-c"};function ea(e,t,a,n,o,r){const s=(0,l.g2)("el-pagination"),u=(0,l.g2)("el-option"),d=(0,l.g2)("el-select"),i=(0,l.g2)("el-table-column"),c=(0,l.g2)("el-checkbox"),h=(0,l.g2)("el-table"),m=(0,l.g2)("el-button"),p=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(p,{modelValue:n.state.show,"onUpdate:modelValue":t[1]||(t[1]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:"复制服务器代理穿透",top:"1vh",width:"500"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.Lk)("div",qt,[jt,(0,l.bF)(d,{modelValue:n.state.machineId,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.machineId=e),onChange:n.handleMachineChange,filterable:"",remote:"",loading:n.state.loading,"remote-method":n.handleSearch},{header:(0,l.k6)((()=>[(0,l.Lk)("div",Ht,[(0,l.Lk)("div",Jt,[(0,l.bF)(s,{small:"",background:"",layout:"prev, pager, next","page-size":n.state.machineIds.Request.Size,total:n.state.machineIds.Count,"pager-count":5,"current-page":n.state.machineIds.Request.Page,onCurrentChange:n.handlePageChange},null,8,["page-size","total","current-page","onCurrentChange"])])])])),default:(0,l.k6)((()=>[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(n.state.machineIds.List,((e,t)=>((0,l.uX)(),(0,l.Wv)(u,{key:t,label:e.MachineName,value:e.MachineId},null,8,["label","value"])))),128))])),_:1},8,["modelValue","onChange","loading","remote-method"]),Yt]),(0,l.bF)(h,{data:n.state.forwards,size:"small",border:""},{default:(0,l.k6)((()=>[(0,l.bF)(i,{property:"Name",label:"名称"}),(0,l.bF)(i,{property:"Domain",label:"域名/端口"},{default:(0,l.k6)((e=>[(0,l.Lk)("span",null,(0,_.v_)(e.row.Domain||e.row.RemotePort),1)])),_:1}),(0,l.bF)(i,{property:"LocalEP",label:"本机服务",width:"140"}),(0,l.bF)(i,{label:"操作",width:"80"},{default:(0,l.k6)((e=>[(0,l.bF)(c,{modelValue:e.row.use,"onUpdate:modelValue":t=>e.row.use=t},{default:(0,l.k6)((()=>[(0,l.eW)("使用")])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1})])),_:1},8,["data"]),(0,l.Lk)("div",Zt,[(0,l.bF)(m,{type:"primary",onClick:n.handleConfirm},{default:(0,l.k6)((()=>[(0,l.eW)("确定复制")])),_:1},8,["onClick"])])])])),_:1},8,["modelValue","onOpen"])}var ta={props:["modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:f.DtC},setup(e,{emit:t}){(0,u.B)();const a=(0,d.Kh)({show:!0,loading:!1,machineId:"",machineIds:{Request:{Page:1,Size:10,Name:""},Count:0,List:[]},forwards:[]});(0,l.wB)((()=>a.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e)}),300)}));const n=()=>{o()},o=()=>{a.loading=!0,(0,p.BS)(a.machineIds.Request).then((e=>{a.loading=!1,a.machineIds.Request=e.Request,a.machineIds.Count=e.Count,a.machineIds.List=e.List,!a.machineId&&a.machineIds.List.length>0&&(a.machineId=a.machineIds.List[0].MachineId,i())})).catch((e=>{a.loading=!1}))},r=e=>{a.machineIds.Request.Page=e,o()},s=e=>{a.machineIds.Request.Name=e,o()},i=()=>{(0,ft.$U)(a.machineId).then((e=>{e.forEach((e=>{e.use=!0})),a.forwards=e})).catch((e=>{console.log(e)}))},c=()=>{i()},h=()=>{const e=a.forwards.filter((e=>e.use)).map((e=>(0,ft.Qs)({Name:e.Name,Domain:e.Domain,RemotePort:e.RemotePort,LocalEP:e.LocalEP})));Promise.all(e).then((()=>{O.nk.success("已操作!"),a.show=!1})).catch((()=>{O.nk.success("操作失败!")}))};return(0,l.sV)((()=>{o()})),(0,l.hi)((()=>{})),{state:a,handleSearch:s,handleOnShowList:n,handleMachineChange:c,handleConfirm:h,handlePageChange:r}}};const aa=(0,L.A)(ta,[["render",ea],["__scopeId","data-v-5512121a"]]);var la=aa;function na(e,t,a,n,o,r){const s=(0,l.g2)("el-table-column"),u=(0,l.g2)("Delete"),d=(0,l.g2)("el-icon"),i=(0,l.g2)("el-button"),c=(0,l.g2)("el-popconfirm"),h=(0,l.g2)("el-table"),m=(0,l.g2)("el-dialog");return(0,l.uX)(),(0,l.Wv)(m,{modelValue:n.state.show,"onUpdate:modelValue":t[0]||(t[0]=e=>n.state.show=e),"append-to":".app-wrap",title:`与[${n.state.machineName}]的链接`,top:"1vh",width:"700"},{default:(0,l.k6)((()=>[(0,l.Lk)("div",null,[(0,l.bF)(h,{data:n.state.data,size:"small",border:"",height:"500"},{default:(0,l.k6)((()=>[(0,l.bF)(s,{property:"RemoteMachineId",label:"目标"},{default:(0,l.k6)((e=>[(0,l.Lk)("div",{class:(0,_.C4)({green:e.row.Connected})},[(0,l.Lk)("p",null,(0,_.v_)(e.row.IPEndPoint),1),(0,l.Lk)("p",null,"ssl : "+(0,_.v_)(e.row.SSL),1)],2)])),_:1}),(0,l.bF)(s,{property:"TransactionId",label:"事务",width:"80"},{default:(0,l.k6)((e=>[(0,l.Lk)("span",null,(0,_.v_)(n.state.transactions[e.row.TransactionId]),1)])),_:1}),(0,l.bF)(s,{property:"TransportName",label:"协议"},{default:(0,l.k6)((e=>[(0,l.Lk)("div",null,[(0,l.Lk)("p",null,(0,_.v_)(e.row.TransportName)+"("+(0,_.v_)(n.state.protocolTypes[e.row.ProtocolType])+")",1),(0,l.Lk)("p",null,(0,_.v_)(n.state.types[e.row.Type])+" - "+(0,_.v_)(1<[(0,l.Lk)("span",null,(0,_.v_)(e.row.Delay)+"ms",1)])),_:1}),(0,l.bF)(s,{property:"Bytes",label:"通信"},{default:(0,l.k6)((e=>[(0,l.Lk)("div",null,[(0,l.Lk)("p",null,"up : "+(0,_.v_)(e.row.SendBytesText),1),(0,l.Lk)("p",null,"down : "+(0,_.v_)(e.row.ReceiveBytesText),1)])])),_:1}),(0,l.bF)(s,{label:"操作",width:"54"},{default:(0,l.k6)((e=>[n.hasTunnelRemove?((0,l.uX)(),(0,l.Wv)(c,{key:0,"confirm-button-text":"确认","cancel-button-text":"取消",title:"确定关闭此连接?",onConfirm:t=>n.handleDel(e.row)},{reference:(0,l.k6)((()=>[(0,l.bF)(i,{type:"danger",size:"small"},{default:(0,l.k6)((()=>[(0,l.bF)(d,null,{default:(0,l.k6)((()=>[(0,l.bF)(u)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])):(0,l.Q3)("",!0)])),_:1})])),_:1},8,["data"])])])),_:1},8,["modelValue","title"])}var oa={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:f.epd},setup(e,{emit:t}){const a=(0,u.B)(),n=(0,l.EW)((()=>a.value.hasAccess("TunnelRemove"))),o=Ge(),r=Oe(),s=$e(),i=(0,d.Kh)({show:!0,protocolTypes:{1:"tcp",2:"udp",4:"msquic"},types:{0:"打洞",1:"中继"},transactions:{forward:"端口转发",tuntap:"虚拟网卡"},machineName:o.value.currentName,data:(0,l.EW)((()=>[r.value.list[o.value.current],s.value.list[o.value.current]].filter((e=>!!e))))});(0,l.wB)((()=>i.show),(e=>{e||setTimeout((()=>{t("update:modelValue",e),t("change")}),300)}));const c=e=>{n.value&&e.removeFunc(e.RemoteMachineId).then((()=>{O.nk.success("删除成功")})).catch((()=>{}))};return{state:i,handleDel:c,hasTunnelRemove:n}}};const ra=(0,L.A)(oa,[["render",na],["__scopeId","data-v-36027c60"]]);var sa=ra,ua=a(7985),da=a(9383),ia={components:{Oper:V,Device:x,DeviceEdit:q,AccessEdit:Z,Tunnel:je,TunnelEdit:lt,ConnectionsEdit:sa,Tuntap:re,TuntapEdit:Ce,Forward:Ct,ForwardEdit:It,ForwardCopy:Xt,SForwardEdit:$t,SForwardCopy:la},setup(e){const t=(0,u.B)(),a=(0,d.Kh)({height:(0,l.EW)((()=>t.value.height-90))}),{devices:n,machineId:o,_getSignList:r,_getSignList1:s,handleDeviceEdit:i,handleAccessEdit:c,handlePageChange:h,handlePageSizeChange:m,handleDel:p,clearDevicesTimeout:g,setSort:f}=(0,ua.r)(),{tuntap:v,_getTuntapInfo:w,handleTuntapEdit:k,handleTuntapRefresh:F,clearTuntapTimeout:C,getTuntapMachines:L,sortTuntapIP:T}=(0,ae.O)(),{tunnel:V,_getTunnelInfo:_,handleTunnelEdit:E,handleTunnelRefresh:y,clearTunnelTimeout:I,sortTunnel:S}=Ie(),{forward:P,_getForwardInfo:M,handleForwardEdit:R,_testTargetForwardInfo:W,clearForwardTimeout:z,getForwardMachines:B}=pt(),{sforward:A,_getSForwardInfo:N,handleSForwardEdit:X,_testLocalSForwardInfo:U,clearSForwardTimeout:x,getSForwardMachines:D}=wt(),{connections:K,forwardConnections:G,_getForwardConnections:$,tuntapConnections:Q,_getTuntapConnections:q,handleTunnelConnections:j,clearConnectionsTimeout:H}=Ke(),{_getUpdater:J,clearUpdaterTimeout:Y}=(0,da.d)(),{_getAccessInfo:Z,clearAccessTimeout:ee}=b(),te=e=>{n.page.Request.Prop=e.prop,n.page.Request.Asc="ascending"==e.order;let t=new Promise(((e,t)=>{e()}));if("tunnel"==e.prop){const e=S(n.page.Request.Asc);e.length>0&&(t=f(e))}else if("tuntap"==e.prop){const e=T(n.page.Request.Asc);e.length>0&&(t=f(e))}t.then((()=>{h()})).catch((()=>{}))},le=e=>{R(e,n.page.List.filter((t=>t.MachineId==e))[0].MachineName)},ne=e=>{n.page.Request.Name=e||"",n.page.Request.Name?n.page.Request.Ids=L(n.page.Request.Name).concat(B(n.page.Request.Name)).concat(D(n.page.Request.Name)).reduce(((e,t)=>(-1==e.indexOf(t)&&e.push(t),e)),[]):n.page.Request.Ids=[],h(),y(),F(),O.nk.success({message:"刷新成功",grouping:!0})},oe=()=>{h(),y(),F(),O.nk.success({message:"刷新成功",grouping:!0})};return(0,l.sV)((()=>{h(),y(),F(),r(),s(),w(),_(),$(),q(),M(),N(),J(),Z(),W(),U()})),(0,l.hi)((()=>{g(),H(),C(),I(),z(),x(),Y(),ee()})),{state:a,devices:n,machineId:o,handleSortChange:te,handleDeviceEdit:i,handleAccessEdit:c,handlePageRefresh:ne,handlePageSearch:oe,handlePageChange:h,handlePageSizeChange:m,handleDel:p,tuntap:v,handleTuntapEdit:k,handleTuntapRefresh:F,tunnel:V,connections:K,handleTunnelEdit:E,handleTunnelRefresh:y,handleTunnelConnections:j,forward:P,_handleForwardEdit:le,sforward:A,handleSForwardEdit:X}}};const ca=(0,L.A)(ia,[["render",s],["__scopeId","data-v-3e4fd378"]]);var ha=ca},2126:function(e,t,a){a.d(t,{A:function(){return b}});var l=a(6768),n=a(4232);const o=["title"],r={key:0,class:"progress"},s={key:1,class:"progress"};function u(e,t,a,u,d,i){const c=(0,l.g2)("Loading"),h=(0,l.g2)("el-icon"),m=(0,l.g2)("Download"),p=(0,l.g2)("CircleCheck");return(0,l.uX)(),(0,l.CE)("a",{href:"javascript:;",class:(0,n.C4)(["download",u.updaterColor]),onClick:t[0]||(t[0]=e=>u.handleUpdate()),title:u.updaterText},[(0,l.Lk)("span",null,[(0,l.Lk)("span",null,(0,n.v_)(u.item.Version),1),u.updater.list[u.item.MachineId]?((0,l.uX)(),(0,l.CE)(l.FK,{key:0},[1==u.updater.list[u.item.MachineId].Status?((0,l.uX)(),(0,l.Wv)(h,{key:0,size:"14",class:"loading"},{default:(0,l.k6)((()=>[(0,l.bF)(c)])),_:1})):2==u.updater.list[u.item.MachineId].Status?((0,l.uX)(),(0,l.Wv)(h,{key:1,size:"14"},{default:(0,l.k6)((()=>[(0,l.bF)(m)])),_:1})):3==u.updater.list[u.item.MachineId].Status||5==u.updater.list[u.item.MachineId].Status?((0,l.uX)(),(0,l.CE)(l.FK,{key:2},[(0,l.bF)(h,{size:"14",class:"loading"},{default:(0,l.k6)((()=>[(0,l.bF)(c)])),_:1}),0==u.updater.list[u.item.MachineId].Length?((0,l.uX)(),(0,l.CE)("span",r,"0%")):((0,l.uX)(),(0,l.CE)("span",s,(0,n.v_)(parseInt(u.updater.list[u.item.MachineId].Current/u.updater.list[u.item.MachineId].Length*100))+"%",1))],64)):6==u.updater.list[u.item.MachineId].Status?((0,l.uX)(),(0,l.Wv)(h,{key:3,size:"14",class:"yellow"},{default:(0,l.k6)((()=>[(0,l.bF)(p)])),_:1})):(0,l.Q3)("",!0)],64)):((0,l.uX)(),(0,l.Wv)(h,{key:1,size:"14"},{default:(0,l.k6)((()=>[(0,l.bF)(m)])),_:1}))])],10,o)}a(4114);var d=a(3830),i=a(144),c=a(1219),h=a(2933),m=a(2248),p=a(920),g=a(7477),f=a(9383),v={props:["item","config"],components:{Download:g.f5X,Loading:g.Rhj,CircleCheck:g.rW7},setup(e){const t=(0,d.B)(),a=(0,l.EW)((()=>t.value.hasAccess("UpdateSelf"))),n=(0,l.EW)((()=>t.value.hasAccess("UpdateOther"))),o=(0,f.T)(),r=(0,l.EW)((()=>t.value.signin.Version)),s=(0,l.EW)((()=>o.value.current.Version)),u=(0,l.EW)((()=>`${s.value}->${o.value.current.DateTime}\n${o.value.current.Msg.map(((e,t)=>`${t+1}、${e}`)).join("\n")}`)),g=(0,l.EW)((()=>o.value.list[e.item.MachineId]?o.value.list[e.item.MachineId].Status<=2?e.item.Version!=r.value?`与服务器版本(${r.value})不一致,建议更新`:s.value!=e.item.Version?`不是最新版本(${s.value}),建议更新\n${u.value}`:`是最新版本,但我无法阻止你喜欢更新\n${u.value}`:{3:"正在下载",4:"已下载",5:"正在解压",6:"已解压,请重启"}[o.value.list[e.item.MachineId].Status]:"未检测到更新")),v=(0,l.EW)((()=>e.item.Version!=r.value?"red":o.value.list[e.item.MachineId]&&s.value!=e.item.Version?"yellow":"green")),w=()=>{if(!e.config)return;if(!a.value)return;const t=o.value.list[e.item.MachineId];if(t)if([0,1,3,5].indexOf(t.Status)>=0)c.nk.error("操作中,请稍后!");else if(6!=t.Status){if(2==t.Status){const t=(0,i.KR)(s.value),a=[(0,l.h)(m.P9,{label:`仅[${e.item.MachineName}] -> ${s.value}(最新版本)`,value:s.value})];e.config&&n.value&&a.push((0,l.h)(m.P9,{label:`[所有] -> ${s.value}(最新版本)`,value:`all->${s.value}`})),e.item.Version!=r.value&&s.value!=r.value&&(a.push((0,l.h)(m.P9,{label:`仅[${e.item.MachineName}] -> ${r.value}(服务器版本)`,value:r.value})),e.config&&n.value&&a.push((0,l.h)(m.P9,{label:`[所有] -> ${r.value}(服务器版本)`,value:`all->${r.value}`}))),(0,h.s)({title:"选择版本",message:()=>(0,l.h)(m.AV,{modelValue:t.value,placeholder:"请选择",style:"width:20rem;","onUpdate:modelValue":e=>{t.value=e}},a),confirmButtonText:"确定",cancelButtonText:"取消"}).then((()=>{const a={MachineId:e.item.MachineId,Version:t.value.replace("all->",""),All:t.value.indexOf("all->")>=0};a.All&&(a.MachineId=""),(0,p.lJ)(a)})).catch((()=>{}))}}else h.s.confirm("确定关闭程序吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{exit(e.item.MachineId)})).catch((()=>{}));else c.nk.error("未检测到更新")};return{item:(0,l.EW)((()=>e.item)),updater:o,updaterText:g,updaterColor:v,handleUpdate:w}}},w=a(1241);const k=(0,w.A)(v,[["render",u],["__scopeId","data-v-56d38c60"]]);var b=k}}]);
\ No newline at end of file
diff --git a/linker.tray.win/web/js/app.a12082c0.js b/linker.tray.win/web/js/app.900ae304.js
similarity index 97%
rename from linker.tray.win/web/js/app.a12082c0.js
rename to linker.tray.win/web/js/app.900ae304.js
index 64a82483..c6d7193c 100644
--- a/linker.tray.win/web/js/app.a12082c0.js
+++ b/linker.tray.win/web/js/app.900ae304.js
@@ -1 +1 @@
-(function(){"use strict";var e={8835:function(e,n,t){t.d(n,{P$:function(){return c},QI:function(){return u},ZK:function(){return s},ai:function(){return i},zj:function(){return r}});var o=t(4);const r=()=>(0,o.zG)("configclient/get"),i=e=>(0,o.zG)("configclient/install",e),c=e=>(0,o.zG)("configclient/export",e),u=e=>(0,o.zG)("configclient/GetAccesss",e),s=e=>(0,o.zG)("configclient/SetAccess",e)},4:function(e,n,t){t.d(n,{a1:function(){return v},e3:function(){return b},jH:function(){return w},zG:function(){return y}});t(4114),t(6573),t(8100),t(7936);var o=t(1219);let r=0,i=null,c="",u=1,s="";const a={},l={connected:!1,connecting:!1},d=()=>{const e=Date.now();for(let n in a){const t=a[n];e-t.time>t.timeout&&(t.reject("超时~"),delete a[n])}setTimeout(d,1e3)};d();const f={subs:{},add:function(e,n){"function"==typeof n&&(this.subs[e]||(this.subs[e]=[]),this.subs[e].push(n))},remove(e,n){let t=this.subs[e]||[];for(let o=t.length-1;o>=0;o--)t[o]==n&&t.splice(o,1)},push(e,n){let t=this.subs[e]||[];for(let o=t.length-1;o>=0;o--)t[o](n)}},p=()=>{l.connected=!0,l.connecting=!1,f.push(C,l.connected)},h=e=>{l.connected=!1,l.connecting=!1,f.push(C,l.connected),setTimeout((()=>{v()}),1e3)},g=e=>{if("string"!=typeof e.data)return void e.data.arrayBuffer().then((n=>{const t=new DataView(n).getInt8(),o=new FileReader;o.readAsText(e.data.slice(4,4+t),"utf8"),o.onload=()=>{let r=JSON.parse(o.result);r.Content={Name:r.Content,Img:e.data.slice(4+t,e.data.length),ArrayBuffer:n},m(r)}}));let n=JSON.parse(e.data);m(n)},m=e=>{let n=a[e.RequestId];n?(0==e.Code?n.resolve(e.Content):1==e.Code?n.reject(e.Content):255==e.Code?(n.reject(e.Content),n.errHandle||o.nk.error(`${n.path}:${e.Content}`)):f.push(e.Path,e.Content),delete a[e.RequestId]):f.push(e.Path,e.Content)},v=(e=c,n=s)=>{if(s=n,c=e,l.connecting||l.connected)return;null!=i&&i.close(),l.connecting=!0;const t=n||"snltty";i=new WebSocket(c,[t]),i.iddd=++u,i.onopen=p,i.onclose=h,i.onmessage=g},b=()=>{i&&i.close()},y=(e,n={},t=!1,o=15e3)=>new Promise(((c,u)=>{let s=++r;try{a[s]={resolve:c,reject:u,errHandle:t,path:e,time:Date.now(),timeout:o};let r=JSON.stringify({Path:e,RequestId:s,Content:"string"==typeof n?n:JSON.stringify(n)});l.connected&&1==i.readyState?i.send(r):u("网络错误~")}catch(d){console.log(d),u("网络错误~"),delete a[s]}})),C=Symbol(),w=e=>{f.add(C,e)}},9299:function(e,n,t){t.d(n,{BS:function(){return a},SZ:function(){return c},Se:function(){return l},VN:function(){return u},gC:function(){return d},jU:function(){return i},nD:function(){return s},rd:function(){return r}});var o=t(4);const r=e=>(0,o.zG)("signInclient/set",e),i=e=>(0,o.zG)("signInclient/setservers",e),c=()=>(0,o.zG)("signInclient/info"),u=e=>(0,o.zG)("signInclient/setorder",e),s=e=>(0,o.zG)("signInclient/List",e),a=e=>(0,o.zG)("signInclient/ids",e),l=e=>(0,o.zG)("signInclient/del",e),d=e=>(0,o.zG)("signInclient/setname",e)},8412:function(e,n,t){var o=t(5130),r=t(6768);function i(e,n,t,o,i,c){const u=(0,r.g2)("router-view"),s=(0,r.g2)("Api");return(0,r.uX)(),(0,r.CE)("div",null,[o.configed?((0,r.uX)(),(0,r.Wv)(u,{key:0})):(0,r.Q3)("",!0),(0,r.bF)(s)])}var c=t(3830);const u={class:"port-wrap t-c"},s={class:"pdt-10"};function a(e,n,t,o,i,c){const a=(0,r.g2)("el-input"),l=(0,r.g2)("el-button"),d=(0,r.g2)("el-dialog");return(0,r.uX)(),(0,r.Wv)(d,{class:"options-center",title:"管理接口","destroy-on-close":"",modelValue:o.showPort,"onUpdate:modelValue":n[2]||(n[2]=e=>o.showPort=e),center:"","show-close":!1,"close-on-click-modal":!1,"align-center":"",width:"200"},{footer:(0,r.k6)((()=>[(0,r.bF)(l,{type:"success",onClick:o.handleConnect1,plain:""},{default:(0,r.k6)((()=>[(0,r.eW)("确 定")])),_:1},8,["onClick"])])),default:(0,r.k6)((()=>[(0,r.Lk)("div",u,[(0,r.Lk)("div",null,[(0,r.eW)(" 接口 : "),(0,r.bF)(a,{modelValue:o.state.api,"onUpdate:modelValue":n[0]||(n[0]=e=>o.state.api=e),style:{width:"70%"}},null,8,["modelValue"])]),(0,r.Lk)("div",s,[(0,r.eW)(" 秘钥 : "),(0,r.bF)(a,{type:"password",modelValue:o.state.psd,"onUpdate:modelValue":n[1]||(n[1]=e=>o.state.psd=e),style:{width:"70%"}},null,8,["modelValue"])])])])),_:1},8,["modelValue"])}var l=t(1387),d=t(144),f=t(4),p=t(9299),h=t(8835),g=t(7477),m={components:{Tools:g.S0q},props:["config"],setup(e){const n=(0,c.B)(),t=(0,l.rd)(),o=(0,l.lq)(),i={api:`${window.location.hostname}:1803`,psd:"snltty"},u=JSON.parse(localStorage.getItem("api-cache")||JSON.stringify(i)),s=(0,d.Kh)({api:u.api,psd:u.psd,showPort:!1}),a=(0,r.EW)((()=>0==n.value.api.connected&&s.showPort)),g=()=>{u.api=s.api,u.psd=s.psd,localStorage.setItem("api-cache",JSON.stringify(u)),(0,f.e3)(),(0,f.a1)(`ws://${s.api}`,s.psd)},m=()=>{g(),window.location.reload()},v=()=>{(0,h.zj)().then((e=>{n.value.config.Common=e.Common,n.value.config.Client=e.Client,n.value.config.Server=e.Server,n.value.config.Running=e.Running,n.value.config.configed=!0,setTimeout((()=>{v()}),1e3)})).catch((e=>{setTimeout((()=>{v()}),1e3)}))},b=()=>{(0,p.SZ)().then((e=>{n.value.signin.Connected=e.Connected,n.value.signin.Connecting=e.Connecting,n.value.signin.Version=e.Version,setTimeout((()=>{b()}),1e3)})).catch((e=>{setTimeout((()=>{b()}),1e3)}))};return(0,r.sV)((()=>{setTimeout((()=>{s.showPort=!0}),500),(0,f.jH)((e=>{e&&(v(),b())})),t.isReady().then((()=>{s.api=o.query.api?`${window.location.hostname}:${o.query.api}`:s.api,s.psd=o.query.psd||s.psd,g()}))})),{state:s,showPort:a,handleConnect1:m}}},v=t(1241);const b=(0,v.A)(m,[["render",a],["__scopeId","data-v-787996d8"]]);var y=b,C={components:{Api:y},setup(e){const n=(0,c.v)(),t=(0,r.EW)((()=>n.value.config.configed));return{configed:t}}};const w=(0,v.A)(C,[["render",i]]);var S=w;const k=[{path:"/",name:"Full",component:()=>Promise.all([t.e(66),t.e(955)]).then(t.bind(t,2554)),redirect:"/full/index.html",children:[{path:"/full/index.html",name:"FullIndex",component:()=>Promise.all([t.e(201),t.e(727)]).then(t.bind(t,1346))},{path:"/full/settings.html",name:"FullSettings",component:()=>t.e(518).then(t.bind(t,4874))},{path:"/full/logger.html",name:"FullLogger",component:()=>t.e(23).then(t.bind(t,2023))}]},{path:"/net/index.html",name:"Network",component:()=>Promise.all([t.e(66),t.e(201),t.e(683)]).then(t.bind(t,737))},{path:"/no-permission.html",name:"NoPermission",component:()=>t.e(304).then(t.bind(t,8448))}],A=(0,l.aE)({history:(0,l.Bt)(),routes:k});var P=A,j=t(6161);t(4188),t(2355),t(1862);const O=(0,o.Ef)(S);O.use(j.A,{size:"default"}).use(P).mount("#app")},3830:function(e,n,t){t.d(n,{B:function(){return s},v:function(){return u}});var o=t(4),r=t(144),i=t(6768);const c=Symbol(),u=()=>{const e=(0,r.KR)({api:{connected:!1},height:0,config:{Common:{},Client:{Servers:[],Accesss:{}},Server:{},Running:{Relay:{Servers:[]},Tuntap:{IP:"",PrefixLength:24},Client:{Servers:[]},AutoSyncs:{}},configed:!1},signin:{Connected:!1,Connecting:!1,Version:"v1.0.0.0"},bufferSize:["1KB","2KB","4KB","8KB","16KB","32KB","64KB","128KB","256KB","512KB","1024KB"],updater:{},self:{},hasAccess(e){if(void 0==this.config.Client.Accesss[e])return!1;const n=this.config.Client.Accesss[e].Value||-1,t=this.config.Client.Access||-1;return t>=0&&(0==t||(t&n)>>>0==n)}});return(0,o.jH)((n=>{e.value.api.connected=n})),(0,i.Gt)(c,e),e},s=()=>(0,i.WQ)(c)}},n={};function t(o){var r=n[o];if(void 0!==r)return r.exports;var i=n[o]={exports:{}};return e[o].call(i.exports,i,i.exports,t),i.exports}t.m=e,function(){var e=[];t.O=function(n,o,r,i){if(!o){var c=1/0;for(l=0;l=i)&&Object.keys(t.O).every((function(e){return t.O[e](o[s])}))?o.splice(s--,1):(u=!1,i0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[o,r,i]}}(),function(){t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,{a:n}),n}}(),function(){t.d=function(e,n){for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}}(),function(){t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,o){return t.f[o](e,n),n}),[]))}}(),function(){t.u=function(e){return"js/"+e+"."+{23:"3a41093d",66:"bf480d21",201:"f944891d",304:"246f819e",518:"5de8bff9",683:"9033ca8d",727:"d7ae4b5c",955:"f756519a"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{23:"a3812855",304:"48acb9f2",518:"23bf4f34",683:"52f4f2af",727:"ff78edad",955:"94a8b1ce"}[e]+".css"}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){var e={},n="linker.web:";t.l=function(o,r,i,c){if(e[o])e[o].push(r);else{var u,s;if(void 0!==i)for(var a=document.getElementsByTagName("script"),l=0;l(0,o.zG)("configclient/get"),i=e=>(0,o.zG)("configclient/install",e),c=e=>(0,o.zG)("configclient/export",e),u=e=>(0,o.zG)("configclient/GetAccesss",e),s=e=>(0,o.zG)("configclient/SetAccess",e)},4:function(e,n,t){t.d(n,{a1:function(){return v},e3:function(){return b},jH:function(){return w},zG:function(){return y}});t(4114),t(6573),t(8100),t(7936);var o=t(1219);let r=0,i=null,c="",u=1,s="";const a={},l={connected:!1,connecting:!1},d=()=>{const e=Date.now();for(let n in a){const t=a[n];e-t.time>t.timeout&&(t.reject("超时~"),delete a[n])}setTimeout(d,1e3)};d();const f={subs:{},add:function(e,n){"function"==typeof n&&(this.subs[e]||(this.subs[e]=[]),this.subs[e].push(n))},remove(e,n){let t=this.subs[e]||[];for(let o=t.length-1;o>=0;o--)t[o]==n&&t.splice(o,1)},push(e,n){let t=this.subs[e]||[];for(let o=t.length-1;o>=0;o--)t[o](n)}},p=()=>{l.connected=!0,l.connecting=!1,f.push(C,l.connected)},h=e=>{l.connected=!1,l.connecting=!1,f.push(C,l.connected),setTimeout((()=>{v()}),1e3)},g=e=>{if("string"!=typeof e.data)return void e.data.arrayBuffer().then((n=>{const t=new DataView(n).getInt8(),o=new FileReader;o.readAsText(e.data.slice(4,4+t),"utf8"),o.onload=()=>{let r=JSON.parse(o.result);r.Content={Name:r.Content,Img:e.data.slice(4+t,e.data.length),ArrayBuffer:n},m(r)}}));let n=JSON.parse(e.data);m(n)},m=e=>{let n=a[e.RequestId];n?(0==e.Code?n.resolve(e.Content):1==e.Code?n.reject(e.Content):255==e.Code?(n.reject(e.Content),n.errHandle||o.nk.error(`${n.path}:${e.Content}`)):f.push(e.Path,e.Content),delete a[e.RequestId]):f.push(e.Path,e.Content)},v=(e=c,n=s)=>{if(s=n,c=e,l.connecting||l.connected)return;null!=i&&i.close(),l.connecting=!0;const t=n||"snltty";i=new WebSocket(c,[t]),i.iddd=++u,i.onopen=p,i.onclose=h,i.onmessage=g},b=()=>{i&&i.close()},y=(e,n={},t=!1,o=15e3)=>new Promise(((c,u)=>{let s=++r;try{a[s]={resolve:c,reject:u,errHandle:t,path:e,time:Date.now(),timeout:o};let r=JSON.stringify({Path:e,RequestId:s,Content:"string"==typeof n?n:JSON.stringify(n)});l.connected&&1==i.readyState?i.send(r):u("网络错误~")}catch(d){console.log(d),u("网络错误~"),delete a[s]}})),C=Symbol(),w=e=>{f.add(C,e)}},9299:function(e,n,t){t.d(n,{BS:function(){return a},SZ:function(){return c},Se:function(){return l},VN:function(){return u},gC:function(){return d},jU:function(){return i},nD:function(){return s},rd:function(){return r}});var o=t(4);const r=e=>(0,o.zG)("signInclient/set",e),i=e=>(0,o.zG)("signInclient/setservers",e),c=()=>(0,o.zG)("signInclient/info"),u=e=>(0,o.zG)("signInclient/setorder",e),s=e=>(0,o.zG)("signInclient/List",e),a=e=>(0,o.zG)("signInclient/ids",e),l=e=>(0,o.zG)("signInclient/del",e),d=e=>(0,o.zG)("signInclient/setname",e)},8412:function(e,n,t){var o=t(5130),r=t(6768);function i(e,n,t,o,i,c){const u=(0,r.g2)("router-view"),s=(0,r.g2)("Api");return(0,r.uX)(),(0,r.CE)("div",null,[o.configed?((0,r.uX)(),(0,r.Wv)(u,{key:0})):(0,r.Q3)("",!0),(0,r.bF)(s)])}var c=t(3830);const u={class:"port-wrap t-c"},s={class:"pdt-10"};function a(e,n,t,o,i,c){const a=(0,r.g2)("el-input"),l=(0,r.g2)("el-button"),d=(0,r.g2)("el-dialog");return(0,r.uX)(),(0,r.Wv)(d,{class:"options-center",title:"管理接口","destroy-on-close":"",modelValue:o.showPort,"onUpdate:modelValue":n[2]||(n[2]=e=>o.showPort=e),center:"","show-close":!1,"close-on-click-modal":!1,"align-center":"",width:"200"},{footer:(0,r.k6)((()=>[(0,r.bF)(l,{type:"success",onClick:o.handleConnect1,plain:""},{default:(0,r.k6)((()=>[(0,r.eW)("确 定")])),_:1},8,["onClick"])])),default:(0,r.k6)((()=>[(0,r.Lk)("div",u,[(0,r.Lk)("div",null,[(0,r.eW)(" 接口 : "),(0,r.bF)(a,{modelValue:o.state.api,"onUpdate:modelValue":n[0]||(n[0]=e=>o.state.api=e),style:{width:"70%"}},null,8,["modelValue"])]),(0,r.Lk)("div",s,[(0,r.eW)(" 秘钥 : "),(0,r.bF)(a,{type:"password",modelValue:o.state.psd,"onUpdate:modelValue":n[1]||(n[1]=e=>o.state.psd=e),style:{width:"70%"}},null,8,["modelValue"])])])])),_:1},8,["modelValue"])}var l=t(1387),d=t(144),f=t(4),p=t(9299),h=t(8835),g=t(7477),m={components:{Tools:g.S0q},props:["config"],setup(e){const n=(0,c.B)(),t=(0,l.rd)(),o=(0,l.lq)(),i={api:`${window.location.hostname}:1803`,psd:"snltty"},u=JSON.parse(localStorage.getItem("api-cache")||JSON.stringify(i)),s=(0,d.Kh)({api:u.api,psd:u.psd,showPort:!1}),a=(0,r.EW)((()=>0==n.value.api.connected&&s.showPort)),g=()=>{u.api=s.api,u.psd=s.psd,localStorage.setItem("api-cache",JSON.stringify(u)),(0,f.e3)(),(0,f.a1)(`ws://${s.api}`,s.psd)},m=()=>{g(),window.location.reload()},v=()=>{(0,h.zj)().then((e=>{n.value.config.Common=e.Common,n.value.config.Client=e.Client,n.value.config.Server=e.Server,n.value.config.Running=e.Running,n.value.config.configed=!0,setTimeout((()=>{v()}),1e3)})).catch((e=>{setTimeout((()=>{v()}),1e3)}))},b=()=>{(0,p.SZ)().then((e=>{n.value.signin.Connected=e.Connected,n.value.signin.Connecting=e.Connecting,n.value.signin.Version=e.Version,setTimeout((()=>{b()}),1e3)})).catch((e=>{setTimeout((()=>{b()}),1e3)}))};return(0,r.sV)((()=>{setTimeout((()=>{s.showPort=!0}),500),(0,f.jH)((e=>{e&&(v(),b())})),t.isReady().then((()=>{s.api=o.query.api?`${window.location.hostname}:${o.query.api}`:s.api,s.psd=o.query.psd||s.psd,g()}))})),{state:s,showPort:a,handleConnect1:m}}},v=t(1241);const b=(0,v.A)(m,[["render",a],["__scopeId","data-v-787996d8"]]);var y=b,C={components:{Api:y},setup(e){const n=(0,c.v)(),t=(0,r.EW)((()=>n.value.config.configed));return{configed:t}}};const w=(0,v.A)(C,[["render",i]]);var S=w;const k=[{path:"/",name:"Full",component:()=>Promise.all([t.e(66),t.e(955)]).then(t.bind(t,2554)),redirect:"/full/index.html",children:[{path:"/full/index.html",name:"FullIndex",component:()=>Promise.all([t.e(201),t.e(967)]).then(t.bind(t,7330))},{path:"/full/settings.html",name:"FullSettings",component:()=>t.e(518).then(t.bind(t,4874))},{path:"/full/logger.html",name:"FullLogger",component:()=>t.e(23).then(t.bind(t,2023))}]},{path:"/net/index.html",name:"Network",component:()=>Promise.all([t.e(66),t.e(201),t.e(683)]).then(t.bind(t,737))},{path:"/no-permission.html",name:"NoPermission",component:()=>t.e(304).then(t.bind(t,8448))}],A=(0,l.aE)({history:(0,l.Bt)(),routes:k});var P=A,j=t(6161);t(4188),t(2355),t(1862);const O=(0,o.Ef)(S);O.use(j.A,{size:"default"}).use(P).mount("#app")},3830:function(e,n,t){t.d(n,{B:function(){return s},v:function(){return u}});var o=t(4),r=t(144),i=t(6768);const c=Symbol(),u=()=>{const e=(0,r.KR)({api:{connected:!1},height:0,config:{Common:{},Client:{Servers:[],Accesss:{}},Server:{},Running:{Relay:{Servers:[]},Tuntap:{IP:"",PrefixLength:24},Client:{Servers:[]},AutoSyncs:{}},configed:!1},signin:{Connected:!1,Connecting:!1,Version:"v1.0.0.0"},bufferSize:["1KB","2KB","4KB","8KB","16KB","32KB","64KB","128KB","256KB","512KB","1024KB"],updater:{},self:{},hasAccess(e){if(void 0==this.config.Client.Accesss[e])return!1;const n=this.config.Client.Accesss[e].Value||-1,t=this.config.Client.Access||-1;return t>=0&&(0==t||(t&n)>>>0==n)}});return(0,o.jH)((n=>{e.value.api.connected=n})),(0,i.Gt)(c,e),e},s=()=>(0,i.WQ)(c)}},n={};function t(o){var r=n[o];if(void 0!==r)return r.exports;var i=n[o]={exports:{}};return e[o].call(i.exports,i,i.exports,t),i.exports}t.m=e,function(){var e=[];t.O=function(n,o,r,i){if(!o){var c=1/0;for(l=0;l=i)&&Object.keys(t.O).every((function(e){return t.O[e](o[s])}))?o.splice(s--,1):(u=!1,i0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[o,r,i]}}(),function(){t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,{a:n}),n}}(),function(){t.d=function(e,n){for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}}(),function(){t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,o){return t.f[o](e,n),n}),[]))}}(),function(){t.u=function(e){return"js/"+e+"."+{23:"3a41093d",66:"bf480d21",201:"f944891d",304:"246f819e",518:"5de8bff9",683:"9033ca8d",955:"f756519a",967:"bbfb8700"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{23:"a3812855",304:"48acb9f2",518:"23bf4f34",683:"52f4f2af",955:"94a8b1ce",967:"db32e0d8"}[e]+".css"}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){var e={},n="linker.web:";t.l=function(o,r,i,c){if(e[o])e[o].push(r);else{var u,s;if(void 0!==i)for(var a=document.getElementsByTagName("script"),l=0;lglobalData.value.config.Client.Accesss);
+ const myAccess = computed(()=>globalData.value.config.Client.Access);
const hasAccess = computed(()=>globalData.value.hasAccess('Access'));
const accessList = computed(()=>allAccess.value.list);
diff --git a/version.txt b/version.txt
index 3dd4d1da..ba638003 100644
--- a/version.txt
+++ b/version.txt
@@ -1,5 +1,5 @@
v1.3.1
-2024-09-11 15:51:24
+2024-09-11 16:24:26
1. 优化网卡(设备下线后路由指向错误)
2. 管理页面配置权限
3. 导出配置及指定节点配置权限