diff --git a/src/api/vpn.ts b/src/api/vpn.ts index 3be4389..f08b0b3 100644 --- a/src/api/vpn.ts +++ b/src/api/vpn.ts @@ -163,4 +163,20 @@ export const DeleteMyVPNPolicyHandler = (data) => { export const MatchVPNPolicyHandler = (data) => { return request.post('/vpn_policy/match', data) +} + +/** + * 获取VPN日志 + * @param {Object} params 查询参数 + * @param {number} params.page 页码 + * @param {number} params.page_size 每页数量 + * @param {string} params.user_id 用户ID + * @param {string} params.server_id 服务器ID + * @param {string} params.event_type 事件类型 + * @param {string} params.start_time 开始时间 + * @param {string} params.end_time 结束时间 + * @returns {Promise} 包含VPN日志的Promise对象 + */ +export const GetVPNLogsHandler = (params) => { + return request.get('/vpn/get_vpn_logs', { params }) } \ No newline at end of file diff --git a/src/components/menu.ts b/src/components/menu.ts index a8c4085..34b9ff8 100644 --- a/src/components/menu.ts +++ b/src/components/menu.ts @@ -115,6 +115,12 @@ export const menuData: Menus[] = [ index: '/vpn-status', title: 'VPN服务器状态', }, + { + id: '758', + pid: '75', + index: '/vpn-logs', + title: 'VPN连接日志', + }, ], }, { diff --git a/src/router/index.ts b/src/router/index.ts index 4ff5755..76d145c 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -191,6 +191,15 @@ const routes: RouteRecordRaw[] = [ }, component: () => import(/* webpackChunkName: "system-user" */ '../views/system/vpn-policy.vue'), }, + { + path: '/vpn-logs', + name: 'vpn-logs', + meta: { + title: 'VPN连接日志', + permiss: '758', + }, + component: () => import(/* webpackChunkName: "system-user" */ '../views/system/vpn-logs.vue'), + }, { path: '/callback', diff --git a/src/store/permiss.ts b/src/store/permiss.ts index 5d048e4..a3b3b24 100644 --- a/src/store/permiss.ts +++ b/src/store/permiss.ts @@ -68,6 +68,7 @@ export const usePermissStore = defineStore("permiss", { "755", //VPN在线用户连接 "756", //VPN策略 "757", //VPN服务器状态 + "758", //VPN连接日志 ], user: ["0", "8", "7", "9", "51" ,"53","55" ,"56", "57", "58", "59", "61", "71", "754"], }, diff --git a/src/types/vpn.ts b/src/types/vpn.ts index a308b06..7ba5c7d 100644 --- a/src/types/vpn.ts +++ b/src/types/vpn.ts @@ -82,4 +82,26 @@ export interface HostInfo { virtualizationRole: string; hostId: string; client_version: string; +} + +export interface VPNLogItem { + ID: number; + CreatedAt: string; + UpdatedAt: string; + DeletedAt: any; + user_id: number; + user_name: string; + host_id: string; + server_id: string; + session_id: string; + client_ip: string; + private_ip: string; + event: number; +} + +export interface VPNLogsResponse { + total: number; + page: number; + page_size: number; + list: VPNLogItem[]; } \ No newline at end of file diff --git a/src/views/system/sqlEditor.vue b/src/views/system/sqlEditor.vue index 0df46dc..bbc3a4f 100644 --- a/src/views/system/sqlEditor.vue +++ b/src/views/system/sqlEditor.vue @@ -8,12 +8,12 @@ :tab-size="2" :extensions="extensions" @keydown="handleKeydown" - @update:value="handleChange" + @update:modelValue="handleChange" /> + +