diff --git a/README.md b/README.md index 086d478c..074ae90a 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ - [x] 流量统计,统计服务器`信标`、`中继`、`内网穿透` 的流量情况 - [x] 网络配置,主客户端设置网络,所有客户端自动分配IP - [ ] 分布式,中继,内网穿透分布式,可实现负载均衡 +- [x] socks5代理,端口转发需要指定端口,而socks5代理可以代理所有端口 ## 界面预览 diff --git a/linker.doc.web/docs/1、首页.md b/linker.doc.web/docs/1、首页.md index a89c17b1..dba98bfa 100644 --- a/linker.doc.web/docs/1、首页.md +++ b/linker.doc.web/docs/1、首页.md @@ -21,6 +21,7 @@ sidebar_position: 1 - [x] 流量统计,统计服务器`信标`、`中继`、`内网穿透` 的流量情况 - [x] 网络配置,主客户端设置网络,所有客户端自动分配IP - [ ] 分布式,中继,内网穿透分布式,可实现负载均衡 +- [x] socks5代理,端口转发需要指定端口,而socks5代理可以代理所有端口 #### 1.2、加入组织 diff --git a/linker.doc.web/docs/4、通信功能/3.2、端口转发.md b/linker.doc.web/docs/4、通信功能/3.2、端口转发.md index d99977a6..3909be33 100644 --- a/linker.doc.web/docs/4、通信功能/3.2、端口转发.md +++ b/linker.doc.web/docs/4、通信功能/3.2、端口转发.md @@ -13,7 +13,7 @@ sidebar_position: 6 ## 1、配置端口转发 :::tip[说明] -1. 在 **非本机** 设备上配置 +1. 当你拥有配置权限时,你可以配置任意一台设备的端口转发 2. 关闭状态时,可双击栏目修改 3. 当 **监听端口** 为 **0** 时,启动,会随机本地端口 3. **目标服务**为目标设备上的服务,可以是目标设备本机的服务,也可以是目标设备局域网内的服务 diff --git a/linker.doc.web/docs/4、通信功能/3.3、socks5代理.md b/linker.doc.web/docs/4、通信功能/3.3、socks5代理.md new file mode 100644 index 00000000..4ff074d0 --- /dev/null +++ b/linker.doc.web/docs/4、通信功能/3.3、socks5代理.md @@ -0,0 +1,22 @@ +--- +sidebar_position: 7 +--- + +# 3.3、socks5代理 + +:::tip[说明] + +1. 相比于端口转发,socks5代理不需要指定端口,但是需要指定IP +2. socks5代理仅支持 TCP+UDP +::: + +## 1、配置IP + +:::tip[说明] +1. 访问端启动socks5,被访问端配置IP(被访问端可以不启动socks5) +2. 配置IP与虚拟网卡相似,目标端配置被访问的IP,让linker知道,当从socks5访问某个IP时,应该通过隧道转发到那个客户端 +3. 配置好后,你可以使用编程的方式通过socks5 去连接对端的`192.168.1.35/24`设备,或者配置系统代理 + +![Docusaurus Plushie](./img/socks51.png) +![Docusaurus Plushie](./img/socks52.png) +::: diff --git a/linker.doc.web/docs/4、通信功能/3.3、服务器穿透.md b/linker.doc.web/docs/4、通信功能/3.4、服务器穿透.md similarity index 91% rename from linker.doc.web/docs/4、通信功能/3.3、服务器穿透.md rename to linker.doc.web/docs/4、通信功能/3.4、服务器穿透.md index 096e27f1..2d50af0f 100644 --- a/linker.doc.web/docs/4、通信功能/3.3、服务器穿透.md +++ b/linker.doc.web/docs/4、通信功能/3.4、服务器穿透.md @@ -1,8 +1,8 @@ --- -sidebar_position: 7 +sidebar_position: 8 --- -# 3.3、服务器穿透 +# 3.4、服务器穿透 :::tip[说明] @@ -23,7 +23,7 @@ sidebar_position: 7 ## 2、配置端口转发 :::tip[说明] -1. 在`本机`,`端口转发`上配置 +1. 当你拥有管理权限时,你可以管理任意一台设备的内网穿透映射 2. 使用`WebPort`时,需要使用域名,比如我使用了`aaa.linker.snltty.com`,我已经将`*.linker.snltty.com`泛解析到我的服务器,那么通过`aaa.linker.snltty.com:8080`即可访问到我本机的`127.0.0.1:80` 3. 使用`TunnelPortRange`时,需要使用端口,比如我使用了`12345`,那么通过`服务器域名:12345`或者`服务器IP:12345`都可以访问到我本机的`127.0.0.1:80` diff --git a/linker.doc.web/docs/4、通信功能/img/forward1.png b/linker.doc.web/docs/4、通信功能/img/forward1.png index eb9db122..032522a8 100644 Binary files a/linker.doc.web/docs/4、通信功能/img/forward1.png and b/linker.doc.web/docs/4、通信功能/img/forward1.png differ diff --git a/linker.doc.web/docs/4、通信功能/img/forward2.png b/linker.doc.web/docs/4、通信功能/img/forward2.png index fa1ff0d0..1df69e0e 100644 Binary files a/linker.doc.web/docs/4、通信功能/img/forward2.png and b/linker.doc.web/docs/4、通信功能/img/forward2.png differ diff --git a/linker.doc.web/docs/4、通信功能/img/forward3.png b/linker.doc.web/docs/4、通信功能/img/forward3.png index 539c7a1b..d058f72c 100644 Binary files a/linker.doc.web/docs/4、通信功能/img/forward3.png and b/linker.doc.web/docs/4、通信功能/img/forward3.png differ diff --git a/linker.doc.web/docs/4、通信功能/img/sforward3.png b/linker.doc.web/docs/4、通信功能/img/sforward3.png index 46253650..3629af37 100644 Binary files a/linker.doc.web/docs/4、通信功能/img/sforward3.png and b/linker.doc.web/docs/4、通信功能/img/sforward3.png differ diff --git a/linker.doc.web/docs/4、通信功能/img/socks51.png b/linker.doc.web/docs/4、通信功能/img/socks51.png new file mode 100644 index 00000000..c9bfed56 Binary files /dev/null and b/linker.doc.web/docs/4、通信功能/img/socks51.png differ diff --git a/linker.doc.web/docs/4、通信功能/img/socks52.png b/linker.doc.web/docs/4、通信功能/img/socks52.png new file mode 100644 index 00000000..ed0e2bbd Binary files /dev/null and b/linker.doc.web/docs/4、通信功能/img/socks52.png differ diff --git a/linker.tray.win/default.aproj b/linker.tray.win/default.aproj index 6de574cc..f4aa62bb 100644 --- a/linker.tray.win/default.aproj +++ b/linker.tray.win/default.aproj @@ -1,5 +1,5 @@  - + diff --git a/linker.tray.win/dist/linker.tray.win.exe b/linker.tray.win/dist/linker.tray.win.exe index 42337f08..4d279931 100644 Binary files a/linker.tray.win/dist/linker.tray.win.exe and b/linker.tray.win/dist/linker.tray.win.exe differ diff --git a/linker.tray.win/web/css/398.4700dc6c.css b/linker.tray.win/web/css/330.b95319de.css similarity index 96% rename from linker.tray.win/web/css/398.4700dc6c.css rename to linker.tray.win/web/css/330.b95319de.css index 5bca6c69..8ca3bd77 100644 --- a/linker.tray.win/web/css/398.4700dc6c.css +++ b/linker.tray.win/web/css/330.b95319de.css @@ -1 +1 @@ -.dropdown[data-v-3647de7a]{border:1px solid #ddd;padding:.4rem;font-size:1.3rem;border-radius:.4rem;position:relative}.dropdown .el-icon[data-v-3647de7a]{vertical-align:middle}.dropdown .badge[data-v-3647de7a]{position:absolute;right:-1rem;top:-50%;border-radius:10px;background-color:#f1ae05;color:#fff;padding:.2rem .6rem;font-size:1.2rem}a[data-v-7f8b7c63]{color:#666;text-decoration:underline}a.green[data-v-7f8b7c63]{color:green;font-weight:700}a.download[data-v-7f8b7c63]{margin-left:.6rem}a.download .el-icon[data-v-7f8b7c63]{vertical-align:middle;font-weight:700;margin-left:.3rem}a.download .el-icon.loading[data-v-7f8b7c63]{animation:loading-7f8b7c63 1s linear infinite}@keyframes loading-7f8b7c63{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a[data-v-fb198804]{color:#666;text-decoration:underline}a.green[data-v-fb198804]{color:green;font-weight:700}img.system[data-v-fb198804]{height:1.6rem;vertical-align:middle;margin-right:.4rem}.ipaddress span[data-v-75cf840d]{vertical-align:middle}.el-input[data-v-75cf840d]{width:12rem;margin-right:.6rem}.el-col[data-v-5d52ca48]{text-align:left}.el-icon.loading[data-v-60496016],a.loading[data-v-60496016]{vertical-align:middle;font-weight:700;animation:loading-60496016 1s linear infinite}.el-switch.is-disabled[data-v-60496016]{opacity:1}.el-input[data-v-60496016]{width:8rem}.gateway[data-v-60496016]{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-60496016]{background:linear-gradient(90deg,#e4bb10,green,#e4bb10,green);-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}.delay[data-v-60496016]{position:absolute;right:0;bottom:0;line-height:normal}.switch-btn[data-v-60496016]{font-size:1.5rem}@keyframes loading-60496016{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-switch.is-disabled[data-v-50a6970e]{opacity:1}.upgrade-wrap[data-v-50a6970e]{border:1px solid #ddd;margin-bottom:2rem;padding:0 0 1rem 0}.el-switch.is-disabled[data-v-60d5fe5c]{opacity:1}.el-icon.loading[data-v-07cd655e],a.loading[data-v-07cd655e]{vertical-align:middle;font-weight:700;animation:loading-07cd655e 1s linear infinite}.el-switch.is-disabled[data-v-07cd655e]{opacity:1}.el-input[data-v-07cd655e]{width:8rem}.gateway[data-v-07cd655e]{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-07cd655e]{background:linear-gradient(90deg,#e4bb10,green,#e4bb10,green);-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}.switch-btn[data-v-07cd655e]{font-size:1.5rem}@keyframes loading-07cd655e{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-switch.is-disabled[data-v-5abfef9c]{opacity:1}.upgrade-wrap[data-v-5abfef9c]{border:1px solid #ddd;margin-bottom:2rem;padding:1rem 0 1rem 0}.lan-item[data-v-5abfef9c]{margin-bottom:0}.el-switch.is-disabled[data-v-d457c416]{opacity:1}.green[data-v-d457c416]{font-weight:700}.el-switch.is-disabled[data-v-1f7f67a4]{opacity:1}a[data-v-2977b9ac]{text-decoration:underline;font-weight:700}a+a[data-v-2977b9ac]{margin-left:1rem}.gateway[data-v-2977b9ac]{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-2977b9ac]{background:linear-gradient(90deg,#e4bb10,green,#e4bb10,green);-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}.head[data-v-15b05a01]{padding-bottom:1rem}.green[data-v-15b05a01]{color:green;font-weight:700}.error[data-v-15b05a01]{font-weight:700}.error .el-icon[data-v-15b05a01]{vertical-align:text-bottom}.head[data-v-583e3c84]{padding-bottom:1rem}.error[data-v-583e3c84]{font-weight:700}.error .el-icon[data-v-583e3c84]{vertical-align:text-bottom}.head[data-v-56e79745]{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-8ac55320]{border-bottom:0}.home-list-wrap[data-v-8ac55320]{padding:1rem}.home-list-wrap .page[data-v-8ac55320]{padding-top:1rem}.home-list-wrap .page-wrap[data-v-8ac55320]{display:inline-block} \ No newline at end of file +.dropdown[data-v-3647de7a]{border:1px solid #ddd;padding:.4rem;font-size:1.3rem;border-radius:.4rem;position:relative}.dropdown .el-icon[data-v-3647de7a]{vertical-align:middle}.dropdown .badge[data-v-3647de7a]{position:absolute;right:-1rem;top:-50%;border-radius:10px;background-color:#f1ae05;color:#fff;padding:.2rem .6rem;font-size:1.2rem}a[data-v-7f8b7c63]{color:#666;text-decoration:underline}a.green[data-v-7f8b7c63]{color:green;font-weight:700}a.download[data-v-7f8b7c63]{margin-left:.6rem}a.download .el-icon[data-v-7f8b7c63]{vertical-align:middle;font-weight:700;margin-left:.3rem}a.download .el-icon.loading[data-v-7f8b7c63]{animation:loading-7f8b7c63 1s linear infinite}@keyframes loading-7f8b7c63{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a[data-v-fb198804]{color:#666;text-decoration:underline}a.green[data-v-fb198804]{color:green;font-weight:700}img.system[data-v-fb198804]{height:1.6rem;vertical-align:middle;margin-right:.4rem}.ipaddress span[data-v-75cf840d]{vertical-align:middle}.el-input[data-v-75cf840d]{width:12rem;margin-right:.6rem}.el-col[data-v-5d52ca48]{text-align:left}.el-icon.loading[data-v-60496016],a.loading[data-v-60496016]{vertical-align:middle;font-weight:700;animation:loading-60496016 1s linear infinite}.el-switch.is-disabled[data-v-60496016]{opacity:1}.el-input[data-v-60496016]{width:8rem}.gateway[data-v-60496016]{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-60496016]{background:linear-gradient(90deg,#e4bb10,green,#e4bb10,green);-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}.delay[data-v-60496016]{position:absolute;right:0;bottom:0;line-height:normal}.switch-btn[data-v-60496016]{font-size:1.5rem}@keyframes loading-60496016{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-switch.is-disabled[data-v-50a6970e]{opacity:1}.upgrade-wrap[data-v-50a6970e]{border:1px solid #ddd;margin-bottom:2rem;padding:0 0 1rem 0}.el-switch.is-disabled[data-v-60d5fe5c]{opacity:1}.el-icon.loading[data-v-07cd655e],a.loading[data-v-07cd655e]{vertical-align:middle;font-weight:700;animation:loading-07cd655e 1s linear infinite}.el-switch.is-disabled[data-v-07cd655e]{opacity:1}.el-input[data-v-07cd655e]{width:8rem}.gateway[data-v-07cd655e]{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-07cd655e]{background:linear-gradient(90deg,#e4bb10,green,#e4bb10,green);-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}.switch-btn[data-v-07cd655e]{font-size:1.5rem}@keyframes loading-07cd655e{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-switch.is-disabled[data-v-5abfef9c]{opacity:1}.upgrade-wrap[data-v-5abfef9c]{border:1px solid #ddd;margin-bottom:2rem;padding:1rem 0 1rem 0}.lan-item[data-v-5abfef9c]{margin-bottom:0}.el-switch.is-disabled[data-v-d457c416]{opacity:1}.green[data-v-d457c416]{font-weight:700}.el-switch.is-disabled[data-v-1f7f67a4]{opacity:1}a[data-v-2977b9ac]{text-decoration:underline;font-weight:700}a+a[data-v-2977b9ac]{margin-left:1rem}.gateway[data-v-2977b9ac]{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-2977b9ac]{background:linear-gradient(90deg,#e4bb10,green,#e4bb10,green);-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}.head[data-v-15b05a01]{padding-bottom:1rem}.green[data-v-15b05a01]{color:green;font-weight:700}.error[data-v-15b05a01]{font-weight:700}.error .el-icon[data-v-15b05a01]{vertical-align:text-bottom}.head[data-v-219c690c]{padding-bottom:1rem}.error[data-v-219c690c]{font-weight:700}.error .el-icon[data-v-219c690c]{vertical-align:text-bottom}.head[data-v-56e79745]{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-8ac55320]{border-bottom:0}.home-list-wrap[data-v-8ac55320]{padding:1rem}.home-list-wrap .page[data-v-8ac55320]{padding-top:1rem}.home-list-wrap .page-wrap[data-v-8ac55320]{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 85c7d4b8..a298fe6b 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/330.cba1b6fa.js b/linker.tray.win/web/js/330.cba1b6fa.js new file mode 100644 index 00000000..8b088bb7 --- /dev/null +++ b/linker.tray.win/web/js/330.cba1b6fa.js @@ -0,0 +1 @@ +"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[330],{743:function(e,a,l){l.d(a,{Ap:function(){return n},Co:function(){return o},DY:function(){return u},Qs:function(){return i},a9:function(){return d},eX:function(){return c},gz:function(){return s},pY:function(){return r}});var t=l(4);const n=()=>(0,t.zG)("sforwardclient/GetSecretKey"),o=e=>(0,t.zG)("sforwardclient/SetSecretKey",e),r=e=>(0,t.zG)("sforwardclient/get",e),d=()=>(0,t.zG)("sforwardclient/refresh"),s=(e="0")=>(0,t.zG)("sforwardclient/getcount",e),u=e=>(0,t.zG)("sforwardclient/remove",e),i=e=>(0,t.zG)("sforwardclient/add",e),c=e=>(0,t.zG)("sforwardclient/TestLocal",e)},83:function(e,a,l){l.d(a,{$M:function(){return d},KW:function(){return r},gM:function(){return o},r7:function(){return n}});var t=l(4);const n=(e="0")=>(0,t.zG)("tunnel/get",e),o=()=>(0,t.zG)("tunnel/refresh"),r=e=>(0,t.zG)("tunnel/SetRouteLevel",e),d=e=>(0,t.zG)("tunnel/SetTransports",e)},2717:function(e,a,l){l.r(a),l.d(a,{default:function(){return Al}});var t=l(6768);const n={class:"home-list-wrap absolute"},o={class:"page t-c"},r={class:"page-wrap"};function d(e,a,l,d,s,u){const i=(0,t.g2)("el-table-column"),c=(0,t.g2)("el-table"),h=(0,t.g2)("Device"),m=(0,t.g2)("Tunnel"),p=(0,t.g2)("Tuntap"),g=(0,t.g2)("Socks5"),f=(0,t.g2)("Forward"),k=(0,t.g2)("Oper"),v=(0,t.g2)("el-pagination"),w=(0,t.g2)("DeviceEdit"),b=(0,t.g2)("AccessEdit"),F=(0,t.g2)("TunnelEdit"),C=(0,t.g2)("ConnectionsEdit"),L=(0,t.g2)("TuntapEdit"),E=(0,t.g2)("Socks5Edit"),_=(0,t.g2)("TuntapLease"),S=(0,t.g2)("ForwardEdit"),V=(0,t.g2)("SForwardEdit");return(0,t.uX)(),(0,t.CE)("div",n,[(0,t.bF)(c,{border:"",style:{width:"100%"},height:"32px",size:"small",onSortChange:d.handleSortChange,class:"table-sort"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{prop:"MachineId",label:"设备名",width:"110",sortable:"custom"}),(0,t.bF)(i,{prop:"Version",label:"版本",width:"110",sortable:"custom"}),(0,t.bF)(i,{prop:"tunnel",label:"网关",width:"70",sortable:"custom"}),(0,t.bF)(i,{prop:"tuntap",label:"网卡IP",width:"160",sortable:"custom"}),(0,t.bF)(i,{prop:"socks5",label:"代理转发",width:"160",sortable:"custom"}),(0,t.bF)(i,{prop:"forward",label:""}),(0,t.bF)(i,{label:"",width:"74",fixed:"right"})])),_:1},8,["onSortChange"]),(0,t.bF)(c,{data:d.devices.page.List,stripe:"",border:"",style:{width:"100%"},height:`${d.state.height}px`,size:"small"},{default:(0,t.k6)((()=>[(0,t.bF)(h,{onEdit:d.handleDeviceEdit,onRefresh:d.handlePageRefresh},null,8,["onEdit","onRefresh"]),(0,t.bF)(m,{onEdit:d.handleTunnelEdit,onRefresh:d.handleTunnelRefresh,onConnections:d.handleTunnelConnections},null,8,["onEdit","onRefresh","onConnections"]),(0,t.bF)(p,{onEdit:d.handleTuntapEdit,onRefresh:d.handleTuntapRefresh},null,8,["onEdit","onRefresh"]),(0,t.bF)(g,{onEdit:d.handleSocks5Edit,onRefresh:d.handleSocks5Refresh},null,8,["onEdit","onRefresh"]),(0,t.bF)(f,{onEdit:d.handleForwardEdit,onSedit:d.handleSForwardEdit},null,8,["onEdit","onSedit"]),(0,t.bF)(k,{onRefresh:d.handlePageRefresh,onAccess:d.handleAccessEdit},null,8,["onRefresh","onAccess"])])),_:1},8,["data","height"]),(0,t.Lk)("div",o,[(0,t.Lk)("div",r,[(0,t.bF)(v,{small:"",background:"",layout:"total,sizes,prev,pager, next",total:d.devices.page.Count,"page-size":d.devices.page.Request.Size,"current-page":d.devices.page.Request.Page,onCurrentChange:d.handlePageChange,onSizeChange:d.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])]),d.devices.showDeviceEdit?((0,t.uX)(),(0,t.Wv)(w,{key:0,modelValue:d.devices.showDeviceEdit,"onUpdate:modelValue":a[0]||(a[0]=e=>d.devices.showDeviceEdit=e),onChange:d.handlePageChange,data:d.devices.deviceInfo},null,8,["modelValue","onChange","data"])):(0,t.Q3)("",!0),d.devices.showAccessEdit?((0,t.uX)(),(0,t.Wv)(b,{key:1,modelValue:d.devices.showAccessEdit,"onUpdate:modelValue":a[1]||(a[1]=e=>d.devices.showAccessEdit=e),onChange:d.handlePageChange,data:d.devices.deviceInfo},null,8,["modelValue","onChange","data"])):(0,t.Q3)("",!0),d.tunnel.showEdit?((0,t.uX)(),(0,t.Wv)(F,{key:2,modelValue:d.tunnel.showEdit,"onUpdate:modelValue":a[2]||(a[2]=e=>d.tunnel.showEdit=e),onChange:d.handleTunnelRefresh},null,8,["modelValue","onChange"])):(0,t.Q3)("",!0),d.connections.showEdit?((0,t.uX)(),(0,t.Wv)(C,{key:3,modelValue:d.connections.showEdit,"onUpdate:modelValue":a[3]||(a[3]=e=>d.connections.showEdit=e)},null,8,["modelValue"])):(0,t.Q3)("",!0),d.tuntap.showEdit?((0,t.uX)(),(0,t.Wv)(L,{key:4,modelValue:d.tuntap.showEdit,"onUpdate:modelValue":a[4]||(a[4]=e=>d.tuntap.showEdit=e),onChange:d.handleTuntapRefresh},null,8,["modelValue","onChange"])):(0,t.Q3)("",!0),d.socks5.showEdit?((0,t.uX)(),(0,t.Wv)(E,{key:5,modelValue:d.socks5.showEdit,"onUpdate:modelValue":a[5]||(a[5]=e=>d.socks5.showEdit=e),onChange:d.handleSocks5Refresh},null,8,["modelValue","onChange"])):(0,t.Q3)("",!0),d.tuntap.showLease?((0,t.uX)(),(0,t.Wv)(_,{key:6,modelValue:d.tuntap.showLease,"onUpdate:modelValue":a[6]||(a[6]=e=>d.tuntap.showLease=e),onChange:d.handleTuntapRefresh},null,8,["modelValue","onChange"])):(0,t.Q3)("",!0),d.forward.showEdit?((0,t.uX)(),(0,t.Wv)(S,{key:7,modelValue:d.forward.showEdit,"onUpdate:modelValue":a[7]||(a[7]=e=>d.forward.showEdit=e)},null,8,["modelValue"])):(0,t.Q3)("",!0),d.sforward.showEdit?((0,t.uX)(),(0,t.Wv)(V,{key:8,modelValue:d.sforward.showEdit,"onUpdate:modelValue":a[8]||(a[8]=e=>d.sforward.showEdit=e)},null,8,["modelValue"])):(0,t.Q3)("",!0)])}l(4114);var s=l(3830),u=l(144),i=l(1219);const c=e=>((0,t.Qi)("data-v-3647de7a"),e=e(),(0,t.jt)(),e),h={class:"dropdown"},m=c((()=>(0,t.Lk)("span",null,"操作",-1)));function p(e,a,l,n,o,r){const d=(0,t.g2)("ArrowDown"),s=(0,t.g2)("el-icon"),u=(0,t.g2)("SwitchButton"),i=(0,t.g2)("el-dropdown-item"),c=(0,t.g2)("Delete"),p=(0,t.g2)("Flag"),g=(0,t.g2)("el-dropdown-menu"),f=(0,t.g2)("el-dropdown"),k=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(k,{label:"操作",width:"74",fixed:"right"},{default:(0,t.k6)((e=>[(0,t.bF)(f,{size:"small"},{dropdown:(0,t.k6)((()=>[(0,t.bF)(g,null,{default:(0,t.k6)((()=>[e.row.showReboot&&n.hasReboot?((0,t.uX)(),(0,t.Wv)(i,{key:0,onClick:a=>n.handleExit(e.row.MachineId,e.row.MachineName)},{default:(0,t.k6)((()=>[(0,t.bF)(s,null,{default:(0,t.k6)((()=>[(0,t.bF)(u)])),_:1}),(0,t.eW)(" 重启")])),_:2},1032,["onClick"])):(0,t.Q3)("",!0),e.row.showDel&&n.hasRemove?((0,t.uX)(),(0,t.Wv)(i,{key:1,onClick:a=>n.handleDel(e.row.MachineId,e.row.MachineName)},{default:(0,t.k6)((()=>[(0,t.bF)(s,null,{default:(0,t.k6)((()=>[(0,t.bF)(c)])),_:1}),(0,t.eW)(" 删除")])),_:2},1032,["onClick"])):(0,t.Q3)("",!0),n.handleShowAccess(e.row,n.accessList[e.row.MachineId]||0)?((0,t.uX)(),(0,t.Wv)(i,{key:2,onClick:a=>n.handleAccess(e.row)},{default:(0,t.k6)((()=>[(0,t.bF)(s,null,{default:(0,t.k6)((()=>[(0,t.bF)(p)])),_:1}),(0,t.eW)(" 权限")])),_:2},1032,["onClick"])):(0,t.Q3)("",!0)])),_:2},1024)])),default:(0,t.k6)((()=>[(0,t.Lk)("div",h,[m,(0,t.bF)(s,{class:"el-icon--right"},{default:(0,t.k6)((()=>[(0,t.bF)(d)])),_:1})])])),_:2},1024)])),_:1})}var g=l(9299),f=l(920),k=l(7477),v=l(2933),w=l(5962),b={emits:["refresh","access"],components:{Delete:k.epd,SwitchButton:k.L$q,ArrowDown:k.yd$,Flag:k.lNU},setup(e,{emit:a}){const l=(0,s.B)(),n=(0,w.q)(),o=(0,t.EW)((()=>l.value.config.Client.Access)),r=(0,t.EW)((()=>l.value.hasAccess("Access"))),d=(0,t.EW)((()=>n.value.list)),u=(0,t.EW)((()=>l.value.hasAccess("Reboot"))),i=(0,t.EW)((()=>l.value.hasAccess("Remove"))),c=(e,l)=>{v.s.confirm(`确认删除[${l}]?`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,g.Se)(e).then((()=>{a("refresh")}))})).catch((()=>{}))},h=(e,l)=>{v.s.confirm(`确认关闭[${l}]?`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,f.NS)(e).then((()=>{a("refresh")}))})).catch((()=>{}))},m=(e,a)=>e.showAccess&&r.value&&a>=0&&0==+(~BigInt(o.value)&BigInt(a)).toString(),p=e=>{a("access",e)};return{accessList:d,handleDel:c,handleExit:h,hasReboot:u,hasRemove:i,hasAccess:r,handleShowAccess:m,handleAccess:p}}},F=l(1241);const C=(0,F.A)(b,[["render",p],["__scopeId","data-v-3647de7a"]]);var L=C,E=l(4232);const _=e=>((0,t.Qi)("data-v-75cf840d"),e=e(),(0,t.jt)(),e),S={class:"flex"},V=_((()=>(0,t.Lk)("span",{class:"flex-1"},"设备",-1))),P={class:"flex"},I=["onClick"],y=["onClick"],T=_((()=>(0,t.Lk)("span",null,"😴㊙.㊙.㊙.㊙",-1))),R=[T],M=_((()=>(0,t.Lk)("span",{class:"flex-1"},null,-1)));function W(e,a,l,n,o,r){const d=(0,t.g2)("el-input"),s=(0,t.g2)("Search"),u=(0,t.g2)("el-icon"),i=(0,t.g2)("el-button"),c=(0,t.g2)("DeviceName"),h=(0,t.g2)("UpdaterBtn"),m=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(m,{prop:"MachineId",label:"设备",width:"220"},{header:(0,t.k6)((()=>[(0,t.Lk)("div",S,[V,(0,t.Lk)("span",null,[(0,t.bF)(d,{size:"small",modelValue:n.name,"onUpdate:modelValue":a[0]||(a[0]=e=>n.name=e),clearable:"",onInput:n.handleRefresh,placeholder:"设备/虚拟网卡/端口转发"},null,8,["modelValue","onInput"])]),(0,t.Lk)("span",null,[(0,t.bF)(i,{size:"small",onClick:n.handleRefresh},{default:(0,t.k6)((()=>[(0,t.bF)(u,null,{default:(0,t.k6)((()=>[(0,t.bF)(s)])),_:1})])),_:1},8,["onClick"])])])])),default:(0,t.k6)((e=>[(0,t.Lk)("div",null,[(0,t.Lk)("p",null,[(0,t.bF)(c,{onEdit:n.handleEdit,config:!0,item:e.row},null,8,["onEdit","item"])]),(0,t.Lk)("p",P,[e.row.showip?((0,t.uX)(),(0,t.CE)("span",{key:0,title:"此设备的外网IP",class:"ipaddress",onClick:a=>n.handleExternal(e.row)},[(0,t.Lk)("span",null,"😀"+(0,E.v_)(e.row.IP),1)],8,I)):((0,t.uX)(),(0,t.CE)("span",{key:1,title:"此设备的外网IP",class:"ipaddress",onClick:a=>n.handleExternal(e.row)},R,8,y)),M,(0,t.bF)(h,{config:!0,item:e.row},null,8,["item"])])])])),_:1})}var A=l(4831),B=l(8179),z={emits:["edit","refresh"],components:{Search:k.vji,UpdaterBtn:A.A,DeviceName:B.A},setup(e,{emit:a}){const l=(0,s.B)(),n=(0,t.EW)((()=>l.value.hasAccess("ExternalShow"))),o=(0,u.KR)(sessionStorage.getItem("search-name")||""),r=e=>{n.value&&(e.showip=!e.showip)},d=e=>{a("edit",e)},i=()=>{sessionStorage.setItem("search-name",o.value),a("refresh",o.value)};return{handleEdit:d,handleRefresh:i,name:o,handleExternal:r}}};const N=(0,F.A)(z,[["render",W],["__scopeId","data-v-75cf840d"]]);var x=N;const X=(0,t.Lk)("div",null,"修改后最好能重启一次客户端",-1),U={class:"t-c w-100"};function D(e,a,l,n,o,r){const d=(0,t.g2)("el-form-item"),s=(0,t.g2)("el-input"),u=(0,t.g2)("el-button"),i=(0,t.g2)("el-form"),c=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(c,{modelValue:n.state.show,"onUpdate:modelValue":a[2]||(a[2]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.ruleForm.MachineName}]设备`,width:"300"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(i,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"auto"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{label:""},{default:(0,t.k6)((()=>[X])),_:1}),(0,t.bF)(d,{label:"设备名",prop:"MachineName"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{maxlength:"12","show-word-limit":"",modelValue:n.state.ruleForm.MachineName,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.ruleForm.MachineName=e)},null,8,["modelValue"])])),_:1}),(0,t.bF)(d,{label:"",prop:"Btns"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",U,[(0,t.bF)(u,{onClick:a[1]||(a[1]=e=>n.state.show=!1)},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1}),(0,t.bF)(u,{type:"primary",onClick:n.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var K={props:["data","modelValue"],emits:["change","update:modelValue"],setup(e,{emit:a}){const l=(0,u.KR)(null),n=(0,u.Kh)({show:!0,ruleForm:{MachineName1:e.data.MachineName,MachineName:e.data.MachineName},rules:{}});(0,t.wB)((()=>n.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const o=()=>{e.data.MachineName!=n.ruleForm.MachineName&&(0,g.gC)({Id:e.data.MachineId,newName:n.ruleForm.MachineName}).then((()=>{n.show=!1,i.nk.success("已操作!"),a("change")})).catch((()=>{i.nk.error("操作失败!")}))};return{state:n,ruleFormRef:l,handleSave:o}}};const G=(0,F.A)(K,[["render",D]]);var Q=G,O=l(7985);function q(e,a,l,n,o,r){const d=(0,t.g2)("Access"),s=(0,t.g2)("el-button"),u=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(u,{modelValue:n.state.show,"onUpdate:modelValue":a[1]||(a[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,t.k6)((()=>[(0,t.bF)(s,{plain:"",onClick:a[0]||(a[0]=e=>n.state.show=!1),loading:n.state.loading},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1},8,["loading"]),(0,t.bF)(s,{type:"success",plain:"",onClick:n.handleSave,loading:n.state.loading},{default:(0,t.k6)((()=>[(0,t.eW)("确定保存")])),_:1},8,["onClick","loading"])])),default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(d,{machineid:n.machineid,ref:"accessDom"},null,8,["machineid"])])])),_:1},8,["modelValue","title"])}var $=l(3363),j=l(9593),H={props:["data","modelValue"],emits:["change","update:modelValue"],components:{Access:j.A},setup(e,{emit:a}){const l=(0,u.Kh)({show:!0,loading:!1});(0,t.wB)((()=>l.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const n=(0,u.KR)(null),o=()=>{l.loading=!0,(0,$.ZK)({ToMachineId:e.data.MachineId,Access:n.value.getValue()}).then((()=>{l.loading=!1,l.show=!1,i.nk.success("已操作!"),a("change")})).catch((()=>{l.loading=!1,i.nk.error("操作失败!")}))};return{machineName:e.data.MachineName,machineid:e.data.MachineId,state:l,accessDom:n,handleSave:o}}};const J=(0,F.A)(H,[["render",q]]);var Y=J;const Z={key:0};function ee(e,a,l,n,o,r){const d=(0,t.g2)("TuntapShow"),s=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(s,{prop:"tuntap",label:"虚拟网卡",width:"160"},{header:(0,t.k6)((()=>[(0,t.Lk)("a",{href:"javascript:;",class:"a-line",onClick:a[0]||(a[0]=(...e)=>n.handleShowLease&&n.handleShowLease(...e))},"虚拟网卡")])),default:(0,t.k6)((e=>[n.tuntap.list[e.row.MachineId]?((0,t.uX)(),(0,t.CE)("div",Z,[(0,t.bF)(d,{config:!0,item:e.row,onEdit:n.handleTuntapIP,onRefresh:n.handleTuntapRefresh},null,8,["item","onEdit","onRefresh"])])):(0,t.Q3)("",!0)])),_:1})}var ae=l(8104),le=l(5547),te={emits:["edit","refresh"],components:{TuntapShow:le.A},setup(e,{emit:a}){const l=(0,ae.W)(),t=e=>{a("edit",e)},n=()=>{a("refresh")},o=()=>{l.value.showLease=!0};return{tuntap:l,handleTuntapIP:t,handleTuntapRefresh:n,handleShowLease:o}}};const ne=(0,F.A)(te,[["render",ee]]);var oe=ne;const re=e=>((0,t.Qi)("data-v-50a6970e"),e=e(),(0,t.jt)(),e),de=re((()=>(0,t.Lk)("span",null,"/",-1))),se=re((()=>(0,t.Lk)("span",{style:{width:"2rem"}},null,-1))),ue={key:0,class:"upgrade-wrap"},ie=re((()=>(0,t.Lk)("span",{class:"yellow"},"此设备能使用NAT转发,只需局域网IP,剩下的交给NAT(linux、macos、win10+)",-1))),ce={class:"flex-1"},he=re((()=>(0,t.Lk)("span",null,"/",-1))),me={class:"pdl-10"},pe={class:"pdl-10"},ge=re((()=>(0,t.Lk)("span",{class:"yellow"},"此设备无法使用NAT转发,或只想使用端口转发",-1))),fe={class:"flex-1"},ke={class:"pdl-10"};function ve(e,a,l,n,o,r){const d=(0,t.g2)("el-form-item"),s=(0,t.g2)("el-input"),u=(0,t.g2)("el-checkbox"),i=(0,t.g2)("Delete"),c=(0,t.g2)("el-icon"),h=(0,t.g2)("el-button"),m=(0,t.g2)("Plus"),p=(0,t.g2)("el-form"),g=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(g,{modelValue:n.state.show,"onUpdate:modelValue":a[7]||(a[7]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.machineName}]组网`,top:"1vh",width:"700"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(p,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"140"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{prop:"gateway",style:{"margin-bottom":"0"}},{default:(0,t.k6)((()=>[(0,t.eW)(" 赐予此设备IP,其它设备可通过此IP访问 ")])),_:1}),(0,t.bF)(d,{label:"此设备的虚拟网卡IP",prop:"IP"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{modelValue:n.state.ruleForm.IP,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.ruleForm.IP=e),style:{width:"14rem"}},null,8,["modelValue"]),de,(0,t.bF)(s,{onChange:n.handlePrefixLengthChange,modelValue:n.state.ruleForm.PrefixLength,"onUpdate:modelValue":a[1]||(a[1]=e=>n.state.ruleForm.PrefixLength=e),style:{width:"4rem"}},null,8,["onChange","modelValue"]),se,(0,t.bF)(u,{modelValue:n.state.ruleForm.ShowDelay,"onUpdate:modelValue":a[2]||(a[2]=e=>n.state.ruleForm.ShowDelay=e),label:"显示延迟",size:"large",style:{"margin-right":"1rem"}},null,8,["modelValue"]),(0,t.bF)(u,{modelValue:n.state.ruleForm.AutoConnect,"onUpdate:modelValue":a[3]||(a[3]=e=>n.state.ruleForm.AutoConnect=e),label:"自动连接",size:"large",style:{"margin-right":"1rem"}},null,8,["modelValue"]),(0,t.bF)(u,{modelValue:n.state.ruleForm.Multicast,"onUpdate:modelValue":a[4]||(a[4]=e=>n.state.ruleForm.Multicast=e),label:"禁用UDP广播",size:"large"},null,8,["modelValue"])])),_:1}),(0,t.bF)(d,{prop:"upgrade",style:{"margin-bottom":"0"}},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:n.state.ruleForm.Upgrade,"onUpdate:modelValue":a[5]||(a[5]=e=>n.state.ruleForm.Upgrade=e),label:"我很懂,我要使用高级功能(点对网和网对网)",size:"large"},null,8,["modelValue"])])),_:1}),n.state.ruleForm.Upgrade?((0,t.uX)(),(0,t.CE)("div",ue,[(0,t.bF)(d,{prop:"nat",style:{"margin-bottom":"0"}},{default:(0,t.k6)((()=>[ie])),_:1}),(0,t.bF)(d,{label:"此设备局域网IP",prop:"LanIP",style:{"border-bottom":"1px solid #ddd","margin-bottom":"0"}},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.ruleForm.Lans,((e,a)=>((0,t.uX)(),(0,t.CE)("div",{key:a,class:"flex",style:{"margin-bottom":".6rem"}},[(0,t.Lk)("div",ce,[(0,t.bF)(s,{modelValue:e.IP,"onUpdate:modelValue":a=>e.IP=a,style:{width:"14rem"}},null,8,["modelValue","onUpdate:modelValue"]),he,(0,t.bF)(s,{onChange:e=>n.handleMaskChange(a),modelValue:e.PrefixLength,"onUpdate:modelValue":a=>e.PrefixLength=a,style:{width:"4rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"])]),(0,t.Lk)("div",me,[(0,t.bF)(u,{modelValue:e.Disabled,"onUpdate:modelValue":a=>e.Disabled=a,label:"禁用记录",size:"large"},null,8,["modelValue","onUpdate:modelValue"])]),(0,t.Lk)("div",pe,[(0,t.bF)(h,{type:"danger",onClick:e=>n.handleDel(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1})])),_:2},1032,["onClick"]),(0,t.bF)(h,{type:"primary",onClick:e=>n.handleAdd(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(m)])),_:1})])),_:2},1032,["onClick"])])])))),128))])),_:1}),(0,t.bF)(d,{prop:"forward",style:{"margin-bottom":"0"}},{default:(0,t.k6)((()=>[ge])),_:1}),(0,t.bF)(d,{label:"端口转发",prop:"forwards"},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.ruleForm.Forwards,((e,a)=>((0,t.uX)(),(0,t.CE)("div",{key:a,class:"flex",style:{"margin-bottom":".6rem"}},[(0,t.Lk)("div",fe,[(0,t.bF)(s,{modelValue:e.ListenAddr,"onUpdate:modelValue":a=>e.ListenAddr=a,style:{width:"7rem"},readonly:""},null,8,["modelValue","onUpdate:modelValue"]),(0,t.eW)(" : "),(0,t.bF)(s,{onChange:e=>n.handleForwardChange(a),modelValue:e.ListenPort,"onUpdate:modelValue":a=>e.ListenPort=a,style:{width:"6rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"]),(0,t.eW)(" -> "),(0,t.bF)(s,{modelValue:e.ConnectAddr,"onUpdate:modelValue":a=>e.ConnectAddr=a,style:{width:"14rem"}},null,8,["modelValue","onUpdate:modelValue"]),(0,t.eW)(" : "),(0,t.bF)(s,{onChange:e=>n.handleForwardChange(a),modelValue:e.ConnectPort,"onUpdate:modelValue":a=>e.ConnectPort=a,style:{width:"6rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"])]),(0,t.Lk)("div",ke,[(0,t.bF)(h,{type:"danger",onClick:e=>n.handleDelForward(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1})])),_:2},1032,["onClick"]),(0,t.bF)(h,{type:"primary",onClick:e=>n.handleAddForward(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(m)])),_:1})])),_:2},1032,["onClick"])])])))),128))])),_:1})])):(0,t.Q3)("",!0),(0,t.bF)(d,{label:"",prop:"Btns"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(h,{onClick:a[6]||(a[6]=e=>n.state.show=!1)},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1}),(0,t.bF)(h,{type:"primary",onClick:n.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var we=l(5241),be={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:k.epd,Plus:k.FWt},setup(e,{emit:a}){const l=(0,s.B)(),n=(0,ae.W)(),o=(0,u.KR)(null),r=(0,u.Kh)({show:!0,machineName:n.value.current.device.MachineName,bufferSize:l.value.bufferSize,ruleForm:{IP:n.value.current.IP,Lans:n.value.current.Lans.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,Multicast:n.value.current.Multicast,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.Lans.length&&r.ruleForm.Lans.push({IP:"0.0.0.0",PrefixLength:24}),(0,t.wB)((()=>r.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const d=()=>{var e=+r.ruleForm.PrefixLength;(e>32||e<16||isNaN(e))&&(e=24),r.ruleForm.PrefixLength=e},c=e=>{var a=+r.ruleForm.Lans[e].PrefixLength;(a>32||a<16||isNaN(a))&&(a=24),r.ruleForm.Lans[e].PrefixLength=a},h=e=>{r.ruleForm.Lans.splice(e,1),0==r.ruleForm.Lans.length&&m(0)},m=e=>{r.ruleForm.Lans.splice(e+1,0,{IP:"0.0.0.0",PrefixLength:24})},p=()=>{const e=JSON.parse(JSON.stringify(n.value.current));e.IP=r.ruleForm.IP||"0.0.0.0",e.Lans=r.ruleForm.Lans.map((e=>(e.PrefixLength=+e.PrefixLength,e))),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.Multicast=r.ruleForm.Multicast,e.Forwards=r.ruleForm.Forwards,e.Forwards.forEach((e=>{e.ListenPort=+e.ListenPort,e.ConnectPort=+e.ConnectPort})),(0,we.ac)(e).then((()=>{r.show=!1,i.nk.success("已操作!"),a("change")})).catch((()=>{i.nk.error("操作失败!")}))},g=e=>{r.ruleForm.Forwards.splice(e,1),0==r.ruleForm.Forwards.length&&f(0)},f=e=>{r.ruleForm.Forwards.splice(e+1,0,{ListenAddr:"0.0.0.0",ListenPort:0,ConnectAddr:"0.0.0.0",ConnectPort:0})},k=()=>{};return{state:r,ruleFormRef:o,handlePrefixLengthChange:d,handleMaskChange:c,handleDel:h,handleAdd:m,handleSave:p,handleForwardChange:k,handleDelForward:g,handleAddForward:f}}};const Fe=(0,F.A)(be,[["render",ve],["__scopeId","data-v-50a6970e"]]);var Ce=Fe;const Le=e=>((0,t.Qi)("data-v-60d5fe5c"),e=e(),(0,t.jt)(),e),Ee=Le((()=>(0,t.Lk)("p",null,"网络租期30天、IP租期7天",-1))),_e=Le((()=>(0,t.Lk)("span",null,"/",-1))),Se=Le((()=>(0,t.Lk)("span",{style:{width:"1rem"}},null,-1)));function Ve(e,a,l,n,o,r){const d=(0,t.g2)("el-form-item"),s=(0,t.g2)("el-input"),u=(0,t.g2)("el-button"),i=(0,t.g2)("el-form"),c=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(c,{modelValue:n.state.show,"onUpdate:modelValue":a[3]||(a[3]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:"配置本组的网络",top:"1vh",width:"400"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(i,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"100"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{prop:"gateway"},{default:(0,t.k6)((()=>[Ee])),_:1}),(0,t.bF)(d,{label:"网络和掩码",prop:"IP"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{modelValue:n.state.ruleForm.IP,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.ruleForm.IP=e),style:{width:"14rem"}},null,8,["modelValue"]),_e,(0,t.bF)(s,{onChange:n.handlePrefixLengthChange,modelValue:n.state.ruleForm.PrefixLength,"onUpdate:modelValue":a[1]||(a[1]=e=>n.state.ruleForm.PrefixLength=e),style:{width:"4rem"}},null,8,["onChange","modelValue"]),Se,(0,t.bF)(u,{onClick:n.handleClear},{default:(0,t.k6)((()=>[(0,t.eW)("清除")])),_:1},8,["onClick"])])),_:1}),n.hasLease?((0,t.uX)(),(0,t.Wv)(d,{key:0,label:"",prop:"Btns"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(u,{onClick:a[2]||(a[2]=e=>n.state.show=!1)},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1}),(0,t.bF)(u,{type:"primary",onClick:n.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("确认")])),_:1},8,["onClick"])])])),_:1})):(0,t.Q3)("",!0)])),_:1},8,["model","rules"])])])),_:1},8,["modelValue"])}var Pe={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:k.epd,Plus:k.FWt},setup(e,{emit:a}){const l=(0,s.B)(),n=(0,t.EW)((()=>l.value.hasAccess("Lease"))),o=(0,u.KR)(null),r=(0,u.Kh)({show:!0,ruleForm:{IP:"0.0.0.0",PrefixLength:24},rules:{}});(0,t.wB)((()=>r.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const d=()=>{(0,we.Nj)().then((e=>{r.ruleForm.IP=e.IP,r.ruleForm.PrefixLength=e.PrefixLength}))},c=()=>{var e=+r.ruleForm.PrefixLength;(e>32||e<16||isNaN(e))&&(e=24),r.ruleForm.PrefixLength=e},h=()=>{(0,we.AE)(r.ruleForm).then((()=>{i.nk.success("已操作"),r.show=!1})).catch((()=>{i.nk.error("操作失败")}))},m=()=>{(0,we.AE)({IP:"0.0.0.0",PrefixLength:24}).then((()=>{i.nk.success("已操作"),d()})).catch((()=>{i.nk.error("操作失败")}))};return(0,t.sV)((()=>{d()})),{state:r,hasLease:n,ruleFormRef:o,handleSave:h,handlePrefixLengthChange:c,handleClear:m}}};const Ie=(0,F.A)(Pe,[["render",Ve],["__scopeId","data-v-60d5fe5c"]]);var ye=Ie;const Te={key:0};function Re(e,a,l,n,o,r){const d=(0,t.g2)("Socks5Show"),s=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(s,{prop:"socks5",label:"代理转发",width:"160"},{default:(0,t.k6)((e=>[n.socks5.list[e.row.MachineId]?((0,t.uX)(),(0,t.CE)("div",Te,[(0,t.bF)(d,{config:!0,item:e.row,onEdit:n.handleSocks5,onRefresh:n.handleSocks5Refresh},null,8,["item","onEdit","onRefresh"])])):(0,t.Q3)("",!0)])),_:1})}var Me=l(4);const We=(e="0")=>(0,Me.zG)("socks5client/connections",e),Ae=e=>(0,Me.zG)("socks5client/removeconnection",e),Be=(e="0")=>(0,Me.zG)("socks5client/get",e),ze=e=>(0,Me.zG)("socks5client/run",e),Ne=e=>(0,Me.zG)("socks5client/stop",e),xe=e=>(0,Me.zG)("socks5client/update",e),Xe=()=>(0,Me.zG)("socks5client/refresh"),Ue=Symbol(),De=()=>{const e=(0,u.KR)({timer:0,showEdit:!1,current:null,list:{},hashcode:0});(0,t.Gt)(Ue,e);const a=()=>{clearTimeout(e.value.timer),Be(e.value.hashcode.toString()).then((l=>{if(e.value.hashcode=l.HashCode,l.List){for(let e in l.List)Object.assign(l.List[e],{running:2==l.List[e].Status,loading:1==l.List[e].Status});e.value.list=l.List}e.value.timer=setTimeout(a,1100)})).catch((l=>{e.value.timer=setTimeout(a,1100)}))},l=a=>{e.value.current=a,e.value.showEdit=!0},n=()=>{Xe()},o=()=>{clearTimeout(e.value.timer),e.value.timer=0},r=a=>Object.values(e.value.list).filter((e=>e.Port.toString().indexOf(a)>=0||e.Lans.filter((e=>e.IP.indexOf(a)>=0)).length>0)).map((e=>e.MachineId)),d=a=>{const l=Object.values(e.value.list).sort(((e,a)=>e.Port-a.Port));return l.map((e=>e.MachineId))};return{socks5:e,_getSocks5Info:a,handleSocks5Edit:l,handleSocks5Refresh:n,clearSocks5Timeout:o,getSocks5Machines:r,sortSocks5:d}},Ke=()=>(0,t.WQ)(Ue),Ge={class:"flex"},Qe={class:"flex-1"},Oe=["title"],qe={key:0,class:"green gateway"},$e={key:1},je={key:0},He={key:0,class:"flex yellow",title:"已禁用"},Je={key:1,class:"flex red",title:"与其它设备填写IP、或本机局域网IP有冲突"};function Ye(e,a,l,n,o,r){const d=(0,t.g2)("Loading"),s=(0,t.g2)("el-icon"),u=(0,t.g2)("el-switch");return(0,t.uX)(),(0,t.CE)("div",null,[(0,t.Lk)("div",Ge,[(0,t.Lk)("div",Qe,[(0,t.Lk)("a",{href:"javascript:;",class:"a-line",onClick:a[0]||(a[0]=e=>n.handleSocks5Port(n.socks5.list[n.item.MachineId])),title:"此设备的socks5代理"},[n.socks5.list[n.item.MachineId].SetupError?((0,t.uX)(),(0,t.CE)("strong",{key:0,class:"red",title:n.socks5.list[n.item.MachineId].SetupError}," socks5://*:"+(0,E.v_)(n.socks5.list[n.item.MachineId].Port),9,Oe)):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[n.socks5.list[n.item.MachineId].running?((0,t.uX)(),(0,t.CE)("strong",qe,"socks5://*:"+(0,E.v_)(n.socks5.list[n.item.MachineId].Port),1)):((0,t.uX)(),(0,t.CE)("strong",$e,"socks5://*:"+(0,E.v_)(n.socks5.list[n.item.MachineId].Port),1))],64))])]),n.socks5.list[n.item.MachineId].loading?((0,t.uX)(),(0,t.CE)("div",je,[(0,t.bF)(s,{size:"14",class:"loading"},{default:(0,t.k6)((()=>[(0,t.bF)(d)])),_:1})])):((0,t.uX)(),(0,t.Wv)(u,{key:1,modelValue:n.socks5.list[n.item.MachineId].running,"onUpdate:modelValue":a[1]||(a[1]=e=>n.socks5.list[n.item.MachineId].running=e),loading:n.socks5.list[n.item.MachineId].loading,disabled:"",onClick:a[2]||(a[2]=e=>n.handleSocks5(n.socks5.list[n.item.MachineId])),size:"small","inline-prompt":"","active-text":"😀","inactive-text":"😣"},null,8,["modelValue","loading"]))]),(0,t.Lk)("div",null,[(0,t.Lk)("div",null,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.socks5.list[n.item.MachineId].Lans,((e,a)=>((0,t.uX)(),(0,t.CE)(t.FK,{key:a},[e.Disabled?((0,t.uX)(),(0,t.CE)("div",He,(0,E.v_)(e.IP)+" / "+(0,E.v_)(e.PrefixLength),1)):e.Exists?((0,t.uX)(),(0,t.CE)("div",Je,(0,E.v_)(e.IP)+" / "+(0,E.v_)(e.PrefixLength),1)):((0,t.uX)(),(0,t.CE)("div",{key:2,class:(0,E.C4)(["flex",{green:n.socks5.list[n.item.MachineId].running}]),title:"正常使用"},(0,E.v_)(e.IP)+" / "+(0,E.v_)(e.PrefixLength),3))],64)))),128))])])])}var Ze={props:["item","config"],emits:["edit","refresh"],components:{Loading:k.Rhj},setup(e,{emit:a}){const l=Ke(),n=(0,s.B)(),o=(0,t.EW)((()=>n.value.config.Client.Id)),r=(0,t.EW)((()=>n.value.hasAccess("Socks5ChangeSelf"))),d=(0,t.EW)((()=>n.value.hasAccess("Socks5ChangeOther"))),u=(0,t.EW)((()=>n.value.hasAccess("Socks5StatusSelf"))),c=(0,t.EW)((()=>n.value.hasAccess("Socks5StatusOther"))),h=a=>{if(!e.config)return;if(o.value===a.MachineId){if(!u.value)return}else if(!c.value)return;const l=a.running?Ne(a.MachineId):ze(a.MachineId);a.loading=!0,l.then((()=>{i.nk.success("操作成功!")})).catch((()=>{i.nk.error("操作失败!")}))},m=l=>{if(e.config||o.value==l.MachineId){if(o.value===l.MachineId){if(!r.value)return}else if(!d.value)return;l.device=e.item,a("edit",l)}},p=()=>{a("refresh")};return{item:(0,t.EW)((()=>e.item)),socks5:l,handleSocks5:h,handleSocks5Port:m,handleSocks5Refresh:p}}};const ea=(0,F.A)(Ze,[["render",Ye],["__scopeId","data-v-07cd655e"]]);var aa=ea,la={emits:["edit","refresh"],components:{Socks5Show:aa},setup(e,{emit:a}){const l=Ke(),t=e=>{a("edit",e)},n=()=>{a("refresh")};return{socks5:l,handleSocks5:t,handleSocks5Refresh:n}}};const ta=(0,F.A)(la,[["render",Re]]);var na=ta;const oa=e=>((0,t.Qi)("data-v-5abfef9c"),e=e(),(0,t.jt)(),e),ra={class:"upgrade-wrap"},da={class:"flex-1"},sa=oa((()=>(0,t.Lk)("span",null,"/",-1))),ua={class:"pdl-10"},ia={class:"pdl-10"};function ca(e,a,l,n,o,r){const d=(0,t.g2)("el-form-item"),s=(0,t.g2)("el-input"),u=(0,t.g2)("el-checkbox"),i=(0,t.g2)("Delete"),c=(0,t.g2)("el-icon"),h=(0,t.g2)("el-button"),m=(0,t.g2)("Plus"),p=(0,t.g2)("el-form"),g=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(g,{modelValue:n.state.show,"onUpdate:modelValue":a[2]||(a[2]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.machineName}]代理`,top:"1vh",width:"600"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(p,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"140"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{prop:"gateway",style:{"margin-bottom":"0"}},{default:(0,t.k6)((()=>[(0,t.eW)(" 配置代理,通过代理访问其它设备 ")])),_:1}),(0,t.bF)(d,{label:"代理端口",prop:"Port"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{modelValue:n.state.ruleForm.Port,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.ruleForm.Port=e),style:{width:"14rem"}},null,8,["modelValue"])])),_:1}),(0,t.Lk)("div",ra,[(0,t.bF)(d,{label:"此设备局域网IP",prop:"LanIP",class:"lan-item"},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.ruleForm.Lans,((e,a)=>((0,t.uX)(),(0,t.CE)("div",{key:a,class:"flex",style:{"margin-bottom":".6rem"}},[(0,t.Lk)("div",da,[(0,t.bF)(s,{modelValue:e.IP,"onUpdate:modelValue":a=>e.IP=a,style:{width:"14rem"}},null,8,["modelValue","onUpdate:modelValue"]),sa,(0,t.bF)(s,{onChange:e=>n.handleMaskChange(a),modelValue:e.PrefixLength,"onUpdate:modelValue":a=>e.PrefixLength=a,style:{width:"4rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"])]),(0,t.Lk)("div",ua,[(0,t.bF)(u,{modelValue:e.Disabled,"onUpdate:modelValue":a=>e.Disabled=a,label:"禁用记录",size:"large"},null,8,["modelValue","onUpdate:modelValue"])]),(0,t.Lk)("div",ia,[(0,t.bF)(h,{type:"danger",onClick:e=>n.handleDel(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1})])),_:2},1032,["onClick"]),(0,t.bF)(h,{type:"primary",onClick:e=>n.handleAdd(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(m)])),_:1})])),_:2},1032,["onClick"])])])))),128))])),_:1})]),(0,t.bF)(d,{label:"",prop:"Btns"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(h,{onClick:a[1]||(a[1]=e=>n.state.show=!1)},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1}),(0,t.bF)(h,{type:"primary",onClick:n.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var ha={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:k.epd,Plus:k.FWt},setup(e,{emit:a}){const l=(0,s.B)(),n=Ke(),o=(0,u.KR)(null),r=(0,u.Kh)({show:!0,machineName:n.value.current.device.MachineName,bufferSize:l.value.bufferSize,ruleForm:{Port:n.value.current.Port,Lans:n.value.current.Lans.slice(0)},rules:{}});0==r.ruleForm.Lans.length&&r.ruleForm.Lans.push({IP:"0.0.0.0",PrefixLength:24}),(0,t.wB)((()=>r.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const d=e=>{var a=+r.ruleForm.Lans[e].PrefixLength;(a>32||a<16||isNaN(a))&&(a=24),r.ruleForm.Lans[e].PrefixLength=a},c=e=>{r.ruleForm.Lans.splice(e,1),0==r.ruleForm.Lans.length&&h(0)},h=e=>{r.ruleForm.Lans.splice(e+1,0,{IP:"0.0.0.0",PrefixLength:24})},m=()=>{const e=JSON.parse(JSON.stringify(n.value.current));e.Port=+(r.ruleForm.Port||"1805"),e.Lans=r.ruleForm.Lans.map((e=>(e.PrefixLength=+e.PrefixLength,e))),xe(e).then((()=>{r.show=!1,i.nk.success("已操作!"),a("change")})).catch((()=>{i.nk.error("操作失败!")}))};return{state:r,ruleFormRef:o,handleMaskChange:d,handleDel:c,handleAdd:h,handleSave:m}}};const ma=(0,F.A)(ha,[["render",ca],["__scopeId","data-v-5abfef9c"]]);var pa=ma;const ga={key:0},fa=["title","onClick"],ka=["onClick"];function va(e,a,l,n,o,r){const d=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(d,{prop:"tunnel",label:"隧道",width:"70"},{default:(0,t.k6)((e=>[n.tunnel.list[e.row.MachineId]?((0,t.uX)(),(0,t.CE)("div",ga,[(0,t.Lk)("a",{href:"javascript:;",class:(0,E.C4)(["a-line",{yellow:n.tunnel.list[e.row.MachineId].NeedReboot}]),title:n.tunnel.list[e.row.MachineId].NeedReboot?"需要重启":"调整网关层级有助于打洞成功",onClick:a=>n.handleTunnel(n.tunnel.list[e.row.MachineId],e.row)},[(0,t.Lk)("span",null,"网关:"+(0,E.v_)(n.tunnel.list[e.row.MachineId].RouteLevel)+"+"+(0,E.v_)(n.tunnel.list[e.row.MachineId].RouteLevelPlus),1)],10,fa)])):(0,t.Q3)("",!0),(0,t.Lk)("div",null,[(0,t.Lk)("a",{href:"javascript:;",title:"与此设备的隧道连接",class:(0,E.C4)(["a-line",{green:n.connectionCount(e.row.MachineId)>0}]),onClick:a=>n.handleConnections(e.row)},[(0,t.eW)(" 连接:"),(0,t.Lk)("span",null,(0,E.v_)(n.connectionCount(e.row.MachineId)),1)],10,ka)])])),_:1})}var wa=l(83);const ba=Symbol(),Fa=()=>{(0,s.B)();const e=(0,u.KR)({timer:0,showEdit:!1,current:null,list:{},hashcode:0});(0,t.Gt)(ba,e);const a=()=>{(0,wa.r7)(e.value.hashcode.toString()).then((l=>{e.value.hashcode=l.HashCode,l.List&&(e.value.list=l.List),e.value.timer=setTimeout(a,1060)})).catch((()=>{e.value.timer=setTimeout(a,1060)}))},l=a=>{e.value.current=a,e.value.showEdit=!0},n=()=>{(0,wa.gM)()},o=()=>{clearTimeout(e.value.timer)},r=a=>Object.values(e.value.list).sort(((e,a)=>e.RouteLevel+e.RouteLevelPlus-a.RouteLevel+a.RouteLevelPlus)).map((e=>e.MachineId));return{tunnel:e,_getTunnelInfo:a,handleTunnelEdit:l,handleTunnelRefresh:n,clearTunnelTimeout:o,sortTunnel:r}},Ca=()=>(0,t.WQ)(ba),La=(e="0")=>(0,Me.zG)("forwardclient/connections",e),Ea=e=>(0,Me.zG)("forwardclient/removeconnection",e),_a=(e="0")=>(0,Me.zG)("forwardclient/getcount",e),Sa=(e="0")=>(0,Me.zG)("forwardclient/get",e),Va=()=>(0,Me.zG)("forwardclient/bindips"),Pa=e=>(0,Me.zG)("forwardclient/remove",e),Ia=e=>(0,Me.zG)("forwardclient/add",e),ya=()=>(0,Me.zG)("forwardclient/refresh"),Ta=Symbol(),Ra=Symbol(),Ma=Symbol(),Wa=Symbol(),Aa=()=>{const e=(0,u.KR)({showEdit:!1,speedCache:{},current:"",currentName:"",hashcode:0,hashcode1:0,_updateRealTime:!1,updateRealTime:a=>{e.value.hashcode=0,e.value.hashcode1=0,e.value._updateRealTime=a}});(0,t.Gt)(Ta,e);const a=(0,u.KR)({timer:0,list:{}});(0,t.Gt)(Ra,a);const l=()=>{La(e.value.hashcode.toString()).then((t=>{0==e.value._updateRealTime&&(e.value.hashcode=t.HashCode),t.List&&(s(t.List,Ea),a.value.list=t.List),a.value.timer=setTimeout(l,1e3)})).catch((e=>{a.value.timer=setTimeout(l,1e3)}))},n=(0,u.KR)({timer:0,list:{}});(0,t.Gt)(Ma,n);const o=()=>{(0,we.kl)(e.value.hashcode1.toString()).then((a=>{0==e.value._updateRealTime&&(e.value.hashcode1=a.HashCode),a.List&&(s(a.List,we.vB),n.value.list=a.List),n.value.timer=setTimeout(o,1e3)})).catch((e=>{n.value.timer=setTimeout(o,1e3)}))},r=(0,u.KR)({timer:0,list:{}});(0,t.Gt)(Wa,r);const d=()=>{We(e.value.hashcode1.toString()).then((a=>{0==e.value._updateRealTime&&(e.value.hashcode1=a.HashCode),a.List&&(s(a.List,Ae),r.value.list=a.List),r.value.timer=setTimeout(d,1e3)})).catch((e=>{r.value.timer=setTimeout(d,1e3)}))},s=(a,l)=>{const t=e.value.speedCache;for(let e in a){const n=a[e];n.removeFunc=l;const o=`${n.RemoteMachineId}-${n.TransactionId}`,r=t[o]||{SendBytes:0,ReceiveBytes:0};n.SendBytesText=i(n.SendBytes-r.SendBytes),n.ReceiveBytesText=i(n.ReceiveBytes-r.ReceiveBytes),r.SendBytes=n.SendBytes,r.ReceiveBytes=n.ReceiveBytes,t[o]=r}},i=e=>{let a=0;while(e>=1024)e/=1024,a++;return`${e.toFixed(2)}${["B/s","KB/s","MB/s","GB/s","TB/s"][a]}`},c=a=>{e.value.current=a.MachineId,e.value.currentName=a.MachineName,e.value.showEdit=!0},h=()=>{clearTimeout(a.value.timer),clearTimeout(n.value.timer),clearTimeout(r.value.timer)};return{connections:e,forwardConnections:a,_getForwardConnections:l,tuntapConnections:n,_getTuntapConnections:o,socks5Connections:r,_getSocks5Connections:d,handleTunnelConnections:c,clearConnectionsTimeout:h}},Ba=()=>(0,t.WQ)(Ta),za=()=>(0,t.WQ)(Ra),Na=()=>(0,t.WQ)(Ma),xa=()=>(0,t.WQ)(Wa);var Xa={emits:["edit","refresh"],setup(e,{emit:a}){const l=(0,s.B)(),n=(0,t.EW)((()=>l.value.config.Client.Id)),o=(0,t.EW)((()=>l.value.hasAccess("TunnelChangeSelf"))),r=(0,t.EW)((()=>l.value.hasAccess("TunnelChangeOther"))),d=Ca(),u=(Ba(),za()),i=Na(),c=xa(),h=e=>[u.value.list[e],i.value.list[e],c.value.list[e]].filter((e=>!!e&&e.Connected)).length,m=(e,l)=>{if(n.value===e.MachineId){if(!o.value)return}else if(!r.value)return;e.device=l,a("edit",e)},p=()=>{a("refresh")},g=e=>{a("connections",e)};return{tunnel:d,handleTunnel:m,handleTunnelRefresh:p,connectionCount:h,handleConnections:g}}};const Ua=(0,F.A)(Xa,[["render",va],["__scopeId","data-v-d457c416"]]);var Da=Ua;const Ka=e=>((0,t.Qi)("data-v-1f7f67a4"),e=e(),(0,t.jt)(),e),Ga=Ka((()=>(0,t.Lk)("div",null,"网关层级为你的设备与外网的距离,你可以手动调整数值",-1))),Qa=Ka((()=>(0,t.Lk)("div",null,"光猫映射了端口后,可以直接连接,把TcpPortMap调到第一",-1))),Oa={class:"t-c w-100"};function qa(e,a,l,n,o,r){const d=(0,t.g2)("el-form-item"),s=(0,t.g2)("el-input"),u=(0,t.g2)("el-col"),i=(0,t.g2)("el-input-number"),c=(0,t.g2)("el-row"),h=(0,t.g2)("el-button"),m=(0,t.g2)("el-form"),p=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(p,{modelValue:n.state.show,"onUpdate:modelValue":a[5]||(a[5]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.machineName}]网关`,width:"400"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(m,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"auto"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{label:"",prop:"alert"},{default:(0,t.k6)((()=>[Ga])),_:1}),(0,t.bF)(d,{label:""},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(u,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(d,{label:"网关层级",prop:"RouteLevel"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{readonly:"",modelValue:n.state.ruleForm.RouteLevel,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.ruleForm.RouteLevel=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(u,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(d,{label:"调整层级",prop:"RouteLevelPlus"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{modelValue:n.state.ruleForm.RouteLevelPlus,"onUpdate:modelValue":a[1]||(a[1]=e=>n.state.ruleForm.RouteLevelPlus=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(d,{label:"",prop:"alert"},{default:(0,t.k6)((()=>[Qa])),_:1}),(0,t.bF)(d,{label:""},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(u,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(d,{label:"外网端口",prop:"PortMapWan"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{modelValue:n.state.ruleForm.PortMapWan,"onUpdate:modelValue":a[2]||(a[2]=e=>n.state.ruleForm.PortMapWan=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(u,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(d,{label:"内网端口",prop:"PortMapLan"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{modelValue:n.state.ruleForm.PortMapLan,"onUpdate:modelValue":a[3]||(a[3]=e=>n.state.ruleForm.PortMapLan=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(d,{label:"",prop:"Btns"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",Oa,[(0,t.bF)(h,{onClick:a[4]||(a[4]=e=>n.state.show=!1)},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1}),(0,t.bF)(h,{type:"primary",onClick:n.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var $a={props:["modelValue"],emits:["change","update:modelValue"],setup(e,{emit:a}){const l=Ca(),n=(0,u.KR)(null),o=(0,u.Kh)({show:!0,machineName:l.value.current.device.MachineName,ruleForm:{RouteLevel:l.value.current.RouteLevel,RouteLevelPlus:l.value.current.RouteLevelPlus,PortMapWan:l.value.current.PortMapWan,PortMapLan:l.value.current.PortMapLan},rules:{}});(0,t.wB)((()=>o.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const r=()=>{const e=JSON.parse(JSON.stringify(l.value.current));e.RouteLevel=+o.ruleForm.RouteLevel,e.RouteLevelPlus=+o.ruleForm.RouteLevelPlus,e.PortMapWan=+o.ruleForm.PortMapWan,e.PortMapLan=+o.ruleForm.PortMapLan,(0,wa.KW)(e).then((()=>{o.show=!1,i.nk.success("已操作!"),a("change")})).catch((()=>{i.nk.error("操作失败!")}))};return{state:o,ruleFormRef:n,handleSave:r}}};const ja=(0,F.A)($a,[["render",qa],["__scopeId","data-v-1f7f67a4"]]);var Ha=ja;const Ja=["onClick"],Ya=["onClick"],Za=["onClick"],el=["onClick"];function al(e,a,l,n,o,r){const d=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(d,{prop:"forward",label:"转发/穿透"},{default:(0,t.k6)((a=>[a.row.Connected?((0,t.uX)(),(0,t.CE)(t.FK,{key:0},[a.row.isSelf&&(n.hasForwardShowSelf||e.hasForwardSelf)?((0,t.uX)(),(0,t.CE)(t.FK,{key:0},[(0,t.Lk)("div",null,[(0,t.Lk)("a",{href:"javascript:;",title:"管理自己的端口转发",onClick:e=>n.handleEdit(a.row.MachineId,a.row.MachineName)}," 端口转发("+(0,E.v_)(n.forward.list[a.row.MachineId]>99?"99+":n.forward.list[a.row.MachineId])+") ",9,Ja)]),(0,t.Lk)("div",null,[(0,t.Lk)("a",{href:"javascript:;",title:"管理自己的内网穿透",onClick:e=>n.handleSEdit(a.row.MachineId,a.row.MachineName)}," 内网穿透("+(0,E.v_)(n.sforward.list[a.row.MachineId]>99?"99+":n.sforward.list[a.row.MachineId])+") ",9,Ya)])],64)):n.hasForwardShowOther||e.hasForwardOther?((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.Lk)("div",null,[(0,t.Lk)("a",{href:"javascript:;",title:"管理自己的端口转发",onClick:e=>n.handleEdit(a.row.MachineId,a.row.MachineName)}," 端口转发("+(0,E.v_)(n.forward.list[a.row.MachineId]>99?"99+":n.forward.list[a.row.MachineId])+") ",9,Za)]),(0,t.Lk)("div",null,[(0,t.Lk)("a",{href:"javascript:;",title:"管理自己的内网穿透",onClick:e=>n.handleSEdit(a.row.MachineId,a.row.MachineName)}," 内网穿透("+(0,E.v_)(n.sforward.list[a.row.MachineId]>99?"99+":n.sforward.list[a.row.MachineId])+") ",9,el)])],64)):(0,t.Q3)("",!0)],64)):(0,t.Q3)("",!0)])),_:1})}const ll=Symbol(),tl=()=>{(0,s.B)();const e=(0,u.KR)({timer:0,showEdit:!1,machineId:null,list:{},hashcode:0});(0,t.Gt)(ll,e);const a=()=>{ya()},l=()=>{_a(e.value.hashcode.toString()).then((a=>{e.value.hashcode=a.HashCode,a.List&&(e.value.list=a.List),e.value.timer=setTimeout(l,1020)})).catch((()=>{e.value.timer=setTimeout(l,1020)}))},n=a=>{e.value.machineId=a[0],e.value.machineName=a[1],e.value.showEdit=!0},o=()=>{clearTimeout(e.value.timer)};return{forward:e,_getForwardCountInfo:l,handleForwardEdit:n,clearForwardTimeout:o,handleForwardRefresh:a}},nl=()=>(0,t.WQ)(ll);var ol=l(743);const rl=Symbol(),dl=()=>{const e=(0,s.B)(),a=((0,t.EW)((()=>e.value.config.Client.Id)),(0,u.KR)({timer:0,showEdit:!1,showCopy:!1,list:{},testTimer:0,hashcode:0,machineid:"",machineName:""}));(0,t.Gt)(rl,a);const l=()=>{(0,ol.a9)()},n=()=>{(0,ol.gz)(a.value.hashcode.toString()).then((e=>{a.value.hashcode=e.HashCode,e.List&&(a.value.list=e.List),a.value.timer=setTimeout(n,1020)})).catch((()=>{a.value.timer=setTimeout(n,1020)}))},o=e=>{a.value.machineid=e[0],a.value.machineName=e[1],a.value.showEdit=!0},r=()=>{clearTimeout(a.value.timer),clearTimeout(a.value.testTimer)};return{sforward:a,_getSForwardCountInfo:n,handleSForwardEdit:o,clearSForwardTimeout:r,handleSForwardRefresh:l}},sl=()=>(0,t.WQ)(rl);var ul={emits:["edit","sedit"],setup(e,{emit:a}){const l=nl(),n=sl(),o=(0,s.B)(),r=(0,t.EW)((()=>o.value.config.Client.Id)),d=(0,t.EW)((()=>o.value.hasAccess("ForwardShowSelf"))),u=(0,t.EW)((()=>o.value.hasAccess("ForwardShowOther"))),i=(0,t.EW)((()=>o.value.hasAccess("ForwardSelf"))),c=(0,t.EW)((()=>o.value.hasAccess("ForwardOther"))),h=(e,l)=>{if(r.value===e){if(!i.value)return}else if(!c.value)return;a("edit",[e,l])},m=(e,l)=>{if(r.value===e){if(!i.value)return}else if(!c.value)return;a("sedit",[e,l])},p=()=>{a("refresh")};return{forward:l,sforward:n,hasForwardShowSelf:d,hasForwardShowOther:u,handleEdit:h,handleSEdit:m,handleForwardRefresh:p}}};const il=(0,F.A)(ul,[["render",al],["__scopeId","data-v-2977b9ac"]]);var cl=il;const hl={class:"t-c head"},ml=["title"],pl={class:"t-c"},gl={class:"page-wrap"},fl=["title"];function kl(e,a,l,n,o,r){const d=(0,t.g2)("el-button"),s=(0,t.g2)("el-input"),u=(0,t.g2)("el-table-column"),i=(0,t.g2)("el-option"),c=(0,t.g2)("el-select"),h=(0,t.g2)("WarnTriangleFilled"),m=(0,t.g2)("el-icon"),p=(0,t.g2)("el-pagination"),g=(0,t.g2)("el-switch"),f=(0,t.g2)("Delete"),k=(0,t.g2)("el-popconfirm"),v=(0,t.g2)("el-table"),w=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(w,{modelValue:n.state.show,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:`【${n.state.machineName}】的端口转发`,top:"1vh",width:"780"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.Lk)("div",hl,[(0,t.bF)(d,{type:"success",size:"small",onClick:n.handleAdd},{default:(0,t.k6)((()=>[(0,t.eW)("添加")])),_:1},8,["onClick"]),(0,t.bF)(d,{size:"small",onClick:n.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)("刷新")])),_:1},8,["onClick"])]),(0,t.bF)(v,{data:n.state.data,size:"small",border:"",height:"500",onCellDblclick:n.handleCellClick},{default:(0,t.k6)((()=>[(0,t.bF)(u,{property:"Name",label:"名称",width:"100"},{default:(0,t.k6)((e=>[e.row.NameEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(s,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":a=>e.row.Name=a,onBlur:a=>n.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.eW)((0,E.v_)(e.row.Name),1)],64))])),_:1}),(0,t.bF)(u,{prop:"BufferSize",label:"缓冲区",width:"80"},{default:(0,t.k6)((e=>[e.row.BufferSizeEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(c,{key:0,modelValue:e.row.BufferSize,"onUpdate:modelValue":a=>e.row.BufferSize=a,placeholder:"Select",size:"small",disabled:e.row.Started,onChange:a=>n.handleEditBlur(e.row,"BufferSize")},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.bufferSize,((e,a)=>((0,t.uX)(),(0,t.Wv)(i,{key:a,label:e,value:a},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","disabled","onChange"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.eW)((0,E.v_)(n.state.bufferSize[e.row.BufferSize]),1)],64))])),_:1}),(0,t.bF)(u,{property:"BindIPAddress",label:"监听IP",width:"140"},{default:(0,t.k6)((e=>[e.row.BindIPAddressEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(c,{key:0,modelValue:e.row.BindIPAddress,"onUpdate:modelValue":a=>e.row.BindIPAddress=a,size:"small",disabled:e.row.Started,onChange:a=>n.handleEditBlur(e.row,"BindIPAddress")},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.ips,(e=>((0,t.uX)(),(0,t.Wv)(i,{key:e,label:e,value:e},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","disabled","onChange"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.eW)((0,E.v_)(e.row.BindIPAddress),1)],64))])),_:1}),(0,t.bF)(u,{property:"Port",label:"监听端口",width:"80"},{default:(0,t.k6)((e=>[e.row.PortEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(s,{key:0,type:"number",autofocus:"",size:"small",modelValue:e.row.Port,"onUpdate:modelValue":a=>e.row.Port=a,onBlur:a=>n.handleEditBlur(e.row,"Port")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[e.row.Msg?((0,t.uX)(),(0,t.CE)("div",{key:0,class:"error red",title:e.row.Msg},[(0,t.Lk)("span",null,(0,E.v_)(e.row.Port),1),(0,t.bF)(m,{size:"20"},{default:(0,t.k6)((()=>[(0,t.bF)(h)])),_:1})],8,ml)):((0,t.uX)(),(0,t.CE)("span",{key:1,class:(0,E.C4)({green:e.row.Started})},(0,E.v_)(e.row.Port),3))],64))])),_:1}),(0,t.bF)(u,{property:"MachineId",label:"目标"},{default:(0,t.k6)((e=>[e.row.MachineIdEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(c,{key:0,modelValue:e.row.MachineId,"onUpdate:modelValue":a=>e.row.MachineId=a,onChange:a=>n.handleEditBlur(e.row,"MachineId"),filterable:"",remote:"",loading:n.state.loading,"remote-method":n.handleSearch},{header:(0,t.k6)((()=>[(0,t.Lk)("div",pl,[(0,t.Lk)("div",gl,[(0,t.bF)(p,{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,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.machineIds.List,((e,a)=>((0,t.uX)(),(0,t.Wv)(i,{key:a,label:e.MachineName,value:e.MachineId},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange","loading","remote-method"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.eW)((0,E.v_)(e.row.MachineName),1)],64))])),_:1}),(0,t.bF)(u,{property:"TargetEP",label:"目标服务",width:"140"},{default:(0,t.k6)((e=>[e.row.TargetEPEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(s,{key:0,autofocus:"",size:"small",modelValue:e.row.TargetEP,"onUpdate:modelValue":a=>e.row.TargetEP=a,onBlur:a=>n.handleEditBlur(e.row,"TargetEP")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[e.row.TargetMsg?((0,t.uX)(),(0,t.CE)("div",{key:0,class:"error red",title:e.row.TargetMsg},[(0,t.Lk)("span",null,(0,E.v_)(e.row.TargetEP),1),(0,t.bF)(m,{size:"20"},{default:(0,t.k6)((()=>[(0,t.bF)(h)])),_:1})],8,fl)):((0,t.uX)(),(0,t.CE)("span",{key:1,class:(0,E.C4)({green:e.row.Started})},(0,E.v_)(e.row.TargetEP),3))],64))])),_:1}),(0,t.bF)(u,{property:"Started",label:"状态",width:"60"},{default:(0,t.k6)((e=>[(0,t.bF)(g,{modelValue:e.row.Started,"onUpdate:modelValue":a=>e.row.Started=a,onChange:a=>n.handleStartChange(e.row),"inline-prompt":"","active-text":"开","inactive-text":"关"},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,t.bF)(u,{label:"操作",width:"54"},{default:(0,t.k6)((e=>[(0,t.bF)(k,{"confirm-button-text":"确认","cancel-button-text":"取消",title:"删除不可逆,是否确认?",onConfirm:a=>n.handleDel(e.row.Id)},{reference:(0,t.k6)((()=>[(0,t.bF)(d,{type:"danger",size:"small"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(f)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])])),_:1})])),_:1},8,["data","onCellDblclick"])])])),_:1},8,["modelValue","onOpen","title"])}var vl={props:["data","modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:k.DtC,Delete:k.epd},setup(e,{emit:a}){const l=(0,s.B)(),n=nl(),o=(0,u.Kh)({show:!0,machineId:n.value.machineId,machineName:n.value.machineName,data:[],ips:[],bufferSize:l.value.bufferSize,loading:!1,machineIds:{Request:{Page:1,Size:10,Name:""},Count:0,List:[]}});(0,t.wB)((()=>o.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const r=()=>{Va().then((e=>{e.splice(0,0,"127.0.0.1"),e.splice(0,0,"0.0.0.0"),o.ips=e})).catch((()=>{}))},d=()=>{Sa(o.machineId).then((e=>{o.data=e})).catch((()=>{}))},c=e=>{o.machineIds.Request.Name=e,h()},h=()=>{o.loading=!0,(0,g.BS)(o.machineIds.Request).then((e=>{o.loading=!1,o.machineIds.Request=e.Request,o.machineIds.Count=e.Count,o.machineIds.List=e.List})).catch((e=>{o.loading=!1}))},m=e=>{o.machineIds.Request.Page=e,h()},p=()=>{d(),h()},f=(e,a)=>{w(e,a.property)},k=()=>{d(),i.nk.success("已刷新")},v=()=>{L({ID:0,Name:"",Port:0,TargetEP:"127.0.0.1:80",machineId:""})},w=(e,a)=>{e.Started?i.nk.error("请先停止"):(o.data.forEach((e=>{e["NameEditing"]=!1,e["PortEditing"]=!1,e["TargetEPEditing"]=!1,e["BindIPAddressEditing"]=!1,e["BufferSizeEditing"]=!1,e["MachineIdEditing"]=!1})),e[`${a}Editing`]=!0)},b=(e,a)=>{if(e.Started)return void i.nk.error("请先停止");e[`${a}Editing`]=!1;const l=o.machineIds.List.find((a=>a.MachineId==e.MachineId));l&&(e.MachineName=l.MachineName),L(e)},F=e=>{Pa({machineId:o.machineId,Id:e}).then((()=>{d()}))},C=e=>{L(e)},L=e=>{e.Port=parseInt(e.Port),Ia({machineId:o.machineId,data:e}).then((()=>{d()})).catch((e=>{i.nk.error(e)}))};return(0,t.sV)((()=>{d(),r()})),{state:o,handleOnShowList:p,handleCellClick:f,handleRefresh:k,handleAdd:v,handleEdit:w,handleEditBlur:b,handleDel:F,handleStartChange:C,handleSearch:c,handlePageChange:m}}};const wl=(0,F.A)(vl,[["render",kl],["__scopeId","data-v-15b05a01"]]);var bl=wl;const Fl={class:"t-c head"},Cl=["title"],Ll=["title"];function El(e,a,l,n,o,r){const d=(0,t.g2)("el-button"),s=(0,t.g2)("el-input"),u=(0,t.g2)("el-table-column"),i=(0,t.g2)("WarnTriangleFilled"),c=(0,t.g2)("el-icon"),h=(0,t.g2)("el-switch"),m=(0,t.g2)("Delete"),p=(0,t.g2)("el-popconfirm"),g=(0,t.g2)("el-table"),f=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(f,{modelValue:n.state.show,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:`【${n.machineName}】的内网穿透`,top:"1vh",width:"700"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.Lk)("div",Fl,[(0,t.bF)(d,{type:"success",size:"small",onClick:n.handleAdd},{default:(0,t.k6)((()=>[(0,t.eW)("添加")])),_:1},8,["onClick"]),(0,t.bF)(d,{size:"small",onClick:n.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)("刷新")])),_:1},8,["onClick"])]),(0,t.bF)(g,{data:n.state.data,size:"small",border:"",height:"500",onCellDblclick:n.handleCellClick},{default:(0,t.k6)((()=>[(0,t.bF)(u,{property:"Name",label:"名称"},{default:(0,t.k6)((e=>[e.row.NameEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(s,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":a=>e.row.Name=a,onBlur:a=>n.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.eW)((0,E.v_)(e.row.Name),1)],64))])),_:1}),(0,t.bF)(u,{prop:"BufferSize",label:"缓冲区",width:"100"},{default:(0,t.k6)((e=>[(0,t.Lk)("span",null,(0,E.v_)(1<[e.row.TempEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(s,{key:0,autofocus:"",size:"small",modelValue:e.row.Temp,"onUpdate:modelValue":a=>e.row.Temp=a,onBlur:a=>n.handleEditBlur(e.row,"Temp")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[e.row.Msg?((0,t.uX)(),(0,t.CE)("div",{key:0,class:"error red",title:e.row.Msg},[(0,t.Lk)("span",null,(0,E.v_)(e.row.Temp),1),(0,t.bF)(c,{size:"20"},{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1})],8,Cl)):((0,t.uX)(),(0,t.CE)("span",{key:1,class:(0,E.C4)({green:e.row.Started})},(0,E.v_)(e.row.Temp),3))],64))])),_:1}),(0,t.bF)(u,{property:"LocalEP",label:"本机服务",width:"140"},{default:(0,t.k6)((e=>[e.row.LocalEPEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(s,{key:0,autofocus:"",size:"small",modelValue:e.row.LocalEP,"onUpdate:modelValue":a=>e.row.LocalEP=a,onBlur:a=>n.handleEditBlur(e.row,"LocalEP")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[e.row.LocalMsg?((0,t.uX)(),(0,t.CE)("div",{key:0,class:"error red",title:e.row.LocalMsg},[(0,t.Lk)("span",null,(0,E.v_)(e.row.LocalEP),1),(0,t.bF)(c,{size:"20"},{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1})],8,Ll)):((0,t.uX)(),(0,t.CE)("span",{key:1,class:(0,E.C4)({green:e.row.Started})},(0,E.v_)(e.row.LocalEP),3))],64))])),_:1}),(0,t.bF)(u,{property:"Started",label:"状态",width:"60"},{default:(0,t.k6)((e=>[(0,t.bF)(h,{modelValue:e.row.Started,"onUpdate:modelValue":a=>e.row.Started=a,onChange:a=>n.handleStartChange(e.row),"inline-prompt":"","active-text":"是","inactive-text":"否"},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,t.bF)(u,{label:"操作",width:"54"},{default:(0,t.k6)((e=>[(0,t.bF)(p,{"confirm-button-text":"确认","cancel-button-text":"取消",title:"删除不可逆,是否确认?",onConfirm:a=>n.handleDel(e.row.Id)},{reference:(0,t.k6)((()=>[(0,t.bF)(d,{type:"danger",size:"small"},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(m)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])])),_:1})])),_:1},8,["data","onCellDblclick"])])])),_:1},8,["modelValue","onOpen","title"])}var _l={props:["data","modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:k.DtC,Delete:k.epd},setup(e,{emit:a}){const l=(0,s.B)(),n=sl(),o=(0,u.Kh)({bufferSize:l.value.bufferSize,show:!0,data:[],timerTestLocal:0});(0,t.wB)((()=>o.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const r=()=>{console.log(n.value.machineid),(0,ol.eX)(n.value.machineid).then((e=>{o.timerTestLocal=setTimeout(r,1e3)})).catch((()=>{o.timerTestLocal=setTimeout(r,1e3)}))},d=()=>{(0,ol.pY)(n.value.machineid).then((e=>{e.forEach((e=>{e.Temp=(e.Domain||e.RemotePort).toString(),e.RemotePort=0,e.Domain=""})),o.data=e})).catch((()=>{}))},c=()=>{d()},h=(e,a)=>{g(e,a.property)},m=()=>{d(),i.nk.success("已刷新")},p=()=>{const e={Id:0,Name:"",RemotePort:0,LocalEP:"127.0.0.1:80",Domain:"",Temp:""};(0,ol.Qs)({machineid:n.value.machineid,data:e}).then((()=>{setTimeout((()=>{d()}),100)})).catch((e=>{i.nk.error(e)}))},g=(e,a)=>{e.Started?i.nk.error("请先停止运行"):(o.data.forEach((e=>{e["NameEditing"]=!1,e["RemotePortEditing"]=!1,e["LocalEPEditing"]=!1,e["DomainEditing"]=!1,e["TempEditing"]=!1})),e[`${a}Editing`]=!0)},f=(e,a)=>{e.Started?i.nk.error("请先停止运行"):(e[`${a}Editing`]=!1,w(e))},k=e=>{(0,ol.DY)({machineid:n.value.machineid,id:e}).then((()=>{d()}))},v=e=>{w(e)},w=e=>{e.Temp&&(/^\d+$/.test(e.Temp)?e.RemotePort=parseInt(e.Temp):e.Domain=e.Temp,(0,ol.Qs)({machineid:n.value.machineid,data:e}).then((()=>{setTimeout((()=>{d()}),100)})).catch((e=>{i.nk.error(e)})))};return(0,t.sV)((()=>{d(),r()})),(0,t.hi)((()=>{clearTimeout(o.timerTestLocal)})),{state:o,machineName:n.value.machineName,handleOnShowList:c,handleCellClick:h,handleRefresh:m,handleAdd:p,handleEdit:g,handleEditBlur:f,handleDel:k,handleStartChange:v}}};const Sl=(0,F.A)(_l,[["render",El],["__scopeId","data-v-219c690c"]]);var Vl=Sl;function Pl(e,a,l,n,o,r){const d=(0,t.g2)("el-table-column"),s=(0,t.g2)("Delete"),u=(0,t.g2)("el-icon"),i=(0,t.g2)("el-button"),c=(0,t.g2)("el-popconfirm"),h=(0,t.g2)("el-table"),m=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(m,{modelValue:n.state.show,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.show=e),"append-to":".app-wrap",title:`与[${n.state.machineName}]的链接`,top:"1vh",width:"700"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(h,{data:n.state.data,size:"small",border:"",height:"500"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{property:"RemoteMachineId",label:"目标"},{default:(0,t.k6)((e=>[(0,t.Lk)("div",{class:(0,E.C4)({green:e.row.Connected})},[(0,t.Lk)("p",null,(0,E.v_)(e.row.IPEndPoint),1),(0,t.Lk)("p",null,"ssl : "+(0,E.v_)(e.row.SSL),1)],2)])),_:1}),(0,t.bF)(d,{property:"TransactionId",label:"事务",width:"80"},{default:(0,t.k6)((e=>[(0,t.Lk)("span",null,(0,E.v_)(n.state.transactions[e.row.TransactionId]),1)])),_:1}),(0,t.bF)(d,{property:"TransportName",label:"协议"},{default:(0,t.k6)((e=>[(0,t.Lk)("div",null,[(0,t.Lk)("p",null,(0,E.v_)(e.row.TransportName)+"("+(0,E.v_)(n.state.protocolTypes[e.row.ProtocolType])+")",1),(0,t.Lk)("p",null,(0,E.v_)(n.state.types[e.row.Type])+" - "+(0,E.v_)(1<[(0,t.Lk)("span",null,(0,E.v_)(e.row.Delay)+"ms",1)])),_:1}),(0,t.bF)(d,{property:"Bytes",label:"通信"},{default:(0,t.k6)((e=>[(0,t.Lk)("div",null,[(0,t.Lk)("p",null,"up : "+(0,E.v_)(e.row.SendBytesText),1),(0,t.Lk)("p",null,"down : "+(0,E.v_)(e.row.ReceiveBytesText),1)])])),_:1}),(0,t.bF)(d,{label:"操作",width:"54"},{default:(0,t.k6)((e=>[n.hasTunnelRemove?((0,t.uX)(),(0,t.Wv)(c,{key:0,"confirm-button-text":"确认","cancel-button-text":"取消",title:"确定关闭此连接?",onConfirm:a=>n.handleDel(e.row)},{reference:(0,t.k6)((()=>[(0,t.bF)(i,{type:"danger",size:"small"},{default:(0,t.k6)((()=>[(0,t.bF)(u,null,{default:(0,t.k6)((()=>[(0,t.bF)(s)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])):(0,t.Q3)("",!0)])),_:1})])),_:1},8,["data"])])])),_:1},8,["modelValue","title"])}var Il={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:k.epd},setup(e,{emit:a}){const l=(0,s.B)(),n=(0,t.EW)((()=>l.value.hasAccess("TunnelRemove"))),o=Ba(),r=za(),d=Na(),c=xa(),h=(0,u.Kh)({show:!0,protocolTypes:{1:"tcp",2:"udp",4:"msquic"},types:{0:"打洞",1:"中继"},transactions:{forward:"端口转发",tuntap:"虚拟网卡",socks5:"代理转发"},machineName:o.value.currentName,data:(0,t.EW)((()=>[r.value.list[o.value.current],d.value.list[o.value.current],c.value.list[o.value.current]].filter((e=>!!e))))});(0,t.wB)((()=>h.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e),a("change")}),300)}));const m=e=>{n.value&&e.removeFunc(e.RemoteMachineId).then((()=>{i.nk.success("删除成功")})).catch((()=>{}))};return(0,t.sV)((()=>{o.value.updateRealTime(!0)})),(0,t.hi)((()=>{o.value.updateRealTime(!1)})),{state:h,handleDel:m,hasTunnelRemove:n}}};const yl=(0,F.A)(Il,[["render",Pl],["__scopeId","data-v-56e79745"]]);var Tl=yl,Rl=l(9383),Ml={components:{Oper:L,Device:x,DeviceEdit:Q,AccessEdit:Y,Tunnel:Da,TunnelEdit:Ha,ConnectionsEdit:Tl,Tuntap:oe,TuntapEdit:Ce,TuntapLease:ye,Socks5:na,Socks5Edit:pa,Forward:cl,ForwardEdit:bl,SForwardEdit:Vl},setup(e){const a=(0,s.B)(),l=(0,u.Kh)({height:(0,t.EW)((()=>a.value.height-90))}),{devices:n,machineId:o,_getSignList:r,_getSignList1:d,handleDeviceEdit:c,handleAccessEdit:h,handlePageChange:m,handlePageSizeChange:p,handleDel:g,clearDevicesTimeout:f,setSort:k}=(0,O.r)(),{tuntap:v,_getTuntapInfo:b,handleTuntapEdit:F,handleTuntapRefresh:C,clearTuntapTimeout:L,getTuntapMachines:E,sortTuntapIP:_}=(0,ae.O)(),{socks5:S,_getSocks5Info:V,handleSocks5Edit:P,handleSocks5Refresh:I,clearSocks5Timeout:y,getSocks5Machines:T,sortSocks5:R}=De(),{tunnel:M,_getTunnelInfo:W,handleTunnelEdit:A,handleTunnelRefresh:B,clearTunnelTimeout:z,sortTunnel:N}=Fa(),{forward:x,_getForwardCountInfo:X,handleForwardEdit:U,clearForwardTimeout:D,handleForwardRefresh:K}=tl(),{sforward:G,_getSForwardCountInfo:Q,handleSForwardEdit:q,clearSForwardTimeout:$,handleSForwardRefresh:j}=dl(),{connections:H,forwardConnections:J,_getForwardConnections:Y,tuntapConnections:Z,_getTuntapConnections:ee,socks5Connections:le,_getSocks5Connections:te,handleTunnelConnections:ne,clearConnectionsTimeout:oe}=Aa(),{_getUpdater:re,_subscribeUpdater:de,clearUpdaterTimeout:se}=(0,Rl.d)(),{_getAccessInfo:ue,clearAccessTimeout:ie,handleAccesssRefresh:ce}=(0,w.Y)(),he=e=>{n.page.Request.Prop=e.prop,n.page.Request.Asc="ascending"==e.order;let a=new Promise(((e,a)=>{e()}));if("tunnel"==e.prop){const e=N(n.page.Request.Asc);e.length>0&&(a=k(e))}else if("tuntap"==e.prop){const e=_(n.page.Request.Asc);e.length>0&&(a=k(e))}else if("socks5"==e.prop){const e=R(n.page.Request.Asc);e.length>0&&(a=k(e))}a.then((()=>{m()})).catch((()=>{}))},me=e=>{n.page.Request.Name=e||"",n.page.Request.Name?n.page.Request.Ids=E(n.page.Request.Name).concat(T(n.page.Request.Name)).reduce(((e,a)=>(-1==e.indexOf(a)&&e.push(a),e)),[]):n.page.Request.Ids=[],m(),B(),C(),I(),K(),j(),ce(),i.nk.success({message:"刷新成功",grouping:!0})},pe=()=>{m(),B(),C(),I(),ce(),i.nk.success({message:"刷新成功",grouping:!0})};return(0,t.sV)((()=>{m(),B(),C(),I(),K(),j(),ce(),r(),d(),b(),V(),W(),Y(),ee(),te(),X(),Q(),re(),de(),ue()})),(0,t.hi)((()=>{f(),oe(),L(),y(),z(),D(),$(),se(),ie()})),{state:l,devices:n,machineId:o,handleSortChange:he,handleDeviceEdit:c,handleAccessEdit:h,handlePageRefresh:me,handlePageSearch:pe,handlePageChange:m,handlePageSizeChange:p,handleDel:g,tuntap:v,handleTuntapEdit:F,handleTuntapRefresh:C,socks5:S,handleSocks5Edit:P,handleSocks5Refresh:I,tunnel:M,connections:H,handleTunnelEdit:A,handleTunnelRefresh:B,handleTunnelConnections:ne,forward:x,handleForwardEdit:U,sforward:G,handleSForwardEdit:q}}};const Wl=(0,F.A)(Ml,[["render",d],["__scopeId","data-v-8ac55320"]]);var Al=Wl}}]); \ No newline at end of file diff --git a/linker.tray.win/web/js/398.b9e20f4c.js b/linker.tray.win/web/js/398.b9e20f4c.js deleted file mode 100644 index 771a62ab..00000000 --- a/linker.tray.win/web/js/398.b9e20f4c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[398],{743:function(e,a,l){l.d(a,{Ap:function(){return n},Co:function(){return o},DY:function(){return u},Qs:function(){return i},a9:function(){return s},eX:function(){return c},gz:function(){return d},pY:function(){return r}});var t=l(4);const n=()=>(0,t.zG)("sforwardclient/GetSecretKey"),o=e=>(0,t.zG)("sforwardclient/SetSecretKey",e),r=e=>(0,t.zG)("sforwardclient/get",e),s=()=>(0,t.zG)("sforwardclient/refresh"),d=(e="0")=>(0,t.zG)("sforwardclient/getcount",e),u=e=>(0,t.zG)("sforwardclient/remove",e),i=e=>(0,t.zG)("sforwardclient/add",e),c=e=>(0,t.zG)("sforwardclient/TestLocal",e)},83:function(e,a,l){l.d(a,{$M:function(){return s},KW:function(){return r},gM:function(){return o},r7:function(){return n}});var t=l(4);const n=(e="0")=>(0,t.zG)("tunnel/get",e),o=()=>(0,t.zG)("tunnel/refresh"),r=e=>(0,t.zG)("tunnel/SetRouteLevel",e),s=e=>(0,t.zG)("tunnel/SetTransports",e)},801:function(e,a,l){l.r(a),l.d(a,{default:function(){return Al}});var t=l(6768);const n={class:"home-list-wrap absolute"},o={class:"page t-c"},r={class:"page-wrap"};function s(e,a,l,s,d,u){const i=(0,t.g2)("el-table-column"),c=(0,t.g2)("el-table"),h=(0,t.g2)("Device"),m=(0,t.g2)("Tunnel"),p=(0,t.g2)("Tuntap"),g=(0,t.g2)("Socks5"),f=(0,t.g2)("Forward"),k=(0,t.g2)("Oper"),v=(0,t.g2)("el-pagination"),w=(0,t.g2)("DeviceEdit"),b=(0,t.g2)("AccessEdit"),F=(0,t.g2)("TunnelEdit"),C=(0,t.g2)("ConnectionsEdit"),L=(0,t.g2)("TuntapEdit"),E=(0,t.g2)("Socks5Edit"),_=(0,t.g2)("TuntapLease"),S=(0,t.g2)("ForwardEdit"),V=(0,t.g2)("SForwardEdit");return(0,t.uX)(),(0,t.CE)("div",n,[(0,t.bF)(c,{border:"",style:{width:"100%"},height:"32px",size:"small",onSortChange:s.handleSortChange,class:"table-sort"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{prop:"MachineId",label:"设备名",width:"110",sortable:"custom"}),(0,t.bF)(i,{prop:"Version",label:"版本",width:"110",sortable:"custom"}),(0,t.bF)(i,{prop:"tunnel",label:"网关",width:"70",sortable:"custom"}),(0,t.bF)(i,{prop:"tuntap",label:"网卡IP",width:"160",sortable:"custom"}),(0,t.bF)(i,{prop:"socks5",label:"代理转发",width:"160",sortable:"custom"}),(0,t.bF)(i,{prop:"forward",label:""}),(0,t.bF)(i,{label:"",width:"74",fixed:"right"})])),_:1},8,["onSortChange"]),(0,t.bF)(c,{data:s.devices.page.List,stripe:"",border:"",style:{width:"100%"},height:`${s.state.height}px`,size:"small"},{default:(0,t.k6)((()=>[(0,t.bF)(h,{onEdit:s.handleDeviceEdit,onRefresh:s.handlePageRefresh},null,8,["onEdit","onRefresh"]),(0,t.bF)(m,{onEdit:s.handleTunnelEdit,onRefresh:s.handleTunnelRefresh,onConnections:s.handleTunnelConnections},null,8,["onEdit","onRefresh","onConnections"]),(0,t.bF)(p,{onEdit:s.handleTuntapEdit,onRefresh:s.handleTuntapRefresh},null,8,["onEdit","onRefresh"]),(0,t.bF)(g,{onEdit:s.handleSocks5Edit,onRefresh:s.handleSocks5Refresh},null,8,["onEdit","onRefresh"]),(0,t.bF)(f,{onEdit:s.handleForwardEdit,onSedit:s.handleSForwardEdit},null,8,["onEdit","onSedit"]),(0,t.bF)(k,{onRefresh:s.handlePageRefresh,onAccess:s.handleAccessEdit},null,8,["onRefresh","onAccess"])])),_:1},8,["data","height"]),(0,t.Lk)("div",o,[(0,t.Lk)("div",r,[(0,t.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,t.uX)(),(0,t.Wv)(w,{key:0,modelValue:s.devices.showDeviceEdit,"onUpdate:modelValue":a[0]||(a[0]=e=>s.devices.showDeviceEdit=e),onChange:s.handlePageChange,data:s.devices.deviceInfo},null,8,["modelValue","onChange","data"])):(0,t.Q3)("",!0),s.devices.showAccessEdit?((0,t.uX)(),(0,t.Wv)(b,{key:1,modelValue:s.devices.showAccessEdit,"onUpdate:modelValue":a[1]||(a[1]=e=>s.devices.showAccessEdit=e),onChange:s.handlePageChange,data:s.devices.deviceInfo},null,8,["modelValue","onChange","data"])):(0,t.Q3)("",!0),s.tunnel.showEdit?((0,t.uX)(),(0,t.Wv)(F,{key:2,modelValue:s.tunnel.showEdit,"onUpdate:modelValue":a[2]||(a[2]=e=>s.tunnel.showEdit=e),onChange:s.handleTunnelRefresh},null,8,["modelValue","onChange"])):(0,t.Q3)("",!0),s.connections.showEdit?((0,t.uX)(),(0,t.Wv)(C,{key:3,modelValue:s.connections.showEdit,"onUpdate:modelValue":a[3]||(a[3]=e=>s.connections.showEdit=e)},null,8,["modelValue"])):(0,t.Q3)("",!0),s.tuntap.showEdit?((0,t.uX)(),(0,t.Wv)(L,{key:4,modelValue:s.tuntap.showEdit,"onUpdate:modelValue":a[4]||(a[4]=e=>s.tuntap.showEdit=e),onChange:s.handleTuntapRefresh},null,8,["modelValue","onChange"])):(0,t.Q3)("",!0),s.socks5.showEdit?((0,t.uX)(),(0,t.Wv)(E,{key:5,modelValue:s.socks5.showEdit,"onUpdate:modelValue":a[5]||(a[5]=e=>s.socks5.showEdit=e),onChange:s.handleSocks5Refresh},null,8,["modelValue","onChange"])):(0,t.Q3)("",!0),s.tuntap.showLease?((0,t.uX)(),(0,t.Wv)(_,{key:6,modelValue:s.tuntap.showLease,"onUpdate:modelValue":a[6]||(a[6]=e=>s.tuntap.showLease=e),onChange:s.handleTuntapRefresh},null,8,["modelValue","onChange"])):(0,t.Q3)("",!0),s.forward.showEdit?((0,t.uX)(),(0,t.Wv)(S,{key:7,modelValue:s.forward.showEdit,"onUpdate:modelValue":a[7]||(a[7]=e=>s.forward.showEdit=e)},null,8,["modelValue"])):(0,t.Q3)("",!0),s.sforward.showEdit?((0,t.uX)(),(0,t.Wv)(V,{key:8,modelValue:s.sforward.showEdit,"onUpdate:modelValue":a[8]||(a[8]=e=>s.sforward.showEdit=e)},null,8,["modelValue"])):(0,t.Q3)("",!0)])}l(4114);var d=l(3830),u=l(144),i=l(1219);const c=e=>((0,t.Qi)("data-v-3647de7a"),e=e(),(0,t.jt)(),e),h={class:"dropdown"},m=c((()=>(0,t.Lk)("span",null,"操作",-1)));function p(e,a,l,n,o,r){const s=(0,t.g2)("ArrowDown"),d=(0,t.g2)("el-icon"),u=(0,t.g2)("SwitchButton"),i=(0,t.g2)("el-dropdown-item"),c=(0,t.g2)("Delete"),p=(0,t.g2)("Flag"),g=(0,t.g2)("el-dropdown-menu"),f=(0,t.g2)("el-dropdown"),k=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(k,{label:"操作",width:"74",fixed:"right"},{default:(0,t.k6)((e=>[(0,t.bF)(f,{size:"small"},{dropdown:(0,t.k6)((()=>[(0,t.bF)(g,null,{default:(0,t.k6)((()=>[e.row.showReboot&&n.hasReboot?((0,t.uX)(),(0,t.Wv)(i,{key:0,onClick:a=>n.handleExit(e.row.MachineId,e.row.MachineName)},{default:(0,t.k6)((()=>[(0,t.bF)(d,null,{default:(0,t.k6)((()=>[(0,t.bF)(u)])),_:1}),(0,t.eW)(" 重启")])),_:2},1032,["onClick"])):(0,t.Q3)("",!0),e.row.showDel&&n.hasRemove?((0,t.uX)(),(0,t.Wv)(i,{key:1,onClick:a=>n.handleDel(e.row.MachineId,e.row.MachineName)},{default:(0,t.k6)((()=>[(0,t.bF)(d,null,{default:(0,t.k6)((()=>[(0,t.bF)(c)])),_:1}),(0,t.eW)(" 删除")])),_:2},1032,["onClick"])):(0,t.Q3)("",!0),n.handleShowAccess(e.row,n.accessList[e.row.MachineId]||0)?((0,t.uX)(),(0,t.Wv)(i,{key:2,onClick:a=>n.handleAccess(e.row)},{default:(0,t.k6)((()=>[(0,t.bF)(d,null,{default:(0,t.k6)((()=>[(0,t.bF)(p)])),_:1}),(0,t.eW)(" 权限")])),_:2},1032,["onClick"])):(0,t.Q3)("",!0)])),_:2},1024)])),default:(0,t.k6)((()=>[(0,t.Lk)("div",h,[m,(0,t.bF)(d,{class:"el-icon--right"},{default:(0,t.k6)((()=>[(0,t.bF)(s)])),_:1})])])),_:2},1024)])),_:1})}var g=l(9299),f=l(920),k=l(7477),v=l(2933),w=l(5962),b={emits:["refresh","access"],components:{Delete:k.epd,SwitchButton:k.L$q,ArrowDown:k.yd$,Flag:k.lNU},setup(e,{emit:a}){const l=(0,d.B)(),n=(0,w.q)(),o=(0,t.EW)((()=>l.value.config.Client.Access)),r=(0,t.EW)((()=>l.value.hasAccess("Access"))),s=(0,t.EW)((()=>n.value.list)),u=(0,t.EW)((()=>l.value.hasAccess("Reboot"))),i=(0,t.EW)((()=>l.value.hasAccess("Remove"))),c=(e,l)=>{v.s.confirm(`确认删除[${l}]?`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,g.Se)(e).then((()=>{a("refresh")}))})).catch((()=>{}))},h=(e,l)=>{v.s.confirm(`确认关闭[${l}]?`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,f.NS)(e).then((()=>{a("refresh")}))})).catch((()=>{}))},m=(e,a)=>e.showAccess&&r.value&&a>=0&&0==+(~BigInt(o.value)&BigInt(a)).toString(),p=e=>{a("access",e)};return{accessList:s,handleDel:c,handleExit:h,hasReboot:u,hasRemove:i,hasAccess:r,handleShowAccess:m,handleAccess:p}}},F=l(1241);const C=(0,F.A)(b,[["render",p],["__scopeId","data-v-3647de7a"]]);var L=C,E=l(4232);const _=e=>((0,t.Qi)("data-v-75cf840d"),e=e(),(0,t.jt)(),e),S={class:"flex"},V=_((()=>(0,t.Lk)("span",{class:"flex-1"},"设备",-1))),P={class:"flex"},I=["onClick"],y=["onClick"],T=_((()=>(0,t.Lk)("span",null,"😴㊙.㊙.㊙.㊙",-1))),R=[T],M=_((()=>(0,t.Lk)("span",{class:"flex-1"},null,-1)));function W(e,a,l,n,o,r){const s=(0,t.g2)("el-input"),d=(0,t.g2)("Search"),u=(0,t.g2)("el-icon"),i=(0,t.g2)("el-button"),c=(0,t.g2)("DeviceName"),h=(0,t.g2)("UpdaterBtn"),m=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(m,{prop:"MachineId",label:"设备",width:"220"},{header:(0,t.k6)((()=>[(0,t.Lk)("div",S,[V,(0,t.Lk)("span",null,[(0,t.bF)(s,{size:"small",modelValue:n.name,"onUpdate:modelValue":a[0]||(a[0]=e=>n.name=e),clearable:"",onInput:n.handleRefresh,placeholder:"设备/虚拟网卡/端口转发"},null,8,["modelValue","onInput"])]),(0,t.Lk)("span",null,[(0,t.bF)(i,{size:"small",onClick:n.handleRefresh},{default:(0,t.k6)((()=>[(0,t.bF)(u,null,{default:(0,t.k6)((()=>[(0,t.bF)(d)])),_:1})])),_:1},8,["onClick"])])])])),default:(0,t.k6)((e=>[(0,t.Lk)("div",null,[(0,t.Lk)("p",null,[(0,t.bF)(c,{onEdit:n.handleEdit,config:!0,item:e.row},null,8,["onEdit","item"])]),(0,t.Lk)("p",P,[e.row.showip?((0,t.uX)(),(0,t.CE)("span",{key:0,title:"此设备的外网IP",class:"ipaddress",onClick:a=>n.handleExternal(e.row)},[(0,t.Lk)("span",null,"😀"+(0,E.v_)(e.row.IP),1)],8,I)):((0,t.uX)(),(0,t.CE)("span",{key:1,title:"此设备的外网IP",class:"ipaddress",onClick:a=>n.handleExternal(e.row)},R,8,y)),M,(0,t.bF)(h,{config:!0,item:e.row},null,8,["item"])])])])),_:1})}var A=l(4831),B=l(8179),z={emits:["edit","refresh"],components:{Search:k.vji,UpdaterBtn:A.A,DeviceName:B.A},setup(e,{emit:a}){const l=(0,d.B)(),n=(0,t.EW)((()=>l.value.hasAccess("ExternalShow"))),o=(0,u.KR)(sessionStorage.getItem("search-name")||""),r=e=>{n.value&&(e.showip=!e.showip)},s=e=>{a("edit",e)},i=()=>{sessionStorage.setItem("search-name",o.value),a("refresh",o.value)};return{handleEdit:s,handleRefresh:i,name:o,handleExternal:r}}};const N=(0,F.A)(z,[["render",W],["__scopeId","data-v-75cf840d"]]);var x=N;const X=(0,t.Lk)("div",null,"修改后最好能重启一次客户端",-1),U={class:"t-c w-100"};function D(e,a,l,n,o,r){const s=(0,t.g2)("el-form-item"),d=(0,t.g2)("el-input"),u=(0,t.g2)("el-button"),i=(0,t.g2)("el-form"),c=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(c,{modelValue:n.state.show,"onUpdate:modelValue":a[2]||(a[2]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.ruleForm.MachineName}]设备`,width:"300"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(i,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"auto"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:""},{default:(0,t.k6)((()=>[X])),_:1}),(0,t.bF)(s,{label:"设备名",prop:"MachineName"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{maxlength:"12","show-word-limit":"",modelValue:n.state.ruleForm.MachineName,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.ruleForm.MachineName=e)},null,8,["modelValue"])])),_:1}),(0,t.bF)(s,{label:"",prop:"Btns"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",U,[(0,t.bF)(u,{onClick:a[1]||(a[1]=e=>n.state.show=!1)},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1}),(0,t.bF)(u,{type:"primary",onClick:n.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var K={props:["data","modelValue"],emits:["change","update:modelValue"],setup(e,{emit:a}){const l=(0,u.KR)(null),n=(0,u.Kh)({show:!0,ruleForm:{MachineName1:e.data.MachineName,MachineName:e.data.MachineName},rules:{}});(0,t.wB)((()=>n.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const o=()=>{e.data.MachineName!=n.ruleForm.MachineName&&(0,g.gC)({Id:e.data.MachineId,newName:n.ruleForm.MachineName}).then((()=>{n.show=!1,i.nk.success("已操作!"),a("change")})).catch((()=>{i.nk.error("操作失败!")}))};return{state:n,ruleFormRef:l,handleSave:o}}};const G=(0,F.A)(K,[["render",D]]);var Q=G,O=l(7985);function q(e,a,l,n,o,r){const s=(0,t.g2)("Access"),d=(0,t.g2)("el-button"),u=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(u,{modelValue:n.state.show,"onUpdate:modelValue":a[1]||(a[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,t.k6)((()=>[(0,t.bF)(d,{plain:"",onClick:a[0]||(a[0]=e=>n.state.show=!1),loading:n.state.loading},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1},8,["loading"]),(0,t.bF)(d,{type:"success",plain:"",onClick:n.handleSave,loading:n.state.loading},{default:(0,t.k6)((()=>[(0,t.eW)("确定保存")])),_:1},8,["onClick","loading"])])),default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(s,{machineid:n.machineid,ref:"accessDom"},null,8,["machineid"])])])),_:1},8,["modelValue","title"])}var $=l(3363),j=l(9593),H={props:["data","modelValue"],emits:["change","update:modelValue"],components:{Access:j.A},setup(e,{emit:a}){const l=(0,u.Kh)({show:!0,loading:!1});(0,t.wB)((()=>l.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const n=(0,u.KR)(null),o=()=>{l.loading=!0,(0,$.ZK)({ToMachineId:e.data.MachineId,Access:n.value.getValue()}).then((()=>{l.loading=!1,l.show=!1,i.nk.success("已操作!"),a("change")})).catch((()=>{l.loading=!1,i.nk.error("操作失败!")}))};return{machineName:e.data.MachineName,machineid:e.data.MachineId,state:l,accessDom:n,handleSave:o}}};const J=(0,F.A)(H,[["render",q]]);var Y=J;const Z={key:0};function ee(e,a,l,n,o,r){const s=(0,t.g2)("TuntapShow"),d=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(d,{prop:"tuntap",label:"虚拟网卡",width:"160"},{header:(0,t.k6)((()=>[(0,t.Lk)("a",{href:"javascript:;",class:"a-line",onClick:a[0]||(a[0]=(...e)=>n.handleShowLease&&n.handleShowLease(...e))},"虚拟网卡")])),default:(0,t.k6)((e=>[n.tuntap.list[e.row.MachineId]?((0,t.uX)(),(0,t.CE)("div",Z,[(0,t.bF)(s,{config:!0,item:e.row,onEdit:n.handleTuntapIP,onRefresh:n.handleTuntapRefresh},null,8,["item","onEdit","onRefresh"])])):(0,t.Q3)("",!0)])),_:1})}var ae=l(8104),le=l(5547),te={emits:["edit","refresh"],components:{TuntapShow:le.A},setup(e,{emit:a}){const l=(0,ae.W)(),t=e=>{a("edit",e)},n=()=>{a("refresh")},o=()=>{l.value.showLease=!0};return{tuntap:l,handleTuntapIP:t,handleTuntapRefresh:n,handleShowLease:o}}};const ne=(0,F.A)(te,[["render",ee]]);var oe=ne;const re=e=>((0,t.Qi)("data-v-50a6970e"),e=e(),(0,t.jt)(),e),se=re((()=>(0,t.Lk)("span",null,"/",-1))),de=re((()=>(0,t.Lk)("span",{style:{width:"2rem"}},null,-1))),ue={key:0,class:"upgrade-wrap"},ie=re((()=>(0,t.Lk)("span",{class:"yellow"},"此设备能使用NAT转发,只需局域网IP,剩下的交给NAT(linux、macos、win10+)",-1))),ce={class:"flex-1"},he=re((()=>(0,t.Lk)("span",null,"/",-1))),me={class:"pdl-10"},pe={class:"pdl-10"},ge=re((()=>(0,t.Lk)("span",{class:"yellow"},"此设备无法使用NAT转发,或只想使用端口转发",-1))),fe={class:"flex-1"},ke={class:"pdl-10"};function ve(e,a,l,n,o,r){const s=(0,t.g2)("el-form-item"),d=(0,t.g2)("el-input"),u=(0,t.g2)("el-checkbox"),i=(0,t.g2)("Delete"),c=(0,t.g2)("el-icon"),h=(0,t.g2)("el-button"),m=(0,t.g2)("Plus"),p=(0,t.g2)("el-form"),g=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(g,{modelValue:n.state.show,"onUpdate:modelValue":a[7]||(a[7]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.machineName}]组网`,top:"1vh",width:"700"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(p,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"140"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{prop:"gateway",style:{"margin-bottom":"0"}},{default:(0,t.k6)((()=>[(0,t.eW)(" 赐予此设备IP,其它设备可通过此IP访问 ")])),_:1}),(0,t.bF)(s,{label:"此设备的虚拟网卡IP",prop:"IP"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{modelValue:n.state.ruleForm.IP,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.ruleForm.IP=e),style:{width:"14rem"}},null,8,["modelValue"]),se,(0,t.bF)(d,{onChange:n.handlePrefixLengthChange,modelValue:n.state.ruleForm.PrefixLength,"onUpdate:modelValue":a[1]||(a[1]=e=>n.state.ruleForm.PrefixLength=e),style:{width:"4rem"}},null,8,["onChange","modelValue"]),de,(0,t.bF)(u,{modelValue:n.state.ruleForm.ShowDelay,"onUpdate:modelValue":a[2]||(a[2]=e=>n.state.ruleForm.ShowDelay=e),label:"显示延迟",size:"large",style:{"margin-right":"1rem"}},null,8,["modelValue"]),(0,t.bF)(u,{modelValue:n.state.ruleForm.AutoConnect,"onUpdate:modelValue":a[3]||(a[3]=e=>n.state.ruleForm.AutoConnect=e),label:"自动连接",size:"large",style:{"margin-right":"1rem"}},null,8,["modelValue"]),(0,t.bF)(u,{modelValue:n.state.ruleForm.Multicast,"onUpdate:modelValue":a[4]||(a[4]=e=>n.state.ruleForm.Multicast=e),label:"禁用UDP广播",size:"large"},null,8,["modelValue"])])),_:1}),(0,t.bF)(s,{prop:"upgrade",style:{"margin-bottom":"0"}},{default:(0,t.k6)((()=>[(0,t.bF)(u,{modelValue:n.state.ruleForm.Upgrade,"onUpdate:modelValue":a[5]||(a[5]=e=>n.state.ruleForm.Upgrade=e),label:"我很懂,我要使用高级功能(点对网和网对网)",size:"large"},null,8,["modelValue"])])),_:1}),n.state.ruleForm.Upgrade?((0,t.uX)(),(0,t.CE)("div",ue,[(0,t.bF)(s,{prop:"nat",style:{"margin-bottom":"0"}},{default:(0,t.k6)((()=>[ie])),_:1}),(0,t.bF)(s,{label:"此设备局域网IP",prop:"LanIP",style:{"border-bottom":"1px solid #ddd","margin-bottom":"0"}},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.ruleForm.Lans,((e,a)=>((0,t.uX)(),(0,t.CE)("div",{key:a,class:"flex",style:{"margin-bottom":".6rem"}},[(0,t.Lk)("div",ce,[(0,t.bF)(d,{modelValue:e.IP,"onUpdate:modelValue":a=>e.IP=a,style:{width:"14rem"}},null,8,["modelValue","onUpdate:modelValue"]),he,(0,t.bF)(d,{onChange:e=>n.handleMaskChange(a),modelValue:e.PrefixLength,"onUpdate:modelValue":a=>e.PrefixLength=a,style:{width:"4rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"])]),(0,t.Lk)("div",me,[(0,t.bF)(u,{modelValue:e.Disabled,"onUpdate:modelValue":a=>e.Disabled=a,label:"禁用记录",size:"large"},null,8,["modelValue","onUpdate:modelValue"])]),(0,t.Lk)("div",pe,[(0,t.bF)(h,{type:"danger",onClick:e=>n.handleDel(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1})])),_:2},1032,["onClick"]),(0,t.bF)(h,{type:"primary",onClick:e=>n.handleAdd(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(m)])),_:1})])),_:2},1032,["onClick"])])])))),128))])),_:1}),(0,t.bF)(s,{prop:"forward",style:{"margin-bottom":"0"}},{default:(0,t.k6)((()=>[ge])),_:1}),(0,t.bF)(s,{label:"端口转发",prop:"forwards"},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.ruleForm.Forwards,((e,a)=>((0,t.uX)(),(0,t.CE)("div",{key:a,class:"flex",style:{"margin-bottom":".6rem"}},[(0,t.Lk)("div",fe,[(0,t.bF)(d,{modelValue:e.ListenAddr,"onUpdate:modelValue":a=>e.ListenAddr=a,style:{width:"7rem"},readonly:""},null,8,["modelValue","onUpdate:modelValue"]),(0,t.eW)(" : "),(0,t.bF)(d,{onChange:e=>n.handleForwardChange(a),modelValue:e.ListenPort,"onUpdate:modelValue":a=>e.ListenPort=a,style:{width:"6rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"]),(0,t.eW)(" -> "),(0,t.bF)(d,{modelValue:e.ConnectAddr,"onUpdate:modelValue":a=>e.ConnectAddr=a,style:{width:"14rem"}},null,8,["modelValue","onUpdate:modelValue"]),(0,t.eW)(" : "),(0,t.bF)(d,{onChange:e=>n.handleForwardChange(a),modelValue:e.ConnectPort,"onUpdate:modelValue":a=>e.ConnectPort=a,style:{width:"6rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"])]),(0,t.Lk)("div",ke,[(0,t.bF)(h,{type:"danger",onClick:e=>n.handleDelForward(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1})])),_:2},1032,["onClick"]),(0,t.bF)(h,{type:"primary",onClick:e=>n.handleAddForward(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(m)])),_:1})])),_:2},1032,["onClick"])])])))),128))])),_:1})])):(0,t.Q3)("",!0),(0,t.bF)(s,{label:"",prop:"Btns"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(h,{onClick:a[6]||(a[6]=e=>n.state.show=!1)},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1}),(0,t.bF)(h,{type:"primary",onClick:n.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var we=l(5241),be={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:k.epd,Plus:k.FWt},setup(e,{emit:a}){const l=(0,d.B)(),n=(0,ae.W)(),o=(0,u.KR)(null),r=(0,u.Kh)({show:!0,machineName:n.value.current.device.MachineName,bufferSize:l.value.bufferSize,ruleForm:{IP:n.value.current.IP,Lans:n.value.current.Lans.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,Multicast:n.value.current.Multicast,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.Lans.length&&r.ruleForm.Lans.push({IP:"0.0.0.0",PrefixLength:24}),(0,t.wB)((()=>r.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const s=()=>{var e=+r.ruleForm.PrefixLength;(e>32||e<16||isNaN(e))&&(e=24),r.ruleForm.PrefixLength=e},c=e=>{var a=+r.ruleForm.Lans[e].PrefixLength;(a>32||a<16||isNaN(a))&&(a=24),r.ruleForm.Lans[e].PrefixLength=a},h=e=>{r.ruleForm.Lans.splice(e,1),0==r.ruleForm.Lans.length&&m(0)},m=e=>{r.ruleForm.Lans.splice(e+1,0,{IP:"0.0.0.0",PrefixLength:24})},p=()=>{const e=JSON.parse(JSON.stringify(n.value.current));e.IP=r.ruleForm.IP||"0.0.0.0",e.Lans=r.ruleForm.Lans.map((e=>(e.PrefixLength=+e.PrefixLength,e))),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.Multicast=r.ruleForm.Multicast,e.Forwards=r.ruleForm.Forwards,e.Forwards.forEach((e=>{e.ListenPort=+e.ListenPort,e.ConnectPort=+e.ConnectPort})),(0,we.ac)(e).then((()=>{r.show=!1,i.nk.success("已操作!"),a("change")})).catch((()=>{i.nk.error("操作失败!")}))},g=e=>{r.ruleForm.Forwards.splice(e,1),0==r.ruleForm.Forwards.length&&f(0)},f=e=>{r.ruleForm.Forwards.splice(e+1,0,{ListenAddr:"0.0.0.0",ListenPort:0,ConnectAddr:"0.0.0.0",ConnectPort:0})},k=()=>{};return{state:r,ruleFormRef:o,handlePrefixLengthChange:s,handleMaskChange:c,handleDel:h,handleAdd:m,handleSave:p,handleForwardChange:k,handleDelForward:g,handleAddForward:f}}};const Fe=(0,F.A)(be,[["render",ve],["__scopeId","data-v-50a6970e"]]);var Ce=Fe;const Le=e=>((0,t.Qi)("data-v-60d5fe5c"),e=e(),(0,t.jt)(),e),Ee=Le((()=>(0,t.Lk)("p",null,"网络租期30天、IP租期7天",-1))),_e=Le((()=>(0,t.Lk)("span",null,"/",-1))),Se=Le((()=>(0,t.Lk)("span",{style:{width:"1rem"}},null,-1)));function Ve(e,a,l,n,o,r){const s=(0,t.g2)("el-form-item"),d=(0,t.g2)("el-input"),u=(0,t.g2)("el-button"),i=(0,t.g2)("el-form"),c=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(c,{modelValue:n.state.show,"onUpdate:modelValue":a[3]||(a[3]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:"配置本组的网络",top:"1vh",width:"400"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(i,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"100"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{prop:"gateway"},{default:(0,t.k6)((()=>[Ee])),_:1}),(0,t.bF)(s,{label:"网络和掩码",prop:"IP"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{modelValue:n.state.ruleForm.IP,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.ruleForm.IP=e),style:{width:"14rem"}},null,8,["modelValue"]),_e,(0,t.bF)(d,{onChange:n.handlePrefixLengthChange,modelValue:n.state.ruleForm.PrefixLength,"onUpdate:modelValue":a[1]||(a[1]=e=>n.state.ruleForm.PrefixLength=e),style:{width:"4rem"}},null,8,["onChange","modelValue"]),Se,(0,t.bF)(u,{onClick:n.handleClear},{default:(0,t.k6)((()=>[(0,t.eW)("清除")])),_:1},8,["onClick"])])),_:1}),n.hasLease?((0,t.uX)(),(0,t.Wv)(s,{key:0,label:"",prop:"Btns"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(u,{onClick:a[2]||(a[2]=e=>n.state.show=!1)},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1}),(0,t.bF)(u,{type:"primary",onClick:n.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("确认")])),_:1},8,["onClick"])])])),_:1})):(0,t.Q3)("",!0)])),_:1},8,["model","rules"])])])),_:1},8,["modelValue"])}var Pe={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:k.epd,Plus:k.FWt},setup(e,{emit:a}){const l=(0,d.B)(),n=(0,t.EW)((()=>l.value.hasAccess("Lease"))),o=(0,u.KR)(null),r=(0,u.Kh)({show:!0,ruleForm:{IP:"0.0.0.0",PrefixLength:24},rules:{}});(0,t.wB)((()=>r.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const s=()=>{(0,we.Nj)().then((e=>{r.ruleForm.IP=e.IP,r.ruleForm.PrefixLength=e.PrefixLength}))},c=()=>{var e=+r.ruleForm.PrefixLength;(e>32||e<16||isNaN(e))&&(e=24),r.ruleForm.PrefixLength=e},h=()=>{(0,we.AE)(r.ruleForm).then((()=>{i.nk.success("已操作"),r.show=!1})).catch((()=>{i.nk.error("操作失败")}))},m=()=>{(0,we.AE)({IP:"0.0.0.0",PrefixLength:24}).then((()=>{i.nk.success("已操作"),s()})).catch((()=>{i.nk.error("操作失败")}))};return(0,t.sV)((()=>{s()})),{state:r,hasLease:n,ruleFormRef:o,handleSave:h,handlePrefixLengthChange:c,handleClear:m}}};const Ie=(0,F.A)(Pe,[["render",Ve],["__scopeId","data-v-60d5fe5c"]]);var ye=Ie;const Te={key:0};function Re(e,a,l,n,o,r){const s=(0,t.g2)("Socks5Show"),d=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(d,{prop:"socks5",label:"代理转发",width:"160"},{default:(0,t.k6)((e=>[n.socks5.list[e.row.MachineId]?((0,t.uX)(),(0,t.CE)("div",Te,[(0,t.bF)(s,{config:!0,item:e.row,onEdit:n.handleSocks5,onRefresh:n.handleSocks5Refresh},null,8,["item","onEdit","onRefresh"])])):(0,t.Q3)("",!0)])),_:1})}var Me=l(4);const We=(e="0")=>(0,Me.zG)("socks5client/connections",e),Ae=e=>(0,Me.zG)("socks5client/removeconnection",e),Be=(e="0")=>(0,Me.zG)("socks5client/get",e),ze=e=>(0,Me.zG)("socks5client/run",e),Ne=e=>(0,Me.zG)("socks5client/stop",e),xe=e=>(0,Me.zG)("socks5client/update",e),Xe=()=>(0,Me.zG)("socks5client/refresh"),Ue=Symbol(),De=()=>{const e=(0,u.KR)({timer:0,showEdit:!1,current:null,list:{},hashcode:0});(0,t.Gt)(Ue,e);const a=()=>{clearTimeout(e.value.timer),Be(e.value.hashcode.toString()).then((l=>{if(e.value.hashcode=l.HashCode,l.List){for(let e in l.List)Object.assign(l.List[e],{running:2==l.List[e].Status,loading:1==l.List[e].Status});e.value.list=l.List}e.value.timer=setTimeout(a,1100)})).catch((l=>{e.value.timer=setTimeout(a,1100)}))},l=a=>{e.value.current=a,e.value.showEdit=!0},n=()=>{Xe()},o=()=>{clearTimeout(e.value.timer),e.value.timer=0},r=a=>Object.values(e.value.list).filter((e=>e.Port.toString().indexOf(a)>=0||e.Lans.filter((e=>e.IP.indexOf(a)>=0)).length>0)).map((e=>e.MachineId)),s=a=>{const l=Object.values(e.value.list).sort(((e,a)=>e.Port-a.Port));return l.map((e=>e.MachineId))};return{socks5:e,_getSocks5Info:a,handleSocks5Edit:l,handleSocks5Refresh:n,clearSocks5Timeout:o,getSocks5Machines:r,sortSocks5:s}},Ke=()=>(0,t.WQ)(Ue),Ge={class:"flex"},Qe={class:"flex-1"},Oe=["title"],qe={key:0,class:"green gateway"},$e={key:1},je={key:0},He={key:0,class:"flex yellow",title:"已禁用"},Je={key:1,class:"flex red",title:"与其它设备填写IP、或本机局域网IP有冲突"};function Ye(e,a,l,n,o,r){const s=(0,t.g2)("Loading"),d=(0,t.g2)("el-icon"),u=(0,t.g2)("el-switch");return(0,t.uX)(),(0,t.CE)("div",null,[(0,t.Lk)("div",Ge,[(0,t.Lk)("div",Qe,[(0,t.Lk)("a",{href:"javascript:;",class:"a-line",onClick:a[0]||(a[0]=e=>n.handleSocks5Port(n.socks5.list[n.item.MachineId])),title:"此设备的socks5代理"},[n.socks5.list[n.item.MachineId].SetupError?((0,t.uX)(),(0,t.CE)("strong",{key:0,class:"red",title:n.socks5.list[n.item.MachineId].SetupError}," socks5://*:"+(0,E.v_)(n.socks5.list[n.item.MachineId].Port),9,Oe)):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[n.socks5.list[n.item.MachineId].running?((0,t.uX)(),(0,t.CE)("strong",qe,"socks5://*:"+(0,E.v_)(n.socks5.list[n.item.MachineId].Port),1)):((0,t.uX)(),(0,t.CE)("strong",$e,"socks5://*:"+(0,E.v_)(n.socks5.list[n.item.MachineId].Port),1))],64))])]),n.socks5.list[n.item.MachineId].loading?((0,t.uX)(),(0,t.CE)("div",je,[(0,t.bF)(d,{size:"14",class:"loading"},{default:(0,t.k6)((()=>[(0,t.bF)(s)])),_:1})])):((0,t.uX)(),(0,t.Wv)(u,{key:1,modelValue:n.socks5.list[n.item.MachineId].running,"onUpdate:modelValue":a[1]||(a[1]=e=>n.socks5.list[n.item.MachineId].running=e),loading:n.socks5.list[n.item.MachineId].loading,disabled:"",onClick:a[2]||(a[2]=e=>n.handleSocks5(n.socks5.list[n.item.MachineId])),size:"small","inline-prompt":"","active-text":"😀","inactive-text":"😣"},null,8,["modelValue","loading"]))]),(0,t.Lk)("div",null,[(0,t.Lk)("div",null,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.socks5.list[n.item.MachineId].Lans,((e,a)=>((0,t.uX)(),(0,t.CE)(t.FK,{key:a},[e.Disabled?((0,t.uX)(),(0,t.CE)("div",He,(0,E.v_)(e.IP)+" / "+(0,E.v_)(e.PrefixLength),1)):e.Exists?((0,t.uX)(),(0,t.CE)("div",Je,(0,E.v_)(e.IP)+" / "+(0,E.v_)(e.PrefixLength),1)):((0,t.uX)(),(0,t.CE)("div",{key:2,class:(0,E.C4)(["flex",{green:n.socks5.list[n.item.MachineId].running}]),title:"正常使用"},(0,E.v_)(e.IP)+" / "+(0,E.v_)(e.PrefixLength),3))],64)))),128))])])])}var Ze={props:["item","config"],emits:["edit","refresh"],components:{Loading:k.Rhj},setup(e,{emit:a}){const l=Ke(),n=(0,d.B)(),o=(0,t.EW)((()=>n.value.config.Client.Id)),r=(0,t.EW)((()=>n.value.hasAccess("Socks5ChangeSelf"))),s=(0,t.EW)((()=>n.value.hasAccess("Socks5ChangeOther"))),u=(0,t.EW)((()=>n.value.hasAccess("Socks5StatusSelf"))),c=(0,t.EW)((()=>n.value.hasAccess("Socks5StatusOther"))),h=a=>{if(!e.config)return;if(o.value===a.MachineId){if(!u.value)return}else if(!c.value)return;const l=a.running?Ne(a.MachineId):ze(a.MachineId);a.loading=!0,l.then((()=>{i.nk.success("操作成功!")})).catch((()=>{i.nk.error("操作失败!")}))},m=l=>{if(e.config||o.value==l.MachineId){if(o.value===l.MachineId){if(!r.value)return}else if(!s.value)return;l.device=e.item,a("edit",l)}},p=()=>{a("refresh")};return{item:(0,t.EW)((()=>e.item)),socks5:l,handleSocks5:h,handleSocks5Port:m,handleSocks5Refresh:p}}};const ea=(0,F.A)(Ze,[["render",Ye],["__scopeId","data-v-07cd655e"]]);var aa=ea,la={emits:["edit","refresh"],components:{Socks5Show:aa},setup(e,{emit:a}){const l=Ke(),t=e=>{a("edit",e)},n=()=>{a("refresh")};return{socks5:l,handleSocks5:t,handleSocks5Refresh:n}}};const ta=(0,F.A)(la,[["render",Re]]);var na=ta;const oa=e=>((0,t.Qi)("data-v-5abfef9c"),e=e(),(0,t.jt)(),e),ra={class:"upgrade-wrap"},sa={class:"flex-1"},da=oa((()=>(0,t.Lk)("span",null,"/",-1))),ua={class:"pdl-10"},ia={class:"pdl-10"};function ca(e,a,l,n,o,r){const s=(0,t.g2)("el-form-item"),d=(0,t.g2)("el-input"),u=(0,t.g2)("el-checkbox"),i=(0,t.g2)("Delete"),c=(0,t.g2)("el-icon"),h=(0,t.g2)("el-button"),m=(0,t.g2)("Plus"),p=(0,t.g2)("el-form"),g=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(g,{modelValue:n.state.show,"onUpdate:modelValue":a[2]||(a[2]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.machineName}]代理`,top:"1vh",width:"600"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(p,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"140"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{prop:"gateway",style:{"margin-bottom":"0"}},{default:(0,t.k6)((()=>[(0,t.eW)(" 配置代理,通过代理访问其它设备 ")])),_:1}),(0,t.bF)(s,{label:"代理端口",prop:"Port"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{modelValue:n.state.ruleForm.Port,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.ruleForm.Port=e),style:{width:"14rem"}},null,8,["modelValue"])])),_:1}),(0,t.Lk)("div",ra,[(0,t.bF)(s,{label:"此设备局域网IP",prop:"LanIP",class:"lan-item"},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.ruleForm.Lans,((e,a)=>((0,t.uX)(),(0,t.CE)("div",{key:a,class:"flex",style:{"margin-bottom":".6rem"}},[(0,t.Lk)("div",sa,[(0,t.bF)(d,{modelValue:e.IP,"onUpdate:modelValue":a=>e.IP=a,style:{width:"14rem"}},null,8,["modelValue","onUpdate:modelValue"]),da,(0,t.bF)(d,{onChange:e=>n.handleMaskChange(a),modelValue:e.PrefixLength,"onUpdate:modelValue":a=>e.PrefixLength=a,style:{width:"4rem"}},null,8,["onChange","modelValue","onUpdate:modelValue"])]),(0,t.Lk)("div",ua,[(0,t.bF)(u,{modelValue:e.Disabled,"onUpdate:modelValue":a=>e.Disabled=a,label:"禁用记录",size:"large"},null,8,["modelValue","onUpdate:modelValue"])]),(0,t.Lk)("div",ia,[(0,t.bF)(h,{type:"danger",onClick:e=>n.handleDel(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1})])),_:2},1032,["onClick"]),(0,t.bF)(h,{type:"primary",onClick:e=>n.handleAdd(a)},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(m)])),_:1})])),_:2},1032,["onClick"])])])))),128))])),_:1})]),(0,t.bF)(s,{label:"",prop:"Btns"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(h,{onClick:a[1]||(a[1]=e=>n.state.show=!1)},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1}),(0,t.bF)(h,{type:"primary",onClick:n.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var ha={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:k.epd,Plus:k.FWt},setup(e,{emit:a}){const l=(0,d.B)(),n=Ke(),o=(0,u.KR)(null),r=(0,u.Kh)({show:!0,machineName:n.value.current.device.MachineName,bufferSize:l.value.bufferSize,ruleForm:{Port:n.value.current.Port,Lans:n.value.current.Lans.slice(0)},rules:{}});0==r.ruleForm.Lans.length&&r.ruleForm.Lans.push({IP:"0.0.0.0",PrefixLength:24}),(0,t.wB)((()=>r.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const s=e=>{var a=+r.ruleForm.Lans[e].PrefixLength;(a>32||a<16||isNaN(a))&&(a=24),r.ruleForm.Lans[e].PrefixLength=a},c=e=>{r.ruleForm.Lans.splice(e,1),0==r.ruleForm.Lans.length&&h(0)},h=e=>{r.ruleForm.Lans.splice(e+1,0,{IP:"0.0.0.0",PrefixLength:24})},m=()=>{const e=JSON.parse(JSON.stringify(n.value.current));e.Port=+(r.ruleForm.Port||"1805"),e.Lans=r.ruleForm.Lans.map((e=>(e.PrefixLength=+e.PrefixLength,e))),xe(e).then((()=>{r.show=!1,i.nk.success("已操作!"),a("change")})).catch((()=>{i.nk.error("操作失败!")}))};return{state:r,ruleFormRef:o,handleMaskChange:s,handleDel:c,handleAdd:h,handleSave:m}}};const ma=(0,F.A)(ha,[["render",ca],["__scopeId","data-v-5abfef9c"]]);var pa=ma;const ga={key:0},fa=["title","onClick"],ka=["onClick"];function va(e,a,l,n,o,r){const s=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(s,{prop:"tunnel",label:"隧道",width:"70"},{default:(0,t.k6)((e=>[n.tunnel.list[e.row.MachineId]?((0,t.uX)(),(0,t.CE)("div",ga,[(0,t.Lk)("a",{href:"javascript:;",class:(0,E.C4)(["a-line",{yellow:n.tunnel.list[e.row.MachineId].NeedReboot}]),title:n.tunnel.list[e.row.MachineId].NeedReboot?"需要重启":"调整网关层级有助于打洞成功",onClick:a=>n.handleTunnel(n.tunnel.list[e.row.MachineId],e.row)},[(0,t.Lk)("span",null,"网关:"+(0,E.v_)(n.tunnel.list[e.row.MachineId].RouteLevel)+"+"+(0,E.v_)(n.tunnel.list[e.row.MachineId].RouteLevelPlus),1)],10,fa)])):(0,t.Q3)("",!0),(0,t.Lk)("div",null,[(0,t.Lk)("a",{href:"javascript:;",title:"与此设备的隧道连接",class:(0,E.C4)(["a-line",{green:n.connectionCount(e.row.MachineId)>0}]),onClick:a=>n.handleConnections(e.row)},[(0,t.eW)(" 连接:"),(0,t.Lk)("span",null,(0,E.v_)(n.connectionCount(e.row.MachineId)),1)],10,ka)])])),_:1})}var wa=l(83);const ba=Symbol(),Fa=()=>{(0,d.B)();const e=(0,u.KR)({timer:0,showEdit:!1,current:null,list:{},hashcode:0});(0,t.Gt)(ba,e);const a=()=>{(0,wa.r7)(e.value.hashcode.toString()).then((l=>{e.value.hashcode=l.HashCode,l.List&&(e.value.list=l.List),e.value.timer=setTimeout(a,1060)})).catch((()=>{e.value.timer=setTimeout(a,1060)}))},l=a=>{e.value.current=a,e.value.showEdit=!0},n=()=>{(0,wa.gM)()},o=()=>{clearTimeout(e.value.timer)},r=a=>Object.values(e.value.list).sort(((e,a)=>e.RouteLevel+e.RouteLevelPlus-a.RouteLevel+a.RouteLevelPlus)).map((e=>e.MachineId));return{tunnel:e,_getTunnelInfo:a,handleTunnelEdit:l,handleTunnelRefresh:n,clearTunnelTimeout:o,sortTunnel:r}},Ca=()=>(0,t.WQ)(ba),La=(e="0")=>(0,Me.zG)("forwardclient/connections",e),Ea=e=>(0,Me.zG)("forwardclient/removeconnection",e),_a=(e="0")=>(0,Me.zG)("forwardclient/getcount",e),Sa=(e="0")=>(0,Me.zG)("forwardclient/get",e),Va=()=>(0,Me.zG)("forwardclient/bindips"),Pa=e=>(0,Me.zG)("forwardclient/remove",e),Ia=e=>(0,Me.zG)("forwardclient/add",e),ya=()=>(0,Me.zG)("forwardclient/refresh"),Ta=Symbol(),Ra=Symbol(),Ma=Symbol(),Wa=Symbol(),Aa=()=>{const e=(0,u.KR)({showEdit:!1,speedCache:{},current:"",currentName:"",hashcode:0,hashcode1:0,_updateRealTime:!1,updateRealTime:a=>{e.value.hashcode=0,e.value.hashcode1=0,e.value._updateRealTime=a}});(0,t.Gt)(Ta,e);const a=(0,u.KR)({timer:0,list:{}});(0,t.Gt)(Ra,a);const l=()=>{La(e.value.hashcode.toString()).then((t=>{0==e.value._updateRealTime&&(e.value.hashcode=t.HashCode),t.List&&(d(t.List,Ea),a.value.list=t.List),a.value.timer=setTimeout(l,1e3)})).catch((e=>{a.value.timer=setTimeout(l,1e3)}))},n=(0,u.KR)({timer:0,list:{}});(0,t.Gt)(Ma,n);const o=()=>{(0,we.kl)(e.value.hashcode1.toString()).then((a=>{0==e.value._updateRealTime&&(e.value.hashcode1=a.HashCode),a.List&&(d(a.List,we.vB),n.value.list=a.List),n.value.timer=setTimeout(o,1e3)})).catch((e=>{n.value.timer=setTimeout(o,1e3)}))},r=(0,u.KR)({timer:0,list:{}});(0,t.Gt)(Wa,r);const s=()=>{We(e.value.hashcode1.toString()).then((a=>{0==e.value._updateRealTime&&(e.value.hashcode1=a.HashCode),a.List&&(d(a.List,Ae),r.value.list=a.List),r.value.timer=setTimeout(s,1e3)})).catch((e=>{r.value.timer=setTimeout(s,1e3)}))},d=(a,l)=>{const t=e.value.speedCache;for(let e in a){const n=a[e];n.removeFunc=l;const o=`${n.RemoteMachineId}-${n.TransactionId}`,r=t[o]||{SendBytes:0,ReceiveBytes:0};n.SendBytesText=i(n.SendBytes-r.SendBytes),n.ReceiveBytesText=i(n.ReceiveBytes-r.ReceiveBytes),r.SendBytes=n.SendBytes,r.ReceiveBytes=n.ReceiveBytes,t[o]=r}},i=e=>{let a=0;while(e>=1024)e/=1024,a++;return`${e.toFixed(2)}${["B/s","KB/s","MB/s","GB/s","TB/s"][a]}`},c=a=>{e.value.current=a.MachineId,e.value.currentName=a.MachineName,e.value.showEdit=!0},h=()=>{clearTimeout(a.value.timer),clearTimeout(n.value.timer),clearTimeout(r.value.timer)};return{connections:e,forwardConnections:a,_getForwardConnections:l,tuntapConnections:n,_getTuntapConnections:o,socks5Connections:r,_getSocks5Connections:s,handleTunnelConnections:c,clearConnectionsTimeout:h}},Ba=()=>(0,t.WQ)(Ta),za=()=>(0,t.WQ)(Ra),Na=()=>(0,t.WQ)(Ma),xa=()=>(0,t.WQ)(Wa);var Xa={emits:["edit","refresh"],setup(e,{emit:a}){const l=(0,d.B)(),n=(0,t.EW)((()=>l.value.config.Client.Id)),o=(0,t.EW)((()=>l.value.hasAccess("TunnelChangeSelf"))),r=(0,t.EW)((()=>l.value.hasAccess("TunnelChangeOther"))),s=Ca(),u=(Ba(),za()),i=Na(),c=xa(),h=e=>[u.value.list[e],i.value.list[e],c.value.list[e]].filter((e=>!!e&&e.Connected)).length,m=(e,l)=>{if(n.value===e.MachineId){if(!o.value)return}else if(!r.value)return;e.device=l,a("edit",e)},p=()=>{a("refresh")},g=e=>{a("connections",e)};return{tunnel:s,handleTunnel:m,handleTunnelRefresh:p,connectionCount:h,handleConnections:g}}};const Ua=(0,F.A)(Xa,[["render",va],["__scopeId","data-v-d457c416"]]);var Da=Ua;const Ka=e=>((0,t.Qi)("data-v-1f7f67a4"),e=e(),(0,t.jt)(),e),Ga=Ka((()=>(0,t.Lk)("div",null,"网关层级为你的设备与外网的距离,你可以手动调整数值",-1))),Qa=Ka((()=>(0,t.Lk)("div",null,"光猫映射了端口后,可以直接连接,把TcpPortMap调到第一",-1))),Oa={class:"t-c w-100"};function qa(e,a,l,n,o,r){const s=(0,t.g2)("el-form-item"),d=(0,t.g2)("el-input"),u=(0,t.g2)("el-col"),i=(0,t.g2)("el-input-number"),c=(0,t.g2)("el-row"),h=(0,t.g2)("el-button"),m=(0,t.g2)("el-form"),p=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(p,{modelValue:n.state.show,"onUpdate:modelValue":a[5]||(a[5]=e=>n.state.show=e),"close-on-click-modal":!1,"append-to":".app-wrap",title:`设置[${n.state.machineName}]网关`,width:"400"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(m,{ref:"ruleFormRef",model:n.state.ruleForm,rules:n.state.rules,"label-width":"auto"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"",prop:"alert"},{default:(0,t.k6)((()=>[Ga])),_:1}),(0,t.bF)(s,{label:""},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(u,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"网关层级",prop:"RouteLevel"},{default:(0,t.k6)((()=>[(0,t.bF)(d,{readonly:"",modelValue:n.state.ruleForm.RouteLevel,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.ruleForm.RouteLevel=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(u,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"调整层级",prop:"RouteLevelPlus"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{modelValue:n.state.ruleForm.RouteLevelPlus,"onUpdate:modelValue":a[1]||(a[1]=e=>n.state.ruleForm.RouteLevelPlus=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(s,{label:"",prop:"alert"},{default:(0,t.k6)((()=>[Qa])),_:1}),(0,t.bF)(s,{label:""},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(u,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"外网端口",prop:"PortMapWan"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{modelValue:n.state.ruleForm.PortMapWan,"onUpdate:modelValue":a[2]||(a[2]=e=>n.state.ruleForm.PortMapWan=e)},null,8,["modelValue"])])),_:1})])),_:1}),(0,t.bF)(u,{span:12},{default:(0,t.k6)((()=>[(0,t.bF)(s,{label:"内网端口",prop:"PortMapLan"},{default:(0,t.k6)((()=>[(0,t.bF)(i,{modelValue:n.state.ruleForm.PortMapLan,"onUpdate:modelValue":a[3]||(a[3]=e=>n.state.ruleForm.PortMapLan=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,t.bF)(s,{label:"",prop:"Btns"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",Oa,[(0,t.bF)(h,{onClick:a[4]||(a[4]=e=>n.state.show=!1)},{default:(0,t.k6)((()=>[(0,t.eW)("取消")])),_:1}),(0,t.bF)(h,{type:"primary",onClick:n.handleSave},{default:(0,t.k6)((()=>[(0,t.eW)("确认")])),_:1},8,["onClick"])])])),_:1})])),_:1},8,["model","rules"])])])),_:1},8,["modelValue","title"])}var $a={props:["modelValue"],emits:["change","update:modelValue"],setup(e,{emit:a}){const l=Ca(),n=(0,u.KR)(null),o=(0,u.Kh)({show:!0,machineName:l.value.current.device.MachineName,ruleForm:{RouteLevel:l.value.current.RouteLevel,RouteLevelPlus:l.value.current.RouteLevelPlus,PortMapWan:l.value.current.PortMapWan,PortMapLan:l.value.current.PortMapLan},rules:{}});(0,t.wB)((()=>o.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const r=()=>{const e=JSON.parse(JSON.stringify(l.value.current));e.RouteLevel=+o.ruleForm.RouteLevel,e.RouteLevelPlus=+o.ruleForm.RouteLevelPlus,e.PortMapWan=+o.ruleForm.PortMapWan,e.PortMapLan=+o.ruleForm.PortMapLan,(0,wa.KW)(e).then((()=>{o.show=!1,i.nk.success("已操作!"),a("change")})).catch((()=>{i.nk.error("操作失败!")}))};return{state:o,ruleFormRef:n,handleSave:r}}};const ja=(0,F.A)($a,[["render",qa],["__scopeId","data-v-1f7f67a4"]]);var Ha=ja;const Ja=["onClick"],Ya=["onClick"],Za=["onClick"],el=["onClick"];function al(e,a,l,n,o,r){const s=(0,t.g2)("el-table-column");return(0,t.uX)(),(0,t.Wv)(s,{prop:"forward",label:"转发/穿透"},{default:(0,t.k6)((a=>[a.row.Connected?((0,t.uX)(),(0,t.CE)(t.FK,{key:0},[a.row.isSelf&&(n.hasForwardShowSelf||e.hasForwardSelf)?((0,t.uX)(),(0,t.CE)(t.FK,{key:0},[(0,t.Lk)("div",null,[(0,t.Lk)("a",{href:"javascript:;",title:"管理自己的端口转发",onClick:e=>n.handleEdit(a.row.MachineId,a.row.MachineName)}," 端口转发("+(0,E.v_)(n.forward.list[a.row.MachineId]>99?"99+":n.forward.list[a.row.MachineId])+") ",9,Ja)]),(0,t.Lk)("div",null,[(0,t.Lk)("a",{href:"javascript:;",title:"管理自己的内网穿透",onClick:e=>n.handleSEdit(a.row.MachineId,a.row.MachineName)}," 内网穿透("+(0,E.v_)(n.sforward.list[a.row.MachineId]>99?"99+":n.sforward.list[a.row.MachineId])+") ",9,Ya)])],64)):n.hasForwardShowOther||e.hasForwardOther?((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.Lk)("div",null,[(0,t.Lk)("a",{href:"javascript:;",title:"管理自己的端口转发",onClick:e=>n.handleEdit(a.row.MachineId,a.row.MachineName)}," 端口转发("+(0,E.v_)(n.forward.list[a.row.MachineId]>99?"99+":n.forward.list[a.row.MachineId])+") ",9,Za)]),(0,t.Lk)("div",null,[(0,t.Lk)("a",{href:"javascript:;",title:"管理自己的内网穿透",onClick:e=>n.handleSEdit(a.row.MachineId,a.row.MachineName)}," 内网穿透("+(0,E.v_)(n.sforward.list[a.row.MachineId]>99?"99+":n.sforward.list[a.row.MachineId])+") ",9,el)])],64)):(0,t.Q3)("",!0)],64)):(0,t.Q3)("",!0)])),_:1})}const ll=Symbol(),tl=()=>{(0,d.B)();const e=(0,u.KR)({timer:0,showEdit:!1,machineId:null,list:{},hashcode:0});(0,t.Gt)(ll,e);const a=()=>{ya()},l=()=>{_a(e.value.hashcode.toString()).then((a=>{e.value.hashcode=a.HashCode,a.List&&(e.value.list=a.List),e.value.timer=setTimeout(l,1020)})).catch((()=>{e.value.timer=setTimeout(l,1020)}))},n=a=>{e.value.machineId=a[0],e.value.machineName=a[1],e.value.showEdit=!0},o=()=>{clearTimeout(e.value.timer)};return{forward:e,_getForwardCountInfo:l,handleForwardEdit:n,clearForwardTimeout:o,handleForwardRefresh:a}},nl=()=>(0,t.WQ)(ll);var ol=l(743);const rl=Symbol(),sl=()=>{const e=(0,d.B)(),a=((0,t.EW)((()=>e.value.config.Client.Id)),(0,u.KR)({timer:0,showEdit:!1,showCopy:!1,list:{},testTimer:0,hashcode:0,machineid:"",machineName:""}));(0,t.Gt)(rl,a);const l=()=>{(0,ol.a9)()},n=()=>{(0,ol.gz)(a.value.hashcode.toString()).then((e=>{a.value.hashcode=e.HashCode,e.List&&(a.value.list=e.List),a.value.timer=setTimeout(n,1020)})).catch((()=>{a.value.timer=setTimeout(n,1020)}))},o=e=>{a.value.machineid=e[0],a.value.machineName=e[1],a.value.showEdit=!0},r=()=>{clearTimeout(a.value.timer),clearTimeout(a.value.testTimer)};return{sforward:a,_getSForwardCountInfo:n,handleSForwardEdit:o,clearSForwardTimeout:r,handleSForwardRefresh:l}},dl=()=>(0,t.WQ)(rl);var ul={emits:["edit","sedit"],setup(e,{emit:a}){const l=nl(),n=dl(),o=(0,d.B)(),r=(0,t.EW)((()=>o.value.config.Client.Id)),s=(0,t.EW)((()=>o.value.hasAccess("ForwardShowSelf"))),u=(0,t.EW)((()=>o.value.hasAccess("ForwardShowOther"))),i=(0,t.EW)((()=>o.value.hasAccess("ForwardSelf"))),c=(0,t.EW)((()=>o.value.hasAccess("ForwardOther"))),h=(e,l)=>{if(r.value===e){if(!i.value)return}else if(!c.value)return;a("edit",[e,l])},m=(e,l)=>{if(r.value===e){if(!i.value)return}else if(!c.value)return;a("sedit",[e,l])},p=()=>{a("refresh")};return{forward:l,sforward:n,hasForwardShowSelf:s,hasForwardShowOther:u,handleEdit:h,handleSEdit:m,handleForwardRefresh:p}}};const il=(0,F.A)(ul,[["render",al],["__scopeId","data-v-2977b9ac"]]);var cl=il;const hl={class:"t-c head"},ml=["title"],pl={class:"t-c"},gl={class:"page-wrap"},fl=["title"];function kl(e,a,l,n,o,r){const s=(0,t.g2)("el-button"),d=(0,t.g2)("el-input"),u=(0,t.g2)("el-table-column"),i=(0,t.g2)("el-option"),c=(0,t.g2)("el-select"),h=(0,t.g2)("WarnTriangleFilled"),m=(0,t.g2)("el-icon"),p=(0,t.g2)("el-pagination"),g=(0,t.g2)("el-switch"),f=(0,t.g2)("Delete"),k=(0,t.g2)("el-popconfirm"),v=(0,t.g2)("el-table"),w=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(w,{modelValue:n.state.show,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:`【${n.state.machineName}】的端口转发`,top:"1vh",width:"780"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.Lk)("div",hl,[(0,t.bF)(s,{type:"success",size:"small",onClick:n.handleAdd},{default:(0,t.k6)((()=>[(0,t.eW)("添加")])),_:1},8,["onClick"]),(0,t.bF)(s,{size:"small",onClick:n.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)("刷新")])),_:1},8,["onClick"])]),(0,t.bF)(v,{data:n.state.data,size:"small",border:"",height:"500",onCellDblclick:n.handleCellClick},{default:(0,t.k6)((()=>[(0,t.bF)(u,{property:"Name",label:"名称",width:"100"},{default:(0,t.k6)((e=>[e.row.NameEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(d,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":a=>e.row.Name=a,onBlur:a=>n.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.eW)((0,E.v_)(e.row.Name),1)],64))])),_:1}),(0,t.bF)(u,{prop:"BufferSize",label:"缓冲区",width:"80"},{default:(0,t.k6)((e=>[e.row.BufferSizeEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(c,{key:0,modelValue:e.row.BufferSize,"onUpdate:modelValue":a=>e.row.BufferSize=a,placeholder:"Select",size:"small",disabled:e.row.Started,onChange:a=>n.handleEditBlur(e.row,"BufferSize")},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.bufferSize,((e,a)=>((0,t.uX)(),(0,t.Wv)(i,{key:a,label:e,value:a},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","disabled","onChange"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.eW)((0,E.v_)(n.state.bufferSize[e.row.BufferSize]),1)],64))])),_:1}),(0,t.bF)(u,{property:"BindIPAddress",label:"监听IP",width:"140"},{default:(0,t.k6)((e=>[e.row.BindIPAddressEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(c,{key:0,modelValue:e.row.BindIPAddress,"onUpdate:modelValue":a=>e.row.BindIPAddress=a,size:"small",disabled:e.row.Started,onChange:a=>n.handleEditBlur(e.row,"BindIPAddress")},{default:(0,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.ips,(e=>((0,t.uX)(),(0,t.Wv)(i,{key:e,label:e,value:e},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","disabled","onChange"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.eW)((0,E.v_)(e.row.BindIPAddress),1)],64))])),_:1}),(0,t.bF)(u,{property:"Port",label:"监听端口",width:"80"},{default:(0,t.k6)((e=>[e.row.PortEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(d,{key:0,type:"number",autofocus:"",size:"small",modelValue:e.row.Port,"onUpdate:modelValue":a=>e.row.Port=a,onBlur:a=>n.handleEditBlur(e.row,"Port")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[e.row.Msg?((0,t.uX)(),(0,t.CE)("div",{key:0,class:"error red",title:e.row.Msg},[(0,t.Lk)("span",null,(0,E.v_)(e.row.Port),1),(0,t.bF)(m,{size:"20"},{default:(0,t.k6)((()=>[(0,t.bF)(h)])),_:1})],8,ml)):((0,t.uX)(),(0,t.CE)("span",{key:1,class:(0,E.C4)({green:e.row.Started})},(0,E.v_)(e.row.Port),3))],64))])),_:1}),(0,t.bF)(u,{property:"MachineId",label:"目标"},{default:(0,t.k6)((e=>[e.row.MachineIdEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(c,{key:0,modelValue:e.row.MachineId,"onUpdate:modelValue":a=>e.row.MachineId=a,onChange:a=>n.handleEditBlur(e.row,"MachineId"),filterable:"",remote:"",loading:n.state.loading,"remote-method":n.handleSearch},{header:(0,t.k6)((()=>[(0,t.Lk)("div",pl,[(0,t.Lk)("div",gl,[(0,t.bF)(p,{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,t.k6)((()=>[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(n.state.machineIds.List,((e,a)=>((0,t.uX)(),(0,t.Wv)(i,{key:a,label:e.MachineName,value:e.MachineId},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange","loading","remote-method"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.eW)((0,E.v_)(e.row.MachineName),1)],64))])),_:1}),(0,t.bF)(u,{property:"TargetEP",label:"目标服务",width:"140"},{default:(0,t.k6)((e=>[e.row.TargetEPEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(d,{key:0,autofocus:"",size:"small",modelValue:e.row.TargetEP,"onUpdate:modelValue":a=>e.row.TargetEP=a,onBlur:a=>n.handleEditBlur(e.row,"TargetEP")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[e.row.TargetMsg?((0,t.uX)(),(0,t.CE)("div",{key:0,class:"error red",title:e.row.TargetMsg},[(0,t.Lk)("span",null,(0,E.v_)(e.row.TargetEP),1),(0,t.bF)(m,{size:"20"},{default:(0,t.k6)((()=>[(0,t.bF)(h)])),_:1})],8,fl)):((0,t.uX)(),(0,t.CE)("span",{key:1,class:(0,E.C4)({green:e.row.Started})},(0,E.v_)(e.row.TargetEP),3))],64))])),_:1}),(0,t.bF)(u,{property:"Started",label:"状态",width:"60"},{default:(0,t.k6)((e=>[(0,t.bF)(g,{modelValue:e.row.Started,"onUpdate:modelValue":a=>e.row.Started=a,onChange:a=>n.handleStartChange(e.row),"inline-prompt":"","active-text":"开","inactive-text":"关"},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,t.bF)(u,{label:"操作",width:"54"},{default:(0,t.k6)((e=>[(0,t.bF)(k,{"confirm-button-text":"确认","cancel-button-text":"取消",title:"删除不可逆,是否确认?",onConfirm:a=>n.handleDel(e.row.Id)},{reference:(0,t.k6)((()=>[(0,t.bF)(s,{type:"danger",size:"small"},{default:(0,t.k6)((()=>[(0,t.bF)(m,null,{default:(0,t.k6)((()=>[(0,t.bF)(f)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])])),_:1})])),_:1},8,["data","onCellDblclick"])])])),_:1},8,["modelValue","onOpen","title"])}var vl={props:["data","modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:k.DtC,Delete:k.epd},setup(e,{emit:a}){const l=(0,d.B)(),n=nl(),o=(0,u.Kh)({show:!0,machineId:n.value.machineId,machineName:n.value.machineName,data:[],ips:[],bufferSize:l.value.bufferSize,loading:!1,machineIds:{Request:{Page:1,Size:10,Name:""},Count:0,List:[]}});(0,t.wB)((()=>o.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const r=()=>{Va().then((e=>{e.splice(0,0,"127.0.0.1"),e.splice(0,0,"0.0.0.0"),o.ips=e})).catch((()=>{}))},s=()=>{Sa(o.machineId).then((e=>{o.data=e})).catch((()=>{}))},c=e=>{o.machineIds.Request.Name=e,h()},h=()=>{o.loading=!0,(0,g.BS)(o.machineIds.Request).then((e=>{o.loading=!1,o.machineIds.Request=e.Request,o.machineIds.Count=e.Count,o.machineIds.List=e.List})).catch((e=>{o.loading=!1}))},m=e=>{o.machineIds.Request.Page=e,h()},p=()=>{s(),h()},f=(e,a)=>{w(e,a.property)},k=()=>{s(),i.nk.success("已刷新")},v=()=>{L({ID:0,Name:"",Port:0,TargetEP:"127.0.0.1:80",machineId:""})},w=(e,a)=>{e.Started?i.nk.error("请先停止"):(o.data.forEach((e=>{e["NameEditing"]=!1,e["PortEditing"]=!1,e["TargetEPEditing"]=!1,e["BindIPAddressEditing"]=!1,e["BufferSizeEditing"]=!1,e["MachineIdEditing"]=!1})),e[`${a}Editing`]=!0)},b=(e,a)=>{if(e.Started)return void i.nk.error("请先停止");e[`${a}Editing`]=!1;const l=o.machineIds.List.find((a=>a.MachineId==e.MachineId));l&&(e.MachineName=l.MachineName),L(e)},F=e=>{Pa({machineId:o.machineId,Id:e}).then((()=>{s()}))},C=e=>{L(e)},L=e=>{e.Port=parseInt(e.Port),Ia({machineId:o.machineId,data:e}).then((()=>{s()})).catch((e=>{i.nk.error(e)}))};return(0,t.sV)((()=>{s(),r()})),{state:o,handleOnShowList:p,handleCellClick:f,handleRefresh:k,handleAdd:v,handleEdit:w,handleEditBlur:b,handleDel:F,handleStartChange:C,handleSearch:c,handlePageChange:m}}};const wl=(0,F.A)(vl,[["render",kl],["__scopeId","data-v-15b05a01"]]);var bl=wl;const Fl={class:"t-c head"},Cl=["title"],Ll=["title"];function El(e,a,l,n,o,r){const s=(0,t.g2)("el-button"),d=(0,t.g2)("el-input"),u=(0,t.g2)("el-table-column"),i=(0,t.g2)("WarnTriangleFilled"),c=(0,t.g2)("el-icon"),h=(0,t.g2)("el-switch"),m=(0,t.g2)("Delete"),p=(0,t.g2)("el-popconfirm"),g=(0,t.g2)("el-table"),f=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(f,{modelValue:n.state.show,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.show=e),onOpen:n.handleOnShowList,"append-to":".app-wrap",title:`【${n.machineName}】的内网穿透`,top:"1vh",width:"700"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.Lk)("div",Fl,[(0,t.bF)(s,{type:"success",size:"small",onClick:n.handleAdd},{default:(0,t.k6)((()=>[(0,t.eW)("添加")])),_:1},8,["onClick"]),(0,t.bF)(s,{size:"small",onClick:n.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)("刷新")])),_:1},8,["onClick"])]),(0,t.bF)(g,{data:n.state.data,size:"small",border:"",height:"500",onCellDblclick:n.handleCellClick},{default:(0,t.k6)((()=>[(0,t.bF)(u,{property:"Name",label:"名称"},{default:(0,t.k6)((e=>[e.row.NameEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(d,{key:0,autofocus:"",size:"small",modelValue:e.row.Name,"onUpdate:modelValue":a=>e.row.Name=a,onBlur:a=>n.handleEditBlur(e.row,"Name")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[(0,t.eW)((0,E.v_)(e.row.Name),1)],64))])),_:1}),(0,t.bF)(u,{prop:"BufferSize",label:"缓冲区",width:"100"},{default:(0,t.k6)((e=>[(0,t.Lk)("span",null,(0,E.v_)(1<[e.row.TempEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(d,{key:0,autofocus:"",size:"small",modelValue:e.row.Temp,"onUpdate:modelValue":a=>e.row.Temp=a,onBlur:a=>n.handleEditBlur(e.row,"Temp")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[e.row.Msg?((0,t.uX)(),(0,t.CE)("div",{key:0,class:"error red",title:e.row.Msg},[(0,t.Lk)("span",null,(0,E.v_)(e.row.Temp),1),(0,t.bF)(c,{size:"20"},{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1})],8,Cl)):((0,t.uX)(),(0,t.CE)("span",{key:1,class:(0,E.C4)({green:e.row.Started})},(0,E.v_)(e.row.Temp),3))],64))])),_:1}),(0,t.bF)(u,{property:"LocalEP",label:"本机服务",width:"140"},{default:(0,t.k6)((e=>[e.row.LocalEPEditing&&0==e.row.Started?((0,t.uX)(),(0,t.Wv)(d,{key:0,autofocus:"",size:"small",modelValue:e.row.LocalEP,"onUpdate:modelValue":a=>e.row.LocalEP=a,onBlur:a=>n.handleEditBlur(e.row,"LocalEP")},null,8,["modelValue","onUpdate:modelValue","onBlur"])):((0,t.uX)(),(0,t.CE)(t.FK,{key:1},[e.row.LocalMsg?((0,t.uX)(),(0,t.CE)("div",{key:0,class:"error red",title:e.row.LocalMsg},[(0,t.Lk)("span",null,(0,E.v_)(e.row.LocalEP),1),(0,t.bF)(c,{size:"20"},{default:(0,t.k6)((()=>[(0,t.bF)(i)])),_:1})],8,Ll)):((0,t.uX)(),(0,t.CE)("span",{key:1,class:(0,E.C4)({green:e.row.Started})},(0,E.v_)(e.row.LocalEP),3))],64))])),_:1}),(0,t.bF)(u,{property:"Started",label:"状态",width:"60"},{default:(0,t.k6)((e=>[(0,t.bF)(h,{modelValue:e.row.Started,"onUpdate:modelValue":a=>e.row.Started=a,onChange:a=>n.handleStartChange(e.row),"inline-prompt":"","active-text":"是","inactive-text":"否"},null,8,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,t.bF)(u,{label:"操作",width:"54"},{default:(0,t.k6)((e=>[(0,t.bF)(p,{"confirm-button-text":"确认","cancel-button-text":"取消",title:"删除不可逆,是否确认?",onConfirm:a=>n.handleDel(e.row.Id)},{reference:(0,t.k6)((()=>[(0,t.bF)(s,{type:"danger",size:"small"},{default:(0,t.k6)((()=>[(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(m)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])])),_:1})])),_:1},8,["data","onCellDblclick"])])])),_:1},8,["modelValue","onOpen","title"])}var _l={props:["data","modelValue"],emits:["update:modelValue"],components:{WarnTriangleFilled:k.DtC,Delete:k.epd},setup(e,{emit:a}){const l=(0,d.B)(),n=dl(),o=(0,u.Kh)({bufferSize:l.value.bufferSize,show:!0,data:[],timerTestLocal:0});(0,t.wB)((()=>o.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e)}),300)}));const r=()=>{console.log(n.value.machineid),(0,ol.eX)(n.value.machineid).then((e=>{o.timerTestLocal=setTimeout(r,1e3)})).catch((()=>{o.timerTestLocal=setTimeout(r,1e3)}))},s=()=>{(0,ol.pY)(n.value.machineid).then((e=>{e.forEach((e=>{e.Temp=(e.Domain||e.RemotePort).toString(),e.RemotePort=0,e.Domain=""})),o.data=e})).catch((()=>{}))},c=()=>{s()},h=(e,a)=>{g(e,a.property)},m=()=>{s(),i.nk.success("已刷新")},p=()=>{const e={Id:0,Name:"",RemotePort:0,LocalEP:"127.0.0.1:80",Domain:"",Temp:""};(0,ol.Qs)({machineid:n.value.machineid,data:e}).then((()=>{setTimeout((()=>{s()}),100)})).catch((e=>{i.nk.error(e)}))},g=(e,a)=>{e.Started?i.nk.error("请先停止运行"):(o.data.forEach((e=>{e["NameEditing"]=!1,e["RemotePortEditing"]=!1,e["LocalEPEditing"]=!1,e["DomainEditing"]=!1,e["TempEditing"]=!1})),e[`${a}Editing`]=!0)},f=(e,a)=>{e.Started?i.nk.error("请先停止运行"):(e[`${a}Editing`]=!1,w(e))},k=e=>{(0,ol.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,ol.Qs)({machineid:n.value.machineid,data:e}).then((()=>{setTimeout((()=>{s()}),100)})).catch((e=>{i.nk.error(e)})))};return(0,t.sV)((()=>{s(),r()})),(0,t.hi)((()=>{clearTimeout(o.timerTestLocal)})),{state:o,machineName:n.value.machineName,handleOnShowList:c,handleCellClick:h,handleRefresh:m,handleAdd:p,handleEdit:g,handleEditBlur:f,handleDel:k,handleStartChange:v}}};const Sl=(0,F.A)(_l,[["render",El],["__scopeId","data-v-583e3c84"]]);var Vl=Sl;function Pl(e,a,l,n,o,r){const s=(0,t.g2)("el-table-column"),d=(0,t.g2)("Delete"),u=(0,t.g2)("el-icon"),i=(0,t.g2)("el-button"),c=(0,t.g2)("el-popconfirm"),h=(0,t.g2)("el-table"),m=(0,t.g2)("el-dialog");return(0,t.uX)(),(0,t.Wv)(m,{modelValue:n.state.show,"onUpdate:modelValue":a[0]||(a[0]=e=>n.state.show=e),"append-to":".app-wrap",title:`与[${n.state.machineName}]的链接`,top:"1vh",width:"700"},{default:(0,t.k6)((()=>[(0,t.Lk)("div",null,[(0,t.bF)(h,{data:n.state.data,size:"small",border:"",height:"500"},{default:(0,t.k6)((()=>[(0,t.bF)(s,{property:"RemoteMachineId",label:"目标"},{default:(0,t.k6)((e=>[(0,t.Lk)("div",{class:(0,E.C4)({green:e.row.Connected})},[(0,t.Lk)("p",null,(0,E.v_)(e.row.IPEndPoint),1),(0,t.Lk)("p",null,"ssl : "+(0,E.v_)(e.row.SSL),1)],2)])),_:1}),(0,t.bF)(s,{property:"TransactionId",label:"事务",width:"80"},{default:(0,t.k6)((e=>[(0,t.Lk)("span",null,(0,E.v_)(n.state.transactions[e.row.TransactionId]),1)])),_:1}),(0,t.bF)(s,{property:"TransportName",label:"协议"},{default:(0,t.k6)((e=>[(0,t.Lk)("div",null,[(0,t.Lk)("p",null,(0,E.v_)(e.row.TransportName)+"("+(0,E.v_)(n.state.protocolTypes[e.row.ProtocolType])+")",1),(0,t.Lk)("p",null,(0,E.v_)(n.state.types[e.row.Type])+" - "+(0,E.v_)(1<[(0,t.Lk)("span",null,(0,E.v_)(e.row.Delay)+"ms",1)])),_:1}),(0,t.bF)(s,{property:"Bytes",label:"通信"},{default:(0,t.k6)((e=>[(0,t.Lk)("div",null,[(0,t.Lk)("p",null,"up : "+(0,E.v_)(e.row.SendBytesText),1),(0,t.Lk)("p",null,"down : "+(0,E.v_)(e.row.ReceiveBytesText),1)])])),_:1}),(0,t.bF)(s,{label:"操作",width:"54"},{default:(0,t.k6)((e=>[n.hasTunnelRemove?((0,t.uX)(),(0,t.Wv)(c,{key:0,"confirm-button-text":"确认","cancel-button-text":"取消",title:"确定关闭此连接?",onConfirm:a=>n.handleDel(e.row)},{reference:(0,t.k6)((()=>[(0,t.bF)(i,{type:"danger",size:"small"},{default:(0,t.k6)((()=>[(0,t.bF)(u,null,{default:(0,t.k6)((()=>[(0,t.bF)(d)])),_:1})])),_:1})])),_:2},1032,["onConfirm"])):(0,t.Q3)("",!0)])),_:1})])),_:1},8,["data"])])])),_:1},8,["modelValue","title"])}var Il={props:["modelValue"],emits:["change","update:modelValue"],components:{Delete:k.epd},setup(e,{emit:a}){const l=(0,d.B)(),n=(0,t.EW)((()=>l.value.hasAccess("TunnelRemove"))),o=Ba(),r=za(),s=Na(),c=xa(),h=(0,u.Kh)({show:!0,protocolTypes:{1:"tcp",2:"udp",4:"msquic"},types:{0:"打洞",1:"中继"},transactions:{forward:"端口转发",tuntap:"虚拟网卡",socks5:"代理转发"},machineName:o.value.currentName,data:(0,t.EW)((()=>[r.value.list[o.value.current],s.value.list[o.value.current],c.value.list[o.value.current]].filter((e=>!!e))))});(0,t.wB)((()=>h.show),(e=>{e||setTimeout((()=>{a("update:modelValue",e),a("change")}),300)}));const m=e=>{n.value&&e.removeFunc(e.RemoteMachineId).then((()=>{i.nk.success("删除成功")})).catch((()=>{}))};return(0,t.sV)((()=>{o.value.updateRealTime(!0)})),(0,t.hi)((()=>{o.value.updateRealTime(!1)})),{state:h,handleDel:m,hasTunnelRemove:n}}};const yl=(0,F.A)(Il,[["render",Pl],["__scopeId","data-v-56e79745"]]);var Tl=yl,Rl=l(9383),Ml={components:{Oper:L,Device:x,DeviceEdit:Q,AccessEdit:Y,Tunnel:Da,TunnelEdit:Ha,ConnectionsEdit:Tl,Tuntap:oe,TuntapEdit:Ce,TuntapLease:ye,Socks5:na,Socks5Edit:pa,Forward:cl,ForwardEdit:bl,SForwardEdit:Vl},setup(e){const a=(0,d.B)(),l=(0,u.Kh)({height:(0,t.EW)((()=>a.value.height-90))}),{devices:n,machineId:o,_getSignList:r,_getSignList1:s,handleDeviceEdit:c,handleAccessEdit:h,handlePageChange:m,handlePageSizeChange:p,handleDel:g,clearDevicesTimeout:f,setSort:k}=(0,O.r)(),{tuntap:v,_getTuntapInfo:b,handleTuntapEdit:F,handleTuntapRefresh:C,clearTuntapTimeout:L,getTuntapMachines:E,sortTuntapIP:_}=(0,ae.O)(),{socks5:S,_getSocks5Info:V,handleSocks5Edit:P,handleSocks5Refresh:I,clearSocks5Timeout:y,getSocks5Machines:T,sortSocks5:R}=De(),{tunnel:M,_getTunnelInfo:W,handleTunnelEdit:A,handleTunnelRefresh:B,clearTunnelTimeout:z,sortTunnel:N}=Fa(),{forward:x,_getForwardCountInfo:X,handleForwardEdit:U,clearForwardTimeout:D,handleForwardRefresh:K}=tl(),{sforward:G,_getSForwardCountInfo:Q,handleSForwardEdit:q,clearSForwardTimeout:$,handleSForwardRefresh:j}=sl(),{connections:H,forwardConnections:J,_getForwardConnections:Y,tuntapConnections:Z,_getTuntapConnections:ee,socks5Connections:le,_getSocks5Connections:te,handleTunnelConnections:ne,clearConnectionsTimeout:oe}=Aa(),{_getUpdater:re,_subscribeUpdater:se,clearUpdaterTimeout:de}=(0,Rl.d)(),{_getAccessInfo:ue,clearAccessTimeout:ie,handleAccesssRefresh:ce}=(0,w.Y)(),he=e=>{n.page.Request.Prop=e.prop,n.page.Request.Asc="ascending"==e.order;let a=new Promise(((e,a)=>{e()}));if("tunnel"==e.prop){const e=N(n.page.Request.Asc);e.length>0&&(a=k(e))}else if("tuntap"==e.prop){const e=_(n.page.Request.Asc);e.length>0&&(a=k(e))}else if("socks5"==e.prop){const e=R(n.page.Request.Asc);e.length>0&&(a=k(e))}a.then((()=>{m()})).catch((()=>{}))},me=e=>{n.page.Request.Name=e||"",n.page.Request.Name?n.page.Request.Ids=E(n.page.Request.Name).concat(T(n.page.Request.Name)).reduce(((e,a)=>(-1==e.indexOf(a)&&e.push(a),e)),[]):n.page.Request.Ids=[],m(),B(),C(),I(),K(),j(),ce(),i.nk.success({message:"刷新成功",grouping:!0})},pe=()=>{m(),B(),C(),I(),ce(),i.nk.success({message:"刷新成功",grouping:!0})};return(0,t.sV)((()=>{m(),B(),C(),I(),K(),j(),ce(),r(),s(),b(),V(),W(),Y(),ee(),te(),X(),Q(),re(),se(),ue()})),(0,t.hi)((()=>{f(),oe(),L(),y(),z(),D(),$(),de(),ie()})),{state:l,devices:n,machineId:o,handleSortChange:he,handleDeviceEdit:c,handleAccessEdit:h,handlePageRefresh:me,handlePageSearch:pe,handlePageChange:m,handlePageSizeChange:p,handleDel:g,tuntap:v,handleTuntapEdit:F,handleTuntapRefresh:C,socks5:S,handleSocks5Edit:P,handleSocks5Refresh:I,tunnel:M,connections:H,handleTunnelEdit:A,handleTunnelRefresh:B,handleTunnelConnections:ne,forward:x,handleForwardEdit:U,sforward:G,handleSForwardEdit:q}}};const Wl=(0,F.A)(Ml,[["render",s],["__scopeId","data-v-8ac55320"]]);var Al=Wl}}]); \ No newline at end of file diff --git a/linker.tray.win/web/js/app.d832742c.js b/linker.tray.win/web/js/app.d832742c.js deleted file mode 100644 index a62701e7..00000000 --- a/linker.tray.win/web/js/app.d832742c.js +++ /dev/null @@ -1 +0,0 @@ -(function(){"use strict";var e={8835:function(e,n,t){t.d(n,{E1:function(){return a},Iv:function(){return u},P$:function(){return c},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=()=>(0,o.zG)("configclient/SyncNames"),a=e=>(0,o.zG)("configclient/Sync",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,a="";const s={},l={connected:!1,connecting:!1},d=()=>{const e=Date.now();for(let n in s){const t=s[n];e-t.time>t.timeout&&(t.reject("超时~"),delete s[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=s[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 s[e.RequestId]):f.push(e.Path,e.Content)},v=(e=c,n=a)=>{if(a=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 a=++r;try{s[a]={resolve:c,reject:u,errHandle:t,path:e,time:Date.now(),timeout:o};let r=JSON.stringify({Path:e,RequestId:a,Content:"string"==typeof n?n:JSON.stringify(n)});l.connected&&1==i.readyState?i.send(r):u("网络错误~")}catch(d){console.log(d),u("网络错误~"),delete s[a]}})),C=Symbol(),w=e=>{f.add(C,e)}},9299:function(e,n,t){t.d(n,{BS:function(){return s},SZ:function(){return c},Se:function(){return l},VN:function(){return u},gC:function(){return d},jU:function(){return i},nD:function(){return a},rd:function(){return r},zp:function(){return f}});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),a=e=>(0,o.zG)("signInclient/List",e),s=e=>(0,o.zG)("signInclient/ids",e),l=e=>(0,o.zG)("signInclient/del",e),d=e=>(0,o.zG)("signInclient/setname",e),f=e=>(0,o.zG)("signInclient/SetGroups",e)},1840: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"),a=(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)(a)])}var c=t(3830);const u={class:"port-wrap t-c"},a={class:"pdt-10"};function s(e,n,t,o,i,c){const s=(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)(s,{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",a,[(0,r.eW)(" 秘钥 : "),(0,r.bF)(s,{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)),a=(0,d.Kh)({api:u.api,psd:u.psd,showPort:!1}),s=(0,r.EW)((()=>0==n.value.api.connected&&a.showPort)),g=()=>{u.api=a.api,u.psd=a.psd,localStorage.setItem("api-cache",JSON.stringify(u)),(0,f.e3)(),(0,f.a1)(`ws://${a.api}`,a.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((()=>{a.showPort=!0}),500),(0,f.jH)((e=>{e&&(v(),b())})),t.isReady().then((()=>{a.api=o.query.api?`${window.location.hostname}:${o.query.api}`:a.api,a.psd=o.query.psd||a.psd,g()}))})),{state:a,showPort:s,handleConnect1:m}}},v=t(1241);const b=(0,v.A)(m,[["render",s],["__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(847),t.e(802),t.e(903)]).then(t.bind(t,9983)),redirect:"/full/index.html",children:[{path:"/full/index.html",name:"FullIndex",component:()=>Promise.all([t.e(847),t.e(793),t.e(398)]).then(t.bind(t,801))},{path:"/full/servers.html",name:"FullServers",component:()=>t.e(277).then(t.bind(t,1277))},{path:"/full/transport.html",name:"FullTransport",component:()=>t.e(335).then(t.bind(t,7335))},{path:"/full/action.html",name:"FullAction",component:()=>t.e(44).then(t.bind(t,6044))},{path:"/full/logger.html",name:"FullLogger",component:()=>t.e(883).then(t.bind(t,5883))}]},{path:"/net/index.html",name:"Network",component:()=>Promise.all([t.e(847),t.e(802),t.e(793),t.e(50)]).then(t.bind(t,9256))},{path:"/no-permission.html",name:"NoPermission",component:()=>t.e(31).then(t.bind(t,4083))}],P=(0,l.aE)({history:(0,l.Bt)(),routes:k});var A=P,B=t(6161);t(4188),t(2355),t(1862);const I=(0,o.Ef)(S);I.use(B.A,{size:"default"}).use(A).mount("#app")},3830:function(e,n,t){t.d(n,{B:function(){return a},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||+(BigInt(t)&BigInt(n)).toString()==n)}});return(0,o.jH)((n=>{e.value.api.connected=n})),(0,i.Gt)(c,e),e},a=()=>(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[a])}))?o.splice(a--,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+"."+{31:"01e549ae",44:"2cd209e7",50:"b16cba83",277:"ae066c24",335:"36dd324c",398:"b9e20f4c",793:"a4aa6ca7",802:"46f9d25f",847:"04d2175c",883:"fbed3356",903:"3a7d0b91"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{31:"64181b05",44:"785d91ee",50:"142570c6",277:"fd4ac06c",335:"1e453719",398:"4700dc6c",883:"c365c344",903:"25e53525"}[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,a;if(void 0!==i)for(var s=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=()=>(0,o.zG)("configclient/SyncNames"),a=e=>(0,o.zG)("configclient/Sync",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,a="";const s={},l={connected:!1,connecting:!1},d=()=>{const e=Date.now();for(let n in s){const t=s[n];e-t.time>t.timeout&&(t.reject("超时~"),delete s[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=s[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 s[e.RequestId]):f.push(e.Path,e.Content)},v=(e=c,n=a)=>{if(a=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 a=++r;try{s[a]={resolve:c,reject:u,errHandle:t,path:e,time:Date.now(),timeout:o};let r=JSON.stringify({Path:e,RequestId:a,Content:"string"==typeof n?n:JSON.stringify(n)});l.connected&&1==i.readyState?i.send(r):u("网络错误~")}catch(d){console.log(d),u("网络错误~"),delete s[a]}})),C=Symbol(),w=e=>{f.add(C,e)}},9299:function(e,n,t){t.d(n,{BS:function(){return s},SZ:function(){return c},Se:function(){return l},VN:function(){return u},gC:function(){return d},jU:function(){return i},nD:function(){return a},rd:function(){return r},zp:function(){return f}});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),a=e=>(0,o.zG)("signInclient/List",e),s=e=>(0,o.zG)("signInclient/ids",e),l=e=>(0,o.zG)("signInclient/del",e),d=e=>(0,o.zG)("signInclient/setname",e),f=e=>(0,o.zG)("signInclient/SetGroups",e)},1840: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"),a=(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)(a)])}var c=t(3830);const u={class:"port-wrap t-c"},a={class:"pdt-10"};function s(e,n,t,o,i,c){const s=(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)(s,{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",a,[(0,r.eW)(" 秘钥 : "),(0,r.bF)(s,{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)),a=(0,d.Kh)({api:u.api,psd:u.psd,showPort:!1}),s=(0,r.EW)((()=>0==n.value.api.connected&&a.showPort)),g=()=>{u.api=a.api,u.psd=a.psd,localStorage.setItem("api-cache",JSON.stringify(u)),(0,f.e3)(),(0,f.a1)(`ws://${a.api}`,a.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((()=>{a.showPort=!0}),500),(0,f.jH)((e=>{e&&(v(),b())})),t.isReady().then((()=>{a.api=o.query.api?`${window.location.hostname}:${o.query.api}`:a.api,a.psd=o.query.psd||a.psd,g()}))})),{state:a,showPort:s,handleConnect1:m}}},v=t(1241);const b=(0,v.A)(m,[["render",s],["__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(847),t.e(802),t.e(903)]).then(t.bind(t,9983)),redirect:"/full/index.html",children:[{path:"/full/index.html",name:"FullIndex",component:()=>Promise.all([t.e(847),t.e(793),t.e(330)]).then(t.bind(t,2717))},{path:"/full/servers.html",name:"FullServers",component:()=>t.e(277).then(t.bind(t,1277))},{path:"/full/transport.html",name:"FullTransport",component:()=>t.e(335).then(t.bind(t,7335))},{path:"/full/action.html",name:"FullAction",component:()=>t.e(44).then(t.bind(t,6044))},{path:"/full/logger.html",name:"FullLogger",component:()=>t.e(883).then(t.bind(t,5883))}]},{path:"/net/index.html",name:"Network",component:()=>Promise.all([t.e(847),t.e(802),t.e(793),t.e(50)]).then(t.bind(t,9256))},{path:"/no-permission.html",name:"NoPermission",component:()=>t.e(31).then(t.bind(t,4083))}],P=(0,l.aE)({history:(0,l.Bt)(),routes:k});var A=P,B=t(6161);t(4188),t(2355),t(1862);const I=(0,o.Ef)(S);I.use(B.A,{size:"default"}).use(A).mount("#app")},3830:function(e,n,t){t.d(n,{B:function(){return a},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||+(BigInt(t)&BigInt(n)).toString()==n)}});return(0,o.jH)((n=>{e.value.api.connected=n})),(0,i.Gt)(c,e),e},a=()=>(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[a])}))?o.splice(a--,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+"."+{31:"01e549ae",44:"2cd209e7",50:"b16cba83",277:"ae066c24",330:"cba1b6fa",335:"36dd324c",793:"a4aa6ca7",802:"46f9d25f",847:"04d2175c",883:"fbed3356",903:"3a7d0b91"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{31:"64181b05",44:"785d91ee",50:"142570c6",277:"fd4ac06c",330:"b95319de",335:"1e453719",883:"c365c344",903:"25e53525"}[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,a;if(void 0!==i)for(var s=document.getElementsByTagName("script"),l=0;l { - removeSForwardInfo(id).then(() => { + removeSForwardInfo({machineid:sforward.value.machineid,id:id}).then(() => { _getSForwardInfo(); }) } diff --git a/version.txt b/version.txt index 777d79ac..84393ffe 100644 --- a/version.txt +++ b/version.txt @@ -1,5 +1,5 @@ v1.5.1 -2024-10-29 09:22:13 +2024-10-29 10:26:21 1. 优化点对网和网对网的局域网IP,包括禁用IP,和冲突检测 2. 一些UI优化 3. 新增socks5代理