2025-07-10 10:52:19 +08:00

112 lines
3.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<script setup lang="ts">
import type { VbenFormProps } from '#/adapter/form';
import type { VxeGridProps } from '#/adapter/vxe-table';
import { useRoute } from 'vue-router';
import { ref } from 'vue';
import { Page } from '@vben/common-ui';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { postTreeModelDeviceDataInfoPage } from '#/api-client';
import { querySchema } from './schema';
defineOptions({
name: 'DeviceDataBasicTest',
});
const route = useRoute();
const { DeviceType, DeviceId, FocusAddress } = route.query;
// 简单的表单配置
const formOptions: VbenFormProps = {
schema: querySchema.value,
initialValues: {
FocusAddress: FocusAddress as string,
},
};
// 最基本的列定义
const basicColumns = [
{ type: 'seq', width: 50, title: '序号' },
{ field: 'SystemName', title: '系统名称', width: 150 },
{ field: 'DeviceType', title: '设备类型', width: 150 },
{ field: 'DeviceId', title: '设备ID', width: 150 },
{ field: 'Timestamps', title: '时间戳', width: 200 },
];
// 调试信息
const debugInfo = ref('');
const gridOptions: VxeGridProps<any> = {
columns: basicColumns,
height: 'auto',
pagerConfig: {
currentPage: 1,
pageSize: 20,
},
proxyConfig: {
ajax: {
query: async ({ page }, formValues) => {
debugInfo.value = '开始API调用...';
console.log('基本测试 - 开始API调用');
try {
const response = await postTreeModelDeviceDataInfoPage({
body: {
...formValues,
pageIndex: page.currentPage,
pageSize: page.pageSize,
DeviceType,
DeviceId,
FocusAddress,
},
});
console.log('基本测试 - 完整响应:', response);
console.log('基本测试 - response.data:', response.data);
debugInfo.value = `API调用成功数据: ${JSON.stringify(response.data, null, 2)}`;
if (response.data?.items) {
console.log('基本测试 - items长度:', response.data.items.length);
if (response.data.items.length > 0) {
console.log('基本测试 - 第一条数据:', response.data.items[0]);
}
}
// 确保返回的数据包含totalCount字段
const result = {
items: response.data.items || [],
totalCount: response.data.totalCount || (response.data.items ? response.data.items.length : 0),
};
return result;
} catch (error) {
console.error('基本测试 - API调用失败:', error);
debugInfo.value = `API调用失败: ${error}`;
throw error;
}
},
},
},
};
const [Grid] = useVbenVxeGrid({ formOptions, gridOptions });
</script>
<template>
<Page auto-content-height>
<div class="mb-4 p-4 bg-green-100 border border-green-400 rounded">
<h3 class="text-lg font-bold mb-2">基本测试模式</h3>
<p>这个页面使用最基本的列定义来测试数据是否能正常显示</p>
<div class="mt-2">
<strong>调试信息:</strong>
<pre class="mt-1 text-sm bg-gray-100 p-2 rounded">{{ debugInfo }}</pre>
</div>
</div>
<Grid />
</Page>
</template>