diff --git a/edc-web/app/static/js/test_data.js b/edc-web/app/static/js/test_data.js index 52528f5..6de66fc 100644 --- a/edc-web/app/static/js/test_data.js +++ b/edc-web/app/static/js/test_data.js @@ -1,5 +1,26 @@ // 测试信息页 — 三视图 (全部 / B2 / B4) +// ─── 型号名称缓存 ───────────────────────────────── +let devTypeNameCache = {}; + +async function initDevTypeNames() { + try { + const resp = await fetch('/api/vehicle-base-test'); + const tests = await resp.json(); + devTypeNameCache = {}; + tests.forEach(t => { + if (t.type_num != null && t.dev_name) { + devTypeNameCache[t.type_num] = t.dev_name; + } + }); + } catch (e) { console.error('加载型号名称失败:', e); } +} + +function getDevTypeName(subType) { + if (subType == null || subType === 0) return '-'; + return devTypeNameCache[subType] || `Unknown(${subType})`; +} + // ─── 视图定义 ─────────────────────────────────── const VIEWS = { @@ -9,7 +30,7 @@ const VIEWS = { cols: [ { key: 'id', title: 'ID' }, { key: 'serial', title: '设备编码' }, - { key: 'model', title: '型号', render: r => r.sub_type === 1 ? 'PD132' : r.sub_type === 2 ? 'DLD110' : '-' }, + { key: 'model', title: '型号', render: r => getDevTypeName(r.sub_type) }, { key: 'data_source', title: '来源' }, { key: 'test_mode', title: '测试模式', render: r => r.test_mode === 1 ? '波动' : '灵敏度' }, { key: 'iffinish', title: '完成', render: r => r.data_source === 'B4' ? '-' : (r.iffinish === '1' ? '是' : '否') }, @@ -45,7 +66,7 @@ const VIEWS = { cols: [ { key: 'id', title: 'ID' }, { key: 'serial', title: '设备编码' }, - { key: 'model', title: '型号', render: r => r.sub_type === 1 ? 'PD132' : r.sub_type === 2 ? 'DLD110' : '-' }, + { key: 'model', title: '型号', render: r => getDevTypeName(r.sub_type) }, { key: 'test_mode', title: '测试模式', render: r => r.test_mode === 1 ? '波动' : '灵敏度' }, { key: 'iffinish', title: '完成', render: r => r.iffinish === '1' ? '是' : '否' }, { key: 'fault_info', title: '故障信息', render: r => `${escHtml(r.fault_info || '-')}` }, @@ -457,7 +478,8 @@ async function loadChart() { // ─── 初始加载 ──────────────────────────────────── renderHead(); -searchData(1); +// 先加载型号名称再查询数据,确保型号列正确渲染 +initDevTypeNames().then(() => searchData(1)); // ─── 删除(admin)───────────────────────────────── diff --git a/edc-web/app/static/js/test_op.js b/edc-web/app/static/js/test_op.js index e323089..b60befc 100644 --- a/edc-web/app/static/js/test_op.js +++ b/edc-web/app/static/js/test_op.js @@ -9,6 +9,7 @@ let autoStartTime = ""; let localSinceStr = ""; let currentTestMode = null; // 0=灵敏度, 1=波动, null=未加载 let currentDeviceState = null; // 当前设备状态 (0=离线 1=在线 2=通信不良 null=未加载) +let devTypeNameCache = {}; // type_num → dev_name 映射(从 tb_vechicle_base_test) let pollInterval = null; let nextCmdTimer = null; // 间隔等待定时器 @@ -273,6 +274,19 @@ async function pollProgress() { // ─── 页面加载时获取初始数据 ────────────────────── +async function loadDeviceTypeNames() { + try { + const resp = await fetch(`/api/vehicle-base-test`); + const tests = await resp.json(); + devTypeNameCache = {}; + tests.forEach(t => { + if (t.type_num != null && t.dev_name) { + devTypeNameCache[t.type_num] = t.dev_name; + } + }); + } catch (e) { console.error("加载型号名称失败:", e); } +} + async function loadTestMode() { try { const resp = await fetch(`/api/fixture/param/${DNT_ID}?_=${Date.now()}`); @@ -315,8 +329,8 @@ function renderConfigOverview(param) { } // 型号 - const devTypeMap = {0: '未知', 1: 'PD132', 2: 'DLD110'}; - document.getElementById("cfg-dev-type").textContent = devTypeMap[param.DevType] || `0x${(param.DevType||0).toString(16)}`; + document.getElementById("cfg-dev-type").textContent = + devTypeNameCache[param.DevType] || `0x${(param.DevType || 0).toString(16)}`; // 距离 (DB cm → 显示 mm) document.getElementById("cfg-reset-dis").textContent = param.RestDis != null ? param.RestDis * 10 : '-'; @@ -369,6 +383,7 @@ function toggleConfig() { } async function loadInitialData() { + await loadDeviceTypeNames(); await loadTestMode(); refreshDeviceStatus(); try { @@ -407,8 +422,9 @@ async function refreshDeviceStatus() { } } -// 每 5 秒刷新设备状态 + 测试模式(工装页修改后能及时同步) +// 每 5 秒刷新设备状态 + 测试模式 + 型号名称缓存(工装页修改后能及时同步) async function refreshAll() { + await loadDeviceTypeNames(); await loadTestMode(); refreshDeviceStatus(); } @@ -475,8 +491,13 @@ function fmtRelay(s) { function renderLatest(data) { const div = document.getElementById("latest-result"); + // 优先使用 str_type,为空时从缓存查找 + let typeName = data.str_type; + if (!typeName && data.sub_type != null) { + typeName = devTypeNameCache[data.sub_type] || `Unknown(${data.sub_type})`; + } div.innerHTML = ` -

设备型号:${data.str_type || '-'}

+

设备型号:${typeName || '-'}

测试模式:${data.test_mode === 1 ? '波动测试' : '灵敏度测试'}

峰峰值:${data.ppvalue?.toFixed(2) || '-'} V

开始工作频率:${data.idle_freq || '-'} Hz

diff --git a/edc_server b/edc_server index 3580f89..6e13990 160000 --- a/edc_server +++ b/edc_server @@ -1 +1 @@ -Subproject commit 3580f895524610baa5b996ac29a820a904c01379 +Subproject commit 6e13990386fe364c43d395eab24d2438f845a683