From 27c8277d717b34b55f3ea967027b53b067f77df3 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期四, 20 八月 2026 16:58:49 +0800
Subject: [PATCH] feat 功能变更
---
src/views/mes/dv/telemetry/index.vue | 33 +++++++++++++++++++++++++++------
1 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/src/views/mes/dv/telemetry/index.vue b/src/views/mes/dv/telemetry/index.vue
index 69e3c82..27b8ef1 100644
--- a/src/views/mes/dv/telemetry/index.vue
+++ b/src/views/mes/dv/telemetry/index.vue
@@ -2,7 +2,7 @@
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MesDvTelemetryApi } from '#/api/mes/dv/telemetry';
- import { onBeforeUnmount, ref } from 'vue';
+ import { onBeforeUnmount, onMounted, ref, useTemplateRef } from 'vue';
import { Page } from '@vben/common-ui';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
@@ -24,11 +24,31 @@
const lastUpdateTime = ref<Date>();
let refreshTimer: ReturnType<typeof setInterval> | undefined;
+ const contentRef = useTemplateRef('contentRef');
+ let resizeObserver: ResizeObserver | undefined;
+
+ /** 璁$畻琛ㄦ牸楂樺害锛氬唴瀹瑰尯鍙敤楂樺害 - 宸ュ叿鏍忚/Tabs瀵艰埅绛夊浐瀹氬紑閿�锛屼繚璇佽〃鏍兼拺婊¢〉闈紙瀵归綈璁惧鍙拌处椤碉級 */
+ function calcTableHeight() {
+ const el = contentRef.value;
+ if (!el) return;
+ const height = Math.max(el.clientHeight - 115, 240);
+ latestGridApi.setGridOptions({ height });
+ historyGridApi.setGridOptions({ height });
+ }
+
+ onMounted(() => {
+ calcTableHeight();
+ resizeObserver = new ResizeObserver(calcTableHeight);
+ if (contentRef.value) resizeObserver.observe(contentRef.value);
+ });
+
const [LatestGrid, latestGridApi] = useVbenVxeGrid({
gridOptions: {
columns: useLatestColumns(),
- height: 'auto',
+ height: 400,
keepSource: true,
+ // /latest 杩斿洖瑁告暟缁勶紝闇�鍏抽棴鍒嗛〉锛屽惁鍒� vxe 浼氭寜 {list,total} 瑙f瀽瀵艰嚧涓嶅睍绀�
+ pagerConfig: { enabled: false },
proxyConfig: {
ajax: {
query: async () => await getLatestTelemetry(),
@@ -43,7 +63,7 @@
formOptions: { schema: useHistoryGridFormSchema() },
gridOptions: {
columns: useHistoryColumns(),
- height: 'auto',
+ height: 400,
keepSource: true,
proxyConfig: {
ajax: {
@@ -85,7 +105,7 @@
}
/** 鍒囨崲瀹炴椂鑷姩鍒锋柊锛堟瘡 30 绉掞級 */
- function toggleAutoRefresh(checked: boolean) {
+ function toggleAutoRefresh(checked: boolean | string | number) {
if (checked) {
refreshTimer = setInterval(() => {
if (activeTab.value === 'latest') {
@@ -99,6 +119,7 @@
}
onBeforeUnmount(() => {
+ resizeObserver?.disconnect();
if (refreshTimer) {
clearInterval(refreshTimer);
}
@@ -107,7 +128,7 @@
<template>
<Page auto-content-height>
- <div class="p-4">
+ <div ref="contentRef" class="flex h-full w-full flex-col">
<div class="mb-4 flex items-center gap-4">
<Button type="primary" :loading="pulling" @click="handlePull">
鎷夊彇鏈�鏂版暟鎹�
@@ -122,7 +143,7 @@
鏈�杩戞媺鍙栵細{{ dayjs(lastUpdateTime).format('YYYY-MM-DD HH:mm:ss') }}
</span>
</div>
- <Tabs v-model:active-key="activeTab">
+ <Tabs v-model:active-key="activeTab" class="min-h-0 flex-1">
<Tabs.TabPane key="latest" tab="瀹炴椂鏁版嵁">
<LatestGrid table-title="瀹炴椂鏁版嵁">
<template #anomaly="{ row }">
--
Gitblit v1.9.3