完善日志查询

This commit is contained in:
ChenYi 2025-07-11 13:51:31 +08:00
parent 3b3cb9ff34
commit e4fcf728b8
4 changed files with 115 additions and 89 deletions

View File

@ -3197,6 +3197,6 @@ export const postCTWingLogInfoPage = <ThrowOnError extends boolean = false>(
ThrowOnError
>({
...options,
url: '/TableModel/OneNETLogInfo',
url: '/TableModel/CTWingLogInfo',
});
};

View File

@ -5096,6 +5096,7 @@ export type IoTDBTreeModelDeviceDataDto = {
export type IoTDBTreeModelDeviceDataPageListResultDto = {
items?: Array<IoTDBTreeModelDeviceDataDto> | null;
totalCount?: number;
};
export type IoTDBTreeModelDeviceDataPageAllResponse =
@ -5145,6 +5146,7 @@ export type IoTDBOneNETLogInfoPageListInput = {
};
export type IoTDBOneNETLogInfoPageListResult = {
items?: Array<OneNETLogInfoDto> | null;
totalCount?: number;
};
export type CTWingLogInfoDto = {
@ -5195,4 +5197,5 @@ export type IoTDBCTWingLogInfoDtoPageListInput = {
};
export type IoTDBCTWingLogInfoDtoPageListResult = {
items?: Array<CTWingLogInfoDto> | null;
totalCount?: number;
};

View File

@ -62,11 +62,6 @@ export const tableSchema: any = computed((): VxeGridProps['columns'] => [
title: $t('abp.IoTDBBase.DeviceId'),
minWidth: 150,
},
{
field: 'devicePath',
title: $t('abp.IoTDBBase.DevicePath'),
minWidth: 200,
},
{
field: 'platformTenantId',
title: $t('abp.CTWingLog.PlatformTenantId'),
@ -90,7 +85,7 @@ export const tableSchema: any = computed((): VxeGridProps['columns'] => [
{
field: 'messageType',
title: $t('abp.CTWingLog.MessageType'),
minWidth: 120,
minWidth: 180,
},
{
field: 'protocol',
@ -111,13 +106,11 @@ export const tableSchema: any = computed((): VxeGridProps['columns'] => [
field: 'rawMessage',
title: $t('abp.CTWingLog.RawMessage'),
minWidth: 200,
showOverflow: false,
},
{
field: 'receivedPayload',
title: $t('abp.CTWingLog.ReceivedPayload'),
minWidth: 200,
showOverflow: false,
},
{
field: 'receivedTime',

View File

@ -2,16 +2,16 @@
import type { VbenFormProps } from '#/adapter/form';
import type { VxeGridProps } from '#/adapter/vxe-table';
import { computed, nextTick, ref, watch } from 'vue';
import { useRoute } from 'vue-router';
import { nextTick, watch, ref, computed } from 'vue';
import { Page } from '@vben/common-ui';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { postTreeModelDeviceDataInfoPage } from '#/api-client';
import { querySchema, tableSchema } from './schema';
import { generateDynamicColumns } from './dynamicColumns';
import { querySchema } from './schema';
defineOptions({
name: 'DeviceData',
@ -29,19 +29,16 @@ const actualTotalCount = ref<number>(0);
// - IoTDBTreeModelDeviceDataDto
const fixedColumns = [
{ title: '序号', type: 'seq', width: 50 },
{ field: 'Timestamps', title: '时间戳', minWidth: 150 },
{ field: 'SystemName', title: '系统名称', minWidth: 150 },
{ field: 'ProjectId', title: '项目ID', minWidth: 150 },
{ field: 'DeviceType', title: '设备类型', minWidth: 150 },
{ field: 'IoTDataType', title: 'IoT数据类型', minWidth: 150 },
{ field: 'DeviceId', title: '设备ID', minWidth: 150 },
{ field: 'Timestamps', title: '时间戳', minWidth: 150 },
];
// - 使
const allColumns = computed(() => [
...fixedColumns,
...dynamicColumns.value,
]);
const allColumns = computed(() => [...fixedColumns, ...dynamicColumns.value]);
//
const initDefaultColumns = () => {
@ -103,7 +100,6 @@ const gridOptions: VxeGridProps<any> = {
},
toolbarConfig: {
custom: true,
search: true,
},
customConfig: {
storage: true,
@ -115,7 +111,13 @@ const gridOptions: VxeGridProps<any> = {
ajax: {
query: async ({ page }, formValues) => {
console.log('=== API调用开始 ===');
console.log('请求参数:', { page, formValues, DeviceType, DeviceId, FocusAddress });
console.log('请求参数:', {
page,
formValues,
DeviceType,
DeviceId,
FocusAddress,
});
try {
const { data } = await postTreeModelDeviceDataInfoPage({
@ -131,16 +133,25 @@ const gridOptions: VxeGridProps<any> = {
console.log('API返回的原始数据:', data);
console.log('数据类型:', typeof data);
console.log('data是否为null/undefined:', data === null || data === undefined);
console.log(
'data是否为null/undefined:',
data === null || data === undefined,
);
if (data) {
console.log('data.items存在:', !!data.items);
console.log('data.items类型:', Array.isArray(data.items) ? 'Array' : typeof data.items);
console.log(
'data.items类型:',
Array.isArray(data.items) ? 'Array' : typeof data.items,
);
if (data.items) {
console.log('data.items长度:', data.items.length);
if (data.items.length > 0) {
console.log('第一条数据:', data.items[0]);
console.log('第一条数据的所有字段:', Object.keys(data.items[0]));
console.log(
'第一条数据的所有字段:',
Object.keys(data.items[0]),
);
}
}
}
@ -189,15 +200,20 @@ const gridOptions: VxeGridProps<any> = {
// 使
if (currentItemsCount === currentPageSize) {
//
estimatedTotalCount = page.currentPage * currentPageSize + currentPageSize;
estimatedTotalCount =
page.currentPage * currentPageSize + currentPageSize;
} else {
//
estimatedTotalCount = (page.currentPage - 1) * currentPageSize + currentItemsCount;
estimatedTotalCount =
(page.currentPage - 1) * currentPageSize + currentItemsCount;
}
}
//
estimatedTotalCount = Math.max(estimatedTotalCount, currentItemsCount);
estimatedTotalCount = Math.max(
estimatedTotalCount,
currentItemsCount,
);
//
if (currentItemsCount < currentPageSize) {
@ -210,8 +226,16 @@ const gridOptions: VxeGridProps<any> = {
totalCount: estimatedTotalCount,
};
console.log('返回给表格的数据:', result);
console.log('估算总数:', result.totalCount, '当前页数据量:', result.items.length);
console.log('分页信息:', { currentPage: page.currentPage, pageSize: currentPageSize });
console.log(
'估算总数:',
result.totalCount,
'当前页数据量:',
result.items.length,
);
console.log('分页信息:', {
currentPage: page.currentPage,
pageSize: currentPageSize,
});
return result;
}
@ -232,11 +256,16 @@ const gridOptions: VxeGridProps<any> = {
const [Grid, gridApi] = useVbenVxeGrid({ formOptions, gridOptions });
//
watch(() => gridApi?.pagerApi?.currentPage, (newPage, oldPage) => {
watch(
() => gridApi?.pagerApi?.currentPage,
(newPage, oldPage) => {
console.log('当前页变化:', { newPage, oldPage });
});
},
);
watch(() => gridApi?.pagerApi?.pageSize, (newSize, oldSize) => {
watch(
() => gridApi?.pagerApi?.pageSize,
(newSize, oldSize) => {
console.log('页面大小变化:', { newSize, oldSize });
if (newSize !== oldSize && oldSize) {
console.log('页面大小从', oldSize, '变为', newSize, ',重置到第一页');
@ -248,7 +277,8 @@ watch(() => gridApi?.pagerApi?.pageSize, (newSize, oldSize) => {
//
gridApi.pagerApi.currentPage = 1;
}
});
},
);
</script>
<template>