diff --git a/components.d.ts b/components.d.ts
index 32b63f0..38d81e3 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -30,6 +30,7 @@ declare module '@vue/runtime-core' {
ElDropdown: typeof import('element-plus/es')['ElDropdown']
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
+ ElEmpty: typeof import('element-plus/es')['ElEmpty']
ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElIcon: typeof import('element-plus/es')['ElIcon']
diff --git a/src/api/vpn.ts b/src/api/vpn.ts
new file mode 100644
index 0000000..f771ce4
--- /dev/null
+++ b/src/api/vpn.ts
@@ -0,0 +1,70 @@
+import request from '@/utils/user_center_request';
+
+ // myVPNGroup := router.Group("/vpn")
+ // myVPNGroup.POST("/server_register", ServerRegisterHandler)
+ // myVPNGroup.GET("/get_support_vpn_server", GetSupportVPNServerHandler)
+ // myVPNGroup.POST("/update_client_status", UpdateClientStatusHandler)
+ // myVPNGroup.POST("/update_server_status", UpdateServerStatusHandler)
+ // myVPNGroup.GET("/get_client_config", GetClientConfigHandler) //prepare online
+ // myVPNGroup.GET("/get_server_config", GetServerConfigHandler)
+ // myVPNGroup.PUT("/client_heartbeat", ClientHeartbeatHandler)
+ // myVPNGroup.GET("/get_vpn_user", GetVPNUserHandler)
+ // myVPNGroup.POST("/set_vpn_server_config", SetVPNServerConfigHandler)
+ // myVPNGroup.GET("/get_vpn_server_config", GetVPNServerConfigHandler)
+ // myVPNGroup.GET("/get_server_online", GetVPNServerOnlineListHandler)
+ // myVPNGroup.DELETE("/delete_vpn_server", DeleteVPNServerHandler)
+ // myVPNGroup.POST("/set_vpn_ip_pool", SetVPNPoolHandler)
+ // myVPNGroup.GET("/get_vpn_ip_pool", GetVPNAddressPoolHandler)
+ // myVPNGroup.DELETE("/delete_vpn_ip_pool", DeleteVPNPoolHandler)
+ // myVPNGroup.POST("/set_vpn_tunnel", SetVPNTunnelHandler)
+ // myVPNGroup.DELETE("/delete_vpn_tunnel", DeleteVPNTunnelHandler)
+ // myVPNGroup.GET("/get_vpn_tunnel_config", GetVPNTunnelConfigHandler)
+export const GetSupportVPNServerHandler = () => {
+ return request.get('/vpn/get_support_vpn_server')
+}
+
+export const GetVPNUserHandler = () => {
+ return request.get('/vpn/get_vpn_user')
+}
+
+export const GetVPNAddressPoolHandler = () => {
+ return request.get('/vpn/get_vpn_ip_pool')
+}
+
+
+export const SetVPNAddressPoolHandler = (Data) => {
+ return request.post('/vpn/set_vpn_ip_pool', Data)
+}
+
+/**
+ * 获取VPN隧道配置信息
+ * @returns {Promise} 包含VPN隧道配置信息的Promise对象
+ */
+export const GetVPNTunnelConfigHandler = () => {
+
+ return request.get('/vpn/get_vpn_tunnel_config')
+
+}
+
+export const SetVPNTunnelHandler = (Data) => {
+ return request.post('/vpn/set_vpn_tunnel', Data)
+}
+
+export const GetVPNServerOnlineListHandler = () => {
+ return request.get('/vpn/get_server_online')
+}
+
+export const GetVPNServerConfigHandler = () => {
+ return request.get('/vpn/get_vpn_server_config')
+}
+
+
+export const SetVPNServerConfigHandler = (Data) => {
+
+ return request.post('/vpn/set_vpn_server_config', Data)
+
+}
+
+export const DeleteVPNServerHandler = (Data) => {
+ return request.delete('/vpn/delete_vpn_server', { data: Data })
+}
diff --git a/src/components/menu.ts b/src/components/menu.ts
index 8b8d4d6..9858a0d 100644
--- a/src/components/menu.ts
+++ b/src/components/menu.ts
@@ -73,6 +73,20 @@ export const menuData: Menus[] = [
}
],
},
+ {
+ id: '75',
+ title: 'VPN服务器',
+ index: '75',
+ icon: 'Lock',
+ children: [
+ {
+ id: '751',
+ pid: '75',
+ index: '/vpn-server-config',
+ title: 'VPN服务器配置',
+ }
+ ],
+ },
{
id: '2',
title: '组件',
diff --git a/src/router/index.ts b/src/router/index.ts
index 992c6b5..d0198fa 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -127,6 +127,16 @@ const routes: RouteRecordRaw[] = [
component: () => import(/* webpackChunkName: "system-user" */ '../views/system/manage-model-policy.vue'),
},
+ {
+ path: '/vpn-server-config',
+ name: 'vpn-server-config',
+ meta: {
+ title: 'VPN服务器配置',
+ permiss: '751',
+
+ },
+ component: () => import(/* webpackChunkName: "system-user" */ '../views/system/vpn-server-config.vue'),
+ },
{
path: '/callback',
name: 'callback',
diff --git a/src/store/permiss.ts b/src/store/permiss.ts
index 105168c..fb96208 100644
--- a/src/store/permiss.ts
+++ b/src/store/permiss.ts
@@ -60,8 +60,10 @@ export const usePermissStore = defineStore("permiss", {
"72", //数据库管理工具
"73", //权限策略管理
"74", //模型策略管理
+ "75", //VPN服务器配置管理
+ "751", //VPN服务器配置管理
],
- user: ["0", "8", "7", "9", "51" ,"53","55" ,"56", "57", "58", "59", "61", "71"],
+ user: ["0", "8", "7", "9", "51" ,"53","55" ,"56", "57", "58", "59", "61", "71", "75"],
},
};
},
diff --git a/src/views/pages/login.vue b/src/views/pages/login.vue
index 25a1230..1b60a5a 100644
--- a/src/views/pages/login.vue
+++ b/src/views/pages/login.vue
@@ -307,6 +307,7 @@ onMounted(async () => {
if (queryParams.code){
code.value = queryParams.code as string;
}
+ console.log("query:", queryParams);
const token = localStorage.getItem("token") || "";
if (token !== "") {
diff --git a/src/views/system/vpn-server-config.vue b/src/views/system/vpn-server-config.vue
new file mode 100644
index 0000000..ab8d14f
--- /dev/null
+++ b/src/views/system/vpn-server-config.vue
@@ -0,0 +1,535 @@
+
+
+
+
+
+
+
+
+
+
{{ server.name }}
+
{{ server.server_ip }}
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file