🔨 表格字段.

This commit is contained in:
lijiahangmax
2025-03-22 00:11:30 +08:00
parent 76e766367f
commit 4efd2b5ec2
7 changed files with 57 additions and 23 deletions

View File

@@ -76,16 +76,12 @@
<!-- 修改 -->
<a-doption v-permission="['${package.ModuleName}:${typeHyphen}:update']"
@click="emits('openUpdate', record)">
<span class="more-doption normal">
<icon-edit /> 修改
</span>
<span class="more-doption normal">修改</span>
</a-doption>
<!-- 删除 -->
<a-doption v-permission="['${package.ModuleName}:${typeHyphen}:delete']"
@click="deleteRow(record.id)">
<span class="more-doption error">
<icon-delete /> 删除
</span>
<span class="more-doption error">删除</span>
</a-doption>
</template>
</a-dropdown>
@@ -96,17 +92,13 @@
<!-- 修改 -->
<a-doption v-permission="['${package.ModuleName}:${typeHyphen}:update']"
@click="emits('openUpdate', record)">
<span class="more-doption normal">
<icon-edit /> 修改
</span>
<span class="more-doption normal">修改</span>
</a-doption>
<!-- 删除 -->
<a-doption v-permission="['${package.ModuleName}:${typeHyphen}:delete']"
class="span-red"
@click="deleteRow(record.id)">
<span class="more-doption error">
<icon-delete /> 删除
</span>
<span class="more-doption error">删除</span>
</a-doption>
</template>
</card-list>

View File

@@ -87,6 +87,11 @@
</template>
</a-button>
</a-popconfirm>
<!-- 调整 -->
<table-adjust :columns="columns"
:columns-hook="columnsHook"
:query-order="queryOrder"
@query="fetchTableData" />
</a-space>
</div>
</template>
@@ -96,7 +101,7 @@
ref="tableRef"
:loading="loading"
:row-selection="rowSelection"
:columns="columns"
:columns="tableColumns"
:data="tableRenderData"
:pagination="pagination"
:bordered="false"
@@ -209,8 +214,8 @@
import type { TerminalConnectLogQueryRequest, TerminalConnectLogQueryResponse } from '@/api/asset/terminal-connect-log';
import { reactive, ref, onMounted } from 'vue';
import { deleteTerminalConnectLog, getTerminalConnectLogPage, hostForceOffline } from '@/api/asset/terminal-connect-log';
import { connectStatusKey, connectTypeKey, TerminalConnectStatus } from '../types/const';
import { useTablePagination, useRowSelection } from '@/hooks/table';
import { TableName, connectStatusKey, connectTypeKey, TerminalConnectStatus } from '../types/const';
import { useTablePagination, useRowSelection, useTableColumns } from '@/hooks/table';
import { useDictStore, useUserStore } from '@/store';
import { Message } from '@arco-design/web-vue';
import columns from '../types/table.columns';
@@ -219,14 +224,18 @@
import { useRoute } from 'vue-router';
import { dateFormat } from '@/utils';
import { openNewRoute } from '@/router';
import { DESC, useQueryOrder } from '@/hooks/query-order';
import UserSelector from '@/components/user/user/selector/index.vue';
import HostSelector from '@/components/asset/host/selector/index.vue';
import TableAdjust from '@/components/app/table-adjust/index.vue';
const emits = defineEmits(['openClear', 'openDetail']);
const route = useRoute();
const pagination = useTablePagination();
const rowSelection = useRowSelection();
const pagination = useTablePagination();
const queryOrder = useQueryOrder(TableName, DESC);
const { tableColumns, columnsHook } = useTableColumns(TableName, columns);
const { loading, setLoading } = useLoading();
const { toOptions, getDictValue } = useDictStore();
@@ -247,7 +256,7 @@
const doFetchTableData = async (request: TerminalConnectLogQueryRequest) => {
try {
setLoading(true);
const { data } = await getTerminalConnectLogPage(request);
const { data } = await getTerminalConnectLogPage(queryOrder.markOrderly(request));
tableRenderData.value = data.rows;
pagination.total = data.total;
pagination.current = request.page;

View File

@@ -1,3 +1,6 @@
// 表名称
export const TableName = 'conn-log';
// 终端连接类型
export const TerminalConnectType = {
SSH: 'SSH',

View File

@@ -8,6 +8,7 @@ const columns = [
width: 100,
align: 'left',
fixed: 'left',
default: true,
}, {
title: '连接用户',
dataIndex: 'username',
@@ -15,24 +16,28 @@ const columns = [
width: 140,
align: 'left',
ellipsis: true,
default: true,
}, {
title: '连接主机',
dataIndex: 'hostName',
slotName: 'hostName',
align: 'left',
ellipsis: true,
default: true,
}, {
title: '类型',
dataIndex: 'type',
slotName: 'type',
width: 74,
width: 116,
align: 'left',
default: true,
}, {
title: '状态',
dataIndex: 'status',
slotName: 'status',
align: 'left',
width: 118,
default: true,
}, {
title: '留痕地址',
dataIndex: 'address',
@@ -40,18 +45,21 @@ const columns = [
width: 156,
align: 'left',
ellipsis: true,
default: true,
}, {
title: '连接时间',
dataIndex: 'connectTime',
slotName: 'connectTime',
align: 'left',
width: 192,
default: true,
}, {
title: '操作',
slotName: 'handle',
width: 218,
align: 'left',
fixed: 'right',
default: true,
},
] as TableColumnData[];

View File

@@ -71,6 +71,11 @@
</template>
</a-button>
</a-popconfirm>
<!-- 调整 -->
<table-adjust :columns="columns"
:columns-hook="columnsHook"
:query-order="queryOrder"
@query="fetchTableData" />
</a-space>
</div>
</template>
@@ -80,7 +85,7 @@
ref="tableRef"
:loading="loading"
:row-selection="rowSelection"
:columns="columns"
:columns="tableColumns"
:data="tableRenderData"
:pagination="pagination"
:bordered="false"
@@ -187,19 +192,23 @@
import type { TerminalSftpLogQueryRequest, TerminalSftpLogQueryResponse } from '@/api/asset/terminal-sftp';
import { reactive, ref, onMounted } from 'vue';
import { getTerminalSftpLogPage, deleteTerminalSftpLog } from '@/api/asset/terminal-sftp';
import { sftpOperatorTypeKey, sftpOperatorResultKey, SftpOperatorType, showPathMaxCount } from '../types/const';
import { useTablePagination, useRowSelection } from '@/hooks/table';
import { sftpOperatorTypeKey, sftpOperatorResultKey, SftpOperatorType, showPathMaxCount, TableName } from '../types/const';
import { useTablePagination, useRowSelection, useTableColumns } from '@/hooks/table';
import { useDictStore } from '@/store';
import { Message } from '@arco-design/web-vue';
import columns from '../types/table.columns';
import useLoading from '@/hooks/loading';
import { copy } from '@/hooks/copy';
import { permission10toString } from '@/utils/file';
import { DESC, useQueryOrder } from '@/hooks/query-order';
import UserSelector from '@/components/user/user/selector/index.vue';
import HostSelector from '@/components/asset/host/selector/index.vue';
import TableAdjust from '@/components/app/table-adjust/index.vue';
const pagination = useTablePagination();
const rowSelection = useRowSelection();
const pagination = useTablePagination();
const queryOrder = useQueryOrder(TableName, DESC);
const { tableColumns, columnsHook } = useTableColumns(TableName, columns);
const { loading, setLoading } = useLoading();
const { toOptions, getDictValue } = useDictStore();
@@ -218,7 +227,7 @@
try {
setLoading(true);
// 查询
const { data } = await getTerminalSftpLogPage(request);
const { data } = await getTerminalSftpLogPage(queryOrder.markOrderly(request));
// 设置最大数量
data.rows.forEach(s => {
s.extra.maxCount = showPathMaxCount;

View File

@@ -1,3 +1,6 @@
// 表名称
export const TableName = 'sftp-log';
// sftp 操作类型
export const SftpOperatorType = {
SFTP_MOVE: 'terminal:sftp-move',

View File

@@ -9,6 +9,7 @@ const columns = [
width: 100,
align: 'left',
fixed: 'left',
default: true,
}, {
title: '操作用户',
dataIndex: 'username',
@@ -16,6 +17,7 @@ const columns = [
width: 140,
align: 'left',
ellipsis: true,
default: true,
}, {
title: '操作主机',
dataIndex: 'hostName',
@@ -23,30 +25,35 @@ const columns = [
width: 180,
align: 'left',
ellipsis: true,
default: true,
}, {
title: '操作类型',
dataIndex: 'type',
slotName: 'type',
width: 116,
align: 'left',
default: true,
}, {
title: '文件数量',
dataIndex: 'fileCount',
slotName: 'fileCount',
align: 'left',
width: 100,
default: true,
}, {
title: '操作文件',
dataIndex: 'paths',
slotName: 'paths',
align: 'left',
minWidth: 238,
default: true,
}, {
title: '执行结果',
dataIndex: 'result',
slotName: 'result',
align: 'left',
width: 88,
default: true,
}, {
title: '留痕地址',
dataIndex: 'address',
@@ -54,6 +61,7 @@ const columns = [
width: 156,
align: 'left',
ellipsis: true,
default: true,
}, {
title: '操作时间',
dataIndex: 'startTime',
@@ -63,12 +71,14 @@ const columns = [
render: ({ record }) => {
return (record.startTime && dateFormat(new Date(record.startTime)));
},
default: true,
}, {
title: '操作',
slotName: 'handle',
width: 80,
align: 'center',
fixed: 'right',
default: true,
},
] as TableColumnData[];