[fix] 添加代理流量监控

This commit is contained in:
wujiawei 2025-06-07 11:13:34 +08:00
parent 1a08fe64e9
commit e8383c78ad
31 changed files with 26 additions and 17 deletions

View File

@ -14,6 +14,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelTypeAdap
import org.framework.lazy.cloud.network.heartbeat.common.constant.ProxyMessageType;
import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils;
import java.net.InetAddress;
import java.util.concurrent.TimeUnit;
/**
@ -76,6 +77,8 @@ public class NettyHttpClientProxyServerProxySocket {
// other clientId
nettyProxyMsg.setClientId(clientId);
String hostAddress = InetAddress.getLocalHost().getHostAddress();
nettyProxyMsg.setOriginalIpString(hostAddress);
nettyProxyMsg.setClientTargetIp(targetIp);
nettyProxyMsg.setClientTargetPort(targetPort);
nettyProxyMsg.setData(data);

View File

@ -45,6 +45,7 @@ public class ServerHandleTcpReportDisconnectTypeAdvanced extends AbstractHandleT
@Override
public void doHandler(NettyChannelContext nettyChannelContext, NettyProxyMsg msg) {
Channel deathChannel = nettyChannelContext.channel();
log.debug("close the channel with id :{}",deathChannel.id().asLongText());
// 关闭连接通知
String clientId = msg.getClientIdString();
log.warn("close client :{} channel", clientId);

View File

@ -57,12 +57,14 @@ public class ServerHandleHttpReportClientProxyServerTransferRequestTypeAdvanced
String clientIdString = nettyProxyMsg.getClientIdString();
byte[] data = nettyProxyMsg.getData();
byte[] visitorId = nettyProxyMsg.getVisitorId();
String originalIpString = nettyProxyMsg.getOriginalIpString();
ChannelAttributeKeyUtils.buildClientId(channel, clientIdString);
ChannelAttributeKeyUtils.buildTargetClientId(channel, clientIdString);
ChannelAttributeKeyUtils.buildTargetIp(channel, targetIpString);
ChannelAttributeKeyUtils.buildTargetPort(channel,targetPort);
ChannelAttributeKeyUtils.buildOriginalIp(channel,originalIpString);
List<HandleChannelTypeAdvanced> handleChannelTypeAdvancedList = new ArrayList<>(SpringContextHolder.getApplicationContext().getBeansOfType(HandleChannelTypeAdvanced.class).values());
NettyClientProperties nettyClientProperties = SpringContextHolder.getBean(NettyClientProperties.class);

View File

@ -9,6 +9,7 @@ import io.netty.handler.codec.socksx.v5.Socks5CommandStatus;
import lombok.extern.slf4j.Slf4j;
import org.framework.lazy.cloud.network.heartbeat.common.NettyTransferChannelContext;
import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelTypeAdapter;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.payload.NettyChannelContext;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.payload.NettyProxyMsg;
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.socks.server.AbstractHandleSocksReportServerProxyClientConnectionSuccessTypeAdvanced;
@ -23,6 +24,9 @@ import org.springframework.context.annotation.Role;
import org.springframework.stereotype.Component;
import org.wu.framework.spring.utils.SpringContextHolder;
import java.util.ArrayList;
import java.util.List;
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Slf4j
@ -52,7 +56,8 @@ public class ServerHandleSocksReportServerProxyClientConnectionSuccessTypeAdvanc
ChannelAttributeKeyUtils.buildClientId(transferChannel,clientId);
ChannelTypeAdapter channelTypeAdapter = SpringContextHolder.getBean(ChannelTypeAdapter.class);
List<HandleChannelTypeAdvanced> handleChannelTypeAdvancedList = new ArrayList<>(SpringContextHolder.getApplicationContext().getBeansOfType(HandleChannelTypeAdvanced.class).values());
ChannelTypeAdapter channelTypeAdapter = new ChannelTypeAdapter(handleChannelTypeAdvancedList);
// 根据传输通道获取代理通道
Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(transferChannel);

View File

@ -1 +1 @@
.el-row[data-v-f2c28e00]{height:50%;padding-right:10px}.ve-card[data-v-f2c28e00]{border-radius:10px;height:100%;display:flex;align-items:center;transition:all .5s;color:#fff}.ve-card[data-v-f2c28e00]:hover{box-shadow:3px 3px 6px 1px rgba(0,0,0,.2);background:#fff}.ve-card i[data-v-f2c28e00]{font-size:100px;margin:0 20px}.ve-card div[data-v-f2c28e00]{flex:1;padding-right:12px}.ve-card div p[data-v-f2c28e00]{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ve-card div span[data-v-f2c28e00]{font-size:60px;font-weight:700}.ve_card1[data-v-f2c28e00]{background:#409eff}.ve_card1[data-v-f2c28e00]:hover{color:#409eff}.ve_card2[data-v-f2c28e00]{background:#67c23a}.ve_card2[data-v-f2c28e00]:hover{color:#67c23a}.ve_card3[data-v-f2c28e00]{background:#e6a23c}.ve_card3[data-v-f2c28e00]:hover{color:#e6a23c}.ve_card4[data-v-f2c28e00]{background:#f56c6c}.ve_card4[data-v-f2c28e00]:hover{color:#f56c6c}.percentage-value[data-v-f2c28e00]{display:block;margin-top:10px;font-size:14px}.percentage-label[data-v-f2c28e00]{display:block;margin-top:10px;font-size:12px}.el-progress--line[data-v-f2c28e00]{margin-bottom:15px;width:350px}.el-progress--circle[data-v-f2c28e00]{margin-right:15px}.ve_calendar[data-v-24e620cb]{background:#f56c6c;border-radius:10px}.ve_calendar[data-v-24e620cb]:hover{box-shadow:3px 3px 6px 1px rgba(0,0,0,.2)}.ve_calendar[data-v-24e620cb] .el-calendar__body{padding-bottom:12px!important}.ve_calendar[data-v-24e620cb] .el-calendar__body .el-calendar-day{height:auto!important}.ve_calendar[data-v-24e620cb] .el-calendar__body .el-calendar-table td{border:none;text-align:center}
.el-row[data-v-f2c28e00]{height:50%;padding-right:10px}.ve-card[data-v-f2c28e00]{border-radius:10px;height:100%;display:flex;align-items:center;transition:all .5s;color:#fff}.ve-card[data-v-f2c28e00]:hover{box-shadow:3px 3px 6px 1px rgba(0,0,0,.2);background:#fff}.ve-card i[data-v-f2c28e00]{font-size:100px;margin:0 20px}.ve-card div[data-v-f2c28e00]{flex:1;padding-right:12px}.ve-card div p[data-v-f2c28e00]{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ve-card div span[data-v-f2c28e00]{font-size:60px;font-weight:700}.ve_card1[data-v-f2c28e00]{background:#409eff}.ve_card1[data-v-f2c28e00]:hover{color:#409eff}.ve_card2[data-v-f2c28e00]{background:#67c23a}.ve_card2[data-v-f2c28e00]:hover{color:#67c23a}.ve_card3[data-v-f2c28e00]{background:#e6a23c}.ve_card3[data-v-f2c28e00]:hover{color:#e6a23c}.ve_card4[data-v-f2c28e00]{background:#f56c6c}.ve_card4[data-v-f2c28e00]:hover{color:#f56c6c}.percentage-value[data-v-f2c28e00]{display:block;margin-top:10px;font-size:14px}.percentage-label[data-v-f2c28e00]{display:block;margin-top:10px;font-size:12px}.el-progress--line[data-v-f2c28e00]{margin-bottom:15px;width:350px}.el-progress--circle[data-v-f2c28e00]{margin-right:15px}.ve_calendar[data-v-5301bb68]{background:#f56c6c;border-radius:10px}.ve_calendar[data-v-5301bb68]:hover{box-shadow:3px 3px 6px 1px rgba(0,0,0,.2)}.ve_calendar[data-v-5301bb68] .el-calendar__body{padding-bottom:12px!important}.ve_calendar[data-v-5301bb68] .el-calendar__body .el-calendar-day{height:auto!important}.ve_calendar[data-v-5301bb68] .el-calendar__body .el-calendar-table td{border:none;text-align:center}

View File

@ -0,0 +1 @@
.el-form-item[data-v-259b6f0a]{width:100%}.fl{float:left}.p0{padding:0!important}.application_item_class_[data-v-5a34f483],.el-form-item[data-v-af3b3260],.role_edit_item{width:100%}.jv-container{box-sizing:border-box;position:relative}.jv-container.boxed{border:1px solid #eee;border-radius:6px}.jv-container.boxed:hover{box-shadow:0 2px 7px rgba(0,0,0,.15);border-color:transparent;position:relative}.jv-container.jv-light{background:#fff;color:#525252}.jv-container.jv-dark,.jv-container.jv-light{white-space:nowrap;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-dark{background:#282c34;color:#fff}.jv-container.jv-light .jv-ellipsis{color:#999;background-color:#eee}.jv-container.jv-dark .jv-ellipsis,.jv-container.jv-light .jv-ellipsis{display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px 4px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.jv-container.jv-dark .jv-ellipsis{color:#f8f8f8;background-color:#2c3e50}.jv-container.jv-dark .jv-button,.jv-container.jv-light .jv-button{color:#49b3ff}.jv-container.jv-light .jv-key{color:#111;margin-right:4px}.jv-container.jv-dark .jv-key{color:#fff;margin-right:4px}.jv-container.jv-dark .jv-item.jv-array{color:#111;color:#fff}.jv-container.jv-dark .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-function{color:#067bca}.jv-container.jv-dark .jv-item.jv-number{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-object{color:#fff}.jv-container.jv-dark .jv-item.jv-undefined{color:#e08331}.jv-container.jv-dark .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-dark .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-dark .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-dark .jv-code .jv-toggle:hover:before{background:#eee}.jv-container.jv-light .jv-item.jv-array{color:#111}.jv-container.jv-light .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-light .jv-item.jv-function{color:#067bca}.jv-container.jv-light .jv-item.jv-number{color:#fc1e70}.jv-container.jv-light .jv-item.jv-object{color:#111}.jv-container.jv-light .jv-item.jv-undefined{color:#e08331}.jv-container.jv-light .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-light .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-light .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-light .jv-code .jv-toggle:hover:before{background:#eee}.jv-container .jv-code{overflow:hidden;padding:30px 20px}.jv-container .jv-code.boxed{max-height:300px}.jv-container .jv-code.open{max-height:none!important;overflow:visible;overflow-x:auto;padding-bottom:45px}.jv-container .jv-toggle{background-image:url(../img/icon.a305f883.svg);background-repeat:no-repeat;background-size:contain;background-position:50%;cursor:pointer;width:10px;height:10px;margin-right:2px;display:inline-block;transition:transform .1s}.jv-container .jv-toggle.open{transform:rotate(90deg)}.jv-container .jv-more{position:absolute;z-index:1;bottom:0;left:0;right:0;height:40px;width:100%;text-align:center;cursor:pointer}.jv-container .jv-more .jv-toggle{position:relative;top:40%;z-index:2;color:#888;transition:all .1s;transform:rotate(90deg)}.jv-container .jv-more .jv-toggle.open{transform:rotate(-90deg)}.jv-container .jv-more:after{content:"";width:100%;height:100%;position:absolute;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,transparent 20%,hsla(0,0%,90%,.3));transition:all .1s}.jv-container .jv-more:hover .jv-toggle{top:50%;color:#111}.jv-container .jv-more:hover:after{background:linear-gradient(180deg,transparent 20%,hsla(0,0%,90%,.3))}.jv-container .jv-button{position:relative;cursor:pointer;display:inline-block;padding:5px;z-index:5}.jv-container .jv-button.copied{opacity:.4;cursor:default}.jv-container .jv-tooltip{position:absolute}.jv-container .jv-tooltip.right{right:15px}.jv-container .jv-tooltip.left{left:15px}.jv-container .j-icon{font-size:12px}.jv-node{position:relative}.jv-node:after{content:","}.jv-node:last-of-type:after{content:""}.jv-node.toggle{margin-left:13px!important}.jv-node .jv-node{margin-left:25px}.content[data-v-4ca6dc95]{display:flex;flex-wrap:wrap;padding:3.3333333333vw}.content-item[data-v-4ca6dc95]{width:40vw;height:140px;background:#fff;margin:3.3333333333vw}.el-form-item[data-v-8c51848e],.menu_edit_item[data-v-0823986f]{width:100%}.ve_table .ve_table_page[data-v-11019130],.ve_table[data-v-11019130]{flex:1;display:flex;flex-direction:column}.ve_table .ve_table_page .ve_table_content[data-v-11019130]{flex:1}

View File

@ -1 +0,0 @@
.jv-container{box-sizing:border-box;position:relative}.jv-container.boxed{border:1px solid #eee;border-radius:6px}.jv-container.boxed:hover{box-shadow:0 2px 7px rgba(0,0,0,.15);border-color:transparent;position:relative}.jv-container.jv-light{background:#fff;color:#525252}.jv-container.jv-dark,.jv-container.jv-light{white-space:nowrap;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-dark{background:#282c34;color:#fff}.jv-container.jv-light .jv-ellipsis{color:#999;background-color:#eee}.jv-container.jv-dark .jv-ellipsis,.jv-container.jv-light .jv-ellipsis{display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px 4px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.jv-container.jv-dark .jv-ellipsis{color:#f8f8f8;background-color:#2c3e50}.jv-container.jv-dark .jv-button,.jv-container.jv-light .jv-button{color:#49b3ff}.jv-container.jv-light .jv-key{color:#111;margin-right:4px}.jv-container.jv-dark .jv-key{color:#fff;margin-right:4px}.jv-container.jv-dark .jv-item.jv-array{color:#111;color:#fff}.jv-container.jv-dark .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-function{color:#067bca}.jv-container.jv-dark .jv-item.jv-number{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-object{color:#fff}.jv-container.jv-dark .jv-item.jv-undefined{color:#e08331}.jv-container.jv-dark .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-dark .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-dark .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-dark .jv-code .jv-toggle:hover:before{background:#eee}.jv-container.jv-light .jv-item.jv-array{color:#111}.jv-container.jv-light .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-light .jv-item.jv-function{color:#067bca}.jv-container.jv-light .jv-item.jv-number{color:#fc1e70}.jv-container.jv-light .jv-item.jv-object{color:#111}.jv-container.jv-light .jv-item.jv-undefined{color:#e08331}.jv-container.jv-light .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-light .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-light .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-light .jv-code .jv-toggle:hover:before{background:#eee}.jv-container .jv-code{overflow:hidden;padding:30px 20px}.jv-container .jv-code.boxed{max-height:300px}.jv-container .jv-code.open{max-height:none!important;overflow:visible;overflow-x:auto;padding-bottom:45px}.jv-container .jv-toggle{background-image:url(../img/icon.a305f883.svg);background-repeat:no-repeat;background-size:contain;background-position:50%;cursor:pointer;width:10px;height:10px;margin-right:2px;display:inline-block;transition:transform .1s}.jv-container .jv-toggle.open{transform:rotate(90deg)}.jv-container .jv-more{position:absolute;z-index:1;bottom:0;left:0;right:0;height:40px;width:100%;text-align:center;cursor:pointer}.jv-container .jv-more .jv-toggle{position:relative;top:40%;z-index:2;color:#888;transition:all .1s;transform:rotate(90deg)}.jv-container .jv-more .jv-toggle.open{transform:rotate(-90deg)}.jv-container .jv-more:after{content:"";width:100%;height:100%;position:absolute;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,transparent 20%,hsla(0,0%,90%,.3));transition:all .1s}.jv-container .jv-more:hover .jv-toggle{top:50%;color:#111}.jv-container .jv-more:hover:after{background:linear-gradient(180deg,transparent 20%,hsla(0,0%,90%,.3))}.jv-container .jv-button{position:relative;cursor:pointer;display:inline-block;padding:5px;z-index:5}.jv-container .jv-button.copied{opacity:.4;cursor:default}.jv-container .jv-tooltip{position:absolute}.jv-container .jv-tooltip.right{right:15px}.jv-container .jv-tooltip.left{left:15px}.jv-container .j-icon{font-size:12px}.jv-node{position:relative}.jv-node:after{content:","}.jv-node:last-of-type:after{content:""}.jv-node.toggle{margin-left:13px!important}.jv-node .jv-node{margin-left:25px}.content[data-v-5a9846ad]{display:flex;flex-wrap:wrap;padding:3.3333333333vw}.content-item[data-v-5a9846ad]{width:40vw;height:140px;background:#fff;margin:3.3333333333vw}.el-form-item[data-v-259b6f0a]{width:100%}.fl{float:left}.p0{padding:0!important}.application_item_class_[data-v-5a34f483],.el-form-item[data-v-8c51848e],.el-form-item[data-v-af3b3260],.menu_edit_item[data-v-5b574e3b],.role_edit_item{width:100%}.ve_table .ve_table_page[data-v-11019130],.ve_table[data-v-11019130]{flex:1;display:flex;flex-direction:column}.ve_table .ve_table_page .ve_table_content[data-v-11019130]{flex:1}

View File

@ -1 +1 @@
.jv-container{box-sizing:border-box;position:relative}.jv-container.boxed{border:1px solid #eee;border-radius:6px}.jv-container.boxed:hover{box-shadow:0 2px 7px rgba(0,0,0,.15);border-color:transparent;position:relative}.jv-container.jv-light{background:#fff;color:#525252}.jv-container.jv-dark,.jv-container.jv-light{white-space:nowrap;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-dark{background:#282c34;color:#fff}.jv-container.jv-light .jv-ellipsis{color:#999;background-color:#eee}.jv-container.jv-dark .jv-ellipsis,.jv-container.jv-light .jv-ellipsis{display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px 4px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.jv-container.jv-dark .jv-ellipsis{color:#f8f8f8;background-color:#2c3e50}.jv-container.jv-dark .jv-button,.jv-container.jv-light .jv-button{color:#49b3ff}.jv-container.jv-light .jv-key{color:#111;margin-right:4px}.jv-container.jv-dark .jv-key{color:#fff;margin-right:4px}.jv-container.jv-dark .jv-item.jv-array{color:#111;color:#fff}.jv-container.jv-dark .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-function{color:#067bca}.jv-container.jv-dark .jv-item.jv-number{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-object{color:#fff}.jv-container.jv-dark .jv-item.jv-undefined{color:#e08331}.jv-container.jv-dark .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-dark .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-dark .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-dark .jv-code .jv-toggle:hover:before{background:#eee}.jv-container.jv-light .jv-item.jv-array{color:#111}.jv-container.jv-light .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-light .jv-item.jv-function{color:#067bca}.jv-container.jv-light .jv-item.jv-number{color:#fc1e70}.jv-container.jv-light .jv-item.jv-object{color:#111}.jv-container.jv-light .jv-item.jv-undefined{color:#e08331}.jv-container.jv-light .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-light .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-light .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-light .jv-code .jv-toggle:hover:before{background:#eee}.jv-container .jv-code{overflow:hidden;padding:30px 20px}.jv-container .jv-code.boxed{max-height:300px}.jv-container .jv-code.open{max-height:none!important;overflow:visible;overflow-x:auto;padding-bottom:45px}.jv-container .jv-toggle{background-image:url(../img/icon.a305f883.svg);background-repeat:no-repeat;background-size:contain;background-position:50%;cursor:pointer;width:10px;height:10px;margin-right:2px;display:inline-block;transition:transform .1s}.jv-container .jv-toggle.open{transform:rotate(90deg)}.jv-container .jv-more{position:absolute;z-index:1;bottom:0;left:0;right:0;height:40px;width:100%;text-align:center;cursor:pointer}.jv-container .jv-more .jv-toggle{position:relative;top:40%;z-index:2;color:#888;transition:all .1s;transform:rotate(90deg)}.jv-container .jv-more .jv-toggle.open{transform:rotate(-90deg)}.jv-container .jv-more:after{content:"";width:100%;height:100%;position:absolute;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,transparent 20%,hsla(0,0%,90%,.3));transition:all .1s}.jv-container .jv-more:hover .jv-toggle{top:50%;color:#111}.jv-container .jv-more:hover:after{background:linear-gradient(180deg,transparent 20%,hsla(0,0%,90%,.3))}.jv-container .jv-button{position:relative;cursor:pointer;display:inline-block;padding:5px;z-index:5}.jv-container .jv-button.copied{opacity:.4;cursor:default}.jv-container .jv-tooltip{position:absolute}.jv-container .jv-tooltip.right{right:15px}.jv-container .jv-tooltip.left{left:15px}.jv-container .j-icon{font-size:12px}.jv-node{position:relative}.jv-node:after{content:","}.jv-node:last-of-type:after{content:""}.jv-node.toggle{margin-left:13px!important}.jv-node .jv-node{margin-left:25px}.content[data-v-5a9846ad]{display:flex;flex-wrap:wrap;padding:3.3333333333vw}.content-item[data-v-5a9846ad]{width:40vw;height:140px;background:#fff;margin:3.3333333333vw}
.jv-container{box-sizing:border-box;position:relative}.jv-container.boxed{border:1px solid #eee;border-radius:6px}.jv-container.boxed:hover{box-shadow:0 2px 7px rgba(0,0,0,.15);border-color:transparent;position:relative}.jv-container.jv-light{background:#fff;color:#525252}.jv-container.jv-dark,.jv-container.jv-light{white-space:nowrap;font-size:14px;font-family:Consolas,Menlo,Courier,monospace}.jv-container.jv-dark{background:#282c34;color:#fff}.jv-container.jv-light .jv-ellipsis{color:#999;background-color:#eee}.jv-container.jv-dark .jv-ellipsis,.jv-container.jv-light .jv-ellipsis{display:inline-block;line-height:.9;font-size:.9em;padding:0 4px 2px 4px;margin:0 4px;border-radius:3px;vertical-align:2px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.jv-container.jv-dark .jv-ellipsis{color:#f8f8f8;background-color:#2c3e50}.jv-container.jv-dark .jv-button,.jv-container.jv-light .jv-button{color:#49b3ff}.jv-container.jv-light .jv-key{color:#111;margin-right:4px}.jv-container.jv-dark .jv-key{color:#fff;margin-right:4px}.jv-container.jv-dark .jv-item.jv-array{color:#111;color:#fff}.jv-container.jv-dark .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-function{color:#067bca}.jv-container.jv-dark .jv-item.jv-number{color:#fc1e70}.jv-container.jv-dark .jv-item.jv-object{color:#fff}.jv-container.jv-dark .jv-item.jv-undefined{color:#e08331}.jv-container.jv-dark .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-dark .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-dark .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-dark .jv-code .jv-toggle:hover:before{background:#eee}.jv-container.jv-light .jv-item.jv-array{color:#111}.jv-container.jv-light .jv-item.jv-boolean{color:#fc1e70}.jv-container.jv-light .jv-item.jv-function{color:#067bca}.jv-container.jv-light .jv-item.jv-number{color:#fc1e70}.jv-container.jv-light .jv-item.jv-object{color:#111}.jv-container.jv-light .jv-item.jv-undefined{color:#e08331}.jv-container.jv-light .jv-item.jv-string{color:#42b983;word-break:break-word;white-space:normal}.jv-container.jv-light .jv-item.jv-string .jv-link{color:#0366d6}.jv-container.jv-light .jv-code .jv-toggle:before{padding:0 2px;border-radius:2px}.jv-container.jv-light .jv-code .jv-toggle:hover:before{background:#eee}.jv-container .jv-code{overflow:hidden;padding:30px 20px}.jv-container .jv-code.boxed{max-height:300px}.jv-container .jv-code.open{max-height:none!important;overflow:visible;overflow-x:auto;padding-bottom:45px}.jv-container .jv-toggle{background-image:url(../img/icon.a305f883.svg);background-repeat:no-repeat;background-size:contain;background-position:50%;cursor:pointer;width:10px;height:10px;margin-right:2px;display:inline-block;transition:transform .1s}.jv-container .jv-toggle.open{transform:rotate(90deg)}.jv-container .jv-more{position:absolute;z-index:1;bottom:0;left:0;right:0;height:40px;width:100%;text-align:center;cursor:pointer}.jv-container .jv-more .jv-toggle{position:relative;top:40%;z-index:2;color:#888;transition:all .1s;transform:rotate(90deg)}.jv-container .jv-more .jv-toggle.open{transform:rotate(-90deg)}.jv-container .jv-more:after{content:"";width:100%;height:100%;position:absolute;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,transparent 20%,hsla(0,0%,90%,.3));transition:all .1s}.jv-container .jv-more:hover .jv-toggle{top:50%;color:#111}.jv-container .jv-more:hover:after{background:linear-gradient(180deg,transparent 20%,hsla(0,0%,90%,.3))}.jv-container .jv-button{position:relative;cursor:pointer;display:inline-block;padding:5px;z-index:5}.jv-container .jv-button.copied{opacity:.4;cursor:default}.jv-container .jv-tooltip{position:absolute}.jv-container .jv-tooltip.right{right:15px}.jv-container .jv-tooltip.left{left:15px}.jv-container .j-icon{font-size:12px}.jv-node{position:relative}.jv-node:after{content:","}.jv-node:last-of-type:after{content:""}.jv-node.toggle{margin-left:13px!important}.jv-node .jv-node{margin-left:25px}.content[data-v-4ca6dc95]{display:flex;flex-wrap:wrap;padding:3.3333333333vw}.content-item[data-v-4ca6dc95]{width:40vw;height:140px;background:#fff;margin:3.3333333333vw}

View File

@ -1 +1 @@
<!doctype html><html lang="zh-cn"><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="icon" href="favicon.png"/><title>网络渗透</title><script defer="defer" src="js/chunk-elementPlusIcon.898bd1ec.js"></script><script defer="defer" src="js/chunk-elementPlus.020d8d3c.js"></script><script defer="defer" src="js/chunk-mockjs.fcd22ec7.js"></script><script defer="defer" src="js/chunk-vendors.7205badc.js"></script><script defer="defer" src="js/app.d9f3cd10.js"></script><link href="css/chunk-elementPlus.f2db5e15.css" rel="stylesheet"><link href="css/app.a3bfec27.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but wu-vue-zone-ecology-net doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
<!doctype html><html lang="zh-cn"><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="icon" href="favicon.png"/><title>网络渗透</title><script defer="defer" src="js/chunk-elementPlusIcon.898bd1ec.js"></script><script defer="defer" src="js/chunk-elementPlus.020d8d3c.js"></script><script defer="defer" src="js/chunk-mockjs.fcd22ec7.js"></script><script defer="defer" src="js/chunk-vendors.7205badc.js"></script><script defer="defer" src="js/app.233132bd.js"></script><link href="css/chunk-elementPlus.f2db5e15.css" rel="stylesheet"><link href="css/app.a3bfec27.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but wu-vue-zone-ecology-net doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

View File

@ -0,0 +1 @@
"use strict";(self.webpackChunkwu_vue_zone_ecology_net=self.webpackChunkwu_vue_zone_ecology_net||[]).push([[3394],{43394:function(e,l,a){a.r(l),a.d(l,{default:function(){return r}});var t=a(67759),u=a(76364);var r={__name:"ClientVirtualRouteEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:l}){const a={targetClientId:[{required:!0,message:"请选择客户端",trigger:"blur"}],virtualIp:[{required:!0,message:"请输入虚拟IP",trigger:"blur"}],virtualPort:[{required:!0,message:"请输入虚拟端口",trigger:"blur"}],targetIp:[{required:!0,message:"请输入目标IP",trigger:"blur"}],targetPort:[{required:!0,message:"请输入目标端口",trigger:"blur"}]},r=e,o=l,{title:d,rowData:i}=(0,u.BK)(r),n=(0,u.iH)(null),p=()=>{o("closeDialog",!1)},m=(0,u.iH)(null),v=(0,u.qj)({targetClientId:"",virtualIp:"",virtualPort:"*",targetIp:"",targetPort:"*",describe:""}),{targetClientId:c,virtualIp:g,virtualPort:s,targetIp:b,targetPort:w,describe:I}=(0,u.BK)(v);i.value&&(c.value=i.value.targetClientId,g.value=i.value.virtualIp,s.value=i.value.virtualPort,b.value=i.value.targetIp,w.value=i.value.targetPort,I.value=i.value.describe);return(0,t.bv)((async()=>{VE_API.cloudNetwork.cloudClientFindListGroupByClient().then((e=>{0===e.code&&e.data&&(e.data.map((e=>{e.label=e.clientId,e.value=e.clientId})),n.value=e.data?e.data:[])}))})),(l,r)=>{const o=(0,t.up)("el-option"),f=(0,t.up)("el-select"),_=(0,t.up)("el-form-item"),V=(0,t.up)("el-input"),y=(0,t.up)("el-form"),P=(0,t.up)("el-button"),h=(0,t.up)("el-dialog");return(0,t.wg)(),(0,t.j4)(h,{title:(0,u.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:r[8]||(r[8]=e=>p())},{footer:(0,t.w5)((()=>[(0,t._)("span",null,[(0,t.Wm)(P,{onClick:r[6]||(r[6]=e=>p())},{default:(0,t.w5)((()=>r[9]||(r[9]=[(0,t.Uk)("取消")]))),_:1}),(0,t.Wm)(P,{type:"primary",onClick:r[7]||(r[7]=e=>{m.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.cloudNetworkRoute.lazyNettyClientVirtualRouteSave(v):await VE_API.cloudNetworkRoute.lazyNettyClientVirtualRouteUpdate({id:i.value.id,...v});const{code:l}=e;0===l&&p()}}))})},{default:(0,t.w5)((()=>r[10]||(r[10]=[(0,t.Uk)("确定")]))),_:1})])])),default:(0,t.w5)((()=>[(0,t.Wm)(y,{model:v,ref_key:"formRef",ref:m,rules:a,"label-width":"80px",inline:!1},{default:(0,t.w5)((()=>[(0,t.Wm)(_,{label:"客户端ID","label-width":"140px",prop:"targetClientId"},{default:(0,t.w5)((()=>[(0,t.Wm)(f,{modelValue:(0,u.SU)(c),"onUpdate:modelValue":r[0]||(r[0]=e=>(0,u.dq)(c)?c.value=e:null),placeholder:"客户端ID",clearable:""},{default:(0,t.w5)((()=>[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)(n.value,(e=>((0,t.wg)(),(0,t.j4)(o,{key:e.value,label:e.label,value:e.value,serverId:e},null,8,["label","value","serverId"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,t.Wm)(_,{label:"虚拟IP","label-width":"140px",prop:"virtualIp"},{default:(0,t.w5)((()=>[(0,t.Wm)(V,{modelValue:(0,u.SU)(g),"onUpdate:modelValue":r[1]||(r[1]=e=>(0,u.dq)(g)?g.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(_,{label:"虚拟端口",prop:"virtualPort"},{default:(0,t.w5)((()=>[(0,t.Wm)(V,{modelValue:(0,u.SU)(s),"onUpdate:modelValue":r[2]||(r[2]=e=>(0,u.dq)(s)?s.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(_,{label:"目标IP","label-width":"140px",prop:"targetIp"},{default:(0,t.w5)((()=>[(0,t.Wm)(V,{modelValue:(0,u.SU)(b),"onUpdate:modelValue":r[3]||(r[3]=e=>(0,u.dq)(b)?b.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(_,{label:"目标端口",prop:"targetPort"},{default:(0,t.w5)((()=>[(0,t.Wm)(V,{modelValue:(0,u.SU)(w),"onUpdate:modelValue":r[4]||(r[4]=e=>(0,u.dq)(w)?w.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(_,{label:"描述",prop:"describe"},{default:(0,t.w5)((()=>[(0,t.Wm)(V,{modelValue:(0,u.SU)(I),"onUpdate:modelValue":r[5]||(r[5]=e=>(0,u.dq)(I)?I.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}}}]);

View File

@ -1 +0,0 @@
"use strict";(self.webpackChunkwu_vue_zone_ecology_net=self.webpackChunkwu_vue_zone_ecology_net||[]).push([[3394],{43394:function(e,l,a){a.r(l),a.d(l,{default:function(){return r}});var t=a(67759),u=a(76364);var r={__name:"ClientVirtualRouteEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:l}){const a={targetClientId:[{required:!0,message:"请选择客户端",trigger:"blur"}],virtualIp:[{required:!0,message:"请输入虚拟IP",trigger:"blur"}],virtualPort:[{required:!0,message:"请输入虚拟端口",trigger:"blur"}],targetIp:[{required:!0,message:"请输入目标IP",trigger:"blur"}],targetPort:[{required:!0,message:"请输入目标端口",trigger:"blur"}]},r=e,o=l,{title:d,rowData:i}=(0,u.BK)(r),n=(0,u.iH)(null),p=()=>{o("closeDialog",!1)},m=(0,u.iH)(null),v=(0,u.qj)({targetClientId:"",virtualIp:"",virtualPort:"*",targetIp:"",targetPort:"",describe:""}),{targetClientId:c,virtualIp:g,virtualPort:s,targetIp:b,targetPort:w,describe:I}=(0,u.BK)(v);i.value&&(c.value=i.value.targetClientId,g.value=i.value.virtualIp,s.value=i.value.virtualPort,b.value=i.value.targetIp,w.value=i.value.targetPort,I.value=i.value.describe);return(0,t.bv)((async()=>{VE_API.cloudNetwork.cloudClientFindListGroupByClient().then((e=>{0===e.code&&e.data&&(e.data.map((e=>{e.label=e.clientId,e.value=e.clientId})),n.value=e.data?e.data:[])}))})),(l,r)=>{const o=(0,t.up)("el-option"),f=(0,t.up)("el-select"),_=(0,t.up)("el-form-item"),V=(0,t.up)("el-input"),y=(0,t.up)("el-form"),P=(0,t.up)("el-button"),h=(0,t.up)("el-dialog");return(0,t.wg)(),(0,t.j4)(h,{title:(0,u.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:r[8]||(r[8]=e=>p())},{footer:(0,t.w5)((()=>[(0,t._)("span",null,[(0,t.Wm)(P,{onClick:r[6]||(r[6]=e=>p())},{default:(0,t.w5)((()=>r[9]||(r[9]=[(0,t.Uk)("取消")]))),_:1}),(0,t.Wm)(P,{type:"primary",onClick:r[7]||(r[7]=e=>{m.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.cloudNetworkRoute.lazyNettyClientVirtualRouteSave(v):await VE_API.cloudNetworkRoute.lazyNettyClientVirtualRouteUpdate({id:i.value.id,...v});const{code:l}=e;0===l&&p()}}))})},{default:(0,t.w5)((()=>r[10]||(r[10]=[(0,t.Uk)("确定")]))),_:1})])])),default:(0,t.w5)((()=>[(0,t.Wm)(y,{model:v,ref_key:"formRef",ref:m,rules:a,"label-width":"80px",inline:!1},{default:(0,t.w5)((()=>[(0,t.Wm)(_,{label:"客户端ID","label-width":"140px",prop:"targetClientId"},{default:(0,t.w5)((()=>[(0,t.Wm)(f,{modelValue:(0,u.SU)(c),"onUpdate:modelValue":r[0]||(r[0]=e=>(0,u.dq)(c)?c.value=e:null),placeholder:"客户端ID",clearable:""},{default:(0,t.w5)((()=>[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)(n.value,(e=>((0,t.wg)(),(0,t.j4)(o,{key:e.value,label:e.label,value:e.value,serverId:e},null,8,["label","value","serverId"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,t.Wm)(_,{label:"虚拟IP","label-width":"140px",prop:"virtualIp"},{default:(0,t.w5)((()=>[(0,t.Wm)(V,{modelValue:(0,u.SU)(g),"onUpdate:modelValue":r[1]||(r[1]=e=>(0,u.dq)(g)?g.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(_,{label:"虚拟端口",prop:"virtualPort"},{default:(0,t.w5)((()=>[(0,t.Wm)(V,{modelValue:(0,u.SU)(s),"onUpdate:modelValue":r[2]||(r[2]=e=>(0,u.dq)(s)?s.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(_,{label:"目标IP","label-width":"140px",prop:"targetIp"},{default:(0,t.w5)((()=>[(0,t.Wm)(V,{modelValue:(0,u.SU)(b),"onUpdate:modelValue":r[3]||(r[3]=e=>(0,u.dq)(b)?b.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(_,{label:"目标端口",prop:"targetPort"},{default:(0,t.w5)((()=>[(0,t.Wm)(V,{modelValue:(0,u.SU)(w),"onUpdate:modelValue":r[4]||(r[4]=e=>(0,u.dq)(w)?w.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(_,{label:"描述",prop:"describe"},{default:(0,t.w5)((()=>[(0,t.Wm)(V,{modelValue:(0,u.SU)(I),"onUpdate:modelValue":r[5]||(r[5]=e=>(0,u.dq)(I)?I.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}}}]);

View File

@ -0,0 +1 @@
"use strict";(self.webpackChunkwu_vue_zone_ecology_net=self.webpackChunkwu_vue_zone_ecology_net||[]).push([[564],{40564:function(e,l,a){a.r(l),a.d(l,{default:function(){return t}});var u=a(67759),o=a(76364);var t={__name:"DictionaryEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:l}){const a=e,t=l,{title:d,rowData:n}=(0,o.BK)(a),r=()=>{t("closeDialog",!1)},i=(0,o.qj)({code:"",name:"",type:1}),{code:m,name:p,type:s}=(0,o.BK)(i),c=(0,o.iH)(null),f={name:[{required:!0,message:"请输入字典名称",trigger:"blur"}],code:[{required:!0,message:"请输入字典编码",trigger:"blur"}]};n.value&&(p.value=n.value.name,m.value=n.value.code,s.value=n.value.type);return(0,u.bv)((async()=>{})),(l,a)=>{const t=(0,u.up)("el-input"),_=(0,u.up)("el-form-item"),w=(0,u.up)("el-radio-button"),v=(0,u.up)("el-radio-group"),y=(0,u.up)("el-form"),b=(0,u.up)("el-button"),g=(0,u.up)("el-dialog");return(0,u.wg)(),(0,u.j4)(g,{title:(0,o.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:a[5]||(a[5]=e=>r())},{footer:(0,u.w5)((()=>[(0,u._)("span",null,[(0,u.Wm)(b,{onClick:a[3]||(a[3]=e=>r())},{default:(0,u.w5)((()=>a[8]||(a[8]=[(0,u.Uk)("取消")]))),_:1}),(0,u.Wm)(b,{type:"primary",onClick:a[4]||(a[4]=e=>{c.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.system.dictionaryAdd(i):await VE_API.system.dictionaryEdit({id:n.value.id,...i});const{code:l}=e;"00"==l&&r()}}))})},{default:(0,u.w5)((()=>a[9]||(a[9]=[(0,u.Uk)("确定")]))),_:1})])])),default:(0,u.w5)((()=>[(0,u.Wm)(y,{model:i,ref_key:"formRef",ref:c,rules:f,"label-width":"80px",inline:!1},{default:(0,u.w5)((()=>[(0,u.Wm)(_,{label:"字典名称",prop:"name"},{default:(0,u.w5)((()=>[(0,u.Wm)(t,{modelValue:(0,o.SU)(p),"onUpdate:modelValue":a[0]||(a[0]=e=>(0,o.dq)(p)?p.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,u.Wm)(_,{label:"字典编码",prop:"code"},{default:(0,u.w5)((()=>[(0,u.Wm)(t,{modelValue:(0,o.SU)(m),"onUpdate:modelValue":a[1]||(a[1]=e=>(0,o.dq)(m)?m.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,u.Wm)(_,{label:"字典类型",prop:"status"},{default:(0,u.w5)((()=>[(0,u.Wm)(v,{modelValue:(0,o.SU)(s),"onUpdate:modelValue":a[2]||(a[2]=e=>(0,o.dq)(s)?s.value=e:null)},{default:(0,u.w5)((()=>[(0,u.Wm)(w,{label:1},{default:(0,u.w5)((()=>a[6]||(a[6]=[(0,u.Uk)("树状")]))),_:1}),(0,u.Wm)(w,{label:0},{default:(0,u.w5)((()=>a[7]||(a[7]=[(0,u.Uk)("列表")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}}}]);

View File

@ -1 +0,0 @@
"use strict";(self.webpackChunkwu_vue_zone_ecology_net=self.webpackChunkwu_vue_zone_ecology_net||[]).push([[5757],{35757:function(e,l,a){a.r(l),a.d(l,{default:function(){return t}});var u=a(67759),o=a(76364);var t={__name:"DictionaryEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:l}){const a=e,t=l,{title:d,rowData:n}=(0,o.BK)(a),r=()=>{t("closeDialog",!1)},i=(0,o.qj)({code:"",name:"",type:1}),{code:m,name:p,type:s}=(0,o.BK)(i),c=(0,o.iH)(null),f={name:[{required:!0,message:"请输入字典名称",trigger:"blur"}],code:[{required:!0,message:"请输入字典编码",trigger:"blur"}]};n.value&&(p.value=n.value.name,m.value=n.value.code,s.value=n.value.type);return(0,u.bv)((async()=>{})),(l,a)=>{const t=(0,u.up)("el-input"),_=(0,u.up)("el-form-item"),w=(0,u.up)("el-radio-button"),v=(0,u.up)("el-radio-group"),y=(0,u.up)("el-form"),b=(0,u.up)("el-button"),g=(0,u.up)("el-dialog");return(0,u.wg)(),(0,u.j4)(g,{title:(0,o.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:a[5]||(a[5]=e=>r())},{footer:(0,u.w5)((()=>[(0,u._)("span",null,[(0,u.Wm)(b,{onClick:a[3]||(a[3]=e=>r())},{default:(0,u.w5)((()=>a[8]||(a[8]=[(0,u.Uk)("取消")]))),_:1}),(0,u.Wm)(b,{type:"primary",onClick:a[4]||(a[4]=e=>{c.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.system.dictionaryAdd(i):await VE_API.system.dictionaryEdit({id:n.value.id,...i});const{code:l}=e;"00"==l&&r()}}))})},{default:(0,u.w5)((()=>a[9]||(a[9]=[(0,u.Uk)("确定")]))),_:1})])])),default:(0,u.w5)((()=>[(0,u.Wm)(y,{model:i,ref_key:"formRef",ref:c,rules:f,"label-width":"80px",inline:!1},{default:(0,u.w5)((()=>[(0,u.Wm)(_,{label:"字典名称",prop:"name"},{default:(0,u.w5)((()=>[(0,u.Wm)(t,{modelValue:(0,o.SU)(p),"onUpdate:modelValue":a[0]||(a[0]=e=>(0,o.dq)(p)?p.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,u.Wm)(_,{label:"字典编码",prop:"code"},{default:(0,u.w5)((()=>[(0,u.Wm)(t,{modelValue:(0,o.SU)(m),"onUpdate:modelValue":a[1]||(a[1]=e=>(0,o.dq)(m)?m.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,u.Wm)(_,{label:"字典类型",prop:"status"},{default:(0,u.w5)((()=>[(0,u.Wm)(v,{modelValue:(0,o.SU)(s),"onUpdate:modelValue":a[2]||(a[2]=e=>(0,o.dq)(s)?s.value=e:null)},{default:(0,u.w5)((()=>[(0,u.Wm)(w,{label:1},{default:(0,u.w5)((()=>a[6]||(a[6]=[(0,u.Uk)("树状")]))),_:1}),(0,u.Wm)(w,{label:0},{default:(0,u.w5)((()=>a[7]||(a[7]=[(0,u.Uk)("列表")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
"use strict";(self.webpackChunkwu_vue_zone_ecology_net=self.webpackChunkwu_vue_zone_ecology_net||[]).push([[4544],{94544:function(e,l,a){a.r(l),a.d(l,{default:function(){return t}});var o=a(67759),u=a(76364);var t={__name:"DictionaryDataEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:l}){const a=e,t=l,{title:d,rowData:n}=(0,u.BK)(a),r=()=>{t("closeDialog",!1)},i=(0,u.qj)({code:"",name:"",description:"",dictionaryCode:"",type:1}),{code:m,name:p,description:c,dictionaryCode:s,type:f}=(0,u.BK)(i),v=(0,u.iH)(null),_={name:[{required:!0,message:"请输入字典项名称",trigger:"blur"}],code:[{required:!0,message:"请输入字典项编码",trigger:"blur"}]};n.value&&(p.value=n.value.name,m.value=n.value.code,c.value=n.value.description,s.value=n.value.dictionaryCode,f.value=n.value.type);return(0,o.bv)((async()=>{})),(l,a)=>{const t=(0,o.up)("el-input"),w=(0,o.up)("el-form-item"),y=(0,o.up)("el-radio-button"),b=(0,o.up)("el-radio-group"),g=(0,o.up)("el-form"),V=(0,o.up)("el-button"),U=(0,o.up)("el-dialog");return(0,o.wg)(),(0,o.j4)(U,{title:(0,u.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:a[7]||(a[7]=e=>r())},{footer:(0,o.w5)((()=>[(0,o._)("span",null,[(0,o.Wm)(V,{onClick:a[5]||(a[5]=e=>r())},{default:(0,o.w5)((()=>a[10]||(a[10]=[(0,o.Uk)("取消")]))),_:1}),(0,o.Wm)(V,{type:"primary",onClick:a[6]||(a[6]=e=>{v.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.system.dictionaryDataAdd(i):await VE_API.system.dictionaryDataEdit({id:n.value.id,...i});const{code:l}=e;"00"==l&&r()}}))})},{default:(0,o.w5)((()=>a[11]||(a[11]=[(0,o.Uk)("确定")]))),_:1})])])),default:(0,o.w5)((()=>[(0,o.Wm)(g,{model:i,ref_key:"formRef",ref:v,rules:_,"label-width":"80px",inline:!1},{default:(0,o.w5)((()=>[(0,o.Wm)(w,{label:"字典项名称",prop:"name"},{default:(0,o.w5)((()=>[(0,o.Wm)(t,{modelValue:(0,u.SU)(p),"onUpdate:modelValue":a[0]||(a[0]=e=>(0,u.dq)(p)?p.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,o.Wm)(w,{label:"字典项编码",prop:"code"},{default:(0,o.w5)((()=>[(0,o.Wm)(t,{modelValue:(0,u.SU)(m),"onUpdate:modelValue":a[1]||(a[1]=e=>(0,u.dq)(m)?m.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,o.Wm)(w,{label:"字典项描述",prop:"description"},{default:(0,o.w5)((()=>[(0,o.Wm)(t,{modelValue:(0,u.SU)(c),"onUpdate:modelValue":a[2]||(a[2]=e=>(0,u.dq)(c)?c.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,o.Wm)(w,{label:"字典编码",prop:"dictionaryCode"},{default:(0,o.w5)((()=>[(0,o.Wm)(t,{modelValue:(0,u.SU)(s),"onUpdate:modelValue":a[3]||(a[3]=e=>(0,u.dq)(s)?s.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,o.Wm)(w,{label:"字典类型",prop:"status"},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{modelValue:(0,u.SU)(f),"onUpdate:modelValue":a[4]||(a[4]=e=>(0,u.dq)(f)?f.value=e:null)},{default:(0,o.w5)((()=>[(0,o.Wm)(y,{label:1},{default:(0,o.w5)((()=>a[8]||(a[8]=[(0,o.Uk)("树状")]))),_:1}),(0,o.Wm)(y,{label:0},{default:(0,o.w5)((()=>a[9]||(a[9]=[(0,o.Uk)("列表")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}}}]);
"use strict";(self.webpackChunkwu_vue_zone_ecology_net=self.webpackChunkwu_vue_zone_ecology_net||[]).push([[7120],{27120:function(e,l,a){a.r(l),a.d(l,{default:function(){return t}});var o=a(67759),u=a(76364);var t={__name:"DictionaryDataEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:l}){const a=e,t=l,{title:d,rowData:n}=(0,u.BK)(a),r=()=>{t("closeDialog",!1)},i=(0,u.qj)({code:"",name:"",description:"",dictionaryCode:"",type:1}),{code:m,name:p,description:c,dictionaryCode:s,type:f}=(0,u.BK)(i),v=(0,u.iH)(null),_={name:[{required:!0,message:"请输入字典项名称",trigger:"blur"}],code:[{required:!0,message:"请输入字典项编码",trigger:"blur"}]};n.value&&(p.value=n.value.name,m.value=n.value.code,c.value=n.value.description,s.value=n.value.dictionaryCode,f.value=n.value.type);return(0,o.bv)((async()=>{})),(l,a)=>{const t=(0,o.up)("el-input"),w=(0,o.up)("el-form-item"),y=(0,o.up)("el-radio-button"),b=(0,o.up)("el-radio-group"),g=(0,o.up)("el-form"),V=(0,o.up)("el-button"),U=(0,o.up)("el-dialog");return(0,o.wg)(),(0,o.j4)(U,{title:(0,u.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:a[7]||(a[7]=e=>r())},{footer:(0,o.w5)((()=>[(0,o._)("span",null,[(0,o.Wm)(V,{onClick:a[5]||(a[5]=e=>r())},{default:(0,o.w5)((()=>a[10]||(a[10]=[(0,o.Uk)("取消")]))),_:1}),(0,o.Wm)(V,{type:"primary",onClick:a[6]||(a[6]=e=>{v.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.system.dictionaryDataAdd(i):await VE_API.system.dictionaryDataEdit({id:n.value.id,...i});const{code:l}=e;"00"==l&&r()}}))})},{default:(0,o.w5)((()=>a[11]||(a[11]=[(0,o.Uk)("确定")]))),_:1})])])),default:(0,o.w5)((()=>[(0,o.Wm)(g,{model:i,ref_key:"formRef",ref:v,rules:_,"label-width":"80px",inline:!1},{default:(0,o.w5)((()=>[(0,o.Wm)(w,{label:"字典项名称",prop:"name"},{default:(0,o.w5)((()=>[(0,o.Wm)(t,{modelValue:(0,u.SU)(p),"onUpdate:modelValue":a[0]||(a[0]=e=>(0,u.dq)(p)?p.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,o.Wm)(w,{label:"字典项编码",prop:"code"},{default:(0,o.w5)((()=>[(0,o.Wm)(t,{modelValue:(0,u.SU)(m),"onUpdate:modelValue":a[1]||(a[1]=e=>(0,u.dq)(m)?m.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,o.Wm)(w,{label:"字典项描述",prop:"description"},{default:(0,o.w5)((()=>[(0,o.Wm)(t,{modelValue:(0,u.SU)(c),"onUpdate:modelValue":a[2]||(a[2]=e=>(0,u.dq)(c)?c.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,o.Wm)(w,{label:"字典编码",prop:"dictionaryCode"},{default:(0,o.w5)((()=>[(0,o.Wm)(t,{modelValue:(0,u.SU)(s),"onUpdate:modelValue":a[3]||(a[3]=e=>(0,u.dq)(s)?s.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,o.Wm)(w,{label:"字典类型",prop:"status"},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{modelValue:(0,u.SU)(f),"onUpdate:modelValue":a[4]||(a[4]=e=>(0,u.dq)(f)?f.value=e:null)},{default:(0,o.w5)((()=>[(0,o.Wm)(y,{label:1},{default:(0,o.w5)((()=>a[8]||(a[8]=[(0,o.Uk)("树状")]))),_:1}),(0,o.Wm)(y,{label:0},{default:(0,o.w5)((()=>a[9]||(a[9]=[(0,o.Uk)("列表")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}}}]);

View File

@ -0,0 +1 @@
"use strict";(self.webpackChunkwu_vue_zone_ecology_net=self.webpackChunkwu_vue_zone_ecology_net||[]).push([[8230],{78230:function(e,l,a){a.r(l),a.d(l,{default:function(){return r}});var t=a(67759),u=a(76364);var r={__name:"ServerVirtualRouteEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:l}){const a={virtualIp:[{required:!0,message:"请输入虚拟IP",trigger:"blur"}],virtualPort:[{required:!0,message:"请输入虚拟端口",trigger:"blur"}],targetIp:[{required:!0,message:"请输入目标IP",trigger:"blur"}],targetPort:[{required:!0,message:"请输入目标端口",trigger:"blur"}]},r=e,o=l,{title:d,rowData:i}=(0,u.BK)(r),n=(0,u.iH)(null),p=()=>{o("closeDialog",!1)},m=(0,u.iH)(null),v=(0,u.qj)({virtualIp:"",virtualPort:"*",targetIp:"",targetPort:"*",describe:""}),{virtualIp:c,virtualPort:s,targetIp:g,targetPort:b,describe:w}=(0,u.BK)(v);i.value&&(c.value=i.value.virtualIp,s.value=i.value.virtualPort,g.value=i.value.targetIp,b.value=i.value.targetPort,w.value=i.value.describe);return(0,t.bv)((async()=>{VE_API.cloudNetwork.cloudClientFindListGroupByClient().then((e=>{0===e.code&&e.data&&(e.data.map((e=>{e.label=e.clientId,e.value=e.clientId})),n.value=e.data?e.data:[])}))})),(l,r)=>{const o=(0,t.up)("el-input"),n=(0,t.up)("el-form-item"),f=(0,t.up)("el-form"),_=(0,t.up)("el-button"),V=(0,t.up)("el-dialog");return(0,t.wg)(),(0,t.j4)(V,{title:(0,u.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:r[7]||(r[7]=e=>p())},{footer:(0,t.w5)((()=>[(0,t._)("span",null,[(0,t.Wm)(_,{onClick:r[5]||(r[5]=e=>p())},{default:(0,t.w5)((()=>r[8]||(r[8]=[(0,t.Uk)("取消")]))),_:1}),(0,t.Wm)(_,{type:"primary",onClick:r[6]||(r[6]=e=>{m.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.cloudNetworkRoute.lazyNettyServerVirtualRouteSave(v):await VE_API.cloudNetworkRoute.lazyNettyServerVirtualRouteUpdate({id:i.value.id,...v});const{code:l}=e;0===l&&p()}}))})},{default:(0,t.w5)((()=>r[9]||(r[9]=[(0,t.Uk)("确定")]))),_:1})])])),default:(0,t.w5)((()=>[(0,t.Wm)(f,{model:v,ref_key:"formRef",ref:m,rules:a,"label-width":"80px",inline:!1},{default:(0,t.w5)((()=>[(0,t.Wm)(n,{label:"虚拟IP","label-width":"140px",prop:"virtualIp"},{default:(0,t.w5)((()=>[(0,t.Wm)(o,{modelValue:(0,u.SU)(c),"onUpdate:modelValue":r[0]||(r[0]=e=>(0,u.dq)(c)?c.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(n,{label:"虚拟端口",prop:"virtualPort"},{default:(0,t.w5)((()=>[(0,t.Wm)(o,{modelValue:(0,u.SU)(s),"onUpdate:modelValue":r[1]||(r[1]=e=>(0,u.dq)(s)?s.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(n,{label:"目标IP","label-width":"140px",prop:"targetIp"},{default:(0,t.w5)((()=>[(0,t.Wm)(o,{modelValue:(0,u.SU)(g),"onUpdate:modelValue":r[2]||(r[2]=e=>(0,u.dq)(g)?g.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(n,{label:"目标端口",prop:"targetPort"},{default:(0,t.w5)((()=>[(0,t.Wm)(o,{modelValue:(0,u.SU)(b),"onUpdate:modelValue":r[3]||(r[3]=e=>(0,u.dq)(b)?b.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(n,{label:"描述",prop:"describe"},{default:(0,t.w5)((()=>[(0,t.Wm)(o,{modelValue:(0,u.SU)(w),"onUpdate:modelValue":r[4]||(r[4]=e=>(0,u.dq)(w)?w.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}}}]);

View File

@ -1 +0,0 @@
"use strict";(self.webpackChunkwu_vue_zone_ecology_net=self.webpackChunkwu_vue_zone_ecology_net||[]).push([[8230],{78230:function(e,l,a){a.r(l),a.d(l,{default:function(){return r}});var t=a(67759),u=a(76364);var r={__name:"ServerVirtualRouteEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:l}){const a={virtualIp:[{required:!0,message:"请输入虚拟IP",trigger:"blur"}],virtualPort:[{required:!0,message:"请输入虚拟端口",trigger:"blur"}],targetIp:[{required:!0,message:"请输入目标IP",trigger:"blur"}],targetPort:[{required:!0,message:"请输入目标端口",trigger:"blur"}]},r=e,o=l,{title:d,rowData:i}=(0,u.BK)(r),n=(0,u.iH)(null),p=()=>{o("closeDialog",!1)},m=(0,u.iH)(null),v=(0,u.qj)({virtualIp:"",virtualPort:"*",targetIp:"",targetPort:"",describe:""}),{virtualIp:c,virtualPort:s,targetIp:g,targetPort:b,describe:w}=(0,u.BK)(v);i.value&&(c.value=i.value.virtualIp,s.value=i.value.virtualPort,g.value=i.value.targetIp,b.value=i.value.targetPort,w.value=i.value.describe);return(0,t.bv)((async()=>{VE_API.cloudNetwork.cloudClientFindListGroupByClient().then((e=>{0===e.code&&e.data&&(e.data.map((e=>{e.label=e.clientId,e.value=e.clientId})),n.value=e.data?e.data:[])}))})),(l,r)=>{const o=(0,t.up)("el-input"),n=(0,t.up)("el-form-item"),f=(0,t.up)("el-form"),_=(0,t.up)("el-button"),V=(0,t.up)("el-dialog");return(0,t.wg)(),(0,t.j4)(V,{title:(0,u.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:r[7]||(r[7]=e=>p())},{footer:(0,t.w5)((()=>[(0,t._)("span",null,[(0,t.Wm)(_,{onClick:r[5]||(r[5]=e=>p())},{default:(0,t.w5)((()=>r[8]||(r[8]=[(0,t.Uk)("取消")]))),_:1}),(0,t.Wm)(_,{type:"primary",onClick:r[6]||(r[6]=e=>{m.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.cloudNetworkRoute.lazyNettyServerVirtualRouteSave(v):await VE_API.cloudNetworkRoute.lazyNettyServerVirtualRouteUpdate({id:i.value.id,...v});const{code:l}=e;0===l&&p()}}))})},{default:(0,t.w5)((()=>r[9]||(r[9]=[(0,t.Uk)("确定")]))),_:1})])])),default:(0,t.w5)((()=>[(0,t.Wm)(f,{model:v,ref_key:"formRef",ref:m,rules:a,"label-width":"80px",inline:!1},{default:(0,t.w5)((()=>[(0,t.Wm)(n,{label:"虚拟IP","label-width":"140px",prop:"virtualIp"},{default:(0,t.w5)((()=>[(0,t.Wm)(o,{modelValue:(0,u.SU)(c),"onUpdate:modelValue":r[0]||(r[0]=e=>(0,u.dq)(c)?c.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(n,{label:"虚拟端口",prop:"virtualPort"},{default:(0,t.w5)((()=>[(0,t.Wm)(o,{modelValue:(0,u.SU)(s),"onUpdate:modelValue":r[1]||(r[1]=e=>(0,u.dq)(s)?s.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(n,{label:"目标IP","label-width":"140px",prop:"targetIp"},{default:(0,t.w5)((()=>[(0,t.Wm)(o,{modelValue:(0,u.SU)(g),"onUpdate:modelValue":r[2]||(r[2]=e=>(0,u.dq)(g)?g.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(n,{label:"目标端口",prop:"targetPort"},{default:(0,t.w5)((()=>[(0,t.Wm)(o,{modelValue:(0,u.SU)(b),"onUpdate:modelValue":r[3]||(r[3]=e=>(0,u.dq)(b)?b.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,t.Wm)(n,{label:"描述",prop:"describe"},{default:(0,t.w5)((()=>[(0,t.Wm)(o,{modelValue:(0,u.SU)(w),"onUpdate:modelValue":r[4]||(r[4]=e=>(0,u.dq)(w)?w.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -28,9 +28,7 @@ spring:
netty:
protocol:
proxy:
tcp-protocol-proxy:
socket-protocol-proxy:
port: 9002
udp-protocol-proxy:
port: 10002
http-protocol-proxy:
port: 8002