每周五上新
13693161205 上次进度
← 返回工具箱

📊 绿建评分表计算器 GB/T 50378-2019(2024年版)🧮 计算类

1
项目信息
2
模块列表
3
单项计算

📋 项目基本信息

💡 提示:修改建筑类型或气候区后,评分项中的限值默认值会自动联动更新。部分参数(如K值限值、LPD限值)可通过评分页的⚡ 预设按钮一键填入国标推荐值。

✅ 得分概览

请填写项目基本信息,然后在"逐条评分"中完成各项计算。
0 / 12 模块已完成
0 / 200
待评定

计算模块

📄 报告导出

请在"模块列表"中逐项完成各计算模块,确认得分后再导出综合报告。已完成的模块结果将自动汇总。

暂无数据,请先填写项目信息并完成评分计算。

健康舒适0/50
节地0/10
节能0/60
节水0/10
节材0/40
环境宜居0/30
碳减排0/30
总分0/200
待评定
'); w.document.close(); setTimeout(function(){w.print()},500); // Track if(typeof Track!=='undefined' && Track.event){ Track.event('gbscorecard_report_print'); } } /* ============================================================ SAVE / LOAD / RESET — with Project List Management v3.0 ============================================================ */ var PROJECT_LIST_KEY='gbtools_gbscorecard_projects'; function autoSave(){ clearTimeout(window._autoSaveTimer); window._autoSaveTimer=setTimeout(saveData,2000); } function saveData(){ var pName=$id('pName').value; if(!pName){showToast('请先填写项目名称');return} var data={ info:{ name:$id('pName').value, location:$id('pLocation').value, type:$id('pType').value, area:$id('pArea').value, landArea:$id('pLandArea').value, floors:$id('pFloors').value, phase:$id('pPhase').value, targetStar:$id('pTargetStar').value, climate:$id('pClimate').value, company:$id('pCompany').value }, itemData:itemData, currentModule:currentModule, timestamp:Date.now(), version:'4.0' }; try{ // Save project data localStorage.setItem('gbtools_gbscorecard_'+pName,JSON.stringify(data)); // Update project list updateProjectList(pName); localStorage.setItem('gbtools_gbscorecard_last',pName); showToast('项目已保存: '+pName); }catch(e){ showToast('保存失败: '+e.message); } } function updateProjectList(pName){ try{ var list=JSON.parse(localStorage.getItem(PROJECT_LIST_KEY)||'[]'); for(var i=list.length-1;i>=0;i--){ if(list[i].name===pName) list.splice(i,1); } // Get summary var totalScore=0,totalMax=0; var type=$id('pType').value; GROUPS.forEach(function(g){ getGroupItems(g.id).forEach(function(item){ if(item.conditionOnly && type!==item.conditionOnly) return; totalScore+=itemData[item.id].score; totalMax+=item.maxScore; }); }); list.unshift({ name:pName, score:totalScore+'/'+totalMax, savedAt:new Date().toLocaleString('zh-CN'), timestamp:Date.now() }); // Keep max 20 projects if(list.length>20) list=list.slice(0,20); localStorage.setItem(PROJECT_LIST_KEY,JSON.stringify(list)); }catch(e){/* ignore */} } function loadData(){ showProjectList(); } function showProjectList(){ var list=[]; try{list=JSON.parse(localStorage.getItem(PROJECT_LIST_KEY)||'[]');}catch(e){} var content=document.getElementById('projectListContent'); if(!content) return; if(list.length===0){ content.innerHTML='

暂无保存的项目。
填写项目信息后点击"💾 保存项目"即可创建。

'; }else{ var html=''; list.forEach(function(p,i){ html+='
'; html+='
'; html+='
'+p.name+'
'; html+='
得分 '+p.score+' | '+p.savedAt+'
'; html+='
'; html+=''; html+=''; html+='
'; }); content.innerHTML=html; } document.getElementById('projectCount').textContent='共 '+list.length+' 个项目'; document.getElementById('projectListModal').classList.add('active'); } function projectLoad(pName){ document.getElementById('projectListModal').classList.remove('active'); loadSavedData(pName); } function projectDelete(pName){ if(!confirm('确认删除项目「'+pName+'」?此操作不可恢复!')) return; localStorage.removeItem('gbtools_gbscorecard_'+pName); if(localStorage.getItem('gbtools_gbscorecard_last')===pName) localStorage.removeItem('gbtools_gbscorecard_last'); // Remove from list try{ var list=JSON.parse(localStorage.getItem(PROJECT_LIST_KEY)||'[]'); list=list.filter(function(p){return p.name!==pName;}); localStorage.setItem(PROJECT_LIST_KEY,JSON.stringify(list)); }catch(e){} showProjectList(); showToast('项目已删除: '+pName); } function closeProjectList(e){ if(e && e.target!==document.getElementById('projectListModal')) return; document.getElementById('projectListModal').classList.remove('active'); } function loadSavedData(pName){ if(!pName) pName=localStorage.getItem('gbtools_gbscorecard_last'); if(!pName) return; try{ var raw=localStorage.getItem('gbtools_gbscorecard_'+pName); if(!raw){showToast('未找到项目: '+pName);return;} var data=JSON.parse(raw); var info=data.info; if(info){ setVal('pName',info.name); setVal('pLocation',info.location); setVal('pType',info.type); setVal('pArea',info.area); setVal('pLandArea',info.landArea); setVal('pFloors',info.floors); setVal('pPhase',info.phase); setVal('pTargetStar',info.targetStar); setVal('pClimate',info.climate); setVal('pCompany',info.company); } if(data.itemData){ itemData=data.itemData; ITEMS.forEach(function(item){ var d=itemData[item.id]; if(d && d.inputValues){ item.inputs.forEach(function(inp){ var el=document.getElementById(item.id+'_'+inp.id); if(el){ if(inp.type==='select') el.value=d.inputValues[inp.id]; else el.value=d.inputValues[inp.id]||inp.def; } }); } calcItem(item.id); }); } if(data.currentModule) currentModule=data.currentModule; if(data.currentItem) currentModule=null; // old format, ignore onProjectInfoChange(); updateSummary(); switchPage('moduleList'); // Jump to module list after load showToast('项目已加载: '+pName+'(v'+(data.version||'1.0')+')'); }catch(e){ showToast('加载失败: '+e.message); } } function resetAll(){ if(!confirm('确认重置所有数据?此操作不可撤销!')) return; localStorage.removeItem('gbtools_gbscorecard_last'); // Reset project info setVal('pName',''); setVal('pLocation',''); setVal('pType','office'); setVal('pArea','10000'); setVal('pLandArea','5000'); setVal('pFloors','18'); setVal('pPhase','pre'); setVal('pTargetStar','2'); setVal('pClimate','cold_A'); setVal('pCompany',''); // Reset item data ITEMS.forEach(function(item){ var d=itemData[item.id]; item.inputs.forEach(function(inp){ if(inp.type==='select' && inp.options) d.inputValues[inp.id]=inp.def; else d.inputValues[inp.id]=inp.def||0; var el=document.getElementById(item.id+'_'+inp.id); if(el) el.value=d.inputValues[inp.id]; }); calcItem(item.id); }); onProjectInfoChange(); updateSummary(); switchPage('info'); showToast('已重置全部数据'); } function setVal(id,val){ var el=$id(id); if(el) el.value=val||''; } /* ============================================================ MODAL ============================================================ */ function showClauseModal(itemId,clause,name){ var modal=document.getElementById('clauseModal'); document.getElementById('clauseTitle').textContent=name+' — GB/T 50378-2019(2024年版)第'+clause+'条'; var ct=CLAUSE_TEXTS[itemId]; var html=''; if(ct){ html+='
'; html+='

📜 条文原文

本条文为 GB/T 50378-2019《绿色建筑评价标准》(2024年版)第 '+ct.clause+' 条「'+ct.title+'」。

'; html+='

⭐ 评价分值

'+ct.evalPoints+'

'; html+='

📏 评价指标

'; html+='

📐 评分规则

'; if(ct.refs){ html+='

📚 引用标准

'; } html+='
'; }else{ html='

该条文内容暂未收录,请参照 GB/T 50378-2019(2024年版)原文。

'; } document.getElementById('clauseText').innerHTML=html; modal.classList.add('active'); } function closeClauseModal(e){ if(e && e.target!==document.getElementById('clauseModal')) return; document.getElementById('clauseModal').classList.remove('active'); } /* ============================================================ UTILS ============================================================ */ function toggleCard(header){ header.parentElement.classList.toggle('collapsed'); } function showToast(msg){ clearTimeout(toastTimer); var t=document.getElementById('toast'); t.textContent=msg; t.classList.add('show'); toastTimer=setTimeout(function(){t.classList.remove('show')},2500); }