From 96929044fa25c18f1aa7473cdd8523b720e4a71b Mon Sep 17 00:00:00 2001 From: wujiawei <12345678> Date: Wed, 7 May 2025 11:09:19 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90fix=E3=80=91=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E8=B7=AF=E7=94=B1=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/ClientAutoConfiguration.java | 8 ++ ...oxyServerClientRouteCloseTypeAdvanced.java | 37 +++++++++ ...oxyServerServerRouteCloseTypeAdvanced.java | 37 +++++++++ ...oxyServerClientRouteCloseTypeAdvanced.java | 21 ++++++ ...oxyServerServerRouteCloseTypeAdvanced.java | 21 ++++++ .../common/constant/ProxyMessageType.java | 19 ++++- .../common/enums/ProxyMessageTypeEnums.java | 14 ++++ .../protocol/route/RouteContext.java | 33 +++++++- ...leTcpClientConnectSuccessTypeAdvanced.java | 71 ++++++++++-------- .../LazyNettyClientRouteQueryListCommand.java | 6 -- .../LazyNettyClientRouteQueryOneCommand.java | 6 -- .../LazyNettyClientRouteRemoveCommand.java | 6 -- .../LazyNettyClientRouteStoryCommand.java | 7 -- .../LazyNettyClientRouteUpdateCommand.java | 7 -- ...ttyClientVirtualRouteQueryListCommand.java | 6 ++ .../LazyNettyServerRouteQueryListCommand.java | 6 -- .../LazyNettyServerRouteQueryOneCommand.java | 6 -- .../LazyNettyServerRouteRemoveCommand.java | 6 -- .../LazyNettyServerRouteStoryCommand.java | 6 -- .../LazyNettyServerRouteUpdateCommand.java | 6 -- ...ttyServerVirtualRouteQueryListCommand.java | 6 ++ .../dto/LazyNettyClientRouteDTO.java | 6 -- .../dto/LazyNettyServerRouteDTO.java | 6 -- .../client/route/LazyNettyClientRoute.java | 7 -- .../server/route/LazyNettyServerRoute.java | 6 -- .../entity/LazyNettyClientRouteDO.java | 7 -- .../entity/LazyNettyServerRouteDO.java | 7 -- .../LazyNettyClientRouteRepositoryImpl.java | 31 +++++++- ...NettyClientVirtualRouteRepositoryImpl.java | 31 ++++++++ .../LazyNettyServerRouteRepositoryImpl.java | 30 +++++++- ...NettyServerVirtualRouteRepositoryImpl.java | 30 ++++++++ .../resources/netty-server-ui/v1/index.html | 2 +- .../netty-server-ui/v1/js/5886.3af41bac.js | 2 - .../v1/js/5886.3af41bac.js.LICENSE.txt | 12 --- .../netty-server-ui/v1/js/5886.3af41bac.js.gz | Bin 44784 -> 0 bytes .../netty-server-ui/v1/js/app.e32824bf.js | 1 - .../netty-server-ui/v1/js/app.e32824bf.js.gz | Bin 14202 -> 0 bytes 37 files changed, 356 insertions(+), 157 deletions(-) create mode 100644 wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/proxy/http/advanced/ClientHandleDistributeHttpClientProxyServerClientRouteCloseTypeAdvanced.java create mode 100644 wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/proxy/http/advanced/ClientHandleDistributeHttpClientProxyServerServerRouteCloseTypeAdvanced.java create mode 100644 wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/proxy/http/client/AbstractHandleHttpDistributeClientProxyServerClientRouteCloseTypeAdvanced.java create mode 100644 wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/proxy/http/client/AbstractHandleHttpDistributeClientProxyServerServerRouteCloseTypeAdvanced.java delete mode 100644 wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/js/5886.3af41bac.js delete mode 100644 wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/js/5886.3af41bac.js.LICENSE.txt delete mode 100644 wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/js/5886.3af41bac.js.gz delete mode 100644 wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/js/app.e32824bf.js delete mode 100644 wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/js/app.e32824bf.js.gz diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/config/ClientAutoConfiguration.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/config/ClientAutoConfiguration.java index 662aa54..8a8e994 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/config/ClientAutoConfiguration.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/config/ClientAutoConfiguration.java @@ -352,12 +352,20 @@ public class ClientAutoConfiguration { public ClientHandleDistributeHttpClientProxyServerServerRouteTypeAdvanced clientHandleDistributeHttpClientProxyServerServerRouteTypeAdvanced() { return new ClientHandleDistributeHttpClientProxyServerServerRouteTypeAdvanced(); } + @Bean + public ClientHandleDistributeHttpClientProxyServerServerRouteCloseTypeAdvanced clientHandleDistributeHttpClientProxyServerServerRouteCloseTypeAdvanced(){ + return new ClientHandleDistributeHttpClientProxyServerServerRouteCloseTypeAdvanced(); + } @Bean public ClientHandleDistributeHttpClientProxyServerClientRouteTypeAdvanced clientHandleDistributeHttpClientProxyServerClientRouteTypeAdvanced() { return new ClientHandleDistributeHttpClientProxyServerClientRouteTypeAdvanced(); } + @Bean + public ClientHandleDistributeHttpClientProxyServerClientRouteCloseTypeAdvanced clientHandleDistributeHttpClientProxyServerClientRouteCloseTypeAdvanced(){ + return new ClientHandleDistributeHttpClientProxyServerClientRouteCloseTypeAdvanced(); + } @Bean public ClientHandleDistributeHttpClientProxyClientConnectionTransferSuccessfulAdvanced clientHandleDistributeHttpClientProxyClientConnectionTransferSuccessfulAdvanced() { return new ClientHandleDistributeHttpClientProxyClientConnectionTransferSuccessfulAdvanced(); diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/proxy/http/advanced/ClientHandleDistributeHttpClientProxyServerClientRouteCloseTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/proxy/http/advanced/ClientHandleDistributeHttpClientProxyServerClientRouteCloseTypeAdvanced.java new file mode 100644 index 0000000..8759dec --- /dev/null +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/proxy/http/advanced/ClientHandleDistributeHttpClientProxyServerClientRouteCloseTypeAdvanced.java @@ -0,0 +1,37 @@ +package org.framework.lazy.cloud.network.heartbeat.client.netty.proxy.http.advanced; + +import com.alibaba.fastjson.JSON; +import lombok.extern.slf4j.Slf4j; +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.http.client.AbstractHandleHttpDistributeClientProxyServerClientRouteCloseTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client.AbstractHandleHttpDistributeClientProxyServerClientRouteTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.protocol.route.ClientProxyRoute; +import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteContext; +import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteType; + + +@Slf4j +public class ClientHandleDistributeHttpClientProxyServerClientRouteCloseTypeAdvanced extends + AbstractHandleHttpDistributeClientProxyServerClientRouteCloseTypeAdvanced { + + + /** + * 处理当前数据 + * + * @param nettyChannelContext 当前通道 + * @param nettyProxyMsg 通道数据 + */ + @Override + protected void doHandler(NettyChannelContext nettyChannelContext, NettyProxyMsg nettyProxyMsg) { + + byte[] data = nettyProxyMsg.getData(); + ClientProxyRoute clientProxyRoute = JSON.parseObject(data, ClientProxyRoute.class); + RouteType routeType = clientProxyRoute.getRouteType(); + String virtualIp = clientProxyRoute.getVirtualIp(); + String virtualPort = clientProxyRoute.getVirtualPort(); + RouteContext.removeRoute(virtualIp,virtualPort,routeType); + + + } +} diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/proxy/http/advanced/ClientHandleDistributeHttpClientProxyServerServerRouteCloseTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/proxy/http/advanced/ClientHandleDistributeHttpClientProxyServerServerRouteCloseTypeAdvanced.java new file mode 100644 index 0000000..5234e27 --- /dev/null +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/proxy/http/advanced/ClientHandleDistributeHttpClientProxyServerServerRouteCloseTypeAdvanced.java @@ -0,0 +1,37 @@ +package org.framework.lazy.cloud.network.heartbeat.client.netty.proxy.http.advanced; + +import com.alibaba.fastjson.JSON; +import lombok.extern.slf4j.Slf4j; +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.http.client.AbstractHandleHttpDistributeClientProxyServerServerRouteCloseTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client.AbstractHandleHttpDistributeClientProxyServerServerRouteTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteContext; +import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteType; +import org.framework.lazy.cloud.network.heartbeat.protocol.route.ServerProxyRoute; + + +@Slf4j +public class ClientHandleDistributeHttpClientProxyServerServerRouteCloseTypeAdvanced extends + AbstractHandleHttpDistributeClientProxyServerServerRouteCloseTypeAdvanced { + + + /** + * 处理当前数据 + * + * @param nettyChannelContext 当前通道 + * @param nettyProxyMsg 通道数据 + */ + @Override + protected void doHandler(NettyChannelContext nettyChannelContext, NettyProxyMsg nettyProxyMsg) { + + byte[] data = nettyProxyMsg.getData(); + ServerProxyRoute serverProxyRoute = JSON.parseObject(data, ServerProxyRoute.class); + RouteType routeType = serverProxyRoute.getRouteType(); + String virtualIp = serverProxyRoute.getVirtualIp(); + String virtualPort = serverProxyRoute.getVirtualPort(); + RouteContext.removeRoute(virtualIp,virtualPort,routeType); + + + } +} diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/proxy/http/client/AbstractHandleHttpDistributeClientProxyServerClientRouteCloseTypeAdvanced.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/proxy/http/client/AbstractHandleHttpDistributeClientProxyServerClientRouteCloseTypeAdvanced.java new file mode 100644 index 0000000..7fba6c8 --- /dev/null +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/proxy/http/client/AbstractHandleHttpDistributeClientProxyServerClientRouteCloseTypeAdvanced.java @@ -0,0 +1,21 @@ +package org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client; + +import org.framework.lazy.cloud.network.heartbeat.common.advanced.AbstractHandleChannelTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.payload.NettyProxyMsg; +import org.framework.lazy.cloud.network.heartbeat.common.enums.ProxyMessageTypeEnums; + +public abstract class AbstractHandleHttpDistributeClientProxyServerClientRouteCloseTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { + + + /** + * 是否支持当前类型 + * + * @param nettyProxyMsg 通道数据 + * @return 布尔类型 是、否 + */ + @Override + protected boolean doSupport(NettyProxyMsg nettyProxyMsg) { + return ProxyMessageTypeEnums.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_.getTypeByte() == nettyProxyMsg.getType(); + } +} diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/proxy/http/client/AbstractHandleHttpDistributeClientProxyServerServerRouteCloseTypeAdvanced.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/proxy/http/client/AbstractHandleHttpDistributeClientProxyServerServerRouteCloseTypeAdvanced.java new file mode 100644 index 0000000..5e1fab2 --- /dev/null +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/proxy/http/client/AbstractHandleHttpDistributeClientProxyServerServerRouteCloseTypeAdvanced.java @@ -0,0 +1,21 @@ +package org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client; + +import org.framework.lazy.cloud.network.heartbeat.common.advanced.AbstractHandleChannelTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.payload.NettyProxyMsg; +import org.framework.lazy.cloud.network.heartbeat.common.enums.ProxyMessageTypeEnums; + +public abstract class AbstractHandleHttpDistributeClientProxyServerServerRouteCloseTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { + + + /** + * 是否支持当前类型 + * + * @param nettyProxyMsg 通道数据 + * @return 布尔类型 是、否 + */ + @Override + protected boolean doSupport(NettyProxyMsg nettyProxyMsg) { + return ProxyMessageTypeEnums.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_.getTypeByte() == nettyProxyMsg.getType(); + } +} diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/constant/ProxyMessageType.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/constant/ProxyMessageType.java index 9468ae6..bd6dd9c 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/constant/ProxyMessageType.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/constant/ProxyMessageType.java @@ -253,6 +253,13 @@ public class ProxyMessageType { * @see AbstractHandleHttpDistributeClientProxyServerServerRouteTypeAdvanced */ public static final byte HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_ = HTTP_DISTRIBUTE_PROXY - 1; + /** + * 下发服务端路由关闭 + * + * @see ProxyMessageTypeEnums#HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_CLOSE_ + * @see AbstractHandleHttpDistributeClientProxyServerServerRouteCloseTypeAdvanced + */ + public static final byte HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_CLOSE_ = HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_ - 1; /** @@ -261,7 +268,15 @@ public class ProxyMessageType { * @see ProxyMessageTypeEnums#HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_ * @see AbstractHandleHttpDistributeClientProxyServerClientRouteTypeAdvanced */ - public static final byte HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_ = HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_ - 1; + public static final byte HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_ = HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_CLOSE_ - 1; + /** + * 下发客户端路由关闭 + * + * @see ProxyMessageTypeEnums#HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_CLOSE_ + * @see AbstractHandleHttpDistributeClientProxyServerClientRouteCloseTypeAdvanced + */ + public static final byte HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_CLOSE_ = HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_ - 1; + /** @@ -270,7 +285,7 @@ public class ProxyMessageType { * @see ProxyMessageTypeEnums#HTTP_DISTRIBUTE_SERVER_PROXY_CLIENT_CONNECTION_SUCCESSFUL_ * @see AbstractHandleHttpDistributeServerProxyClientConnectionSuccessfulTypeAdvanced */ - public static final byte HTTP_DISTRIBUTE_SERVER_PROXY_CLIENT_CONNECTION_SUCCESSFUL_ = HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_ - 1; + public static final byte HTTP_DISTRIBUTE_SERVER_PROXY_CLIENT_CONNECTION_SUCCESSFUL_ = HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_CLOSE_ - 1; /** * http 下发数据到另一个客户端 diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/enums/ProxyMessageTypeEnums.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/enums/ProxyMessageTypeEnums.java index 82abd7a..e144d34 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/enums/ProxyMessageTypeEnums.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/enums/ProxyMessageTypeEnums.java @@ -58,12 +58,26 @@ public enum ProxyMessageTypeEnums { * @see AbstractHandleHttpDistributeClientProxyServerServerRouteTypeAdvanced */ HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_(ProxyMessageType.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_, "http下发服务端路由"), + /** + * 下发服务端路由关闭 + * + * @see ProxyMessageTypeEnums#HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_CLOSE_ + * @see AbstractHandleHttpDistributeClientProxyServerServerRouteCloseTypeAdvanced + */ + HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_CLOSE_(ProxyMessageType.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_CLOSE_, "下发服务端路由关闭"), /** * http 下发客户端路由 * * @see AbstractHandleHttpDistributeClientProxyServerClientRouteTypeAdvanced */ HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_(ProxyMessageType.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_, "http下发客户端路由"), + /** + * 下发客户端路由关闭 + * + * @see ProxyMessageTypeEnums#HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_CLOSE_ + * @see AbstractHandleHttpDistributeClientProxyServerClientRouteCloseTypeAdvanced + */ + HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_CLOSE_(ProxyMessageType.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_CLOSE_, "下发客户端路由关闭"), /** * http 客户端远程客户端代理传输连接 * diff --git a/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/route/RouteContext.java b/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/route/RouteContext.java index 48f604a..2a53b4a 100644 --- a/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/route/RouteContext.java +++ b/wu-lazy-cloud-heartbeat-protocol-proxy/src/main/java/org/framework/lazy/cloud/network/heartbeat/protocol/route/RouteContext.java @@ -1,5 +1,7 @@ package org.framework.lazy.cloud.network.heartbeat.protocol.route; +import org.wu.framework.core.NormalUsedString; + import java.util.concurrent.ConcurrentHashMap; /** @@ -12,11 +14,16 @@ public class RouteContext { private static final ConcurrentHashMap m = new ConcurrentHashMap<>(); + /** + * 设置路由 + * + * @param route 路由 + */ public static void setRoute(ProxyRoute route) { RouteType routeType = route.getRouteType(); String virtualIp = route.getVirtualIp(); String virtualPort = route.getVirtualPort(); - String key = virtualIp + ":" + virtualPort + routeType; + String key = virtualIp + ":" + virtualPort + "_" + routeType; if (m.containsKey(key)) { return; } @@ -24,12 +31,32 @@ public class RouteContext { m.put(key, route); } - public static ProxyRoute getRoute(String ip, String port) { + /** + * 获取路由 + * + * @param virtualIp 原始ip + * @param virtualPort 原始端口 + */ + public static ProxyRoute getRoute(String virtualIp, String virtualPort) { ProxyRoute p = m.values() .stream() - .filter(route -> route.getVirtualIp().equals(ip) && (route.getVirtualPort().equals(port) || route.getVirtualPort().equals("ALL"))) + .filter(route -> route.getVirtualIp().equals(virtualIp) + && + (route.getVirtualPort().equals(virtualPort) || route.getVirtualPort().equals(NormalUsedString.ASTERISK))) .findFirst() .orElse(null); return p; } + + /** + * 删除路由 + * + * @param virtualIp 原始ip + * @param virtualPort 原始端口 + */ + public static void removeRoute(String virtualIp, String virtualPort, RouteType routeType) { + String key = virtualIp + ":" + virtualPort + "_" + routeType; + m.remove(key); + + } } diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/permeate/tcp/advanced/ServerHandleTcpClientConnectSuccessTypeAdvanced.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/permeate/tcp/advanced/ServerHandleTcpClientConnectSuccessTypeAdvanced.java index 36d2640..8651c84 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/permeate/tcp/advanced/ServerHandleTcpClientConnectSuccessTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/permeate/tcp/advanced/ServerHandleTcpClientConnectSuccessTypeAdvanced.java @@ -18,13 +18,10 @@ import org.framework.lazy.cloud.network.heartbeat.server.properties.ServerNodePr import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.*; import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.permeate.client.mapping.LazyClientPermeateClientMappingQueryListCommand; import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.permeate.server.mapping.LazyClientPermeateServerMappingQueryListCommand; -import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.route.LazyNettyClientRouteQueryListCommand; import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.state.LazyNettyClientLoginCommand; -import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.server.route.LazyNettyServerRouteQueryListCommand; -import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyClientPermeateClientMappingDTO; -import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyClientPermeateServerMappingDTO; -import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyNettyClientRouteDTO; -import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyNettyServerRouteDTO; +import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.virtual.route.LazyNettyClientVirtualRouteQueryListCommand; +import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.server.virtual.route.LazyNettyServerVirtualRouteQueryListCommand; +import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.*; import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.client.blacklist.LazyNettyClientBlacklist; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Role; @@ -50,20 +47,20 @@ public class ServerHandleTcpClientConnectSuccessTypeAdvanced extends AbstractHan private final LazyClientPermeateServerMappingApplication lazyClientPermeateServerMappingApplication; private final LazyClientPermeateClientMappingApplication lazyClientPermeateClientMappingApplication; - private final LazyNettyServerRouteApplication lazyNettyServerRouteApplication; - private final LazyNettyClientRouteApplication lazyNettyClientRouteApplication; + private final LazyNettyServerVirtualRouteApplication lazyNettyServerVirtualRouteApplication; + private final LazyNettyClientVirtualRouteApplication lazyNettyClientVirtualRouteApplication; private final LazyNettyClientTokenBucketApplication lazyNettyClientTokenBucketApplication; private final ServerNodeProperties serverNodeProperties; - public ServerHandleTcpClientConnectSuccessTypeAdvanced(LazyClientStatsChangeApplication lazyClientStatsChangeApplication, LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication, LazyServerPermeateClientMappingApplication lazyServerPermeateClientMappingApplication, LazyClientPermeateServerMappingApplication lazyClientPermeateServerMappingApplication, LazyClientPermeateClientMappingApplication lazyClientPermeateClientMappingApplication, LazyNettyServerRouteApplication lazyNettyServerRouteApplication, LazyNettyClientRouteApplication lazyNettyClientRouteApplication, LazyNettyClientTokenBucketApplication lazyNettyClientTokenBucketApplication, ServerNodeProperties serverNodeProperties) { + public ServerHandleTcpClientConnectSuccessTypeAdvanced(LazyClientStatsChangeApplication lazyClientStatsChangeApplication, LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication, LazyServerPermeateClientMappingApplication lazyServerPermeateClientMappingApplication, LazyClientPermeateServerMappingApplication lazyClientPermeateServerMappingApplication, LazyClientPermeateClientMappingApplication lazyClientPermeateClientMappingApplication, LazyNettyServerVirtualRouteApplication lazyNettyServerVirtualRouteApplication, LazyNettyClientVirtualRouteApplication lazyNettyClientVirtualRouteApplication, LazyNettyClientTokenBucketApplication lazyNettyClientTokenBucketApplication, ServerNodeProperties serverNodeProperties) { this.lazyClientStatsChangeApplication = lazyClientStatsChangeApplication; this.lazyNettyClientBlacklistApplication = lazyNettyClientBlacklistApplication; this.lazyServerPermeateClientMappingApplication = lazyServerPermeateClientMappingApplication; this.lazyClientPermeateServerMappingApplication = lazyClientPermeateServerMappingApplication; this.lazyClientPermeateClientMappingApplication = lazyClientPermeateClientMappingApplication; - this.lazyNettyServerRouteApplication = lazyNettyServerRouteApplication; - this.lazyNettyClientRouteApplication = lazyNettyClientRouteApplication; + this.lazyNettyServerVirtualRouteApplication = lazyNettyServerVirtualRouteApplication; + this.lazyNettyClientVirtualRouteApplication = lazyNettyClientVirtualRouteApplication; this.lazyNettyClientTokenBucketApplication = lazyNettyClientTokenBucketApplication; this.serverNodeProperties = serverNodeProperties; } @@ -190,17 +187,21 @@ public class ServerHandleTcpClientConnectSuccessTypeAdvanced extends AbstractHan } }); // 下发服务端路由 - LazyNettyServerRouteQueryListCommand lazyNettyServerRouteQueryListCommand = new LazyNettyServerRouteQueryListCommand(); - lazyNettyServerRouteQueryListCommand.setIsDeleted(false); - lazyNettyServerRouteApplication.findList(lazyNettyServerRouteQueryListCommand) - .accept(lazyNettyServerRouteDTOS -> { - for (LazyNettyServerRouteDTO lazyNettyServerRouteDTO : lazyNettyServerRouteDTOS) { - String routeIp = lazyNettyServerRouteDTO.getRouteIp(); - String routePort = lazyNettyServerRouteDTO.getRoutePort(); + LazyNettyServerVirtualRouteQueryListCommand lazyNettyServerVirtualRouteQueryListCommand = new LazyNettyServerVirtualRouteQueryListCommand(); + lazyNettyServerVirtualRouteQueryListCommand.setIsDeleted(false); + lazyNettyServerVirtualRouteApplication.findList(lazyNettyServerVirtualRouteQueryListCommand) + .accept(lazyNettyServerVirtualRouteDTOS -> { + for (LazyNettyServerVirtualRouteDTO lazyNettyServerVirtualRouteDTO : lazyNettyServerVirtualRouteDTOS) { + String virtualIp = lazyNettyServerVirtualRouteDTO.getVirtualIp(); + String virtualPort = lazyNettyServerVirtualRouteDTO.getVirtualPort(); + String targetIp = lazyNettyServerVirtualRouteDTO.getTargetIp(); + String targetPort = lazyNettyServerVirtualRouteDTO.getTargetPort(); ServerProxyRoute serverProxyRoute = new ServerProxyRoute(); serverProxyRoute.setServerIp("default"); - serverProxyRoute.setAllowIp(routeIp); - serverProxyRoute.setAllowPort(routePort); + serverProxyRoute.setVirtualIp(virtualIp); + serverProxyRoute.setVirtualPort(virtualPort); + serverProxyRoute.setTargetIp(targetIp); + serverProxyRoute.setTargetPort(targetPort); serverProxyRoute.setRouteType(RouteType.CLIENT_PROXY_SEVER); NettyProxyMsg nettyMsg = new NettyProxyMsg(); nettyMsg.setType(ProxyMessageType.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_); @@ -212,18 +213,26 @@ public class ServerHandleTcpClientConnectSuccessTypeAdvanced extends AbstractHan // 下发客户端路由 - LazyNettyClientRouteQueryListCommand lazyNettyClientRouteQueryListCommand = new LazyNettyClientRouteQueryListCommand(); - lazyNettyClientRouteQueryListCommand.setIsDeleted(false); - lazyNettyClientRouteApplication.findList(lazyNettyClientRouteQueryListCommand) - .accept(lazyNettyClientRouteDTOList -> { - for (LazyNettyClientRouteDTO lazyNettyClientRouteDTO : lazyNettyClientRouteDTOList) { - String routeIp = lazyNettyClientRouteDTO.getRouteIp(); - String routePort = lazyNettyClientRouteDTO.getRoutePort(); - String routeClientId = lazyNettyClientRouteDTO.getClientId(); + LazyNettyClientVirtualRouteQueryListCommand lazyNettyClientVirtualRouteQueryListCommand = + new LazyNettyClientVirtualRouteQueryListCommand(); + lazyNettyClientVirtualRouteQueryListCommand.setIsDeleted(false); + lazyNettyClientVirtualRouteApplication.findList(lazyNettyClientVirtualRouteQueryListCommand) + .accept(lazyNettyClientVirtualRouteDTOList -> { + for (LazyNettyClientVirtualRouteDTO lazyNettyClientRouteDTO : lazyNettyClientVirtualRouteDTOList) { + String virtualIp = lazyNettyClientRouteDTO.getVirtualIp(); + String virtualPort = lazyNettyClientRouteDTO.getVirtualPort(); + String targetClientId = lazyNettyClientRouteDTO + .getTargetClientId(); + String targetIp = lazyNettyClientRouteDTO.getTargetIp(); + String targetPort = lazyNettyClientRouteDTO.getTargetPort(); + ClientProxyRoute clientProxyRoute = new ClientProxyRoute(); - clientProxyRoute.setClientId(routeClientId); - clientProxyRoute.setAllowIp(routeIp); - clientProxyRoute.setAllowPort(routePort); + + clientProxyRoute.setVirtualIp(virtualIp); + clientProxyRoute.setVirtualPort(virtualPort); + clientProxyRoute.setTargetClientId(targetClientId); + clientProxyRoute.setTargetIp(targetIp); + clientProxyRoute.setTargetPort(targetPort); clientProxyRoute.setRouteType(RouteType.CLIENT_PROXY_CLIENT); NettyProxyMsg nettyMsg = new NettyProxyMsg(); nettyMsg.setType(ProxyMessageType.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_); diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteQueryListCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteQueryListCommand.java index 82cd0d6..0e248c2 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteQueryListCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteQueryListCommand.java @@ -62,12 +62,6 @@ public class LazyNettyClientRouteQueryListCommand { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteQueryOneCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteQueryOneCommand.java index 0e8b74c..e23b179 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteQueryOneCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteQueryOneCommand.java @@ -62,12 +62,6 @@ public class LazyNettyClientRouteQueryOneCommand { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteRemoveCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteRemoveCommand.java index b50875a..a3f185a 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteRemoveCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteRemoveCommand.java @@ -62,12 +62,6 @@ public class LazyNettyClientRouteRemoveCommand { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteStoryCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteStoryCommand.java index e13ae47..3da705a 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteStoryCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteStoryCommand.java @@ -54,13 +54,6 @@ public class LazyNettyClientRouteStoryCommand { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; - /** * * 更新时间 diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteUpdateCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteUpdateCommand.java index 7cc9d29..3fce26a 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteUpdateCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/route/LazyNettyClientRouteUpdateCommand.java @@ -62,13 +62,6 @@ public class LazyNettyClientRouteUpdateCommand { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; - /** * * 更新时间 diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/virtual/route/LazyNettyClientVirtualRouteQueryListCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/virtual/route/LazyNettyClientVirtualRouteQueryListCommand.java index 5283c92..6b6086f 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/virtual/route/LazyNettyClientVirtualRouteQueryListCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/client/virtual/route/LazyNettyClientVirtualRouteQueryListCommand.java @@ -84,4 +84,10 @@ public class LazyNettyClientVirtualRouteQueryListCommand { @Schema(description ="客户端虚拟路由端口:默认ALL",name ="virtualPort",example = "") private String virtualPort; + /** + * + * 是否删除 + */ + @Schema(description ="是否删除",name ="isDeleted",example = "") + private Boolean isDeleted; } \ No newline at end of file diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteQueryListCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteQueryListCommand.java index 227e777..eec4b1d 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteQueryListCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteQueryListCommand.java @@ -55,12 +55,6 @@ public class LazyNettyServerRouteQueryListCommand { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteQueryOneCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteQueryOneCommand.java index 78707d3..2cda1a3 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteQueryOneCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteQueryOneCommand.java @@ -55,12 +55,6 @@ public class LazyNettyServerRouteQueryOneCommand { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteRemoveCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteRemoveCommand.java index 2cd0073..b475f88 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteRemoveCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteRemoveCommand.java @@ -55,12 +55,6 @@ public class LazyNettyServerRouteRemoveCommand { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteStoryCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteStoryCommand.java index 28dd94a..436499c 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteStoryCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteStoryCommand.java @@ -49,12 +49,6 @@ public class LazyNettyServerRouteStoryCommand { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteUpdateCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteUpdateCommand.java index 5340640..7fe5239 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteUpdateCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/route/LazyNettyServerRouteUpdateCommand.java @@ -55,12 +55,6 @@ public class LazyNettyServerRouteUpdateCommand { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/virtual/route/LazyNettyServerVirtualRouteQueryListCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/virtual/route/LazyNettyServerVirtualRouteQueryListCommand.java index c8174bf..f8af744 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/virtual/route/LazyNettyServerVirtualRouteQueryListCommand.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/command/lazy/netty/server/virtual/route/LazyNettyServerVirtualRouteQueryListCommand.java @@ -76,5 +76,11 @@ public class LazyNettyServerVirtualRouteQueryListCommand { */ @Schema(description ="虚拟服务端路由端口:默认ALL",name ="virtualPort",example = "") private String virtualPort; + /** + * + * 是否删除 + */ + @Schema(description ="是否删除",name ="isDeleted",example = "") + private Boolean isDeleted; } \ No newline at end of file diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/dto/LazyNettyClientRouteDTO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/dto/LazyNettyClientRouteDTO.java index fca294a..6f4a6a5 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/dto/LazyNettyClientRouteDTO.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/dto/LazyNettyClientRouteDTO.java @@ -62,12 +62,6 @@ public class LazyNettyClientRouteDTO { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/dto/LazyNettyServerRouteDTO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/dto/LazyNettyServerRouteDTO.java index 98459fd..d820758 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/dto/LazyNettyServerRouteDTO.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/application/dto/LazyNettyServerRouteDTO.java @@ -55,12 +55,6 @@ public class LazyNettyServerRouteDTO { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/domain/model/lazy/netty/client/route/LazyNettyClientRoute.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/domain/model/lazy/netty/client/route/LazyNettyClientRoute.java index 659a734..bcb8810 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/domain/model/lazy/netty/client/route/LazyNettyClientRoute.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/domain/model/lazy/netty/client/route/LazyNettyClientRoute.java @@ -62,13 +62,6 @@ public class LazyNettyClientRoute { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; - /** * * 更新时间 diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/domain/model/lazy/netty/server/route/LazyNettyServerRoute.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/domain/model/lazy/netty/server/route/LazyNettyServerRoute.java index d7b4abf..9811000 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/domain/model/lazy/netty/server/route/LazyNettyServerRoute.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/domain/model/lazy/netty/server/route/LazyNettyServerRoute.java @@ -55,12 +55,6 @@ public class LazyNettyServerRoute { @Schema(description ="路由IP",name ="routeIp",example = "") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/entity/LazyNettyClientRouteDO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/entity/LazyNettyClientRouteDO.java index cea282a..dc2fb9c 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/entity/LazyNettyClientRouteDO.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/entity/LazyNettyClientRouteDO.java @@ -77,13 +77,6 @@ public class LazyNettyClientRouteDO { @LazyTableField(name="route_ip",comment="路由IP",notNull=true,columnType="varchar(255)") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - @LazyTableField(name="route_port",comment="路由端口:默认ALL",notNull=true,defaultValue="'ALL'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="varchar(255)") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/entity/LazyNettyServerRouteDO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/entity/LazyNettyServerRouteDO.java index c1ef275..cca2fd6 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/entity/LazyNettyServerRouteDO.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/entity/LazyNettyServerRouteDO.java @@ -69,13 +69,6 @@ public class LazyNettyServerRouteDO { @LazyTableField(name="route_ip",comment="路由IP",notNull=true,columnType="varchar(255)") private String routeIp; - /** - * - * 路由端口:默认ALL - */ - @Schema(description ="路由端口:默认ALL",name ="routePort",example = "") - @LazyTableField(name="route_port",comment="路由端口:默认ALL",notNull=true,defaultValue="'ALL'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="varchar(255)") - private String routePort; /** * diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyClientRouteRepositoryImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyClientRouteRepositoryImpl.java index 52f9411..9a42514 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyClientRouteRepositoryImpl.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyClientRouteRepositoryImpl.java @@ -17,6 +17,7 @@ import org.springframework.stereotype.Repository; import java.nio.charset.StandardCharsets; import java.util.stream.Collectors; +import org.wu.framework.core.NormalUsedString; import org.wu.framework.lazy.orm.database.lambda.stream.wrapper.LazyUpdateSetValueWrappers; import org.wu.framework.lazy.orm.database.lambda.stream.wrapper.LazyWrappers; import org.wu.framework.web.response.Result; @@ -55,9 +56,9 @@ public class LazyNettyClientRouteRepositoryImpl implements LazyNettyClientRout lazyLambdaStream.upsert(lazyNettyClientRouteDO); String routeIp = lazyNettyClientRoute.getRouteIp(); - String routePort = lazyNettyClientRoute.getRoutePort(); String clientId = lazyNettyClientRoute.getClientId(); + String routePort = NormalUsedString.ASTERISK; // 新增虚拟ip映射 LazyNettyClientVirtualRouteDO lazyNettyClientVirtualRouteDO = new LazyNettyClientVirtualRouteDO(); lazyNettyClientVirtualRouteDO.setIsDeleted(false); @@ -185,7 +186,6 @@ public class LazyNettyClientRouteRepositoryImpl implements LazyNettyClientRout @Override public Result remove(LazyNettyClientRoute lazyNettyClientRoute) { - LazyNettyClientRouteDO lazyNettyClientRouteDO = LazyNettyClientRouteConverter.INSTANCE.fromLazyNettyClientRoute(lazyNettyClientRoute); lazyLambdaStream.update(LazyUpdateSetValueWrappers.lambdaWrapper() .set(LazyNettyClientRouteDO::getIsDeleted, true), LazyWrappers @@ -193,6 +193,33 @@ public class LazyNettyClientRouteRepositoryImpl implements LazyNettyClientRout .eq(LazyNettyClientRouteDO::getId, lazyNettyClientRoute.getId()) ); + LazyNettyClientRouteDO clientRouteDO = lazyLambdaStream.selectOne( + LazyWrappers + .lambdaWrapper() + .eq(LazyNettyClientRouteDO::getId, lazyNettyClientRoute.getId()) + ); + String routeIp = clientRouteDO.getRouteIp(); + String clientId = clientRouteDO.getClientId(); + String routePort=NormalUsedString.ASTERISK; + + ClientProxyRoute clientProxyRoute = new ClientProxyRoute(); + clientProxyRoute.setTargetClientId(clientId); + clientProxyRoute.setVirtualIp(routeIp); + clientProxyRoute.setVirtualPort(routePort); + clientProxyRoute.setTargetIp(routeIp); + clientProxyRoute.setTargetPort(routePort); + clientProxyRoute.setRouteType(RouteType.CLIENT_PROXY_CLIENT); + // 发送所有客户端本地路由刷新 + ChannelContext.getChannels().forEach((channelClientId, channels) -> { + NettyProxyMsg nettyMsg = new NettyProxyMsg(); + nettyMsg.setType(ProxyMessageType.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_CLOSE_); + nettyMsg.setData((JSON.toJSONString(clientProxyRoute) + .getBytes(StandardCharsets.UTF_8))); + // 发送所有客户端ID + for (Channel channel : channels) { + channel.writeAndFlush(nettyMsg); + } + }); return ResultFactory.successOf(); } diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyClientVirtualRouteRepositoryImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyClientVirtualRouteRepositoryImpl.java index 584f4fd..ec75ba8 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyClientVirtualRouteRepositoryImpl.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyClientVirtualRouteRepositoryImpl.java @@ -180,6 +180,37 @@ public class LazyNettyClientVirtualRouteRepositoryImpl implements LazyNettyClien .eq(LazyNettyClientVirtualRouteDO::getId, lazyNettyClientVirtualRouteDO.getId()) ); + + LazyNettyClientVirtualRouteDO clientVirtualRouteDO = lazyLambdaStream.selectOne( + LazyWrappers + .lambdaWrapper() + .eq(LazyNettyClientVirtualRouteDO::getId, lazyNettyClientVirtualRouteDO.getId()) + ); + String virtualIp = clientVirtualRouteDO.getVirtualIp(); + String virtualPort = clientVirtualRouteDO.getVirtualPort(); + String targetIp = clientVirtualRouteDO.getTargetIp(); + String targetPort = clientVirtualRouteDO.getTargetPort(); + String targetClientId = clientVirtualRouteDO.getTargetClientId(); + + + ClientProxyRoute clientProxyRoute = new ClientProxyRoute(); + clientProxyRoute.setTargetClientId(targetClientId); + clientProxyRoute.setVirtualIp(virtualIp); + clientProxyRoute.setVirtualPort(virtualPort); + clientProxyRoute.setTargetIp(targetIp); + clientProxyRoute.setTargetPort(targetPort); + clientProxyRoute.setRouteType(RouteType.CLIENT_PROXY_CLIENT); + // 发送所有客户端本地路由刷新 + ChannelContext.getChannels().forEach((channelClientId, channels) -> { + NettyProxyMsg nettyMsg = new NettyProxyMsg(); + nettyMsg.setType(ProxyMessageType.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_CLIENT_ROUTE_CLOSE_); + nettyMsg.setData((JSON.toJSONString(clientProxyRoute) + .getBytes(StandardCharsets.UTF_8))); + // 发送所有客户端ID + for (Channel channel : channels) { + channel.writeAndFlush(nettyMsg); + } + }); return ResultFactory.successOf(); } diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyServerRouteRepositoryImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyServerRouteRepositoryImpl.java index ac18a10..a299a52 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyServerRouteRepositoryImpl.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyServerRouteRepositoryImpl.java @@ -17,6 +17,7 @@ import org.springframework.stereotype.Repository; import java.nio.charset.StandardCharsets; import java.util.stream.Collectors; +import org.wu.framework.core.NormalUsedString; import org.wu.framework.lazy.orm.database.lambda.stream.wrapper.LazyUpdateSetValueWrappers; import org.wu.framework.lazy.orm.database.lambda.stream.wrapper.LazyWrappers; import org.wu.framework.web.response.Result; @@ -54,7 +55,7 @@ public class LazyNettyServerRouteRepositoryImpl implements LazyNettyServerRout LazyNettyServerRouteDO lazyNettyServerRouteDO = LazyNettyServerRouteConverter.INSTANCE.fromLazyNettyServerRoute(lazyNettyServerRoute); lazyLambdaStream.upsert(lazyNettyServerRouteDO); String routeIp = lazyNettyServerRoute.getRouteIp(); - String routePort = lazyNettyServerRoute.getRoutePort(); + String routePort = NormalUsedString.ASTERISK; // 新增虚拟ip映射 LazyNettyServerVirtualRouteDO lazyNettyServerVirtualRouteDO = new LazyNettyServerVirtualRouteDO(); lazyNettyServerVirtualRouteDO.setIsDeleted(false); @@ -180,7 +181,6 @@ public class LazyNettyServerRouteRepositoryImpl implements LazyNettyServerRout @Override public Result remove(LazyNettyServerRoute lazyNettyServerRoute) { - LazyNettyServerRouteDO lazyNettyServerRouteDO = LazyNettyServerRouteConverter.INSTANCE.fromLazyNettyServerRoute(lazyNettyServerRoute); lazyLambdaStream.update(LazyUpdateSetValueWrappers.lambdaWrapper() .set(LazyNettyServerRouteDO::getIsDeleted, true), LazyWrappers @@ -188,6 +188,32 @@ public class LazyNettyServerRouteRepositoryImpl implements LazyNettyServerRout .eq(LazyNettyServerRouteDO::getId, lazyNettyServerRoute.getId()) ); + + LazyNettyServerRouteDO serverRouteDO = lazyLambdaStream.selectOne( + LazyWrappers.lambdaWrapper() + .eq(LazyNettyServerRouteDO::getId, lazyNettyServerRoute.getId()) + ); + String routeIp = serverRouteDO.getRouteIp(); + String routePort = NormalUsedString.ASTERISK; + + ServerProxyRoute clientProxyServerRoute = new ServerProxyRoute(); + clientProxyServerRoute.setServerIp("default"); + clientProxyServerRoute.setVirtualIp(routeIp); + clientProxyServerRoute.setVirtualPort(routePort); + clientProxyServerRoute.setTargetIp(routeIp); + clientProxyServerRoute.setTargetPort(routePort); + clientProxyServerRoute.setRouteType(RouteType.CLIENT_PROXY_SEVER); + // 发送所有客户端本地路由刷新 + ChannelContext.getChannels().forEach((clientId, channels) -> { + NettyProxyMsg nettyMsg = new NettyProxyMsg(); + nettyMsg.setType(ProxyMessageType.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_CLOSE_); + nettyMsg.setData((JSON.toJSONString(clientProxyServerRoute) + .getBytes(StandardCharsets.UTF_8))); + // 发送所有客户端ID + for (Channel channel : channels) { + channel.writeAndFlush(nettyMsg); + } + }); return ResultFactory.successOf(); } diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyServerVirtualRouteRepositoryImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyServerVirtualRouteRepositoryImpl.java index 8e755aa..1f782b5 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyServerVirtualRouteRepositoryImpl.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/standalone/infrastructure/persistence/LazyNettyServerVirtualRouteRepositoryImpl.java @@ -179,6 +179,36 @@ public class LazyNettyServerVirtualRouteRepositoryImpl implements LazyNettyServe .eq(LazyNettyServerVirtualRouteDO::getId, lazyNettyServerVirtualRouteDO.getId()) ); + + LazyNettyServerVirtualRouteDO virtualRouteDO = lazyLambdaStream.selectOne( + LazyWrappers.lambdaWrapper() + .eq(LazyNettyServerVirtualRouteDO::getId, lazyNettyServerVirtualRouteDO.getId()) + ); + String virtualIp = virtualRouteDO.getVirtualIp(); + String virtualPort = virtualRouteDO.getVirtualPort(); + String targetIp = virtualRouteDO.getTargetIp(); + String targetPort = virtualRouteDO.getTargetPort(); + + + + ServerProxyRoute clientProxyServerRoute = new ServerProxyRoute(); + clientProxyServerRoute.setServerIp("default"); + clientProxyServerRoute.setVirtualIp(virtualIp); + clientProxyServerRoute.setVirtualPort(virtualPort); + clientProxyServerRoute.setTargetIp(targetIp); + clientProxyServerRoute.setTargetPort(targetPort); + clientProxyServerRoute.setRouteType(RouteType.CLIENT_PROXY_SEVER); + // 发送所有客户端本地路由刷新 + ChannelContext.getChannels().forEach((clientId, channels) -> { + NettyProxyMsg nettyMsg = new NettyProxyMsg(); + nettyMsg.setType(ProxyMessageType.HTTP_DISTRIBUTE_CLIENT_PROXY_SERVER_SERVER_ROUTE_CLOSE_); + nettyMsg.setData((JSON.toJSONString(clientProxyServerRoute) + .getBytes(StandardCharsets.UTF_8))); + // 发送所有客户端ID + for (Channel channel : channels) { + channel.writeAndFlush(nettyMsg); + } + }); return ResultFactory.successOf(); } diff --git a/wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/index.html b/wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/index.html index 2c149bd..623c382 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/index.html +++ b/wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/index.html @@ -1 +1 @@ -网络渗透
\ No newline at end of file +网络渗透
\ No newline at end of file diff --git a/wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/js/5886.3af41bac.js b/wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/js/5886.3af41bac.js deleted file mode 100644 index b9d8aa9..0000000 --- a/wu-lazy-cloud-heartbeat-server/src/main/resources/netty-server-ui/v1/js/5886.3af41bac.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 5886.3af41bac.js.LICENSE.txt */ -(self.webpackChunkwu_vue_zone_ecology_net=self.webpackChunkwu_vue_zone_ecology_net||[]).push([[5886,5125,2649,2050,5385,649,5063,6380,4534,6151,9871,2064,2584,890,2394,9132,8709,4544,5757,1329,4530,8340,651,7424],{99013:function(e){var t;t=function(){return function(){var e={686:function(e,t,l){"use strict";l.d(t,{default:function(){return k}});var a=l(279),n=l.n(a),o=l(370),r=l.n(o),u=l(817),i=l.n(u);function d(e){try{return document.execCommand(e)}catch(e){return!1}}var s=function(e){var t=i()(e);return d("cut"),t},c=function(e,t){var l=function(e){var t="rtl"===document.documentElement.getAttribute("dir"),l=document.createElement("textarea");l.style.fontSize="12pt",l.style.border="0",l.style.padding="0",l.style.margin="0",l.style.position="absolute",l.style[t?"right":"left"]="-9999px";var a=window.pageYOffset||document.documentElement.scrollTop;return l.style.top="".concat(a,"px"),l.setAttribute("readonly",""),l.value=e,l}(e);t.container.appendChild(l);var a=i()(l);return d("copy"),l.remove(),a},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body},l="";return"string"==typeof e?l=c(e,t):e instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==e?void 0:e.type)?l=c(e.value,t):(l=i()(e),d("copy")),l};function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}var f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.action,l=void 0===t?"copy":t,a=e.container,n=e.target,o=e.text;if("copy"!==l&&"cut"!==l)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==n){if(!n||"object"!==m(n)||1!==n.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===l&&n.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===l&&(n.hasAttribute("readonly")||n.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return o?p(o,{container:a}):n?"cut"===l?s(n):p(n,{container:a}):void 0};function v(e){return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v(e)}function w(e,t){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===v(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=r()(e,"click",(function(e){return t.onClick(e)}))}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget,l=this.action(t)||"copy",a=f({action:l,container:this.container,target:this.target(t),text:this.text(t)});this.emit(a?"success":"error",{action:l,text:a,trigger:t,clearSelection:function(){t&&t.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(e){return h("action",e)}},{key:"defaultTarget",value:function(e){var t=h("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return h("text",e)}},{key:"destroy",value:function(){this.listener.destroy()}}],a=[{key:"copy",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body};return p(e,t)}},{key:"cut",value:function(e){return s(e)}},{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,l=!!document.queryCommandSupported;return t.forEach((function(e){l=l&&!!document.queryCommandSupported(e)})),l}}],l&&w(t.prototype,l),a&&w(t,a),o}(n()),k=_},828:function(e){if("undefined"!=typeof Element&&!Element.prototype.matches){var t=Element.prototype;t.matches=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector}e.exports=function(e,t){for(;e&&9!==e.nodeType;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}},438:function(e,t,l){var a=l(828);function n(e,t,l,a,n){var r=o.apply(this,arguments);return e.addEventListener(l,r,n),{destroy:function(){e.removeEventListener(l,r,n)}}}function o(e,t,l,n){return function(l){l.delegateTarget=a(l.target,t),l.delegateTarget&&n.call(e,l)}}e.exports=function(e,t,l,a,o){return"function"==typeof e.addEventListener?n.apply(null,arguments):"function"==typeof l?n.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,(function(e){return n(e,t,l,a,o)})))}},879:function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var l=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===l||"[object HTMLCollection]"===l)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},370:function(e,t,l){var a=l(879),n=l(438);e.exports=function(e,t,l){if(!e&&!t&&!l)throw new Error("Missing required arguments");if(!a.string(t))throw new TypeError("Second argument must be a String");if(!a.fn(l))throw new TypeError("Third argument must be a Function");if(a.node(e))return function(e,t,l){return e.addEventListener(t,l),{destroy:function(){e.removeEventListener(t,l)}}}(e,t,l);if(a.nodeList(e))return function(e,t,l){return Array.prototype.forEach.call(e,(function(e){e.addEventListener(t,l)})),{destroy:function(){Array.prototype.forEach.call(e,(function(e){e.removeEventListener(t,l)}))}}}(e,t,l);if(a.string(e))return function(e,t,l){return n(document.body,e,t,l)}(e,t,l);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(e){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var l=e.hasAttribute("readonly");l||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),l||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var a=window.getSelection(),n=document.createRange();n.selectNodeContents(e),a.removeAllRanges(),a.addRange(n),t=a.toString()}return t}},279:function(e){function t(){}t.prototype={on:function(e,t,l){var a=this.e||(this.e={});return(a[e]||(a[e]=[])).push({fn:t,ctx:l}),this},once:function(e,t,l){var a=this;function n(){a.off(e,n),t.apply(l,arguments)}return n._=t,this.on(e,n,l)},emit:function(e){for(var t=[].slice.call(arguments,1),l=((this.e||(this.e={}))[e]||[]).slice(),a=0,n=l.length;a{if(!e)return[];for(const o of e){if(n.push(o[l]),t(o))return n;if(o.children){const e=a(o.children,t,l,n);if(e.length)return e}n.pop()}return[]},n=e=>e&&(e.__v_raw||e.valueOf()||e),o=()=>{const e=l(9166);console.log("🚀 ~ file: index.js ~ line 107 ~ icons ~ e",e);const t=[];for(const l in e)t.push(e[l].name);return t}},71634:function(e,t){"use strict";t.Z={description:"网络管理",type:"1",icon:"Tools",name:"网络管理"}},78005:function(e,t){"use strict";t.Z={description:"客户端渗透管理",type:"1",icon:"SwitchFilled",name:"客户端渗透管理"}},50891:function(e,t){"use strict";t.Z={description:"路由管理",type:"1",icon:"Lightning",name:"路由管理"}},98131:function(e,t){"use strict";t.Z={description:"服务端渗透管理",type:"1",icon:"SwitchFilled",name:"服务端渗透管理"}},49686:function(e,t,l){"use strict";l.d(t,{EL:function(){return u},Fx:function(){return r},G8:function(){return d},MI:function(){return o},fG:function(){return s},jx:function(){return i}});var a=l(67759),n=l(41728);const o=(e,t)=>{e.size=10,e.current=1,t()},r=(e,t,l)=>{e.resetFields(),o(t,l)},u=(e,t,l)=>{t.current=1,t.size=e,l()},i=(e,t,l)=>{t.current=e,l()},d=(e,t,l,a,o)=>{let r="",u=n.findTree(a,(e=>e.id===l));if(u&&u.item&&u.item.children&&u.item.children.length>0){let t=u.item.children.find((t=>t.menu===e));t&&(r=t.toPath)}if(""!==r){let e=n.findTree(a,(e=>e.id===r));if(e&&e.item){if(0!==e.item.iframe)return`i-${r}`;if(e.item.url===t)return`${t.replace(/\//g,"-")}-${r}`}}o.$message({type:"error",message:"无法跳转,请联系系统管理员!"})},s=async(e,t,n,{router:o,route:r})=>{const u={components:{FunctionPage:l(65125).default,AsyncComponent:l(18786)("./"+t+".vue").default},data:()=>({rName:null}),methods:{reload(e){return e.returnValue=""}},mounted(){this.rName=this.$route.name,window.addEventListener("beforeunload",this.reload)},beforeUnmount(){window.removeEventListener("beforeunload",this.reload),this.$router.removeRoute(this.rName)},render(){return(0,a.Wm)((0,a.up)("function-page"),{title:e},{default:()=>[(0,a.Wm)((0,a.up)("async-component"),null,null)]})}},i={name:r.name+"/"+n,path:r.name+"/"+n,component:u};return await o.addRoute("AppMain",i),i.name}},25541:function(e,t){"use strict";t.Z={description:"系统设置",type:"1",icon:"Settings",name:"系统设置"}},11461:function(e,t){"use strict";t.Z={description:"系统管理",type:"1",icon:"Tools",name:"系统管理"}},57548:function(e,t){"use strict";t.Z={description:"区域管理",type:"1",icon:"Tools",name:"区域管理"}},65125:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"FunctionPage",props:{title:{type:String,require:!0}},setup(e){const t=e,{title:l}=(0,n.BK)(t);return(e,t)=>{const o=(0,a.up)("el-page-header"),r=(0,a.up)("el-alert"),u=(0,a.up)("el-divider");return(0,a.wg)(),(0,a.iD)("div",null,[(0,a.Wm)(o,{onBack:t[0]||(t[0]=t=>e.$router.back()),content:(0,n.SU)(l)},null,8,["content"]),(0,a.Wm)(r,{style:{"margin-top":"20px"},type:"info",description:"当前为动态权限页面!离开后将无法访问!刷新页面请使用本系统自带刷新按钮!!!","show-icon":"","close-text":"知道了"}),(0,a.Wm)(u),(0,a.WI)(e.$slots,"default")])}}}},57235:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return m}});var a=l(67759),n=l(38874),o=l(12257);const r={class:"ve_table"},u={class:"ve_table_page"},i={class:"ve_table_content",ref:"tableBox"};var d=l(76364);const s=(e,t)=>{e.size=10,e.current=1,t()};var c=l(49686),p={name:"LazyCrud",methods:{doPageCurrentChange:(e,t,l)=>{t.current=e,l()},doPageSizeChange:(e,t,l)=>{t.current=1,t.size=e,l()},handleCurrentChange:c.jx,handleSizeChange:c.EL,doPageQuery:s,doResetPageQuery:(e,t,l)=>{e.resetFields(),s(t,l)}},inheritAttrs:!1,directives:{delete:e=>{e.children.length<=0&&e.parentNode&&e.parentNode.removeChild(e)},addClass:e=>{e.parentNode&&e.parentNode.classList.add("ve_flex_col")}},props:{r:{type:Object,required:!0}},setup(e,t){const{emit:l}=t,n=(0,d.iH)(null),o=(0,d.iH)(null),r=(0,d.qj)({size:10,current:1,total:0}),u=(0,d.iH)(null),i=(0,d.iH)(null),s=(0,d.iH)(null),c=async()=>{const{code:e,data:t}=await VE_API.system.rolePage(r);if(0===e){const{size:e,current:l,total:a,records:n}=t;r.size=e,r.current=l,r.total=a,i.value=n}};return(0,a.bv)((async()=>{await c()})),{elTable:n,tableBox:s,ve_rowIndex:o,cellClassName:(e,t)=>e===t?"ve_cell_class_name":"",rowClassName:(e,t)=>e===t?"ve_row_class_name":"",rowClick:e=>e,selectionChange:e=>{l("selectionChange",e)},buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},member:{name:"查看成员",toPath:!0}},handleRowEdit:e=>{console.log(e)},handleRowDel:e=>{console.log(e)},pageQueryParams:r,pageQueryForm:u,getDataList:c,pageTableData:i,props:e}}};var m=(0,l(70636).Z)(p,[["render",function(e,t,l,d,s,c){const p=(0,a.up)("el-row"),m=(0,a.up)("el-input"),f=(0,a.up)("el-form-item"),v=(0,a.up)("el-button"),w=(0,a.up)("el-form"),y=(0,a.up)("el-empty"),g=(0,a.up)("el-table-column"),b=(0,a.up)("el-tag"),h=(0,a.up)("el-table"),_=(0,a.up)("el-pagination"),k=(0,a.Q2)("delete"),U=(0,a.Q2)("permission"),C=(0,a.Q2)("addClass");return(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",r,[(0,a.wy)(((0,a.wg)(),(0,a.j4)(p,{class:"ve_header_row_class_name ve_p_10"},{default:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"tool_bar",{},void 0,!0)])),_:3})),[[k]]),(0,a.Wm)(w,{ref:"pageQueryForm",inline:!0,model:d.pageQueryParams},{default:(0,a.w5)((()=>[(0,a.Wm)(f,{label:"名称",prop:"name"},{default:(0,a.w5)((()=>[(0,a.Wm)(m,{clearable:"",modelValue:e.name,"onUpdate:modelValue":t[0]||(t[0]=t=>e.name=t),placeholder:"请输入名称"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(f,null,{default:(0,a.w5)((()=>[(0,a.Wm)(v,{type:"primary",onClick:t[1]||(t[1]=e=>c.doPageQuery(d.pageQueryParams,d.getDataList))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,n.zw)(d.buttons.search.name),1)])),_:1}),(0,a.Wm)(v,{onClick:t[2]||(t[2]=e=>c.doResetPageQuery(d.pageQueryForm,d.pageQueryParams,d.getDataList))},{default:(0,a.w5)((()=>t[7]||(t[7]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a._)("div",u,[(0,a._)("div",i,[(0,a.Wm)(h,(0,a.dG)({ref:"elTable",height:"100%",stripe:"",border:"","highlight-current-row":"",onRowClick:t[4]||(t[4]=(e,t,l)=>d.ve_rowIndex=d.rowClick(l)),"row-class-name":({rowIndex:e})=>d.rowClassName(e,d.ve_rowIndex),"cell-class-name":({rowIndex:e})=>d.cellClassName(e,d.ve_rowIndex),"header-row-class-name":"ve_header_row_class_name","header-cell-class-name":"ve_header_cell_class_name",style:{width:"100%"}},e.$attrs.table,{data:d.pageTableData,onSelectionChange:d.selectionChange}),{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(v,{size:"small",type:"primary",onClick:t[3]||(t[3]=e=>d.handleRowEdit(d.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,n.zw)(d.buttons.add.name),1)])),_:1})),[[U,["add"]]])])),append:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"append",{},void 0,!0)])),empty:(0,a.w5)((()=>[(0,a.Wm)(y,{description:"暂无数据"})])),default:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"default",{},void 0,!0),(0,a.Wm)(g,{prop:"code",label:"角色编码"}),(0,a.Wm)(g,{prop:"name",label:"角色名",width:"120"}),(0,a.Wm)(g,{prop:"status",label:"状态"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(b,{type:e.status?"":"danger"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,n.zw)(e.status?"启用":"停用"),1)])),_:2},1032,["type"])])),_:1}),(0,a.Wm)(g,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:e})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(v,{onClick:(0,o.iM)((t=>d.handleRowEdit(d.buttons.edit.name,e)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,n.zw)(d.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[U,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(v,{onClick:(0,o.iM)((t=>d.handleRowDel(e.id)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,n.zw)(d.buttons.del.name),1)])),_:2},1032,["onClick"])),[[U,["del"]]])])),_:1})])),_:3},16,["row-class-name","cell-class-name","data","onSelectionChange"])],512),(0,a.Wm)(_,(0,a.dG)({background:"",layout:"total, sizes, prev, pager, next, jumper","page-sizes":[10,20,50,100,200,500,1e3,2e3,5e3,1e4],"hide-on-single-page":!1},e.$attrs.pagination,{"current-page":d.pageQueryParams.current,"page-size":d.pageQueryParams.size,total:d.pageQueryParams.total,onSizeChange:t[5]||(t[5]=e=>c.doPageSizeChange(e,d.pageQueryParams,d.getDataList)),onCurrentChange:t[6]||(t[6]=e=>c.doPageCurrentChange(e,d.pageQueryParams,d.getDataList))}),{default:(0,a.w5)((()=>[(0,a.WI)(e.$slots,"pagination",{},void 0,!0)])),_:3},16,["current-page","page-size","total"])])])),[[C]])}],["__scopeId","data-v-11019130"]])},43024:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(72649),i=l(49686);var d={description:"应用管理",type:"1",icon:"Pointer",name:"应用管理"},s=l(64779);const c={class:"ve_container"},p={data:()=>({description:"应用管理",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"}},type:"1",icon:"Pointer",name:"应用管理",parentMenu:d,module:s.moduleName})};var m=Object.assign(p,{__name:"Application",setup(e){const{proxy:t}=(0,a.FN)(),d=(0,n.iH)(null),s=(0,n.iH)(""),p=(0,n.iH)(!1),m=(0,n.iH)(null),f=(0,n.iH)([]),v=(0,n.qj)({name:"",size:10,current:1,total:0}),{name:w,size:y,current:g,total:b}=(0,n.BK)(v),h=(e,t=null)=>{p.value=!0,s.value=e,d.value=t},_=async()=>{const{code:e,data:t}=await VE_API.application.applicationFindPage(v);if(0===e){const{size:e,current:l,total:a,records:n}=t;v.size=e,v.current=l,v.total=a,f.value=n}};return(0,a.bv)((async()=>{await _()})),(e,k)=>{const U=(0,a.up)("el-input"),C=(0,a.up)("el-form-item"),S=(0,a.up)("el-button"),W=(0,a.up)("el-form"),V=(0,a.up)("el-image"),I=(0,a.up)("el-tag"),P=(0,a.up)("el-descriptions-item"),D=(0,a.up)("el-descriptions"),z=(0,a.up)("el-card"),x=(0,a.up)("el-col"),j=(0,a.up)("el-row"),E=(0,a.up)("ve-table"),q=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",c,[(0,a.Wm)(W,{ref_key:"queryForm",ref:m,inline:!0,model:v},{default:(0,a.w5)((()=>[(0,a.Wm)(C,{label:"名称",prop:"name"},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{clearable:"",modelValue:(0,n.SU)(w),"onUpdate:modelValue":k[0]||(k[0]=e=>(0,n.dq)(w)?w.value=e:null),placeholder:"请输入"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(C,null,{default:(0,a.w5)((()=>[(0,a.Wm)(S,{type:"primary",onClick:k[1]||(k[1]=e=>(0,n.SU)(i.MI)(v,_))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(S,{onClick:k[2]||(k[2]=e=>(0,n.SU)(i.Fx)(m.value,v,_))},{default:(0,a.w5)((()=>k[5]||(k[5]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(E,{table:{data:f.value},pagination:{onSizeChange:e=>(0,n.SU)(i.EL)(e,v,_),onCurrentChange:e=>(0,n.SU)(i.jx)(e,v,_),currentPage:(0,n.SU)(g),pageSize:(0,n.SU)(y),total:(0,n.SU)(b)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(S,{size:"small",type:"primary",onClick:k[3]||(k[3]=t=>h(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[q,["add"]]]),(0,a.Wm)(j,{gutter:20,class:"application_item_class_"},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(f.value,((n,u)=>((0,a.wg)(),(0,a.j4)(x,{key:u,span:8},{default:(0,a.w5)((()=>[(0,a.Wm)(z,null,{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)(V,{key:u,class:"pl-10 pr-10",style:{width:"68px",height:"36px"},src:l(10576),fit:"contain",onClick:e=>((e=null)=>{let t=window.location.protocol,l=window.location.hostname,a=window.location.port;if(e.openNewWindow)if(e.isStation){console.log("站内应用新窗口打开");let n=e.url;e.url&&e.url.startsWith("/")&&(n=e.url.substring(e.url.indexOf("/")+1,e.url.length)),window.open(t+"//"+l+":"+a+"/"+n)}else console.log("站外应用新窗口打开"),window.open(e.url),console.log(e);else if(e.isStation){console.log("站内应用本窗口打开");let n=e.url;e.url&&e.url.startsWith("/")&&(n=e.url.substring(e.url.indexOf("/")+1,e.url.length)),window.location.href=t+"//"+l+":"+a+"/"+n}else console.log("站外应用本窗口打开"),window.location.href=e.url,console.log(e)})(n)},null,8,["src","onClick"])),(0,a.Wm)(D,{title:"应用信息",column:1,border:""},{default:(0,a.w5)((()=>[(0,a.Wm)(P,{label:"应用名称","label-align":"left",align:"center"},{default:(0,a.w5)((()=>[(0,a.Wm)(I,{size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(n.name),1)])),_:2},1024)])),_:2},1024),(0,a.Wm)(P,{label:"应用地址","label-align":"left",align:"center"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(n.url),1)])),_:2},1024),(0,a.Wm)(P,{label:"是否站内","label-align":"left",align:"center"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(!0===n.isStation?"站内":"站外"),1)])),_:2},1024),(0,a.Wm)(P,{label:"是否新窗口打开","label-align":"left",align:"center"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(!0===n.openNewWindow?"新窗口打开":"本窗口打开"),1)])),_:2},1024)])),_:2},1024),(0,a.wy)(((0,a.wg)(),(0,a.j4)(S,{onClick:(0,r.iM)((t=>h(e.buttons.edit.name,n)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[q,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(S,{onClick:(0,r.iM)((e=>{return l=n.id,void t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:e}=await VE_API.application.applicationRemove({id:l});0===e&&_()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}));var l}),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[q,["del"]]])])),_:2},1024)])),_:2},1024)))),128))])),_:1})])),_:1},8,["table","pagination"]),p.value?((0,a.wg)(),(0,a.j4)(u.default,{key:0,rowData:d.value,title:s.value,showDialog:p.value,onCloseDialog:k[4]||(k[4]=e=>{return t=e,p.value=t,void _();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}});var f=(0,l(70636).Z)(m,[["__scopeId","data-v-5a34f483"]])},72649:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"ApplicationEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l=e,o=t,{title:r,rowData:u}=(0,n.BK)(l),i=()=>{o("closeDialog",!1)},d=(0,n.qj)({code:"",icon:"",name:"",isStation:!0,openNewWindow:!0,url:""}),{code:s,icon:c,name:p,isStation:m,openNewWindow:f,url:v}=(0,n.BK)(d),w=(0,n.iH)(null),y={name:[{required:!0,message:"请输入应用名称",trigger:"blur"}],code:[{required:!0,message:"请输入应用编码",trigger:"blur"}],isStation:[{required:!0,message:"请选择是否站内",trigger:"blur"}],openNewWindow:[{required:!0,message:"请选择是否新窗口打开",trigger:"blur"}]};u.value&&(p.value=u.value.name,s.value=u.value.code,c.value=u.value.icon,m.value=u.value.isStation,f.value=u.value.openNewWindow,v.value=u.value.url);return(0,a.bv)((async()=>{})),(t,l)=>{const o=(0,a.up)("el-input"),g=(0,a.up)("el-form-item"),b=(0,a.up)("el-radio-button"),h=(0,a.up)("el-radio-group"),_=(0,a.up)("el-form"),k=(0,a.up)("el-button"),U=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(U,{title:(0,n.SU)(r),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:l[8]||(l[8]=e=>i())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(k,{onClick:l[6]||(l[6]=e=>i())},{default:(0,a.w5)((()=>l[13]||(l[13]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(k,{type:"primary",onClick:l[7]||(l[7]=e=>{w.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e,t=new FormData;t.append("name",d.name),t.append("code",d.code),t.append("icon",d.icon),t.append("isStation",d.isStation),t.append("openNewWindow",d.openNewWindow),t.append("url",d.url),e="添加"===r.value?await VE_API.application.applicationStory(d):await VE_API.application.applicationStory({id:u.value.id,...d});const{code:l}=e;0===l&&i()}}))})},{default:(0,a.w5)((()=>l[14]||(l[14]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(_,{model:d,ref_key:"formRef",ref:w,rules:y,inline:!1,"label-width":"120px"},{default:(0,a.w5)((()=>[(0,a.Wm)(g,{label:"应用名称",prop:"name",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(p),"onUpdate:modelValue":l[0]||(l[0]=e=>(0,n.dq)(p)?p.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(g,{label:"应用编码",prop:"code",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(s),"onUpdate:modelValue":l[1]||(l[1]=e=>(0,n.dq)(s)?s.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(g,{label:"应用图标",prop:"icon",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(c),"onUpdate:modelValue":l[2]||(l[2]=e=>(0,n.dq)(c)?c.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(g,{label:"是否站内",prop:"isStation",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":l[3]||(l[3]=e=>(0,n.dq)(m)?m.value=e:null)},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{label:!0},{default:(0,a.w5)((()=>l[9]||(l[9]=[(0,a.Uk)("站内")]))),_:1}),(0,a.Wm)(b,{label:!1},{default:(0,a.w5)((()=>l[10]||(l[10]=[(0,a.Uk)("站外")]))),_:1})])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(g,{label:"应用地址",prop:"url",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(v),"onUpdate:modelValue":l[4]||(l[4]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(g,{label:"是否新窗口打开",prop:"openNewWindow",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{modelValue:(0,n.SU)(f),"onUpdate:modelValue":l[5]||(l[5]=e=>(0,n.dq)(f)?f.value=e:null)},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{label:!0},{default:(0,a.w5)((()=>l[11]||(l[11]=[(0,a.Uk)("新窗口打开")]))),_:1}),(0,a.Wm)(b,{label:!1},{default:(0,a.w5)((()=>l[12]||(l[12]=[(0,a.Uk)("当前页面跳转")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},55772:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return s}});var a=l(67759),n=l(76364),o=l(38874),r=l(49686),u=l(71634);const i={class:"ve_container"},d={data:()=>({description:"流量管理",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},offLine:{name:"下线"},sendMessage:{name:"发送消息"},export:{name:"导出用户"}},type:"1",icon:"TrendCharts",name:"流量管理",parentMenu:u.Z})};var s=Object.assign(d,{__name:"ClientFlowManager",setup(e){const t=(0,n.iH)(null),l=(0,n.iH)([]),u=((0,n.iH)(null),(0,n.iH)(!1),(0,n.qj)({clientId:"",size:10,current:1,total:0})),{clientId:d,size:s,current:c,total:p}=(0,n.BK)(u),m=async()=>{},f=async()=>{const{code:e,data:t}=await VE_API.cloudNetwork.visitorClientFlowPage(u);if(0===e){const{size:e,current:a,total:n,records:o}=t;u.size=e,u.current=a,u.total=n,l.value=o}};return(0,a.bv)((async()=>{await f()})),(e,v)=>{const w=(0,a.up)("el-input"),y=(0,a.up)("el-form-item"),g=(0,a.up)("el-button"),b=(0,a.up)("el-form"),h=(0,a.up)("el-table-column"),_=(0,a.up)("el-table"),k=(0,a.up)("ve-table");return(0,a.wg)(),(0,a.iD)("div",i,[(0,a.Wm)(b,{ref_key:"queryForm",ref:t,inline:!0,model:u},{default:(0,a.w5)((()=>[(0,a.Wm)(y,{label:"客户端ID",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(w,{clearable:"",modelValue:(0,n.SU)(d),"onUpdate:modelValue":v[0]||(v[0]=e=>(0,n.dq)(d)?d.value=e:null),placeholder:"客户端ID"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(y,null,{default:(0,a.w5)((()=>[(0,a.Wm)(g,{type:"primary",onClick:v[1]||(v[1]=e=>(0,n.SU)(r.MI)(u,f))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(g,{onClick:v[2]||(v[2]=e=>(0,n.SU)(r.Fx)(t.value,u,f))},{default:(0,a.w5)((()=>v[3]||(v[3]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(k,{table:{data:l.value},pagination:{onSizeChange:e=>(0,n.SU)(r.EL)(e,u,f),onCurrentChange:e=>(0,n.SU)(r.jx)(e,u,f),currentPage:(0,n.SU)(c),pageSize:(0,n.SU)(s),total:(0,n.SU)(p)},onExpandChange:m},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{type:"expand"},{default:(0,a.w5)((e=>[(0,a.Wm)(_,{data:e.row.lazyVisitorPortFlowDTOList,size:"mini",style:{width:"95%","margin-left":"8%"}},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{prop:"clientId",label:"客户端ID"}),(0,a.Wm)(h,{prop:"visitorPort",label:"访客端口"}),(0,a.Wm)(h,{prop:"outFlow",label:"客户端出口流量"}),(0,a.Wm)(h,{prop:"inFlow",label:"客户端进口流量"})])),_:2},1032,["data"])])),_:1}),(0,a.Wm)(h,{prop:"clientId",label:"客户端ID"}),(0,a.Wm)(h,{prop:"outFlow",label:"客户端出口流量"}),(0,a.Wm)(h,{prop:"inFlow",label:"客户端进口流量"}),(0,a.Wm)(h,{fixed:"right",label:"操作"})])),_:1},8,["table","pagination"])])}}})},57607:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return L}});var a,n=l(67759),o=l(76364),r=l(38874),u=l(12257),i=l(49686),d=l(12050),s=l(99013),c=l(27395),p=new Uint8Array(16);function m(){if(!a&&!(a="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return a(p)}var f=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;for(var v=function(e){return"string"==typeof e&&f.test(e)},w=[],y=0;y<256;++y)w.push((y+256).toString(16).substr(1));var g,b,h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,l=(w[e[t+0]]+w[e[t+1]]+w[e[t+2]]+w[e[t+3]]+"-"+w[e[t+4]]+w[e[t+5]]+"-"+w[e[t+6]]+w[e[t+7]]+"-"+w[e[t+8]]+w[e[t+9]]+"-"+w[e[t+10]]+w[e[t+11]]+w[e[t+12]]+w[e[t+13]]+w[e[t+14]]+w[e[t+15]]).toLowerCase();if(!v(l))throw TypeError("Stringified UUID is invalid");return l},_=0,k=0;var U=function(e,t,l){var a=t&&l||0,n=t||new Array(16),o=(e=e||{}).node||g,r=void 0!==e.clockseq?e.clockseq:b;if(null==o||null==r){var u=e.random||(e.rng||m)();null==o&&(o=g=[1|u[0],u[1],u[2],u[3],u[4],u[5]]),null==r&&(r=b=16383&(u[6]<<8|u[7]))}var i=void 0!==e.msecs?e.msecs:Date.now(),d=void 0!==e.nsecs?e.nsecs:k+1,s=i-_+(d-k)/1e4;if(s<0&&void 0===e.clockseq&&(r=r+1&16383),(s<0||i>_)&&void 0===e.nsecs&&(d=0),d>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_=i,k=d,b=r;var c=(1e4*(268435455&(i+=122192928e5))+d)%4294967296;n[a++]=c>>>24&255,n[a++]=c>>>16&255,n[a++]=c>>>8&255,n[a++]=255&c;var p=i/4294967296*1e4&268435455;n[a++]=p>>>8&255,n[a++]=255&p,n[a++]=p>>>24&15|16,n[a++]=p>>>16&255,n[a++]=r>>>8|128,n[a++]=255&r;for(var f=0;f<6;++f)n[a+f]=o[f];return t||h(n)};var C=function(e){if(!v(e))throw TypeError("Invalid UUID");var t,l=new Uint8Array(16);return l[0]=(t=parseInt(e.slice(0,8),16))>>>24,l[1]=t>>>16&255,l[2]=t>>>8&255,l[3]=255&t,l[4]=(t=parseInt(e.slice(9,13),16))>>>8,l[5]=255&t,l[6]=(t=parseInt(e.slice(14,18),16))>>>8,l[7]=255&t,l[8]=(t=parseInt(e.slice(19,23),16))>>>8,l[9]=255&t,l[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,l[11]=t/4294967296&255,l[12]=t>>>24&255,l[13]=t>>>16&255,l[14]=t>>>8&255,l[15]=255&t,l};function S(e,t,l){function a(e,a,n,o){if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var t=[],l=0;l>>9<<4)+1}function V(e,t){var l=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(l>>16)<<16|65535&l}function I(e,t,l,a,n,o){return V((r=V(V(t,e),V(a,o)))<<(u=n)|r>>>32-u,l);var r,u}function P(e,t,l,a,n,o,r){return I(t&l|~t&a,e,t,n,o,r)}function D(e,t,l,a,n,o,r){return I(t&a|l&~a,e,t,n,o,r)}function z(e,t,l,a,n,o,r){return I(t^l^a,e,t,n,o,r)}function x(e,t,l,a,n,o,r){return I(l^(t|~a),e,t,n,o,r)}var j=function(e){if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(var l=0;l>5]>>>n%32&255,r=parseInt(a.charAt(o>>>4&15)+a.charAt(15&o),16);t.push(r)}return t}(function(e,t){e[t>>5]|=128<>5]|=(255&e[a/8])<>>32-t}var N=function(e){var t=[1518500249,1859775393,2400959708,3395469782],l=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var a=unescape(encodeURIComponent(e));e=[];for(var n=0;n>>0;b=g,g=y,y=T(w,30)>>>0,w=v,v=k}l[0]=l[0]+v>>>0,l[1]=l[1]+w>>>0,l[2]=l[2]+y>>>0,l[3]=l[3]+g>>>0,l[4]=l[4]+b>>>0}return[l[0]>>24&255,l[0]>>16&255,l[0]>>8&255,255&l[0],l[1]>>24&255,l[1]>>16&255,l[1]>>8&255,255&l[1],l[2]>>24&255,l[2]>>16&255,l[2]>>8&255,255&l[2],l[3]>>24&255,l[3]>>16&255,l[3]>>8&255,255&l[3],l[4]>>24&255,l[4]>>16&255,l[4]>>8&255,255&l[4]]},M={v1:U,v3:S("v3",48,j),v4:E,v5:S("v5",80,N)};var A=l(71634);const H={class:"ve_container"},B={data:()=>({description:"客户端令牌桶",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},copy_docker:{name:"docker"}},type:"1",icon:"SwitchFilled",name:"客户端令牌桶",parentMenu:A.Z})};var L=Object.assign(B,{__name:"ClientTokenBucket",setup(e){const{proxy:t}=(0,n.FN)(),l=(0,o.iH)(null),a=(0,o.iH)(""),p=(0,o.iH)(!1),m=(0,o.iH)(null),f=(0,o.iH)([]),{toClipboard:v}=(e=>{const t=void 0===(null==e?void 0:e.appendToBody)||e.appendToBody;return{toClipboard(e,l){return new Promise(((a,n)=>{const o=document.createElement("button"),r=new s(o,{text:()=>e,action:()=>"copy",container:void 0!==l?l:document.body});r.on("success",(e=>{r.destroy(),a(e)})),r.on("error",(e=>{r.destroy(),n(e)})),t&&document.body.appendChild(o),o.click(),t&&document.body.removeChild(o)}))}}})(),w=(0,o.qj)({appKey:"",appSecret:"",size:10,current:1,total:0}),{appKey:y,appSecret:g,size:b,current:h,total:_}=(0,o.BK)(w),k=(e,t=null)=>{p.value=!0,a.value=e,l.value=t},U=async()=>{const{code:e,data:t}=await VE_API.cloudNetwork.lazyNettyClientTokenBucketProviderPage(w);if(0===e){const{size:e,current:l,total:a,records:n}=t;w.size=e,w.current=l,w.total=a,f.value=n}};return(0,n.bv)((async()=>{await U()})),(e,s)=>{const C=(0,n.up)("el-input"),S=(0,n.up)("el-form-item"),W=(0,n.up)("el-button"),V=(0,n.up)("el-form"),I=(0,n.up)("el-table-column"),P=(0,n.up)("ve-table"),D=(0,n.Q2)("permission");return(0,n.wg)(),(0,n.iD)("div",H,[(0,n.Wm)(V,{ref_key:"queryForm",ref:m,inline:!0,model:w},{default:(0,n.w5)((()=>[(0,n.Wm)(S,{label:"令牌key",prop:"appKey"},{default:(0,n.w5)((()=>[(0,n.Wm)(C,{clearable:"",modelValue:(0,o.SU)(y),"onUpdate:modelValue":s[0]||(s[0]=e=>(0,o.dq)(y)?y.value=e:null),placeholder:"令牌key"},null,8,["modelValue"])])),_:1}),(0,n.Wm)(S,{label:"令牌密钥",prop:"appSecret"},{default:(0,n.w5)((()=>[(0,n.Wm)(C,{clearable:"",modelValue:(0,o.SU)(g),"onUpdate:modelValue":s[1]||(s[1]=e=>(0,o.dq)(g)?g.value=e:null),placeholder:"令牌密钥"},null,8,["modelValue"])])),_:1}),(0,n.Wm)(S,null,{default:(0,n.w5)((()=>[(0,n.Wm)(W,{type:"primary",onClick:s[2]||(s[2]=e=>(0,o.SU)(i.MI)(w,U))},{default:(0,n.w5)((()=>[(0,n.Uk)((0,r.zw)(e.buttons.search.name),1)])),_:1}),(0,n.Wm)(W,{onClick:s[3]||(s[3]=e=>(0,o.SU)(i.Fx)(m.value,w,U))},{default:(0,n.w5)((()=>s[6]||(s[6]=[(0,n.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,n.Wm)(P,{table:{data:f.value},pagination:{onSizeChange:e=>(0,o.SU)(i.EL)(e,w,U),onCurrentChange:e=>(0,o.SU)(i.jx)(e,w,U),currentPage:(0,o.SU)(h),pageSize:(0,o.SU)(b),total:(0,o.SU)(_)}},{tool_bar:(0,n.w5)((()=>[(0,n.wy)(((0,n.wg)(),(0,n.j4)(W,{size:"small",type:"primary",onClick:s[4]||(s[4]=t=>k(e.buttons.add.name))},{default:(0,n.w5)((()=>[(0,n.Uk)((0,r.zw)(e.buttons.add.name),1)])),_:1})),[[D,["add"]]])])),default:(0,n.w5)((()=>[(0,n.Wm)(I,{prop:"appKey",label:"令牌key"}),(0,n.Wm)(I,{prop:"appSecret",label:"令牌密钥"}),(0,n.Wm)(I,{prop:"usedByClientId",label:"被使用客户ID"}),(0,n.Wm)(I,{prop:"describe",label:"描述"}),(0,n.Wm)(I,{prop:"createTime",label:"创建时间"}),(0,n.Wm)(I,{prop:"expireInTime",label:"过期时间"}),(0,n.Wm)(I,{fixed:"right",label:"操作"},{default:(0,n.w5)((({row:l})=>[(0,n.wy)(((0,n.wg)(),(0,n.j4)(W,{onClick:(0,u.iM)((t=>k(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,n.w5)((()=>[(0,n.Uk)((0,r.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[D,["edit"]]]),(0,n.wy)(((0,n.wg)(),(0,n.j4)(W,{onClick:(0,u.iM)((e=>(e=>{t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.cloudNetwork.lazyNettyClientTokenBucketProviderDelete({appKey:e.appKey});0===t&&U()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}))})(l)),["prevent"]),type:"danger",size:"small"},{default:(0,n.w5)((()=>[(0,n.Uk)((0,r.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[D,["del"]]]),(0,n.wy)(((0,n.wg)(),(0,n.j4)(W,{onClick:(0,u.iM)((e=>(async e=>{if(console.log("copyData",e),""!==e)try{let t="docker run -d -it --privileged --name client -p 6004:6004 -e spring.lazy.netty.client.inet-host="+window.location.hostname+" -e spring.lazy.netty.client.inet-port= "+(parseFloat(window.location.port)+1e3)+" -e spring.lazy.netty.client.client-id="+M.v5.id+" -e spring.lazy.netty.client.app-key="+e.appKey+" -e spring.lazy.netty.client.app-secret="+e.appSecret+" registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-client-start:1.2.8-JDK17-SNAPSHOT";await v(t),c.z8.success(`复制: ${t} 成功!`)}catch(e){c.z8.warning(`复制失败: ${e} !`),console.error(e)}else c.z8.warning("请输入文本再复制")})(l)),["prevent"]),type:"danger",size:"small"},{default:(0,n.w5)((()=>[(0,n.Uk)((0,r.zw)(e.buttons.copy_docker.name),1)])),_:2},1032,["onClick"])),[[D,["copy_docker"]]])])),_:1})])),_:1},8,["table","pagination"]),p.value?((0,n.wg)(),(0,n.j4)(d.default,{key:0,rowData:l.value,title:a.value,showDialog:p.value,onCloseDialog:s[5]||(s[5]=e=>{return t=e,p.value=t,void U();var t})},null,8,["rowData","title","showDialog"])):(0,n.kq)("",!0)])}}})},74663:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return m}});l(74538);var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(49686),i=l(79065),d=l(5385),s=l(71634);const c={class:"ve_container"},p={data:()=>({description:"客户端管理",buttons:{search:{name:"查询"},edit:{name:"编辑"},info:{name:"详情"},delete:{name:"删除"}},type:"1",icon:"LocationFilled",name:"客户端管理",parentMenu:s.Z})};var m=Object.assign(p,{__name:"CloudClient",setup(e){const t=(0,i.yj)(),l=(0,i.tv)(),s=(0,n.iH)(null),p=(0,n.iH)(""),m=(0,n.iH)(!1),{proxy:f}=(0,a.FN)(),v=(0,n.iH)(null),w=(0,n.iH)([]),y=(0,n.qj)({clientId:"",size:10,current:1,total:0}),{clientId:g,size:b,current:h,total:_}=(0,n.BK)(y),k=async()=>{const{code:e,data:t}=await VE_API.cloudNetwork.cloudClientFindPageGroupByClient(y);if(0===e){const{size:e,current:l,total:a,records:n}=t;y.size=e,y.current=l,y.total=a,w.value=n}};return(0,a.bv)((async()=>{await k()})),(e,i)=>{const U=(0,a.up)("el-input"),C=(0,a.up)("el-form-item"),S=(0,a.up)("el-button"),W=(0,a.up)("el-form"),V=(0,a.up)("el-table-column"),I=(0,a.up)("ve-table"),P=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",c,[(0,a.Wm)(W,{ref_key:"queryForm",ref:v,inline:!0,model:y},{default:(0,a.w5)((()=>[(0,a.Wm)(C,{label:"客户端ID",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{clearable:"",modelValue:(0,n.SU)(g),"onUpdate:modelValue":i[0]||(i[0]=e=>(0,n.dq)(g)?g.value=e:null),placeholder:"客户端ID"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(C,null,{default:(0,a.w5)((()=>[(0,a.Wm)(S,{type:"primary",onClick:i[1]||(i[1]=e=>(0,n.SU)(u.MI)(y,k))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(S,{onClick:i[2]||(i[2]=e=>(0,n.SU)(u.Fx)(v.value,y,k))},{default:(0,a.w5)((()=>i[4]||(i[4]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(I,{table:{data:w.value},pagination:{onSizeChange:e=>(0,n.SU)(u.EL)(e,y,k),onCurrentChange:e=>(0,n.SU)(u.jx)(e,y,k),currentPage:(0,n.SU)(h),pageSize:(0,n.SU)(b),total:(0,n.SU)(_)}},{default:(0,a.w5)((()=>[(0,a.Wm)(V,{prop:"clientId",label:"客户端ID"}),(0,a.Wm)(V,{prop:"clientNum",label:"客户端数量"}),(0,a.Wm)(V,{prop:"serverId",label:"命名空间"}),(0,a.Wm)(V,{prop:"onLineNum",label:"在线数量"}),(0,a.Wm)(V,{prop:"onStagingNum",label:"暂存开启数量"}),(0,a.Wm)(V,{prop:"describe",label:"客户端描述"}),(0,a.Wm)(V,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:n})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(S,{onClick:(0,r.iM)((e=>(async e=>{const a=await(0,u.fG)(e.clientId+"详情","cloud_network/components/CloudClientInfo","info",{router:l,route:t});l.push({name:a,query:e})})(n)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.info.name),1)])),_:2},1032,["onClick"])),[[P,["info"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(S,{onClick:(0,r.iM)((t=>((e,t=null)=>{m.value=!0,p.value=e,s.value=t})(e.buttons.edit.name,n)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[P,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(S,{onClick:(0,r.iM)((e=>(e=>{f.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.cloudNetwork.cloudClientDelete({clientId:e});0===t&&k()})).catch((()=>{f.$message({type:"info",message:"已取消删除"})}))})(n.clientId)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.delete.name),1)])),_:2},1032,["onClick"])),[[P,["delete"]]])])),_:1})])),_:1},8,["table","pagination"]),m.value?((0,a.wg)(),(0,a.j4)(d.default,{key:0,rowData:s.value,title:p.value,showDialog:m.value,onCloseDialog:i[3]||(i[3]=e=>{return t=e,m.value=t,void k();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},83398:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return s}});var a=l(67759),n=l(76364),o=l(38874),r=l(49686),u=l(71634);const i={class:"ve_container"},d={data:()=>({description:"集群管理",buttons:{search:{name:"查询"}},type:"1",icon:"Connection",name:"集群管理",parentMenu:u.Z})};var s=Object.assign(d,{__name:"CloudClientCluster",setup(e){const t=(0,n.iH)(null),l=(0,n.iH)([]),u=(0,n.qj)({size:10,current:1,total:0}),{size:d,current:s,total:c}=(0,n.BK)(u),p=async()=>{const{code:e,data:t}=await VE_API.cloudNetwork.cloudClusterNodeFindPage(u);if(0===e){const{size:e,current:a,total:n,records:o}=t;u.size=e,u.current=a,u.total=n,l.value=o}};return(0,a.bv)((async()=>{await p()})),(e,m)=>{const f=(0,a.up)("el-button"),v=(0,a.up)("el-form-item"),w=(0,a.up)("el-form"),y=(0,a.up)("el-table-column"),g=(0,a.up)("ve-table");return(0,a.wg)(),(0,a.iD)("div",i,[(0,a.Wm)(w,{ref_key:"queryForm",ref:t,inline:!0,model:u},{default:(0,a.w5)((()=>[(0,a.Wm)(v,null,{default:(0,a.w5)((()=>[(0,a.Wm)(f,{type:"primary",onClick:m[0]||(m[0]=e=>(0,n.SU)(r.MI)(u,p))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(f,{onClick:m[1]||(m[1]=e=>(0,n.SU)(r.Fx)(t.value,u,p))},{default:(0,a.w5)((()=>m[2]||(m[2]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(g,{table:{data:l.value},pagination:{onSizeChange:e=>(0,n.SU)(r.EL)(e,u,p),onCurrentChange:e=>(0,n.SU)(r.jx)(e,u,p),currentPage:(0,n.SU)(s),pageSize:(0,n.SU)(d),total:(0,n.SU)(c)}},{default:(0,a.w5)((()=>[(0,a.Wm)(y,{prop:"clusterNodeId",label:"节点ID"}),(0,a.Wm)(y,{prop:"clusterNodeHost",label:"节点IP"}),(0,a.Wm)(y,{prop:"clusterNodePort",label:"节点PORT"}),(0,a.Wm)(y,{prop:"clusterNodeStatus",label:"节点状态"}),(0,a.Wm)(y,{prop:"createTime",label:"节点创建时间"}),(0,a.Wm)(y,{prop:"updateTime",label:"节点修改时间"})])),_:1},8,["table","pagination"])])}}})},10887:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return s}});var a=l(67759),n=l(76364),o=l(38874),r=l(49686),u=l(71634);const i={class:"ve_container"},d={data:()=>({description:"客户端状态变更记录",buttons:{search:{name:"查询"}},type:"1",icon:"Document",name:"客户端状态变更记录",parentMenu:u.Z})};var s=Object.assign(d,{__name:"CloudClientRecord",setup(e){const t=(0,n.iH)(null),l=(0,n.iH)([]),u=(0,n.iH)(null),d=(0,n.qj)({clientId:"",onLineState:"",size:10,current:1,total:0}),{clientId:s,onLineState:c,size:p,current:m,total:f}=(0,n.BK)(d),v=async()=>{const{code:e,data:t}=await VE_API.cloudNetwork.lazyCloudClientRecordFindPage(d);if(0===e){const{size:e,current:a,total:n,records:o}=t;d.size=e,d.current=a,d.total=n,l.value=o}};return(0,a.bv)((async()=>{await v(),await(async()=>{VE_API.cloudNetwork.cloudClientFindListGroupByClient().then((e=>{0===e.code&&e.data&&(e.data.map((e=>{e.label=e.clientId,e.value=e.clientId})),u.value=e.data?e.data:[])}))})()})),(e,w)=>{const y=(0,a.up)("el-option"),g=(0,a.up)("el-select"),b=(0,a.up)("el-form-item"),h=(0,a.up)("el-button"),_=(0,a.up)("el-form"),k=(0,a.up)("el-table-column"),U=(0,a.up)("ve-table");return(0,a.wg)(),(0,a.iD)("div",i,[(0,a.Wm)(_,{ref_key:"queryForm",ref:t,inline:!0,model:d},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{label:"客户端ID",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(g,{modelValue:(0,n.SU)(s),"onUpdate:modelValue":w[0]||(w[0]=e=>(0,n.dq)(s)?s.value=e:null),placeholder:"客户端ID",clearable:"",onChange:w[1]||(w[1]=e=>v())},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(u.value,(e=>((0,a.wg)(),(0,a.j4)(y,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(b,{label:"客户端在线状态",prop:"onLineState"},{default:(0,a.w5)((()=>[(0,a.Wm)(g,{modelValue:(0,n.SU)(c),"onUpdate:modelValue":w[2]||(w[2]=e=>(0,n.dq)(c)?c.value=e:null),placeholder:"客户端在线状态",clearable:"",onChange:w[3]||(w[3]=e=>v())},{default:(0,a.w5)((()=>[(0,a.Wm)(y,{key:"ON_LINE",label:"在线",value:"ON_LINE"}),(0,a.Wm)(y,{key:"RUNNING",label:"运行中",value:"RUNNING"}),(0,a.Wm)(y,{key:"OFF_LINE",label:"离线",value:"OFF_LINE"})])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(b,null,{default:(0,a.w5)((()=>[(0,a.Wm)(h,{type:"primary",onClick:w[4]||(w[4]=e=>(0,n.SU)(r.MI)(d,v))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(h,{onClick:w[5]||(w[5]=e=>(0,n.SU)(r.Fx)(t.value,d,v))},{default:(0,a.w5)((()=>w[6]||(w[6]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(U,{table:{data:l.value},pagination:{onSizeChange:e=>(0,n.SU)(r.EL)(e,d,v),onCurrentChange:e=>(0,n.SU)(r.jx)(e,d,v),currentPage:(0,n.SU)(m),pageSize:(0,n.SU)(p),total:(0,n.SU)(f)}},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{prop:"clientId",label:"客户端ID"}),(0,a.Wm)(k,{prop:"originalIp",label:"客户端IP"}),(0,a.Wm)(k,{prop:"serverId",label:"服务端ID"}),(0,a.Wm)(k,{prop:"onLineState",label:"客户端在线状态"}),(0,a.Wm)(k,{prop:"stagingState",label:"暂存状态"}),(0,a.Wm)(k,{prop:"createTime",label:"创建时间"})])),_:1},8,["table","pagination"])])}}})},12050:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"ClientTokenBucketEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={describe:[{required:!0,message:"请选择输入令牌桶描述",trigger:"blur"}],expireInTime:[{required:!0,message:"请选择过期时间",trigger:"blur"}]},o=e,r=t,{title:u,rowData:i}=(0,n.BK)(o),d=[{text:"一周",value:()=>{const e=new Date;return e.setDate(e.getDate()+7),e}},{text:"三个月",value:()=>{const e=new Date;return e.setFullYear(e.getFullYear(),e.getMonth()+3,e.getDate()),e}},{text:"一年",value:()=>{const e=new Date;return e.setFullYear(e.getFullYear()+1,e.getMonth(),e.getDate()),e}}],s=()=>{r("closeDialog",!1)},c=(0,n.iH)(null),p=(0,n.qj)({appKey:"",appSecret:"",usedByClientId:"",limitTime:!1,expireInTime:"",describe:""}),{appKey:m,appSecret:f,usedByClientId:v,limitTime:w,expireInTime:y,describe:g}=(0,n.BK)(p);i.value&&(m.value=i.value.appKey,f.value=i.value.appSecret,v.value=i.value.usedByClientId,w.value=!(void 0===i.value.expireInTime||null==i.value.expireInTime),y.value=i.value.expireInTime,g.value=i.value.describe);return(0,a.bv)((async()=>{})),(t,o)=>{const r=(0,a.up)("el-switch"),m=(0,a.up)("el-form-item"),f=(0,a.up)("el-date-picker"),v=(0,a.up)("el-input"),b=(0,a.up)("el-form"),h=(0,a.up)("el-button"),_=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(_,{title:(0,n.SU)(u),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:o[5]||(o[5]=e=>s())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(h,{onClick:o[3]||(o[3]=e=>s())},{default:(0,a.w5)((()=>o[6]||(o[6]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(h,{type:"primary",onClick:o[4]||(o[4]=e=>{c.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;p.limitTime||(p.expireInTime=null),e="添加"===u.value?await VE_API.cloudNetwork.lazyNettyClientTokenBucketProviderSave(p):await VE_API.cloudNetwork.lazyNettyClientTokenBucketProviderUpdate({appKey:i.value.appKey,...p});const{code:t}=e;0===t&&s()}}))})},{default:(0,a.w5)((()=>o[7]||(o[7]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(b,{model:p,ref_key:"formRef",ref:c,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(m,{label:"限制时间",prop:"limitTime"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":o[0]||(o[0]=e=>(0,n.dq)(w)?w.value=e:null),"inline-prompt":"","active-text":"限制时间","inactive-text":"不限制时间",style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"}},null,8,["modelValue"])])),_:1}),(0,n.SU)(w)?((0,a.wg)(),(0,a.j4)(m,{key:0,label:"过期时间","label-width":"140px",prop:"expireInTime"},{default:(0,a.w5)((()=>[(0,a.Wm)(f,{modelValue:(0,n.SU)(y),"onUpdate:modelValue":o[1]||(o[1]=e=>(0,n.dq)(y)?y.value=e:null),type:"datetime",format:"YYYY/MM/DD hh:mm:ss","value-format":"YYYY-MM-DD hh:mm:ss",placeholder:"选择令牌桶过期时间",shortcuts:d},null,8,["modelValue"])])),_:1})):(0,a.kq)("",!0),(0,a.Wm)(m,{label:"描述",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(v,{modelValue:(0,n.SU)(g),"onUpdate:modelValue":o[2]||(o[2]=e=>(0,n.dq)(g)?g.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},5385:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"CloudClientEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={clientId:[{required:!0,message:"请选择客户端",trigger:"blur"}],clientNum:[{required:!0,message:"禁止改变客户端",trigger:"blur"}],serverId:[{required:!0,message:"禁止改变命名空间",trigger:"blur"}],onLineNum:[{required:!0,message:"禁止改变在线数量",trigger:"blur"}],onStagingNum:[{required:!0,message:"禁止改变暂存数量",trigger:"blur"}],describe:[{required:!0,message:"请输入描述",trigger:"blur"}]},o=e,r=t,{title:u,rowData:i}=(0,n.BK)(o),d=(0,n.iH)(null),s=()=>{r("closeDialog",!1)},c=(0,n.iH)(null),p=(0,n.qj)({clientId:"",clientNum:"",serverId:"",onLineNum:"",onStagingNum:"",describe:""}),{clientId:m,clientNum:f,serverId:v,onLineNum:w,onStagingNum:y,describe:g}=(0,n.BK)(p);i.value&&(m.value=i.value.clientId,f.value=i.value.clientNum,v.value=i.value.serverId,w.value=i.value.onLineNum,y.value=i.value.onStagingNum,g.value=i.value.describe);return(0,a.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})),d.value=e.data?e.data:[])}))})),(t,o)=>{const r=(0,a.up)("el-option"),b=(0,a.up)("el-select"),h=(0,a.up)("el-form-item"),_=(0,a.up)("el-input"),k=(0,a.up)("el-form"),U=(0,a.up)("el-button"),C=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(C,{title:(0,n.SU)(u),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:o[8]||(o[8]=e=>s())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(U,{onClick:o[6]||(o[6]=e=>s())},{default:(0,a.w5)((()=>o[9]||(o[9]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(U,{type:"primary",onClick:o[7]||(o[7]=e=>{c.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===u.value?await VE_API.cloudNetwork.cloudClientUpdateDescribe(p):await VE_API.cloudNetwork.cloudClientUpdateDescribe({id:i.value.id,...p});const{code:t}=e;0===t&&s()}}))})},{default:(0,a.w5)((()=>o[10]||(o[10]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(k,{model:p,ref_key:"formRef",ref:c,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{label:"客户端ID","label-width":"140px",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":o[0]||(o[0]=e=>(0,n.dq)(m)?m.value=e:null),placeholder:"客户端ID",disabled:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(d.value,(e=>((0,a.wg)(),(0,a.j4)(r,{key:e.value,label:e.label,value:e.value,serverId:e},null,8,["label","value","serverId"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"客户端数量","label-width":"140px",prop:"clientNum"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(f),"onUpdate:modelValue":o[1]||(o[1]=e=>(0,n.dq)(f)?f.value=e:null),placeholder:"",disabled:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"命名空间",prop:"serverId"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(v),"onUpdate:modelValue":o[2]||(o[2]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"",disabled:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"在线数量",prop:"onLineNum"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":o[3]||(o[3]=e=>(0,n.dq)(w)?w.value=e:null),placeholder:"",disabled:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"暂存开启数量",prop:"onStagingNum"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(y),"onUpdate:modelValue":o[4]||(o[4]=e=>(0,n.dq)(y)?y.value=e:null),placeholder:"",disabled:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"客户端描述",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(g),"onUpdate:modelValue":o[5]||(o[5]=e=>(0,n.dq)(g)?g.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},55341:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return m}});var a=l(67759),n=l(38874),o=l(76364),r=l(12257),u=l(49686),i=l(70649),d=l(79065),s=l(71634);const c={class:"ve_container"},p={data:()=>({description:"客户端管理",buttons:{search:{name:"查询"},edit:{name:"编辑"},offLine:{name:"下线"},sendMessage:{name:"发送消息"},export:{name:"导出用户"}},type:"1",icon:"LocationFilled",name:"客户端管理",parentMenu:s.Z})};var m=Object.assign(p,{__name:"CloudClientInfo",setup(e){const t=(0,d.yj)(),{proxy:l}=(0,a.FN)(),s=(0,o.iH)([]),p=(0,o.iH)(null),m=(0,o.iH)(null),f=(0,o.iH)(!1),v=(0,o.qj)({clientId:"",serverId:"",size:10,current:1,total:0}),{clientId:w,serverId:y,size:g,current:b,total:h}=(0,o.BK)(v),_=async()=>{const{code:e,data:t}=await VE_API.cloudNetwork.cloudClientFindPage(v);if(0===e){const{size:e,current:l,total:a,records:n}=t;v.size=e,v.current=l,v.total=a,s.value=n}};return(0,a.bv)((async()=>{m.value=t.query;const{clientId:e,serverId:l}=t.query;v.clientId=e,v.serverId=l,await _()})),(e,t)=>{const d=(0,a.up)("el-form-item"),k=(0,a.up)("el-form"),U=(0,a.up)("el-table-column"),C=(0,a.up)("el-button"),S=(0,a.up)("ve-table");return(0,a.wg)(),(0,a.iD)("div",c,[(0,a.Wm)(k,{model:m.value,ref:"formRef","label-width":"120px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(d,{label:"客户端名称",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,n.zw)((0,o.SU)(w)),1)])),_:1}),(0,a.Wm)(d,{label:"命名空间",prop:"serverId"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,n.zw)((0,o.SU)(y)),1)])),_:1})])),_:1},8,["model"]),(0,a.Wm)(S,{table:{data:s.value},pagination:{onSizeChange:e=>(0,o.SU)(u.EL)(e,v,_),onCurrentChange:e=>(0,o.SU)(u.jx)(e,v,_),currentPage:(0,o.SU)(b),pageSize:(0,o.SU)(g),total:(0,o.SU)(h)}},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{prop:"originalIp",label:"客户端IP"}),(0,a.Wm)(U,{prop:"onLineState",label:"客户端状态"}),(0,a.Wm)(U,{prop:"stagingState",label:"暂存状态"}),(0,a.Wm)(U,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:t})=>[(0,a.Wm)(C,{onClick:(0,r.iM)((e=>((e,t)=>{l.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:l}=await VE_API.cloudNetwork.cloudClientDelete({id:t,clientId:e});0===l&&_()})).catch((()=>{l.$message({type:"info",message:"已取消删除"})}))})(t.clientId,t.id)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,n.zw)(e.buttons.offLine.name),1)])),_:2},1032,["onClick"]),(0,a.Wm)(C,{onClick:(0,r.iM)((e=>((e=null)=>{f.value=!0,p.value=e})(t)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,n.zw)(e.buttons.sendMessage.name),1)])),_:2},1032,["onClick"])])),_:1})])),_:1},8,["table","pagination"]),f.value?((0,a.wg)(),(0,a.j4)(i.default,{key:0,rowData:p.value,showDialog:f.value,onCloseDialog:t[0]||(t[0]=e=>{return t=e,f.value=t,void _();var t})},null,8,["rowData","showDialog"])):(0,a.kq)("",!0)])}}})},70649:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"CloudServerSendMessage2Client",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={clientId:[{required:!0,message:"请输入选择客户端",trigger:"blur"}],clientTargetIp:[{required:!0,message:"请输入客户端目标IP",trigger:"blur"}],clientTargetPort:[{required:!0,message:"请输入客户端目标端口",trigger:"blur"}],visitorPort:[{required:!0,message:"请选择访客端口",trigger:"blur"}]},o=e,r=t,{title:u,rowData:i}=(0,n.BK)(o),d=()=>{r("closeDialog",!1)},s=(0,n.iH)(null),c=(0,n.qj)({message:"",clientId:""}),{clientId:p,message:m}=(0,n.BK)(c);i.value&&(p.value=i.value.clientId);return(0,a.bv)((async()=>{})),(t,o)=>{const r=(0,a.up)("el-input"),i=(0,a.up)("el-form-item"),f=(0,a.up)("el-form"),v=(0,a.up)("el-button"),w=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(w,{title:(0,n.SU)(u),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:o[4]||(o[4]=e=>d())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(v,{onClick:o[2]||(o[2]=e=>d())},{default:(0,a.w5)((()=>o[5]||(o[5]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(v,{type:"primary",onClick:o[3]||(o[3]=e=>{s.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e=await VE_API.cloudNetwork.sendMessage2HeartbeatClient(c);const{code:t}=e;0===t&&d()}}))})},{default:(0,a.w5)((()=>o[6]||(o[6]=[(0,a.Uk)("发送")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(f,{model:c,ref_key:"formRef",ref:s,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(i,{label:"客户端ID",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(p),"onUpdate:modelValue":o[0]||(o[0]=e=>(0,n.dq)(p)?p.value=e:null),placeholder:"",disabled:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(i,{label:"发送的消息",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":o[1]||(o[1]=e=>(0,n.dq)(m)?m.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},70487:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return p}});var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(49686),i=l(15063),d=l(78005);const s={class:"ve_container"},c={data:()=>({description:"客户端渗透客户端",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},view:{name:"访客端口预览"}},type:"1",icon:"Connection",name:"客户端渗透客户端",parentMenu:d.Z})};var p=Object.assign(c,{__name:"ClientPermeateClientNetworkMapping",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,n.iH)(null),d=(0,n.iH)([]),c=(0,n.iH)(null),p=(0,n.iH)(""),m=(0,n.iH)(!1),f=(0,n.qj)({visitorPort:"",size:10,current:1,total:0}),{visitorPort:v,size:w,current:y,total:g}=(0,n.BK)(f),b=(e,t=null)=>{m.value=!0,p.value=e,c.value=t},h=async()=>{const{code:e,data:t}=await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkClientPermeateClientMappingPage(f);if(0===e){const{size:e,current:l,total:a,records:n}=t;f.size=e,f.current=l,f.total=a,d.value=n}};return(0,a.bv)((async()=>{await h()})),(e,_)=>{const k=(0,a.up)("el-input"),U=(0,a.up)("el-form-item"),C=(0,a.up)("el-button"),S=(0,a.up)("el-form"),W=(0,a.up)("el-table-column"),V=(0,a.up)("ve-table"),I=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a.Wm)(S,{ref_key:"queryForm",ref:l,inline:!0,model:f},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{label:"访问端口",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{clearable:"",modelValue:(0,n.SU)(v),"onUpdate:modelValue":_[0]||(_[0]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"访问端口"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(U,null,{default:(0,a.w5)((()=>[(0,a.Wm)(C,{type:"primary",onClick:_[1]||(_[1]=e=>(0,n.SU)(u.MI)(f,h))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(C,{onClick:_[2]||(_[2]=e=>(0,n.SU)(u.Fx)(l.value,f,h))},{default:(0,a.w5)((()=>_[5]||(_[5]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(V,{table:{data:d.value},pagination:{onSizeChange:e=>(0,n.SU)(u.EL)(e,f,h),onCurrentChange:e=>(0,n.SU)(u.jx)(e,f,h),currentPage:(0,n.SU)(y),pageSize:(0,n.SU)(w),total:(0,n.SU)(g)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{title:"弹窗式",size:"small",type:"primary",onClick:_[3]||(_[3]=t=>b(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[I,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(W,{prop:"fromClientId",label:"from客户端ID"}),(0,a.Wm)(W,{prop:"visitorPort",label:"from客户端端口"}),(0,a.Wm)(W,{prop:"toClientId",label:"to客户端ID"}),(0,a.Wm)(W,{prop:"permeateTargetIp",label:"客户端目标地址"}),(0,a.Wm)(W,{prop:"permeateTargetPort",label:"客户端目标端口"}),(0,a.Wm)(W,{prop:"describe",label:"描述"}),(0,a.Wm)(W,{prop:"createTime",label:"创建时间"}),(0,a.Wm)(W,{prop:"updateTime",label:"修改时间"}),(0,a.Wm)(W,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((t=>b(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[I,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{console.log(window.location.hostname),console.log(window.location.host),window.open(window.location.protocol+"//"+window.location.hostname+":"+e.visitorPort,"_blank")})(l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.view.name),1)])),_:2},1032,["onClick"])),[[I,["view"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkClientPermeateClientMappingDelete(e);0===t&&h()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}))})(l)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[I,["del"]]])])),_:1})])),_:1},8,["table","pagination"]),m.value?((0,a.wg)(),(0,a.j4)(i.default,{key:0,rowData:c.value,title:p.value,showDialog:m.value,onCloseDialog:_[4]||(_[4]=e=>{return t=e,m.value=t,void h();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},52515:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return p}});var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(6380),i=l(49686),d=l(78005);const s={class:"ve_container"},c={data:()=>({description:"客户端渗透端口池管理",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"}},type:"1",icon:"SwitchFilled",name:"客户端渗透端口池管理",parentMenu:d.Z})};var p=Object.assign(c,{__name:"ClientPermeatePortPool",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,n.iH)(null),d=(0,n.iH)(""),c=(0,n.iH)(!1),p=(0,n.iH)(null),m=(0,n.iH)([]),f=(0,n.qj)({visitorPort:"",size:10,current:1,total:0}),{visitorPort:v,size:w,current:y,total:g}=(0,n.BK)(f),b=(e,t=null)=>{c.value=!0,d.value=e,l.value=t},h=async()=>{const{code:e,data:t}=await VE_API.cloudNetworkServerPerMeate.lazyNettyClientPermeatePortPoolPage(f);if(0===e){const{size:e,current:l,total:a,records:n}=t;f.size=e,f.current=l,f.total=a,m.value=n}};return(0,a.bv)((async()=>{await h()})),(e,_)=>{const k=(0,a.up)("el-input"),U=(0,a.up)("el-form-item"),C=(0,a.up)("el-button"),S=(0,a.up)("el-form"),W=(0,a.up)("el-table-column"),V=(0,a.up)("ve-table"),I=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a.Wm)(S,{ref_key:"queryForm",ref:p,inline:!0,model:f},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{label:"客户端渗透端口",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{clearable:"",modelValue:(0,n.SU)(v),"onUpdate:modelValue":_[0]||(_[0]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"客户端渗透端口"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(U,null,{default:(0,a.w5)((()=>[(0,a.Wm)(C,{type:"primary",onClick:_[1]||(_[1]=e=>(0,n.SU)(i.MI)(f,h))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(C,{onClick:_[2]||(_[2]=e=>(0,n.SU)(i.Fx)(p.value,f,h))},{default:(0,a.w5)((()=>_[5]||(_[5]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(V,{table:{data:m.value},pagination:{onSizeChange:e=>(0,n.SU)(i.EL)(e,f,h),onCurrentChange:e=>(0,n.SU)(i.jx)(e,f,h),currentPage:(0,n.SU)(y),pageSize:(0,n.SU)(w),total:(0,n.SU)(g)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{size:"small",type:"primary",onClick:_[3]||(_[3]=t=>b(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[I,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(W,{prop:"clientId",label:"客户端ID"}),(0,a.Wm)(W,{prop:"visitorPort",label:"客户端渗透端口"}),(0,a.Wm)(W,{prop:"describe",label:"描述"}),(0,a.Wm)(W,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((t=>b(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[I,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{console.log(e.visitorPort),t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.cloudNetworkServerPerMeate.lazyNettyClientPermeatePortPoolDelete({visitorPort:e.visitorPort,clientId:e.clientId});0===t&&h()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}))})(l)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[I,["del"]]])])),_:1})])),_:1},8,["table","pagination"]),c.value?((0,a.wg)(),(0,a.j4)(u.default,{key:0,rowData:l.value,title:d.value,showDialog:c.value,onCloseDialog:_[4]||(_[4]=e=>{return t=e,c.value=t,void h();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},32914:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return p}});var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(49686),i=l(44534),d=l(78005);const s={class:"ve_container"},c={data:()=>({description:"客户端渗透服务端",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},view:{name:"访客端口预览"}},type:"1",icon:"Connection",name:"客户端渗透服务端",parentMenu:d.Z})};var p=Object.assign(c,{__name:"ClientPermeateServerNetworkMapping",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,n.iH)(null),d=(0,n.iH)([]),c=(0,n.iH)(null),p=(0,n.iH)(""),m=(0,n.iH)(!1),f=(0,n.qj)({visitorPort:"",size:10,current:1,total:0}),{visitorPort:v,size:w,current:y,total:g}=(0,n.BK)(f),b=(e,t=null)=>{m.value=!0,p.value=e,c.value=t},h=async()=>{const{code:e,data:t}=await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkClientPermeateServerMappingPage(f);if(0===e){const{size:e,current:l,total:a,records:n}=t;f.size=e,f.current=l,f.total=a,d.value=n}};return(0,a.bv)((async()=>{await h()})),(e,_)=>{const k=(0,a.up)("el-input"),U=(0,a.up)("el-form-item"),C=(0,a.up)("el-button"),S=(0,a.up)("el-form"),W=(0,a.up)("el-table-column"),V=(0,a.up)("ve-table"),I=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a.Wm)(S,{ref_key:"queryForm",ref:l,inline:!0,model:f},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{label:"访问端口",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{clearable:"",modelValue:(0,n.SU)(v),"onUpdate:modelValue":_[0]||(_[0]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"访问端口"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(U,null,{default:(0,a.w5)((()=>[(0,a.Wm)(C,{type:"primary",onClick:_[1]||(_[1]=e=>(0,n.SU)(u.MI)(f,h))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(C,{onClick:_[2]||(_[2]=e=>(0,n.SU)(u.Fx)(l.value,f,h))},{default:(0,a.w5)((()=>_[5]||(_[5]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(V,{table:{data:d.value},pagination:{onSizeChange:e=>(0,n.SU)(u.EL)(e,f,h),onCurrentChange:e=>(0,n.SU)(u.jx)(e,f,h),currentPage:(0,n.SU)(y),pageSize:(0,n.SU)(w),total:(0,n.SU)(g)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{title:"弹窗式",size:"small",type:"primary",onClick:_[3]||(_[3]=t=>b(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[I,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(W,{prop:"clientId",label:"客户端ID"}),(0,a.Wm)(W,{prop:"visitorPort",label:"客户端访问端口"}),(0,a.Wm)(W,{prop:"permeateTargetIp",label:"服务端目标地址"}),(0,a.Wm)(W,{prop:"permeateTargetPort",label:"服务端端目标端口"}),(0,a.Wm)(W,{prop:"describe",label:"描述"}),(0,a.Wm)(W,{prop:"createTime",label:"创建时间"}),(0,a.Wm)(W,{prop:"updateTime",label:"修改时间"}),(0,a.Wm)(W,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((t=>b(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[I,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{console.log(window.location.hostname),console.log(window.location.host),window.open(window.location.protocol+"//"+window.location.hostname+":"+e.visitorPort,"_blank")})(l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.view.name),1)])),_:2},1032,["onClick"])),[[I,["view"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkClientPermeateServerMappingDelete(e);0===t&&h()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}))})(l)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[I,["del"]]])])),_:1})])),_:1},8,["table","pagination"]),m.value?((0,a.wg)(),(0,a.j4)(i.default,{key:0,rowData:c.value,title:p.value,showDialog:m.value,onCloseDialog:_[4]||(_[4]=e=>{return t=e,m.value=t,void h();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},15063:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return u}});var a=l(67759),n=l(76364),o=l(38874);const r={style:{float:"left"}};var u={__name:"ClientPermeateClientNetworkMappingEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={fromClientId:[{required:!0,message:"请选择from客户端ID",trigger:"blur"}],toClientId:[{required:!0,message:"请选择to客户端ID",trigger:"blur"}],permeateTargetIp:[{required:!0,message:"请输入客户端目标IP",trigger:"blur"}],permeateTargetPort:[{required:!0,message:"请输入客户端目标端口",trigger:"blur"}],visitorPort:[{required:!0,message:"请选择访客端口",trigger:"blur"}]},u=e,i=t,{title:d,rowData:s}=(0,n.BK)(u),c=()=>{i("closeDialog",!1)},p=(0,n.iH)(null),m=(0,n.iH)(null),f=(0,n.iH)(null),v=(0,n.qj)({fromClientId:"",toClientId:"",permeateTargetIp:"0.0.0.0",permeateTargetPort:"",visitorPort:"",describe:""}),{fromClientId:w,toClientId:y,permeateTargetIp:g,permeateTargetPort:b,visitorPort:h,describe:_}=(0,n.BK)(v);s.value&&(w.value=s.value.fromClientId,y.value=s.value.toClientId,g.value=s.value.permeateTargetIp,b.value=s.value.permeateTargetPort,h.value=s.value.visitorPort,_.value=s.value.describe);(0,a.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})),f.value=e.data?e.data:[])}))}));return(t,u)=>{const i=(0,a.up)("el-option"),k=(0,a.up)("el-select"),U=(0,a.up)("el-form-item"),C=(0,a.up)("el-input"),S=(0,a.up)("el-form"),W=(0,a.up)("el-button"),V=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(V,{title:(0,n.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:u[9]||(u[9]=e=>c())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(W,{onClick:u[7]||(u[7]=e=>c())},{default:(0,a.w5)((()=>u[10]||(u[10]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(W,{type:"primary",onClick:u[8]||(u[8]=e=>{p.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkClientPermeateClientMappingSave(v):await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkClientPermeateClientMappingUpdate({permeateTargetPort:s.value.permeateTargetPort,...v});const{code:t}=e;0===t&&c()}}))})},{default:(0,a.w5)((()=>u[11]||(u[11]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(S,{model:v,ref_key:"formRef",ref:p,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{label:"form客户端ID","label-width":"140px",prop:"fromClientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":u[0]||(u[0]=e=>(0,n.dq)(w)?w.value=e:null),placeholder:"form客户端ID",clearable:"",onChange:u[1]||(u[1]=e=>(async e=>{let t=await VE_API.cloudNetworkServerPerMeate.lazyNettyClientPermeatePortPoolList({clientId:e});const{code:l}=t;0===l&&t.data&&(t.data.map((e=>{e.label=e.describe,e.value=e.visitorPort})),m.value=t.data?t.data:[])})((0,n.SU)(w)))},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(f.value,(e=>((0,a.wg)(),(0,a.j4)(i,{key:e.value,label:e.label,value:e.value,serverId:e},null,8,["label","value","serverId"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(U,{label:"客户端访问端口","label-width":"140px",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{modelValue:(0,n.SU)(h),"onUpdate:modelValue":u[2]||(u[2]=e=>(0,n.dq)(h)?h.value=e:null),placeholder:"客户端访问端口",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(m.value,(e=>((0,a.wg)(),(0,a.j4)(i,{key:e.value,label:e.label,value:e.value},{default:(0,a.w5)((()=>[(0,a._)("span",r," 端口:【"+(0,o.zw)(e.value)+"】"+(0,o.zw)(e.label),1)])),_:2},1032,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(U,{label:"to客户端ID","label-width":"140px",prop:"toClientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{modelValue:(0,n.SU)(y),"onUpdate:modelValue":u[3]||(u[3]=e=>(0,n.dq)(y)?y.value=e:null),placeholder:"to客户端ID",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(f.value,(e=>((0,a.wg)(),(0,a.j4)(i,{key:e.value,label:e.label,value:e.value,serverId:e},null,8,["label","value","serverId"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(U,{label:"客户端目标地址","label-width":"140px",prop:"permeateTargetIp"},{default:(0,a.w5)((()=>[(0,a.Wm)(C,{modelValue:(0,n.SU)(g),"onUpdate:modelValue":u[4]||(u[4]=e=>(0,n.dq)(g)?g.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(U,{label:"客户端目标端口","label-width":"140px",prop:"permeateTargetPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(C,{modelValue:(0,n.SU)(b),"onUpdate:modelValue":u[5]||(u[5]=e=>(0,n.dq)(b)?b.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(U,{label:"描述","label-width":"140px",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(C,{modelValue:(0,n.SU)(_),"onUpdate:modelValue":u[6]||(u[6]=e=>(0,n.dq)(_)?_.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},6380:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"ClientPermeatePortPoolEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={clientId:[{required:!0,message:"请选择客户端",trigger:"blur"}],visitorPort:[{required:!0,message:"请输入端口",trigger:"blur"}],applicationName:[{required:!0,message:"请输入应用名",trigger:"blur"}]},o=e,r=t,{title:u,rowData:i}=(0,n.BK)(o),d=(0,n.iH)(null),s=()=>{r("closeDialog",!1)},c=(0,n.iH)(null),p=(0,n.qj)({clientId:"",visitorPort:"",describe:""}),{clientId:m,visitorPort:f,describe:v}=(0,n.BK)(p);i.value&&(m.value=i.value.clientId,f.value=i.value.visitorPort,v.value=i.value.describe);return(0,a.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})),d.value=e.data?e.data:[])}))})),(t,o)=>{const r=(0,a.up)("el-option"),w=(0,a.up)("el-select"),y=(0,a.up)("el-form-item"),g=(0,a.up)("el-input"),b=(0,a.up)("el-form"),h=(0,a.up)("el-button"),_=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(_,{title:(0,n.SU)(u),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:o[5]||(o[5]=e=>s())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(h,{onClick:o[3]||(o[3]=e=>s())},{default:(0,a.w5)((()=>o[6]||(o[6]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(h,{type:"primary",onClick:o[4]||(o[4]=e=>{c.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===u.value?await VE_API.cloudNetworkServerPerMeate.lazyNettyClientPermeatePortPoolSave(p):await VE_API.cloudNetworkServerPerMeate.lazyNettyClientPermeatePortPoolUpdate({visitorPort:i.value.visitorPort,...p});const{code:t}=e;0===t&&s()}}))})},{default:(0,a.w5)((()=>o[7]||(o[7]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(b,{model:p,ref_key:"formRef",ref:c,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(y,{label:"客户端ID","label-width":"140px",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(w,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":o[0]||(o[0]=e=>(0,n.dq)(m)?m.value=e:null),placeholder:"客户端ID",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(d.value,(e=>((0,a.wg)(),(0,a.j4)(r,{key:e.value,label:e.label,value:e.value,serverId:e},null,8,["label","value","serverId"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"渗透端口",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(g,{modelValue:(0,n.SU)(f),"onUpdate:modelValue":o[1]||(o[1]=e=>(0,n.dq)(f)?f.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"描述",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(g,{modelValue:(0,n.SU)(v),"onUpdate:modelValue":o[2]||(o[2]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},44534:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return u}});var a=l(67759),n=l(76364),o=l(38874);const r={style:{float:"left"}};var u={__name:"ClientPermeateServerNetworkMappingEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={clientId:[{required:!0,message:"请选择客户端",trigger:"blur"}],visitorPort:[{required:!0,message:"请选择访客端口",trigger:"blur"}],permeateTargetIp:[{required:!0,message:"请输入客户端目标IP",trigger:"blur"}],permeateTargetPort:[{required:!0,message:"请输入客户端目标端口",trigger:"blur"}]},u=e,i=t,{title:d,rowData:s}=(0,n.BK)(u),c=()=>{i("closeDialog",!1)},p=(0,n.iH)(null),m=(0,n.iH)(null),f=(0,n.iH)(null),v=(0,n.qj)({permeateTargetIp:"0.0.0.0",permeateTargetPort:"",visitorPort:"",clientId:"",describe:"",id:""}),{permeateTargetIp:w,permeateTargetPort:y,visitorPort:g,clientId:b,describe:h,id:_}=(0,n.BK)(v);s.value&&(w.value=s.value.permeateTargetIp,b.value=s.value.clientId,y.value=s.value.permeateTargetPort,g.value=s.value.visitorPort,h.value=s.value.describe,_.value=s.value.id);(0,a.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})),f.value=e.data?e.data:[])}))}));return(t,u)=>{const i=(0,a.up)("el-option"),_=(0,a.up)("el-select"),k=(0,a.up)("el-form-item"),U=(0,a.up)("el-input"),C=(0,a.up)("el-form"),S=(0,a.up)("el-button"),W=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(W,{title:(0,n.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:u[8]||(u[8]=e=>c())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(S,{onClick:u[6]||(u[6]=e=>c())},{default:(0,a.w5)((()=>u[9]||(u[9]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(S,{type:"primary",onClick:u[7]||(u[7]=e=>{p.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkClientPermeateServerMappingSave(v):await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkClientPermeateServerMappingUpdate({permeateTargetPort:s.value.permeateTargetPort,...v});const{code:t}=e;0===t&&c()}}))})},{default:(0,a.w5)((()=>u[10]||(u[10]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(C,{model:v,ref_key:"formRef",ref:p,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{label:"客户端ID","label-width":"140px",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(b),"onUpdate:modelValue":u[0]||(u[0]=e=>(0,n.dq)(b)?b.value=e:null),placeholder:"客户端ID",clearable:"",onChange:u[1]||(u[1]=e=>(async e=>{let t=await VE_API.cloudNetworkServerPerMeate.lazyNettyClientPermeatePortPoolList({clientId:e});const{code:l}=t;0===l&&t.data&&(t.data.map((e=>{e.label=e.describe,e.value=e.visitorPort})),m.value=t.data?t.data:[])})((0,n.SU)(b)))},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(f.value,(e=>((0,a.wg)(),(0,a.j4)(i,{key:e.value,label:e.label,value:e.value,serverId:e},null,8,["label","value","serverId"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(k,{label:"客户端访问端口","label-width":"140px",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(g),"onUpdate:modelValue":u[2]||(u[2]=e=>(0,n.dq)(g)?g.value=e:null),placeholder:"客户端访问端口",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(m.value,(e=>((0,a.wg)(),(0,a.j4)(i,{key:e.value,label:e.label,value:e.value},{default:(0,a.w5)((()=>[(0,a._)("span",r," 端口:【"+(0,o.zw)(e.value)+"】"+(0,o.zw)(e.label),1)])),_:2},1032,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(k,{label:"服务端目标地址","label-width":"140px",prop:"permeateTargetIp"},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":u[3]||(u[3]=e=>(0,n.dq)(w)?w.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(k,{label:"服务端目标端口","label-width":"140px",prop:"permeateTargetPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{modelValue:(0,n.SU)(y),"onUpdate:modelValue":u[4]||(u[4]=e=>(0,n.dq)(y)?y.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(k,{label:"描述","label-width":"140px",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{modelValue:(0,n.SU)(h),"onUpdate:modelValue":u[5]||(u[5]=e=>(0,n.dq)(h)?h.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},86151:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return i}});l(74538);var a=l(67759),n=l(41885),o=l(4938);const r={class:"ve_container"},u={data:()=>({description:"客户端访问流量",type:"1",icon:"DataLine",name:"客户端访问流量",parentMenu:o.Z})};var i=Object.assign(u,{__name:"ClientPerDayFlow",setup(e){return(0,a.bv)((async()=>{const{code:e,data:t}=await VE_API.cloudNetworkReport.findClientPerDayFlow();0===e&&console.log(t);const l=document.getElementById("client_per_day_flow"),a=n.S1(l,null,{renderer:"canvas",useDirtyRect:!1});let o;const r=[];r.push({type:"line",name:"进口流量",emphasis:{focus:"series"},data:t.clientInFlowList}),r.push({type:"line",name:"出口流量",emphasis:{focus:"series"},data:t.clientOutFlowList}),r.push({type:"line",name:"进、出流量",emphasis:{focus:"series"},data:t.clientAllFlowList}),o={animationDuration:1e4,tooltip:{trigger:"axis"},legend:{},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:t.dayList}],yAxis:[{type:"value"}],series:r,toolbox:{feature:{saveAsImage:{}}}},o&&a.setOption(o),window.addEventListener("resize",a.resize)})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",r,t[0]||(t[0]=[(0,a._)("div",{id:"client_per_day_flow",style:{width:"100%",height:"600px"}},null,-1)])))}})},39871:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return i}});l(74538);var a=l(67759),n=l(41885),o=l(4938);const r={class:"ve_container"},u={data:()=>({description:"客户端端口近七天访问流量",type:"1",icon:"DataLine",name:"客户端端口近七天访问流量",parentMenu:o.Z})};var i=Object.assign(u,{__name:"ClientPortPerDayFlow",setup(e){return(0,a.bv)((async()=>{const{code:e,data:t}=await VE_API.cloudNetworkReport.findClient7DayFlow();if(0===e&&console.log(t),!t)return;const l=document.getElementById("client_port_per_day_flow"),a=n.S1(l,null,{renderer:"canvas",useDirtyRect:!1});let o;const r=[];for(let e of t.clientInFlowList)r.push({type:"bar",name:"进口流量"+e.clientId+":"+e.visitorPort,stack:"in_flow_"+e.clientId,emphasis:{focus:"series"},data:e.flowList});for(let e of t.clientOutFlowList)r.push({type:"bar",name:"出口流量"+e.clientId+":"+e.visitorPort,stack:"out_flow_"+e.clientId,emphasis:{focus:"series"},data:e.flowList});console.log(r),o={tooltip:{trigger:"axis"},legend:{},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:[{type:"category",data:t.dayList}],yAxis:[{type:"value"}],series:r,series1:[{name:"Direct",type:"bar",emphasis:{focus:"series"},data:[320,332,301,334,390,330,320]},{name:"Email",type:"bar",stack:"Ad",emphasis:{focus:"series"},data:[120,132,101,134,90,230,210]},{name:"Union Ads",type:"bar",stack:"Ad",emphasis:{focus:"series"},data:[220,182,191,234,290,330,310]},{name:"Video Ads",type:"bar",stack:"Ad",emphasis:{focus:"series"},data:[150,232,201,154,190,330,410]},{name:"Search Engine",type:"bar",data:[862,1018,964,1026,1679,1600,1570],emphasis:{focus:"series"},markLine:{lineStyle:{type:"dashed"},data:[[{type:"min"},{type:"max"}]]}},{name:"Baidu",type:"bar",barWidth:5,stack:"Search Engine",emphasis:{focus:"series"},data:[620,732,701,734,1090,1130,1120]},{name:"Google",type:"bar",stack:"Search Engine",emphasis:{focus:"series"},data:[120,132,101,134,290,230,220]},{name:"Bing",type:"bar",stack:"Search Engine",emphasis:{focus:"series"},data:[60,72,71,74,190,130,110]},{name:"Others",type:"bar",stack:"Search Engine",emphasis:{focus:"series"},data:[62,82,91,84,109,110,120]}]},o&&a.setOption(o),window.addEventListener("resize",a.resize)})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",r,t[0]||(t[0]=[(0,a._)("div",{id:"client_port_per_day_flow",style:{width:"100%",height:"600px"}},null,-1)])))}})},20675:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return p}});var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(82064),i=l(49686),d=l(50891);const s={class:"ve_container"},c={data:()=>({description:"客户端端路由管理",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"}},type:"1",icon:"SwitchFilled",name:"客户端端路由管理",parentMenu:d.Z})};var p=Object.assign(c,{__name:"ClientRoute",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,n.iH)(null),d=(0,n.iH)(""),c=(0,n.iH)(!1),p=(0,n.iH)(null),m=(0,n.iH)([]),f=(0,n.iH)(null),v=(0,n.qj)({clientId:"",routeIp:"",size:10,current:1,total:0}),{clientId:w,routeIp:y,size:g,current:b,total:h}=(0,n.BK)(v),_=(e,t=null)=>{c.value=!0,d.value=e,l.value=t},k=async()=>{const{code:e,data:t}=await VE_API.cloudNetworkRoute.lazyNettyClientRoutePage(v);if(0===e){const{size:e,current:l,total:a,records:n}=t;v.size=e,v.current=l,v.total=a,m.value=n}};return(0,a.bv)((async()=>{await(async()=>{VE_API.cloudNetwork.cloudClientFindListGroupByClient().then((e=>{0===e.code&&e.data&&(e.data.map((e=>{e.label=e.clientId,e.value=e.clientId})),f.value=e.data?e.data:[])}))})(),await k()})),(e,U)=>{const C=(0,a.up)("el-option"),S=(0,a.up)("el-select"),W=(0,a.up)("el-form-item"),V=(0,a.up)("el-input"),I=(0,a.up)("el-button"),P=(0,a.up)("el-form"),D=(0,a.up)("el-table-column"),z=(0,a.up)("ve-table"),x=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a.Wm)(P,{ref_key:"queryForm",ref:p,inline:!0,model:v},{default:(0,a.w5)((()=>[(0,a.Wm)(W,{label:"客户端ID",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(S,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":U[0]||(U[0]=e=>(0,n.dq)(w)?w.value=e:null),placeholder:"客户端ID",clearable:"",onChange:U[1]||(U[1]=e=>k())},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(f.value,(e=>((0,a.wg)(),(0,a.j4)(C,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(W,{label:"路由IP",prop:"routeIp"},{default:(0,a.w5)((()=>[(0,a.Wm)(V,{clearable:"",modelValue:(0,n.SU)(y),"onUpdate:modelValue":U[2]||(U[2]=e=>(0,n.dq)(y)?y.value=e:null),placeholder:"路由IP"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(W,null,{default:(0,a.w5)((()=>[(0,a.Wm)(I,{type:"primary",onClick:U[3]||(U[3]=e=>(0,n.SU)(i.MI)(v,k))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(I,{onClick:U[4]||(U[4]=e=>(0,n.SU)(i.Fx)(p.value,v,k))},{default:(0,a.w5)((()=>U[7]||(U[7]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(z,{table:{data:m.value},pagination:{onSizeChange:e=>(0,n.SU)(i.EL)(e,v,k),onCurrentChange:e=>(0,n.SU)(i.jx)(e,v,k),currentPage:(0,n.SU)(b),pageSize:(0,n.SU)(g),total:(0,n.SU)(h)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(I,{size:"small",type:"primary",onClick:U[5]||(U[5]=t=>_(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[x,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(D,{prop:"id",label:"路由ID"}),(0,a.Wm)(D,{prop:"clientId",label:"客户端ID"}),(0,a.Wm)(D,{prop:"routeIp",label:"路由IP"}),(0,a.Wm)(D,{prop:"routePort",label:"路由端口"}),(0,a.Wm)(D,{prop:"describe",label:"描述"}),(0,a.Wm)(D,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(I,{onClick:(0,r.iM)((t=>_(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[x,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(I,{onClick:(0,r.iM)((e=>(e=>{console.log(e.id),t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.cloudNetworkRoute.lazyNettyClientRouteDelete({id:e.id});0===t&&k()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}))})(l)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[x,["del"]]])])),_:1})])),_:1},8,["table","pagination"]),c.value?((0,a.wg)(),(0,a.j4)(u.default,{key:0,rowData:l.value,title:d.value,showDialog:c.value,onCloseDialog:U[6]||(U[6]=e=>{return t=e,c.value=t,void k();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},38523:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return p}});var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(32584),i=l(49686),d=l(50891);const s={class:"ve_container"},c={data:()=>({description:"服务端路由管理",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"}},type:"1",icon:"SwitchFilled",name:"服务端路由管理",parentMenu:d.Z})};var p=Object.assign(c,{__name:"ServerRoute",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,n.iH)(null),d=(0,n.iH)(""),c=(0,n.iH)(!1),p=(0,n.iH)(null),m=(0,n.iH)([]),f=(0,n.qj)({routeIp:"",size:10,current:1,total:0}),{routeIp:v,size:w,current:y,total:g}=(0,n.BK)(f),b=(e,t=null)=>{c.value=!0,d.value=e,l.value=t},h=async()=>{const{code:e,data:t}=await VE_API.cloudNetworkRoute.lazyNettyServerRoutePage(f);if(0===e){const{size:e,current:l,total:a,records:n}=t;f.size=e,f.current=l,f.total=a,m.value=n}};return(0,a.bv)((async()=>{await h()})),(e,_)=>{const k=(0,a.up)("el-input"),U=(0,a.up)("el-form-item"),C=(0,a.up)("el-button"),S=(0,a.up)("el-form"),W=(0,a.up)("el-table-column"),V=(0,a.up)("ve-table"),I=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a.Wm)(S,{ref_key:"queryForm",ref:p,inline:!0,model:f},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{label:"路由IP",prop:"routeIp"},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{clearable:"",modelValue:(0,n.SU)(v),"onUpdate:modelValue":_[0]||(_[0]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"路由IP"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(U,null,{default:(0,a.w5)((()=>[(0,a.Wm)(C,{type:"primary",onClick:_[1]||(_[1]=e=>(0,n.SU)(i.MI)(f,h))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(C,{onClick:_[2]||(_[2]=e=>(0,n.SU)(i.Fx)(p.value,f,h))},{default:(0,a.w5)((()=>_[5]||(_[5]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(V,{table:{data:m.value},pagination:{onSizeChange:e=>(0,n.SU)(i.EL)(e,f,h),onCurrentChange:e=>(0,n.SU)(i.jx)(e,f,h),currentPage:(0,n.SU)(y),pageSize:(0,n.SU)(w),total:(0,n.SU)(g)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{size:"small",type:"primary",onClick:_[3]||(_[3]=t=>b(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[I,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(W,{prop:"id",label:"路由ID"}),(0,a.Wm)(W,{prop:"routeIp",label:"路由IP"}),(0,a.Wm)(W,{prop:"routePort",label:"路由端口"}),(0,a.Wm)(W,{prop:"describe",label:"描述"}),(0,a.Wm)(W,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((t=>b(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[I,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{console.log(e.id),t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.cloudNetworkRoute.lazyNettyServerRouteDelete({id:e.id});0===t&&h()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}))})(l)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[I,["del"]]])])),_:1})])),_:1},8,["table","pagination"]),c.value?((0,a.wg)(),(0,a.j4)(u.default,{key:0,rowData:l.value,title:d.value,showDialog:c.value,onCloseDialog:_[4]||(_[4]=e=>{return t=e,c.value=t,void h();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},82064:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"ClientRouteEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={clientId:[{required:!0,message:"请选择客户端",trigger:"blur"}],routeIp:[{required:!0,message:"请输入路由IP",trigger:"blur"}],routePort:[{required:!0,message:"请输入端口",trigger:"blur"}]},o=e,r=t,{title:u,rowData:i}=(0,n.BK)(o),d=(0,n.iH)(null),s=()=>{r("closeDialog",!1)},c=(0,n.iH)(null),p=(0,n.qj)({clientId:"",routeIp:"",routePort:"ALL",describe:""}),{clientId:m,routeIp:f,routePort:v,describe:w}=(0,n.BK)(p);i.value&&(m.value=i.value.clientId,f.value=i.value.routeIp,v.value=i.value.routePort,w.value=i.value.describe);return(0,a.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})),d.value=e.data?e.data:[])}))})),(t,o)=>{const r=(0,a.up)("el-option"),y=(0,a.up)("el-select"),g=(0,a.up)("el-form-item"),b=(0,a.up)("el-input"),h=(0,a.up)("el-form"),_=(0,a.up)("el-button"),k=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(k,{title:(0,n.SU)(u),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:o[6]||(o[6]=e=>s())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(_,{onClick:o[4]||(o[4]=e=>s())},{default:(0,a.w5)((()=>o[7]||(o[7]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(_,{type:"primary",onClick:o[5]||(o[5]=e=>{c.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===u.value?await VE_API.cloudNetworkRoute.lazyNettyClientRouteSave(p):await VE_API.cloudNetworkRoute.lazyNettyClientRouteUpdate({id:i.value.id,...p});const{code:t}=e;0===t&&s()}}))})},{default:(0,a.w5)((()=>o[8]||(o[8]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(h,{model:p,ref_key:"formRef",ref:c,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(g,{label:"客户端ID","label-width":"140px",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(y,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":o[0]||(o[0]=e=>(0,n.dq)(m)?m.value=e:null),placeholder:"客户端ID",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(d.value,(e=>((0,a.wg)(),(0,a.j4)(r,{key:e.value,label:e.label,value:e.value,serverId:e},null,8,["label","value","serverId"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(g,{label:"路由IP","label-width":"140px",prop:"routeIp"},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{modelValue:(0,n.SU)(f),"onUpdate:modelValue":o[1]||(o[1]=e=>(0,n.dq)(f)?f.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(g,{label:"路由端口",prop:"routePort"},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{modelValue:(0,n.SU)(v),"onUpdate:modelValue":o[2]||(o[2]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(g,{label:"描述",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":o[3]||(o[3]=e=>(0,n.dq)(w)?w.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},32584:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"ServerRouteEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={routeIp:[{required:!0,message:"请输入路由IP",trigger:"blur"}],routePort:[{required:!0,message:"请输入端口",trigger:"blur"}]},o=e,r=t,{title:u,rowData:i}=(0,n.BK)(o),d=(0,n.iH)(null),s=()=>{r("closeDialog",!1)},c=(0,n.iH)(null),p=(0,n.qj)({routeIp:"",routePort:"ALL",describe:""}),{routeIp:m,routePort:f,describe:v}=(0,n.BK)(p);i.value&&(m.value=i.value.routeIp,f.value=i.value.routePort,v.value=i.value.describe);return(0,a.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})),d.value=e.data?e.data:[])}))})),(t,o)=>{const r=(0,a.up)("el-input"),d=(0,a.up)("el-form-item"),w=(0,a.up)("el-form"),y=(0,a.up)("el-button"),g=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(g,{title:(0,n.SU)(u),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:o[5]||(o[5]=e=>s())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(y,{onClick:o[3]||(o[3]=e=>s())},{default:(0,a.w5)((()=>o[6]||(o[6]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(y,{type:"primary",onClick:o[4]||(o[4]=e=>{c.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===u.value?await VE_API.cloudNetworkRoute.lazyNettyServerRouteSave(p):await VE_API.cloudNetworkRoute.lazyNettyServerRouteUpdate({id:i.value.id,...p});const{code:t}=e;0===t&&s()}}))})},{default:(0,a.w5)((()=>o[7]||(o[7]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(w,{model:p,ref_key:"formRef",ref:c,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(d,{label:"路由IP","label-width":"140px",prop:"routeIp"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":o[0]||(o[0]=e=>(0,n.dq)(m)?m.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(d,{label:"路由端口",prop:"routePort"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(f),"onUpdate:modelValue":o[1]||(o[1]=e=>(0,n.dq)(f)?f.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(d,{label:"描述",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(v),"onUpdate:modelValue":o[2]||(o[2]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},66164:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return p}});var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(49686),i=l(20890),d=l(98131);const s={class:"ve_container"},c={data:()=>({description:"服务端渗透客户端",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},view:{name:"访客端口预览"}},type:"1",icon:"Connection",name:"服务端渗透客户端",parentMenu:d.Z})};var p=Object.assign(c,{__name:"ServerPermeateClientNetworkMapping",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,n.iH)(null),d=(0,n.iH)([]),c=(0,n.iH)(null),p=(0,n.iH)(""),m=(0,n.iH)(!1),f=(0,n.qj)({clientId:"",size:10,current:1,total:0}),{clientId:v,size:w,current:y,total:g}=(0,n.BK)(f),b=(e,t=null)=>{m.value=!0,p.value=e,c.value=t},h=async()=>{const{code:e,data:t}=await VE_API.cloudNetwork.networkMappingPage(f);if(0===e){const{size:e,current:l,total:a,records:n}=t;f.size=e,f.current=l,f.total=a,d.value=n}};return(0,a.bv)((async()=>{await h()})),(e,_)=>{const k=(0,a.up)("el-input"),U=(0,a.up)("el-form-item"),C=(0,a.up)("el-button"),S=(0,a.up)("el-form"),W=(0,a.up)("el-table-column"),V=(0,a.up)("ve-table"),I=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a.Wm)(S,{ref_key:"queryForm",ref:l,inline:!0,model:f},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{label:"客户端ID",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{clearable:"",modelValue:(0,n.SU)(v),"onUpdate:modelValue":_[0]||(_[0]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"客户端ID"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(U,null,{default:(0,a.w5)((()=>[(0,a.Wm)(C,{type:"primary",onClick:_[1]||(_[1]=e=>(0,n.SU)(u.MI)(f,h))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(C,{onClick:_[2]||(_[2]=e=>(0,n.SU)(u.Fx)(l.value,f,h))},{default:(0,a.w5)((()=>_[5]||(_[5]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(V,{table:{data:d.value},pagination:{onSizeChange:e=>(0,n.SU)(u.EL)(e,f,h),onCurrentChange:e=>(0,n.SU)(u.jx)(e,f,h),currentPage:(0,n.SU)(y),pageSize:(0,n.SU)(w),total:(0,n.SU)(g)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{title:"弹窗式",size:"small",type:"primary",onClick:_[3]||(_[3]=t=>b(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[I,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(W,{prop:"clientId",label:"客户端ID"}),(0,a.Wm)(W,{prop:"clientTargetIp",label:"客户端目标地址"}),(0,a.Wm)(W,{prop:"clientTargetPort",label:"客户端目标端口"}),(0,a.Wm)(W,{prop:"visitorPort",label:"访问端口"}),(0,a.Wm)(W,{prop:"describe",label:"描述"}),(0,a.Wm)(W,{prop:"createTime",label:"创建时间"}),(0,a.Wm)(W,{prop:"updateTime",label:"修改时间"}),(0,a.Wm)(W,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((t=>b(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[I,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{console.log(window.location.hostname),console.log(window.location.host),window.open(window.location.protocol+"//"+window.location.hostname+":"+e.visitorPort,"_blank")})(l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.view.name),1)])),_:2},1032,["onClick"])),[[I,["view"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.cloudNetwork.networkMappingDelete(e);0===t&&h()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}))})(l)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[I,["del"]]])])),_:1})])),_:1},8,["table","pagination"]),m.value?((0,a.wg)(),(0,a.j4)(i.default,{key:0,rowData:c.value,title:p.value,showDialog:m.value,onCloseDialog:_[4]||(_[4]=e=>{return t=e,m.value=t,void h();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},41001:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return p}});var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(62394),i=l(49686),d=l(98131);const s={class:"ve_container"},c={data:()=>({description:"服务端口池管理",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"}},type:"1",icon:"Histogram",name:"服务端口池管理",parentMenu:d.Z})};var p=Object.assign(c,{__name:"ServerPermeateClientPortPool",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,n.iH)(null),d=(0,n.iH)(""),c=(0,n.iH)(!1),p=(0,n.iH)(null),m=(0,n.iH)([]),f=(0,n.qj)({visitorPort:"",size:10,current:1,total:0}),{visitorPort:v,size:w,current:y,total:g}=(0,n.BK)(f),b=(e,t=null)=>{c.value=!0,d.value=e,l.value=t},h=async()=>{const{code:e,data:t}=await VE_API.cloudNetwork.visitorPage(f);if(0===e){const{size:e,current:l,total:a,records:n}=t;f.size=e,f.current=l,f.total=a,m.value=n}};return(0,a.bv)((async()=>{await h()})),(e,_)=>{const k=(0,a.up)("el-input"),U=(0,a.up)("el-form-item"),C=(0,a.up)("el-button"),S=(0,a.up)("el-form"),W=(0,a.up)("el-table-column"),V=(0,a.up)("ve-table"),I=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a.Wm)(S,{ref_key:"queryForm",ref:p,inline:!0,model:f},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{label:"访客端口",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{clearable:"",modelValue:(0,n.SU)(v),"onUpdate:modelValue":_[0]||(_[0]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"访客端口"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(U,null,{default:(0,a.w5)((()=>[(0,a.Wm)(C,{type:"primary",onClick:_[1]||(_[1]=e=>(0,n.SU)(i.MI)(f,h))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(C,{onClick:_[2]||(_[2]=e=>(0,n.SU)(i.Fx)(p.value,f,h))},{default:(0,a.w5)((()=>_[5]||(_[5]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(V,{table:{data:m.value},pagination:{onSizeChange:e=>(0,n.SU)(i.EL)(e,f,h),onCurrentChange:e=>(0,n.SU)(i.jx)(e,f,h),currentPage:(0,n.SU)(y),pageSize:(0,n.SU)(w),total:(0,n.SU)(g)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{size:"small",type:"primary",onClick:_[3]||(_[3]=t=>b(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[I,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(W,{prop:"visitorPort",label:"访客端口"}),(0,a.Wm)(W,{prop:"describe",label:"描述"}),(0,a.Wm)(W,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((t=>b(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[I,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{console.log(e),t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.cloudNetwork.visitorDelete({visitorPort:e});0===t&&h()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}))})(l.visitorPort)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[I,["del"]]])])),_:1})])),_:1},8,["table","pagination"]),c.value?((0,a.wg)(),(0,a.j4)(u.default,{key:0,rowData:l.value,title:d.value,showDialog:c.value,onCloseDialog:_[4]||(_[4]=e=>{return t=e,c.value=t,void h();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},69048:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return p}});var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(49686),i=l(69132),d=l(98131);const s={class:"ve_container"},c={data:()=>({description:"服务端渗透服务端",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},view:{name:"服务端渗透服务端"}},type:"1",icon:"Connection",name:"渗透映射管理",parentMenu:d.Z})};var p=Object.assign(c,{__name:"ServerPermeateServerNetworkMapping",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,n.iH)(null),d=(0,n.iH)([]),c=(0,n.iH)(null),p=(0,n.iH)(""),m=(0,n.iH)(!1),f=(0,n.qj)({visitorPort:"",size:10,current:1,total:0}),{visitorPort:v,size:w,current:y,total:g}=(0,n.BK)(f),b=(e,t=null)=>{m.value=!0,p.value=e,c.value=t},h=async()=>{const{code:e,data:t}=await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkServerPermeateMappingPage(f);if(0===e){const{size:e,current:l,total:a,records:n}=t;f.size=e,f.current=l,f.total=a,d.value=n}};return(0,a.bv)((async()=>{await h()})),(e,_)=>{const k=(0,a.up)("el-input"),U=(0,a.up)("el-form-item"),C=(0,a.up)("el-button"),S=(0,a.up)("el-form"),W=(0,a.up)("el-table-column"),V=(0,a.up)("ve-table"),I=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a.Wm)(S,{ref_key:"queryForm",ref:l,inline:!0,model:f},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{label:"访问端口",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{clearable:"",modelValue:(0,n.SU)(v),"onUpdate:modelValue":_[0]||(_[0]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"访问端口"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(U,null,{default:(0,a.w5)((()=>[(0,a.Wm)(C,{type:"primary",onClick:_[1]||(_[1]=e=>(0,n.SU)(u.MI)(f,h))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(C,{onClick:_[2]||(_[2]=e=>(0,n.SU)(u.Fx)(l.value,f,h))},{default:(0,a.w5)((()=>_[5]||(_[5]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(V,{table:{data:d.value},pagination:{onSizeChange:e=>(0,n.SU)(u.EL)(e,f,h),onCurrentChange:e=>(0,n.SU)(u.jx)(e,f,h),currentPage:(0,n.SU)(y),pageSize:(0,n.SU)(w),total:(0,n.SU)(g)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{title:"弹窗式",size:"small",type:"primary",onClick:_[3]||(_[3]=t=>b(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[I,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(W,{prop:"permeateTargetIp",label:"客户端目标地址"}),(0,a.Wm)(W,{prop:"permeateTargetPort",label:"客户端目标端口"}),(0,a.Wm)(W,{prop:"visitorPort",label:"访问端口"}),(0,a.Wm)(W,{prop:"describe",label:"描述"}),(0,a.Wm)(W,{prop:"createTime",label:"创建时间"}),(0,a.Wm)(W,{prop:"updateTime",label:"修改时间"}),(0,a.Wm)(W,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((t=>b(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[I,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{console.log(window.location.hostname),console.log(window.location.host),window.open(window.location.protocol+"//"+window.location.hostname+":"+e.visitorPort,"_blank")})(l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.view.name),1)])),_:2},1032,["onClick"])),[[I,["view"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(C,{onClick:(0,r.iM)((e=>(e=>{t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkServerPermeateMappingDelete(e);0===t&&h()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}))})(l)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[I,["del"]]])])),_:1})])),_:1},8,["table","pagination"]),m.value?((0,a.wg)(),(0,a.j4)(i.default,{key:0,rowData:c.value,title:p.value,showDialog:m.value,onCloseDialog:_[4]||(_[4]=e=>{return t=e,m.value=t,void h();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},20890:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return u}});var a=l(67759),n=l(76364),o=l(38874);const r={style:{float:"left"}};var u={__name:"ServerPermeateClientNetWorkMappingEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={clientId:[{required:!0,message:"请输入选择客户端",trigger:"blur"}],clientTargetIp:[{required:!0,message:"请输入客户端目标IP",trigger:"blur"}],clientTargetPort:[{required:!0,message:"请输入客户端目标端口",trigger:"blur"}],visitorPort:[{required:!0,message:"请选择访客端口",trigger:"blur"}]},u=e,i=t,{title:d,rowData:s}=(0,n.BK)(u),c=()=>{i("closeDialog",!1)},p=(0,n.iH)(null),m=(0,n.iH)(null),f=(0,n.iH)(null),v=(0,n.qj)({clientId:"",clientTargetIp:"0.0.0.0",clientTargetPort:"",visitorPort:"",describe:""}),{clientId:w,clientTargetIp:y,clientTargetPort:g,visitorPort:b,describe:h}=(0,n.BK)(v);s.value&&(w.value=s.value.clientId,y.value=s.value.clientTargetIp,g.value=s.value.clientTargetPort,b.value=s.value.visitorPort,h.value=s.value.describe);(0,a.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})),m.value=e.data?e.data:[])})),_()}));const _=async()=>{let e=await VE_API.cloudNetwork.visitorList();const{code:t}=e;0===t&&(e.data.map((e=>{e.label=e.describe,e.value=e.visitorPort})),f.value=e.data?e.data:[])};return(t,u)=>{const i=(0,a.up)("el-option"),_=(0,a.up)("el-select"),k=(0,a.up)("el-form-item"),U=(0,a.up)("el-input"),C=(0,a.up)("el-form"),S=(0,a.up)("el-button"),W=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(W,{title:(0,n.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:u[7]||(u[7]=e=>c())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(S,{onClick:u[5]||(u[5]=e=>c())},{default:(0,a.w5)((()=>u[8]||(u[8]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(S,{type:"primary",onClick:u[6]||(u[6]=e=>{p.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.cloudNetwork.networkMappingSave(v):await VE_API.cloudNetwork.networkMappingUpdate({clientTargetPort:s.value.clientTargetPort,...v});const{code:t}=e;0===t&&c()}}))})},{default:(0,a.w5)((()=>u[9]||(u[9]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(C,{model:v,ref_key:"formRef",ref:p,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(k,{label:"客户端ID","label-width":"140px",prop:"clientId"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":u[0]||(u[0]=e=>(0,n.dq)(w)?w.value=e:null),placeholder:"客户端ID",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(m.value,(e=>((0,a.wg)(),(0,a.j4)(i,{key:e.value,label:e.label,value:e.value,serverId:e},null,8,["label","value","serverId"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(k,{label:"访问端口","label-width":"140px",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(b),"onUpdate:modelValue":u[1]||(u[1]=e=>(0,n.dq)(b)?b.value=e:null),placeholder:"访问端口",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(f.value,(e=>((0,a.wg)(),(0,a.j4)(i,{key:e.value,label:e.label,value:e.value},{default:(0,a.w5)((()=>[(0,a._)("span",r," 端口:【"+(0,o.zw)(e.value)+"】"+(0,o.zw)(e.label),1)])),_:2},1032,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(k,{label:"客户端目标地址","label-width":"140px",prop:"clientTargetIp"},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{modelValue:(0,n.SU)(y),"onUpdate:modelValue":u[2]||(u[2]=e=>(0,n.dq)(y)?y.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(k,{label:"客户端目标端口","label-width":"140px",prop:"clientTargetPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{modelValue:(0,n.SU)(g),"onUpdate:modelValue":u[3]||(u[3]=e=>(0,n.dq)(g)?g.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(k,{label:"描述","label-width":"140px",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{modelValue:(0,n.SU)(h),"onUpdate:modelValue":u[4]||(u[4]=e=>(0,n.dq)(h)?h.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},62394:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"ServerPermeateClientPortPoolEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={projectId:[{required:!0,message:"请输入选择项目",trigger:"blur"}],schemaName:[{required:!0,message:"请输入选择数据库",trigger:"blur"}],applicationName:[{required:!0,message:"请输入应用名",trigger:"blur"}]},o=e,r=t,{title:u,rowData:i}=(0,n.BK)(o),d=()=>{r("closeDialog",!1)},s=(0,n.iH)(null),c=(0,n.qj)({visitorPort:"",describe:""}),{visitorPort:p,describe:m}=(0,n.BK)(c);i.value&&(p.value=i.value.visitorPort,m.value=i.value.describe);return(0,a.bv)((async()=>{})),(t,o)=>{const r=(0,a.up)("el-input"),f=(0,a.up)("el-form-item"),v=(0,a.up)("el-form"),w=(0,a.up)("el-button"),y=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(y,{title:(0,n.SU)(u),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:o[4]||(o[4]=e=>d())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(w,{onClick:o[2]||(o[2]=e=>d())},{default:(0,a.w5)((()=>o[5]||(o[5]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(w,{type:"primary",onClick:o[3]||(o[3]=e=>{s.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===u.value?await VE_API.cloudNetwork.visitorSave(c):await VE_API.cloudNetwork.visitorUpdate({visitorPort:i.value.visitorPort,...c});const{code:t}=e;0===t&&d()}}))})},{default:(0,a.w5)((()=>o[6]||(o[6]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(v,{model:c,ref_key:"formRef",ref:s,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(f,{label:"访客端口",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(p),"onUpdate:modelValue":o[0]||(o[0]=e=>(0,n.dq)(p)?p.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(f,{label:"描述",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":o[1]||(o[1]=e=>(0,n.dq)(m)?m.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},69132:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return u}});var a=l(67759),n=l(76364),o=l(38874);const r={style:{float:"left"}};var u={__name:"ServerPermeateServerNetworkMappingEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={permeateTargetIp:[{required:!0,message:"请输入客户端目标IP",trigger:"blur"}],permeateTargetPort:[{required:!0,message:"请输入客户端目标端口",trigger:"blur"}],visitorPort:[{required:!0,message:"请选择访客端口",trigger:"blur"}]},u=e,i=t,{title:d,rowData:s}=(0,n.BK)(u),c=()=>{i("closeDialog",!1)},p=(0,n.iH)(null),m=(0,n.iH)(null),f=(0,n.qj)({permeateTargetIp:"0.0.0.0",permeateTargetPort:"",visitorPort:"",describe:""}),{permeateTargetIp:v,permeateTargetPort:w,visitorPort:y,describe:g}=(0,n.BK)(f);s.value&&(v.value=s.value.permeateTargetIp,w.value=s.value.permeateTargetPort,y.value=s.value.visitorPort,g.value=s.value.describe);(0,a.bv)((async()=>{await b()}));const b=async()=>{let e=await VE_API.cloudNetwork.visitorList();const{code:t}=e;0===t&&(e.data.map((e=>{e.label=e.describe,e.value=e.visitorPort})),m.value=e.data?e.data:[])};return(t,u)=>{const i=(0,a.up)("el-option"),b=(0,a.up)("el-select"),h=(0,a.up)("el-form-item"),_=(0,a.up)("el-input"),k=(0,a.up)("el-form"),U=(0,a.up)("el-button"),C=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(C,{title:(0,n.SU)(d),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:u[6]||(u[6]=e=>c())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(U,{onClick:u[4]||(u[4]=e=>c())},{default:(0,a.w5)((()=>u[7]||(u[7]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(U,{type:"primary",onClick:u[5]||(u[5]=e=>{p.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===d.value?await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkServerPermeateMappingSave(f):await VE_API.cloudNetworkServerPerMeate.lazyInternalNetworkServerPermeateMappingUpdate({permeateTargetPort:s.value.permeateTargetPort,...f});const{code:t}=e;0===t&&c()}}))})},{default:(0,a.w5)((()=>u[8]||(u[8]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(k,{model:f,ref_key:"formRef",ref:p,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{label:"访问端口","label-width":"140px",prop:"visitorPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{modelValue:(0,n.SU)(y),"onUpdate:modelValue":u[0]||(u[0]=e=>(0,n.dq)(y)?y.value=e:null),placeholder:"访问端口",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(m.value,(e=>((0,a.wg)(),(0,a.j4)(i,{key:e.value,label:e.label,value:e.value},{default:(0,a.w5)((()=>[(0,a._)("span",r," 端口:【"+(0,o.zw)(e.value)+"】"+(0,o.zw)(e.label),1)])),_:2},1032,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"客户端目标地址","label-width":"140px",prop:"permeateTargetIp"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(v),"onUpdate:modelValue":u[1]||(u[1]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"客户端目标端口","label-width":"140px",prop:"permeateTargetPort"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":u[2]||(u[2]=e=>(0,n.dq)(w)?w.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"描述","label-width":"140px",prop:"describe"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(g),"onUpdate:modelValue":u[3]||(u[3]=e=>(0,n.dq)(g)?g.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},3723:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return y}});var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(35757),i=l(94544),d=l(49686),s=l(25541),c=l(64779);const p={class:"ve_container"},m={style:{"flex-wrap":"wrap",display:"inline"}},f={style:{width:"50%",float:"left"}},v={style:{width:"50%",float:"right"}},w={data:()=>({description:"字典信息查询与设置",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},addDictionaryData:{name:"添加字典项"},editDictionaryData:{name:"编辑字典项"},delDictionaryData:{name:"删除字典项"},dictionaryData:{name:"查看字典详细数据",toPath:!0}},type:"1",icon:"Reading",name:"字典管理",parentMenu:s.Z,module:c.moduleName})};var y=Object.assign(w,{__name:"Dictionary",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,n.iH)(null),s=(0,n.iH)(null),c=(0,n.iH)(""),w=(0,n.iH)(!1),y=(0,n.iH)(""),g=(0,n.iH)(!1),b=(0,n.iH)(null),h=(0,n.iH)([]),_=(0,n.iH)([]),k=(0,n.qj)({name:"",size:10,current:1,total:0}),{name:U,size:C,current:S,total:W}=(0,n.BK)(k),V=(e,t=null)=>{w.value=!0,c.value=e,l.value=t},I=async e=>{const{code:t,data:l}=await VE_API.system.dictionaryDataList({dictionaryCode:e});0===t&&(_.value=l)},P=async()=>{const{code:e,data:t}=await VE_API.system.dictionaryPage(k);if(0===e){const{size:e,current:l,total:a,records:n}=t;k.size=e,k.current=l,k.total=a,h.value=n}};return(0,a.bv)((async()=>{await P()})),(e,D)=>{const z=(0,a.up)("el-input"),x=(0,a.up)("el-form-item"),j=(0,a.up)("el-button"),E=(0,a.up)("el-form"),q=(0,a.up)("el-table-column"),T=(0,a.up)("el-tag"),N=(0,a.up)("ve-table"),M=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",p,[(0,a.Wm)(E,{ref_key:"queryForm",ref:b,inline:!0,model:k},{default:(0,a.w5)((()=>[(0,a.Wm)(x,{label:"字典名称",prop:"name"},{default:(0,a.w5)((()=>[(0,a.Wm)(z,{clearable:"",modelValue:(0,n.SU)(U),"onUpdate:modelValue":D[0]||(D[0]=e=>(0,n.dq)(U)?U.value=e:null),placeholder:"请输入"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(x,null,{default:(0,a.w5)((()=>[(0,a.Wm)(j,{type:"primary",onClick:D[1]||(D[1]=e=>(0,n.SU)(d.MI)(k,P))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(j,{onClick:D[2]||(D[2]=e=>(0,n.SU)(d.Fx)(b.value,k,P))},{default:(0,a.w5)((()=>D[6]||(D[6]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a._)("div",m,[(0,a._)("div",f,[(0,a.Wm)(N,{table:{data:h.value},pagination:{onSizeChange:e=>(0,n.SU)(d.EL)(e,k,P),onCurrentChange:e=>(0,n.SU)(d.jx)(e,k,P),currentPage:(0,n.SU)(S),pageSize:(0,n.SU)(C),total:(0,n.SU)(W)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(j,{size:"small",type:"primary",onClick:D[3]||(D[3]=t=>V(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[M,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(q,{prop:"name",label:"字典名称",width:"120"},{default:(0,a.w5)((e=>[(0,a.Wm)(j,{type:"primary",onClick:t=>I(e.row.code)},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.row.name),1)])),_:2},1032,["onClick"])])),_:1}),(0,a.Wm)(q,{prop:"code",label:"字典编码"}),(0,a.Wm)(q,{prop:"status",label:"字典类型"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(T,{type:0===e.type?"danger":""},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(0===e.type?"列表":"树状"),1)])),_:2},1032,["type"])])),_:1}),(0,a.Wm)(q,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(j,{onClick:(0,r.iM)((t=>V(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[M,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(j,{onClick:(0,r.iM)((e=>{return a=l.id,void t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:e}=await VE_API.system.dictionaryDelete({id:a});0===e&&P()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}));var a}),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[M,["del"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(j,{size:"small",type:"primary",onClick:t=>((e,t=null)=>{g.value=!0,y.value=e,s.value={dictionaryCode:t.code},console.log(s.value)})(e.buttons.addDictionaryData.name,l)},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.addDictionaryData.name),1)])),_:2},1032,["onClick"])),[[M,["addDictionaryData"]]])])),_:1})])),_:1},8,["table","pagination"])]),(0,a._)("div",v,[(0,a.Wm)(N,{table:{data:_.value},pagination:{onSizeChange:e=>(0,n.SU)(d.EL)(e,k,P),onCurrentChange:e=>(0,n.SU)(d.jx)(e,k,P),currentPage:(0,n.SU)(S),pageSize:(0,n.SU)(C),total:(0,n.SU)(W)}},{default:(0,a.w5)((()=>[(0,a.Wm)(q,{prop:"name",label:"字典名称",width:"120"}),(0,a.Wm)(q,{prop:"code",label:"字典编码"}),(0,a.Wm)(q,{prop:"description",label:"字典项描述",width:"120"}),(0,a.Wm)(q,{prop:"status",label:"字典类型"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(T,{type:0===e.type?"danger":""},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(0===e.type?"列表":"树状"),1)])),_:2},1032,["type"])])),_:1}),(0,a.Wm)(q,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(j,{onClick:(0,r.iM)((t=>((e,t=null)=>{g.value=!0,y.value=e,s.value=t})(e.buttons.editDictionaryData.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.editDictionaryData.name),1)])),_:2},1032,["onClick"])),[[M,["editDictionaryData"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(j,{onClick:(0,r.iM)((e=>(e=>{let l=e.id;t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:t}=await VE_API.system.dictionaryDataDelete({id:l});0===t&&I(e.dictionaryCode)})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}))})(l)),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.delDictionaryData.name),1)])),_:2},1032,["onClick"])),[[M,["delDictionaryData"]]])])),_:1})])),_:1},8,["table","pagination"]),g.value?((0,a.wg)(),(0,a.j4)(i.default,{key:0,rowData:s.value,title:y.value,showDialog:g.value,onCloseDialog:D[4]||(D[4]=e=>{return t=e,g.value=t,P(),console.log(l.value),void I(s.value.dictionaryCode);var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])]),w.value?((0,a.wg)(),(0,a.j4)(u.default,{key:0,rowData:l.value,title:c.value,showDialog:w.value,onCloseDialog:D[5]||(D[5]=e=>{return t=e,w.value=t,void P();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},88709:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});l(74538),l(63939),l(1755),l(65480);var a=l(67759),n=l(38874),o=l(12257),r=l(76364),u=l(25541),i=l(64779);const d={class:"vu_content"},s=["id","src"],c={class:"content-item"},p={data:()=>({description:"动态iframe",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},dictionaryData:{name:"查看翻译详细数据",toPath:!0}},type:"1",icon:"Microphone",name:"动态iframe",parentMenu:u.Z,module:i.moduleName})};var m=Object.assign(p,{__name:"DynamicIframe",setup(e){const t=(0,r.iH)([]),l=(e,t,l)=>{let a=l.src,n=new XMLHttpRequest;n.open("GET",a,!0),n.responseType="blob",n.setRequestHeader("Accept","*/*"),t.forEach((e=>{n.setRequestHeader(e[0],e[1])})),n.onreadystatechange=()=>{n.readyState===n.DONE&&(console.log("xhr.response",n.response),200===n.status&&(e.src=URL.createObjectURL(n.response)))},n.send()};(0,a.bv)((async()=>{}));return(e,r)=>{const u=(0,a.up)("el-input"),i=(0,a.up)("el-button"),p=(0,a.up)("el-empty"),m=(0,a.up)("el-form-item");return(0,a.wg)(),(0,a.iD)("div",d,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(t.value,(e=>((0,a.wg)(),(0,a.iD)("view",{key:e.id,class:"content-item"},[(0,a._)("span",null,"窗口"+(0,n.zw)(e.id),1),(0,a.Wm)(u,{modelValue:e.tilt,"onUpdate:modelValue":t=>e.tilt=t,placeholder:"窗口描述",clearable:""},null,8,["modelValue","onUpdate:modelValue"]),(0,a._)("div",null,[r[3]||(r[3]=(0,a._)("span",null,"添加请求头",-1)),(0,a.Wm)(i,{onClick:t=>(e=>{let t=e.headers;console.log("当前iframe请求头"+t),t.push({name:"",value:""})})(e),type:"primary",style:{float:"right"}},{default:(0,a.w5)((()=>r[1]||(r[1]=[(0,a.Uk)("增加 ")]))),_:2},1032,["onClick"]),(0,a.wy)((0,a.Wm)(p,null,null,512),[[o.F8,0===e.headers.length]]),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.headers,((t,n)=>((0,a.wg)(),(0,a.j4)(m,{key:n},{default:(0,a.w5)((()=>[(0,a.Wm)(u,{modelValue:e.headers[n].name,"onUpdate:modelValue":t=>e.headers[n].name=t,placeholder:"请求头key"},null,8,["modelValue","onUpdate:modelValue"]),(0,a.Wm)(u,{modelValue:e.headers[n].value,"onUpdate:modelValue":t=>e.headers[n].value=t,placeholder:""},null,8,["modelValue","onUpdate:modelValue"]),(0,a.Wm)(i,{onClick:t=>((e,t)=>{let a=e.headers;console.log("当前iframe请求头"+a),a.splice(t,1);const n=document.querySelector("#"+e.dynamicIframeId);l(n,[["token1","header"]],e)})(e,n),type:"danger",style:{float:"right"}},{default:(0,a.w5)((()=>r[2]||(r[2]=[(0,a.Uk)("删除 ")]))),_:2},1032,["onClick"])])),_:2},1024)))),128))]),(0,a.Wm)(u,{modelValue:e.src,"onUpdate:modelValue":t=>e.src=t,placeholder:"窗口地址",clearable:""},null,8,["modelValue","onUpdate:modelValue"]),(0,a._)("iframe",{id:e.dynamicIframeId,src:e.src,style:{height:"100%",width:"100%",margin:"0",border:"0"},frameborder:"0",scrolling:"no"},null,8,s),(0,a.Wm)(i,{onClick:t=>(e=>{const t=document.querySelector("#"+e.dynamicIframeId);l(t,[["token1","header"]],e)})(e)},{default:(0,a.w5)((()=>r[4]||(r[4]=[(0,a.Uk)(" 预览 ")]))),_:2},1032,["onClick"])])))),128)),(0,a._)("view",c,[(0,a.Wm)(i,{type:"primary",onClick:r[0]||(r[0]=e=>(console.log("111"),void t.value.push({id:"默认ID",src:"https://www.baidu.com",tilt:"默认表头",headers:[],dynamicIframeId:"dynamicIframeId_2"})))},{default:(0,a.w5)((()=>r[5]||(r[5]=[(0,a.Uk)("添加iframe ")]))),_:1})])])}}});var f=(0,l(70636).Z)(m,[["__scopeId","data-v-5a9846ad"]])},70536:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return C}});l(74538);var a=l(67759),n=l(76364),o=l(38874),r=l(12257);const u=e=>/^http[s]?:\/\/.*/.test(e);var i=l(27523),d=l(49686),s=l(25541),c=l(64779),p=l(41728);const m={class:"ve_container"},f={style:{"vertical-align":"middle"}},v={key:1},w={key:0,style:{"font-weight":"bold"}},y={key:1},g={key:1},b={key:1},h={key:1},_={key:2},k={data:()=>({description:"菜单查询与设置",buttons:{search:{name:"查询"},add:{name:"添加"},restore:{name:"恢复出厂设置"},edit:{name:"编辑"},del:{name:"删除"},addChild:{name:"添加子级"},addBtn:{name:"添加按钮"}},type:"1",icon:"Menu",name:"菜单管理",parentMenu:s.Z,module:c.moduleName})};var U=Object.assign(k,{__name:"Menus",setup(e){const{proxy:t}=(0,a.FN)(),s=(0,n.iH)(null),k=(0,n.iH)(""),U=(0,n.iH)(!1),C=(0,n.iH)(null),S=(0,n.iH)([]),W=(0,n.qj)({name:"",module:c.moduleName,size:10,page:1,total:0}),{name:V,size:I,page:P,total:D}=(0,n.BK)(W),z=()=>{const e=l(30056);return e.keys().map((t=>({url:t.replace(/^(\.\/)|(\.vue)/g,""),description:e(t).default.data&&(e(t).default.data().description||"无"),buttons:e(t).default.data&&(e(t).default.data().buttons||[]),type:e(t).default.data&&(e(t).default.data().type||"无"),icon:e(t).default.data&&(e(t).default.data().icon||x()),name:e(t).default.data&&(e(t).default.data().name||"无"),parentMenu:e(t).default.data&&e(t).default.data().parentMenu,module:c.moduleName}))).filter((e=>!e.url.includes("/components/")))},x=()=>{const e=l(9166);console.log("🚀 ~ file: index.js ~ line 107 ~ icons ~ e",e);const t=[];for(const l in e)t.push(e[l].name);return t[0]},j=(e,t=null)=>{U.value=!0,k.value=e,C.value=t},E=async()=>{const{code:e,data:t}=await VE_API.system.menuList(W);if(0===e){const e=p.mapTree(p.toArrayTree(t,{sortKey:"sort",key:"code",parentKey:"parentCode"}),(e=>(e.children&&e.children.length<=0&&delete e.children,e)));S.value=e}};return(0,a.bv)((async()=>{await E()})),(e,l)=>{const p=(0,a.up)("el-input"),x=(0,a.up)("el-form-item"),q=(0,a.up)("el-button"),T=(0,a.up)("el-form"),N=(0,a.up)("el-table-column"),M=(0,a.up)("el-icon"),A=(0,a.up)("el-tag"),H=(0,a.up)("el-link"),B=(0,a.up)("ve-table"),L=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",m,[(0,a.Wm)(T,{ref_key:"queryForm",ref:s,inline:!0,model:W},{default:(0,a.w5)((()=>[(0,a.Wm)(x,{label:"名称",prop:"name"},{default:(0,a.w5)((()=>[(0,a.Wm)(p,{clearable:"",modelValue:(0,n.SU)(V),"onUpdate:modelValue":l[0]||(l[0]=e=>(0,n.dq)(V)?V.value=e:null),placeholder:"名称"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(x,null,{default:(0,a.w5)((()=>[(0,a.Wm)(q,{type:"primary",onClick:l[1]||(l[1]=e=>(0,n.SU)(d.MI)(W,E))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(q,{onClick:l[2]||(l[2]=e=>(0,n.SU)(d.Fx)(s.value,W,E))},{default:(0,a.w5)((()=>l[6]||(l[6]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(B,{table:{data:S.value,rowKey:"code",defaultExpandAll:!1},pagination:{hideOnSinglePage:!0,onSizeChange:e=>(0,n.SU)(d.EL)(e,W,E),onCurrentChange:e=>(0,n.SU)(d.jx)(e,W,E),currentPage:(0,n.SU)(P),pageSize:(0,n.SU)(I),total:(0,n.SU)(D)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(q,{size:"small",type:"primary",onClick:l[3]||(l[3]=t=>j(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[L,["add"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(q,{size:"small",type:"primary",onClick:l[4]||(l[4]=t=>(()=>{let e=z(),t=[],l=e.map((e=>{let l=e.url.substring(0,e.url.lastIndexOf("/"));return t.push({code:l,url:"",name:e.parentMenu?e.parentMenu.name:l,type:"0",icon:e.icon,sort:"1",iframe:"0",parentCode:"-1",desc:"",isDeleted:!1,module:c.moduleName}),{code:e.url.replace("/","_"),url:e.url,name:e.name,type:"1",icon:e.icon,sort:"1",iframe:"0",parentCode:l,desc:e.description,isDeleted:!1,module:c.moduleName}})),a=[];e.forEach((e=>{e.url.substring(0,e.url.lastIndexOf("/"));let t=e.buttons;null!=t&&Object.keys(t).filter((e=>null!=t[e].name)).forEach((l=>{a.push({code:e.url.replace("/","_")+"_"+l,url:"",name:t[l].name,type:"2",icon:"",sort:"1",iframe:"1",parentCode:e.url.replace("/","_"),desc:e.description+"-"+t[l].name,isDeleted:!1,menu:l,module:c.moduleName})}))}));let n=l.concat(t,a);VE_API.system.menuUpsert(n).then((e=>{e&&0===e.code&&E(),console.log(e)}))})(e.buttons.restore.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.restore.name),1)])),_:1})),[[L,["restore"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(N,{prop:"name",label:"名称"}),(0,a.Wm)(N,{prop:"icon",label:"图标"},{default:(0,a.w5)((({row:e})=>[2!==e.type?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[(0,a.Wm)(M,{style:{"margin-right":"6px","vertical-align":"middle"}},{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)((0,a.LL)(e.icon)))])),_:2},1024),(0,a._)("span",f,(0,o.zw)(e.icon),1)],64)):((0,a.wg)(),(0,a.iD)("span",v,"/"))])),_:1}),(0,a.Wm)(N,{prop:"type",label:"类型"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(A,{type:0===e.type?"":1===e.type?"success":"warning"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(0===e.type?"目录":1===e.type?"菜单":"按钮"),1)])),_:2},1032,["type"])])),_:1}),(0,a.Wm)(N,{prop:"sort",label:"排序"},{default:(0,a.w5)((({row:e})=>[2!==e.type?((0,a.wg)(),(0,a.iD)("span",w,(0,o.zw)(e.sort),1)):((0,a.wg)(),(0,a.iD)("span",y,"/"))])),_:1}),(0,a.Wm)(N,{prop:"iframe",label:"Iframe"},{default:(0,a.w5)((({row:e})=>[1===e.type?((0,a.wg)(),(0,a.j4)(A,{key:0,type:0===e.iframe?"danger":"",effect:"dark"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(0==e.iframe?"否":"是"),1)])),_:2},1032,["type"])):((0,a.wg)(),(0,a.iD)("span",g,"/"))])),_:1}),(0,a.Wm)(N,{prop:"url",label:"URL/标识","show-overflow-tooltip":""},{default:(0,a.w5)((({row:e})=>[1===e.type?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[(0,n.SU)(u)(e.url)?((0,a.wg)(),(0,a.j4)(H,{key:0,type:"primary",href:e.url,target:"_blank"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.url),1)])),_:2},1032,["href"])):((0,a.wg)(),(0,a.iD)("span",b,(0,o.zw)(e.url),1))],64)):2===e.type?((0,a.wg)(),(0,a.iD)("span",h,(0,o.zw)(e.menu),1)):((0,a.wg)(),(0,a.iD)("span",_,"/"))])),_:1}),(0,a.Wm)(N,{fixed:"right",label:"操作",width:"240"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(q,{onClick:(0,r.iM)((t=>j(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[L,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(q,{onClick:(0,r.iM)((e=>{return a=l.id,void t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:e}=await VE_API.system.menuDel({id:a});0===e&&E()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}));var a}),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[L,["del"]]]),0===l.type?(0,a.wy)(((0,a.wg)(),(0,a.j4)(q,{key:0,onClick:(0,r.iM)((t=>j(e.buttons.addChild.name,l)),["prevent"]),type:"warning",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.addChild.name),1)])),_:2},1032,["onClick"])),[[L,["addChild"]]]):(0,a.kq)("",!0),1===l.type&&0===l.iframe?(0,a.wy)(((0,a.wg)(),(0,a.j4)(q,{key:1,onClick:(0,r.iM)((t=>j(e.buttons.addBtn.name,l)),["prevent"]),type:"success",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.addBtn.name),1)])),_:2},1032,["onClick"])),[[L,["addBtn"]]]):(0,a.kq)("",!0)])),_:1})])),_:1},8,["table","pagination"]),U.value?((0,a.wg)(),(0,a.j4)(i.default,{key:0,menuList:S.value,rowData:C.value,title:k.value,showDialog:U.value,onCloseDialog:l[5]||(l[5]=e=>{return t=e,U.value=t,void E();var t})},null,8,["menuList","rowData","title","showDialog"])):(0,a.kq)("",!0)])}}});var C=U},57742:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return c}});var a=l(67759),n=l(76364),o=l(38874),r=l(49686),u=l(25541),i=l(64779);const d={class:"ve_container"},s={data:()=>({description:"请求日志管理",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},member:{name:"查看成员",toPath:!0}},type:"1",icon:"Brush",name:"请求日志管理",parentMenu:u.Z,module:i.moduleName})};var c=Object.assign(s,{__name:"RequestLog",setup(e){const t=(0,n.iH)(null),l=(0,n.iH)([]),u=(0,n.qj)({name:"",size:10,current:1,total:0}),{name:i,size:s,current:c,total:p}=(0,n.BK)(u),m=async()=>{const{code:e,data:t}=await VE_API.system.requestLogFindPage(u);if(0===e){const{size:e,current:a,total:n,records:o}=t;u.size=e,u.current=a,u.total=n,l.value=o}};return(0,a.bv)((async()=>{await m()})),(e,f)=>{const v=(0,a.up)("el-input"),w=(0,a.up)("el-form-item"),y=(0,a.up)("el-button"),g=(0,a.up)("el-form"),b=(0,a.up)("el-table-column"),h=(0,a.up)("ve-table");return(0,a.wg)(),(0,a.iD)("div",d,[(0,a.Wm)(g,{ref_key:"queryForm",ref:t,inline:!0,model:u},{default:(0,a.w5)((()=>[(0,a.Wm)(w,{label:"名称",prop:"name"},{default:(0,a.w5)((()=>[(0,a.Wm)(v,{clearable:"",modelValue:(0,n.SU)(i),"onUpdate:modelValue":f[0]||(f[0]=e=>(0,n.dq)(i)?i.value=e:null),placeholder:"请输入"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(w,null,{default:(0,a.w5)((()=>[(0,a.Wm)(y,{type:"primary",onClick:f[1]||(f[1]=e=>(0,n.SU)(r.MI)(u,m))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(y,{onClick:f[2]||(f[2]=e=>(0,n.SU)(r.Fx)(t.value,u,m))},{default:(0,a.w5)((()=>f[3]||(f[3]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(h,{table:{data:l.value},pagination:{onSizeChange:e=>(0,n.SU)(r.EL)(e,u,m),onCurrentChange:e=>(0,n.SU)(r.jx)(e,u,m),currentPage:(0,n.SU)(c),pageSize:(0,n.SU)(s),total:(0,n.SU)(p)}},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{prop:"requestId",label:"请求ID"}),(0,a.Wm)(b,{prop:"ip",label:"请求IP"}),(0,a.Wm)(b,{prop:"requestMethod",label:"请求方法"}),(0,a.Wm)(b,{prop:"requestUrl",label:"请求url"}),(0,a.Wm)(b,{prop:"userId",label:"用户ID"}),(0,a.Wm)(b,{prop:"success",label:"请求是否成功"}),(0,a.Wm)(b,{prop:"os",label:"操作系统"}),(0,a.Wm)(b,{prop:"userAgent",label:"USER_AGENT","show-overflow-tooltip":""}),(0,a.Wm)(b,{prop:"createTime",label:"操作时间"})])),_:1},8,["table","pagination"])])}}})},41594:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return D}});var a=l(67759),n=l(76364),o=l(38874),r=l(49686);function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}var i=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/,d={name:"JsonString",props:{jsonValue:{type:String,required:!0}},data:function(){return{expand:!0,canExtend:!1}},mounted:function(){this.$refs.itemRef.offsetHeight>this.$refs.holderRef.offsetHeight&&(this.canExtend=!0)},methods:{toggle:function(){this.expand=!this.expand}},render:function(){var e,t=this.jsonValue,l=i.test(t);return this.expand?(e={class:{"jv-item":!0,"jv-string":!0},ref:"itemRef"},l?(t='').concat(t,""),e.innerHTML='"'.concat(t.toString(),'"')):e.innerText='"'.concat(t.toString(),'"')):e={class:{"jv-ellipsis":!0},onClick:this.toggle,innerText:"..."},(0,a.h)("span",{},[this.canExtend&&(0,a.h)("span",{class:{"jv-toggle":!0,open:this.expand},onClick:this.toggle}),(0,a.h)("span",{class:{"jv-holder-node":!0},ref:"holderRef"}),(0,a.h)("span",e)])},__file:"src/Components/types/json-string.vue"},s={name:"JsonUndefined",functional:!0,props:{jsonValue:{type:Object,default:null}},render:function(){return(0,a.h)("span",{class:{"jv-item":!0,"jv-undefined":!0},innerText:null===this.jsonValue?"null":"undefined"})},__file:"src/Components/types/json-undefined.vue"},c={name:"JsonNumber",functional:!0,props:{jsonValue:{type:Number,required:!0}},render:function(){var e=Number.isInteger(this.jsonValue);return(0,a.h)("span",{class:{"jv-item":!0,"jv-number":!0,"jv-number-integer":e,"jv-number-float":!e},innerText:this.jsonValue.toString()})},__file:"src/Components/types/json-number.vue"},p={name:"JsonBoolean",functional:!0,props:{jsonValue:Boolean},render:function(){return(0,a.h)("span",{class:{"jv-item":!0,"jv-boolean":!0},innerText:this.jsonValue.toString()})},__file:"src/Components/types/json-boolean.vue"},m={name:"JsonObject",props:{jsonValue:{type:Object,required:!0},keyName:{type:String,default:""},depth:{type:Number,default:0},expand:Boolean,sort:Boolean,previewMode:Boolean},data:function(){return{value:{}}},computed:{ordered:function(){var e=this;if(!this.sort)return this.value;var t={};return Object.keys(this.value).sort().forEach((function(l){t[l]=e.value[l]})),t}},watch:{jsonValue:function(e){this.setValue(e)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(e){var t=this;setTimeout((function(){t.value=e}),0)},toggle:function(){this.$emit("update:expand",!this.expand),this.dispatchEvent()},dispatchEvent:function(){try{this.$el.dispatchEvent(new Event("resized"))}catch(t){var e=document.createEvent("Event");e.initEvent("resized",!0,!1),this.$el.dispatchEvent(e)}}},render:function(){var e=[];if(this.previewMode||this.keyName||e.push((0,a.h)("span",{class:{"jv-toggle":!0,open:!!this.expand},onClick:this.toggle})),e.push((0,a.h)("span",{class:{"jv-item":!0,"jv-object":!0},innerText:"{"})),this.expand)for(var t in this.ordered)if(this.ordered.hasOwnProperty(t)){var l=this.ordered[t];e.push((0,a.h)(b,{key:t,style:{display:this.expand?void 0:"none"},sort:this.sort,keyName:t,depth:this.depth+1,value:l,previewMode:this.previewMode}))}return!this.expand&&Object.keys(this.value).length&&e.push((0,a.h)("span",{style:{display:this.expand?"none":void 0},class:{"jv-ellipsis":!0},onClick:this.toggle,title:"click to reveal object content (keys: ".concat(Object.keys(this.ordered).join(", "),")"),innerText:"..."})),e.push((0,a.h)("span",{class:{"jv-item":!0,"jv-object":!0},innerText:"}"})),(0,a.h)("span",e)},__file:"src/Components/types/json-object.vue"},f={name:"JsonArray",props:{jsonValue:{type:Array,required:!0},keyName:{type:String,default:""},depth:{type:Number,default:0},sort:Boolean,expand:Boolean,previewMode:Boolean},data:function(){return{value:[]}},watch:{jsonValue:function(e){this.setValue(e)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(e){var t=this,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;0===l&&(this.value=[]),setTimeout((function(){e.length>l&&(t.value.push(e[l]),t.setValue(e,l+1))}),0)},toggle:function(){this.$emit("update:expand",!this.expand);try{this.$el.dispatchEvent(new Event("resized"))}catch(t){var e=document.createEvent("Event");e.initEvent("resized",!0,!1),this.$el.dispatchEvent(e)}}},render:function(){var e=this,t=[];return this.previewMode||this.keyName||t.push((0,a.h)("span",{class:{"jv-toggle":!0,open:!!this.expand},onClick:this.toggle})),t.push((0,a.h)("span",{class:{"jv-item":!0,"jv-array":!0},innerText:"["})),this.expand&&this.value.forEach((function(l,n){t.push((0,a.h)(b,{key:n,style:{display:e.expand?void 0:"none"},sort:e.sort,depth:e.depth+1,value:l,previewMode:e.previewMode}))})),!this.expand&&this.value.length&&t.push((0,a.h)("span",{style:{display:void 0},class:{"jv-ellipsis":!0},onClick:this.toggle,title:"click to reveal ".concat(this.value.length," hidden items"),innerText:"..."})),t.push((0,a.h)("span",{class:{"jv-item":!0,"jv-array":!0},innerText:"]"})),(0,a.h)("span",t)},__file:"src/Components/types/json-array.vue"},v={name:"JsonFunction",functional:!0,props:{jsonValue:{type:Function,required:!0}},render:function(){return(0,a.h)("span",{class:{"jv-item":!0,"jv-function":!0},attrs:{title:this.jsonValue.toString()},innerHTML:"<function>"})},__file:"src/Components/types/json-function.vue"},w={name:"JsonDate",inject:["timeformat"],functional:!0,props:{jsonValue:{type:Date,required:!0}},render:function(){var e=this.jsonValue,t=this.timeformat;return(0,a.h)("span",{class:{"jv-item":!0,"jv-string":!0},innerText:'"'.concat(t(e),'"')})},__file:"src/Components/types/json-date.vue"},y=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/,g={name:"JsonString",props:{jsonValue:{type:RegExp,required:!0}},data:function(){return{expand:!0,canExtend:!1}},mounted:function(){this.$refs.itemRef.offsetHeight>this.$refs.holderRef.offsetHeight&&(this.canExtend=!0)},methods:{toggle:function(){this.expand=!this.expand}},render:function(){var e,t=this.jsonValue,l=y.test(t);return this.expand?(e={class:{"jv-item":!0,"jv-string":!0},ref:"itemRef"},l?(t='').concat(t,""),e.innerHTML="".concat(t.toString())):e.innerText="".concat(t.toString())):e={class:{"jv-ellipsis":!0},onClick:this.toggle,innerText:"..."},(0,a.h)("span",{},[this.canExtend&&(0,a.h)("span",{class:{"jv-toggle":!0,open:this.expand},onClick:this.toggle}),(0,a.h)("span",{class:{"jv-holder-node":!0},ref:"holderRef"}),(0,a.h)("span",e)])},__file:"src/Components/types/json-regexp.vue"},b={name:"JsonBox",inject:["expandDepth","keyClick"],props:{value:{type:[Object,Array,String,Number,Boolean,Function,Date],default:null},keyName:{type:String,default:""},sort:Boolean,depth:{type:Number,default:0},previewMode:Boolean},data:function(){return{expand:!0}},mounted:function(){this.expand=this.previewMode||!(this.depth>=this.expandDepth)},methods:{toggle:function(){this.expand=!this.expand;try{this.$el.dispatchEvent(new Event("resized"))}catch(t){var e=document.createEvent("Event");e.initEvent("resized",!0,!1),this.$el.dispatchEvent(e)}}},render:function(){var e,t=this,l=[];null===this.value||void 0===this.value?e=s:Array.isArray(this.value)?e=f:"[object Date]"===Object.prototype.toString.call(this.value)?e=w:this.value.constructor===RegExp?e=g:"object"===u(this.value)?e=m:"number"==typeof this.value?e=c:"string"==typeof this.value?e=d:"boolean"==typeof this.value?e=p:"function"==typeof this.value&&(e=v);var n=this.keyName&&this.value&&(Array.isArray(this.value)||"object"===u(this.value)&&"[object Date]"!==Object.prototype.toString.call(this.value));return!this.previewMode&&n&&l.push((0,a.h)("span",{class:{"jv-toggle":!0,open:!!this.expand},onClick:this.toggle})),this.keyName&&l.push((0,a.h)("span",{class:{"jv-key":!0},onClick:function(){t.keyClick(t.keyName)},innerText:"".concat(this.keyName,":")})),l.push((0,a.h)(e,{class:{"jv-push":!0},jsonValue:this.value,keyName:this.keyName,sort:this.sort,depth:this.depth,expand:this.expand,previewMode:this.previewMode,"onUpdate:expand":function(e){t.expand=e}})),(0,a.h)("div",{class:{"jv-node":!0,"jv-key-node":Boolean(this.keyName)&&!n,toggle:!this.previewMode&&n}},l)},__file:"src/Components/json-box.vue"};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==l.g?l.g:"undefined"!=typeof self&&self;var h,_={exports:{}};h=function(){return function(){var e={686:function(e,t,l){l.d(t,{default:function(){return _}});var a=l(279),n=l.n(a),o=l(370),r=l.n(o),u=l(817),i=l.n(u);function d(e){try{return document.execCommand(e)}catch(e){return!1}}var s=function(e){var t=i()(e);return d("cut"),t},c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body},l="";if("string"==typeof e){var a=function(e){var t="rtl"===document.documentElement.getAttribute("dir"),l=document.createElement("textarea");l.style.fontSize="12pt",l.style.border="0",l.style.padding="0",l.style.margin="0",l.style.position="absolute",l.style[t?"right":"left"]="-9999px";var a=window.pageYOffset||document.documentElement.scrollTop;return l.style.top="".concat(a,"px"),l.setAttribute("readonly",""),l.value=e,l}(e);t.container.appendChild(a),l=i()(a),d("copy"),a.remove()}else l=i()(e),d("copy");return l};function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}var m=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.action,l=void 0===t?"copy":t,a=e.container,n=e.target,o=e.text;if("copy"!==l&&"cut"!==l)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==n){if(!n||"object"!==p(n)||1!==n.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===l&&n.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===l&&(n.hasAttribute("readonly")||n.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return o?c(o,{container:a}):n?"cut"===l?s(n):c(n,{container:a}):void 0};function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function v(e,t){for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===f(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=r()(e,"click",(function(e){return t.onClick(e)}))}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget,l=this.action(t)||"copy",a=m({action:l,container:this.container,target:this.target(t),text:this.text(t)});this.emit(a?"success":"error",{action:l,text:a,trigger:t,clearSelection:function(){t&&t.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(e){return b("action",e)}},{key:"defaultTarget",value:function(e){var t=b("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return b("text",e)}},{key:"destroy",value:function(){this.listener.destroy()}}],a=[{key:"copy",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body};return c(e,t)}},{key:"cut",value:function(e){return s(e)}},{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,l=!!document.queryCommandSupported;return t.forEach((function(e){l=l&&!!document.queryCommandSupported(e)})),l}}],l&&v(t.prototype,l),a&&v(t,a),o}(n()),_=h},828:function(e){if("undefined"!=typeof Element&&!Element.prototype.matches){var t=Element.prototype;t.matches=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector}e.exports=function(e,t){for(;e&&9!==e.nodeType;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}},438:function(e,t,l){var a=l(828);function n(e,t,l,a,n){var r=o.apply(this,arguments);return e.addEventListener(l,r,n),{destroy:function(){e.removeEventListener(l,r,n)}}}function o(e,t,l,n){return function(l){l.delegateTarget=a(l.target,t),l.delegateTarget&&n.call(e,l)}}e.exports=function(e,t,l,a,o){return"function"==typeof e.addEventListener?n.apply(null,arguments):"function"==typeof l?n.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,(function(e){return n(e,t,l,a,o)})))}},879:function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var l=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===l||"[object HTMLCollection]"===l)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},370:function(e,t,l){var a=l(879),n=l(438);e.exports=function(e,t,l){if(!e&&!t&&!l)throw new Error("Missing required arguments");if(!a.string(t))throw new TypeError("Second argument must be a String");if(!a.fn(l))throw new TypeError("Third argument must be a Function");if(a.node(e))return function(e,t,l){return e.addEventListener(t,l),{destroy:function(){e.removeEventListener(t,l)}}}(e,t,l);if(a.nodeList(e))return function(e,t,l){return Array.prototype.forEach.call(e,(function(e){e.addEventListener(t,l)})),{destroy:function(){Array.prototype.forEach.call(e,(function(e){e.removeEventListener(t,l)}))}}}(e,t,l);if(a.string(e))return function(e,t,l){return n(document.body,e,t,l)}(e,t,l);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(e){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var l=e.hasAttribute("readonly");l||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),l||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var a=window.getSelection(),n=document.createRange();n.selectNodeContents(e),a.removeAllRanges(),a.addRange(n),t=a.toString()}return t}},279:function(e){function t(){}t.prototype={on:function(e,t,l){var a=this.e||(this.e={});return(a[e]||(a[e]=[])).push({fn:t,ctx:l}),this},once:function(e,t,l){var a=this;function n(){a.off(e,n),t.apply(l,arguments)}return n._=t,this.on(e,n,l)},emit:function(e){for(var t=[].slice.call(arguments,1),l=((this.e||(this.e={}))[e]||[]).slice(),a=0,n=l.length;a=250?e.expandableCode=!0:e.expandableCode=!1)}))},keyClick:function(e){this.$emit("onKeyClick",e)},onCopied:function(e){var t=this;this.copied||(this.copied=!0,setTimeout((function(){t.copied=!1}),this.copyText.timeout),this.$emit("copied",e))},toggleExpandCode:function(){this.expandCode=!this.expandCode}}};C.render=function(e,t,l,n,r,u){var i=(0,a.up)("json-box");return(0,a.wg)(),(0,a.iD)("div",{class:(0,o.C_)(u.jvClass)},[l.copyable?((0,a.wg)(),(0,a.iD)("div",{key:0,class:(0,o.C_)("jv-tooltip ".concat(u.copyText.align||"right"))},[(0,a._)("span",{ref:"clip",class:(0,o.C_)(["jv-button",{copied:r.copied}])},[(0,a.WI)(e.$slots,"copy",{copied:r.copied},(function(){return[(0,a.Uk)((0,o.zw)(r.copied?u.copyText.copiedText:u.copyText.copyText),1)]}))],2)],2)):(0,a.kq)("v-if",!0),(0,a._)("div",{class:(0,o.C_)(["jv-code",{open:r.expandCode,boxed:l.boxed}])},[(0,a.Wm)(i,{ref:"jsonBox",value:l.value,sort:l.sort,"preview-mode":l.previewMode},null,8,["value","sort","preview-mode"])],2),r.expandableCode&&l.boxed?((0,a.wg)(),(0,a.iD)("div",{key:1,class:"jv-more",onClick:t[0]||(t[0]=function(){return u.toggleExpandCode&&u.toggleExpandCode.apply(u,arguments)})},[(0,a._)("span",{class:(0,o.C_)(["jv-toggle",{open:!!r.expandCode}])},null,2)])):(0,a.kq)("v-if",!0)],2)},C.__file="src/Components/json-viewer.vue";var S={install:function(e){e.component(C.name,C)}},W=l(25541),V=l(64779);const I={class:"ve_container"},P={data:()=>({description:"翻译",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},dictionaryData:{name:"查看翻译详细数据",toPath:!0}},type:"1",icon:"Microphone",name:"文本翻译管理",parentMenu:W.Z,module:V.moduleName})};var D=Object.assign(P,{__name:"Translate",setup(e){const t=(0,n.qj)({word:"输入的翻译字段"}),l=(0,n.iH)(null),u=(0,n.qj)(l),i=async()=>{const{code:e,data:a}=await VE_API.system.translate(t);0===e&&(console.log(a),l.value=a)};return(0,a.bv)((async()=>{})),(e,d)=>{const s=(0,a.up)("el-button"),c=(0,a.up)("el-form-item"),p=(0,a.up)("el-input"),m=(0,a.up)("el-form");return(0,a.wg)(),(0,a.iD)("div",I,[(0,a.Wm)(m,{ref:"queryForm",inline:!0,model:t},{default:(0,a.w5)((()=>[(0,a.Wm)(c,null,{default:(0,a.w5)((()=>[(0,a.Wm)(s,{type:"primary",onClick:d[0]||(d[0]=e=>(0,n.SU)(r.MI)(t,i))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1})])),_:1}),(0,a.Wm)(c,{label:"名称",prop:"word"},{default:(0,a.w5)((()=>[(0,a.Wm)(p,{clearable:"",modelValue:t.word,"onUpdate:modelValue":d[1]||(d[1]=e=>t.word=e),placeholder:"请输入"},null,8,["modelValue"])])),_:1})])),_:1},8,["model"]),(0,a._)("div",null,(0,o.zw)(l.value),1),(0,a._)("div",null,[(0,a.Wm)((0,n.SU)(S),{value:u,copyable:"",boxed:"",sort:""},null,8,["value"])]),(0,a._)("template",null,[(0,a.Wm)((0,n.SU)(S),{value:u,copyable:"",boxed:"",sort:""},null,8,["value"])])])}}})},94544:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"DictionaryDataEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l=e,o=t,{title:r,rowData:u}=(0,n.BK)(l),i=()=>{o("closeDialog",!1)},d=(0,n.qj)({code:"",name:"",description:"",dictionaryCode:"",type:1}),{code:s,name:c,description:p,dictionaryCode:m,type:f}=(0,n.BK)(d),v=(0,n.iH)(null),w={name:[{required:!0,message:"请输入字典项名称",trigger:"blur"}],code:[{required:!0,message:"请输入字典项编码",trigger:"blur"}]};u.value&&(c.value=u.value.name,s.value=u.value.code,p.value=u.value.description,m.value=u.value.dictionaryCode,f.value=u.value.type);return(0,a.bv)((async()=>{})),(t,l)=>{const o=(0,a.up)("el-input"),y=(0,a.up)("el-form-item"),g=(0,a.up)("el-radio-button"),b=(0,a.up)("el-radio-group"),h=(0,a.up)("el-form"),_=(0,a.up)("el-button"),k=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(k,{title:(0,n.SU)(r),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:l[7]||(l[7]=e=>i())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(_,{onClick:l[5]||(l[5]=e=>i())},{default:(0,a.w5)((()=>l[10]||(l[10]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(_,{type:"primary",onClick:l[6]||(l[6]=e=>{v.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===r.value?await VE_API.system.dictionaryDataAdd(d):await VE_API.system.dictionaryDataEdit({id:u.value.id,...d});const{code:t}=e;"00"==t&&i()}}))})},{default:(0,a.w5)((()=>l[11]||(l[11]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(h,{model:d,ref_key:"formRef",ref:v,rules:w,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(y,{label:"字典项名称",prop:"name"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(c),"onUpdate:modelValue":l[0]||(l[0]=e=>(0,n.dq)(c)?c.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"字典项编码",prop:"code"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(s),"onUpdate:modelValue":l[1]||(l[1]=e=>(0,n.dq)(s)?s.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"字典项描述",prop:"description"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(p),"onUpdate:modelValue":l[2]||(l[2]=e=>(0,n.dq)(p)?p.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"字典编码",prop:"dictionaryCode"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":l[3]||(l[3]=e=>(0,n.dq)(m)?m.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"字典类型",prop:"status"},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{modelValue:(0,n.SU)(f),"onUpdate:modelValue":l[4]||(l[4]=e=>(0,n.dq)(f)?f.value=e:null)},{default:(0,a.w5)((()=>[(0,a.Wm)(g,{label:1},{default:(0,a.w5)((()=>l[8]||(l[8]=[(0,a.Uk)("树状")]))),_:1}),(0,a.Wm)(g,{label:0},{default:(0,a.w5)((()=>l[9]||(l[9]=[(0,a.Uk)("列表")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},35757:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return o}});var a=l(67759),n=l(76364);var o={__name:"DictionaryEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l=e,o=t,{title:r,rowData:u}=(0,n.BK)(l),i=()=>{o("closeDialog",!1)},d=(0,n.qj)({code:"",name:"",type:1}),{code:s,name:c,type:p}=(0,n.BK)(d),m=(0,n.iH)(null),f={name:[{required:!0,message:"请输入字典名称",trigger:"blur"}],code:[{required:!0,message:"请输入字典编码",trigger:"blur"}]};u.value&&(c.value=u.value.name,s.value=u.value.code,p.value=u.value.type);return(0,a.bv)((async()=>{})),(t,l)=>{const o=(0,a.up)("el-input"),v=(0,a.up)("el-form-item"),w=(0,a.up)("el-radio-button"),y=(0,a.up)("el-radio-group"),g=(0,a.up)("el-form"),b=(0,a.up)("el-button"),h=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(h,{title:(0,n.SU)(r),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:l[5]||(l[5]=e=>i())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(b,{onClick:l[3]||(l[3]=e=>i())},{default:(0,a.w5)((()=>l[8]||(l[8]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(b,{type:"primary",onClick:l[4]||(l[4]=e=>{m.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===r.value?await VE_API.system.dictionaryAdd(d):await VE_API.system.dictionaryEdit({id:u.value.id,...d});const{code:t}=e;"00"==t&&i()}}))})},{default:(0,a.w5)((()=>l[9]||(l[9]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(g,{model:d,ref_key:"formRef",ref:m,rules:f,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(v,{label:"字典名称",prop:"name"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(c),"onUpdate:modelValue":l[0]||(l[0]=e=>(0,n.dq)(c)?c.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(v,{label:"字典编码",prop:"code"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(s),"onUpdate:modelValue":l[1]||(l[1]=e=>(0,n.dq)(s)?s.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(v,{label:"字典类型",prop:"status"},{default:(0,a.w5)((()=>[(0,a.Wm)(y,{modelValue:(0,n.SU)(p),"onUpdate:modelValue":l[2]||(l[2]=e=>(0,n.dq)(p)?p.value=e:null)},{default:(0,a.w5)((()=>[(0,a.Wm)(w,{label:1},{default:(0,a.w5)((()=>l[6]||(l[6]=[(0,a.Uk)("树状")]))),_:1}),(0,a.Wm)(w,{label:0},{default:(0,a.w5)((()=>l[7]||(l[7]=[(0,a.Uk)("列表")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},27523:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return m}});var a=l(67759),n=l(76364),o=l(12257),r=l(38874),u=l(85071),i=l(41728);const d={style:{margin:"0"}},s={class:"ve_select_option_slot"},c={key:1,style:{color:"red"}};var p={__name:"MenuEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null},menuList:{type:Array,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const p=e,m=t,{title:f,rowData:v,menuList:w}=(0,n.BK)(p),y=()=>{m("closeDialog",!1)},g=(0,n.iH)([]),b=(0,n.iH)(null),h=(()=>{const e=l(30056);return e.keys().map((t=>({url:t.replace(/^(\.\/)|(\.vue)/g,""),description:e(t).default.data&&(e(t).default.data().description||"无"),buttons:e(t).default.data&&(e(t).default.data().buttons||[])}))).filter((e=>!e.url.includes("/components/")))})(),_=(0,n.qj)({name:"",type:0,parentCode:-1,menu:"",url:"",icon:"Menu",iframe:1,sort:1,toPath:"",code:"",id:""}),{name:k,type:U,parentCode:C,menu:S,url:W,icon:V,iframe:I,sort:P,toPath:D,code:z}=(0,n.BK)(_),x=(0,a.Fl)((()=>({parentCode:[{required:2===U.value,message:"请选择父级菜单",trigger:"change"}],name:[{required:2!==U.value,message:"请输入菜单名称",trigger:"blur"}],code:[{required:2!==U.value,message:"请输入菜单编码",trigger:"blur"}],menu:[{required:2===U.value,message:"请选择按钮",trigger:"change"}],icon:[{required:2!==U.value,message:"请选择图标",trigger:"change"}],url:[{required:1===U.value,pattern:/^(https?:\/\/)?(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i,message:"url不正确",trigger:"change"}]}))),j=(0,a.Fl)((()=>[{required:N.value,message:"请选择目标菜单",trigger:"change"},{validator:(e,t,l)=>{t===C.value?l(new Error("不可以选择当前父级菜单")):l()},trigger:"change"}]));v.value&&(k.value=v.value.name,U.value=v.value.type,C.value=v.value.parentCode,W.value=v.value.url,S.value=v.value.menu,V.value=v.value.icon,I.value=v.value.iframe,D.value=v.value.toPath,P.value=v.value.sort,z.value=v.value.code);const E=e=>{b.value.resetFields(),2===e&&(V.value="")},q=e=>{!0===e&&g.value.length<1&&(g.value=(0,u.ci)())},T=()=>{2===U.value&&(k.value="",S.value="",(0,a.Y3)((()=>{b.value.clearValidate("menu")})))},N=(0,a.Fl)((()=>!(!A.value||!S.value)&&A.value[S.value].toPath)),M=(0,a.Fl)((()=>e=>{let t=!0;switch(f.value){case"编辑":e===U.value&&(t=!1);break;case"添加子级":0!==e&&1!==e||(t=!1);break;case"添加按钮":2===e&&(t=!1);break;default:t=!1}return t})),A=(0,a.Fl)((()=>{let e=i.findTree(w.value,(e=>e.code===C.value));return!(!e||!h.find((t=>t.url===e.item.url)))&&h.find((t=>t.url===e.item.url)).buttons})),H=(0,a.Fl)((()=>e=>{let t=i.findTree(w.value,(e=>e.code===C.value));if(t)return(!v.value||e!==v.value.menu)&&(t.item.children&&t.item.children.find((t=>t.menu===e))&&!0)})),B=()=>{"添加按钮"!==f.value&&"添加子级"!==f.value||(k.value="",S.value="",W.value="",V.value="Menu",I.value=1,P.value=1,D.value="",z.value="",C.value=(0,u.XN)(w.value,(e=>e.code===v.value.code),"code").slice(-1)[0],"添加按钮"===f.value&&(U.value=2,V.value=""))};(0,a.bv)((()=>{B()}));return(t,l)=>{const u=(0,a.up)("el-form-item"),i=(0,a.up)("el-radio-button"),p=(0,a.up)("el-radio-group"),m=(0,a.up)("el-cascader"),B=(0,a.up)("el-input-number"),L=(0,a.up)("el-input"),R=(0,a.up)("el-icon"),F=(0,a.up)("el-option"),O=(0,a.up)("el-select"),K=(0,a.up)("el-radio"),$=(0,a.up)("el-form"),Z=(0,a.up)("el-button"),Y=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(Y,{title:(0,n.SU)(f),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:l[15]||(l[15]=e=>y())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(Z,{onClick:l[13]||(l[13]=e=>y())},{default:(0,a.w5)((()=>l[21]||(l[21]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(Z,{type:"primary",onClick:l[14]||(l[14]=e=>{b.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;f.value.includes("添加")?e=await VE_API.system.menuAdd(_):(_.id=v.value.id,e=await VE_API.system.menuEdit({code:v.value.code,id:v.value.id,..._}));const{code:t}=e;0===t&&y()}}))})},{default:(0,a.w5)((()=>l[22]||(l[22]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)($,{ref_key:"formRef",ref:b,model:_,"label-width":"80px",rules:x.value,inline:!1,style:{width:"80%"}},{default:(0,a.w5)((()=>[(0,a.wy)((0,a.Wm)(u,{label:"id",prop:"id",class:"menu_edit_item"},null,512),[[o.F8,!1]]),(0,a.Wm)(u,{label:"类型",class:"menu_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(p,{modelValue:(0,n.SU)(U),"onUpdate:modelValue":l[0]||(l[0]=e=>(0,n.dq)(U)?U.value=e:null),onChange:E},{default:(0,a.w5)((()=>[(0,a.Wm)(i,{disabled:M.value(0),label:0},{default:(0,a.w5)((()=>l[16]||(l[16]=[(0,a.Uk)(" 目录 ")]))),_:1},8,["disabled"]),(0,a.Wm)(i,{disabled:M.value(1),label:1},{default:(0,a.w5)((()=>l[17]||(l[17]=[(0,a.Uk)(" 菜单 ")]))),_:1},8,["disabled"]),(0,a.Wm)(i,{disabled:M.value(2),label:2},{default:(0,a.w5)((()=>l[18]||(l[18]=[(0,a.Uk)(" 按钮 ")]))),_:1},8,["disabled"])])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(u,{label:"父级",prop:"parentCode",class:"menu_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(m,{style:{width:"100%"},options:(0,n.SU)(w),modelValue:(0,n.SU)(C),"onUpdate:modelValue":l[1]||(l[1]=e=>(0,n.dq)(C)?C.value=e:null),clearable:"",filterable:"",props:{expandTrigger:"hover",emitPath:!1,checkStrictly:!0,value:"code",label:"name",disabled:2===(0,n.SU)(U)?"iframe":"type"},onChange:T,disabled:"添加"!==(0,n.SU)(f)},null,8,["options","modelValue","props","disabled"])])),_:1}),(0,a.wy)((0,a.Wm)(u,{label:"排序",class:"menu_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(B,{modelValue:(0,n.SU)(P),"onUpdate:modelValue":l[2]||(l[2]=e=>(0,n.dq)(P)?P.value=e:null),min:0,"step-strictly":"",step:1},null,8,["modelValue"])])),_:1},512),[[o.F8,2!==(0,n.SU)(U)]]),(0,a.wy)((0,a.Wm)(u,{label:"名称",prop:"name",class:"menu_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(L,{modelValue:(0,n.SU)(k),"onUpdate:modelValue":l[3]||(l[3]=e=>(0,n.dq)(k)?k.value=e:null)},null,8,["modelValue"])])),_:1},512),[[o.F8,2!==(0,n.SU)(U)]]),(0,a.Wm)(u,{label:"编码",prop:"code",class:"menu_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(L,{modelValue:(0,n.SU)(z),"onUpdate:modelValue":l[4]||(l[4]=e=>(0,n.dq)(z)?z.value=e:null)},null,8,["modelValue"])])),_:1}),(0,a.wy)((0,a.Wm)(u,{label:"图标",prop:"icon",class:"menu_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(O,{style:{width:"100%"},modelValue:(0,n.SU)(V),"onUpdate:modelValue":l[5]||(l[5]=e=>(0,n.dq)(V)?V.value=e:null),placeholder:"",clearable:"",filterable:"",onVisibleChange:q,"popper-class":"ve_option_box"},{prefix:(0,a.w5)((()=>[2!==(0,n.SU)(U)?((0,a.wg)(),(0,a.j4)(R,{key:0,size:20,style:{color:"#000"}},{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)((0,a.LL)((0,n.SU)(V))))])),_:1})):(0,a.kq)("",!0)])),default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(g.value,(e=>((0,a.wg)(),(0,a.j4)(F,{style:{display:"inline-block",height:"auto",padding:"10px 11px 0px"},key:e,label:e,value:e},{default:(0,a.w5)((()=>[(0,a.Wm)(R,{title:e,size:30},{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)((0,a.LL)(e)))])),_:2},1032,["title"])])),_:2},1032,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1},512),[[o.F8,2!==(0,n.SU)(U)]]),(0,a.wy)((0,a.Wm)(u,{label:"iframe",onChange:l[7]||(l[7]=e=>(W.value="",void(0,a.Y3)((()=>{v.value&&I.value===v.value.iframe&&(W.value=v.value.url),b.value.clearValidate("url")})))),class:"menu_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(p,{modelValue:(0,n.SU)(I),"onUpdate:modelValue":l[6]||(l[6]=e=>(0,n.dq)(I)?I.value=e:null)},{default:(0,a.w5)((()=>[(0,a.Wm)(i,{label:0},{default:(0,a.w5)((()=>l[19]||(l[19]=[(0,a.Uk)("否")]))),_:1}),(0,a.Wm)(i,{label:1},{default:(0,a.w5)((()=>l[20]||(l[20]=[(0,a.Uk)("是")]))),_:1})])),_:1},8,["modelValue"])])),_:1},512),[[o.F8,1===(0,n.SU)(U)]]),(0,a.wy)((0,a.Wm)(u,{label:"路径",prop:"url",class:"menu_edit_item"},{default:(0,a.w5)((()=>[1===(0,n.SU)(I)?((0,a.wg)(),(0,a.j4)(L,{key:0,modelValue:(0,n.SU)(W),"onUpdate:modelValue":l[8]||(l[8]=e=>(0,n.dq)(W)?W.value=e:null),placeholder:"请输入",clearable:""},null,8,["modelValue"])):((0,a.wg)(),(0,a.j4)(O,{key:1,style:{width:"100%"},modelValue:(0,n.SU)(W),"onUpdate:modelValue":l[9]||(l[9]=e=>(0,n.dq)(W)?W.value=e:null),placeholder:"",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,n.SU)(h),(e=>((0,a.wg)(),(0,a.j4)(F,{style:{height:"auto"},key:e.url,label:e.url,value:e.url},{default:(0,a.w5)((()=>[(0,a._)("p",d,(0,r.zw)(e.url),1),(0,a._)("span",s," 描述 :"+(0,r.zw)(e.description),1)])),_:2},1032,["label","value"])))),128))])),_:1},8,["modelValue"]))])),_:1},512),[[o.F8,1===(0,n.SU)(U)]]),(0,a.wy)((0,a.Wm)(u,{label:"按钮",prop:"upsertMenu",class:"menu_edit_item"},{default:(0,a.w5)((()=>[A.value?((0,a.wg)(),(0,a.j4)(p,{key:0,modelValue:(0,n.SU)(S),"onUpdate:modelValue":l[10]||(l[10]=e=>(0,n.dq)(S)?S.value=e:null),onChange:l[11]||(l[11]=e=>(k.value=A.value[S.value].name,D.value="",void(0,a.Y3)((()=>{v.value&&S.value===v.value.menu&&(D.value=v.value.toPath),b.value.clearValidate("toPath")}))))},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(A.value,((e,t)=>((0,a.wg)(),(0,a.j4)(K,{key:t,label:t,disabled:H.value(t)},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.name),1)])),_:2},1032,["label","disabled"])))),128))])),_:1},8,["modelValue"])):((0,a.wg)(),(0,a.iD)("span",c,"该菜单下没有按钮"))])),_:1},512),[[o.F8,2===(0,n.SU)(U)]]),(0,a.wy)((0,a.Wm)(u,{label:"目标菜单",prop:"toPath",rules:j.value,class:"menu_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(m,{style:{width:"100%"},options:(0,n.SU)(w),modelValue:(0,n.SU)(D),"onUpdate:modelValue":l[12]||(l[12]=e=>(0,n.dq)(D)?D.value=e:null),clearable:"",filterable:"",props:{expandTrigger:"hover",emitPath:!1,checkStrictly:!0,value:"id",label:"name",disabled:"iframe"}},null,8,["options","modelValue"])])),_:1},8,["rules"]),[[o.F8,2===(0,n.SU)(U)&&N.value]])])),_:1},8,["model","rules"])])),_:1},8,["title","model-value"])}}};var m=(0,l(70636).Z)(p,[["__scopeId","data-v-5b574e3b"]])},23956:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return c}});var a=l(67759),n=l(27649),o=l(76364),r=l(57235),u=l(11461),i=l(64779);const d={class:"ve_container"},s={data:()=>({description:"测试CRUD",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},member:{name:"查看成员",toPath:!0}},type:"1",icon:"Stamp",name:"测试CRUD",parentMenu:u.Z,module:i.moduleName})};var c=Object.assign(s,{__name:"DemoView",setup(e){const t=(0,o.iH)(null),l=(0,o.iH)(""),u=(0,o.iH)(!1),i=(0,o.iH)([]),s=(0,o.qj)({name:"",size:10,current:1,total:0}),c=async()=>{const{code:e,data:t}=await VE_API.system.rolePage(s);if(0===e){const{size:e,current:l,total:a,records:n}=t;s.size=e,s.current=l,s.total=a,i.value=n}};return(0,a.bv)((async()=>{})),(e,o)=>((0,a.wg)(),(0,a.iD)("div",d,[(0,a.Wm)(r.default,{r:{columns:[],queryColumns:[]}}),u.value?((0,a.wg)(),(0,a.j4)(n.default,{key:0,rowData:t.value,title:l.value,showDialog:u.value,onCloseDialog:o[0]||(o[0]=e=>{return t=e,u.value=t,void c();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)]))}})},77323:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return v}});l(74538);var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(27649),i=l(79065),d=l(81985),s=l(49686),c=l(11461),p=l(64779);const m={class:"ve_container"},f={data:()=>({description:"角色信息查询与设置",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},member:{name:"查看成员",toPath:!0}},type:"1",icon:"Stamp",name:"角色管理",parentMenu:c.Z,module:p.moduleName})};var v=Object.assign(f,{__name:"Roles",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,i.yj)(),c=(0,i.tv)(),p=(0,d.oR)(),f=(0,a.Fl)((()=>p.getters.menuList)).value,v=(0,n.iH)(null),w=(0,n.iH)(""),y=(0,n.iH)(!1),g=(0,n.iH)(null),b=(0,n.iH)([]),h=(0,n.qj)({name:"",size:10,current:1,total:0}),{name:_,size:k,current:U,total:C}=(0,n.BK)(h),S=(e,t=null)=>{y.value=!0,w.value=e,v.value=t},W=async()=>{const{code:e,data:t}=await VE_API.system.rolePage(h);if(0===e){const{size:e,current:l,total:a,records:n}=t;h.size=e,h.current=l,h.total=a,b.value=n}};return(0,a.bv)((async()=>{await W()})),(e,i)=>{const d=(0,a.up)("el-input"),p=(0,a.up)("el-form-item"),V=(0,a.up)("el-button"),I=(0,a.up)("el-form"),P=(0,a.up)("el-table-column"),D=(0,a.up)("el-tag"),z=(0,a.up)("ve-table"),x=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",m,[(0,a.Wm)(I,{ref_key:"queryForm",ref:g,inline:!0,model:h},{default:(0,a.w5)((()=>[(0,a.Wm)(p,{label:"名称",prop:"name"},{default:(0,a.w5)((()=>[(0,a.Wm)(d,{clearable:"",modelValue:(0,n.SU)(_),"onUpdate:modelValue":i[0]||(i[0]=e=>(0,n.dq)(_)?_.value=e:null),placeholder:"请输入"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(p,null,{default:(0,a.w5)((()=>[(0,a.Wm)(V,{type:"primary",onClick:i[1]||(i[1]=e=>(0,n.SU)(s.MI)(h,W))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(V,{onClick:i[2]||(i[2]=e=>(0,n.SU)(s.Fx)(g.value,h,W))},{default:(0,a.w5)((()=>i[5]||(i[5]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(z,{table:{data:b.value},pagination:{onSizeChange:e=>(0,n.SU)(s.EL)(e,h,W),onCurrentChange:e=>(0,n.SU)(s.jx)(e,h,W),currentPage:(0,n.SU)(U),pageSize:(0,n.SU)(k),total:(0,n.SU)(C)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(V,{size:"small",type:"primary",onClick:i[3]||(i[3]=t=>S(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[x,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(P,{prop:"code",label:"角色编码"}),(0,a.Wm)(P,{prop:"name",label:"角色名",width:"120"}),(0,a.Wm)(P,{prop:"status",label:"状态"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(D,{type:e.status?"":"danger"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.status?"启用":"停用"),1)])),_:2},1032,["type"])])),_:1}),(0,a.Wm)(P,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:n})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(V,{onClick:(0,r.iM)((t=>S(e.buttons.edit.name,n)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[x,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(V,{onClick:(0,r.iM)((e=>{return l=n.id,void t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:e}=await VE_API.system.roleDel({id:l});0===e&&W()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}));var l}),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[x,["del"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(V,{onClick:(0,r.iM)((e=>(e=>{let a=l.name.slice(l.name.lastIndexOf("-")+1);const n=(0,s.G8)("member","system/Users",a,f,t);c.push({name:n,query:{id:e}})})(n.id)),["prevent"]),type:"info",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.member.name),1)])),_:2},1032,["onClick"])),[[x,["member"]]])])),_:1})])),_:1},8,["table","pagination"]),y.value?((0,a.wg)(),(0,a.j4)(u.default,{key:0,rowData:v.value,title:w.value,showDialog:y.value,onCloseDialog:i[4]||(i[4]=e=>{return t=e,y.value=t,void W();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},31138:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});l(74538),l(63939),l(1755),l(65480);var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(34530),i=l(79065),d=l(49686),s=l(11461),c=l(64779);const p={class:"ve_container"},m={data:()=>({description:"用户信息查询与设置",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},export:{name:"导出用户"}},type:"1",icon:"Avatar",name:"用户管理",parentMenu:s.Z,module:c.moduleName})};var f=Object.assign(m,{__name:"Users",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,i.yj)(),s=(0,i.tv)(),c=(0,n.iH)(null),m=(0,n.iH)(""),f=(0,n.iH)(!1),v=(0,n.iH)(null),w=(0,n.iH)([]),y=(0,n.qj)({role:isNaN(1*l.query.id)?"":1*l.query.id,size:10,current:1,total:0}),{role:g,size:b,current:h,total:_}=(0,n.BK)(y),k=(0,n.iH)([]),U=(e,t=null)=>{f.value=!0,m.value=e,c.value=t},C=async()=>{const{code:e,data:t}=await VE_API.system.userPage(y);if(0===e){const{size:e,current:l,total:a,records:n}=t;n.map((e=>{e.roleIds=e.roleList.map((e=>e.id))})),y.size=e,y.current=l,y.total=a,w.value=n}};return(0,a.bv)((async()=>{await(async()=>{const{code:e,data:t}=await VE_API.system.roleList();0===e&&(k.value=t)})(),await C()})),(e,i)=>{const S=(0,a.up)("el-option"),W=(0,a.up)("el-select"),V=(0,a.up)("el-form-item"),I=(0,a.up)("el-button"),P=(0,a.up)("el-form"),D=(0,a.up)("el-table-column"),z=(0,a.up)("el-tooltip"),x=(0,a.up)("el-tag"),j=(0,a.up)("el-switch"),E=(0,a.up)("ve-table"),q=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",p,[(0,a.Wm)(P,{ref_key:"queryForm",ref:v,inline:!0,model:y},{default:(0,a.w5)((()=>[(0,a.Wm)(V,{label:"角色",prop:"role",style:{width:"10%"}},{default:(0,a.w5)((()=>[(0,a.Wm)(W,{clearable:"",modelValue:(0,n.SU)(g),"onUpdate:modelValue":i[0]||(i[0]=e=>(0,n.dq)(g)?g.value=e:null),placeholder:"请选择"},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(k.value,(e=>((0,a.wg)(),(0,a.j4)(S,{key:e.code,label:e.name,value:e.code},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(V,null,{default:(0,a.w5)((()=>[(0,a.Wm)(I,{type:"primary",onClick:i[1]||(i[1]=e=>(0,n.SU)(d.MI)(y,C))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(I,{onClick:i[2]||(i[2]=e=>(0,n.SU)(d.Fx)(v.value,y,C))},{default:(0,a.w5)((()=>i[7]||(i[7]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(E,{table:{data:w.value},pagination:{onSizeChange:e=>(0,n.SU)(d.EL)(e,y,C),onCurrentChange:e=>(0,n.SU)(d.jx)(e,y,C),currentPage:(0,n.SU)(h),pageSize:(0,n.SU)(b),total:(0,n.SU)(_)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(I,{title:"弹窗式",size:"small",type:"primary",onClick:i[3]||(i[3]=t=>U(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[q,["add"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(I,{title:"路由式",size:"small",type:"primary",onClick:i[4]||(i[4]=t=>(async e=>{const t=await(0,d.fG)(e,"system/components/UsersEditRoute","add",{router:s,route:l});s.push({name:t})})(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[q,["add"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(I,{title:"路由式",size:"small",type:"primary",onClick:i[5]||(i[5]=t=>(async()=>{let e=await VE_API.system.userExportList(y,{responseType:"blob"}),t=e.headers["file-name"];t=decodeURIComponent(t);let l=window.URL.createObjectURL(new Blob([e.data])),a=document.createElement("a");a.style.display="none",a.href=l,a.setAttribute("download",t),document.body.appendChild(a),a.click(),window.URL.revokeObjectURL(a.href)})(e.buttons.export.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.export.name),1)])),_:1})),[[q,["export"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(D,{prop:"username",label:"用户名"}),(0,a.Wm)(D,{prop:"password",label:"密码"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(z,{class:"item",effect:"dark",content:e.password,placement:"top"},{default:(0,a.w5)((()=>[(0,a._)("span",null,(0,o.zw)(e.password&&e.password.split("").fill("*",1,-1).join().replace(/\,/g,"")),1)])),_:2},1032,["content"])])),_:1}),(0,a.Wm)(D,{prop:"roleList",label:"角色"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(x,null,{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.roleList.filter((t=>{if(null!=e.roleList)return t.name})).map((e=>e.name))),1)])),_:2},1024)])),_:1}),(0,a.Wm)(D,{prop:"status",label:"状态"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(j,{loading:e.load,modelValue:e.status,"onUpdate:modelValue":t=>e.status=t,"active-value":1,"inactive-value":0,"active-color":"#13ce66","inactive-color":"#ff4949",onChange:t=>(async(e,t)=>{if(void 0===t.id)return;t.load=1;const{code:l}=await VE_API.system.userEdit(t);setTimeout((()=>{t.load=0,0!==l&&(t.status=1===e?0:1)}),500)})(t,e)},{default:(0,a.w5)((()=>i[8]||(i[8]=[(0,a.Uk)(" > ")]))),_:2},1032,["loading","modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,a.Wm)(D,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(I,{onClick:(0,r.iM)((t=>U(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[q,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(I,{onClick:(0,r.iM)((e=>{return a=l.id,void t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:e}=await VE_API.system.userDel({id:a});"00"==e&&C()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}));var a}),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[q,["del"]]])])),_:1})])),_:1},8,["table","pagination"]),f.value?((0,a.wg)(),(0,a.j4)(u.default,{key:0,rowData:c.value,title:m.value,showDialog:f.value,onCloseDialog:i[6]||(i[6]=e=>{return t=e,f.value=t,void C();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},27649:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return s}});var a=l(67759),n=l(76364),o=l(38874),r=l(85071),u=l(14297),i=l(41728);const d=["data-menuId"];var s={__name:"RoleEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l=e,s=t,{title:c,rowData:p}=(0,n.BK)(l),m=()=>{s("closeDialog",!1)},f=(0,n.qj)({code:"",name:"",menuIds:[],status:!0}),{code:v,name:w,menuIds:y,status:g}=(0,n.BK)(f),b=(0,n.iH)(null),h={name:[{required:!0,message:"请输入名称",trigger:"blur"}],code:[{required:!0,message:"请输入角色编码",trigger:"blur"}],menuIds:[{validator:(e,t,l)=>{y.value=[..._.value.getCheckedKeys(!1)],y.value.length<1?l(new Error("请选择权限")):l()},required:!0}]},_=(0,n.iH)(null),k=(0,n.iH)([]);p.value&&(w.value=p.value.name,v.value=p.value.code,g.value=p.value.status);return(0,a.bv)((async()=>{await(async()=>{const{code:e,data:t}=await VE_API.system.menuList({size:10,page:1,total:0},{Global:!1});if(0===e){const e=i.mapTree(i.toArrayTree(t,{sortKey:"sort",key:"code",parentKey:"parentCode"}),(e=>(e.children&&e.children.length<=0&&delete e.children,e)));k.value=e}})(),(0,a.Y3)((async()=>{if((()=>{let e=document.getElementsByClassName("ve_tree_item");Array.from(e).forEach((e=>{const t=1*e.dataset.roleid,l=(0,r.XN)(k.value,(e=>e.id===t)).length-1;e.parentNode.parentNode.parentNode.style.paddingLeft=18*l+"px";let a=e.parentNode.className;e.parentNode.className=a+" fl p0"}))})(),"添加"===c.value)_.value.setCheckedNodes(k.value);else{const{code:e,data:t}=await VE_API.system.roleOne({id:p.value.id});if(0===e){const e=i.mapTree(i.toArrayTree(t.menuList,{sortKey:"sort",key:"code",parentKey:"parentCode"}),(e=>(e.children&&e.children.length<=0&&delete e.children,e)));console.log(e),e&&e.length>0&&_.value.setCheckedNodes(e)}}}))})),(t,l)=>{const r=(0,a.up)("el-input"),i=(0,a.up)("el-form-item"),s=(0,a.up)("el-scrollbar"),U=(0,a.up)("el-card"),C=(0,a.up)("el-radio-button"),S=(0,a.up)("el-radio-group"),W=(0,a.up)("el-form"),V=(0,a.up)("el-button"),I=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(I,{title:(0,n.SU)(c),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:l[5]||(l[5]=e=>m())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(V,{onClick:l[3]||(l[3]=e=>m())},{default:(0,a.w5)((()=>l[8]||(l[8]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(V,{type:"primary",onClick:l[4]||(l[4]=e=>{b.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===c.value?await VE_API.system.roleAdd(f):await VE_API.system.roleEdit({id:p.value.id,...f});const{code:t}=e;0===t&&m()}}))})},{default:(0,a.w5)((()=>l[9]||(l[9]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(W,{model:f,ref_key:"formRef",ref:b,rules:h,inline:!1,"label-width":"120px"},{default:(0,a.w5)((()=>[(0,a.Wm)(i,{label:"名称",prop:"name",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":l[0]||(l[0]=e=>(0,n.dq)(w)?w.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(i,{label:"角色编码",prop:"code",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(v),"onUpdate:modelValue":l[1]||(l[1]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(i,{label:"权限",prop:"menuIds",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{shadow:"never","body-style":{padding:0,height:"200px",width:"100%"},class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(s,{style:{width:"100%"}},{default:(0,a.w5)((()=>[(0,a.Wm)((0,n.SU)(u.y),{ref_key:"tree",ref:_,data:k.value,"node-key":"id",props:{label:"name"},"empty-text":"暂无数据","show-checkbox":"","highlight-current":"","default-checked-keys":(0,n.SU)(y)},{default:(0,a.w5)((({data:e})=>[(0,a._)("span",{"data-menuId":e.id,class:(0,o.C_)({ve_tree_item:2===e.type})},(0,o.zw)(e.name),11,d)])),_:1},8,["data","default-checked-keys"])])),_:1})])),_:1})])),_:1}),(0,a.Wm)(i,{label:"状态",prop:"status",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(S,{modelValue:(0,n.SU)(g),"onUpdate:modelValue":l[2]||(l[2]=e=>(0,n.dq)(g)?g.value=e:null)},{default:(0,a.w5)((()=>[(0,a.Wm)(C,{label:!0},{default:(0,a.w5)((()=>l[6]||(l[6]=[(0,a.Uk)("启用")]))),_:1}),(0,a.Wm)(C,{label:!1},{default:(0,a.w5)((()=>l[7]||(l[7]=[(0,a.Uk)("停用")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},34530:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return r}});var a=l(67759),n=l(76364),o={__name:"UsersEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}],roleIds:[{required:!0,message:"请选择角色",trigger:"change"}]},o=e,r=t,{title:u,rowData:i}=(0,n.BK)(o),d=()=>{r("closeDialog",!1)},s=(0,n.iH)(null),c=(0,n.qj)({username:"",password:"",roleIds:[],status:!0}),{username:p,password:m,roleIds:f,status:v}=(0,n.BK)(c),w=(0,n.iH)([]);i.value&&(p.value=i.value.username,m.value=i.value.password,f.value=i.value.roleIds,v.value=i.value.status);(0,a.bv)((async()=>{await(async()=>{const{code:e,data:t}=await VE_API.system.roleList();0===e&&(w.value=t)})()}));return(t,o)=>{const r=(0,a.up)("el-input"),y=(0,a.up)("el-form-item"),g=(0,a.up)("el-option"),b=(0,a.up)("el-select"),h=(0,a.up)("el-radio-button"),_=(0,a.up)("el-radio-group"),k=(0,a.up)("el-form"),U=(0,a.up)("el-button"),C=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(C,{title:(0,n.SU)(u),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:o[6]||(o[6]=e=>d())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(U,{onClick:o[4]||(o[4]=e=>d())},{default:(0,a.w5)((()=>o[9]||(o[9]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(U,{type:"primary",onClick:o[5]||(o[5]=e=>{s.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===u.value?await VE_API.system.userAdd(c):await VE_API.system.userEdit({id:i.value.id,...c});const{code:t}=e;0===t&&d()}}))})},{default:(0,a.w5)((()=>o[10]||(o[10]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(k,{model:c,ref_key:"formRef",ref:s,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(y,{label:"用户名",prop:"username"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(p),"onUpdate:modelValue":o[0]||(o[0]=e=>(0,n.dq)(p)?p.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"密码",prop:"password"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":o[1]||(o[1]=e=>(0,n.dq)(m)?m.value=e:null),"show-password":"",placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"角色",prop:"roleIds"},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{style:{width:"100%"},modelValue:(0,n.SU)(f),"onUpdate:modelValue":o[2]||(o[2]=e=>(0,n.dq)(f)?f.value=e:null),multiple:"",placeholder:"",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(w.value,(e=>((0,a.wg)(),(0,a.j4)(g,{key:e.id,label:e.name,value:e.id},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"状态"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(v),"onUpdate:modelValue":o[3]||(o[3]=e=>(0,n.dq)(v)?v.value=e:null)},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{label:!0},{default:(0,a.w5)((()=>o[7]||(o[7]=[(0,a.Uk)("启用")]))),_:1}),(0,a.Wm)(h,{label:!1},{default:(0,a.w5)((()=>o[8]||(o[8]=[(0,a.Uk)("停用")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}};var r=(0,l(70636).Z)(o,[["__scopeId","data-v-259b6f0a"]])},8340:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return r}});var a=l(67759),n=l(76364),o={__name:"UsersEditRoute",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={name:[{required:!0,message:"请输入用户名",trigger:"blur"}],userName:[{required:!0,message:"请输入账户",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}],role:[{required:!0,message:"请选择角色",trigger:"change"}]},o=e,r=t,{title:u,rowData:i}=(0,n.BK)(o),d=()=>{r("closeDialog",!1)},s=(0,n.iH)(null),c=(0,n.qj)({name:"",userName:"",password:"",role:"",status:1}),{userName:p,name:m,password:f,role:v,status:w}=(0,n.BK)(c),y=(0,n.iH)([]);i.value&&(m.value=i.value.name,p.value=i.value.userName,f.value=i.value.password,v.value=i.value.role,w.value=i.value.status);(async()=>{const{code:e,data:t}=await VE_API.system.roleList({page:1,size:10},{Global:!1});if("0"===e){const{list:e}=t;y.value=e}})();return(e,t)=>{const o=(0,a.up)("el-input"),r=(0,a.up)("el-form-item"),g=(0,a.up)("el-option"),b=(0,a.up)("el-select"),h=(0,a.up)("el-radio-button"),_=(0,a.up)("el-radio-group"),k=(0,a.up)("el-button"),U=(0,a.up)("el-form");return(0,a.wg)(),(0,a.j4)(U,{model:c,ref_key:"formRef",ref:s,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{label:"账号",prop:"name"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":t[0]||(t[0]=e=>(0,n.dq)(m)?m.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(r,{label:"用户名",prop:"userName"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(p),"onUpdate:modelValue":t[1]||(t[1]=e=>(0,n.dq)(p)?p.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(r,{label:"密码",prop:"password"},{default:(0,a.w5)((()=>[(0,a.Wm)(o,{modelValue:(0,n.SU)(f),"onUpdate:modelValue":t[2]||(t[2]=e=>(0,n.dq)(f)?f.value=e:null),"show-password":"",placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(r,{label:"角色",prop:"role"},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{style:{width:"100%"},modelValue:(0,n.SU)(v),"onUpdate:modelValue":t[3]||(t[3]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(y.value,(e=>((0,a.wg)(),(0,a.j4)(g,{key:e.id,label:e.name,value:e.id,disabled:0==e.status},null,8,["label","value","disabled"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(r,{label:"状态"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":t[4]||(t[4]=e=>(0,n.dq)(w)?w.value=e:null)},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{label:1},{default:(0,a.w5)((()=>t[7]||(t[7]=[(0,a.Uk)("启用")]))),_:1}),(0,a.Wm)(h,{label:0},{default:(0,a.w5)((()=>t[8]||(t[8]=[(0,a.Uk)("停用")]))),_:1})])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(r,null,{default:(0,a.w5)((()=>[(0,a.Wm)(k,{onClick:t[5]||(t[5]=e=>d())},{default:(0,a.w5)((()=>t[9]||(t[9]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(k,{type:"primary",onClick:t[6]||(t[6]=e=>{s.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===u.value?await VE_API.system.userAdd(c):await VE_API.system.userEdit({id:i.value.id,...c});const{code:t}=e;"0"===t&&d()}}))})},{default:(0,a.w5)((()=>t[10]||(t[10]=[(0,a.Uk)("确定")]))),_:1})])),_:1})])),_:1},8,["model"])}}};var r=(0,l(70636).Z)(o,[["__scopeId","data-v-8c51848e"]])},50194:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return v}});l(74538);var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(67084),i=l(79065),d=l(81985),s=l(49686),c=l(57548),p=l(64779);const m={class:"ve_container"},f={data:()=>({description:"区域信息查询与设置",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},member:{name:"查看成员",toPath:!0}},type:"1",icon:"Stamp",name:"区域管理",parentMenu:c.Z,module:p.moduleName})};var v=Object.assign(f,{__name:"LazyZone",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,i.yj)(),c=(0,i.tv)(),p=(0,d.oR)(),f=(0,a.Fl)((()=>p.getters.menuList)).value,v=(0,n.iH)(null),w=(0,n.iH)(""),y=(0,n.iH)(!1),g=(0,n.iH)(null),b=(0,n.iH)([]),h=(0,n.qj)({name:"",size:10,current:1,total:0}),{name:_,size:k,current:U,total:C}=(0,n.BK)(h),S=(e,t=null)=>{y.value=!0,w.value=e,v.value=t},W=async()=>{const{code:e,data:t}=await VE_API.system.rolePage(h);if(0===e){const{size:e,current:l,total:a,records:n}=t;h.size=e,h.current=l,h.total=a,b.value=n}};return(0,a.bv)((async()=>{await W()})),(e,i)=>{const d=(0,a.up)("el-input"),p=(0,a.up)("el-form-item"),V=(0,a.up)("el-button"),I=(0,a.up)("el-form"),P=(0,a.up)("el-table-column"),D=(0,a.up)("el-tag"),z=(0,a.up)("ve-table"),x=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",m,[(0,a.Wm)(I,{ref_key:"queryForm",ref:g,inline:!0,model:h},{default:(0,a.w5)((()=>[(0,a.Wm)(p,{label:"名称",prop:"name"},{default:(0,a.w5)((()=>[(0,a.Wm)(d,{clearable:"",modelValue:(0,n.SU)(_),"onUpdate:modelValue":i[0]||(i[0]=e=>(0,n.dq)(_)?_.value=e:null),placeholder:"请输入"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(p,null,{default:(0,a.w5)((()=>[(0,a.Wm)(V,{type:"primary",onClick:i[1]||(i[1]=e=>(0,n.SU)(s.MI)(h,W))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(V,{onClick:i[2]||(i[2]=e=>(0,n.SU)(s.Fx)(g.value,h,W))},{default:(0,a.w5)((()=>i[5]||(i[5]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(z,{table:{data:b.value},pagination:{onSizeChange:e=>(0,n.SU)(s.EL)(e,h,W),onCurrentChange:e=>(0,n.SU)(s.jx)(e,h,W),currentPage:(0,n.SU)(U),pageSize:(0,n.SU)(k),total:(0,n.SU)(C)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(V,{size:"small",type:"primary",onClick:i[3]||(i[3]=t=>S(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[x,["add"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(P,{prop:"code",label:"区域编码"}),(0,a.Wm)(P,{prop:"name",label:"区域名称",width:"120"}),(0,a.Wm)(P,{prop:"status",label:"区域状态"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(D,{type:e.status?"":"danger"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.status?"启用":"停用"),1)])),_:2},1032,["type"])])),_:1}),(0,a.Wm)(P,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:n})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(V,{onClick:(0,r.iM)((t=>S(e.buttons.edit.name,n)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[x,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(V,{onClick:(0,r.iM)((e=>{return l=n.id,void t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:e}=await VE_API.system.roleDel({id:l});0===e&&W()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}));var l}),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[x,["del"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(V,{onClick:(0,r.iM)((e=>(e=>{let a=l.name.slice(l.name.lastIndexOf("-")+1);const n=(0,s.G8)("member","system/Users",a,f,t);c.push({name:n,query:{id:e}})})(n.id)),["prevent"]),type:"info",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.member.name),1)])),_:2},1032,["onClick"])),[[x,["member"]]])])),_:1})])),_:1},8,["table","pagination"]),y.value?((0,a.wg)(),(0,a.j4)(u.default,{key:0,rowData:v.value,title:w.value,showDialog:y.value,onCloseDialog:i[4]||(i[4]=e=>{return t=e,y.value=t,void W();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},76503:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return f}});l(63939),l(1755),l(65480);var a=l(67759),n=l(76364),o=l(38874),r=l(12257),u=l(90651),i=l(79065),d=l(49686),s=l(57548),c=l(64779);const p={class:"ve_container"},m={data:()=>({description:"区域应用信息查询与设置",buttons:{search:{name:"查询"},add:{name:"添加"},edit:{name:"编辑"},del:{name:"删除"},export:{name:"导出用户"}},type:"1",icon:"Avatar",name:"区域应用管理",parentMenu:s.Z,module:c.moduleName})};var f=Object.assign(m,{__name:"LazyZoneApplication",setup(e){const{proxy:t}=(0,a.FN)(),l=(0,i.yj)(),s=(0,n.iH)(null),c=(0,n.iH)(""),m=(0,n.iH)(!1),f=(0,n.iH)(null),v=(0,n.iH)([]),w=(0,n.qj)({role:isNaN(1*l.query.id)?"":1*l.query.id,size:10,current:1,total:0}),{role:y,size:g,current:b,total:h}=(0,n.BK)(w),_=(0,n.iH)([]),k=(e,t=null)=>{m.value=!0,c.value=e,s.value=t},U=async()=>{const{code:e,data:t}=await VE_API.system.userPage(w);if(0===e){const{size:e,current:l,total:a,records:n}=t;n.map((e=>{e.roleIds=e.roleList.map((e=>e.id))})),w.size=e,w.current=l,w.total=a,v.value=n}};return(0,a.bv)((async()=>{await(async()=>{const{code:e,data:t}=await VE_API.system.roleList();0===e&&(_.value=t)})(),await U()})),(e,l)=>{const i=(0,a.up)("el-option"),C=(0,a.up)("el-select"),S=(0,a.up)("el-form-item"),W=(0,a.up)("el-button"),V=(0,a.up)("el-form"),I=(0,a.up)("el-table-column"),P=(0,a.up)("el-tooltip"),D=(0,a.up)("el-tag"),z=(0,a.up)("el-switch"),x=(0,a.up)("ve-table"),j=(0,a.Q2)("permission");return(0,a.wg)(),(0,a.iD)("div",p,[(0,a.Wm)(V,{ref_key:"queryForm",ref:f,inline:!0,model:w},{default:(0,a.w5)((()=>[(0,a.Wm)(S,{label:"角色",prop:"role",style:{width:"10%"}},{default:(0,a.w5)((()=>[(0,a.Wm)(C,{clearable:"",modelValue:(0,n.SU)(y),"onUpdate:modelValue":l[0]||(l[0]=e=>(0,n.dq)(y)?y.value=e:null),placeholder:"请选择"},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(_.value,(e=>((0,a.wg)(),(0,a.j4)(i,{key:e.code,label:e.name,value:e.code},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(S,null,{default:(0,a.w5)((()=>[(0,a.Wm)(W,{type:"primary",onClick:l[1]||(l[1]=e=>(0,n.SU)(d.MI)(w,U))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.search.name),1)])),_:1}),(0,a.Wm)(W,{onClick:l[2]||(l[2]=e=>(0,n.SU)(d.Fx)(f.value,w,U))},{default:(0,a.w5)((()=>l[6]||(l[6]=[(0,a.Uk)(" 重置 ")]))),_:1})])),_:1})])),_:1},8,["model"]),(0,a.Wm)(x,{table:{data:v.value},pagination:{onSizeChange:e=>(0,n.SU)(d.EL)(e,w,U),onCurrentChange:e=>(0,n.SU)(d.jx)(e,w,U),currentPage:(0,n.SU)(b),pageSize:(0,n.SU)(g),total:(0,n.SU)(h)}},{tool_bar:(0,a.w5)((()=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(W,{title:"弹窗式",size:"small",type:"primary",onClick:l[3]||(l[3]=t=>k(e.buttons.add.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.add.name),1)])),_:1})),[[j,["add"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(W,{title:"路由式",size:"small",type:"primary",onClick:l[4]||(l[4]=t=>(async()=>{let e=await VE_API.system.userExportList(w,{responseType:"blob"}),t=e.headers["file-name"];t=decodeURIComponent(t);let l=window.URL.createObjectURL(new Blob([e.data])),a=document.createElement("a");a.style.display="none",a.href=l,a.setAttribute("download",t),document.body.appendChild(a),a.click(),window.URL.revokeObjectURL(a.href)})(e.buttons.export.name))},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.export.name),1)])),_:1})),[[j,["export"]]])])),default:(0,a.w5)((()=>[(0,a.Wm)(I,{prop:"username",label:"区域名称"}),(0,a.Wm)(I,{prop:"password",label:"区域编码"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(P,{class:"item",effect:"dark",content:e.password,placement:"top"},{default:(0,a.w5)((()=>[(0,a._)("span",null,(0,o.zw)(e.password&&e.password.split("").fill("*",1,-1).join().replace(/\,/g,"")),1)])),_:2},1032,["content"])])),_:1}),(0,a.Wm)(I,{prop:"roleList",label:"应用集合"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(D,null,{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.roleList.filter((t=>{if(null!=e.roleList)return t.name})).map((e=>e.name))),1)])),_:2},1024)])),_:1}),(0,a.Wm)(I,{prop:"status",label:"状态"},{default:(0,a.w5)((({row:e})=>[(0,a.Wm)(z,{loading:e.load,modelValue:e.status,"onUpdate:modelValue":t=>e.status=t,"active-value":1,"inactive-value":0,"active-color":"#13ce66","inactive-color":"#ff4949",onChange:t=>(async(e,t)=>{if(null==t.id)return;t.load=1;const{code:l}=await VE_API.system.userEdit(t);setTimeout((()=>{t.load=0,0!==l&&(t.status=1===e?0:1)}),500)})(t,e)},{default:(0,a.w5)((()=>l[7]||(l[7]=[(0,a.Uk)(" > ")]))),_:2},1032,["loading","modelValue","onUpdate:modelValue","onChange"])])),_:1}),(0,a.Wm)(I,{fixed:"right",label:"操作"},{default:(0,a.w5)((({row:l})=>[(0,a.wy)(((0,a.wg)(),(0,a.j4)(W,{onClick:(0,r.iM)((t=>k(e.buttons.edit.name,l)),["prevent"]),type:"primary",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.edit.name),1)])),_:2},1032,["onClick"])),[[j,["edit"]]]),(0,a.wy)(((0,a.wg)(),(0,a.j4)(W,{onClick:(0,r.iM)((e=>{return a=l.id,void t.$confirm("此操作将永久删除该数据, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"error"}).then((async()=>{const{code:e}=await VE_API.system.userDel({id:a});"00"==e&&U()})).catch((()=>{t.$message({type:"info",message:"已取消删除"})}));var a}),["prevent"]),type:"danger",size:"small"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.buttons.del.name),1)])),_:2},1032,["onClick"])),[[j,["del"]]])])),_:1})])),_:1},8,["table","pagination"]),m.value?((0,a.wg)(),(0,a.j4)(u.default,{key:0,rowData:s.value,title:c.value,showDialog:m.value,onCloseDialog:l[5]||(l[5]=e=>{return t=e,m.value=t,void U();var t})},null,8,["rowData","title","showDialog"])):(0,a.kq)("",!0)])}}})},90651:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return r}});var a=l(67759),n=l(76364),o={__name:"LazyZoneApplicationEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}],roleIds:[{required:!0,message:"请选择角色",trigger:"change"}]},o=e,r=t,{title:u,rowData:i}=(0,n.BK)(o),d=()=>{r("closeDialog",!1)},s=(0,n.iH)(null),c=(0,n.qj)({username:"",password:"",roleIds:[],status:!0}),{username:p,password:m,roleIds:f,status:v}=(0,n.BK)(c),w=(0,n.iH)([]);i.value&&(p.value=i.value.username,m.value=i.value.password,f.value=i.value.roleIds,v.value=i.value.status);(0,a.bv)((async()=>{await(async()=>{const{code:e,data:t}=await VE_API.system.roleList();0===e&&(w.value=t)})()}));return(t,o)=>{const r=(0,a.up)("el-input"),y=(0,a.up)("el-form-item"),g=(0,a.up)("el-option"),b=(0,a.up)("el-select"),h=(0,a.up)("el-radio-button"),_=(0,a.up)("el-radio-group"),k=(0,a.up)("el-form"),U=(0,a.up)("el-button"),C=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(C,{title:(0,n.SU)(u),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:o[6]||(o[6]=e=>d())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(U,{onClick:o[4]||(o[4]=e=>d())},{default:(0,a.w5)((()=>o[9]||(o[9]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(U,{type:"primary",onClick:o[5]||(o[5]=e=>{s.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===u.value?await VE_API.system.userAdd(c):await VE_API.system.userEdit({id:i.value.id,...c});const{code:t}=e;0===t&&d()}}))})},{default:(0,a.w5)((()=>o[10]||(o[10]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(k,{model:c,ref_key:"formRef",ref:s,rules:l,"label-width":"80px",inline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(y,{label:"用户名",prop:"username"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(p),"onUpdate:modelValue":o[0]||(o[0]=e=>(0,n.dq)(p)?p.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"密码",prop:"password"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(m),"onUpdate:modelValue":o[1]||(o[1]=e=>(0,n.dq)(m)?m.value=e:null),"show-password":"",placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"角色",prop:"roleIds"},{default:(0,a.w5)((()=>[(0,a.Wm)(b,{style:{width:"100%"},modelValue:(0,n.SU)(f),"onUpdate:modelValue":o[2]||(o[2]=e=>(0,n.dq)(f)?f.value=e:null),multiple:"",placeholder:"",clearable:""},{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(w.value,(e=>((0,a.wg)(),(0,a.j4)(g,{key:e.id,label:e.name,value:e.id},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])])),_:1}),(0,a.Wm)(y,{label:"状态"},{default:(0,a.w5)((()=>[(0,a.Wm)(_,{modelValue:(0,n.SU)(v),"onUpdate:modelValue":o[3]||(o[3]=e=>(0,n.dq)(v)?v.value=e:null)},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{label:!0},{default:(0,a.w5)((()=>o[7]||(o[7]=[(0,a.Uk)("启用")]))),_:1}),(0,a.Wm)(h,{label:!1},{default:(0,a.w5)((()=>o[8]||(o[8]=[(0,a.Uk)("停用")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}};var r=(0,l(70636).Z)(o,[["__scopeId","data-v-af3b3260"]])},67084:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return s}});var a=l(67759),n=l(76364),o=l(38874),r=l(85071),u=l(14297),i=l(41728);const d=["data-menuId"];var s={__name:"LazyZoneEdit",props:{showDialog:{type:Boolean,default:!0},title:{type:String,default:"添加"},rowData:{type:Object,default:null}},emits:["closeDialog"],setup(e,{emit:t}){const l=e,s=t,{title:c,rowData:p}=(0,n.BK)(l),m=()=>{s("closeDialog",!1)},f=(0,n.qj)({code:"",name:"",menuIds:[],status:!0}),{code:v,name:w,menuIds:y,status:g}=(0,n.BK)(f),b=(0,n.iH)(null),h={name:[{required:!0,message:"请输入名称",trigger:"blur"}],code:[{required:!0,message:"请输入角色编码",trigger:"blur"}],menuIds:[{validator:(e,t,l)=>{y.value=[..._.value.getCheckedKeys(!1)],y.value.length<1?l(new Error("请选择权限")):l()},required:!0}]},_=(0,n.iH)(null),k=(0,n.iH)([]);p.value&&(w.value=p.value.name,v.value=p.value.code,g.value=p.value.status);return(0,a.bv)((async()=>{await(async()=>{const{code:e,data:t}=await VE_API.system.menuList({size:10,page:1,total:0},{Global:!1});if(0===e){const e=i.mapTree(i.toArrayTree(t,{sortKey:"sort",key:"code",parentKey:"parentCode"}),(e=>(e.children&&e.children.length<=0&&delete e.children,e)));k.value=e}})(),(0,a.Y3)((async()=>{if((()=>{let e=document.getElementsByClassName("ve_tree_item");Array.from(e).forEach((e=>{const t=1*e.dataset.roleid,l=(0,r.XN)(k.value,(e=>e.id===t)).length-1;e.parentNode.parentNode.parentNode.style.paddingLeft=18*l+"px";let a=e.parentNode.className;e.parentNode.className=a+" fl p0"}))})(),"添加"===c.value)_.value.setCheckedNodes(k.value);else{const{code:e,data:t}=await VE_API.system.roleOne({id:p.value.id});if(0===e){const e=i.mapTree(i.toArrayTree(t.menuList,{sortKey:"sort",key:"code",parentKey:"parentCode"}),(e=>(e.children&&e.children.length<=0&&delete e.children,e)));console.log(e),e&&e.length>0&&_.value.setCheckedNodes(e)}}}))})),(t,l)=>{const r=(0,a.up)("el-input"),i=(0,a.up)("el-form-item"),s=(0,a.up)("el-scrollbar"),y=(0,a.up)("el-card"),U=(0,a.up)("el-radio-button"),C=(0,a.up)("el-radio-group"),S=(0,a.up)("el-form"),W=(0,a.up)("el-button"),V=(0,a.up)("el-dialog");return(0,a.wg)(),(0,a.j4)(V,{title:(0,n.SU)(c),"append-to-body":"","destroy-on-close":"","model-value":e.showDialog,onClose:l[5]||(l[5]=e=>m())},{footer:(0,a.w5)((()=>[(0,a._)("span",null,[(0,a.Wm)(W,{onClick:l[3]||(l[3]=e=>m())},{default:(0,a.w5)((()=>l[8]||(l[8]=[(0,a.Uk)("取消")]))),_:1}),(0,a.Wm)(W,{type:"primary",onClick:l[4]||(l[4]=e=>{b.value.validate((async e=>{if(!e)return console.log("error submit!!"),!1;{let e;e="添加"===c.value?await VE_API.system.roleAdd(f):await VE_API.system.roleEdit({id:p.value.id,...f});const{code:t}=e;0===t&&m()}}))})},{default:(0,a.w5)((()=>l[9]||(l[9]=[(0,a.Uk)("确定")]))),_:1})])])),default:(0,a.w5)((()=>[(0,a.Wm)(S,{model:f,ref_key:"formRef",ref:b,rules:h,inline:!1,"label-width":"120px"},{default:(0,a.w5)((()=>[(0,a.Wm)(i,{label:"名称",prop:"name",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(w),"onUpdate:modelValue":l[0]||(l[0]=e=>(0,n.dq)(w)?w.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(i,{label:"角色编码",prop:"code",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(r,{modelValue:(0,n.SU)(v),"onUpdate:modelValue":l[1]||(l[1]=e=>(0,n.dq)(v)?v.value=e:null),placeholder:"",clearable:""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(i,{label:"权限",prop:"menuIds",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(y,{shadow:"never","body-style":{padding:0,height:"200px",width:"100%"},class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(s,{style:{width:"100%"}},{default:(0,a.w5)((()=>[(0,a.Wm)((0,n.SU)(u.y),{ref_key:"tree",ref:_,data:k.value,"node-key":"id","default-expand-all":"",props:{label:"name"},"empty-text":"暂无数据","show-checkbox":"","highlight-current":""},{default:(0,a.w5)((({data:e})=>[(0,a._)("span",{"data-menuId":e.id,class:(0,o.C_)({ve_tree_item:2===e.type})},(0,o.zw)(e.name),11,d)])),_:1},8,["data"])])),_:1})])),_:1})])),_:1}),(0,a.Wm)(i,{label:"状态",prop:"status",class:"role_edit_item"},{default:(0,a.w5)((()=>[(0,a.Wm)(C,{modelValue:(0,n.SU)(g),"onUpdate:modelValue":l[2]||(l[2]=e=>(0,n.dq)(g)?g.value=e:null)},{default:(0,a.w5)((()=>[(0,a.Wm)(U,{label:!0},{default:(0,a.w5)((()=>l[6]||(l[6]=[(0,a.Uk)("启用")]))),_:1}),(0,a.Wm)(U,{label:!1},{default:(0,a.w5)((()=>l[7]||(l[7]=[(0,a.Uk)("停用")]))),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])),_:1},8,["title","model-value"])}}}},34200:function(e,t,l){"use strict";l.r(t),l.d(t,{BaseTransition:function(){return a.P$},BaseTransitionPropsValidators:function(){return a.nJ},Comment:function(){return a.sv},DeprecationTypes:function(){return a.RM},EffectScope:function(){return a.Bj},ErrorCodes:function(){return a.SM},ErrorTypeStrings:function(){return a.yg},Fragment:function(){return a.HY},KeepAlive:function(){return a.Ob},ReactiveEffect:function(){return a.qq},Static:function(){return a.qG},Suspense:function(){return a.n4},Teleport:function(){return a.lR},Text:function(){return a.xv},TrackOpTypes:function(){return a.ER},Transition:function(){return a.uT},TransitionGroup:function(){return a.W3},TriggerOpTypes:function(){return a.PQ},VueElement:function(){return a.a2},assertNumber:function(){return a.Wu},callWithAsyncErrorHandling:function(){return a.$d},callWithErrorHandling:function(){return a.KU},camelize:function(){return a._A},capitalize:function(){return a.kC},cloneVNode:function(){return a.Ho},compatUtils:function(){return a.ry},compile:function(){return n},computed:function(){return a.Fl},createApp:function(){return a.ri},createBlock:function(){return a.j4},createCommentVNode:function(){return a.kq},createElementBlock:function(){return a.iD},createElementVNode:function(){return a._},createHydrationRenderer:function(){return a.Eo},createPropsRestProxy:function(){return a.p1},createRenderer:function(){return a.Us},createSSRApp:function(){return a.vr},createSlots:function(){return a.Nv},createStaticVNode:function(){return a.uE},createTextVNode:function(){return a.Uk},createVNode:function(){return a.Wm},customRef:function(){return a.ZM},defineAsyncComponent:function(){return a.RC},defineComponent:function(){return a.aZ},defineCustomElement:function(){return a.MW},defineEmits:function(){return a.Bz},defineExpose:function(){return a.WY},defineModel:function(){return a.Gn},defineOptions:function(){return a.Yu},defineProps:function(){return a.yb},defineSSRCustomElement:function(){return a.Ah},defineSlots:function(){return a.Wl},devtools:function(){return a.mW},effect:function(){return a.cE},effectScope:function(){return a.B},getCurrentInstance:function(){return a.FN},getCurrentScope:function(){return a.nZ},getCurrentWatcher:function(){return a.AH},getTransitionRawChildren:function(){return a.Q6},guardReactiveProps:function(){return a.F4},h:function(){return a.h},handleError:function(){return a.S3},hasInjectionContext:function(){return a.EM},hydrate:function(){return a.ZB},hydrateOnIdle:function(){return a.mI},hydrateOnInteraction:function(){return a.eg},hydrateOnMediaQuery:function(){return a.Fp},hydrateOnVisible:function(){return a.Eq},initCustomFormatter:function(){return a.Mr},initDirectivesForSSR:function(){return a.Nd},inject:function(){return a.f3},isMemoSame:function(){return a.nQ},isProxy:function(){return a.X3},isReactive:function(){return a.PG},isReadonly:function(){return a.$y},isRef:function(){return a.dq},isRuntimeOnly:function(){return a.of},isShallow:function(){return a.yT},isVNode:function(){return a.lA},markRaw:function(){return a.Xl},mergeDefaults:function(){return a.u_},mergeModels:function(){return a.Vf},mergeProps:function(){return a.dG},nextTick:function(){return a.Y3},normalizeClass:function(){return a.C_},normalizeProps:function(){return a.vs},normalizeStyle:function(){return a.j5},onActivated:function(){return a.dl},onBeforeMount:function(){return a.wF},onBeforeUnmount:function(){return a.Jd},onBeforeUpdate:function(){return a.Xn},onDeactivated:function(){return a.se},onErrorCaptured:function(){return a.d1},onMounted:function(){return a.bv},onRenderTracked:function(){return a.bT},onRenderTriggered:function(){return a.Yq},onScopeDispose:function(){return a.EB},onServerPrefetch:function(){return a.vl},onUnmounted:function(){return a.SK},onUpdated:function(){return a.ic},onWatcherCleanup:function(){return a.zF},openBlock:function(){return a.wg},popScopeId:function(){return a.Cn},provide:function(){return a.JJ},proxyRefs:function(){return a.WL},pushScopeId:function(){return a.dD},queuePostFlushCb:function(){return a.qb},reactive:function(){return a.qj},readonly:function(){return a.OT},ref:function(){return a.iH},registerRuntimeCompiler:function(){return a.Y1},render:function(){return a.sY},renderList:function(){return a.Ko},renderSlot:function(){return a.WI},resolveComponent:function(){return a.up},resolveDirective:function(){return a.Q2},resolveDynamicComponent:function(){return a.LL},resolveFilter:function(){return a.eq},resolveTransitionHooks:function(){return a.U2},setBlockTracking:function(){return a.qZ},setDevtoolsHook:function(){return a.ec},setTransitionHooks:function(){return a.nK},shallowReactive:function(){return a.Um},shallowReadonly:function(){return a.YS},shallowRef:function(){return a.XI},ssrContextKey:function(){return a.Uc},ssrUtils:function(){return a.G},stop:function(){return a.sT},toDisplayString:function(){return a.zw},toHandlerKey:function(){return a.hR},toHandlers:function(){return a.mx},toRaw:function(){return a.IU},toRef:function(){return a.Vh},toRefs:function(){return a.BK},toValue:function(){return a.Tn},transformVNodeArgs:function(){return a.C3},triggerRef:function(){return a.oR},unref:function(){return a.SU},useAttrs:function(){return a.l1},useCssModule:function(){return a.fb},useCssVars:function(){return a.sj},useHost:function(){return a.$},useId:function(){return a.Me},useModel:function(){return a.tT},useSSRContext:function(){return a.Zq},useShadowRoot:function(){return a.pR},useSlots:function(){return a.Rr},useTemplateRef:function(){return a.AE},useTransitionState:function(){return a.Y8},vModelCheckbox:function(){return a.e8},vModelDynamic:function(){return a.YZ},vModelRadio:function(){return a.G2},vModelSelect:function(){return a.bM},vModelText:function(){return a.nr},vShow:function(){return a.F8},version:function(){return a.i8},warn:function(){return a.ZK},watch:function(){return a.YP},watchEffect:function(){return a.m0},watchPostEffect:function(){return a.Rh},watchSyncEffect:function(){return a.yX},withAsyncContext:function(){return a.mv},withCtx:function(){return a.w5},withDefaults:function(){return a.b9},withDirectives:function(){return a.wy},withKeys:function(){return a.D2},withMemo:function(){return a.MX},withModifiers:function(){return a.iM},withScopeId:function(){return a.HX}});var a=l(12257);const n=()=>{0}},30056:function(e,t,l){var a={"./application/Application.vue":43024,"./application/components/ApplicationEdit.vue":72649,"./cloud_network/ClientFlowManager.vue":55772,"./cloud_network/ClientTokenBucket.vue":57607,"./cloud_network/CloudClient.vue":74663,"./cloud_network/CloudClientCluster.vue":83398,"./cloud_network/CloudClientRecord.vue":10887,"./cloud_network/components/ClientTokenBucketEdit.vue":12050,"./cloud_network/components/CloudClientEdit.vue":5385,"./cloud_network/components/CloudClientInfo.vue":55341,"./cloud_network/components/CloudServerSendMessage2Client.vue":70649,"./cloud_network_client_permeate/ClientPermeateClientNetworkMapping.vue":70487,"./cloud_network_client_permeate/ClientPermeatePortPool.vue":52515,"./cloud_network_client_permeate/ClientPermeateServerNetworkMapping.vue":32914,"./cloud_network_client_permeate/components/ClientPermeateClientNetworkMappingEdit.vue":15063,"./cloud_network_client_permeate/components/ClientPermeatePortPoolEdit.vue":6380,"./cloud_network_client_permeate/components/ClientPermeateServerNetworkMappingEdit.vue":44534,"./cloud_network_report/ClientPerDayFlow.vue":86151,"./cloud_network_report/ClientPortPerDayFlow.vue":39871,"./cloud_network_route/ClientRoute.vue":20675,"./cloud_network_route/ServerRoute.vue":38523,"./cloud_network_route/components/ClientRouteEdit.vue":82064,"./cloud_network_route/components/ServerRouteEdit.vue":32584,"./cloud_network_server_permeate/ServerPermeateClientNetworkMapping.vue":66164,"./cloud_network_server_permeate/ServerPermeateClientPortPool.vue":41001,"./cloud_network_server_permeate/ServerPermeateServerNetworkMapping.vue":69048,"./cloud_network_server_permeate/components/ServerPermeateClientNetWorkMappingEdit.vue":20890,"./cloud_network_server_permeate/components/ServerPermeateClientPortPoolEdit.vue":62394,"./cloud_network_server_permeate/components/ServerPermeateServerNetworkMappingEdit.vue":69132,"./settings/Dictionary.vue":3723,"./settings/DynamicIframe.vue":88709,"./settings/Menus.vue":70536,"./settings/RequestLog.vue":57742,"./settings/Translate.vue":41594,"./settings/components/DictionaryDataEdit.vue":94544,"./settings/components/DictionaryEdit.vue":35757,"./settings/components/MenuEdit.vue":27523,"./system/DemoView.vue":23956,"./system/Roles.vue":77323,"./system/Users.vue":31138,"./system/components/RoleEdit.vue":27649,"./system/components/UsersEdit.vue":34530,"./system/components/UsersEditRoute.vue":8340,"./zone/LazyZone.vue":50194,"./zone/LazyZoneApplication.vue":76503,"./zone/components/LazyZoneApplicationEdit.vue":90651,"./zone/components/LazyZoneEdit.vue":67084};function n(e){var t=o(e);return l(t)}function o(e){if(!l.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}n.keys=function(){return Object.keys(a)},n.resolve=o,e.exports=n,n.id=30056},18786:function(e,t,l){var a={"./application/Application.vue":43024,"./application/components/ApplicationEdit.vue":72649,"./cloud_network/ClientFlowManager.vue":55772,"./cloud_network/ClientTokenBucket.vue":57607,"./cloud_network/CloudClient.vue":74663,"./cloud_network/CloudClientCluster.vue":83398,"./cloud_network/CloudClientRecord.vue":10887,"./cloud_network/components/ClientTokenBucketEdit.vue":12050,"./cloud_network/components/CloudClientEdit.vue":5385,"./cloud_network/components/CloudClientInfo.vue":55341,"./cloud_network/components/CloudServerSendMessage2Client.vue":70649,"./cloud_network_client_permeate/ClientPermeateClientNetworkMapping.vue":70487,"./cloud_network_client_permeate/ClientPermeatePortPool.vue":52515,"./cloud_network_client_permeate/ClientPermeateServerNetworkMapping.vue":32914,"./cloud_network_client_permeate/components/ClientPermeateClientNetworkMappingEdit.vue":15063,"./cloud_network_client_permeate/components/ClientPermeatePortPoolEdit.vue":6380,"./cloud_network_client_permeate/components/ClientPermeateServerNetworkMappingEdit.vue":44534,"./cloud_network_report/ClientPerDayFlow.vue":86151,"./cloud_network_report/ClientPortPerDayFlow.vue":39871,"./cloud_network_route/ClientRoute.vue":20675,"./cloud_network_route/ServerRoute.vue":38523,"./cloud_network_route/components/ClientRouteEdit.vue":82064,"./cloud_network_route/components/ServerRouteEdit.vue":32584,"./cloud_network_server_permeate/ServerPermeateClientNetworkMapping.vue":66164,"./cloud_network_server_permeate/ServerPermeateClientPortPool.vue":41001,"./cloud_network_server_permeate/ServerPermeateServerNetworkMapping.vue":69048,"./cloud_network_server_permeate/components/ServerPermeateClientNetWorkMappingEdit.vue":20890,"./cloud_network_server_permeate/components/ServerPermeateClientPortPoolEdit.vue":62394,"./cloud_network_server_permeate/components/ServerPermeateServerNetworkMappingEdit.vue":69132,"./settings/Dictionary.vue":3723,"./settings/DynamicIframe.vue":88709,"./settings/Menus.vue":70536,"./settings/RequestLog.vue":57742,"./settings/Translate.vue":41594,"./settings/components/DictionaryDataEdit.vue":94544,"./settings/components/DictionaryEdit.vue":35757,"./settings/components/MenuEdit.vue":27523,"./system/DemoView.vue":23956,"./system/Roles.vue":77323,"./system/Users.vue":31138,"./system/components/RoleEdit.vue":27649,"./system/components/UsersEdit.vue":34530,"./system/components/UsersEditRoute.vue":8340,"./zone/LazyZone.vue":50194,"./zone/LazyZoneApplication.vue":76503,"./zone/components/LazyZoneApplicationEdit.vue":90651,"./zone/components/LazyZoneEdit.vue":67084};function n(e){var t=o(e);return l(t)}function o(e){if(!l.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}n.keys=function(){return Object.keys(a)},n.resolve=o,e.exports=n,n.id=18786},10576:function(e,t,l){"use strict";e.exports=l.p+"img/database.85d61811.png"},50062:function(e,t,l){"use strict";var a=l(84952),n=l(97581),o=l(76476),r=l(52125)("toStringTag"),u=Object,i="Arguments"===o(function(){return arguments}());e.exports=a?o:function(e){var t,l,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(l=function(e,t){try{return e[t]}catch(e){}}(t=u(e),r))?l:i?o(t):"Object"===(a=o(t))&&n(t.callee)?"Arguments":a}},99330:function(e,t,l){"use strict";var a=l(6357),n=l(16141);e.exports=function(e,t,l){return l.get&&a(l.get,t,{getter:!0}),l.set&&a(l.set,t,{setter:!0}),n.f(e,t,l)}},84952:function(e,t,l){"use strict";var a={};a[l(52125)("toStringTag")]="z",e.exports="[object z]"===String(a)},13481:function(e,t,l){"use strict";var a=l(50062),n=String;e.exports=function(e){if("Symbol"===a(e))throw new TypeError("Cannot convert a Symbol value to a string");return n(e)}},74169:function(e){"use strict";var t=TypeError;e.exports=function(e,l){if(e!W^K!657QnbV@yNAR{x3BFRcbx9HU*dG89#VF0cPEbR#2=t3mZ1hXhz$#dWxf&My9W0#l{&M<4mzq zDP{9YyCCf;t?Wy7_WA4E*KXdvmURxC%vUb|U%ZX=c6NmK`bukmyE`!UM}y{YfSa$F z25#b(shgc~)4+~AZ^EOadPB(e2X>dQ*P(h;lyXIsD;26JCl*Ci%vXvCeig-19+mPH z5fzI00xC&G2~{g)3FX960p*I70;*I+l*?BOs4C@is8SZIs8B2vP_bMrBPpMQpLr2g z@&yre%_MZud7Ip@fkzt-dA}k-4DkUZ_ za*!?@aswDp$I@C3x2b1U-a&^dZYu-bsm06OpG<^JC{2-dK3A>^$dL7{!7BnXWu4EL zMFCmli7B9gtn(GAEFg_M83>zRff*H=?pR~5T-9t1df0HX_yD)I&0bG2AjzbqIIS+E zrRgq7lL^#r%dsJlHD2Jcu;~@ZbFG2H3CNkCmdtjVrq>fn;4DYyWLfqb<9)fNWAeL$ zoo5`!()I=p<~dcfI05NF@|J}a2fK-R&cO$cVqt|7HubFSjCGuCn}%~+dj-p!l+m*n7OU21HxKWc}5 zgKGYe?3wC#f^?bV+=g(lbBqor%g(ru&2|QF>2ixKvl<*-wxbv=c>c9JH=e(4^atK( zuB~0FlNG`t&c=$>>T-x1SUQI|2gBdKV%sCrQn^M}Gg|sU#WrsYbX}J57HxeEXQ5Jo z)=0+_>g9EJFCc%E1f)-b&DRSyRHi3$-t(Xnx5vFbQ(s%-Z1N@gBC9#rQXJFTVh7tT z&>M$IE#W0zTboiHhBaV2)}ZB>mMqKu^Gn|MY~L~+6S8f2ZL9eeBIp-69@=v3?29b| zF>w)y>>>~wwZjQ=WSmtn-)*6b#YU_ z;<%f9Q(s@F2Y@0wb-l5vWU(>mVGAZeW`7(VU6POjEo*C?0eyc-L>$=yoMvQ{wKZPJ zjx5b_-wEgivcIw_Zfgd-`ETV7XRXdfMg z$rNuiv&|+MkY-bM5S}1fSWtK;xayc=4>rWWpp8?5S$Gk*b=-1}jxM?1g4qx}8Vfd4 z>}}TWD!ovWggL%tnFnJpk+{hacsq)NgL%z5=52CuW?PD`$1CF@IjT1h&-7>_2m-n! zCeehvPZ&fFejO?D9?%zBn|CQcL*C<^u4W7DI^5Ldcq0_#-v!7JCRn#|MwbL^aT{CMXkmIpanO)VSFw#haWZ=t z8yU^e98J+R8>^X(j6LXMix)yEVASEj^BRqT2CF#}+9{n~x_ivV-b-G%Tkg|N=xO4~ z5Uk~+qr_aWxzS!|i+5S7ol_M@*=Xrnf6r7bb;Bn+-8l}Q?Yba%2UeJP*D0aU43UeM z!gCi|;=vrPtpOQ!NtPXEPT)p$r{gw^cLpEyEo|F_+#1-9cX{vO4CIE3K=GFfCu}l% z!y9ADP4LdzniISvr@psnYlq}`s$t}vOSMZPV$ZPJC2=wlkh8Yt9vZxfFr}y+q$33x za)&n=zRYCCI(bC{b-{;7TSrJ9h;79%OoyzsjFM^Tifv~UJJfG?!I=W$b=jbY0oj{E z*21=_5Ah3qNNMv9Q2M%NJJ{IPwbnk6x4L&}IMzNlk2iO|ZR+|=#R)_}U|bqV@s19< z1k!r6Y8=5kU;FfE_PPL+etM^Ep6RV--yZb)rsZID)#qH@9SqW(26E&Cq@#`-HH>um z(xvc}y7-;nwoQLOw@vGs((3Y|-L3=2HmeMJ1Rx#eOJ7?X@$99j3rHc)5a5s#-rxlR z?aR#xs^luQ2u;OM#r~xpfHEG~6_BbuAUCn?t%6vBO~*?j``^4peRSkxd*&-Q5}w)# z56y&UBfPh-Igu9=oW%z)Fm?pm1U_gJudP)t$ujnN{mlq5!`u>XgMlq`zw(YxG~rDw z0}=@b=S@?^lgR`X@|75d>;b}+T!o<}+}A*5&?J^@PN$u5R#DY!Lu@$DyBn3)k%bHa zAZfB;+4YUxQ!XjPgrQ(fw;e_t8P|nFJ#tsb3a@(r4k0?iuL0>GWC|u^a`HToPMcnJ z$uvTwqg#eMG(a9QLsLu0t#29GJ$U4eg?WG2vL6vf~7G9hVS&(uT-1Czkn8Po4R||($~Pv(bE;60w{;@Z0?B*yBHeE2mvN`7S&2nF7qDYmn^)X9^AE#lXVcFtc)h@h<&cwP;+7lK4GCt~AKj?#6`QzO zQ`!m_Yf^I;D>}7nLacZ0EYIwl!G|a&MBn;lB~I^inq@obD+IAe3X1Gz1bn%-^Eq;e zN#$C&oAI^p$zb7%y?yQZYuk4?|Dd|5^ss<^VjWl$LZ@vKFbQ&8zjFJ(Tm#`0coDfRbPq29krG{gBB{!tQv@M9 zj5ZF)Uu-y7r4R)t0IlH;NLUOR=3$T#m8{Yh3Y&)81(>OAS~`%$NQtvONP#6!GaArT z#XtLaA9Hsm6O;?xR>GlAJve|oGH0iJ$TDN0gOaj(M@KyUA|Fn?ONLkKxN&quKID2s zaMcJ7+XgUt&OuEFl%}iM6J#1KJf(b=yb=zTtl4h!7$_viz5dy|-|L`}1?ZTxij--< zE<(VRhWqS-=#E@(WNpyDpj$maK_!rP^L#=_1=2xKkRTahdwG*4G8S zt~9c3kJ=%>TFwD-{QKA)hIYG_B(+bd8Y!|~#|>o2^#(a#*47-s>x(Ii$dVPW73LLd z(_CK{l)4G602FU+&Ha&W(w_#M9C+$C%5V$Vf|_Kb21KEQGo)V9;0X$j1}FHQy`vf9 zYdy_zuqDGfbL2xtMx*lzxiy`-((sW=7!o)8CIzhFk$mVrs~t{!))Cj025%t4OAi;1 z|6}5d>5T-bI8a*IW)s^tOm(2+t+=iS_7I~1X=(@XGEzv6QXUQXVnCzgsk9< zW@H>e&zgi&10o>{#5sIT6{euWKuQDfCV^e*N@F5GRi>OMGl>yAUB!N3WO(IzH<$xu z@TE#gnDBz%TXrUSVS*|}u`JD{H*<5GFjB?@{g0ao&y@*kX$j9wP_fbZa-j&s7J+*+ zicG7OIZfrrLKoz#l-zQcO}()R!%UN#ASk8WuDh7cy510w!<+tN`d=Bdj!K~n!h@E3rQ?VEl76sj%yjsQ1L%&}jVO8G+Mpb5>all?OpXrq>;5kR@d zo&Nsq(@)+zz5o8{Ti@aktgad-aR?ezlP9s7cxANqilL;z{m8!H@D<1szgVT3@ol^PppkibI@$J?e zNb%--*Pc(YplXusa!64oS0P3`NxAvjtAIQIBSD?nFM5CFSr(s2S)LW{PL+?h}jIaK$sfP{gG(ITk+!VZV}q!qAp;#+ z=D@*L%|zr&&6)&<@jyOonZ3Sg0I63y^w{BBP@~S5K-ty5B+)Za=(d-mS9uXB*?T>KCtn7AA%JQ(KsA#S(4nI_I> z&2^2lDd7Sw7YmgIukpYA`1nV2RTfG)nIN+5W?fqr6_3x*-8NIMl5#0uD$qBkeAsN# zhOpb8Lw(Ea+ckF;(nHC`Q(Q2QXc{0JJA*##VUHlg-pbV{GA|+{`|O_zywB@-x0Zj4 z`HL9qWaV#kv7%y7v$n!76&+i!v$k9C!Y#$RH zn#QwAYrp2yMc~xoLw4W-@OJZ_(%J{Pl8a~5NOx}Uf>!c`7FR)a5AEO@ZjDg5g${|L zbnTF%8r&O>+2?9pPV66W6L&d)nFEKytLFFLJO0iapMUi6@ppfD^6G0R|M-^=|NgCq z@Bin+fBea%)1QBG{OPO5Z~d?155MK!2KPUE`0o8n$FKkPkB>D0jceqG>k_Di;IIyUkox17)b&=2-XF2ADX+e=x#`AVf+pymfsE>|pj zM3E&Q5}lJ8H^fZ}Jpq9eeb^)?EIAaTZ@jrg7H-!#^6XjjfSZt3sKL&m_1SX}VI*e@ z$Ty%y1=M#>V(xk6mGQPUP`ThjR881=+cf`n7a*+KG`fo<2jhY%X`_@}S20vQQb#NM z(t-PeDXo>g_Pkrie+PL{%|@#EA`p?mqjdVxc0q2W8C`5?1f8^Nmn5WW7T|qD3>_wz zN)40z5lZihECTHnh$6$k+^d$F48RSmsOmPEOERe9&x}I)Q)P zW6yGrJPIp#N1hrw^WYXB3*nI9YWhTWkO8NYn$^B05UCtte!~we`rzf41pW{vrY4EV zovfOK9Me(snmBRKIX0sfePBl)v|Pf^KVT1ArV7epgcNfoGQG?1UTZ#c>w4B6+d!yV zrjB7kd5aLdRQ1r!PTGh4=IL(p6lCF+X{mP2n8?ni{`wIH4`wjfkn9{t!3e zb(73Bx!uSiXPKiZIV^LOm_cjp!x9w|~GP%IMH_O1Jcj=I9!fjNMh?VJ=u;QtV(oF+tzk>bDe2>De_a zc=DWS^=bn^=XMlFfgM$Ak+)>(;8{&`w-cxlkb|%XOIGL0Vkut|vVSJc9z5aXT+ z+eXbsR`0B4^#s0+4s~S@>oxB9tv618@gb#yYaBTe=E&cJLBa~ft~rjj>wknvsvbF_guzky+Lg>5A)8MJ(>oqCzpRc^>Z54g<3Z@+Q+`}-N7 zhP}2nqF;jf@_B})w+jdEF7zL049n7`iPf(PJlz29HOZka21vHXNuu~=4gsCrC(Dmo znGyoOt980Mq}p&VX>x|bE7N$OGWsWw;5wJn8 zP5#ior16C0X0Kfyqfl`I;^3y9Q9|ghPbh+(MjO$lq#jh9pCwi~lP5|-AeW^ZX{yt8 z$C^k1zXWDopcTBQV{}M}ExNM&n-H1C?FjXtW+Q~d1TY`>EKJ-ZsVDOgQA&-ody1}m zXhXsV&eO@wll`G)L-YZ&>l9U`TW-l+>*r^;EF9yzs1BDC*J#i)ikkh-aYxXE2{#0} zl2Z?}F^UKo{^2ixbN;&zPu{rC(G5BOJ>@aF;YI`}Q3oB;y8?)A4!PIJgJ1mb2jBTW zr=NcR^vAD-xM@E*U0b2#$8WvCA#a)G#N>Roqc{WG&w2XY-<-VqTFM;-JBn_mU~u-_ zlOAVjNn0FO<5XCQ7PrW}2l__g=oOECYr36jKo4%IoRGWmw;pu@Iy zfYq97!tQnKdl?AWwD;_U-oL}pgIArNUn`Yr%+oL`nt-!xr}gz~^Ce zOd6=pHJf(J?BnaIy976e8_nc(gqg-KXAJC{k+qNGb8qQU(V$ z#7B#ZO1ki7M1t}0JE!mbGDU)M%hU`9R=f*MuxUX8sq>{mxm@*-(iRJ~`qnWVc<(r5 zYdW@qUapid`)hjq9*Ns4W29Rv7hPtx*Czpra8 zcLjzeC~&zSi~+183-`I3aG<2$DNiHnHCT|B1>J1kJF(?E{8|0qw zDNrO$G@@z7ev*!xWRDT_3<=bMkt36u<*SE%7yi2>BHQ->qq^Um32H6`S}MWFvEQH5 z43&VG!(~Ctp$B3P84z>mgP83FK+GluF?o#k15wv*GE}vl4prSwfvWB$LREJo<@cx* z`Fau5z~wP#g&-mQS_C87o)aUwor)3dQ;cZe#fbd=Y1tdsfgEkl%Tk&yYcW3%bUUDR_bCvx z?*c(gE1o+L_@3)GX?kn+DZK+9s{nYQh1bv_HQA?Eo_nMajNK(iYKI}3E8O;L&x7?e zv^qvcg%iGX;3ssCGNRDqr|1X-riY4xhhxD#7yT!D#Oic8MB?^*h{QfcB;W&3&n`3J zi((Mb1(S+Fyv$$_!Q8xr4m$%-*{0uhXqX z9{s5)@b2Uzo;T0{XrH7}JfKFu17!CVqgI*Yta)X|4o<4&u2+lO?Y_PtiJ88&A&F7Q zt5oS91Yl#nM3fn9s|CtnVzFEjP+N0qoJ-&Z^9<{g$396w75H3zE8TRjbE3N4GIgZK zUUf~|A)L4p&t+N;Rl76$*tm&D_ecVPYU0_q9g<843AVV?fBpO8Z~ZkT>rTG^;pxA; zd;I1ABMGv}6(YY-dPm;-@c18JT}4MC%_1vYnxh>jKltGIt)J7Sz4CTk0zShCHq@58 zhd_ghtVnK=Mn-q_Ikh%)Om1<}T0x&ax`F1I{%NEDgF#w82FYIb0n}=&9BPdc1`9x~ zFE0SKCUz4vDmk3Rq1UsF`#!3RI1atf4j z*YGF5IQ`^TTO8s}-hAuyryp~~F%%T?Ea@4zPN{LH@83VZ{|_8$f$_M`zBzvL`zOD7 z-6O@Qdig}iI$dnAEG)}{&&PYeNS(1BYAV0lo2+!qd@JF+V*0atxkM-WI?fNV$rT!X8kbH-tqt1muDxTZv0- z;H%;jf=vYVq#Y`3bUne68_7jk5GZ)=Xo_xjYHqQF9y4w1KHaCnUigril?wWW9%$px z1>1D(cAW`(J-XEc910b?I;FI57%V#e`!54VMbXuXhgi0wdO$tU14;l-i%P!GE>!Xq zJSD*8<4}!e06UNp`P$LU7}F*FtZC|4F?_M&C2@ihRH(hz0aoeFWk~JNOGYdwsQIo9 zetLpQJFeRLu;K)NaySkpA`Ks(CKVx}O5d?nbQ=$RGW@-@9)f%6?c;C$D3f~B-g6JU;{ zyAhO*0BVTYO6&*3jZP(Yx+}4B3r)Up^}3X&iKTo9MRREp217$^T`6dhPIa!}gWOjx z0GcK4n!#}E=3KhO3FwlvNo@f^Xn{u%iJ}MRNT^mFyMvIWemM)$EpOgr0jlg}n6na3)1)$3Utus==frp5s-@31Qj0NWgN@ zr6J~_-EKQ3sKp7j`4a=3=kI(KWwTjz;)?m`5wA~VOsGJ8ZA~L?2!+YiHBxZbNFlUF zTuL^Cv(8l5A=3OqSN#+Dasb%8FXA?p0*sI~(6L<``_cf(W3>p(#Sxtw0&UIYtve~4 zJFD5_!fK#r-vn-gV2Se-Zn`~*$O`&tvI3pT3iPO~pf7Cor^yO9#L6cYkQYRI?_G_o z8q}(LZ>RTOa@SF~_qMQQKa$=b|L_kdKmNAYdwK+{y7#U0-sfoVbK%~%gss*&_dZO` zxV;Y!x}}Gpn>+-)^dWFBn|yc(dcsyOJOp!8zUOrh2>8^at4b@Zh7T?}5{Z{vP^>iV zM0EGDB*qE`OerpTT5i3%;2fPXa-FPtxen9k%02W8;kgGq2g2q#g($Z9;)O6LTlmC3};kVyhxoVWzZa)tM zk^B7fkN)QL%UFV zuDWB9SWh4}@_o33I>cyL4YGgc=~LMeeJVB3r`pyvY&g&9=IDlEC=?Qm+NDQ;13jz~ zHIVs8f{;cPgMyH%uB$V2rU38oQmQne?Wb$G>G}+~F#xqKhWSP9h4i9Yx;ap9VrOJp z``MvpYmR9Jqe4`p1~XNo6t`W5uNq~7YSh3}jT-o>Q3@Kks!@g?*UOwkHLC5aMhyeD zew57CkJH)uP6`*km&mhsr<&_ElP&Z16IGOEY9g`bI(zAwNKQ->X)wpZJ`Qeh&(+iQ z9iQBGm)kto(`XKrBsJ}>8d5f67-ch5VN0EMce8C?;N~9Bsg%@7#SMm(GZ;pdk}RT> zG(he1Q%dRtz{!wO=)IfqsLsi7s;8tM{op2AOnKId@ZXhuZ-`~ zQ}vc?#iBenxRFtWvaz50}Vp`e-PGM8ON@!7+EHwkN)C$PbL0}dT*a9GxJQa(g zK=k-Y{8{iV0nuOc)gow{15CQB8BT@xi{_=0z=oQnUcr^MwM)DrC&gZ9S>wKAuC38e zu;h4AF;ufhZUH;(Idyo|S8cKLEgbGn1QY|HFj9ttN#5e1b-Dy@AHExH-O(E0#9b*T=$$y6WV|>$ze{2s|}Q zCBfAn<0V%Ipo8{McXh#DMPLC&bzFDW#YSVDev|xfIsaR}(OBm;IQLhR4O(aFig*zBW!IeHaN$I-8KxI-?Ps1$zW=24Xc^m z-RnCU&CX~vyk)SWbg;n?(Y`E_VcwNfTv4yB=|@N4;MqAkf-T_heeiLEWqfpWI1z~B z@}r{;vg9Dj0&pj-eH*{L6@0DjLAz;qTl46Mez9m}0~u%OUN}19an>?AM@KyY+M zYiqnIcjUTsG^mRWG^k7PCkKD>@TUNOV4#p&EO7$4CrhP#CBMcG>ZQh&E0v=`y$rz_ zphk^tZO_Ind&~W-kuZjaIU;5_Oe(`oMLui$>k_hMZKJu)s~h{mWeFFcfA$qW_KwUB z1Zj}9F0GL!2?!D%9cfpaLMS;Ydu@$ZWl=!tRawG?_!$JJM|LRjLM^kcK)gTdIz7`f zEu3+>ijk4T8yQGtU$$|J6E>T&hW2F@?a7wwo{E=n;VXQuR4L?(g<^4y*Vbhzmy@cw zYOaEdg0QX%UoPaTg=(pstClv6y0X6BkXu);UdXKIo=BzWlM4GFS1hizNWFbo zyBrky6$uyC{3du+^pmpp5%V@zSd)rJQi**QZh{4697(wfTZZMIWNlg8Y+r%%s4YN( zc0)Gn?S}6(_~@t$dZDDr+j1nf&?N{?8sB+d5LwuDoF9HK>EiTuA+S@tBli`{#@7u8 z%&Li7brDqrB$Wh#bQKZ#h7)v=ApVX&NCf?c?m38nt4SqR5nSkQkrhNhM=wh$Ig3<4 zQYDn99OS8_Jn@NkOL>@9ej|GtYmb5Rc>r#P$K-vB`mTLh&Nxfr0Io(#JeD0J7PA@w)Fd z71qio>vSK{@U@<+?alRd-FIJ|ZFLoE+f?y04xH|R6KfK#C)N}auU6jX6;M1Y!QJO6 zSI1T-m?_$QrGyN5GdD+F~I{JY6$|YIH|a1fm(rsELcpX{2F}H4J#a)a6gFts10Os zb8tn1?K%*Qy171R$X0#eZ&zdD2aB_W3B;pSs52cLgpu`GULJlsl!bsn#m3RkaQtzNlO z5Z0w2-CZ{50beQ>^TjnRth?VB51O#5g>~L>KXvkX<%(1~qDl3j%~T_FY-F?tm#MJbk-C^ z-44UcAluHAY|4?o_RZvMucT-DhW?G@JO`IcezJv&f3~I zx+5HaJEX*`h7Avn>SZUq-6yd)IpJs>NSE`uuXwu+DKaNYxqP8mDg&M0QbF6nki|{o zioR*A%N5!KQ^s}U>eXW7>eZ{pm-9Jt7+S$GtdK@L#|hx$VMG$vVv6EK(=gd>hdk#TL-vqHBcFClqzDS zT&m^?)q0CJ-Gzed*1FU{QVwn8E7fADPy|lckZ#j;qe0)ZKAMg^K7mCK@-FBYVP(WuhVkg6~Rg@RO$w?h(X zLkc;ul#jPTlHAd#R>gu?kV?6DGo&18M@1}@#C)leOPG~BZAd}P7r>K3LNf~PcofB) zDCTliGU_`}Pqalv(jqCBFBS8}d=BJwUPBtFh&H5Bv0N<`B@x=O6KY4PfvPaGrD{=> zO8FeLV<+4WSU?3-D&)&jxh#8UeB56cfl#0blsVc=A z0V7^T`HCo&M3~iB6N;n>8>Nz1C|C0NVyq3Y{-6~Fu~^KPD}_qD6;)_Ou~aD(N)Y@l z-iU%b6jHS!=1VZ#(RSo%Go(s6U&>cYQoI=z(hNx|<%@Z#C`$2Wz{JCp6bgk>MJkla z@s{LBLyA&Cgs#M!Q6|lh$}rcJLYZuXSID{uHwIQA42o3El}ci{oG%FMoD^WvD#aoh zi&sJ|s5Foyp^cmfC|aRVB6IRed|8x`RLNJxyjX-?pvbR;>xW6nqm6tqFIJ1ilHX2t zdBS+Y`)W=siSd>cNK2$#IajIX^TmXQlu0`_q++p9Et3@-YlleNA&J#OIWLw9VnR#u z(3Da|%9X1U^}-x#2py1ou~N*JbGcl+8F|`_axPcQN!4;S-i#7yMY$yAs#2vIZ$gy} zMyVj?ONBzE93KmqPiRFUCsm|k1-3zKR*Iw<#k^Q9AQkVp)neBu^T$Ayuk{YNb>XO9?Fz-Ij<&shG>hn<3F=3-6mkx?gN!(we_~0J%7sF_86~$B#S$DX`HGm(kUVLLlozW~ zQ6gS!q75m~nJE;Dxx82w6B;79BO>L*oFwLHq|1ZYOPK4C8^-#dYO!r6F9oqI@}@3(!A^qZbq`xIo9X6c{i-`VtX3 z2*&2JbntmpDj>z>=@gHrb4UPamZzhHD&gr2!Kv%(MnhKWMgYMCJe?vi?E1?dtuGwf zBr*_D_)u(|5o=!7HT@gFmTZ#8QjL7%{kOnI&{sJ&hqI=9Ltj&vkivID(Z=wVE6x$7 zjFLl`h?@z>bX_V+m7*x-3RNUkiq&$tn6Ktht{{rlVzn$*P(EKR7E0A}B?kn3ouP&c zVlJP{=L=F9<%*?TzLJ;3916(bd=5_7axo{82zY5Mi!ukx!Yna55lX$G+wA?(-nvXSPgPCh$s_RkW@$ult|=gKW3k|{w^2RbI6i!C{8!q!kW&TmnEV$ z6+q4wh^xd+?TWRzzODsqks8|)kkgjMO`EPQTTttEL&o(|;VasD;VX9I%9UKwr-jh zA3P0G6r)A0`A}EUAFP%vZnjA0TS4dhvChN!*^|Z19_@Tj=+}Db(X7eoCdy z_LYiA;Lm=&-H`9_{d#*N-}nZ6ROp9Pa6jRY78oHA;Ff4411yQgGN6&DBLfPF_GCaH zQCAi>yR`f+U6W0A6uOt;^4*v3@IzD-)?enEXoSY7BdqVOJN0H`yP#$sN>@ z$7n3y;YTPh0;(vYkvv30d4EFiQ~0w!B+m&>3V+r|?(bZKG;e+E{?0c@JJ&nz??Qt# zczq9k`$u(MY%s7Q{O}<~_(9=BI9-&$o^OyYG06*T@39D2}fXUd7!FT3%^JJU^i?t&-prj6m+&h{Af_$x3jzo>q;sRP#Znn=DrapiRDnA# zG)jpnAT!${p0g8DvhhqzH-t9K_=wIJQ9f1r{XYe5LJmA9-^MKqJ2QRvxp~G+mJZFa z=V$1;8JZJX87QQVhz?|mCqKpaqbjVo!;e`N)_dVs{_?&X&*Hi9GtyL8Z!vEf zcX~VY@f3G@MxexMFiNanBTB3W(Q>-Gh&#PeShdXvtF{@QpEg%fik_bPc!@Q}m?T)E)rl-Lt z)fuVC9TG>&C!`7A@~3$0x~+27)^=CrwrV2q`m!+<=3OWAJFVJboK`KnN<7!D=S6L1H#!sJ4G5v(e9# zM6pnVKbg!1&e(l`Hp%Q}4Vd06O`6pV>}-H1&J#U|=X6tX z_#{80!n%a>!i*B>$A+fL-1?2|u$a}<899`Ge`6nyWp3SDk8@sgbsxole7= z{@+hu`*R`CydvpGie-S3x10X>r@wyiA3uX!c#xrif=NvZ@Ad5RnvUK=^@{6%DleeY-*5hy9Vh~e8cT7 z?HkUB`G%XIa-mepuP}PB&X)_td}X;f8LmML*v6ErVyQ@NV~Y7ok($PYkk6$;TzEj@ zyr$fV5GPzm-opnU{QTrE|C-{S5L$Ouq>JZGFMvWKz?oo?Z3pP)ln58waH`O2IN26k z%Z^|20ZlFI4B>|zwbJf~<6QK@aV}hhv>l3-F^rZm3R`-Q<%Ny88C&id&>6Mm9s_i? zG#1thhRzFX@m26i=27$fcv%!|?4e*|1_c}YDA;I$7#I6K3Z^}_7#9%~?0RxgiCgC! zRALxI!N!XPl{lLz_dL-hQb8e&B4Jw8lzSE^w4^Eb+2c!S6vfh_rrZO9360VIBZ)7e zQDjPsnsN^aCgeJ>LDO5KQMdv=R%Ob4J&XyB7Bb}?xR?;Mda5b+z{P|}!bDT0)STDPW@BrJEw-Y!e-D1${`unom55|94e*;1 zs_DI7o__qhW7s+Ze-Vf}XKJjh}1Dz>3CXu23I| zj;|Shk=_mpz4HiD+5ReQK5t6bJ+cLH-v?L>3knwcx?Zi?i(^}>sHX6Cyc4q{Jp zdZFwS^TvhEG*g1eIg)ii0FZ>NpMQ4$|rUm#i7`Q;Dg$W5N!+n6Nk{9_*MhsqQLv?=W|nBl669$8eP7 zEr&SI3wA6n*<8?l!ZcEd)4i(^3xty6?+kO=N}tml9ry*K9Hg{4ZFcjtlKecg%TO6) z)4XuA`TX^p*CIeL=T49RIzph3tS|1~ym|fRR~c=%w;sIzx1WFXD?hiFA}RL^&pj8e z`Sj_6Z|R5Uz4UZflFA|tBNFk)To$9a+Itr<~8 z-jS!sy8>QhcNM${w0bUHgd|MlMS4lRNI%AlwCCbQ_7@h~_&H2VgO2Oh`w4k&CFhAr zY);;L)^yFqU zqv}!3GT*+>m8!*K^|5NqvkPU_o8uAskSSwi1rZwu{upQs!(al>Qm3|W+~*&?di?e; zy)!=GATrbu75J|7Z0Iq#V1oxd27k5Wo3LIM5GJbmZgJoF{G)$4dGGc4OMGsi>tDx; zMN9R635fi@VH!@C7uNHLsWejMtH;0lkF(cD0*VJU#_DT;auJknCB?aHr6?Xvv$_jw z*uxWD>uC;I374es%HTNUFFhI!(=D{el-Z6JIb=#4g$o=9<#m|F(HAx~Kg^>iaB!cv zx~0Cc8}pbpzz@*qy$LtR*AKeH`<9_zO15pDGuNbd0vbo^VBexnfOgM}Wv?EI{O7#Q`EsN)nkaNn|e{ zAd;c8OiDhRF8ORvBcDx5Pni*VYFc>6bTZSVWTxqbGj6RoJmh9S>u<-SBfcM6x>N!m z4#YS}3dFde!NP52i1~gbKI4LAP)5o>$0El;Hk<8-12{Tf07qwS&7K*+(WFs1;bRry z8~42Mjs2AHjV(8PqaF>~Sb><0K}^Rv$kd+C)IR+Cw~k-`jdwFsYR#YQc{o`snUfu* zak3^wC(I~1F%q^$5l)t)UE1hdX0Pwiy$$B>fbif0co1$qry1ebpMUg5IE5Rgg4@{e zk4JKLn7V0kHSWJj`4%pfI22CMZU-sa?LxIs1^jm|gHSpY$rAXUCwWh@0gDCZERab~ zFd>`FB`r&uqjCBiNpy}P5hWAsggxB|2RnqihZU)8`11MoLc*Jf*)od=g z<>5m5rzXX7%qX5SOaFAiFo0(Z7?-aU9}l191L98;hvmycW-&uPyPXt{-P7DmE9La( zubuqrCnxXx?)c3gOe@Gk2IeYSk14Mm6gOl_8-)v7hMV$*O6|lK zHwV2KKjk&W=cK$Be#2ty5!=kA*rO**)}~ICwawt}5mznW)8V2V)$G9PXYOf;Fk1p0XfBKngy88X6CEh#3(^Yx6(qm|uG(iL zglCGI0+IMcR|Ag)PmrI2M-*QE5x6v<7Kllzr>g7Lz;#Wahg=ibVdty;sB_k7-de%m z!H{tU8ggC0aLn^5s*Zv@W16Mo=h$;|bQx!$Ltvm*>Cu26F6+c#=;@{o87Brq--&@e zmlFfu7As4X96kEmx2+3?N1ynKhCU}tYWI@JI#qDZG<{W3CtzXKbe423-ZP@&xt+q9 z-d;}ill5`nQ~sW18&LZJ?H?uHato9DYJv{oTW_5H;=@IWdsiLIAnIVgkHL|Uq6DU{ zgc?h(bR4d9hO*b~u(FrEkk>}fLVt*w)4eu&7WyP%qSwZ~B(IH~nAgVcT*_X%OQ>$` z&ZUTzpi8y8oC?S8!>%YpOBiPQ;XP8x2M@qYiTyr z30BkXM5}3sA}@}Mys%c&?XcB!bB5LQeAd#0Onz)az1!r*xgAVa&U2LYg%R;lanrnl zzB`K5!Or#m%mRa(;fME6e*Eq0w`LRxR*8!i3RKCP|CCVhP_s41v}Tm)YI@%P?D+mq z(u!J0+?Fa`i#bbcG14`^NgQH0g%A(W_uJiLDs8bcuYQWm>rDE1p6ErJTOH4(jE5<- z?`UDE%;*tFWkNuWy1Z0o$Vz2G;GQ~NDieSwb4q1~Q=~E>sO`{Ru~cRXEyCPsxvzOn zN?kE!D^+l!&LKESQ9T6UVR5mEr&|Q#kwmeHy*japwkngl6s5KPq5_h>u+={g^pWW( znU>Rk_$wC@S^|Bv7M2Dj%M4~ogB~UNSQZPbvOn)HWPhHFK1xLr2$-Oc6;UjDkfWUj zIkx7298W%a_u;E=GDO6=hK3qyc;x$1WiIiDKl!T%zj%EvuQTZ_XCOy4fE@b~$gvfT z5p@e&Jun=izubfIhSKjtz`tohqZBr1RD#jF2Sm0ObGzDR=nR%9nuR{HX@@lF$WJ+T zQ?mLuZKCNh)4y3O2tm|c8l$DUv3`odtquwwFaT+a99X zW)RJ`k7%k3xMl775M(o;zxI>quibR|YaWy_pv&$}MJ(?oyJfw;tXozag&c*ZS*zJ`mlisz>=v_NYkQ-|E0(b51oMyh; zsYGIvUYN~f->hxaJwG#F29;@28o8P5o7MA%KD{+fN;@|rwDVcaeD8*lUv(+ptkCMY ze6x~-iDtgzBs1Sp%*?kFi`NsItW>XzzRDYS{ORvb|K;7|Pu~oKTPSq_<>|2JNd%w0 zIU@MXyM$6B_*_qq;FGxg?|Jxh+cJBx=sNH)&BEEw$(|yK8NJP$l$pd-3|H!yGpp>o zmzD>#BtY#1`#65@!{dK^b)GUptxrZ!5=)sLSSXTszQ96}ObK3|BL1C1nU)j_=##lN zLZZvoy%mQQItMST*B9`@x;@PcD+>Umg=h)FeWaxlko(l^VL92VRj$lntQrp>`x0Avclm9)?$I-hva7-{x3jOr!x`euJ{W3u5!CiLVTwMJmfC0 zV7&NFEAx$;D%WW(=Nq?4G0~=HpquU+x4Tl`xW!yiDn4eEq?Ctn>{@`AoCiokFW!@1 z|9D-UaNj1nkj2BkYm5VV@@aBe?@l1Q4P<5kLqHT-<*`fRNroK!`Rk5TZRH zK*$#k_L$qD+f=wCWs{x(Ft}jj9~m1T;-Llf#bhz3P(7YXBumJJafLunlCgch;6M{O z(AG2#bTD63Q#H zKVETrh`zoMw_k|c5wQYT4cIZ57wp*dEX@vG-^Oj-1pm7_ZadtB^6vwA0loUC$>l1m zia66UF{+{%w{r|s3}+S=Ry~Xt6{Uq%V&EAkj-E&p&w-4Q7MOUdL1gK0Oy3qY@zjz` zJg4a(Fdkyq2SWz*2`vncV`rA*;*-OPS@Mrd8e)z^5ezBfel=9th^=cJud0(&#a^g} zZcss!8L^?TY5Vr6o}Vwz9+7Q>?@HBs8MMfEr0Ttjwh!%1O+cubZX^jy=`+spe{-7bW1C74SUbHDo_XGV9Pc)9Qg0LQZewl}<|>2>C2+PzE)<8kPcN93wK%ahV`kS$<6R(#NDo$0Xvo zcu&~cJLfU+yfaT5ghjljq;$QR-t`jgdMVuXrm)p~QoN>sEzaYMoEs&^{^)``%?Gkk z;4T%ZQ~G^fqavr9N^f@LqvMa?Ieq7s$8WvylH5sO&pYIqT2 zNK5i6=R;THbm*#c5h(T|Q0&4nh8E-9X9k2_tT+#vV$YVOW8sfDO6>T2qZExEN0g#f zGgePun4(}-S77Pbd1Ud3mShmdD+un|d1Rr89vv${EFqpIU4O1*4>b$DwjNL9u&5sa+^^ZuNngY5=V?-GT)1U1y4ZKsQA{ zAf`B=seg1T1I-k^Yd@Xu+D+!WwiEfT+bMk4y@mO%dyhb6AS7ZxgUY~dR%IXr(alg9 z2y_auFK z20d&z*$#HD=@`B~JHD>+F16U~W2>nu<7OM0E+9oVvbQB(cdha*Y^d0Rb=Xpjp<;7r z0N9J=j9Bq>X##LG7@O6=z`K+M%rs@iX@I9*J{J4iIx~P08BWd4cRqP%&`LX%$ty24;>> z7dEiPa~1{zM-C}j`i%`W%%^+dun-$tF(6aOONi>3xUP|lOp{Z;#z~_1We#;Q9m0|b zSHQ$QS~m#6B2YI+)k^tkJ`d@||KPK?KmX`2kAM2l%N>tX3t9HG1fJ}Xo|xs}y!4#q zM2}2#$#DUi`43OiI+qi)ZCX5mfHGz~6F&!q@IkewScwPhdH`xBSg+fT(%J`OWzz5_ zn|jvihO=$|P)lwrbFQX0Hgsao)mU@joUyg+lw0IPej3hR`bDbMT@PV9ngt*-Vup0a zAk_0Y5#{qaloutG&lga>3cp2^&xwr*a?8EeQ#3tPtUK_}sIzO3aw3xQIV6b^lJW&q z6;UoPqMXE3uxn_hk$Fb7m#riRl~i&_s!AxAFQA;)4YroMnu^V{)FKt3?KzZ#t`rMM za%(BDwcIA|fil;O4mmcNnrI=F5*dpMs+I~!5_2UamC98ll|&Iq#j@C#(u|&B?ZatY zJJd-y@v$%7$8fc4nl3*Q>=UBHY|Dr6Y0;a zF)HOmRLYva z$`UHm$*0|7>UqKGV#{7dO*vG_p{j%`WC)=aM8>c2WRX*`n{G*(Dkql8k2`olB_~3H zNc4iDSgA@YaUBUv+@M8>9kSxh(CGi%t5QOhbcGWRI5ztMGVv zYmpEQ!#VKNd#eiie0xD$ewSW&yNjAU&mqa&rIO5DSCYBUKO*Vg_5uQ*6p`MtVwhkW z>9qp-V{{JP!*rf0ygP@((sBBH=IEg37LzIX?Oi~eaBog$rPot+Ms}%GXqS}=1+g@S zX#f12m0k~2W_GC@W|x)2#A9hpZ_O^%e%Xy^z@Nog=_{*A`}oNq0QgnOfkK)ZJWRkEA;b`!Mx$c!vp! z9yaNzLtaK*nm6uQbY~IIqC4m6@AG9*ORAc{(>1XobX$Y#ZOZ7>2U47CiK{fVQ8&soG%;g_5GLp{~E9ZcW_zEdc7%Y;~ zu7xoXs)_ixF%bfR%nN&X>7KZdjgixm8QP2Rj9<9$jAvjPA5WBvC78yG0E`y_7%u`a zrp2?E#Wdbqhy}d21Pgc(n(+w^&G^M+0U4qul?A*AHSot5SCI&&AD=5PvLOHHtnWQe zXqHKPK&vJfaV7^~kK1V%!!`z;;huT^`DqTkyi9E-&oD?oIA z%_;7^Le9z_w|lR2G<&8iuk@^*fw-pn-nuk(1x~submS^4G5_v9LML6F^ELk-UpVP{ z99GYr1mJ7hlr8{=?LFx(yP|y$J17hI_2v8exIK3z^>umoWP1zhHAUP{o|nDxnG8&c zcCh z9Xd~uXW;Q8^9($GT08@%qo9kj4ouebVjWiM-*@x~SqJs}h)nAdu?Xm**)vGg_T|E}{tB{?*lc0e$cp@~g z21El(e?l~{)P*##2J>oQ4W1AUEXsg#$DjW0^k3dR{`AeT`otGPCu?r|oJbDeog$hV z<8NjOA-%0+Px6Unuzo>(wJ+8e=ULRg+-6$DOQO~bk{`eR!{bjrK6&>y58wTd!!w<>NJp5k(ZN3O`?5gnL3)Q`3)xF*{)jcgu zb*~jt-Rs9y_j-$}?)A=7b*~_aqV$+ihf*$IjazT64s`%;ZNL8UW3k@)nr1s@$5MJR zKq1_ym7ocp%lOA_%N2<;GZji;(>`%FUH%n!VZrrn^0m7u@lM)c8Vb`~;#AOVY*{ z(&Y>3G9pUktAQv6^FkCs1Ufg;OItS;r^Z1XEN()%?twf@E&E=;Wq-ju%TTMy+5Tn1 zx^XiLj8HC#Mx9Y*xkU?2GxbC)xG>A7PFV66w;CPD7-@mksOnFY&43dFf}6k@rX?AP zPLr0?2Xn`RiA)10X30M;KA0SbB7jVq3!G83)N#DDPN=ZGpsa8(nN8a_P4&#R?WlX4 zapDWFa@3jfnve;5kpwIW(T%(dtXrP~yVl+myH?aB_oaK9H5q7&m@v+k9zaLbN$;8J#?Hvp6Dym|4%5weTQkjg2lXl)zv@cNc(*+>-eHOvZ+~@W zy!+?t0jRm4dyxUfQwJ*xo3siKK)qQWfV3yg1JHg7Kt63+7lh4IW_B-qW+gha5yRy@ zVQX)0qkL0j3KG`2|9bW9&~s8<5_7wn@LCCn zKnNC{<2djE*7?LY3&q|VP+`Gf(b!u{+q|ca$2|KeW@5Dbh;-6NBu_^q;)SUrY<13g zL_9A5(}rLX-vB9H@1}RXK)YTDcfBiYb)OjD0H7iN_#99rtC>GdxJchJp`5vak%#a9 z?(~QE6OabG)x|yKCJfGeB~fVi_~Y*-6sGk1x<+C0xk^0#_?^>tetG=X8)x)(mFnEe zj-nE+bZw6axWK;c2QPa}71OSr6>+YeMbox2<+vXP?{Hgdc$8##Ui zexO30lhoze$Pw!YD&##yo$d!Ja6~mH8#$Wd2P))%>d=0?exSTHO8CdtH2%>|=rNA$ z-bh;S*=)9z&MvBRczsHAzO^j7IP}=XRtmdluZ~@8uhJqT#Vt^OQ9n<8VXJ>GR8RZ- zd>{1|b?~%eXI5vUZ$NkSX_6BqX=6TB^iV{NWhLUBxL(VJfQL{{vC$5sI0<7mQ;riW zZkSZeC{)TgC?u?8%Ls6W5m`#K9yFSofLvwcDYBZ*Lb4iqyY8`4ki92L3esDR6l5<& z3erudQ=7?@?S3Npx|>42ZZAx}Za)GkNJwsQ1}VrcD+LKL_%oy+ff!~^@^yEL6eJ{m zdE8QvB^7xHwcDOT?JilaM;s>{T~p4NY&P3In`9+X%(X13yzi09?emwcbk84y-&+_+ zO_r|A0#eTxgYR8n@S)|h1O^{db6#G6Gh9@Fb8g`cx@SS*6O^{kMO>LInOJc&grqT9 zH4fi=GDQ$)3j|SKRjBjv(xJ|aW%vpfm(@bCP@oo%sj$oc{j)Ia`4$s=A|*=~ApQWxd&= zXu}@9|2wzLFfhO7a)b0 zZR(3yQHiCfTNlZlV3KNQ{|pS(20E^_vh)jxBs??Kal}k@6qu<7om$QuHBIK=*`JQW z_NU|U+fMlHUbL`o*x0oh{<+UE>9jX9tXN5+U7BXwPjcH$a*yGx_lXH4YrZ-P%vW1U zeu}Qk0Xx9bx72)9kErO|W81;KY7*Q~gp3pL{KmtA2T^@#~%F+YTq7 zo5>cjHMp#Q2ma_NGU@803d>)i`C_%jA+Qr^|6n3#U7PO0f*|Yj2Cjv@5GF$>s z%8AKG2A*$!Ir7!(JOs8H5&ioGdk)!V8+0Y?Ex(6QX{3jzpML-J$FFgT$!$k*26i;V zuRl5dfBt5gT`Qi1#`lgp9MtXrzHWI|Zqvb%*buNK9KZhVgZF>Q)wq)%zkT}M-*8ET z0x45RXA2l2>roF~ChE*TeUJ=i!R8>b$rx zS9@VDa8fvv=#7`W{~yI&yYx{J&wQ49nB2u6Wd&UTP2GG-9XTYTM9e*`2iOo0*WnxE z>GIdG^umedUD%gHXDMF}cF32*IPS}#ljzG~hpIE|B=~aZ_`V!&@nNSfF3c!Ug7P}= ztKftud?l_Q8iJ=NbSD3st@wb9QU;_*2c#GqkWtvV#jTY(x2ROgVs$mrpf*T@biQ0D z<|_iy`BJ``ufi9pTr83Y#X?0)6d1WuA~TQ@S%Da75XghHs60pw4}z@;CIEF# zQ(+LS7S{kLoo*^O3582R11?>3^W9&by!x8fwg>@ouCkhGl9JQUK6&uL+jC1wZfGsb z>~~EA`@)h?KNw-jAP|;l3Brige7A`>1nO&Zkhjod+*-exOL?VeiaJsp#kfN zMN)6duvV3%vK7}WQmGVMX0#ykkVFXtSim7AmV{oNo_q7?Znxd(q?74nCeFR-BzM-t zzPE4RPTEPjzf7d6{5A6tX6^F;4!{FGBvttl{b3gcY@GLFKYu%EFUb*;-9g+s;h20; z@v8`A!oaT~*L3kw?rV4NyhTW73qR@NfULL-n@M|f_&DfzZh#;5JJ{3? z9PdCwZXv*gfAto&>e$z{o3$G55DjUs-FQs{4CRLBZ&+~d!-i6Pf%l44g!f7es=zIH zu8*yHA9y%iqbx9Uo`fb?_5LD~XkS_WQp-`_B99#E1)>Ca|SC-Jlg)8JU-nMmZ!3 zTb|;j6E5kIy*z_8@|o!Y{z-T({+Ivj?5{qG_4O(yNMesgr#ozH=>O(RWnh!M!tEu* z1R~z=f`i>AX;B7y>;)TrjdYzL*T`_sYO@vVjv?%(S0FEc&#f|lly~m z5ySU~BtDeqWKX>8Nro$W$h^V@raS|MU*1)mfr4oP8E;^~QQ+5jJNY=aFpOYDD;2>@ zM`&v3A8pHT+HOTFYUsf8X>-AjLyL+ZprGb^j$^ycispK8vxDJ>sbG61T`pwkaxsQ1 zggLel=2DhTnh|{DN)WRjk2AYqYm!dU&NN{8%%1HFdv;=jl}aVe5bA#J{Y)o|M+KsL;^FXwFv11l^ZvXj*bckmR;`_YF=AIaJvfH=Rf@=z0UY%uIyD&Y8We8 z>cM_l3k_q~*v+%%CnG!A4a(MAF6}@a3NJSr4ddvG#f8}gqwp@A@q2sP{(eyNIv6sx zY9LI^^k(L*<)yg=3oMXEh!%_UvkO-vVy(#{)})?yD}p`5<{LM@4&%QUR97qS-FWXt z;k6qDf&-#+=^5m#^5T4XcC=$2>HtA$vAiTIXlME8#Xfgh5BtQfS$0V-aq@+r)Pirm%P}?{Q1^ewo^~L@qPI0(_gUHw}_j3 zdHy%w`Qvv#R-}3W@lS|{tiO}{((RbS_?TXr`i-ya?-ky=VVvsk6?$E4+-M@`vAhKhJ?rTdq`G%>8)|h65g94PkMV5_7M*((rtp$Gqlj zH-`-_hT%PjasAP%BYVYa2tI(a(PSq!njA((leO4mbK@c&lx^&Gsh{TVfbV1un;ls8 z4}FaFPJwtgec$TSzX&=BJfFM`4t@cJe5byC%uvVXg}!4yL77XfY}ArbsKN2)V;3+h z#cwXay>1rs`8qWShIlqf6PqR(SEVQxfDm`*&Sor#?=pJZrS9x9zM?+taryql`M zMoYS>a?N}z`OvWelpNhsJ8a&$sKaI(CG3=04x7P%!{+W}4x1Np)$EMns`)6(RnuXt zt&?`ud}ORX8j7;Vn)(9#G@oR$;SN)lIBGx5U9|Dy{4}4$5|G10Qb+BlDNIAdTjMZ4 zP3MaIG@*sJk{%KK1ON-o+wpP3TeET8vE2Gi$D!eivd=`zuH*aew(T|@Og$Z@ifE)C z1@v_+KMG2y^rLv7@}t-s@S|A2gzx5)@jP`Lrg(I?@8;u|;k$W9^4&yN)QdURi#gg0 zT?)K^sv8KdSOoU*D12TR%;DY-x(5Npw9t!)J#nmnY{CV8zoBcu0YsNCmv!mw=^$YD zG|pvXiRoCC|Da<4(FL^WMb4mO${L}70w)01PUTYiKE4?%+DwUoDnK=M!0h4m%2Y|s z)*ybZ(@qF3RJ)-eZC^8JYw0V|V5)db$_?W+%VBN8GFv*jc`*4FFgrMDwHbdFgi4#Q zuoXCAr@$qE%PEu}Ckft;lk8#6Mj3J44)6r>gsR7FTHDvAlXFc3SH?%LETk@NaO6sf zk;|Bx!Qq_NX0++Jp5)*HC+uWMZU*%*gpqPhr%?0UnniSiEMsMmyW8mm*eALx1Bc^$ zUd9gJNZIExca(^?ITwL1byOtEP#qVXU~G5qdurb@ev3=@NJL1vu88nQ|9<|_w?=z& zm8T-tE2UkFniiOXBb0cmyC_nUFsgU(qBQhR>MI6 z;h>i9LLlKqUFe?u=;O2Be?M6|)1ZJ`9n-f==2jOCLLjHWI{(}6o_+ek<<}UWgClwF zpdx7F@M-Iho;IPL=WXWh03+Khjh%8~-V`1+(yX$oWG6_38x33|U`+83C!No@z_Sm3 z4m0<|Plip~@R4ec9;vSHM8mYRb?3(UN8ft>$v3%=&WzW?e#7yOW`LO^b|>4%bIegx zo-P8aQK#38p&t9U5@R3pQY{ea7=J)0bU;O9y_)Pyhnf}R48@Ne=L0lYkT`(K=2-in zB^Lpg+~|F-h7t~lI zR2pl9ZV`9r_y{iPYQ{&@HumV;BCc|5CUIfjnaG7%=&)r45p}>^OSteJ4!ZE}C|!6R zW?Oa?F1$NQ7v2q}3$JL8hA!yMOUqm{cS1D3xHxx3P^7hqFkZN&cubewq56;)?GMlX?uSF&Z*TeCpcR=`6^$O>|F)Jgum-V# zm3y(?0U%G6^Q~+mb&@91?uD>IY(^7ABsEUbNrH{GFJemaquxN~G78Ai9SO)`@dmgN zAcqHl99;p((TxB(EY#(I9BzbD;*DVoYDc!9Mr;e}sck_=*|wm5hApV6v;`duwFR}5 zrkt_daRt-b%(mE&0gFv{42#RrB`r3+F)TKAmc^#QEH;g_#l|*P?JEb@I2zMv)6X>8 zG?>w*kv7`+)M(R1?H6aX>BqcvgBfiaX`_u#jW)s^dw6Ra%rXG~T$RzLl{DHo6NRz* z-24Kq9%_E^x%q_>D$Or7mH8zYFu!!h3S&JG8UTLCfs>ekzofUr=6XWo7}49EG~oj^ zAusqYCM_>r`1wEl+xh?e{?PAsB+Uf-2y_+7FS-Fuz7^@|zW2-XZ~r>0{Sh;nY!DU0 z;2!;}pQyj{f|MNn?0^3D*>8W6-J+XKU}7WX%J#?Wx?mZl;Tu~LKNE6Rm5M_KH zCr+CMRn3*=uPW2c`UTjp6;VvC3!H(#ls7f;Tr*8LqP#|KyWc+WoP1sj=#TV^f=#e* z5zk+ZI};ViDREd)yu|tZkm|sK;0DC+f`_bWn$hzq@tfsi=lWaLwn|hXf_{a}QSrvt z^}W_x)jjgCdQuMeIuEMUqwzHLa4*_b_B^&%m6XU}|%Qd$wk|8^;90AEhuv zZLjNs9Y^|vwCtepijNxs%mqO57Q99yz~n9J2Kk2cp51O~ihN$DG*MONRM7wi7Y>Y| zazeaj)4>B(vNoDi(jOtXG`etsO2jY;;B7?dqCr89X)}jX65B`Pl2&yrgn$$6agXsz zFdpy+v-D{+w*c@Z8t=CjB4<@6=Buw;IZzmy+N-e%>s2ks6qBYBuiqD*uRJC5B6?11$r zavg`UU?Y#Baw}S)P|!klHnk!RBNP4NownoFal>|TT|;7_ zSq}6kW9zB2NenJkiBDE{Hn9x5Q7dS_<5`08A=o^z;8!(xtW~u5vv90oi0Ju9)Z~%4 z*99qb%wb@}sS_w;!`p?c7-O(p*3jgiGd3$*t6=#l4R_HhQ&=9< zWcAXf8gCR?(R>Iy@(}WjB_qd>(_Mbu9PkQLtLBm&A2U_aF-&JONB%aH{RX)ptUp zagui+Te2{MpcY_P618H=Hw!I{Y1PaVA>QW_&L0t(K|j|ee~+j($2bAc3X>zA?>SY_ z0uX@t1+~09zB1Rt+Jp&x1I$VGWgbzbww!b)3z9??tZQ@>0!)BW^}0lAxp6`wS62hU z9iMTvzXF+bbgj$eX*QV}l5ctg(LVq-89KeuqZ#Bwlz5OR*YAt6oz!O#<;{M9qlWzy z*EPcknT>;pxs5`n7#Ggz=|7sW0(Y-XQiY(YB4n{a8P&oRWFLQfRai;%Q)$7Tp3*0L zcbuN`=%ooR+o`G1*DY`zqsmR3C?4D3sRKnj(df#QW(^$0=_&y?ar%O9CPQ?V|6OQV z!Tlrmf$w#&Px?AB*uXfZOtnYA9V^k)1ExDCA|gisYsRfg3hH^JDd*DmW_@c z!p|7C(BS8EiN_N=i9;kkN#J6{Hn%+1DK{@^r!x<65IK~CKBOb82Nl+z5KY9?G1CEL zy{#SQh?fIni{<3lROWc-dQOMdR&tu)CI|W;=CAPBvt3<7In6+t0f81Nrt!*FRY=Pk z;OWM>qgaXjifYJL6paALyrJmZE4`o+H&W`hn*4&=tA4Idf8>~!-=xQ-2w;Dsl+Uwe zI%UQ$_e#}O`HxDG8k!v;5wgnytO6PL2^PiEPvn43xEBEqAnr4Arc2=bcgc%q<%@Qc z&>5j&Ix;gdeeYuWWWc5^Tzf%-JRlIg6f4s$ZrVNMI= zXL(OP%Wn&%-gr`}ARj50P9|kVszusmix3}FS#&0{B`p*wdn#JqA(5Ii-y|zzitFMN zJ~Bu0$gEogLozJ51uKw&rH#R?XA!MB-dI5aW6JL-bsN{e#Z^uyzsowec>TzFE`WCd z{nmKH1P44HqW+82&^9N~&~D-8#&PFbLmO#m`(HE-t){8et|{egHqo_ScATy2<0d}t z@XdRWRHYqD#~W+$oNX6;d2~_0DOgQvb4SYq z366iba4?Ag5S;@GC)|WgJ)H z;VL!*CKDFyfc`7X^Q+iwRJ1)VNYk|fc|*D692pIxtzW2Fj*}|js3P%XNkb&NBv!H6 ztY}<9HchjeDxh7_xW+rOY$n=Y10ZO6MylV}0lb8%iPZ$1io$prQvfi6*<*HL*OcW8 znfcA<^~_;BJK(kdDiMN+lnM8)um)f{st@#w|MF}dKB0xhjJ6Z#EloQCSpBv&dffhScN z;?!X=nb9CpPcpeH;_5+sK=}iHq9(@1$mgeAp%hT9j4-6Q{27-MH-H?oJ84BSu}z7s z(R926%X!$cgVp$FMMZgJyLInqmHktRlqOE0x#|>}%1;99H1c`)KizOG020E-9nU8L z7%x^@rUDB$&9I*=EDd5njr9K5m%TsAi_G_<;OZ9l{8%hfzmI~ed(7!}sl?JM7F=+m zjQl|AbZY&+C^xzV@G-8fdF{640tvq?A}x^S-nmajj?>f3 z-ZS*Ohh9fas%Qi8IucuLA+2)^0|VMWX}AC**K?h|MuCi+I5}Vl>jd(4@Tn}YWa~5> z0#>p^*OFx*SVUe2z-O(3kK0}k>qdy30OuUO++vcbjbXgXJCgrV=S$@6)DhlJZFAsU z8Q54w<;E(?8>?8YoP-F1t+D~G5Mbo^DQ5lyQ1Gq^Xm&^&PL9 zt6A=QuaaD?OL8#PxrXnxbC``%kUO$TOYR3unxg%|tHM^7^HyuRhotk|3XO`p8ue{8 z&|RZa)7>-;*U84aydmwo#+PW9L%+hPmpzJTdm>D_j#*rBUMGB$uQ=1w;+g|*g%zuS z-EJFGFM3n{j&L7Y zMi{s9h_#ZB&yf%m0!$u=uHJ8)p2~brJer05eL5if`zAp+M69s5@P2%AOUE8;h?q%> zW?>6A0B`m5bc+9qXTuQ83~Z)>w}qf(wG$+YIeq}(g@UNKB5_h6BV`Ik1C{Ai#k*HU zvY8Da=g?G9#eC_}J(oK89b}mRxIx_**dy0$Qm)&O*Wrp|4mQF<(OrPt=!Ui6UUrz2 z7!wROK$^oTk~of`De@MHIB1gCYSFPy<9p(hX$v>7kKGz(N0bH)$+fJ&eU;=6FqlhR zo7k3P2e_V_$pzgG_H`pc0izBFUIfDkyhnwEtW%D>beqz~ZmJjVDu3EcJXM|y@mfAT zRenVQeVd6be!zy3ZEpr0TXXErfoJ*knTXxubDTWe9V7C6N;0huV-#8m?sqCVcZnq) z&rv?l@Ni5b%?aG7d^)yaymR=t<70{ymuq(c?2ldE2RH{`!$n|4ONA5UA5-!LMEdLY&;*YyZpYdMQ4v2#|C=r><*o`H17bYm@vVE~+s=k)M>8rc}I7y!o( z2xh7XU~-)>3LW)8b4Kl{TJl2yzJGNL;R+SZ8Goj_Rt2}XDt-th1QlLyGER~yX1JbT zRR(*vDt;u&c*xjGRtDAOD@(w~^!v!GQhbe%`L_`RVMNQ!_@xsgG+3vpLx&|J>@ZXW6jw#R zwGi>`W)tdT$nXpu9Vleg8ypD@uhtE814WYpCG~{VT{v*MzHT5c*fueVO41E3G~RTa zEeQMybOWMs#ONj#s%nh+>>TJqNI`huYc|Z;GjyN}h8l^>IjwR@qQjHHD)2EG-aJAn z5{(Op@AVaDLSktaI30{j72wuRIQ(j-pWUOY*4&8Gx5f@`(FKqLvO68ve6c0Vcvm<jmrGxth$8*+pRNNv2Tow0u+j2YBf_I!#AO8 zhQSQfiCxeU{Z?J%a<^&Pi4ZLOH~fz&Q`zD5tR(qbjq z&B3+LIRmON+upddvG!1l4k~K&#Stq{L^Rb3RW-pEoA(~jhm^G z_}PXtb>AxvNJ7KRQScVJtFxc6)IcQ#3M(wT=o*NY$mI!Dm2s!2{_G^(I3D5wfI|$X z1$YfUAW7p~Qiefp+TO@oXso!r3ouh_taMr2d$W*sj~SWg?;v? z%O(e&MvW5rHCCY})2;9n8?;{9;1I<}1BrhZ9@=hyqiqv{eG}Fh4atn=(9tb=Ymz;y z8tE}%NciW%uW8S!COs|0<+Ep1br-pU9xk5fk1#S`y9yTo;Is<+`#88u0k>8MT`sWD zCxr@s3>?O`aq7AOs8-bJ!70=gLJ3{LG#bxv3LcfzfJrC-a}GZ6Yg|cIS4Q7R9a1jmoXP7h&HAr#eSo# zX^;s*^3+s&l9nK7xzlHmMXW)h9M-UEqCD!wm0jI|cRaK?q=hrxUmcb>62;#C>DY?_ z2P4^XLA*O&&2n&bKO|jbGuuQbrDxZ1rr+#(?5ZX`klUGxT0p|}F7kk*e`WjW*SwC+ zaPL_KFdGz0KYFqj`M`-u57`|MQ~-$b?bvTQ4ncq1Tcdt%1NDKcTcp>@J?;SvKkWg` z&NMrm=}fL_Ir=Z44H;~qP~Smy9EVs(l&281D{&Xuw1Nl%D^=-rKl7rO`3= zx`d`ProT>4%Xk)1%=ii}(0{`?tWm8u^xQ4x0<335G;$YTZgHU(weWd9@Vagd^Y2Za z_q2`=_#-CDQ=14PX1Q2ImPu`?u6LvxNUB7fqwauG4|z0)ICE}w!4s~y;=k^$_|wyd zx93+SMW0_?iA$fcUMKmylh0FCw1|A9V2PQLknG}SQZtqIK}{kznX@u%{<#}2i~4xX zjxiDDA&n{;q@oVi1M*7ji=8Y2us;oySVTrX4}-F!OJ##u5uK3K3gjoiSGMop0!o-A+0$!c11{zS)MPhig-kEW|&jO%HXpS>sE9y4TSyjpjPQ9q2bbET!z|= z*mf0c9s3L1GcxfV1W75BW*zpv*yfR!K5Y~uhXzGKxf}7Rs17$^-A+9S!*FG-z=-mQ8fsGLDInm0_fOcm^Fi782LCm9^;=aZ4 znB92L=rMSD%DpIIkkVP?PiR~X>>n*%_#Q=jVR)WM+(bT~qOckjwz~;XjjsfbM*_r8 z@B#9KLkJr$1>&P1UzPeGT?Wag^aq853;`#KJWtreJqy{UAt?@~9Aw}q*Rr9PGZJ^URmjUD@2E}bSZniRO#)C(Lno6l zz+r1+0tyG2fWmclEY)TF;}}qwAp5ETg%!xcwG04gSbvvH*+~jeNCx(Eoq;LWIhZn| zHSxufo`>KQM^_^)A{sBgmSKccba5Y}iP<&~m$kaF_CVA4B^srO(*}i|Lv&_Aw}xYM zY}>Z2j&0+M?T*p0&FJAllMbaECrS&nBBE}r1GLof*O$sr_SY|8LFUSdM?_zh{m=#s3pQoZeT)Fz(S&`hrrl-_9`Dt9q;a74^ z70m#vf&|o=mljA)Qfr*MLfs3-Em>l=9xUdI9?mEbcnF!F>g-j~2J3QQF7ybceDW6_+e`_-$xuQ2uheWW+=Pt0 z-YyPMb^u~hKoNohxK7qmIWAuBR0J4Cn%jemfZ7FF>c><>+*Hm1GscrPP5g(L`pp4P zH;&9Fo9C9y{*bk3`z`O(no)FeXXK2LpZe|8w0P#VQ5;Pf9F%@oj;h;TnJ)@dLgLAv zQXoLh^pK##2*S;|?F$AG~%#KNTcV@T$axH;#(g-e?dK8}kwLUJg6g=~3eVSkU;=ggMCTbaMQp`mig07)TZol06#+HRBo z_4~grwL-rPwPP8|)os{mQ@_9;)Fhc%hJOv;Z4Z)cR)WVUwez5TH>F20FY0Y)(xn=k zfAs7Q$Y5wv;@;Ov1my$sMEuh&nKdqJii;Qf^F+=l!l7sxKS}d?0_kzdD}g9^fw!gv zl-T(2DDbFDz0z+k#Msdk=j!k%4vYWSA1sL-o=_?CJG_{W9VQA{QD(|DuIepV2H zn;10_A6S$ia*4T4*nhC;C;Th#GM;uc( zJ}{_NHY9b#?k0X1@Ub~K|8S4AQ+Ga@2FBgxqE}hi*1~mWqUiV%Jth&&!UNW<%br)w zStTz;G6n21yli16jMG<4ocu(7Z0F2#4p?$v0-%9Kr+|;sA##9}@7T0|rcTo#+t^QqKE=6?>FMQixUoBa`zg1OzPLq) zT{dXrbcVcvSuD^4S@F3p0fveM0YtA9YBA zFMSSQ5lH7(U!UiES5%k<#%lPEb@=B&#^v{YpK0?~l8sTzZ$Y5e{F$J6z^U{j`vWp(RI@!-v5#B#)-!kaeq&4) zZ@*khOJAfV*2B7=s8IUuB>jYV{PJ0$kHJx#5r!)q$6BuFo|yZJ6rVJ%zI@c6*c`Ux z!z8_-fbtym(5uw2KQ4UwplI|=$9&|U*?;ywxDQG$Uxu1R!`4 zzN@X2?O`Z%+R9jV1#69f5Hxj2Dqit!KKFy}p~ama6acxNl`27>#}lUS%M*-Hu7bEN z1x1HP(h|{~a+Dqr9+;99BI)j>&~oD(7ovUcXaC`c$U2|4WdO3on*uCSHG+_U#k`!E zs6XA#g*{=pW`RQReZxnRO5t!AnU5NW+p$}`u$-Nu~r1l~(DhZ)on{GDdq7lwytE8<4AK>DAN|1CM_nRIO((7Kcaqp`t0k@J z=ZGlOZds=1X&HaOJ(yh{?f(@UvDaN2n{ujR|DJtZl}q#1M5hMWEv_3PGekmTR#Oa6H_)%k_;6cJ8Y+#pv+;UpJ` zFN|&YEC6}}t-!5a0s4)tz7Che&#?>|A~E#1U~ezf_wS{R^$GmoOCWmT@20dojt$Hcze;}%Y<|xTfov6iB^I5Wi`P1{&?V?NPu%xsE8(enJhnyOn!!xk(q0(OQFgUH}pF-f)`YQY%4WO zm)bS9ti3FZeLBLU?M>cZWd00&Sh3n)2FcXU({7hl1q2Bv`fmT^QQ1Lk_#v}N6F-N+ zC$mvI{WLXF5TbaMXNgr!AQ6jd>y(dyX0aMVGLYu{6;Tx(S93De!8`{McIffgb(vj* zi>gs`ZBHvzc3rF>*;(ZM`pDX8g>VSQ;ILPM=j0n_=~JYv)1cB&9r%Aa!i;NTBvW^$GR7_nk4z%!J z6#mTcygulx^EiUw)7R%EQG?Y9+z2IsWR$_TG*)5E_qdt9l(uGHX|WAC9n!&Ou*>U$*gT9yv@RU`!WzXa^%*q!EkqLT=nwd zg3-2DWaLI|t37z>@kbtH$2*|^_Ec9dUt|zI2osJM=ZU{Lk%Gtl@3*iHxMH=hy4dQS zVsp$VQrFAbo&V>_OI%l9n*E?4wPGVu;-YyY-m{!j)*e7`JST(F%y*b`2h5X(BB2Ve z?2Jh{4GdScfl|UTV24^jO6EZ#j4;{hRD0s6uGk&fQ~uYq`MrL6G&Q;btgdNJVo41Ix>-}f<^ z#_^AvnFzS2Czw(#jxxaYOW2#b364>hNgwEK6NvG2_uu_L9_|!7yBZtnK7ZdxtYVM5 zNb4osIrw`#{u08Eq^OlIcc=P|l7LIs6XptdM%D!-QjzTmgJAI)=C$_@Xe|DTbVJ_7 zMdb%_X}$40Rf5{&?3J*j*ZnEi9ISj&r6$fV3F~%Cidp>#vd#i;99)d@(`Tv&shn~V z+?v7yr{MXho)v%L;JTH5e=qZBDJT*z)0Bc5BnvhW|L?3T@;)kMDnMuWP%;uP7F2P! z#J&KVwSZ9@+IJ@?Ou?tr<+yPpw^mbv|03uauNK!W%n8q44|$I__>64Ff;*|5EWB`e zCJBo!I_JG)NRF0}t3;f}T8@6z7m0WUn+wDGmxsK_qT)g z-#X!6n%GWmE+p=Yz7Cfb*-9e5Q}?|&XvDOEgWcZtz*F|L%iCFgdRxgHU8rU?wJ4-K zg;!#03j*<&^PuAwrp~u_zOVPNuji8&E=jHkovNV_NJRYdHu(bMT{1&lTa-XrOXarJoi$#IL|hB1LDXHW z*FTK_|5r)ywmrXKz?5aX^j8vRlje_%VJh^laFNeT}eq#zsP|+)rwVgf>A}SAAuU1MhwV_Rg zj34VIB-p+|6~9`Q88@#;1Ic}S@KJ8TArXs%k6`wB!y-{r<=lCtL%pl-L0FGJ0}m|P zri-zwCBq5)bfz2e!@>lLQ^)A>_E$=!$GI8{VVh3fIM=ZBm}j1DtwC9Cu`jGNIx5x6 z_IPLoK!S8^B{66%-7DC{%G%+{oGC%5hNlF548=qrnXneNZo+wP4(hsIm+rcre-84v z?0QRL;8U))O>$8&Rwrt3ROBrfXFRW(iqUimyV5<`<;pC3Z+pF@4ThoJxl_L}r!>(NddB}D^I8qlsGc3;MFkjSt|eK2pf z2F3#p?;10#g+g5Ngw|SI265tlbSV0{e-g>TUQ{o5(L|(nFft(*9nMx?s{95AU(UPy z@7}w<4w1edb8uYV-jn=I9J8o@eg6t31>e6rQ=hxvh+{)3$;EpRQqIS@YGkJ@T#JPF zPoPUk9Z{*sAdRG7-v;wbK<#@f5H$U&a=d8RR-IF*A(jA_`63ualycAZ2mKqH>Ud%= z9lxdc(Ne+%CqF|hInUdJP@Oq!Xm;zj0xt>Bnc!OA8FDN)HVak*w1b+l6UKE%&>^E- z<8piA%ki55Z*}wW`G&yRGFkLdXVc-{HIzJDMgq2BPswB0Igz;B!Oo#^Yn8xntL8ma za7X>xRK&8NOd1Kc20QHSbe_V(n+hAFLzsL&pEr(ViJ8!5K7$IuifvK2pYtjrN zWF-{XMQR`nB8Ic5-5*LdLEei39ru}isA|1C;I^^vM$Nc^sk5f+&?wSTN$0ZG!GdAF z(Ykd>^R(LA|ZtmX?q1l-rCz~q~ zQgUnD1F$vjUr7`Fh-mq-6s-i|KU`S=JO{X4aSDYZV=4VfZm?rgA^iygwe0JTR%u}H zFj+DMbH{3c;^;9k0=3I8ct{x+6-b#mExTBy+-j*EIwvC@{DYY03GN?+?PTw2#nYtt z>eeIVNNLymvX=6LsxP(*<+mlODT+iD9o#8Xhn6XdS*1P@-kj|moOjaos#^4E$}hI$ z>VlGJB|fKm2jCTirMD$6DM%D*r9L{eDN{WGqZVJNv^nxSQ>9rSms{B%TSDA#8_?37 z{&E!4lVeI?0tv~&mg|21se`6EpM)rnHOJS%*QN0lsp&_~Ya#gL_T#0)}7nIeUVhDaj+TbvMN)la27da*))hxoVGxz-A=>otr_LxO)zu>?b8u! zRiwSoHWSV~F!y=blt|&60|!1TMU43NQEG_uH7}I7;^&Qsp4!Dqddjo+y^OzIMpC2o zf~^;-p8#dXOCf&f=A1xXGgjndje|Clyelmc;W=BF*E+>c>6Au*jap8ms~GM93W`0u zV@yEnun+`3VWwF#*fU`{<)Bn|K>(b#Bwk;K+K<%KP!)8T6Rm+O(P<}Qn~a~J5%~Jv z@?sS1s;oca1lAT}uoX@O`jL~>PEj{4ITVo*vbIN5t`J_?ze<4g15WU9dxT%%t&1 z@bMu;IUDJM-TUcBoc0tN`(*$#5jCV1hkKk(okJRS}`x;Rysbnzm{6Ih^5 zVpQy0MwCg7{ft3sQWtnE{**0wwXo8XI;Dpo*|j?(>*!eQ0PY>F@ub=4n*8rHhl*`5 z33eR&57{_&Zuh5iI*Sn>3|lA$F8&I}(VdN^^>DSIP-rw&A_)LB#CuQl$CHle&L*K+ zGZ!oRCEWSF7Pe9|SK^PS20Ha-)vcB?r7SRvc{2b^FdrWIY079N^Km(d>lI6Fet0QU zc&5q)0)^LM`u1hoZ#P8`hGG#!tF7c|uU^syXd_ns`of42+OZ^sa+izz;fhpQ;K#{`B=b0-U|1wx)_#OvD^0 zr5Z%_+4$$a>UCWo#B+u|wBRDM$CkMa9hlDzVL`h3mnkbZ(p_f|UOzoU$Dy1}7Qik9 zX9;beV(E6Kx+53KBaT_6wE>vUxy*#&^3JF(6WwY2(*i+yg-r^&zcC6V>qJ}mMLhU(5lf!CZiIOis|qd9gZJ?yc!?18}YHzaqQ#Jxe)C5$p+nuIi`107N)rWra!2uG!J5p zNQ=5xOb5ls@Gh8_U*Nq)jN7rooBfzZkOUUoZd=EqmQpQXx=~)!{i#%PgE#!ASMhf| z*7?S)wqg@FA)T-W^$mp;`^ev0mvUPzqF<_1wgdM}WYPY~?;xHsv9u93QyavX3=tJB zOSc~T2C}nK^_p|3h@h<9LN%cEf^q6d_QLxFQ8;onlRz>r1Uu@hn6e3HMEMbNZgaL=d0^dg_UmA)$R| z;~ppPWn$ueS#mSefZvrvkQ+(cA(5dQBzYvZlE?@))-%kty}vCjsl@wq8ZEVmXmGvo z!$)MPJiCe=J*b2GbV41m9e1W%M(_7#9}=A@TbkLEGjbUrac@-E)b8+@4?taR6dLRJ zw0F-;Of{@2DaB)ePiq)Y-qT0e1>HB!YH=}XOT&awtawqk#r+G#8<2{Qv90$eHFvQ; zTL`&A&RB}))nkX;KSnoV->d>Hqj^?yl<;;~B=XWijR@y|Mk{;Tz-tcyL?hBLWkQE} zD_Bek;%Im}>J#rM#(34(Z|0V@44^nQJpEpbfXemQoQt#P>lRexPE#vPp#`p1G_dyd z-h1e`?}mPeDCSHuldnE-+M?Z&KV?a5S(3eI`BQ>(-Qr+%?(f{+C4zjX(e5RsjmvT< zYzxh3zX1wz=Hg$%(~;!W*`i=kyA4qNRbx`xRO`_b6{|t!wg~HgceOa66QfPSCC{j$ zhebJeKEuT3+TL;`6X;(pB`Hb~P&(WVNcYZ$qG!6^-_L`-Pn;qzx!DCaDVU!WbFPr8O(p44#}r-n6efXYz@ob~Mi{Qm ziCmXfXRV)|a%BigM*@>jDssn`D}tV$esq zKVI4L@p??k@lgg!YM)i1d)>!A)PFI?D7611>i9q5J93==Zcc>do174J2M`5OF<9b& zKl!gvmylp$9LKV#LJz&CoskroQNj%s9OXdJ{4F?Ib*$L+bne~t{@XZyRK81vTm@*` zymG?r9%C01wUbCY-Ysf2txyV&Yjta&V&-^nk}LHVU4)Z>@0gfcpvujB*?Muk%sR@gNor7W9(t zLY&Ra=<1TOWB=Hs*PP9eTq)oJKqNs$wD9vtxbVvg@z`G{ZTjon06kJIR^VGpA&g0k z?B2r%VqznT)N&Mffh9i8-}-aH^*o6adOchT+sc-zc=d#yUvH-sp7>{ID=d$_IVF&3{uBQJPI7MD2WXkuhO_$I zHzkyLxCdK*)3#)p$!Dm+J~4zPK4)tv<$zCqKiDAB;iOx_rLZG3;uFI(W3iUMxBF+p0DSK(J?KSFekuHt@|J>J;c0go_s@&yUbH@zPtg3) z$q`*0tKN-E9B=-~0dHPICQ~;~Onks?`*dNzcI$v#2~G8?81`)fdE>Fd+F@%$FVtD1rIQ zK+LVt#eW%c40KpPy!urO?GK1TMbIVO2xA@jLrh0~;%*TbOY0cA@Vs3{;x&&U*d~Ko zhEGZdQ>}REMspui+iD+fow|3vTHuDZY{dKGpl!bqXruHnLig~TG&ApT1>%Osm&>G# za=r!eJ6672F0qfJ*+~FP2&_k`W3?T5q1}Cml&{}?9&q@C6LV2K>bNq-*yDDv)RcwH zB6;$M;9>ryF}L}^qd|;fVvk3p@0YK88e$HNis0Bv;p!R9?77Ml2y z?nbVR`+?atdmhiF2ad(jCExF3Mzj}nc8AvAhk_4;%9>9Kno2Vv1)Zvh5EGA&i^m3= zwi5dpvZhO*nS|mU#jvYw!0Qanj!L`mC9%o{&b2y$(H3PUVLyINi$Q~Tqz3IICw>HZ8tVF9+nVil z4GX8CN1cwP>f_G41&1wr29uCiD&?1FLo8+CjF#qg=Pl~b8skp*A({mIy}f09rxyaB zofb*$#zTh@FLxW85E>~DB426aO^G%P^CiMLfaW}#`{Zs@Zu5ohvlis1fSS+X&WqN5 z`@J`9GY^E^ReSB&J%WB6NzC)lTtLeSN0*;l`38k&)2xuwfU6 zUQ=Cdc*PCSOx@<4m*>i*3GU!H`yn+xd%mPgI=6_}i0082r$F1RioWq8NbKTtYJi*6 z($uLa?6Kt@8#SVraL+Qv=%K}oK=KK-cecpOBwFsblXWYB>1H`z6E)7G_p<-?9uy_V zgZ5hfTz42}{^Ugy4FZ7%M~FW755J`HKxHAZPmdpWD?Rp{b)NI^%0p+iY*#Q3CT?QW zDfj2m1g|Mo(@#Sm4C}+qO;^D%@m8S=Duzg))kRT69-u83u0e~dfjZ*+Abj`n`4=Mq znRwso4S(#~X3vG`PROfFcj4+Oq$UnZvtq^1Uoyf-aMB%(TPRgMTK`f@_(i~?7Xla?B1-}v@#Q^lP9B`Z|~O^NiK17{Xl+b)Ww0nwzFh<45Hr| zH25)-a8PF0`Nr8kzRS7k+5P>&h8v^)LS1fC$Mr30w++E8 zg?kak9j?3qeLi|vsUjhm+_ZgvLVY^O{C;311F4biXz^&e^m1!6w#W*5)c?s5J>z+1 zQ|nI+t`?Q>+06tMFlG@o@Dc)=5A}8`PPbmY%iM;iGOQ1TrYve%G4Vt!EVkbLjbvY7 za=$DYbr8~G_FR1EvGLj&HIi^dw5jD{d!D!!`^$C7xq|W$=i&W**MukP75FQBLw949 zo^x+mav)RB)ux1yzdx)OTmDdcNtw`vR-Pfj`%`~B?194VRDp7ZEFuQ)d z3w8KQ%dikOhlw_I_qi~ta)^R)oDqXbIoFzaxA*Aq&;lc9M^#K)Z?<(ItYW-rO4O>8 z{S@!`=V{x@L7~LLuXw3=|DQ=eSWlgujGY9dGTmhIvh_2Wrp%R*q7gor34;s2C+wr+ z3U&74EXM9+Bjdnj@TQQkZY3|%LPBPHA){n3Gh0+@v@+{+&-Lr7_5SMO>aTZOBHVju zHo%V!6dvpr%4(ix-JajBQ;ZUHdSa%^*4?whF_RdPch%U>c`x0*`8d(ns^g$BZ#viQ zfO|0M`pQNP96+Fe_(1JG|IN{tYG3bFY~?2Y)n3$0hINz}lPkx<(}(&AmO~?Khy9pRZ$P3&qldC?JPFyY8A)X9#fy14$RkPh6C0%m z?-cb6oqq#N)BZC8{i(*hrBc!vVXfi_8`JJm-40jLrpkKohtRuQ|AUCJ+q&JI%r7l3Otn?*C(`hkbcX=zogNJD0g(zZqZ@0Z!K) zQuy*JYE_~}>$+Y9l_3`ecd%0kYxXd^e(RGFh(pgb$&`Yf-m}}gz6%D*#w__u;qqY_lWwy+kXH(qs9;Qb;4yNA`c`hZ^C+-Q>H!0K4~ zYiWtVLV;WPg{Nz^vtk*uL3Co}+xLc8#j0Hd2#5JI#J3V3t+lD)!tbryC6`imD72@M z-qz7^K+*m-^XRc!(ODzbH#wh#l4tjz9N&;-MtXPF$h@9gQ%6go{M+~im911-zzxxk z+HWHPSJL$&The*?p>;x|ooM&f37a%?#G?HsQ#aFa7n%HkRbQ#v<|Lp_UzQJS&DG*; zk~8Gi-{?hyPq=Y~!PO_uqgq{Q!`1B%cz_r(=lg(YKPVyc=WaSkeCPbaQz<(hMu3NK zRcotxMq#^I>K*i9xp{g0%MgfitPIEm&8OfrHm&)L@P(E9A6AYrdYfunyKrxCQiK!m zus|FH3?xa(SZM>Ms@huGnY9iT4ABc|K_UX2*l<)t*V$U|;E+K3s#X<1-2Fby%nSpR zj5q`g%7C;)r-IUmmX${*B1LntEE9?8A3|_;n!HeLaRHao;8?k+CfCA`*O|zj%tZrl zuhvMffB)`#K?)kwJD_20Jo=6SeZ}lW|Evh;5T2F7nDFN2)Wv*KrrP*Z$JsCD=34JL zb{#;#Um)5xIL%qIR3+x!z{>(pjFCyDP#(1Dt0^hDNS>1!s#7th7ceS_C$ut3djPHW zqdx_Sz6LZWPH6OL80b8-#|j8Pva{let o=r;null!==e&&""!==e&&void 0!==e&&(o=r.filter((t=>t[n]+""==e+"")));const i={};return i.total=o.length,i.page=1*a,i.limit=1*t,i.list=o.slice((a-1)*t,(a-1)*t+t),{message:"查询成功!",code:"00",data:i}},o=[{parentId:-1,id:100,name:"系统设置",url:"",menu:"",type:0,icon:"Setting",sort:1,iframe:1,module:r},{parentId:100,id:1,name:"用户管理",url:"system/Users",menu:"",type:1,icon:"UserFilled",sort:2,iframe:0,module:r},{parentId:1,id:2,name:"查询",url:"",menu:"search",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:1,id:3,name:"添加",url:"",menu:"add",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:1,id:4,name:"编辑",url:"",menu:"edit",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:100,id:5,name:"菜单管理",url:"settings/Menus",menu:"",type:1,icon:"Menu",sort:1,iframe:0,module:r},{parentId:5,id:6,name:"查询",url:"",menu:"search",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:5,id:7,name:"添加",url:"",menu:"add",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:5,id:8,name:"编辑",url:"",menu:"edit",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:5,id:9,name:"添加子级",url:"",menu:"addChild",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:5,id:10,name:"添加按钮",url:"",menu:"addBtn",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:100,id:11,name:"角色管理",url:"system/Roles",menu:"",type:1,icon:"HelpFilled",sort:3,iframe:0,module:r},{parentId:11,id:12,name:"查询",url:"",menu:"search",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:11,id:13,name:"添加",url:"",menu:"add",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:11,id:14,name:"编辑",url:"",menu:"edit",type:2,icon:"",sort:1,iframe:1,module:r},{parentId:-1,id:15,name:"参考资料",url:"",menu:"",type:0,icon:"DocumentCopy",sort:1,iframe:1,module:r},{parentId:15,id:16,name:"vue3.0",url:"https://www.vue3js.cn/docs/zh/",menu:"",type:1,icon:"Promotion",sort:1,iframe:1,module:r},{parentId:15,id:17,name:"element-plus",url:"https://element-plus.org/#/zh-CN",menu:"",type:1,icon:"ElemeFilled",sort:1,iframe:1,module:r}],i=[{id:-1,name:"Administrator",userName:"超级管理员",password:"123456",role:-1,status:1},{id:0,name:"admin",userName:"管理员",password:"123456",role:0,status:1}],l=[{id:-1,name:"super",roleName:"超级管理员",status:"1",role:o},{id:0,name:"ceshi",roleName:"测试",status:"0",role:o}],s={name:"",userId:"",roleId:"",menus:null};e.exports={userList:{url:"/sys/user/retrieve",type:"get",mock:!0,response:e=>{const{body:{role:t,limit:a,page:r}}=e;return n(t,a,r,i,"role")}},userExportList:{url:"/sys/user/export/List",type:"get"},userPage:{url:"/sys/user/findPage",type:"get"},userAdd:{url:"/sys/user/story",type:"post"},userEdit:{url:"/sys/user/updateOne",type:"put"},userDel:{url:"/sys/user/{{id}}",type:"deleteUrl"},userStatus:{url:"/sys/user/status",type:"post",mock:!0,response:e=>{const{body:{id:t,status:a}}=e;return-1===t?{message:"系统超级管理员账户不能停用!",code:"01"}:(i.find((e=>e.id===t)).status=a,{message:"切换成功!",code:"00"})}},menuList:{url:"/menu/findList",type:"get"},menuAdd:{url:"/menu/story",type:"post",mock:!0,response:e=>{const{body:{name:t}}=e;return((e,t,a,r)=>{let n={message:"添加成功!",code:"00"};if(t.some((e=>("undefined"===e.type||2!==e.type)&&e[r]==a)))n={message:"名称已存在",code:"01"};else{let a={id:t[t.length-1].id+1,...e.body};t.push(a)}return n})(e,o,t,"name")}},menuEdit:{url:"/menu/update",type:"put"},menuUpsert:{url:"/menu/upsert",type:"post"},menuDel:{url:"/menu/delete",type:"delete"},roleList:{url:"/role/retrieve",type:"get"},roleOne:{url:"/role/findOne",type:"get"},rolePage:{url:"/role/retrieve/page",type:"get",mock:!0,response:e=>{const{body:{name:t,limit:a,page:r}}=e;return n(t,a,r,l,"name")}},roleAdd:{url:"/role/story",type:"post"},roleEdit:{url:"/role/updateOne",type:"put"},roleDel:{url:"/role/{{id}}",type:"deleteUrl"},requestLogFindPage:{url:"/request/log/findPage",type:"get"},userMenuList:{url:"/sys/user/findUserMenuList",type:"get",mock:!0,response:()=>(s.menus=l.find((e=>e.id===s.roleId)).role,{message:"查询成功!",code:"00",list:s.menus})},login:{url:"/token/access_token",type:"post"},resolvingUser:{url:"/token/user/{{accessToken}}",type:"getUrl"},register:{url:"/token/create_user",type:"post"},dictionaryPage:{url:"/dictionary/retrieve/page",type:"get"},dictionaryDelete:{url:"/dictionary/{{id}}",type:"deleteUrl"},dictionaryAdd:{url:"/dictionary/save",type:"post"},dictionaryEdit:{url:"/dictionary/update",type:"put"},dictionaryDataPage:{url:"/dictionary/data/retrieve/page",type:"get"},dictionaryDataList:{url:"/dictionary/data/retrieve",type:"get"},dictionaryDataDelete:{url:"/dictionary/data/{{id}}",type:"deleteUrl"},dictionaryDataAdd:{url:"/dictionary/data/save",type:"post"},dictionaryDataEdit:{url:"/dictionary/data/update",type:"put"},upsertAdd:{url:"/upsert/task/save",type:"post"},upsertPage:{url:"/upsert/task/retrieve/page",type:"get"},upsertEdit:{url:"/upsert/task/update",type:"put"},upsertDelete:{url:"/upsert/task/{{id}}",type:"deleteUrl"},databaseInstanceAdd:{url:"/database/instance/save",type:"post"},databaseInstanceTest:{url:"/database/instance/testConnection",type:"post"},databaseInstancePage:{url:"/database/instance/retrieve/page",type:"get"},databaseInstanceList:{url:"/database/instance/retrieve",type:"get"},databaseInstanceEdit:{url:"/database/instance/update",type:"put"},databaseInstanceDelete:{url:"/database/instance/{{id}}",type:"deleteUrl"},databaseInstanceReload:{url:"/database/instance/reload/{{id}}",type:"patchUrl"},acwTableAssociationRelationPage:{url:"/lazy/acw/table/association/relation/findPage",type:"get"},acwTableAssociationRelationList:{url:"/lazy/acw/table/association/relation/findList",type:"get"},acwTableAssociationRelationStory:{url:"/lazy/acw/table/association/relation/story",type:"post"},acwTableAssociationRelationDelete:{url:"/lazy/acw/table/association/relation/remove",type:"deleteUrl"},acwTableAssociationRelationReload:{url:"/lazy/acw/table/association/relation/reload/{{id}}",type:"patchUrl"},acwTableAssociationRelationAnalysisSchema:{url:"/lazy/acw/table/association/relation/analysisSchema",type:"put"},databaseInstanceBackUpPage:{url:"/lazy/database/instance/back/ups/findPage",type:"get"},databaseInstanceBackUpDelete:{url:"/lazy/database/instance/back/ups/remove",type:"delete"},databaseInstanceBackUp:{url:"/lazy/database/instance/back/ups/backUps",type:"patch"},databaseSchemaBackUpPage:{url:"/lazy/database/schema/back/ups/findPage",type:"get"},databaseSchemaBackUp:{url:"/lazy/database/schema/back/ups/backUps",type:"patch"},databaseSchemaBackUpRemove:{url:"/lazy/database/schema/back/ups/remove",type:"delete"},redisInstancePage:{url:"/lazy/acw/redis/instance/findPage",type:"get"},redisInstanceDelete:{url:"/lazy/acw/redis/instance/remove",type:"delete"},redisInstanceStory:{url:"/lazy/acw/redis/instance/story",type:"post"},redisInstanceTest:{url:"/lazy/acw/redis/instance/test",type:"post"},redisInstanceConsoleFindDataBases:{url:"/lazy/acw/redis/console/findDataBases",type:"get"},redisInstanceConsoleFindKeys:{url:"/lazy/acw/redis/console/findKeys",type:"get"},redisInstanceConsoleFindKeysValues:{url:"/lazy/acw/redis/console/findKeysValues",type:"get"},redisInstanceConsoleFindKeyValue:{url:"/lazy/acw/redis/console/findKeyValue",type:"get"},redisInstanceConsoleSetKey:{url:"/lazy/acw/redis/console/setKey",type:"post"},redisInstanceConsoleRemoveKey:{url:"/lazy/acw/redis/console/removeKey",type:"put"},schemaAdd:{url:"/schema/save",type:"post"},schemaPage:{url:"/schema/retrieve/page",type:"get"},schemaList:{url:"/schema/findList",type:"get"},schemaEdit:{url:"/schema/update",type:"put"},schemaDelete:{url:"/schema/{{id}}",type:"deleteUrl"},batchDeleteInstanceSchema:{url:"/schema/delete/batchDeleteInstanceSchema",type:"deleteBody"},batchExportSchemaData:{url:"/schema/batchExportSchemaData",type:"post"},schemaReload:{url:"/schema/reload/{{instanceId}}/{{schema}}",type:"patchUrl"},aceSchemaImportData:{url:"/schema/batchImportSchemaData",type:"post"},schemaDeriveView:{url:"/schema/schemaDeriveView",type:"post"},tableAutoStuffedRecordAdd:{url:"/database/table/auto/stuffed/record/save",type:"post"},tableAutoStuffedRecordBatchAdd:{url:"/database/table/auto/stuffed/record/batchSave",type:"post"},tableAutoStuffedRecordPage:{url:"/database/table/auto/stuffed/record/findPage",type:"get"},tableAutoStuffedRecordList:{url:"/database/table/auto/stuffed/record/findList",type:"get"},tableAutoStuffedRecordEdit:{url:"/database/table/auto/stuffed/record/update",type:"put"},tableAutoStuffedRecordDelete:{url:"/database/table/auto/stuffed/record/{{id}}",type:"deleteUrl"},tableAutoStuffedRecordBatchDelete:{url:"/database/table/auto/stuffed/record/batch",type:"deleteBody"},tableAdd:{url:"/table/storage",type:"post"},tablePage:{url:"/table/retrieve/page",type:"get"},tableList:{url:"/table/retrieve",type:"get"},tableDelete:{url:"/table/delete/{{instanceId}}/{{schemaName}}/{{tableName}}",type:"deleteUrl"},batchDeleteTableDelete:{url:"/table/batchDelete",type:"deleteBody"},slqAuditPage:{url:"/sql/audit/findPage",type:"get"},slqAuditExport:{url:"/sql/audit/export/findList",type:"get"},batchDeleteSlqAudit:{url:"/sql/audit/batch",type:"deleteBody"},generateJavaModel:{url:"/table/generate/java/model/{{instanceId}}/{{schemaName}}/{{tableName}}",type:"getUrl"},generateLocalJava:{url:"/table/generate/local/java",type:"post"},clientGenerateLocalJava:{url:"/acw/client/java/path/generate/local/java",type:"post"},tableExportInsertSql:{url:"/table/export/insert/sql",type:"get"},tableExportUpsertSql:{url:"/table/export/upsert/sql",type:"get"},exportTableStructureExcel:{url:"/table/export/table/structure/excel",type:"get"},exportTableStructureMd:{url:"/table/export/table/structure/md",type:"get"},exportTableStructureSql:{url:"/table/export/table/structure/sql",type:"get"},findTableColumnList:{url:"/table/table/structure/findTableColumnList",type:"get"},applicationAdd:{url:"/application/save",type:"post"},applicationPage:{url:"/application/retrieve/page",type:"get"},applicationList:{url:"/application/retrieve",type:"get"},applicationEdit:{url:"/application/update",type:"put"},applicationDelete:{url:"/application/{{id}}",type:"deleteUrl"},applicationFindTables:{url:"/application/findTables/{{applicationId}}",type:"getUrl"},projectAdd:{url:"/project/save",type:"post"},projectPage:{url:"/project/retrieve/page",type:"get"},projectList:{url:"/project/retrieve",type:"get"},projectEdit:{url:"/project/update",type:"put"},projectDelete:{url:"/project/{{id}}",type:"deleteUrl"},interfaceAdd:{url:"/interface/save",type:"post"},interfacePage:{url:"/interface/retrieve/page",type:"get"},interfaceList:{url:"/interface/retrieve",type:"get"},interfaceEdit:{url:"/interface/update",type:"put"},interfaceDelete:{url:"/interface/{{id}}",type:"deleteUrl"},apiAdd:{url:"/api/save",type:"post"},apiPage:{url:"/api/retrieve/page",type:"get"},apiList:{url:"/api/retrieve",type:"get"},apiEdit:{url:"/api/update",type:"put"},apiDelete:{url:"/api/{{id}}",type:"deleteUrl"},clientApiAdd:{url:"/lazy/interface_/info/story",type:"post"},clientApiSQLAdd:{url:"/lazy/interface_/info/story-sql",type:"post"},clientApiPage:{url:"/lazy/interface_/info/findPage",type:"get"},clientApiList:{url:"/lazy/interface_/info/findList",type:"get"},clientApiFindOne:{url:"/lazy/interface_/info/findOne",type:"get"},clientApiEdit:{url:"/lazy/interface_/info/updateOne",type:"put"},clientApiDelete:{url:"/lazy/interface_/info/remove",type:"deleteUrl"},clientApiDerivativeCode:{url:"/lazy/interface_/info/derivativeCode",type:"put"},clientInstancePage:{url:"/acw/client/instance/findPage",type:"get"},clientInstanceList:{url:"/acw/client/instance/findList",type:"get"},cloudClientFindList:{url:"/netty/client/state/findList",type:"get"},cloudClientFindPage:{url:"/netty/client/state/findPage",type:"get"},clientInstanceFindOne:{url:"/acw/client/instance/findOne",type:"get"},clientJavaPathPage:{url:"/acw/client/java/path/findPage",type:"get"},clientJavaPathList:{url:"/acw/client/java/path/findList",type:"get"},clientJavaPathFindOne:{url:"/acw/client/java/path/findOne",type:"get"},clientFindDefaultSchema:{url:"/current/project/dataSource/findDefaultSchema",type:"get"},clientFindSchemaList:{url:"/current/project/dataSource/findSchemaList",type:"get"},clientFindTableList:{url:"/current/project/dataSource/findTableList",type:"get"},clientFindColumnList:{url:"/current/project/dataSource/findColumnList",type:"get"},databaseTableColumnAdd:{url:"/database/table/column/save",type:"post"},databaseTableColumnPage:{url:"/database/table/column/retrieve/page",type:"get"},databaseTablesColumnList:{url:"/database/table/column/tableIds/{{instanceId}}/{{schemaName}}/{{tableNameList}}",type:"getUrl"},databaseTableColumnList:{url:"/database/table/column/{{instanceId}}/{{schemaName}}/{{tableName}}",type:"getUrl"},findDatabaseTableColumnList:{url:"/database/table/column/findColumn/{{instanceId}}/{{schemaName}}/{{tableName}}",type:"getUrl"},findInstanceSchemaColumnList:{url:"/database/table/column/findInstanceSchemaColumnList/{{instanceId}}/{{schemaName}}",type:"getUrl"},databaseTableColumnEdit:{url:"/database/table/column/update",type:"put"},databaseTableColumnDelete:{url:"/database/table/column/{{id}}",type:"deleteUrl"},playMusicInsertOrUpdate:{url:"/play/music/story",type:"post"},playMusicPage:{url:"/play/music/findPage",type:"get"},playMusicList:{url:"/play/music/findList",type:"get"},playMusicEdit:{url:"/play/music/update",type:"put"},playMusicDelete:{url:"/play/music/remove",type:"delete"},playMusicFindData:{url:"/play/music/findOne",type:"get"},playFileAdd:{url:"/play/file/add",type:"post"},playFilePage:{url:"/play/file/findPage",type:"get"},playFileList:{url:"/play/file/findList",type:"get"},playFileData:{url:"/play/file/retrieve/data/{{id}}",type:"getUrl"},playFileEdit:{url:"/play/file/update",type:"put"},playFileDelete:{url:"/play/file/remove",type:"delete"},playFileResourceList:{url:"/play/file/getFileResourceList",type:"get"},downLocalFile:{url:"/play/file/retrieve/local/file",type:"get"},docPdfMerge:{url:"/doc/pdf/merge/merge",type:"post"},docJson2Excel:{url:"/doc/excel/json2Excel",type:"post"},sqlConsole:{url:"/console/execute/sql/statement",type:"get"},sqlConsoleExport:{url:"/console/execute/sql/statement/export",type:"get"},sqlConsoleUpsertExport:{url:"/console/execute/upsert/sql/statement/export",type:"get"},tableSqlConsole:{url:"/table/console/execute/table/sql/statement",type:"post"},tableColumnSqlConsole:{url:"/table/console/execute/table/sql/statement/column",type:"post"},tableRowStory:{url:"/table/console/execute/upsert/table/sql",type:"post"},tableRowDelete:{url:"/table/console/execute/delete/table/sql",type:"post"},tableRowBatchDelete:{url:"/table/console/execute/batch/delete/table/sql",type:"post"},tableSqlConsoleExport:{url:"/table/console/execute/table/sql/statement/export",type:"post"},tableSqlConsoleUpsertExport:{url:"/table/console/execute/upsert/table/sql/statement/export",type:"post"},tableSqlConsoleMdExport:{url:"/table/console/execute/md/table/sql/statement/export",type:"post"},translate:{url:"/translate",type:"get"},shortcutsData:{url:"/shortcuts/data",type:"get"},jvmRunTimeMemory:{url:"/jvm/runTimeMemory",type:"get"},jvmGC:{url:"/jvm/gc",type:"get"},jvmCPU:{url:"/jvm/cpu",type:"get"},automationStory:{url:"/lazy/automation/story",type:"post"},automationFindPage:{url:"/lazy/automation/findPage",type:"get"},automationFindOne:{url:"/lazy/automation/findOne",type:"get"},automationRemove:{url:"/lazy/automation/remove",type:"delete"},automationNodeStory:{url:"/lazy/automation/node/story",type:"post"},automationNodeRemove:{url:"/lazy/automation/node/remove",type:"delete"},automationNodeHttpActionStory:{url:"/lazy/automation/node/http/action/story",type:"post"},automationNodeHttpActionRemove:{url:"/lazy/automation/node/http/action/remove",type:"delete"},ttsTimbreStory:{url:"/tts/timbre/story",type:"post"},ttsTimbreFindPage:{url:"/tts/timbre/findPage",type:"get"},ttsTimbreFindList:{url:"/tts/timbre/findList",type:"get"},ttsTimbreUpdateOne:{url:"/tts/timbre/updateOne",type:"put"},ttsTimbreRemove:{url:"/tts/timbre/remove",type:"delete"},ttsChineseCharactersStory:{url:"/tts/chinese/characters/story",type:"post"},ttsChineseCharactersFindPage:{url:"/tts/chinese/characters/findPage",type:"get"},ttsChineseCharactersFindList:{url:"/tts/chinese/characters/findList",type:"get"},ttsChineseCharactersUpdateOne:{url:"/tts/chinese/characters/updateOne",type:"put"},ttsChineseCharactersRemove:{url:"/tts/chinese/characters/remove",type:"delete"},ttsChineseCharactersTimbreStory:{url:"/tts/chinese/characters/timbre/story",type:"post"},ttsChineseCharactersTimbreFindPage:{url:"/tts/chinese/characters/timbre/findPage",type:"get"},ttsChineseCharactersTimbreFindList:{url:"/tts/chinese/characters/timbre/findList",type:"get"},ttsChineseCharactersTimbreUpdateOne:{url:"/tts/chinese/characters/timbre/updateOne",type:"put"},ttsChineseCharactersTimbreRemove:{url:"/tts/chinese/characters/timbre/remove",type:"delete"},ttsChineseCharactersTimbreTextToBytes:{url:"/tts/chinese/characters/timbre/textToBytes",type:"get"},automationNodeHttpActionExecuteOne:{url:"/lazy/automation/node/http/action/executeOne/{{actionId}}",type:"patchUrl"}}},64779:function(e){e.exports={dev_mock:!1,pro_mock:!1,moduleName:"wu-lazy-cloud-network",wechat_key_word:"network",wechat_verification_code:"1013"}},38147:function(e,t,a){"use strict";a.r(t);t.default=(e,t,a,r,n)=>{const{value:o}=t;if(o&&o.length>0){let t=function(e){let t=a.config.globalProperties.$route.name,r=e.map((e=>t.replace(/-/g,"/")+"/"+e)),o=n.getters.permissionList;return r.some((e=>o.includes(e)))}(o);t||e.parentNode&&e.parentNode.removeChild(e)}}},32144:function(e,t,a){"use strict";a.r(t);var r=a(80187),n=a(81979);t.default=(e,t)=>{const{width:a}=(0,r.h4X)(e);if(0===a.value)return;const{value:o}=t;(0,n.oh)(a,(()=>{o&&o.resize()}),{debounce:500})}},16851:function(e,t,a){"use strict";var r=a(12257),n=a(57259),o=a(29981),i=a.n(o),l=a(95170),s=a(27395);var u={install:(e,{router:t,store:r,opt:o})=>{const u=n.Z.create({Global:!0});let p,c=null,d=0;u.interceptors.request.use((t=>{i().done(),t.Global&&(i().start(),p=e.config.globalProperties.$loading({lock:!0,text:"Loading",spinner:"el-icon-loading",background:"rgba(0,0,0,0.1)"})),d++;const a=r.getters.token,n=r.getters.access_token,o=r.getters.refresh_token,l=r.getters.zone_id,s=r.getters.user_id;return a&&(t.headers.Authorization=a),n&&(t.headers.access_token=n),o&&(t.headers.refresh_token=o),l&&(t.headers.zone_id=l),s&&(t.headers.user_id=s),t}),(e=>Promise.reject(e))),u.interceptors.response.use((t=>{if(r.dispatch(`app/${l.L4}`,(new Date).getTime()),d--,d<=0&&(i().done(),p.close()),"application/octet-stream"===t.headers["content-type"]&&200===t.status)return t;let a="success";return 200!==t.status&&0!==t.data.code&&(a="error",s.z8.error("Oops, this is a error message.")),c&&(c.close(),c=null),c=e.config.globalProperties.$message({type:a,message:t.data.message}),t.data}),(a=>{if(d--,d<=0&&(i().done(),p.close()),a&&a.response){let r="";switch(a.response.status){case 400:r="请求错误";break;case 401:r="未授权,请登录",t.replace({name:"Login"});break;case 403:r="没有权限,拒绝访问";break;case 404:r="请求地址出错";break;case 408:r="请求超时";break;case 500:r="服务器内部错误";break;case 501:r="服务未实现";break;case 502:r="网关错误";break;case 503:r="服务不可用";break;case 504:r="网关超时";break;case 505:r="HTTP版本不受支持"}c&&(c.close(),c=null),c=e.config.globalProperties.$message({message:r,type:"error"})}return Promise.reject(a)})),String.prototype.format=function(){if(0===arguments.length)return this;var e=arguments[0],t=this;for(var a in e)t=t.replace(new RegExp("\\{\\{"+a+"\\}\\}","g"),e[a]);return t};const m={post:(e,t,a)=>u.post(e,t,a),put:(e,t,a)=>u.put(e,t,a),getUrl:(e,t,a)=>u.get(e.format(t),{params:t,data:t},a),get:(e,t,a)=>u.get(e,Object.assign(a,{params:t})),delete:(e,t,a)=>u.delete(e.format(t),{params:t,data:t},a),deleteUrl:(e,t,a)=>u.delete(e.format(t),{params:t,data:t},a),deleteBody:(e,t,a)=>u.delete(e,{data:t},a),patch:(e,t,a)=>u.patch(e,t,a),patchUrl:(e,t,a)=>u.patch(e.format(t),{params:t,data:t},a)};let y={};const g=a(62615);g.keys().forEach((e=>{const t=e.replace(/(\.\/|\.js)/g,"");y[t]={};let a=g(e);Object.keys(a).forEach((e=>{y[t][e]=(t,r={})=>m[a[e].type](a[e].url,t,r)}))})),window[o]=y,e.config.globalProperties[o]=y}},p=a(3457),c=a(79065),d=[{path:"/login",name:"Login",component:()=>Promise.all([a.e(1615),a.e(6096)]).then(a.bind(a,48218))},{path:"/register",name:"Register",component:()=>Promise.all([a.e(1615),a.e(1421)]).then(a.bind(a,78177))},{path:"/404",name:"404",component:()=>Promise.all([a.e(1615),a.e(7660)]).then(a.bind(a,61970))}],m={path:"/",name:"AppMain",component:()=>Promise.all([a.e(1821),a.e(5869),a.e(5142)]).then(a.bind(a,7802)),redirect:{name:"Home"},children:[{path:"home",name:"Home",component:()=>a.e(8379).then(a.bind(a,18379))}]};var y=(0,c.p7)({history:(0,c.r5)(),scrollBehavior:()=>({y:0}),isAddDynamicMenuRoutes:!1,routes:d.concat(m)}),g=a(20336),f=a(60700),v=(a(54909),a(8236)),b=(a(81414),{install:e=>{e.use(f.Z,{locale:v.Z,size:"default"})}}),h=a(21847),w={install:e=>{for(const t in h){const a=h[t];e.component(a.name,a)}}},_=(a(74538),a(64779)),C=a(41728);function k(e,t=[]){let a=[];for(let r=0;r=1&&(a=a.concat(t[r].children))}return a.length>=1?k(e,a):"main"}var P={install:(e,{router:t,store:r})=>{t.beforeEach((async(e,a,s)=>{const u=r.getters.token;if(t.options.isAddDynamicMenuRoutes||"global"===k(e,d))e.meta.title&&(document.title=e.meta.title),i().start(),s();else if(u&&/\S/.test(u)){let a=await VE_API.system.userMenuList({module:_.moduleName});if(a&&0===a.code){0===a.data.length&&(a.data=a.data.concat(o));let u=C.clone(a.data,!0);a.data=C.mapTree(C.toArrayTree(u,{sortKey:"sort",key:"code",parentKey:"parentCode"}),(e=>(e.children&&e.children.length<=0&&delete e.children,e))),await n(a.data),t.options.isAddDynamicMenuRoutes=!0,await r.dispatch(`app/${l.jS}`,a.data),await r.dispatch(`app/${l.I4}`,a.data),i().start(),s({...e,replace:!0})}else s({name:"Login"})}else s({name:"Login"})})),t.afterEach((()=>{i().done()}));const n=async(e=[],r=[])=>{let o=[];for(let t=0;t=1)o=o.concat(e[t].children);else if(1===e[t].type){let n={path:e[t].url.replace(/\//g,"-")+`-${e[t].code}`,component:null,name:e[t].url.replace(/\//g,"-")+`-${e[t].code}`};if(1===e[t].iframe)n.path=`i-${e[t].code}`,n.name=`i-${e[t].code}`,n.props={url:e[t].url},n.component=()=>a.e(5267).then(a.bind(a,15267));else{const r="views/pages/"+e[t].url;n.component=()=>a(7499)("./"+r+".vue")}r.push(n)}o.length>=1?n(o,r):(m.children=m.children.concat(r),console.log("控制台打印--\x3e ~ file: permission.js ~ line 127 ~ fnAddDynamicMenuRoutes ~ mainRoutes.children",m.children),await t.addRoute(m),await t.addRoute({path:"/:w+",redirect:{name:"404"}}))},o=[{parentCode:-1,code:100,id:100,name:"系统设置",url:"",menu:"",type:0,icon:"Setting",sort:1,iframe:1,module:_.moduleName},{parentCode:100,code:1,id:1,name:"用户管理",url:"system/Users",menu:"",type:1,icon:"UserFilled",sort:2,iframe:0,module:_.moduleName},{parentCode:1,code:2,id:2,name:"查询",url:"",menu:"search",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:1,code:3,id:3,name:"添加",url:"",menu:"add",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:1,code:4,id:4,name:"编辑",url:"",menu:"edit",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:100,code:5,id:5,name:"菜单管理",url:"settings/Menus",menu:"",type:1,icon:"Menu",sort:1,iframe:0,module:_.moduleName},{parentCode:5,code:"restore",id:51,name:"恢复出厂设置",url:"",menu:"restore",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:5,code:6,id:6,name:"查询",url:"",menu:"search",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:5,code:7,id:7,name:"添加",url:"",menu:"add",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:5,code:8,id:8,name:"编辑",url:"",menu:"edit",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:5,code:9,id:9,name:"添加子级",url:"",menu:"addChild",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:5,code:10,id:10,name:"添加按钮",url:"",menu:"addBtn",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:100,code:11,id:11,name:"角色管理",url:"system/Roles",menu:"",type:1,icon:"HelpFilled",sort:3,iframe:0,module:_.moduleName},{parentCode:11,code:12,id:12,name:"查询",url:"",menu:"search",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:11,code:13,id:13,name:"添加",url:"",menu:"add",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:11,code:14,id:14,name:"编辑",url:"",menu:"edit",type:2,icon:"",sort:1,iframe:1,module:_.moduleName},{parentCode:-1,code:15,id:15,name:"参考资料",url:"",menu:"",type:0,icon:"DocumentCopy",sort:1,iframe:1,module:_.moduleName},{parentCode:15,code:16,id:16,name:"vue3.0",url:"https://www.vue3js.cn/docs/zh/",menu:"",type:1,icon:"Promotion",sort:1,iframe:1,module:_.moduleName},{parentCode:15,code:17,id:17,name:"element-plus",url:"https://element-plus.org/#/zh-CN",menu:"",type:1,icon:"ElemeFilled",sort:1,iframe:1,module:_.moduleName}]}},S={install:()=>{if(a(64779).pro_mock){const e=a(90674),t=a(62615);t.keys().forEach((a=>{let r=t(a);Object.keys(r).forEach((t=>{e.mock(r[t].url,r[t].type,r[t].response)}))}))}}},z={install:(e,{router:t,store:r})=>{const n=a(27361);n.keys().forEach((a=>{let o=a.replace(/(\.\/|\.js)/g,""),i=n(a).default;e.directive(o,((a,n)=>i(a,n,e,t,r)))}))}},L={install:e=>{const t=a(20623);t.keys().forEach((a=>{const r=t(a);e.component(r.default.name,r.default)}))}};(0,r.ri)(p.default).use(S).use(w).use(L).use(g.Z).use(y).use(b).use(u,{router:y,store:g.Z,opt:"VE_API"}).use(P,{router:y,store:g.Z}).use(z,{router:y,store:g.Z}).mount("#app")},20336:function(e,t,a){"use strict";a.d(t,{Z:function(){return i}});var r=a(81985);let n={};const o=a(11748);o.keys().forEach((e=>{const t=e.split("/")[1];n[t]=o(e).default}));var i=(0,r.MT)({getters:{opened:e=>e.app.slider.opened,token:e=>e.app.token,access_token:e=>e.app.access_token,refresh_token:e=>e.app.refresh_token,zone_id:e=>e.app.zone_id,user_id:e=>e.app.user_id,uname:e=>e.app.uname,menuList:e=>e.app.menuList,permissionList:e=>e.app.permissionList,moreMenuList:e=>e.tabbar.moreMenuList,barList:e=>e.tabbar.barList,currentBar:e=>e.tabbar.currentBar,verification_code:e=>e.app.verification_code,wechat_verification_code:e=>e.app.wechat_verification_code,wechat_key_word:e=>e.app.wechat_key_word,options:e=>e.settings.options},modules:n})},10064:function(e,t,a){"use strict";a.r(t);a(74538);var r=a(95170),n=a(41728);t.default={namespaced:!0,state:{slider:{opened:JSON.parse(sessionStorage.getItem("opened"))},token:sessionStorage.getItem("token")||"",access_token:sessionStorage.getItem("access_token")||"",refresh_token:sessionStorage.getItem("refresh_token")||"",zone_id:sessionStorage.getItem("zone_id")||"",user_id:sessionStorage.getItem("user_id")||"",menuList:null,permissionList:[],uname:sessionStorage.getItem("uname")||"",verification_code:sessionStorage.getItem("verification_code")||"",wechat_verification_code:sessionStorage.getItem("wechat_verification_code")||"",wechat_key_word:sessionStorage.getItem("wechat_key_word")||""},mutations:{[r.qL](e){e.slider.opened=!e.slider.opened,sessionStorage.setItem("opened",JSON.stringify(e.slider.opened))},[r.L4](e,t){e.token=t,sessionStorage.setItem("token",e.token)},[r.TR](e,t){e.uname=t,sessionStorage.setItem("uname",e.uname)},[r.Wy](e,t){e.access_token=t,sessionStorage.setItem("access_token",e.access_token)},[r.aR](e,t){e.refresh_token=t,sessionStorage.setItem("refresh_token",e.refresh_token)},[r.mg](e,t){e.zone_id=t,sessionStorage.setItem("zone_id",e.zone_id)},[r.Qi](e,t){e.user_id=t,sessionStorage.setItem("user_id",e.user_id)},[r.jS](e,t){e.menuList=t},[r.I4](e,t){e.permissionList=t},[r.rK](e,t){e.verification_code=t,sessionStorage.setItem("verification_code",e.verification_code)},[r.Es](e,t){e.wechat_verification_code=t,sessionStorage.setItem("wechat_verification_code",e.wechat_verification_code)},[r.Hk](e,t){e.wechat_key_word=t,sessionStorage.setItem("wechat_key_word",e.wechat_key_word)}},actions:{[r.qL]({commit:e}){e(r.qL)},[r.L4]({commit:e},t){e(r.L4,t)},[r.Wy]({commit:e},t){e(r.Wy,t)},[r.aR]({commit:e},t){e(r.aR,t)},[r.mg]({commit:e},t){e(r.mg,t)},[r.Qi]({commit:e},t){e(r.Qi,t)},[r.TR]({commit:e},t){e(r.TR,t)},[r.jS]({commit:e},t){e(r.jS,t)},[r.rK]({commit:e},t){e(r.rK,t)},[r.Es]({commit:e},t){e(r.Es,t)},[r.Hk]({commit:e},t){e(r.Hk,t)},[r.I4]({commit:e},t){let a=n.filterTree(t,(e=>1===e.type),{sortKey:"sort",key:"code",parentKey:"parentCode"}),o=[];a.forEach((e=>{e.children&&e.children.length>0&&e.children.forEach((t=>{o.push(`${e.url}/${e.code}/${t.menu}`)}))})),e(r.I4,o)}}}},95170:function(e,t,a){"use strict";a.d(t,{Es:function(){return m},Hk:function(){return y},I4:function(){return c},L4:function(){return n},Qi:function(){return u},TR:function(){return l},Wy:function(){return o},aR:function(){return i},jS:function(){return p},mg:function(){return s},qL:function(){return r},rK:function(){return d}});const r="TOGGLE_SLIDER",n="SET_TOKEN",o="access_token",i="refresh_token",l="SET_UNAME",s="ZONE_ID",u="USER_ID",p="SET_MENU_LIST",c="SET_PERMISSION_LIST",d="SET_VERIFICATION_CODE",m="SET_WECHAT_VERIFICATION_CODE",y="SET_WECHAT_KEY_WORD"},133:function(e,t,a){"use strict";a.r(t);const r={SAVE_OPTIONS(e,t){e.options={...t}}},n={saveOptions({commit:e},t){e("SAVE_OPTIONS",t)}};t.default={namespaced:!0,state:{options:{lineNumbers:!0,lineWrapping:!0,styleActiveLine:!0,extraKeys:"Ctrl",theme:"default"}},mutations:r,actions:n}},4444:function(e,t,a){"use strict";a.r(t);a(74538);var r=a(76698);const n={namespaced:!0,state:{moreMenuList:[],barList:JSON.parse(sessionStorage.getItem(r.CQ))||[],currentBar:JSON.parse(sessionStorage.getItem(r.ui))||{}},mutations:{[r.t0](e,t){e.barList=t},[r.RV](e,t){e.currentBar=t,sessionStorage.setItem(r.ui,JSON.stringify(e.currentBar))},[r.cn](e,t){if(e.moreMenuList.includes(t.barCode))e.barList.push(t);else{-1===e.barList.findIndex((e=>e.barCode===t.barCode))?e.barList.push(t):console.log("重复:"+t.barName)}sessionStorage.setItem(r.CQ,JSON.stringify(e.barList)),e.currentBar=e.barList.filter((e=>e.barCode===t.barCode))[0],sessionStorage.setItem(r.ui,JSON.stringify(e.currentBar))},[r.i7](e,t){console.log("删除之前"+e.barList.length),e.barList=e.barList.filter((e=>e.barCode!==t)),console.log("删除之后"+e.barList.length),sessionStorage.setItem(r.CQ,JSON.stringify(e.barList))},[r.gU](e,t){e.barList=t||[{keyPath:"/home",key:"Home"}],sessionStorage.setItem(r.CQ,JSON.stringify(e.barList))}},actions:{[r.cn]({commit:e},t){e(r.cn,t)},[r.i7]({commit:e},t){e(r.i7,t)},[r.RV]({commit:e},t){e(r.RV,t)}}};t.default=n},76698:function(e,t,a){"use strict";a.d(t,{CQ:function(){return r},RV:function(){return u},cn:function(){return l},gU:function(){return o},i7:function(){return i},t0:function(){return s},ui:function(){return n}});const r="barList",n="CURRENT_BAR",o="DEL_All_BAR",i="DEL_BAR",l="ADD_BAR",s="SET_BAR_LIST",u="SET_CURRENT_BAR"},3457:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return n}});var r=a(67759);var n={__name:"App",setup(e){return(e,t)=>{const a=(0,r.up)("router-view");return(0,r.wg)(),(0,r.j4)(a)}}}},19513:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return u}});var r=a(67759);const n={class:"ve_table"},o={class:"ve_table_page"},i={class:"ve_table_content",ref:"tableBox"};var l=a(76364),s={name:"CardTable",inheritAttrs:!1,directives:{delete:e=>{e.children.length<=0&&e.parentNode&&e.parentNode.removeChild(e)},addClass:e=>{e.parentNode&&e.parentNode.classList.add("ve_flex_col")}},setup(e,t){const{emit:a}=t,r=(0,l.iH)(null),n=(0,l.iH)(null);return{elTable:r,tableBox:(0,l.iH)(null),ve_rowIndex:n,cellClassName:(e,t)=>e===t?"ve_cell_class_name":"",rowClassName:(e,t)=>e===t?"ve_row_class_name":"",rowClick:e=>e,selectionChange:e=>{a("selectionChange",e)}}}};var u=(0,a(70636).Z)(s,[["render",function(e,t,a,l,s,u){const p=(0,r.up)("el-row"),c=(0,r.up)("el-card"),d=(0,r.up)("el-col"),m=(0,r.up)("el-empty"),y=(0,r.up)("el-table"),g=(0,r.up)("el-pagination"),f=(0,r.Q2)("delete"),v=(0,r.Q2)("loading"),b=(0,r.Q2)("addClass");return(0,r.wy)(((0,r.wg)(),(0,r.iD)("div",n,[(0,r.wy)(((0,r.wg)(),(0,r.j4)(p,{class:"ve_header_row_class_name ve_p_10"},{default:(0,r.w5)((()=>[(0,r.WI)(e.$slots,"tool_bar",{},void 0,!0)])),_:3})),[[f]]),(0,r._)("div",o,[(0,r._)("div",i,[(0,r.wy)(((0,r.wg)(),(0,r.j4)(p,{gutter:20,style:{"margin-right":"15px","margin-left":"-5px"},type:"flex"},{append:(0,r.w5)((()=>[(0,r.WI)(e.$slots,"append",{},void 0,!0)])),empty:(0,r.w5)((()=>[(0,r.Wm)(m,{description:"暂无数据"})])),default:(0,r.w5)((()=>[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.$attrs.table,((e,a)=>((0,r.wg)(),(0,r.j4)(d,{key:a,span:6},{default:(0,r.w5)((()=>[(0,r.Wm)(c,{class:"box-card",shadow:"always","body-style":{padding:"0px"},onRowClick:t[0]||(t[0]=(e,t,a)=>l.ve_rowIndex=l.rowClick(a)),"row-class-name":({rowIndex:e})=>l.rowClassName(e,l.ve_rowIndex),"cell-class-name":({rowIndex:e})=>l.cellClassName(e,l.ve_rowIndex)},null,8,["row-class-name","cell-class-name"])])),_:2},1024)))),128)),(0,r.WI)(e.$slots,"default",{},void 0,!0)])),_:3})),[[v,e.loading]]),(0,r.Wm)(y,(0,r.dG)({ref:"elTable",height:"100%",stripe:"",border:"","highlight-current-row":"","header-row-class-name":"ve_header_row_class_name","header-cell-class-name":"ve_header_cell_class_name",style:{width:"100%"}},e.$attrs.table,{onSelectionChange:l.selectionChange}),{append:(0,r.w5)((()=>[(0,r.WI)(e.$slots,"append",{},void 0,!0)])),empty:(0,r.w5)((()=>[(0,r.Wm)(m,{description:"暂无数据"})])),default:(0,r.w5)((()=>[(0,r.WI)(e.$slots,"default",{},void 0,!0)])),_:3},16,["onSelectionChange"])],512),(0,r.Wm)(g,(0,r.dG)({background:"",layout:"total, sizes, prev, pager, next, jumper","page-sizes":[10,20,50,100,200,500,1e3,2e3,5e3,1e4],"hide-on-single-page":!1},e.$attrs.pagination),{default:(0,r.w5)((()=>[(0,r.WI)(e.$slots,"pagination",{},void 0,!0)])),_:3},16)])])),[[b]])}],["__scopeId","data-v-c40e394a"]])},4478:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return u}});var r=a(67759);const n={class:"ve_table"},o={class:"ve_table_page"},i={class:"ve_table_content",ref:"tableBox"};var l=a(76364),s={name:"VeTable",inheritAttrs:!1,directives:{delete:e=>{e.children.length<=0&&e.parentNode&&e.parentNode.removeChild(e)},addClass:e=>{e.parentNode&&e.parentNode.classList.add("ve_flex_col")}},setup(e,t){const{emit:a}=t,r=(0,l.iH)(null),n=(0,l.iH)(null);return{elTable:r,tableBox:(0,l.iH)(null),ve_rowIndex:n,cellClassName:(e,t)=>e===t?"ve_cell_class_name":"",rowClassName:(e,t)=>e===t?"ve_row_class_name":"",rowClick:e=>e,selectionChange:e=>{a("selectionChange",e)}}}};var u=(0,a(70636).Z)(s,[["render",function(e,t,a,l,s,u){const p=(0,r.up)("el-row"),c=(0,r.up)("el-empty"),d=(0,r.up)("el-table"),m=(0,r.up)("el-pagination"),y=(0,r.Q2)("delete"),g=(0,r.Q2)("addClass");return(0,r.wy)(((0,r.wg)(),(0,r.iD)("div",n,[(0,r.wy)(((0,r.wg)(),(0,r.j4)(p,{class:"ve_header_row_class_name ve_p_10"},{default:(0,r.w5)((()=>[(0,r.WI)(e.$slots,"tool_bar",{},void 0,!0)])),_:3})),[[y]]),(0,r._)("div",o,[(0,r._)("div",i,[(0,r.Wm)(d,(0,r.dG)({ref:"elTable",height:"100%",stripe:"",border:"","highlight-current-row":"",onRowClick:t[0]||(t[0]=(e,t,a)=>l.ve_rowIndex=l.rowClick(a)),"row-class-name":({rowIndex:e})=>l.rowClassName(e,l.ve_rowIndex),"cell-class-name":({rowIndex:e})=>l.cellClassName(e,l.ve_rowIndex),"header-row-class-name":"ve_header_row_class_name","header-cell-class-name":"ve_header_cell_class_name",style:{width:"100%"}},e.$attrs.table,{onSelectionChange:l.selectionChange}),{append:(0,r.w5)((()=>[(0,r.WI)(e.$slots,"append",{},void 0,!0)])),empty:(0,r.w5)((()=>[(0,r.Wm)(c,{description:"暂无数据"})])),default:(0,r.w5)((()=>[(0,r.WI)(e.$slots,"default",{},void 0,!0)])),_:3},16,["row-class-name","cell-class-name","onSelectionChange"])],512),(0,r.Wm)(m,(0,r.dG)({background:"",layout:"total, sizes, prev, pager, next, jumper","page-sizes":[10,20,50,100,200,500,1e3,2e3,5e3,1e4],"hide-on-single-page":!1},e.$attrs.pagination),{default:(0,r.w5)((()=>[(0,r.WI)(e.$slots,"pagination",{},void 0,!0)])),_:3},16)])])),[[g]])}],["__scopeId","data-v-51533de8"]])},62615:function(e,t,a){var r={"./application.js":66530,"./cloudNetwork.js":89976,"./cloudNetworkReport.js":22798,"./cloudNetworkRoute.js":31139,"./cloudNetworkServerPerMeate.js":32791,"./configApi.js":95418,"./system.js":27062};function n(e){var t=o(e);return a(t)}function o(e){if(!a.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}n.keys=function(){return Object.keys(r)},n.resolve=o,e.exports=n,n.id=62615},20623:function(e,t,a){var r={"./CardTable.vue":19513,"./VeTable.vue":4478};function n(e){var t=o(e);return a(t)}function o(e){if(!a.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}n.keys=function(){return Object.keys(r)},n.resolve=o,e.exports=n,n.id=20623},27361:function(e,t,a){var r={"./permission.js":38147,"./resize.js":32144};function n(e){var t=o(e);return a(t)}function o(e){if(!a.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}n.keys=function(){return Object.keys(r)},n.resolve=o,e.exports=n,n.id=27361},11748:function(e,t,a){var r={"./app/index.js":10064,"./settings/index.js":133,"./tabbar/index.js":4444};function n(e){var t=o(e);return a(t)}function o(e){if(!a.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}n.keys=function(){return Object.keys(r)},n.resolve=o,e.exports=n,n.id=11748},7499:function(e,t,a){var r={"./App.vue":[3457],"./components/CodemirrorEditor/index.vue":[63614,3614],"./components/Common.vue":[21615,1615,5719],"./components/FunctionPage.vue":[65125,5125],"./components/crud/LazyCrud.vue":[57235,1821,9294,8305,2018,5886],"./components/dashboard/LiveChart.vue":[32761,1821,9294,8305,1886],"./components/dashboard/Shortcuts.vue":[80386,386],"./components/layout/NavigateBar.vue":[56583,1821,5869,2084],"./components/layout/NavigateMenuBar.vue":[99310,9310],"./components/layout/SideBar.vue":[65057,5057],"./components/layout/components/Breadcrumb.vue":[751,1821,8918],"./components/layout/components/Hamburger.vue":[21767,1767],"./components/layout/components/Logo.vue":[29651,9651],"./components/layout/components/Personal.vue":[11372,1372],"./components/layout/components/SlideMenu.vue":[27615,7615],"./components/layout/components/Zone.vue":[34528,4528],"./components/veBaseComponents/CardTable.vue":[19513],"./components/veBaseComponents/VeTable.vue":[4478],"./views/404.vue":[61970,1615,7660],"./views/AppMain.vue":[7802,1821,5869,5142],"./views/Home.vue":[18379,8379],"./views/IFrame.vue":[15267,5267],"./views/Login.vue":[48218,1615,6096],"./views/Register.vue":[78177,1615,1421],"./views/pages/application/Application.vue":[43024,1821,9294,8305,2018,5886],"./views/pages/application/components/ApplicationEdit.vue":[72649,2649],"./views/pages/cloud_network/ClientFlowManager.vue":[55772,1821,9294,8305,2018,5886],"./views/pages/cloud_network/ClientTokenBucket.vue":[57607,1821,9294,8305,2018,5886],"./views/pages/cloud_network/CloudClient.vue":[74663,1821,9294,8305,2018,5886],"./views/pages/cloud_network/CloudClientCluster.vue":[83398,1821,9294,8305,2018,5886],"./views/pages/cloud_network/CloudClientRecord.vue":[10887,1821,9294,8305,2018,5886],"./views/pages/cloud_network/components/ClientTokenBucketEdit.vue":[12050,2050],"./views/pages/cloud_network/components/CloudClientEdit.vue":[5385,5385],"./views/pages/cloud_network/components/CloudClientInfo.vue":[55341,1821,9294,8305,2018,5886],"./views/pages/cloud_network/components/CloudServerSendMessage2Client.vue":[70649,649],"./views/pages/cloud_network_client_permeate/ClientPermeateClientNetworkMapping.vue":[70487,1821,9294,8305,2018,5886],"./views/pages/cloud_network_client_permeate/ClientPermeatePortPool.vue":[52515,1821,9294,8305,2018,5886],"./views/pages/cloud_network_client_permeate/ClientPermeateServerNetworkMapping.vue":[32914,1821,9294,8305,2018,5886],"./views/pages/cloud_network_client_permeate/components/ClientPermeateClientNetworkMappingEdit.vue":[15063,5063],"./views/pages/cloud_network_client_permeate/components/ClientPermeatePortPoolEdit.vue":[6380,6380],"./views/pages/cloud_network_client_permeate/components/ClientPermeateServerNetworkMappingEdit.vue":[44534,4534],"./views/pages/cloud_network_report/ClientPerDayFlow.vue":[86151,9294,8305,2018,6151],"./views/pages/cloud_network_report/ClientPortPerDayFlow.vue":[39871,9294,8305,2018,9871],"./views/pages/cloud_network_route/ClientRoute.vue":[20675,1821,9294,8305,2018,5886],"./views/pages/cloud_network_route/ServerRoute.vue":[38523,1821,9294,8305,2018,5886],"./views/pages/cloud_network_route/components/ClientRouteEdit.vue":[82064,2064],"./views/pages/cloud_network_route/components/ServerRouteEdit.vue":[32584,2584],"./views/pages/cloud_network_server_permeate/ServerPermeateClientNetworkMapping.vue":[66164,1821,9294,8305,2018,5886],"./views/pages/cloud_network_server_permeate/ServerPermeateClientPortPool.vue":[41001,1821,9294,8305,2018,5886],"./views/pages/cloud_network_server_permeate/ServerPermeateServerNetworkMapping.vue":[69048,1821,9294,8305,2018,5886],"./views/pages/cloud_network_server_permeate/components/ServerPermeateClientNetWorkMappingEdit.vue":[20890,890],"./views/pages/cloud_network_server_permeate/components/ServerPermeateClientPortPoolEdit.vue":[62394,2394],"./views/pages/cloud_network_server_permeate/components/ServerPermeateServerNetworkMappingEdit.vue":[69132,9132],"./views/pages/settings/Dictionary.vue":[3723,1821,9294,8305,2018,5886],"./views/pages/settings/DynamicIframe.vue":[88709,8709],"./views/pages/settings/Menus.vue":[70536,1821,9294,8305,2018,5886],"./views/pages/settings/RequestLog.vue":[57742,1821,9294,8305,2018,5886],"./views/pages/settings/Translate.vue":[41594,1821,9294,8305,2018,5886],"./views/pages/settings/components/DictionaryDataEdit.vue":[94544,4544],"./views/pages/settings/components/DictionaryEdit.vue":[35757,5757],"./views/pages/settings/components/MenuEdit.vue":[27523,1821,9294,8305,2018,5886],"./views/pages/system/DemoView.vue":[23956,1821,9294,8305,2018,5886],"./views/pages/system/Roles.vue":[77323,1821,9294,8305,2018,5886],"./views/pages/system/Users.vue":[31138,1821,9294,8305,2018,5886],"./views/pages/system/components/RoleEdit.vue":[27649,1821,1329],"./views/pages/system/components/UsersEdit.vue":[34530,4530],"./views/pages/system/components/UsersEditRoute.vue":[8340,8340],"./views/pages/zone/LazyZone.vue":[50194,1821,9294,8305,2018,5886],"./views/pages/zone/LazyZoneApplication.vue":[76503,1821,9294,8305,2018,5886],"./views/pages/zone/components/LazyZoneApplicationEdit.vue":[90651,651],"./views/pages/zone/components/LazyZoneEdit.vue":[67084,1821,7424]};function n(e){if(!a.o(r,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],n=t[0];return Promise.all(t.slice(1).map(a.e)).then((function(){return a(n)}))}n.keys=function(){return Object.keys(r)},n.id=7499,e.exports=n}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e].call(a.exports,a,a.exports,o),a.exports}o.m=r,e=[],o.O=function(t,a,r,n){if(!a){var i=1/0;for(p=0;p=n)&&Object.keys(o.O).every((function(e){return o.O[e](a[s])}))?a.splice(s--,1):(l=!1,n0&&e[p-1][2]>n;p--)e[p]=e[p-1];e[p]=[a,r,n]},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var a in t)o.o(t,a)&&!o.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o.f={},o.e=function(e){return Promise.all(Object.keys(o.f).reduce((function(t,a){return o.f[a](e,t),t}),[]))},o.u=function(e){return"js/"+(9294===e?"chunk-echarts":e)+"."+{386:"4e43a74d",649:"bd9b1297",651:"c3bf0c12",890:"3c6c0090",1329:"c6a9a031",1372:"a704b03f",1421:"3cc42d6e",1615:"66216ee9",1767:"ac8d9e93",1886:"efe56a78",2018:"0cd68d09",2050:"b48fa0a3",2064:"166d2922",2084:"5c53f5a8",2394:"826f2499",2584:"88b36226",2649:"6b8e81d7",3614:"0f88677c",4528:"7847409c",4530:"89c3ec88",4534:"fe71dcad",4544:"25844d71",5057:"980de86d",5063:"bdbeb546",5125:"07fdc72d",5142:"a44df709",5267:"ae6ba69c",5385:"f044e735",5719:"3270cb17",5757:"59b44cc5",5869:"eb17d4e6",5886:"3af41bac",6096:"14a7b5bf",6151:"9aa404ae",6380:"8e6b89b1",7424:"a0217681",7615:"39aade67",7660:"a33b878b",8305:"00fb9eba",8340:"ac51d396",8379:"95d77ebd",8709:"7fe94b02",8918:"e42b1261",9132:"305993fb",9294:"0c1d0f1d",9310:"b0e2a5f2",9651:"caa46834",9871:"96786c13"}[e]+".js"},o.miniCssF=function(e){return"css/"+e+"."+{386:"79128e8a",651:"79685fc9",1329:"ef3e0091",1372:"5ddfc206",1421:"c4f362d8",1767:"0e524470",2084:"7c451c88",2649:"ef3e0091",3614:"a34dff49",4528:"2c4f54e3",4530:"628e9f08",4544:"be307a34",5057:"a0617767",5142:"a3fd54df",5267:"88eae2a5",5719:"65f06e68",5757:"be307a34",5886:"d8aaa4dc",6096:"fdd562dc",7424:"ef3e0091",7615:"ae2c97d9",7660:"65f06e68",8340:"be0c9ccc",8379:"c2d71389",8709:"a08edcc9",9310:"91d84895",9651:"185d0185"}[e]+".css"},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t={},a="wu-vue-zone-ecology-net:",o.l=function(e,r,n,i){if(t[e])t[e].push(r);else{var l,s;if(void 0!==n)for(var u=document.getElementsByTagName("script"),p=0;pQ7`in`y9)OWji@Lj_=8rkC!|9OfI?NFPyhH*KArk!YuXa9G6@Qsx-_DBEJu+aT&zYCLXiZ=%nu_J$1(2p``u0* z(E!oD>(A|d*P&i?pIUxkSCY@8QFPI;Sg}SJk%%?|R=S3c7RNddBO2WCZMqUEE7kCP zo36$Nl@}3JG;AXr*^#ZmQ6AQcc6=%D=d&9ZJaL0Y<;t&Z;Z?Ag%GYAQ$rx+}x*C4W zpm;E|Nknhb&%h_H7!5WI~&-QW8WXN}{!WT>+KnethPHPUHt= zb_r>4MuUdPuVEOGTV|9B=rXH_+$vHR;A@C2vX98wYVZoNPhj~Vt%T;obJr`3jK~(u z==$eb8YZxyL>gn)KW8M!m(3HyqtUq^Ji1M0Gsl}`aXDT@1CO{3QKT`W9*qL7(Wbn7 z&G_Vz<_WzK+8V;=@n-425!R~l$fL{;%SK3Rh6%Lj9T-+l{A2$S^={0qM>M(@_-Bqy zgVl;W0)WPdLDW!reHEoSa&;ADQCVL_esI@RQZuaUYsn7vnmVcmd3^=>fnQTa^^nIg zZZ^C9Ufqnol*H~$askpj;KR(O+do*|stV^gI-Z;iBO>6a687GXM zM@(hi_vaCSD8z$RJ#;88#S+46b!bVAV)~$TYisZ9|c{M}sLP z5xwUJ(LLXHS4+=Kloqn=`|f6X?6tdq8idNvciVnwT^u%em`M6y`N zI_a#aWre673X9?nHz@K|R@h*yzLFVIta`OEwrRa3=D1S5)m*Yky%p@Tam_3EW|OK* z4772@b)2+GtraY_alM;O0~=}=q1LXhU8-wYJyTp=yHwY*ZU%V{?NVLQ>Y3%L+NHXV zbu-Rq(k}TbIV*0gV~PzB40&Z$v!W5}70w2Y*hufJXv8MkXH7FUS3)b=v0fFeX~l*b zX+;w@(MxL@@x08*e?2#Iir=4+IdhG;I&)Su;yIWz*NEp~&O$SumpOCoxH@wdTJc=W znQOxHFlV6=wT64Yt!uT*_6d!Soyet!-q=r<)>?zioJIuc4aXb%#np4Ot9F_hjId84 zFNoCD+pV6wXZcZePZpDT#d*?8)X!3ztS)z8UO!bJx9Q znsj>`A^!i&ckC^df0ukSP{xiM(Ljm~9CH!x1vHum-j<_8 zenec;S6u2%qEqZBGcuv3_FDuyit9|B$kcu-V&B8a^p((cEGkK4SCfA$!s7ovrqo&$p_!Q{KG%LhOp(^)Ih3=uuURjIB|@9bFi3^fO^rPZR~2;u?zJC^Sm=!iy<<4q6_{U9`8mIv3Nox7dkDh$+)2AQ*<K_khc=#KmGaTAO1xFIkD~M$E+um`o*6< z`=>uHV5YVcJs)a53~hn@*|$Er{P4T^Vc?@0Hf~dIUN;bsSFEsl2-;9x=W`kYhP?ZE z3<1O3`&@>Aq3-7zefhWFe)_W?mYcqR>bRew{hFGq<;gd`{^_55T(0FtWOXP2ZYNsTb}0vx^P;!MQ7u>a#g*DXOUCG>T@S(P*5XpDU2@FjOqB zVf$9tc>lCf!vpsMf9k_DeWm&n!KW^T_V3PI&{w%uWU~}Mm^6N)@&4)V{+*h396<3L zGgh@^h#hmVa2UyX3$EK!$8$p1m+}LI=OGR5aFO`QSD*guhg>8s|M<@ko{=y-_XFEN zTC=6MI|v89O92yX-_Aori!q>1B$oi@EXMV?)FrARb_*>H=QA4cf;BA^z(^D5{CtBf z8lE~?1W*3qkDh(<-6fow!VPg~E;tnL!J!S`AeVoGF$fJXs^Yzjxd%nFwtsjLHXyAL z&?s=|S#D8*r@r;bxTfNOhBMy_sX@(`7TmfU`SyjeV6BNTGo}oJ!M-wrI5ufwgn1G- z^&E_#ERy4xHTQrusIn!zt&Q^H0&=s9rxc=kK?GUXZM#&u%2;PjvYm2cYF2!ZcayrM z;){i2$8ml+@*r>p#1S9Ha)Tf_*P`{5cWfg{_=038zN?w08NIwTS%uA+XT@j#^S?d$ z;HUrmj~_n!$}cZ}|D&hh`O(sv)lh6mjsirLBx=4y6~_jgvaIm>Op>vPFF*L&lMgE_ z;uuC6m@qrW@VjQ^2w9oYVkOHXwVp0aCZY^Mq-42~EH*qdW6$%+yWILcXDmfZ=uau5 zfrRFsO~;N$ZDg7zRiI6eA2+Wh-{tLXItYfQNn}~h)^Pdl51;<<$Cp3-yUV}*v&)Zu zl%?_>bwkRUL`*iGgGek@cD146*gG0l6oo3#v3M_1X7lh=B66IFRxC>t`#8b~I*k&7 zXZe_sk@Ik#fg$6;ETloPC?pkx19CFV&I*c^c5&SeGM*i9_+6=5c+tBa&6Nb!$jI8V zU{>sNI2*Hq+;7Su8|W-ILs+OZ!=9`SRf+^MvID>h)+iCk%g~h-tydrceRod7=$1bz z9z+v44cDKnP=&V(vY6AJ4>AQ-Q&W=7m!wc((~Ierv_z=zDM*&tmra(=u=+Lx##oNA z>rWgnX(d0HKrD-f;R*XuBsdLy_Y6EJAr10SLL+lvb|_*=*$IsjvQ8X01egc40`Rb$ z0ER++w!?fLB)G^9!7{a;GqbRH&sPSze*Bk(GJKeU49QZ$N^Q-uWCo^6Gh`Y`B2v>y zaCdCjQxcIZ+tndi1z$@ohG7$u0hVgAF%&Cl2e38tW588J7f@!#Iv&cFv)5-BCnF91^8o{VT%%ih=$R= z?|IbXigRLWcdLxJH-I5r=n`_%P`y{bo$UqCn` zk#)-P5$pVzj9hv>41LQH$I4yyzqF4*tn)?$g&Sm98fsX1?7hB%(jLVI6;vFEudkqd zw0%ttRWtqy{1y8fYbvPP&R9DT`7z$Cn&%$%>mG40LMJ@3PU)0frBafETrB`Mi1p~f zti)ku{v8nu)LdA@UDbFi#$^TOnk}Yk)SDt5vC?6V_8Fv{M(d~$vQnGUAd7P|d{<~> z#a)wHv^4|`sO^MR3O!{mR$@ua>h9*y)JR|f(IyS5))fUrl`DcQmh6;QhXf|RRXFy2 zFZ5k@uLVq#8ziJ*4Ni*}Wt2+Gt{_(i^=tHE6Rc2dbA)dYcTP7&%L{LeoE6^;H7mLv z@ez$)qZeyXhOE#Aw&#swuMVk+&P-|VAcdP1p2UAa(L zjk+vG)u=1i5A~?4M6Mcf&9b5%b-j457|<)%!p5{xPI)a$2H`khmd%V(mIJZ_&I_;5 zd8|No9PwcVLw@6{%ei8JFcrKQ>Kzyq5JOjx$WfK2;sYKgFs>p zb0;ud(UqaZW=u8vW*T%P@RTvskM4weG$0ZEZE{9#`}Wck%DbCnHy)BR(wIVl=b>`y z=}Yk4@-5;*oi)|Dkk2YDa2P*t^`$yAFqMlVS**n~5}j^NZ_vqIl5MG`V0-nv-?kEc8Rx}Uj!Fv|1#*)aODA=G-ay`P^_D0yI_Igxx z{VU=sbriUmq1yM|`P3_mei1_jK<#b&jGD^bjW5qtne42n=C9?~YOPGMYzL~KYXP$} zOct#8G`tJ%gbx+J%6xK4M;guZnab;9udJ!D~^J zHjGmY+2N@Kui2PQ5!4+}&!DLH*k-T<&KZfEGrA9(o~y9gxuR9As&bHJERQwLu{@3( zpV#168;aybg)@1MuqxTU6u70XJ2lJ#cHBJ@oz_rwY0s@{N`j<@ta&7LjGrK>?@u02 zO^29wkdDdRjq+|2YaRsb7J-;)V10Jv&jUf9984YJqmr{|4b~+<9m?b4T5Ju*w0s@H zvWd3_W1WeYEMPNsV7<%2V)?5!KQm}ncqas&4K^;h$yDxbHA42|&<;0WNCD0Y1FWJu z>udiktGC33edS7*WBZxw&wCcH(ttY1)lJ%j>MNW@qW)DI&KX22-8RbstT9_=F1ffp z4;_oIVeb|qjzD%}3i*|GOA4K{(U&mQS~rEt+30zwvOK3yIYWI3RcWgyFa>LU301R& zlmaHZH8ssFX>rJZ#mPCp7|7TGCt7+&K1)C-UZNi>Ur#=ODN!$lsU{x4l)A!TQgu~v zE@!!P6DUgLXDI5Z&nhhwUsPL5djPvnL#E}c`#GUeu~0$L`sW_=^+2%|edZ1xNGrly z_w4a)8f28cZ#8E2xG{x9{#l$YeCxME-)rXFFaXB9Esck1UeWpgt}C{i(pgVzE7A9; z#e#*r>vF4VT8h)Q1kQT{SE3NkmpV+`Befde(l50JEz?Cur7k8aDvwq8a;mzU^}KQA z_Zg51-B^YDzJH$EHm=5*9=;N&YcN%Lgo~(zFM1uS3O9WE zuHvT6hz6f^0?!>`VLEvJNFL*%akw2|FNtNbRpPEXuE8}x!plgne z<=~5Mf&zGHc3tLIoLk8N*F{H7OF)3pm3?QSMOPC5aI9_yL$Xm@UX7yJb!+X2FobZA zt3j*{hA5ADgSKW-*R(r|!eeJT3i9NOqOcLMz}0NxW+8Kq|2$;H9&G~o zAaNE|fYvyYQrJArGJy5e**|qW8q)n!5)dn*L0BS`#Y;4-v`8J%O1P@%SAnjUmX!#L zWUWD1N#YX1N@`bNtfzblWqA-P@Lgd*YWTMT>1vj)LA>D@tz-KY*f$ukb)r#&ebdof zD?T;&HyX;Tix@|KOy7%+{Tmn2a-(W>4bc*yZl1}j&;xEjteCb+YLuoR>`F^_GI9M8aqk8Gj0TZIL*)xB=%E7lyl`Mr zWlCo3I#Z+sbmkI^N{!vd1fvF$cTfZEP+7*l=_wN$0S71$jKv8bE%|<|cQpxvn8mykH|8uv@c!K#c(Vv&it{loVTY z(^KA3_|-3I@g>G8#x*sT_kfFL*fQZdHMUK4Z?3SN8;i~&KL{0Z15cTUltrgmIFhW` zzDFe)M+(QZy)8j%7?B{7WIQuzJyXKbLC2d&3s+pf0}W%KTRa)zaOQX(4d8nIF5Ir) zb(0)8WIYM|xn~~r+(nP&(wuUWbEa#vrRBP8T+~1 zTsutQgIu;~jOofa%w>ocnW2oMSjHft5Fx<{LGWN-fQczC4KTm{m>J=*6ezY6GQ}&s zLuRwa7Z$E^OOM~dl1IScNg1VG*!U}f<0!6<@zBjfU?ISd@G{S zZWslWOySCL+JgbId@q8)3!wSYaC^I{s;mINoh^iQE862Xi%~ddgha_8G*yVHloa3I z=D%QJsaQ-KNyJ1n2q4-*sJ!1(*mnut^=Bd8icXzy%L%v07E9g|_d69N%h=l9maL>d zLR{eg3QiZ`(t=H61Si);MT5l87{mw?V8jTg{#tU9?QN0{9G?jS6QRBE+<_rm<|Tw% zSR|xdx~dw1iJpD((MyT5$$(bu2+;47bg|J(oai*G#nqd$52 z^B+9>_dO{ge)QwZAN=0s*M9ctcfMaJ)mxT&_LHwZ`QA@*`EA~>Cm(%y z`GPRgvSD5 zJ8@o*(~I>5eL!SToJUdMcoSt7_>m7_%GeL4Bx7vIi)7LaCM@PlC=8QSAWxl;%}aDy zWS|alWU`#GA4rf(wj6JZ%8|KbB~T~#>Ez(OnS|bcd-3+$3$#Oa(A#gvZ@(QQj3!9N zbU=o3BH~djl>F3Oz&gVa^Q`&OT!G)>C!WpoS@Sf9yX&)=6BAH)AIwvLDVW}yvP(~8a_uRrt%XK z3d6giz?wG1OhI2j#5z7$69|&m>}YLyZ=yV+7oj8riUVSuGE-8RDUnH+#;NqS@^<6# z+seaG1~V1Odl!Rf2spX+pMW(d27sX?1)NZPK!>Ij!9z!24NV7RK!+@<#ZY2j=YfkO z9Dp3akexf8?Vk_)p?QI8<&9;>F`k)3YUyCdStgOXeYMk;vCV?yMW?XvVfqngl_j?P z>CE@wEfz2;6LBQ2D-DQ3B@IY~;af-TcjTe0M5ok~h%$m;1O)57rq+{X7S)K=k=*f5 zs=1&3-nb@BZ))Y5x;?Gi&DNx=dQu7dx-tH4r=ynfceH+2mF0MdL6CVB3I6M|*=@23 zwR%mB*U|2E`r@0WH>-N1Hf5PzUJ9rciAWjfRe#E!;DH56Ks_TFx>HEUnKFfzKt;V) zw_mJAV~KJ+jF~pPfR%@(%(}9)ICYqd#9%2wTb5)TT7mDnH|QxjbNqmZpIBTNYAjU8NU1Sc1vIs6S7_!-gTR`ew@Wmv~%wDjw!{#l%0tPE`5DeLOF>4_%*JzJrBs{Ra zo%@-rz)g)Ak0c>`u8^G0uVh*NWoRmq4KxK-j)5QUtzNaU^;)Ei=-3Y^S7Ri+@GQWC z!|Y=kepDzouzI(`;F$%9KV#VZl(hwG_OomAuw43@{gvIC4_g(cAp>(C`>1X%a7>-A~Iny{W9l3%mz6u+WU3MGW3Cr zBP!-#<~CU_VB$2Ct!E0pHU~o-fHbGUax?NAnd)BjMViQSw6h}%Gn5V@K8ZtQswgYF zxt~i}lzr1r*d$kE$;Vn2ubf2FV$%Ujo(JyIGci!3k!h&P;Z5qFmnJ1V- zg;D4V@GLl2+7uo`Q1-y;IyK*M3Uzs0vsI+e0)GY(@d7ukJjUKq` za>@ve6PW1Cq30nxtQUf>P+;9FA(gs%zb{KjX`r282SG4LB*y`d@a4&|pV5$>AMftI{a%Z1{q7bVPcgQZ zPD|xsxb?eRuH(@yt=WYFUX@gB{q7bhX#OLu9N}d{5^;(YV%w~oG_6QWj2Pp52bByB zu$W@7F*8Aw*@@|0jfaa$f}(y7@sx8K7H2Dm+Ia21k{HV?8p4~=e8F*-*H+kik+GQ9 z)~3JE_{J&0XQhQ` zM&|{GlU`e4_eF-7URzu5g@&D8TV4Ni3PruPVom*g;!|&;BDG&l(CQUUNv4YCi;iTy zL7lA^8s2(?3iTHo^SZvqbOvsJo`JAe^f=+|&aXT=_6CjW{$C84oon7Oj`2}u{VemX zlEhn}B>Vk|%Ynk)soLr4GLDwc$Ef6dBx30inBWf2`4fXov50v{paLlnwl5BnUTqtFldN!$V#oBr2P&L3dsN{zsB=aoA4?KpXAK_PIA*S5!Y;{!*QW@!dL4AhQ{g zW6T_D>y9YcQiK<88JR7UdASYr+-CK%Onxt2Y*{a}lMQvTWxdQ033$#|&S^5^q%`Jsnx3TK{9%=4fqXii z`T@P2!xE9vhy+SD1CK~hDj?FZxN3KU1i9>GGA^GKN?TLPsy|(n!qk;09a$5)h2+%Y;$goTrZUsjL6u4h47J=_ zho}x9k1u8EHE5D@96H9+c|sd0cnveQ4A~yJGro`t z;J}K5K)Iz4+2OMV<*L(+YVnFt-=ZJ~Kfa%Wvk_VW&PNc7f*kzKixfO}w5T3SKJ0iN zjN>HBCgl$#)g#S|0xke@w9`q7HaW;tk1&xFoEGLtUU!z{5{I5v5KM>nrg)i*Q4Y0zWS(GZz5#t zt4qZZmw>^_azWnZ2C<=0%bZj9bnp_mh0! zz;ga{lH>z(mGfVBlKkUJ{KqMN;Hz@}!=of0xTl;Syq4s{(3kTM!XzJtsGR@mqa^>Z zL_fYI=ZQxK*@jodHm|hw!4LVlHo(|^4apm;EBC`*Qgey9<(1F(2;TVuNOj=G4fw*g zG#X!6L`+8Gcann|(B(rN`>@P{XCSq%x{--~5LVde(-^<{s3QF$#)o=Ex)tMFRq0-g zUw10f=P^FMUy<&{_|1!obU()Ae&t#MKRl{PpT&4OsYnlF{O+xa^dQE;YZd7>tX0w- zpX0k<`qHg~lcQUQHxKS3?3w83;P~YD?rR5k5cbW&6ylgg_3v_k2Y0UDK0r7$(OY-# z9Go29M0jqZ2S*3@+4mVQb^GAXgOgi_N5=?TJmucO{o98}M~8Rsh;*B$zj1K?@Rh^; z>&K9@fA{7A!c(5}=E44}*DDKLojjSYtBx@-MHAW-&Sm*vNg2gB@wY!kS-18|GDXe~x+I`N5Sh{^u`8)?R}s`|+g zYABnGOGsfaTAsklPN-xFvAk3fK}$f@!buI$D6S(Tu{*oV6?l@z!*SU3J@IUf0B0wt zQ&caPa2dJ%)la|n;pJa{_%FZs&uE81-CG%Kopa0h%U4H#Tw6koHIM0fgqrbYf*VwCJxCZyPzgdO*`Dn;G zGkH+v&c}}ji%0b09^ZE6N7mS+%}=!rpSQler3Q>zwl*v;u{MCr<$R}`^Y6dG z)LvHac`;^6W20$&|Mlu=?fx6p)34=KPrs7~)zh!jt)6}(wR)PJJC)`@b~+UVW)tcD zgZuXn?i`=oxPG5ar8f_5om_Wa{@dZd*>~4O*KgkB-$Oo$-MD^VOo(%ykVO__IFP!D z%Ep3{g8X&OPxN`G+imyxPtRPOoTLXe5e{iIpTSC7JW7|ngSADtCvrZMCB&VryKs^O zCFi+W?)e0cL$a?Aby*_ZsMGpwt@UEMGOy@LIyG4?2}1*&(GwQ&0KplJV&VylQWayT zoFlHRFn5uGSlSK$J;YCdx@;|#{n$5A*!m++FokeUL7OW>@m%evm`7V1YPK?+Qyvc&Hzc!dNp-V5rozQYX#K`NsFc}7nH|D4TZhKDWcx~%Q&`letmHd(w3?St$S z)@;U-h`$tiz5*if&np2O>k;#i;*h%hVW$04;!XGn5D68M5oQ+{V{si%QZbRbYNyqa zmA7Om#Df6}sAt1T>^uu&7l(MBY*WoL@k|$IcL^sR?TpB>F;@q@rv) zHvzSChOmbR^~FF1%y34|`0cR5z-^t;li7);qIfCz98+87M-O=wZyw4LRlX3qeiUL9 z`M!HHA_2mS7@zr$y`{qO(4j2j6QczS%fVng9Ez5lB<=M@d(#AGgAPpQu<>Fvg;8!S z(3Aud$J-5@$!UZPq_t=7A)KVTbPS2RkQj^WJ0N|~K{A_B&)%SaykJG|7-Li;n99-= zXc$_7!&Vsvdh(yY{N#Io@#MQde)8eRC}s%iXqeb1F4MQzIQ*-0?|MnK7K60KQq1h;wl-vWV%YCGb94n8w3A*m({<^m5Q`T zRTzyKbXF-z6z9;%7=a#JgCVC0ODJMa?j9Z#8&gI;6b#>l{hp>S!)au#*^|WxkslEkZ^1Q_5O2)_dWN^a z)(Y^JN8gL^*2DRfJw1*fb(fVx#z0eXQ^jo+_A7Byg|8~sXbU%K3%6+tYg8Ws57~6r z_jW_ao49nB8F9unEi;JADNw%3Jd&9?YiT5NF&hj6aw z*+(=uqrpA6JxY>t&2C>~<=7ql>obQX_uIP0u!}3Ftj4a|X~xSd#4LCgbS+|MC({5v zQY6P|A;^KfnQKJxr2sB$3J?fbaloU->=V!Pqb=BV+2V)jwtf@s&>i%fNZyN11OI$0 zVjI{dx_$TNgIfnDckUjaymI%!otp?p$(7+?K!-6u^J|vvxcqr!xWpIG(09+M>EmVO zGY@-;W1DOg;lOIA*;+A}sRNQ-&NG;w6=){RG@c5k=)Vb~F>1w_9ll;cwA{r)WU!cT zKr|i^Oz@

;E=r2E>XnJG8u7Ycw2~T^V`U(NZRx$+fdgUW;)cKTMlRhYjd|6BK2n zj4@oET|v<6aE2J9a{${sL$3eCvHP$A`;t=!ItT&i{e+GjpwsGTI);xj*mUZ9qF58+ zc3}3=?rQyF*;hoh@D2|dy(*i|LZS^|1RR-ZE zLgNlOb0#FBH%O2)zSHitc%=|<1UJ>5z6Ka}^_K|x{g$R;_^1Ipa_mffownNUV)&>j zo=Le8P-0ubd^!@q-L{}ludnsi!@o+Vqj@l)LCOf-P8Y++de~e3#81HbowkPIV?EeC z8ic+_TmhY*tdL-E~Tj1!|+iAJEQQR_UK`@MF4sT5O+2y`f_A&xZEoJU zDx}A781Ba0dPJjC1$NZ#^CL}P7fU*+cRH;XfNtNNX9l&`YV~_B04skyIpI0A*L&`s zXJ@P;Wiw;0HPtq(%-ZTz@TKj|U~0E|Z44jJh3L>5`zaT-bnS(7+n?KfEp$XZ`!=sG6xy*V`=} z!^fHm1LiGQBELy4Ks6_tsiU<^V*_bd!V2UlVs7<&-4bR{C99>5pLJTP z)6qK5Ew!7}TF_0prmEWKQ{M{R)ak2w??u&G8nqIc->eklrrPVPxYt)-Y<*P0I1yb)KW{`#h%mEq{`lq+PxF9EgsShn`ZgX!rH!z>^uUC4J$QsLbH>^|lVvhpt}{ zPgW7NyRe|{w!0hQ09t1`zk4OsE8@Z2q*MP5hbEIuv(;~Ru8f2Ql}Sdu+j@>>u-IJ* z88ofcyE29hVW2rV!hq4q@M*1Pe**-pHQ9mDVLt&rt^%B$7ke#T#qd!=05?aO8!EH# zZ>!o>7&V8YyoT*|+G^{H*s|`EGU6=XtKd=TRMIqf2s&u5t-mo#hwXU$9sk5K-Av|?p|9|(q#6U2~ntA(Yn+t?6KQ| zS8&iewh12Ctb3MU=gQE{U;3cE0UbiXM!pNju7o5}$`b^vUxbx37b4AA#PMFng{)Z6 zHwT8-KY0gY_Z?=r1IfJ;k#H54S z5H8sS{F?@3XWyE`G+w(4AxA?~-3z~%1Yg|?cXnjynzrpde(bztdh+&mmW;k~S61j5 z4K6YxLYFryl)D2Kc{?1!(7a4oKog5f;qEThWJ7YzYZ~^x=)lVdrYEy_ur9m9&&$nN zIdKLhkmS9T^mBL$!<@@;oCb>bOz-hyHSG;NOOnul-9sJBb~WhlOWxjWcUOkqn>=xk zeIGEY4rA;qUhd@`KKkr1(a8x7Z!?B}xy)cRjmuJTLW`z6;Pb;=5IY@S?!dlco7p`8 zd65gCAIZMr!XnZQ&}MUXh4P#?!#Bc z<^ujvvtqciqL&}#v8)8to?A3C%xteB?b3Ka_?0F07Rg}9VqYrrifYh9h$t$7=7ig9 zFC*)8?mgOt3*QB9w}+UrH;`)Cot~}s5%WJ8Xr%YXL?tc6)=~!2Ivu;& zZ#EIzIWSP$YPZI10`RTAZlGSXGj8gAfNw*7uQzISn#~SkK1>63Mm^fo>@H&aI0jP3 zyrjUySmzEzgwz-dVQ-!tzM7))(teKUCp+LjhGo_AgD#RyBcD93m1nXlFz^P(QfM3^Z1C zopxJo#P*U5)M|EBYov7%Gr5kf?F=Fd|1N8~fRh>}8+!zMx(axyXA8Ck9b_OCU>|*rbHyh7ZpAegNx`=t%4MbY4 zQLoz@AvR+hNL9z9J{=Ln3<((Twr02b9mG882I{x%ZkLX1#B6i}b;q=?k5tBPF#c3; zjhs$Uq~NHc5NjL~O&vKo%i-r`OUE^Ew!) z-|6-`7CbUGpu-&mJE9;&Q^#}m!|;_VS+YVFo;M>g-M-fB(H;>Z((QM8?XlHQWP*-c zR8{+_Otfu#Y&F$RA`_NAZgrY=FOdP2wwt=%RTCcWT6$Y!JjQu+iI4LrY3cTOtoIWh zZCd)ctj}xBj^(X-x_Xr`no$}P!w%eU1{N_BfY(M82LYr2oqBGNP*0w=65+ z5vyr;wN|g6@CZ?R)V6@$e9Zfr-P3#hb~5H#uWhSZubqss74kuz6rNu}K2yNRG~sH9 zKi=Ze+>cM4^jV~3%3c&)EHZDiJbnzeTC#Zyfm+fmBujE^@mD>nE8=frB$e=AaV*K$ zSNy^}l{c)G56Ya9@b0;nOiJ9|q3nie1k(>O;aR@3Io$=5c9&Yd>rXD=aXtfKUvaaw z1lYq4YiKl}Lm58!J?22%iDrfi4s&*yCnq!L+)Sg~PiS<&gBFH2E{@5B9ScPKup5F` z%)o4#=gcO+V43s5jG28Fpn$W?&IkfPqcE_LY?}1(<6;gwb9GKfGh#i0B4o#t7p`gX zSApW#ef(Hr@!chN**^YSn`q*)VX^`fV@M+t&7<*d4`Ek{oGJC^k*PIRFjlPXZ8$BM zZGq=|7DX&m#>LEB^Ds0HiUgKPWefy12f>ipTp7EB;6Pruitn)}hD`VdS3vkXa+XU; zaLgMeO_OV*kuaAP^3LSuCD7MBHYD7%p|dXldG_ z1dKfjfPH0VqRcUGt~M&#oOGKDPNj(ndP$g>MN^U=ds$9*5`|OtzB1bhfQxD@e&;NhQrmL~5yT7?)L)VA94e zry}-J2#aPENSWEdH`#l6EK;j0zB3_Tep7%rj~_=k%z8D%qm*0wM@L(1QL@EMtF19{ zTxu(CdlK65caX7#cHA8#BY7|6Pcoo=C=K8T$zy}u`LTa=bh7{IgFCOC+`4=H=E*D9 z4{sgZgltA1AE)nanl5&7s?n)ajgE{xDFij*uwIxECNGn0X~zp`5Zz$U%190-3LJ1g zaz?J>O=P29H#u@FQS9-Hg&>mb0fWd~G&Q|tsPUe!j1%cBOboETd|5pD0N-VUxkmo(yZn4B87G&OEuYTT~WxH+kDD^laeqsDDUjhl)Zw-7aM7;4-e z)VLX_aqCaxMjv;E!9OtZG;Y~x+@RCA9j9^gP2*M@Khb1pG3!94UnYf!yCn}4%Yt{D za`P1TgQc?{8DbjCEKsl{((e^eA{5=1nlgvi*ogLXToxvR3lQ5Lv z9i#(q$Ug__P=d!CJ>apWLr|K*g*`K*?pP5vD5L86{N!v-PgvYXu_AyCzl{q*aHvdd zx+r6tsbD2Cb~UrfJV`u*1MgWcx%jSFOW*