测试信息页面优化: 限制6000条、字段调整、车检器序列号搜索
- 查询/导出/图表统一 LIMIT 6000 条 - 列顺序: 时间→第一列, 测试模式→最后一列, 隐藏ID - 设备编码只显示后6位, 默认每页100条 - 新增车检器序列号搜索 (detector_serial LIKE) - 四个文件同步修改: models.py, test_data.py, test_data.js, test_data.html
This commit is contained in:
@@ -28,12 +28,11 @@ const VIEWS = {
|
||||
label: '全部数据',
|
||||
data_source: '', // '' = 不过滤
|
||||
cols: [
|
||||
{ key: 'id', title: 'ID' },
|
||||
{ key: 'serial', title: '设备编码' },
|
||||
{ key: 'create_time', title: '时间', render: r => fmtTime(r.create_time) },
|
||||
{ key: 'serial', title: '设备编码', render: r => (r.serial || '').slice(-6) },
|
||||
{ key: 'detector_serial', title: '车检器序列号', render: r => r.detector_serial || '-' },
|
||||
{ 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' ? '是' : '否') },
|
||||
{ key: 'fault_info', title: '故障信息', render: r => r.data_source === 'B4' ? '-' : `<span style="display:inline-block;max-width:12em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;" title="${escHtml(r.fault_info || '')}">${escHtml(r.fault_info || '-')}</span>` },
|
||||
{ key: 'relay_out', title: '继电器', render: r => fmtRelay(r.relay_out) },
|
||||
@@ -58,18 +57,17 @@ const VIEWS = {
|
||||
{ key: 'near_dist', title: '最近距离(mm)', render: r => r.data_source === 'B2' ? '-' : (r.near_dist != null ? r.near_dist + ' ' : '-') },
|
||||
{ key: 'far_dist', title: '最远距离(mm)', render: r => r.data_source === 'B2' ? '-' : (r.far_dist != null ? r.far_dist + ' ' : '-') },
|
||||
{ key: 'env', title: '测试环境', render: r => envLabel(r) },
|
||||
{ key: 'create_time', title: '时间', render: r => fmtTime(r.create_time) },
|
||||
{ key: 'test_mode', title: '测试模式', render: r => r.test_mode === 1 ? '波动' : '灵敏度' },
|
||||
],
|
||||
},
|
||||
b2: {
|
||||
label: '灵敏度测试',
|
||||
data_source: 'B2',
|
||||
cols: [
|
||||
{ key: 'id', title: 'ID' },
|
||||
{ key: 'serial', title: '设备编码' },
|
||||
{ key: 'create_time', title: '时间', render: r => fmtTime(r.create_time) },
|
||||
{ key: 'serial', title: '设备编码', render: r => (r.serial || '').slice(-6) },
|
||||
{ key: 'detector_serial', title: '车检器序列号', render: r => r.detector_serial || '-' },
|
||||
{ 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 => `<span style="display:inline-block;max-width:12em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;" title="${escHtml(r.fault_info || '')}">${escHtml(r.fault_info || '-')}</span>` },
|
||||
{ key: 'relay_out', title: '继电器', render: r => fmtRelay(r.relay_out) },
|
||||
@@ -82,15 +80,15 @@ const VIEWS = {
|
||||
{ key: 'enter_speed', title: '触发速度', render: r => toSpeed(r.enter_speed) },
|
||||
{ key: 'exit_speed', title: '释放速度', render: r => toSpeed(r.exit_speed) },
|
||||
{ key: 'env', title: '测试环境', render: r => envLabel(r) },
|
||||
{ key: 'create_time', title: '时间', render: r => fmtTime(r.create_time) },
|
||||
{ key: 'test_mode', title: '测试模式', render: r => r.test_mode === 1 ? '波动' : '灵敏度' },
|
||||
],
|
||||
},
|
||||
b4: {
|
||||
label: '波动测试',
|
||||
data_source: 'B4',
|
||||
cols: [
|
||||
{ key: 'id', title: 'ID' },
|
||||
{ key: 'serial', title: '设备编码' },
|
||||
{ key: 'create_time', title: '时间', render: r => fmtTime(r.create_time) },
|
||||
{ key: 'serial', title: '设备编码', render: r => (r.serial || '').slice(-6) },
|
||||
{ key: 'detector_serial', title: '车检器序列号', render: r => r.detector_serial || '-' },
|
||||
{ key: 'remain_count', title: '剩余次数' },
|
||||
{ key: 'work_freq', title: '工作频率(Hz)' },
|
||||
@@ -102,7 +100,7 @@ const VIEWS = {
|
||||
{ key: 'b4_leave_dist', title: '释放高度(mm)' },
|
||||
{ key: 'relay_out', title: '继电器', render: r => fmtRelay(r.relay_out) },
|
||||
{ key: 'env', title: '测试环境', render: r => envLabel(r) },
|
||||
{ key: 'create_time', title: '时间', render: r => fmtTime(r.create_time) },
|
||||
{ key: 'test_mode', title: '测试模式', render: r => r.test_mode === 1 ? '波动' : '灵敏度' },
|
||||
],
|
||||
},
|
||||
};
|
||||
@@ -193,14 +191,16 @@ function getDatetime(dateId, timeId) {
|
||||
async function searchData(page = 1) {
|
||||
currentPage = page;
|
||||
const serial = document.getElementById("search-serial").value;
|
||||
const detectorSerial = document.getElementById("search-detector-serial").value;
|
||||
const dateFrom = getDatetime("search-date-from", "search-time-from");
|
||||
const dateTo = getDatetime("search-date-to", "search-time-to");
|
||||
const v = VIEWS[currentView];
|
||||
|
||||
const perPage = parseInt(document.getElementById("per-page").value) || 20;
|
||||
const perPage = parseInt(document.getElementById("per-page").value) || 100;
|
||||
|
||||
const params = new URLSearchParams({ page, per_page: perPage });
|
||||
if (serial) params.set("serial", serial);
|
||||
if (detectorSerial) params.set("detector_serial", detectorSerial);
|
||||
if (dateFrom) params.set("date_from", dateFrom);
|
||||
if (dateTo) params.set("date_to", dateTo);
|
||||
// 按 data_source 过滤(全部不过滤)
|
||||
@@ -271,12 +271,14 @@ function renderPagination() {
|
||||
|
||||
function exportCSV() {
|
||||
const serial = document.getElementById("search-serial").value;
|
||||
const detectorSerial = document.getElementById("search-detector-serial").value;
|
||||
const dateFrom = getDatetime("search-date-from", "search-time-from");
|
||||
const dateTo = getDatetime("search-date-to", "search-time-to");
|
||||
const v = VIEWS[currentView];
|
||||
|
||||
const params = new URLSearchParams();
|
||||
if (serial) params.set("serial", serial);
|
||||
if (detectorSerial) params.set("detector_serial", detectorSerial);
|
||||
if (dateFrom) params.set("date_from", dateFrom);
|
||||
if (dateTo) params.set("date_to", dateTo);
|
||||
if (v.data_source) params.set("data_source", v.data_source);
|
||||
@@ -364,6 +366,7 @@ async function loadChart() {
|
||||
if (!container || container.style.display === 'none') return;
|
||||
|
||||
const serial = document.getElementById('search-serial').value;
|
||||
const detectorSerial = document.getElementById('search-detector-serial').value;
|
||||
const dateFrom = getDatetime('search-date-from', 'search-time-from');
|
||||
const dateTo = getDatetime('search-date-to', 'search-time-to');
|
||||
const v = VIEWS[currentView];
|
||||
@@ -373,6 +376,7 @@ async function loadChart() {
|
||||
|
||||
const params = new URLSearchParams();
|
||||
if (serial) params.set('serial', serial);
|
||||
if (detectorSerial) params.set('detector_serial', detectorSerial);
|
||||
if (dateFrom) params.set('date_from', dateFrom);
|
||||
if (dateTo) params.set('date_to', dateTo);
|
||||
if (ds) params.set('data_source', ds);
|
||||
|
||||
Reference in New Issue
Block a user