🎉 重构前端代码.

This commit is contained in:
lijiahangmax
2025-06-25 14:49:36 +08:00
parent 5183b7ccb4
commit 6149010bf4
49 changed files with 564 additions and 573 deletions

View File

@@ -36,6 +36,21 @@ export interface HostSshConfig extends HostBaseConfig {
fileContentCharset?: string;
}
// 主机 RDP 配置
export interface HostRdpConfig extends HostBaseConfig {
identityId?: number;
versionGt81?: boolean;
timezone?: string;
keyboardLayout?: string;
clipboardNormalize?: string;
domain?: string;
preConnectionId?: string;
preConnectionBlob?: string;
remoteApp?: string;
remoteAppDir?: string;
remoteAppArgs?: string;
}
/**
* 更新主机配置
*/

View File

@@ -25,6 +25,13 @@ export interface HostSshExtraSettingModel {
identityId: number;
}
// RDP 额外配置
export interface HostRdpExtraSettingModel {
authType: string;
identityId: number;
lowBandwidthMode: boolean;
}
// 标签额外配置
export interface HostLabelExtraSettingModel {
alias: string;

View File

@@ -1,6 +1,6 @@
import type { HostExtraUpdateRequest, HostSpecExtraModel } from './host-extra';
import type { TableData } from '@arco-design/web-vue';
import type { DataGrid, OrderDirection, Pagination } from '@/types/global';
import type { DataGrid, FavoriteItem, OrderDirection, Pagination } from '@/types/global';
import axios from 'axios';
import qs from 'query-string';
@@ -58,9 +58,9 @@ export interface HostQueryRequest extends Pagination, OrderDirection {
}
/**
* 主机查询响应
* 主机查询基础响应
*/
export interface HostQueryResponse extends TableData, HostQueryResponseExtra {
export interface HostQueryBaseResponse {
id: number;
types: Array<string>;
osType: string;
@@ -74,7 +74,12 @@ export interface HostQueryResponse extends TableData, HostQueryResponseExtra {
updateTime: number;
creator: string;
updater: string;
favorite: boolean;
}
/**
* 主机查询响应
*/
export interface HostQueryResponse extends HostQueryBaseResponse, TableData, FavoriteItem, HostQueryResponseExtra {
alias: string;
color: string;
tags: Array<{ id: number, name: string }>;

View File

@@ -1,73 +0,0 @@
import axios from 'axios';
import { createAppWebSocket } from '@/utils/http';
// 终端主题
export interface TerminalTheme {
name: string;
dark: boolean;
schema: TerminalThemeSchema;
}
// 终端主题 schema
export interface TerminalThemeSchema {
background: string;
foreground: string;
cursor: string;
cursorAccent?: string;
selectionBackground?: string;
selectionForeground?: string;
selectionInactiveBackground?: string;
black: string;
red: string;
green: string;
yellow: string;
blue: string;
magenta: string;
cyan: string;
white: string;
brightBlack: string;
brightRed: string;
brightGreen: string;
brightYellow: string;
brightBlue: string;
brightMagenta: string;
brightCyan: string;
brightWhite: string;
[key: string]: unknown;
}
/**
* 获取终端主题
*/
export function getTerminalThemes() {
return axios.get<Array<TerminalTheme>>('/asset/terminal/themes');
}
/**
* 获取终端 accessToken
*/
export function getTerminalAccessToken() {
return axios.get<string>('/asset/terminal/access');
}
/**
* 获取终端 transferToken
*/
export function getTerminalTransferToken() {
return axios.get<string>('/asset/terminal/transfer');
}
/**
* 打开终端 websocket
*/
export const openTerminalAccessChannel = (accessToken: string) => {
return createAppWebSocket(`/terminal/access/${accessToken}`);
};
/**
* 打开终端传输 websocket
*/
export const openTerminalTransferChannel = (accessToken: string) => {
return createAppWebSocket(`/terminal/transfer/${accessToken}`);
};

View File

@@ -14,35 +14,35 @@ import qs from 'query-string';
* 分页查询批量执行日志
*/
export function getExecCommandLogPage(request: ExecLogQueryRequest) {
return axios.post<DataGrid<ExecLogQueryResponse>>('/asset/exec-command-log/query', request);
return axios.post<DataGrid<ExecLogQueryResponse>>('/exec/exec-command-log/query', request);
}
/**
* 查询批量执行日志
*/
export function getExecCommandLog(id: number) {
return axios.get<ExecLogQueryResponse>('/asset/exec-command-log/get', { params: { id } });
return axios.get<ExecLogQueryResponse>('/exec/exec-command-log/get', { params: { id } });
}
/**
* 查询主机计划任务日志
*/
export function getExecCommandHostLog(id: number) {
return axios.get<ExecHostLogQueryResponse>('/asset/exec-command-log/get-host', { params: { id } });
return axios.get<ExecHostLogQueryResponse>('/exec/exec-command-log/get-host', { params: { id } });
}
/**
* 查询主机批量执行日志
*/
export function getExecCommandHostLogList(logId: number) {
return axios.get<Array<ExecHostLogQueryResponse>>('/asset/exec-command-log/host-list', { params: { logId } });
return axios.get<Array<ExecHostLogQueryResponse>>('/exec/exec-command-log/host-list', { params: { logId } });
}
/**
* 查询命令执行状态
*/
export function getExecCommandLogStatus(idList: Array<number>) {
return axios.get<ExecLogStatusResponse>('/asset/exec-command-log/status', {
return axios.get<ExecLogStatusResponse>('/exec/exec-command-log/status', {
params: { idList },
promptBizErrorMessage: false,
promptRequestErrorMessage: false,
@@ -56,21 +56,21 @@ export function getExecCommandLogStatus(idList: Array<number>) {
* 查询历史批量执行日志
*/
export function getExecCommandLogHistory(limit: number) {
return axios.get<Array<ExecLogQueryResponse>>('/asset/exec-command-log/history', { params: { page: 1, limit } });
return axios.get<Array<ExecLogQueryResponse>>('/exec/exec-command-log/history', { params: { page: 1, limit } });
}
/**
* 删除批量执行日志
*/
export function deleteExecCommandLog(id: number) {
return axios.delete('/asset/exec-command-log/delete', { params: { id } });
return axios.delete('/exec/exec-command-log/delete', { params: { id } });
}
/**
* 批量删除批量执行日志
*/
export function batchDeleteExecCommandLog(idList: Array<number>) {
return axios.delete('/asset/exec-command-log/batch-delete', {
return axios.delete('/exec/exec-command-log/batch-delete', {
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
@@ -82,21 +82,21 @@ export function batchDeleteExecCommandLog(idList: Array<number>) {
* 删除主机批量执行日志
*/
export function deleteExecCommandHostLog(id: number) {
return axios.delete('/asset/exec-command-log/delete-host', { params: { id } });
return axios.delete('/exec/exec-command-log/delete-host', { params: { id } });
}
/**
* 查询批量执行日志数量
*/
export function getExecCommandLogCount(request: ExecLogQueryRequest) {
return axios.post<number>('/asset/exec-command-log/count', request);
return axios.post<number>('/exec/exec-command-log/count', request);
}
/**
* 清空批量执行日志
*/
export function clearExecCommandLog(request: ExecLogClearRequest) {
return axios.post<number>('/asset/exec-command-log/clear', request, {
return axios.post<number>('/exec/exec-command-log/clear', request, {
timeout: 60000,
});
}
@@ -105,14 +105,14 @@ export function clearExecCommandLog(request: ExecLogClearRequest) {
* 查看批量执行日志
*/
export function getExecCommandLogTailToken(id: number) {
return axios.get<string>('/asset/exec-command-log/tail', { params: { id } });
return axios.get<string>('/exec/exec-command-log/tail', { params: { id } });
}
/**
* 下载批量执行日志文件
*/
export function downloadExecCommandLogFile(id: number) {
return axios.get('/asset/exec-command-log/download', {
return axios.get('/exec/exec-command-log/download', {
unwrap: true,
responseType: 'blob',
params: { id },
@@ -123,12 +123,12 @@ export function downloadExecCommandLogFile(id: number) {
* 中断执行命令
*/
export function interruptExecCommand(request: ExecLogInterruptRequest) {
return axios.put('/asset/exec-command-log/interrupt', request);
return axios.put('/exec/exec-command-log/interrupt', request);
}
/**
* 中断执行主机命令
*/
export function interruptHostExecCommand(request: ExecLogInterruptRequest) {
return axios.put('/asset/exec-command-log/interrupt-host', request);
return axios.put('/exec/exec-command-log/interrupt-host', request);
}

View File

@@ -18,12 +18,12 @@ export interface ExecCommandRequest {
* 批量执行命令
*/
export function batchExecCommand(request: ExecCommandRequest) {
return axios.post<ExecLogQueryResponse>('/asset/exec-command/exec', request);
return axios.post<ExecLogQueryResponse>('/exec/exec-command/exec', request);
}
/**
* 重新执行命令
*/
export function reExecCommand(request: ExecCommandRequest) {
return axios.post<ExecLogQueryResponse>('/asset/exec-command/re-exec', request);
return axios.post<ExecLogQueryResponse>('/exec/exec-command/re-exec', request);
}

View File

@@ -6,7 +6,7 @@ import type {
ExecLogQueryRequest,
ExecLogQueryResponse,
ExecLogStatusResponse,
} from './exec-log';
} from '../exec/exec-log';
import axios from 'axios';
import qs from 'query-string';
@@ -14,35 +14,35 @@ import qs from 'query-string';
* 分页查询计划任务日志
*/
export function getExecJobLogPage(request: ExecLogQueryRequest) {
return axios.post<DataGrid<ExecLogQueryResponse>>('/asset/exec-job-log/query', request);
return axios.post<DataGrid<ExecLogQueryResponse>>('/exec/exec-job-log/query', request);
}
/**
* 查询计划任务日志
*/
export function getExecJobLog(id: number) {
return axios.get<ExecLogQueryResponse>('/asset/exec-job-log/get', { params: { id } });
return axios.get<ExecLogQueryResponse>('/exec/exec-job-log/get', { params: { id } });
}
/**
* 查询主机计划任务日志
*/
export function getExecJobHostLog(id: number) {
return axios.get<ExecHostLogQueryResponse>('/asset/exec-job-log/get-host', { params: { id } });
return axios.get<ExecHostLogQueryResponse>('/exec/exec-job-log/get-host', { params: { id } });
}
/**
* 查询主机计划任务日志
*/
export function getExecJobHostLogList(logId: number) {
return axios.get<Array<ExecHostLogQueryResponse>>('/asset/exec-job-log/host-list', { params: { logId } });
return axios.get<Array<ExecHostLogQueryResponse>>('/exec/exec-job-log/host-list', { params: { logId } });
}
/**
* 查询命令执行状态
*/
export function getExecJobLogStatus(idList: Array<number>) {
return axios.get<ExecLogStatusResponse>('/asset/exec-job-log/status', {
return axios.get<ExecLogStatusResponse>('/exec/exec-job-log/status', {
params: { idList },
promptBizErrorMessage: false,
promptRequestErrorMessage: false,
@@ -56,14 +56,14 @@ export function getExecJobLogStatus(idList: Array<number>) {
* 删除计划任务日志
*/
export function deleteExecJobLog(id: number) {
return axios.delete('/asset/exec-job-log/delete', { params: { id } });
return axios.delete('/exec/exec-job-log/delete', { params: { id } });
}
/**
* 批量删除计划任务日志
*/
export function batchDeleteExecJobLog(idList: Array<number>) {
return axios.delete('/asset/exec-job-log/batch-delete', {
return axios.delete('/exec/exec-job-log/batch-delete', {
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
@@ -75,21 +75,21 @@ export function batchDeleteExecJobLog(idList: Array<number>) {
* 删除主机计划任务日志
*/
export function deleteExecJobHostLog(id: number) {
return axios.delete('/asset/exec-job-log/delete-host', { params: { id } });
return axios.delete('/exec/exec-job-log/delete-host', { params: { id } });
}
/**
* 查询计划任务日志数量
*/
export function getExecJobLogCount(request: ExecLogQueryRequest) {
return axios.post<number>('/asset/exec-job-log/count', request);
return axios.post<number>('/exec/exec-job-log/count', request);
}
/**
* 清空计划任务日志
*/
export function clearExecJobLog(request: ExecLogClearRequest) {
return axios.post<number>('/asset/exec-job-log/clear', request, {
return axios.post<number>('/exec/exec-job-log/clear', request, {
timeout: 60000,
});
}
@@ -98,14 +98,14 @@ export function clearExecJobLog(request: ExecLogClearRequest) {
* 查看计划任务日志
*/
export function getExecJobLogTailToken(id: number) {
return axios.get<string>('/asset/exec-job-log/tail', { params: { id } });
return axios.get<string>('/exec/exec-job-log/tail', { params: { id } });
}
/**
* 下载计划任务日志文件
*/
export function downloadExecJobLogFile(id: number) {
return axios.get('/asset/exec-job-log/download', {
return axios.get('/exec/exec-job-log/download', {
unwrap: true,
responseType: 'blob',
params: { id },
@@ -116,12 +116,12 @@ export function downloadExecJobLogFile(id: number) {
* 中断计划任务执行
*/
export function interruptExecJob(request: ExecLogInterruptRequest) {
return axios.put('/asset/exec-job-log/interrupt', request);
return axios.put('/exec/exec-job-log/interrupt', request);
}
/**
* 中断计划任务执行主机
*/
export function interruptHostExecJob(request: ExecLogInterruptRequest) {
return axios.put('/asset/exec-job-log/interrupt-host', request);
return axios.put('/exec/exec-job-log/interrupt-host', request);
}

View File

@@ -81,63 +81,70 @@ export interface ExecJobQueryResponse extends TableData {
* 创建计划任务
*/
export function createExecJob(request: ExecJobCreateRequest) {
return axios.post('/asset/exec-job/create', request);
return axios.post('/exec/exec-job/create', request);
}
/**
* 更新计划任务
*/
export function updateExecJob(request: ExecJobUpdateRequest) {
return axios.put('/asset/exec-job/update', request);
return axios.put('/exec/exec-job/update', request);
}
/**
* 更新计划任务状态
*/
export function updateExecJobStatus(request: ExecJobUpdateStatusRequest) {
return axios.put('/asset/exec-job/update-status', request);
return axios.put('/exec/exec-job/update-status', request);
}
/**
* 更新计划任务执行用户
*/
export function updateExecJobExecUser(request: ExecJobUpdateExecUserRequest) {
return axios.put<number>('/asset/exec-job/update-exec-user', request);
return axios.put<number>('/exec/exec-job/update-exec-user', request);
}
/**
* 查询计划任务
*/
export function getExecJob(id: number) {
return axios.get<ExecJobQueryResponse>('/asset/exec-job/get', { params: { id } });
return axios.get<ExecJobQueryResponse>('/exec/exec-job/get', { params: { id } });
}
/**
* 查询全部计划任务
*/
export function getExecJobList() {
return axios.get<Array<ExecJobQueryResponse>>('/asset/exec-job/list');
return axios.get<Array<ExecJobQueryResponse>>('/exec/exec-job/list');
}
/**
* 分页查询计划任务
*/
export function getExecJobPage(request: ExecJobQueryRequest) {
return axios.post<DataGrid<ExecJobQueryResponse>>('/asset/exec-job/query', request);
return axios.post<DataGrid<ExecJobQueryResponse>>('/exec/exec-job/query', request);
}
/**
* 查询计划任务数量
*/
export function getExecJobCount(request: ExecJobQueryRequest) {
return axios.post<number>('/exec/exec-job/count', request);
}
/**
* 删除计划任务
*/
export function deleteExecJob(id: number) {
return axios.delete('/asset/exec-job/delete', { params: { id } });
return axios.delete('/exec/exec-job/delete', { params: { id } });
}
/**
* 批量删除计划任务
*/
export function batchDeleteExecJob(idList: Array<number>) {
return axios.delete('/asset/exec-job/batch-delete', {
return axios.delete('/exec/exec-job/batch-delete', {
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
@@ -149,5 +156,5 @@ export function batchDeleteExecJob(idList: Array<number>) {
* 手动触发计划任务
*/
export function triggerExecJob(id: number) {
return axios.post('/asset/exec-job/trigger', { id });
return axios.post('/exec/exec-job/trigger', { id });
}

View File

@@ -52,49 +52,56 @@ export interface ExecTemplateQueryResponse extends TableData {
* 创建执行模板
*/
export function createExecTemplate(request: ExecTemplateCreateRequest) {
return axios.post('/asset/exec-template/create', request);
return axios.post('/exec/exec-template/create', request);
}
/**
* 更新执行模板
*/
export function updateExecTemplate(request: ExecTemplateUpdateRequest) {
return axios.put('/asset/exec-template/update', request);
return axios.put('/exec/exec-template/update', request);
}
/**
* 查询执行模板
*/
export function getExecTemplate(id: number) {
return axios.get<ExecTemplateQueryResponse>('/asset/exec-template/get', { params: { id } });
return axios.get<ExecTemplateQueryResponse>('/exec/exec-template/get', { params: { id } });
}
/**
* 查询执行模板
*/
export function getExecTemplateWithAuthorized(id: number) {
return axios.get<ExecTemplateQueryResponse>('/asset/exec-template/get-with-authorized', { params: { id } });
return axios.get<ExecTemplateQueryResponse>('/exec/exec-template/get-with-authorized', { params: { id } });
}
/**
* 分页查询执行模板
*/
export function getExecTemplatePage(request: ExecTemplateQueryRequest) {
return axios.post<DataGrid<ExecTemplateQueryResponse>>('/asset/exec-template/query', request);
return axios.post<DataGrid<ExecTemplateQueryResponse>>('/exec/exec-template/query', request);
}
/**
* 查询执行模板数量
*/
export function getExecTemplateCount(request: ExecTemplateQueryRequest) {
return axios.post<number>('/exec/exec-template/count', request);
}
/**
* 删除执行模板
*/
export function deleteExecTemplate(id: number) {
return axios.delete('/asset/exec-template/delete', { params: { id } });
return axios.delete('/exec/exec-template/delete', { params: { id } });
}
/**
* 批量删除执行模板
*/
export function batchDeleteExecTemplate(idList: Array<number>) {
return axios.delete('/asset/exec-template/batch-delete', {
return axios.delete('/exec/exec-template/batch-delete', {
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });

View File

@@ -110,48 +110,48 @@ export interface UploadTaskStatusResponse extends TableData {
* 创建上传任务
*/
export function createUploadTask(request: UploadTaskCreateRequest) {
return axios.post<UploadTaskCreateResponse>('/asset/upload-task/create', request);
return axios.post<UploadTaskCreateResponse>('/exec/upload-task/create', request);
}
/**
* 创建上传任务
*/
export function startUploadTask(id: number) {
return axios.post('/asset/upload-task/start', { id });
return axios.post('/exec/upload-task/start', { id });
}
/**
* 创建上传任务
*/
export function cancelUploadTask(id: number, failed: boolean) {
return axios.post('/asset/upload-task/cancel', { id, failed });
return axios.post('/exec/upload-task/cancel', { id, failed });
}
/**
* 查询上传任务
*/
export function getUploadTask(id: number) {
return axios.get<UploadTaskQueryResponse>('/asset/upload-task/get', { params: { id } });
return axios.get<UploadTaskQueryResponse>('/exec/upload-task/get', { params: { id } });
}
/**
* 分页查询上传任务
*/
export function getUploadTaskPage(request: UploadTaskQueryRequest) {
return axios.post<DataGrid<UploadTaskQueryResponse>>('/asset/upload-task/query', request);
return axios.post<DataGrid<UploadTaskQueryResponse>>('/exec/upload-task/query', request);
}
/**
* 查询上传任务状态
*/
export function getUploadTaskStatus(idList: Array<number>, queryFiles: boolean) {
return axios.get<Array<UploadTaskStatusResponse>>('/asset/upload-task/status', {
return axios.get<Array<UploadTaskStatusResponse>>('/exec/upload-task/status', {
params: { idList, queryFiles },
promptBizErrorMessage: false,
promptRequestErrorMessage: false,
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
}
},
});
}
@@ -159,14 +159,14 @@ export function getUploadTaskStatus(idList: Array<number>, queryFiles: boolean)
* 删除上传任务
*/
export function deleteUploadTask(id: number) {
return axios.delete('/asset/upload-task/delete', { params: { id } });
return axios.delete('/exec/upload-task/delete', { params: { id } });
}
/**
* 批量删除上传任务
*/
export function batchDeleteUploadTask(idList: Array<number>) {
return axios.delete('/asset/upload-task/batch-delete', {
return axios.delete('/exec/upload-task/batch-delete', {
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
@@ -178,14 +178,14 @@ export function batchDeleteUploadTask(idList: Array<number>) {
* 查询批量上传任务数量
*/
export function getUploadTaskCount(request: UploadTaskQueryRequest) {
return axios.post<number>('/asset/upload-task/count', request);
return axios.post<number>('/exec/upload-task/count', request);
}
/**
* 清空查询批量上传任务
* 清空批量上传任务
*/
export function clearUploadTask(request: UploadTaskClearRequest) {
return axios.post<number>('/asset/upload-task/clear', request, {
return axios.post<number>('/exec/upload-task/clear', request, {
timeout: 60000,
});
}

View File

@@ -1,26 +1,9 @@
import type { LineSingleChartData } from '@/types/global';
import type { TerminalConnectLogQueryResponse } from '@/api/asset/terminal-connect-log';
import type { ExecLogQueryResponse } from '@/api/exec/exec-log';
import type { PieChartData } from '@/types/global';
import axios from 'axios';
/**
* 资产模块工作台响应
* 查询主机类型图表
*/
export interface AssetWorkplaceStatisticsResponse {
execJobCount: number;
todayTerminalConnectCount: number;
todayExecCommandCount: number;
weekTerminalConnectCount: number;
weekExecCommandCount: number;
execCommandChart: LineSingleChartData;
terminalConnectChart: LineSingleChartData;
terminalConnectList: Array<TerminalConnectLogQueryResponse>;
execLogList: Array<ExecLogQueryResponse>;
}
/**
* 查询资产模块工作台统计信息
*/
export function getAssetWorkplaceStatisticsData() {
return axios.get<AssetWorkplaceStatisticsResponse>('/asset/statistics/get-workplace');
export function getHostTypeChart() {
return axios.get<PieChartData>('/asset/statistics/host-type-chart');
}

View File

@@ -0,0 +1,21 @@
import type { LineSingleChartData } from '@/types/global';
import type { ExecLogQueryResponse } from '@/api/exec/exec-log';
import axios from 'axios';
/**
* 执行模块工作台响应
*/
export interface ExecWorkplaceStatisticsResponse {
execJobCount: number;
todayExecCommandCount: number;
weekExecCommandCount: number;
execCommandChart: LineSingleChartData;
execLogList: Array<ExecLogQueryResponse>;
}
/**
* 查询执行模块工作台统计信息
*/
export function getExecWorkplaceStatisticsData() {
return axios.get<ExecWorkplaceStatisticsResponse>('/exec/statistics/get-workplace');
}

View File

@@ -0,0 +1,23 @@
import type { LineSingleChartData } from '@/types/global';
import type { TerminalConnectLogQueryResponse } from '@/api/terminal/terminal-connect-log';
import axios from 'axios';
/**
* 终端模块工作台响应
*/
export interface TerminalWorkplaceStatisticsResponse {
todayTerminalConnectCount: number;
todayTerminalCommandCount: number;
weekTerminalConnectCount: number;
weekTerminalCommandCount: number;
terminalConnectChart: LineSingleChartData;
terminalCommandChart: LineSingleChartData;
terminalConnectList: Array<TerminalConnectLogQueryResponse>;
}
/**
* 查询终端模块工作台统计信息
*/
export function getTerminalWorkplaceStatisticsData() {
return axios.get<TerminalWorkplaceStatisticsResponse>('/terminal/statistics/get-workplace');
}

View File

@@ -1,4 +1,4 @@
import type { DataGrid, Options, OrderDirection, Pagination } from '@/types/global';
import type { DataGrid, OrderDirection, Options, Pagination } from '@/types/global';
import type { TableData } from '@arco-design/web-vue';
import axios from 'axios';
import qs from 'query-string';

View File

@@ -28,27 +28,27 @@ export interface CommandSnippetGroupQueryResponse {
*
*/
export function createCommandSnippetGroup(request: CommandSnippetGroupCreateRequest) {
return axios.post('/asset/command-snippet-group/create', request);
return axios.post('/terminal/command-snippet-group/create', request);
}
/**
*
*/
export function updateCommandSnippetGroup(request: CommandSnippetGroupUpdateRequest) {
return axios.put('/asset/command-snippet-group/update', request);
return axios.put('/terminal/command-snippet-group/update', request);
}
/**
*
*/
export function getCommandSnippetGroupList() {
return axios.get<Array<CommandSnippetGroupQueryResponse>>('/asset/command-snippet-group/list');
return axios.get<Array<CommandSnippetGroupQueryResponse>>('/terminal/command-snippet-group/list');
}
/**
*
*/
export function deleteCommandSnippetGroup(id: number) {
return axios.delete('/asset/command-snippet-group/delete', { params: { id } });
return axios.delete('/terminal/command-snippet-group/delete', { params: { id } });
}

View File

@@ -43,26 +43,26 @@ export interface CommandSnippetWrapperResponse {
*
*/
export function createCommandSnippet(request: CommandSnippetCreateRequest) {
return axios.post('/asset/command-snippet/create', request);
return axios.post('/terminal/command-snippet/create', request);
}
/**
*
*/
export function updateCommandSnippet(request: CommandSnippetUpdateRequest) {
return axios.put('/asset/command-snippet/update', request);
return axios.put('/terminal/command-snippet/update', request);
}
/**
*
*/
export function getCommandSnippetList() {
return axios.get<CommandSnippetWrapperResponse>('/asset/command-snippet/list');
return axios.get<CommandSnippetWrapperResponse>('/terminal/command-snippet/list');
}
/**
*
*/
export function deleteCommandSnippet(id: number) {
return axios.delete('/asset/command-snippet/delete', { params: { id } });
return axios.delete('/terminal/command-snippet/delete', { params: { id } });
}

View File

@@ -28,27 +28,27 @@ export interface PathBookmarkGroupQueryResponse {
*
*/
export function createPathBookmarkGroup(request: PathBookmarkGroupCreateRequest) {
return axios.post('/asset/path-bookmark-group/create', request);
return axios.post('/terminal/path-bookmark-group/create', request);
}
/**
*
*/
export function updatePathBookmarkGroup(request: PathBookmarkGroupUpdateRequest) {
return axios.put('/asset/path-bookmark-group/update', request);
return axios.put('/terminal/path-bookmark-group/update', request);
}
/**
*
*/
export function getPathBookmarkGroupList() {
return axios.get<Array<PathBookmarkGroupQueryResponse>>('/asset/path-bookmark-group/list');
return axios.get<Array<PathBookmarkGroupQueryResponse>>('/terminal/path-bookmark-group/list');
}
/**
*
*/
export function deletePathBookmarkGroup(id: number) {
return axios.delete('/asset/path-bookmark-group/delete', { params: { id } });
return axios.delete('/terminal/path-bookmark-group/delete', { params: { id } });
}

View File

@@ -45,26 +45,26 @@ export interface PathBookmarkWrapperResponse {
*
*/
export function createPathBookmark(request: PathBookmarkCreateRequest) {
return axios.post('/asset/path-bookmark/create', request);
return axios.post('/terminal/path-bookmark/create', request);
}
/**
*
*/
export function updatePathBookmark(request: PathBookmarkUpdateRequest) {
return axios.put('/asset/path-bookmark/update', request);
return axios.put('/terminal/path-bookmark/update', request);
}
/**
*
*/
export function getPathBookmarkList() {
return axios.get<PathBookmarkWrapperResponse>('/asset/path-bookmark/list');
return axios.get<PathBookmarkWrapperResponse>('/terminal/path-bookmark/list');
}
/**
*
*/
export function deletePathBookmark(id: number) {
return axios.delete('/asset/path-bookmark/delete', { params: { id } });
return axios.delete('/terminal/path-bookmark/delete', { params: { id } });
}

View File

@@ -46,6 +46,7 @@ export interface TerminalConnectLogQueryResponse extends TableData {
*/
export interface TerminalConnectLogExtra {
traceId: string;
channel: string;
channelId: string;
sessionId: string;
address: string;
@@ -58,21 +59,21 @@ export interface TerminalConnectLogExtra {
*
*/
export function getTerminalConnectLogPage(request: TerminalConnectLogQueryRequest) {
return axios.post<DataGrid<TerminalConnectLogQueryResponse>>('/asset/terminal-connect-log/query', request);
return axios.post<DataGrid<TerminalConnectLogQueryResponse>>('/terminal/terminal-connect-log/query', request);
}
/**
*
*/
export function getTerminalConnectSessions(request: TerminalConnectLogQueryRequest) {
return axios.post<Array<TerminalConnectLogQueryResponse>>('/asset/terminal-connect-log/sessions', request);
return axios.post<Array<TerminalConnectLogQueryResponse>>('/terminal/terminal-connect-log/sessions', request);
}
/**
*
*/
export function getLatestConnectHostId(type: string, limit: number) {
return axios.post<Array<number>>('/asset/terminal-connect-log/latest-connect', {
return axios.post<Array<number>>('/terminal/terminal-connect-log/latest-connect', {
type,
limit
});
@@ -82,7 +83,7 @@ export function getLatestConnectHostId(type: string, limit: number) {
*
*/
export function deleteTerminalConnectLog(idList: Array<number>) {
return axios.delete('/asset/terminal-connect-log/delete', {
return axios.delete('/terminal/terminal-connect-log/delete', {
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
@@ -94,14 +95,14 @@ export function deleteTerminalConnectLog(idList: Array<number>) {
*
*/
export function getTerminalConnectLogCount(request: TerminalConnectLogQueryRequest) {
return axios.post<number>('/asset/terminal-connect-log/count', request);
return axios.post<number>('/terminal/terminal-connect-log/count', request);
}
/**
*
*/
export function clearTerminalConnectLog(request: TerminalConnectLogClearRequest) {
return axios.post<number>('/asset/terminal-connect-log/clear', request, {
return axios.post<number>('/terminal/terminal-connect-log/clear', request, {
timeout: 60000,
});
}
@@ -110,5 +111,5 @@ export function clearTerminalConnectLog(request: TerminalConnectLogClearRequest)
*
*/
export function hostForceOffline(request: TerminalConnectLogQueryRequest) {
return axios.put('/asset/terminal-connect-log/force-offline', request);
return axios.put('/terminal/terminal-connect-log/force-offline', request);
}

View File

@@ -48,14 +48,21 @@ export interface TerminalSftpLogExtra {
* SFTP
*/
export function getTerminalSftpLogPage(request: TerminalSftpLogQueryRequest) {
return axios.post<DataGrid<TerminalSftpLogQueryResponse>>('/asset/terminal-sftp/query-log', request);
return axios.post<DataGrid<TerminalSftpLogQueryResponse>>('/terminal/terminal-sftp/query-log', request);
}
/**
* SFTP
*/
export function getTerminalSftpLogCount(request: TerminalSftpLogQueryRequest) {
return axios.post<number>('/terminal/terminal-sftp/log-count', request);
}
/**
* SFTP
*/
export function deleteTerminalSftpLog(idList: Array<number>) {
return axios.delete('/asset/terminal-sftp/delete-log', {
return axios.delete('/terminal/terminal-sftp/delete-log', {
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
@@ -67,7 +74,7 @@ export function deleteTerminalSftpLog(idList: Array<number>) {
* SFTP
*/
export function getSftpFileContent(token: string) {
return axios.get<string>('/asset/terminal-sftp/get-content', {
return axios.get<string>('/terminal/terminal-sftp/get-content', {
unwrap: true,
params: { token },
timeout: 60000
@@ -81,7 +88,7 @@ export function setSftpFileContent(token: string, content: string) {
const formData = new FormData();
formData.append('token', token);
formData.append('file', new File([content], Date.now() + '', { type: 'text/plain' }));
return axios.post<boolean>('/asset/terminal-sftp/set-content', formData, {
return axios.post<boolean>('/terminal/terminal-sftp/set-content', formData, {
timeout: 60000,
headers: {
'Content-Type': 'multipart/form-data'
@@ -93,5 +100,5 @@ export function setSftpFileContent(token: string, content: string) {
*
*/
export function getDownloadTransferUrl(channelId: string, transferToken: string) {
return `${httpBaseUrl}/asset/terminal-sftp/download?channelId=${channelId}&transferToken=${transferToken}`;
return `${httpBaseUrl}/terminal/terminal-sftp/download?channelId=${channelId}&transferToken=${transferToken}`;
}

View File

@@ -0,0 +1,46 @@
import type { TerminalTheme } from '@/views/terminal/interfaces';
import axios from 'axios';
import { createAppWebSocket } from '@/utils/http';
// 终端访问请求
export interface TerminalAccessRequest {
hostId?: number;
connectType?: string;
extra?: Record<string, any>;
}
/**
* 获取主机终端主题
*/
export function getTerminalThemes() {
return axios.get<Array<TerminalTheme>>('/terminal/terminal/themes');
}
/**
* 获取主机终端 accessToken
*/
export function getTerminalAccessToken(request: TerminalAccessRequest) {
return axios.post<string>('/terminal/terminal/access', request);
}
/**
* 获取主机终端 transferToken
*/
export function getTerminalTransferToken() {
return axios.get<string>('/terminal/terminal/transfer');
}
/**
* 打开主机终端 websocket
*/
export const openTerminalAccessChannel = (protocol: string, accessToken: string) => {
return createAppWebSocket(`/terminal/access/${protocol}/${accessToken}`);
};
/**
* 打开主机传输 websocket
*/
export const openTerminalTransferChannel = (accessToken: string) => {
return createAppWebSocket(`/terminal/transfer/${accessToken}`);
};

View File

@@ -19,14 +19,6 @@ export interface RoleUpdateRequest extends RoleCreateRequest {
id?: number;
}
/**
* 角色 分配绑定请求
*/
export interface RoleGrantMenuRequest extends RoleCreateRequest {
roleId: number;
menuIdList: Array<number>;
}
/**
* 角色查询请求
*/
@@ -38,6 +30,14 @@ export interface RoleQueryRequest extends Pagination, OrderDirection {
description?: string;
}
/**
* 角色 分配绑定请求
*/
export interface RoleGrantMenuRequest extends RoleCreateRequest {
roleId: number;
menuIdList: Array<number>;
}
/**
* 角色查询响应
*/

View File

@@ -34,11 +34,9 @@ export interface UserQueryRequest extends Pagination, OrderDirection {
username?: string;
password?: string;
nickname?: string;
avatar?: string;
mobile?: string;
email?: string;
status?: number;
lastLoginTime?: string;
description?: string;
}
@@ -158,6 +156,13 @@ export function getUserPage(request: UserQueryRequest) {
return axios.post<DataGrid<UserQueryResponse>>('/infra/system-user/query', request);
}
/**
* 查询用户数量
*/
export function getUserCount(request: UserQueryRequest) {
return axios.post<number>('/infra/system-user/count', request);
}
/**
* 通过 id 删除用户
*/