const SUPABASE_URL = 'https://chixssrphfgxvqqigkzo.supabase.co'; const SUPABASE_ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNoaXhzc3JwaGZneHZxcWlna3pvIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzQ2OTE0OTEsImV4cCI6MjA5MDI2NzQ5MX0.Az_Ew2J2zdOMcSV0UNAjBS-LPqGpqhsaN4IyZ5R7iqU'; if (!window._sbClient) { window._sbClient = window.supabase.createClient(SUPABASE_URL, SUPABASE_ANON_KEY); } const sbClient = window._sbClient; async function loadTicketDetail() { const urlParams = new URLSearchParams(window.location.search); const ticketId = urlParams.get('id'); if (!ticketId) { showError('未提供单据 ID。'); return; } try { const { data: ticket, error } = await sbClient .from('tickets') .select('*') .eq('id', ticketId) .single(); if (error) throw error; if (!ticket) { showError('未找到该单据。'); return; } displayTicketDetail(ticket); } catch (error) { showError(error.message || '加载失败'); } } function displayTicketDetail(ticket) { const el = document.getElementById('detailContent'); const processedLabel = ticket.processed ? '已处理' : '未处理'; const completionLabel = ticket.status ? '已办结' : '未办结'; const amount = Number(ticket.amount || 0).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }); el.classList.remove('feedback-card'); el.innerHTML = `
单据全量信息、处理状态与打印操作在此统一展示。