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