'use strict'; (function () { const ICON_DOWNLOAD = ''; function esc(value) { const div = document.createElement('div'); div.textContent = String(value ?? ''); return div.innerHTML; } const state = { initialized: false, loading: false, root: '', items: [], filter: 'all', keyword: '', }; const FILTER_LABELS = { logo: 'LOGO', banner: '海报', signage: '招牌', sticker: '贴纸', dish: '菜品', other: '其他', }; function formatBytes(size) { if (!Number.isFinite(size) || size <= 0) return '—'; if (size < 1024 * 1024) return `${Math.round(size / 1024)} KB`; return `${(size / 1024 / 1024).toFixed(1)} MB`; } function formatTime(value) { if (!value) return ''; const date = new Date(value); const pad = (n) => String(n).padStart(2, '0'); return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`; } function getFilteredItems() { const keyword = state.keyword.trim().toLowerCase(); return state.items.filter((item) => { if (state.filter !== 'all' && item.kind !== state.filter) return false; if (!keyword) return true; return `${item.shopName} ${item.name} ${item.fileName}`.toLowerCase().includes(keyword); }); } function renderSummary() { const summary = document.getElementById('historySummary'); const filtered = getFilteredItems(); if (state.loading) { summary.textContent = '正在加载历史作品…'; return; } summary.textContent = state.items.length ? `共 ${state.items.length} 件作品 · 当前显示 ${filtered.length} 件` : '暂无历史作品'; } function renderGallery() { const gallery = document.getElementById('historyGallery'); const items = getFilteredItems(); gallery.classList.toggle('empty', items.length === 0); if (!items.length) { gallery.innerHTML = `
${state.loading ? '正在加载作品' : '暂无匹配的历史作品'}
${state.loading ? '请稍候' : '生成完成的作品会自动出现在这里'}