Router.register('/shipments/audit', async () => { // 获取当前用户信息 let userRole = null; try { const userRes = await fetch('/api/auth/me', { credentials: 'include' }); const userData = await userRes.json(); userRole = userData.role; } catch (e) { console.error('Failed to get user info:', e); } setTimeout(async () => { const queryTypeSelect = document.getElementById('query-type'); const queryBtn = document.getElementById('query-btn'); const queryInput = document.getElementById('query-input'); const inputLabel = document.getElementById('input-label'); const resultDiv = document.getElementById('query-result'); const platformSelect = document.getElementById('platform-select'); // 切换查询类型时更新输入框提示 queryTypeSelect?.addEventListener('change', (e) => { const queryType = e.target.value; if (queryType === 'mac') { inputLabel.textContent = '输入 MAC 地址'; queryInput.placeholder = '可输入带或不带冒号的MAC地址,如:001122AABBCC 或 00:11:22:AA:BB:CC'; } else if (queryType === 'batch') { inputLabel.textContent = '输入批次号'; queryInput.placeholder = '输入批次号'; } resultDiv.innerHTML = ''; }); const performQuery = async () => { const queryType = queryTypeSelect?.value || 'mac'; let queryValue = queryInput?.value?.trim(); const platform = platformSelect?.value || 'pdd'; if (!queryValue) { resultDiv.innerHTML = `
请输入${queryType === 'mac' ? 'MAC 地址' : '批次号'}
`; return; } // 如果是MAC地址查询,自动格式化(添加冒号) if (queryType === 'mac') { // 移除所有非十六进制字符 queryValue = queryValue.replace(/[^a-fA-F0-9]/g, ''); // 如果是12位十六进制,自动格式化为 XX:XX:XX:XX:XX:XX if (queryValue.length === 12) { queryValue = queryValue.match(/.{2}/g).join(':').toUpperCase(); } // 如果是其他长度,尝试格式化 else if (queryValue.length > 0) { // 统一转为大写 queryValue = queryValue.toUpperCase(); // 如果已经包含冒号,保持原样 if (!queryValue.includes(':')) { // 尝试每两个字符添加冒号 queryValue = queryValue.match(/.{2}/g)?.join(':') || queryValue; } } } try { resultDiv.innerHTML = '
查询中...
'; // 根据选择的平台查询审计数据 const res = await fetch(`/api/audit/${platform}/search?${queryType}=${encodeURIComponent(queryValue)}`, { credentials: 'include' }); const data = await res.json(); if (data.found && data.records && data.records.length > 0) { const recordsHtml = data.records.map((record, index) => `
记录 ${index + 1}
MAC地址: ${record.mac || '未知'}
批次号: ${record.batch || '未知'}
审计时间: ${record.ts_cn || '未知'}
备注: ${record.note || '无'}
`).join(''); resultDiv.innerHTML = `
✓ 找到 ${data.records.length} 条审计记录
查询平台: ${platform.toUpperCase()}
查询类型: ${queryType === 'mac' ? 'MAC地址' : '批次号'}
查询值: ${queryValue}
${queryType === 'mac' && queryInput?.value?.trim() !== queryValue ? `
原始输入: ${queryInput?.value?.trim()}
` : '' }
${recordsHtml}
`; } else { resultDiv.innerHTML = `
✗ 未找到审计记录
查询平台: ${platform.toUpperCase()}
查询类型: ${queryType === 'mac' ? 'MAC地址' : '批次号'}
查询值: ${queryValue}
${queryType === 'mac' && queryInput?.value?.trim() !== queryValue ? `
原始输入: ${queryInput?.value?.trim()}
` : '' }
${data.message || '该查询值没有对应的审计记录'}
`; } } catch (e) { resultDiv.innerHTML = `
查询失败:${e.message}
`; } }; queryBtn?.addEventListener('click', performQuery); queryInput?.addEventListener('keypress', (e) => { if (e.key === 'Enter') { performQuery(); } }); }, 0); return `
审计查询
说明:查询 Redis 中存储的审计时间记录,支持通过 MAC 地址或批次号查询。
`; });