const SUPABASE_URL = 'https://chixssrphfgxvqqigkzo.supabase.co'; const SUPABASE_ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNoaXhzc3JwaGZneHZxcWlna3pvIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzQ2OTE0OTEsImV4cCI6MjA5MDI2NzQ5MX0.Az_Ew2J2zdOMcSV0UNAjBS-LPqGpqhsaN4IyZ5R7iqU'; const sb = supabase.createClient(SUPABASE_URL, SUPABASE_ANON_KEY); function escapeHtml(value) { return String(value ?? '').replace(/[&<>"']/g, char => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[char])); } async function handleSearch() { const selfNumberTerm = document.getElementById('selfNumberTerm').value.trim(); const trackingNumberTerm = document.getElementById('trackingNumberTerm').value.trim(); const recipientTerm = document.getElementById('recipientTerm').value.trim(); const contentTerm = document.getElementById('searchTerm').value.trim(); const from = document.getElementById('dateFrom').value; const to = document.getElementById('dateTo').value; const out = document.getElementById('searchResults'); out.innerHTML = '
正在连接信函数据库并执行检索...
'; let q = sb.from('xinhan').select('*'); if (selfNumberTerm) q = q.ilike('self_number', `%${selfNumberTerm}%`); if (trackingNumberTerm) q = q.ilike('tracking_number', `%${trackingNumberTerm}%`); if (recipientTerm) q = q.ilike('recipient', `%${recipientTerm}%`); if (contentTerm) q = q.ilike('content', `%${contentTerm}%`); if (from) q = q.gte('sent_date', from); if (to) q = q.lte('sent_date', to); const { data, error } = await q.order('sent_date', { ascending: false }); if (error) { out.innerHTML = `
查询失败:${escapeHtml(error.message)}
`; return; } renderResults(data || []); } function renderResults(rows) { const container = document.getElementById('searchResults'); if (!rows.length) { container.innerHTML = '
未找到符合条件的信函记录。
'; return; } let html = `
`; rows.forEach(row => { const content = row.content || ''; const summary = content.length > 60 ? `${escapeHtml(content)}` : escapeHtml(content); html += ` `; }); html += '
ID 自编号 快递号 收件人 目的地 寄出日期 寄达日期 内容摘要
${escapeHtml(row.id)} ${escapeHtml(row.self_number || '')} ${escapeHtml(row.tracking_number || '')} ${escapeHtml(row.recipient || '')} ${escapeHtml(row.destination || '')} ${escapeHtml(row.sent_date || '')} ${escapeHtml(row.arrival_date || '')} ${summary}
'; container.innerHTML = html; } document.getElementById('searchBtn').addEventListener('click', handleSearch); function applyQueryParams() { const params = new URLSearchParams(window.location.search); const selfNumber = params.get('q') || params.get('self_number') || params.get('selfNumber'); if (!selfNumber) return; document.getElementById('selfNumberTerm').value = selfNumber.trim(); handleSearch(); } applyQueryParams();