From 6a4ca47df73d99e952d926f6103bcccea1ecea89 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 28 九月 2026 15:15:25 +0800
Subject: [PATCH] 展示检测柜数据来源与最近数据时间
---
src/views/DeviceCabinetForm.vue | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/views/DeviceCabinetForm.vue b/src/views/DeviceCabinetForm.vue
index feda007..424414e 100644
--- a/src/views/DeviceCabinetForm.vue
+++ b/src/views/DeviceCabinetForm.vue
@@ -10,6 +10,7 @@
type DiscoveredCabinet,
} from '@/api/deviceCabinets'
import type { CabinetPayload } from '@/stores/deviceCabinets'
+import { formatBusinessMinute } from '@/utils/businessTime'
import DeviceRelatedTests from '@/components/DeviceRelatedTests.vue'
const route = useRoute()
@@ -73,8 +74,12 @@
loadDevices()
}
-function selectDevice(device: DiscoveredCabinet) {
- Object.assign(form, {
+/** 最近数据时间按业务时区展示;来源不提供或没有采样行时显示占位。 */
+function formatLastDataAt(value: unknown) {
+ return formatBusinessMinute(value)
+}
+
+function selectDevice(device: DiscoveredCabinet) { Object.assign(form, {
deviceCode: device.deviceCode,
ip: device.ip,
mac: device.mac || '',
@@ -160,13 +165,14 @@
<el-dialog v-model="deviceDialogVisible" class="device-dialog" title="选择设备" width="720px" align-center>
<div v-loading="deviceLoading" class="device-table-wrap">
<table class="device-table">
- <thead><tr><th>设备编码</th><th>IP</th><th>MAC</th><th>操作</th></tr></thead>
+ <thead><tr><th>设备编码</th><th>IP</th><th>MAC</th><th>最近数据时间</th><th>操作</th></tr></thead>
<tbody>
- <tr v-for="device in devices" :key="device.deviceCode"><td>{{ device.deviceCode }}</td><td>{{ device.ip }}</td><td>{{ device.mac || '-' }}</td><td><button type="button" @click="selectDevice(device)">选择</button></td></tr>
- <tr v-if="!deviceLoading && !devices.length"><td colspan="4" class="device-empty">暂无可发现设备</td></tr>
+ <tr v-for="device in devices" :key="device.deviceCode"><td>{{ device.deviceCode }}</td><td>{{ device.ip }}</td><td>{{ device.mac || '-' }}</td><td>{{ formatLastDataAt(device.lastDataAt) }}</td><td><button type="button" @click="selectDevice(device)">选择</button></td></tr>
+ <tr v-if="!deviceLoading && !devices.length"><td colspan="5" class="device-empty">暂无可发现设备</td></tr>
</tbody>
</table>
</div>
+ <p class="device-hint">最近数据时间是来源里最近一次采样行的设备时间,用来判断哪几台柜子现在真的在产出数据;系统不替你判定“在用”,登记哪些候选由你决定。</p>
<footer class="device-pagination"><span>共 {{ deviceTotal }} 个设备</span><el-pagination :current-page="devicePage" :page-size="devicePageSize" :total="deviceTotal" layout="prev, pager, next" background @current-change="handleDevicePageChange" /></footer>
</el-dialog>
</div>
@@ -221,6 +227,7 @@
.device-table tbody tr:hover { background: #f7fbff; }
.device-table .device-empty { height: 72px; color: #8a98a5; text-align: center; }
.device-pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 18px; }
+.device-hint { margin: 12px 0 0; color: #7b8794; font-size: 11px; line-height: 1.7; }
.device-pagination > span { color: #7b8794; font-size: 11px; }
.device-pagination :deep(.el-pagination) { --el-pagination-button-bg-color: #edf4fa; --el-pagination-hover-color: var(--blue); }
@media (max-width: 960px) { .device-summary, .detail-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
--
Gitblit v1.7.1