From 97534d399a77fb0f6578401380a0961a0cc94df1 Mon Sep 17 00:00:00 2001 From: lijun Date: Sun, 18 Jan 2026 16:19:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9C=A8=E7=BA=BF=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=9F=A5=E7=9C=8B=E5=8F=8A=E8=B8=A2=E5=87=BA=E7=94=A8?= =?UTF-8?q?=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/vpn.ts | 7 + src/components/menu.ts | 6 + src/router/index.ts | 10 + src/store/permiss.ts | 1 + src/views/system/vpn-server-online-user.vue | 360 ++++++++++++++++++++ 5 files changed, 384 insertions(+) create mode 100644 src/views/system/vpn-server-online-user.vue diff --git a/src/api/vpn.ts b/src/api/vpn.ts index 4de2e87..5526f57 100644 --- a/src/api/vpn.ts +++ b/src/api/vpn.ts @@ -86,6 +86,13 @@ export const GetClientDownloadURLHandler = () => { return request.get("/vpn/clients_url") } +export const GetServerOnlineUsers = (serverID:string) => { + return request.get("/vpn/get_client_online_users?server_id=" + serverID) +} +export const KickOutOnlineUser = (Data) => { + return request.post("/vpn/kick_out_user", Data) +} + export const LocalClientConnectHandler = (Data) => { return local_request.post('/vpn/connect', Data) } diff --git a/src/components/menu.ts b/src/components/menu.ts index ea4dbaf..bf74c28 100644 --- a/src/components/menu.ts +++ b/src/components/menu.ts @@ -97,6 +97,12 @@ export const menuData: Menus[] = [ index: '/vpn-tunnel', title: '隧道配置', }, + { + id: '755', + pid: '75', + index: '/vpn-online-user', + title: '在线用户', + } ], }, { diff --git a/src/router/index.ts b/src/router/index.ts index 04e1c69..6eb9d27 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -164,6 +164,16 @@ const routes: RouteRecordRaw[] = [ }, component: () => import(/* webpackChunkName: "system-user" */ '../views/system/vpn-online-connect.vue'), }, + { + path: '/vpn-online-user', + name: 'vpn-online-user', + meta: { + title: 'VPN在线用户连接', + permiss: '755', + }, + component: () => import(/* webpackChunkName: "system-user" */ '../views/system/vpn-server-online-user.vue'), + }, + { path: '/callback', name: 'callback', diff --git a/src/store/permiss.ts b/src/store/permiss.ts index 3f25481..0de974e 100644 --- a/src/store/permiss.ts +++ b/src/store/permiss.ts @@ -65,6 +65,7 @@ export const usePermissStore = defineStore("permiss", { "752", //VPN地址池管理 "753", //VPN隧道管理 "754", //VPN客户端UI + "755", //VPN在线用户连接 ], user: ["0", "8", "7", "9", "51" ,"53","55" ,"56", "57", "58", "59", "61", "71", "754"], }, diff --git a/src/views/system/vpn-server-online-user.vue b/src/views/system/vpn-server-online-user.vue new file mode 100644 index 0000000..097dfcd --- /dev/null +++ b/src/views/system/vpn-server-online-user.vue @@ -0,0 +1,360 @@ + + + + + \ No newline at end of file