${esc((r.content||'尚未填写详细内容').slice(0,120))}
${esc(r.date||'日期待记')} · ${esc(r.contributor||r.updatedBy||'')}'use strict';
let heritageKind='culture',heritageData={entries:[],canEdit:false},heritageGeneration=0,heritageSelection='';
pageInfo['heritage-records']=['传承档案','记录资料来源、物品来历与交接意愿。'];
function resetHeritage(){heritageGeneration++;heritageData={entries:[],canEdit:false};heritageSelection='';$('#heritage-list').replaceChildren();$('#heritage-detail').replaceChildren();$('#heritage-detail').hidden=true;$('#heritage-error').textContent='';$('#heritage-new').hidden=true;}
async function loadHeritage(){
const generation=++heritageGeneration,kind=heritageKind;
$('#heritage-list').replaceChildren();$('#heritage-detail').hidden=true;$('#heritage-new').hidden=true;
$('#heritage-records-title').textContent=kind==='culture'?'文化与家风':'家庭物品与财产档案';
$('#heritage-error').textContent='正在读取…';
try{
const data=await api('/api/heritage');
if(generation!==heritageGeneration||activePage!=='heritage-records'||kind!==heritageKind)return;
heritageData=data;$('#heritage-error').textContent='';renderHeritageRecords();
}catch(e){if(!e.stale&&generation===heritageGeneration&&activePage==='heritage-records'){$('#heritage-error').textContent=e.message;heritageData={entries:[],canEdit:false};}}
}
function renderHeritageRecords(){
$('#heritage-new').hidden=!heritageData.canEdit;
const q=$('#heritage-search').value.trim().toLowerCase();
const rows=heritageData.entries.filter(r=>r.kind===heritageKind&&(!r.archived||$('#heritage-archived').checked)&&(!q||[r.name,r.content,r.contributor,r.ownerName,r.custodianName,r.successorName].join(' ').toLowerCase().includes(q)));
$('#heritage-list').innerHTML=rows.length?rows.map(r=>` ${esc((r.content||'尚未填写详细内容').slice(0,120))}
档案中的交接意愿不自动改变所有权、保管安排或账号权限。
`:''}最近整理:${esc(r.updatedBy)} · ${esc(new Date(r.updatedAt).toLocaleString('zh-CN'))} · 版本 ${r.revision}
`; } function openHeritage(id){ if(!heritageData.canEdit)return; const r=heritageData.entries.find(x=>x.id===id)||{kind:heritageKind,revision:0}; const f=$('#heritage-form'); f.elements.deviceReference.innerHTML=''+ZhaoDevices.catalog(state).map(d=>``).join(''); fillForm(f,r);f.elements.deviceReference.value=r.deviceId?r.deviceSource+':'+r.deviceId:''; $('#heritage-form-title').textContent=r.kind==='culture'?'文化资料':'物品与财产档案'; $$('[data-heritage-asset]').forEach(el=>el.hidden=r.kind!=='asset'); $('#heritage-dialog').showModal(); } $('#heritage-form').addEventListener('submit',async e=>{ e.preventDefault();const f=e.currentTarget,b=f.querySelector('[type=submit]');b.disabled=true;f.querySelector('.form-error').textContent=''; try{const data=formValues(f),[source,id]=(data.deviceReference||'').split(':');delete data.deviceReference; data.revision=Number(data.revision);data.archived=f.elements.archived.checked;data.deviceSource=source||'';data.deviceId=id||''; await api('/api/heritage',data);f.closest('dialog').close();await loadHeritage();toast('档案已保存'); }catch(e){if(!e.stale)f.querySelector('.form-error').textContent=e.message;}finally{b.disabled=false;} }); $('#heritage-new').onclick=()=>openHeritage();$('#heritage-reload').onclick=loadHeritage; $('#heritage-search').oninput=renderHeritageRecords;$('#heritage-archived').onchange=renderHeritageRecords; document.addEventListener('click',e=>{const b=e.target.closest('button');if(!b)return; if(b.dataset.heritageKind){resetHeritage();heritageKind=b.dataset.heritageKind;$('#heritage-search').value='';$('#heritage-archived').checked=false;showPage('heritage-records');} if(b.dataset.heritageDetail)showHeritageRecord(b.dataset.heritageDetail); if(b.dataset.heritageEdit)openHeritage(b.dataset.heritageEdit); if(b.id==='heritage-detail-close'){$('#heritage-detail').hidden=true;heritageSelection='';} });