修改表名.

This commit is contained in:
lijiahang
2024-10-15 12:36:11 +08:00
parent 7ceb7e162a
commit 6306baa51a
44 changed files with 731 additions and 731 deletions

View File

@@ -1,112 +0,0 @@
import type { ClearRequest, DataGrid, Pagination } from '@/types/global';
import type { TableData } from '@arco-design/web-vue/es/table/interface';
import axios from 'axios';
import qs from 'query-string';
/**
* 主机连接日志查询请求
*/
export interface HostConnectLogQueryRequest extends Pagination {
id?: number;
userId?: number;
hostId?: number;
hostAddress?: string;
type?: string;
token?: string;
status?: string;
startTimeRange?: string[];
}
/**
* 主机连接日志清理请求
*/
export interface HostConnectLogClearRequest extends HostConnectLogQueryRequest, ClearRequest {
}
/**
* 主机连接日志查询响应
*/
export interface HostConnectLogQueryResponse extends TableData {
id: number;
userId: number;
username: number;
hostId: number;
hostName: string;
hostAddress: string;
type: string;
token: string;
status: string;
startTime: number;
endTime: number;
extra: HostConnectLogExtra;
}
/**
* 主机连接日志拓展对象
*/
export interface HostConnectLogExtra {
traceId: string;
channelId: string;
sessionId: string;
address: string;
location: string;
userAgent: string;
errorMessage: string;
}
/**
* 分页查询主机连接日志
*/
export function getHostConnectLogPage(request: HostConnectLogQueryRequest) {
return axios.post<DataGrid<HostConnectLogQueryResponse>>('/asset/host-connect-log/query', request);
}
/**
* 查询全部主机连接会话
*/
export function getHostConnectSessions(request: HostConnectLogQueryRequest) {
return axios.post<Array<HostConnectLogQueryResponse>>('/asset/host-connect-log/session', request);
}
/**
* 查询用户最近连接的主机
*/
export function getLatestConnectHostId(type: string, limit: number) {
return axios.post<Array<number>>('/asset/host-connect-log/latest-connect', {
type,
limit
});
}
/**
* 删除主机连接日志
*/
export function deleteHostConnectLog(idList: Array<number>) {
return axios.delete('/asset/host-connect-log/delete', {
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
}
});
}
/**
* 查询主机连接日志数量
*/
export function getHostConnectLogCount(request: HostConnectLogQueryRequest) {
return axios.post<number>('/asset/host-connect-log/count', request);
}
/**
* 清空主机连接日志
*/
export function clearHostConnectLog(request: HostConnectLogClearRequest) {
return axios.post<number>('/asset/host-connect-log/clear', request);
}
/**
* 强制断开主机连接
*/
export function hostForceOffline(request: HostConnectLogQueryRequest) {
return axios.put('/asset/host-connect-log/force-offline', request);
}

View File

@@ -0,0 +1,112 @@
import type { ClearRequest, DataGrid, Pagination } from '@/types/global';
import type { TableData } from '@arco-design/web-vue/es/table/interface';
import axios from 'axios';
import qs from 'query-string';
/**
* 终端连接日志查询请求
*/
export interface TerminalConnectLogQueryRequest extends Pagination {
id?: number;
userId?: number;
hostId?: number;
hostAddress?: string;
type?: string;
token?: string;
status?: string;
startTimeRange?: string[];
}
/**
* 终端连接日志清理请求
*/
export interface TerminalConnectLogClearRequest extends TerminalConnectLogQueryRequest, ClearRequest {
}
/**
* 终端连接日志查询响应
*/
export interface TerminalConnectLogQueryResponse extends TableData {
id: number;
userId: number;
username: number;
hostId: number;
hostName: string;
hostAddress: string;
type: string;
token: string;
status: string;
startTime: number;
endTime: number;
extra: TerminalConnectLogExtra;
}
/**
* 终端连接日志拓展对象
*/
export interface TerminalConnectLogExtra {
traceId: string;
channelId: string;
sessionId: string;
address: string;
location: string;
userAgent: string;
errorMessage: string;
}
/**
* 分页查询终端连接日志
*/
export function getTerminalConnectLogPage(request: TerminalConnectLogQueryRequest) {
return axios.post<DataGrid<TerminalConnectLogQueryResponse>>('/asset/terminal-connect-log/query', request);
}
/**
* 查询全部终端连接会话
*/
export function getTerminalConnectSessions(request: TerminalConnectLogQueryRequest) {
return axios.post<Array<TerminalConnectLogQueryResponse>>('/asset/terminal-connect-log/session', request);
}
/**
* 查询用户最近连接的主机
*/
export function getLatestConnectHostId(type: string, limit: number) {
return axios.post<Array<number>>('/asset/terminal-connect-log/latest-connect', {
type,
limit
});
}
/**
* 删除终端连接日志
*/
export function deleteTerminalConnectLog(idList: Array<number>) {
return axios.delete('/asset/terminal-connect-log/delete', {
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
}
});
}
/**
* 查询终端连接日志数量
*/
export function getTerminalConnectLogCount(request: TerminalConnectLogQueryRequest) {
return axios.post<number>('/asset/terminal-connect-log/count', request);
}
/**
* 清空终端连接日志
*/
export function clearTerminalConnectLog(request: TerminalConnectLogClearRequest) {
return axios.post<number>('/asset/terminal-connect-log/clear', request);
}
/**
* 强制断开终端连接
*/
export function hostForceOffline(request: TerminalConnectLogQueryRequest) {
return axios.put('/asset/terminal-connect-log/force-offline', request);
}

View File

@@ -172,14 +172,14 @@ export function batchDeleteUploadTask(idList: Array<number>) {
}
/**
* 查询主机连接日志数量
* 查询批量上传任务数量
*/
export function getUploadTaskCount(request: UploadTaskQueryRequest) {
return axios.post<number>('/asset/upload-task/count', request);
}
/**
* 清空主机连接日志
* 清空查询批量上传任务
*/
export function clearUploadTask(request: UploadTaskClearRequest) {
return axios.post<number>('/asset/upload-task/clear', request);

View File

@@ -2,7 +2,7 @@
<a-modal v-model:visible="visible"
modal-class="modal-form-large"
title-align="start"
title="清空主机连接日志"
title="清空终端连接日志"
:align-center="false"
:draggable="true"
:mask-closable="false"
@@ -76,12 +76,12 @@
</script>
<script lang="ts" setup>
import type { HostConnectLogQueryRequest } from '@/api/asset/host-connect-log';
import type { TerminalConnectLogQueryRequest } from '@/api/asset/terminal-connect-log';
import { ref } from 'vue';
import useLoading from '@/hooks/loading';
import useVisible from '@/hooks/visible';
import { connectStatusKey, connectTypeKey, maxClearLimit } from '../types/const';
import { getHostConnectLogCount, clearHostConnectLog } from '@/api/asset/host-connect-log';
import { getTerminalConnectLogCount, clearTerminalConnectLog } from '@/api/asset/terminal-connect-log';
import { Message, Modal } from '@arco-design/web-vue';
import { useDictStore } from '@/store';
import UserSelector from '@/components/user/user/selector/index.vue';
@@ -93,7 +93,7 @@
const { visible, setVisible } = useVisible();
const { loading, setLoading } = useLoading();
const defaultForm = (): HostConnectLogQueryRequest => {
const defaultForm = (): TerminalConnectLogQueryRequest => {
return {
userId: undefined,
hostId: undefined,
@@ -105,7 +105,7 @@
};
};
const formModel = ref<HostConnectLogQueryRequest>({});
const formModel = ref<TerminalConnectLogQueryRequest>({});
// 打开
const open = (record: any) => {
@@ -129,7 +129,7 @@
setLoading(true);
try {
// 获取总数量
const { data } = await getHostConnectLogCount(formModel.value);
const { data } = await getTerminalConnectLogCount(formModel.value);
if (data) {
// 清空
doClear(data);
@@ -153,7 +153,7 @@
setLoading(true);
try {
// 调用清空
const { data } = await clearHostConnectLog(formModel.value);
const { data } = await clearTerminalConnectLog(formModel.value);
Message.success(`已成功清空 ${data} 条数据`);
emits('clear');
// 清空

View File

@@ -1,6 +1,6 @@
<template>
<a-drawer v-model:visible="visible"
title="主机连接日志详情"
title="终端连接日志详情"
:width="442"
:mask-closable="false"
:unmount-on-close="true"
@@ -98,7 +98,7 @@
</script>
<script lang="ts" setup>
import type { HostConnectLogQueryResponse } from '@/api/asset/host-connect-log';
import type { TerminalConnectLogQueryResponse } from '@/api/asset/terminal-connect-log';
import { ref } from 'vue';
import useLoading from '@/hooks/loading';
import useVisible from '@/hooks/visible';
@@ -111,7 +111,7 @@
const { visible, setVisible } = useVisible();
const { loading, setLoading } = useLoading();
const record = ref<HostConnectLogQueryResponse>({} as HostConnectLogQueryResponse);
const record = ref<TerminalConnectLogQueryResponse>({} as TerminalConnectLogQueryResponse);
// 打开
const open = (s: any) => {

View File

@@ -57,14 +57,14 @@
<div class="table-left-bar-handle">
<!-- 标题 -->
<div class="table-title">
主机连接日志
终端连接日志
</div>
</div>
<!-- 右侧操作 -->
<div class="table-right-bar-handle">
<a-space>
<!-- 清空 -->
<a-button v-permission="['asset:host-connect-log:management:clear']"
<a-button v-permission="['asset:terminal-connect-log:management:clear']"
status="danger"
@click="openClear">
清空
@@ -77,7 +77,7 @@
position="br"
type="warning"
@ok="deleteSelectRows">
<a-button v-permission="['asset:host-connect-log:management:delete']"
<a-button v-permission="['asset:terminal-connect-log:management:delete']"
type="primary"
status="danger"
:disabled="selectedKeys.length === 0">
@@ -162,12 +162,12 @@
详情
</a-button>
<!-- 下线 -->
<a-popconfirm v-if="record.status === HostConnectStatus.CONNECTING"
<a-popconfirm v-if="record.status === TerminalConnectStatus.CONNECTING"
content="确认要强制下线吗?"
position="left"
type="warning"
@ok="forceOffline(record)">
<a-button v-permission="['asset:host-connect-log:management:force-offline', 'asset:host-connect-session:management:force-offline']"
<a-button v-permission="['asset:terminal-connect-log:management:force-offline', 'asset:terminal-connect-session:management:force-offline']"
type="text"
size="mini"
status="danger">
@@ -179,7 +179,7 @@
position="left"
type="warning"
@ok="deleteRow(record)">
<a-button v-permission="['asset:host-connect-log:management:delete']"
<a-button v-permission="['asset:terminal-connect-log:management:delete']"
type="text"
size="mini"
status="danger">
@@ -199,10 +199,10 @@
</script>
<script lang="ts" setup>
import type { HostConnectLogQueryRequest, HostConnectLogQueryResponse } from '@/api/asset/host-connect-log';
import type { TerminalConnectLogQueryRequest, TerminalConnectLogQueryResponse } from '@/api/asset/terminal-connect-log';
import { reactive, ref, onMounted } from 'vue';
import { deleteHostConnectLog, getHostConnectLogPage, hostForceOffline } from '@/api/asset/host-connect-log';
import { connectStatusKey, connectTypeKey, HostConnectStatus } from '../types/const';
import { deleteTerminalConnectLog, getTerminalConnectLogPage, hostForceOffline } from '@/api/asset/terminal-connect-log';
import { connectStatusKey, connectTypeKey, TerminalConnectStatus } from '../types/const';
import { useTablePagination, useRowSelection } from '@/hooks/table';
import { useDictStore } from '@/store';
import { Message } from '@arco-design/web-vue';
@@ -220,10 +220,10 @@
const { loading, setLoading } = useLoading();
const { toOptions, getDictValue } = useDictStore();
const tableRenderData = ref<Array<HostConnectLogQueryResponse>>([]);
const tableRenderData = ref<Array<TerminalConnectLogQueryResponse>>([]);
const selectedKeys = ref<Array<number>>([]);
const formModel = reactive<HostConnectLogQueryRequest>({
const formModel = reactive<TerminalConnectLogQueryRequest>({
id: undefined,
userId: undefined,
hostId: undefined,
@@ -234,10 +234,10 @@
});
// 加载数据
const doFetchTableData = async (request: HostConnectLogQueryRequest) => {
const doFetchTableData = async (request: TerminalConnectLogQueryRequest) => {
try {
setLoading(true);
const { data } = await getHostConnectLogPage(request);
const { data } = await getTerminalConnectLogPage(request);
tableRenderData.value = data.rows;
pagination.total = data.total;
pagination.current = request.page;
@@ -262,11 +262,11 @@
};
// 强制下线
const forceOffline = async (record: HostConnectLogQueryResponse) => {
const forceOffline = async (record: TerminalConnectLogQueryResponse) => {
try {
setLoading(true);
await hostForceOffline({ id: record.id });
record.status = HostConnectStatus.FORCE_OFFLINE;
record.status = TerminalConnectStatus.FORCE_OFFLINE;
record.endTime = Date.now();
Message.success('已下线');
} catch (e) {
@@ -280,7 +280,7 @@
try {
setLoading(true);
// 调用删除接口
await deleteHostConnectLog(selectedKeys.value);
await deleteTerminalConnectLog(selectedKeys.value);
Message.success(`成功删除 ${selectedKeys.value.length} 条数据`);
selectedKeys.value = [];
// 重新加载数据
@@ -292,11 +292,11 @@
};
// 删除当前行
const deleteRow = async (record: HostConnectLogQueryResponse) => {
const deleteRow = async (record: TerminalConnectLogQueryResponse) => {
try {
setLoading(true);
// 调用删除接口
await deleteHostConnectLog([record.id]);
await deleteTerminalConnectLog([record.id]);
Message.success('删除成功');
selectedKeys.value = [];
// 重新加载数据

View File

@@ -1,11 +1,11 @@
// 主机连接类型
export const HostConnectType = {
// 终端连接类型
export const TerminalConnectType = {
SSH: 'SSH',
SFTP: 'SFTP',
};
// 主机连接状态
export const HostConnectStatus = {
// 终端连接状态
export const TerminalConnectStatus = {
CONNECTING: 'CONNECTING',
COMPLETE: 'COMPLETE',
FAILED: 'FAILED',
@@ -15,11 +15,11 @@ export const HostConnectStatus = {
// 最大清理数量
export const maxClearLimit = 2000;
// 主机连接状态 字典项
export const connectStatusKey = 'hostConnectStatus';
// 终端连接状态 字典项
export const connectStatusKey = 'terminalConnectStatus';
// 主机连接类型 字典项
export const connectTypeKey = 'hostConnectType';
// 终端连接类型 字典项
export const connectTypeKey = 'terminalConnectType';
// 加载的字典值
export const dictKeys = [connectStatusKey, connectTypeKey];

View File

@@ -100,7 +100,7 @@
position="left"
type="warning"
@ok="forceOffline(record)">
<a-button v-permission="['asset:host-connect-log:management:force-offline', 'asset:host-connect-session:management:force-offline']"
<a-button v-permission="['asset:terminal-connect-log:management:force-offline', 'asset:terminal-connect-session:management:force-offline']"
type="text"
size="mini"
status="danger">
@@ -120,9 +120,9 @@
</script>
<script lang="ts" setup>
import type { HostConnectLogQueryRequest, HostConnectLogQueryResponse } from '@/api/asset/host-connect-log';
import type { TerminalConnectLogQueryRequest, TerminalConnectLogQueryResponse } from '@/api/asset/terminal-connect-log';
import { reactive, ref, onMounted } from 'vue';
import { getHostConnectSessions, hostForceOffline } from '@/api/asset/host-connect-log';
import { getTerminalConnectSessions, hostForceOffline } from '@/api/asset/terminal-connect-log';
import { connectTypeKey } from '../types/const';
import { useDictStore } from '@/store';
import { Message } from '@arco-design/web-vue';
@@ -132,12 +132,12 @@
import UserSelector from '@/components/user/user/selector/index.vue';
import HostSelector from '@/components/asset/host/selector/index.vue';
const tableRenderData = ref<HostConnectLogQueryResponse[]>([]);
const tableRenderData = ref<TerminalConnectLogQueryResponse[]>([]);
const { loading, setLoading } = useLoading();
const { toOptions, getDictValue } = useDictStore();
const formModel = reactive<HostConnectLogQueryRequest>({
const formModel = reactive<TerminalConnectLogQueryRequest>({
userId: undefined,
hostId: undefined,
hostAddress: undefined,
@@ -149,7 +149,7 @@
const fetchTableData = async () => {
try {
setLoading(true);
const { data } = await getHostConnectSessions(formModel);
const { data } = await getTerminalConnectSessions(formModel);
tableRenderData.value = data;
} catch (e) {
} finally {
@@ -158,7 +158,7 @@
};
// 强制下线
const forceOffline = async (record: HostConnectLogQueryResponse) => {
const forceOffline = async (record: TerminalConnectLogQueryResponse) => {
try {
setLoading(true);
// 下线

View File

@@ -1,5 +1,5 @@
// 主机连接类型 字典项
export const connectTypeKey = 'hostConnectType';
// 终端连接类型 字典项
export const connectTypeKey = 'terminalConnectType';
// 加载的字典值
export const dictKeys = [connectTypeKey];