桃園市楊梅區四維國小

班級資訊查詢系統

家長登入

密碼預設:生日4碼(MMDD) + 身分證末4碼
忘記密碼請私訊老師

const API_URL = 'https://script.google.com/macros/s/AKfycbzktoHyWvcDnOyXnnT_K0ioppkdwYTvgRhlHQ7lnknZd_dmWg6V1V0qBTKPx8-Ibbp6/exec'; let token = ''; let currentStudent = {}; let moduleSettings = {}; // 初始化 loadClasses(); loadModules(); async function api(action, params) { params = params || {}; params.action = action; if (token) params.token = token; const queryString = Object.entries(params).map(([k,v]) => k + '=' + encodeURIComponent(v)).join('&'); const response = await fetch(API_URL + '?' + queryString); return response.json(); } async function loadClasses() { const result = await api('getClasses'); if (result.success) { const select = document.getElementById('className'); select.innerHTML = '' + result.data.map(c => '').join(''); } } document.getElementById('className').addEventListener('change', async function() { const result = await api('getStudentsByClass', { className: this.value }); const select = document.getElementById('studentNumber'); if (result.success) { select.innerHTML = '' + result.data.map(s => '').join(''); } }); async function parentLogin() { const className = document.getElementById('className').value; const number = document.getElementById('studentNumber').value; const name = document.getElementById('studentName').value; const password = document.getElementById('password').value; if (!className || !number || !name || !password) { document.getElementById('loginError').textContent = '請填寫所有欄位'; return; } const result = await api('parentLogin', { className, number, name, password }); if (result.success) { token = result.token; currentStudent = result.user; document.getElementById('parentLogin').style.display = 'none'; document.getElementById('parentMain').style.display = 'block'; await loadModules(); switchTab('homework'); } else { document.getElementById('loginError').textContent = result.message || '登入失敗,請檢查您的輸入'; } } function switchTab(tab) { // 檢查模組是否啟用 if (tab === 'homework' && window.moduleSettings?.['缺交作業'] === false) { alert('此功能暫時關閉'); return; } if (tab === 'grades' && window.moduleSettings?.['成績排名公告'] === false) { alert('此功能暫時關閉'); return; } if (tab === 'classAnn' && window.moduleSettings?.['班級公告'] === false) { alert('此功能暫時關閉'); return; } if (tab === 'schoolAnn' && window.moduleSettings?.['全校公告'] === false) { alert('此功能暫時關閉'); return; } document.querySelectorAll('.tab').forEach(t => t.classList.remove('active')); event.target.classList.add('active'); const content = document.getElementById('content'); if (tab === 'homework') loadHomework(); else if (tab === 'grades') loadGrades(); else if (tab === 'classAnn') loadClassAnn(); else if (tab === 'schoolAnn') loadSchoolAnn(); } async function loadHomework() { const result = await api('getHomework'); const content = document.getElementById('content'); if (!result.success) { content.innerHTML = '

' + result.message + '

'; return; } const missing = result.data.filter(h => h.status === '缺交'); if (missing.length === 0) { content.innerHTML = '

目前沒有缺交作業

'; return; } content.innerHTML = missing.map(h => '
' + h.title + '

' + h.subject + '

').join(''); } async function loadGrades() { const result = await api('getGrades'); const content = document.getElementById('content'); if (!result.success) { content.innerHTML = '

' + result.message + '

'; return; } if (result.data.length === 0) { content.innerHTML = '

目前沒有成績資料

'; return; } content.innerHTML = result.data.map(g => '
' + g.examName + '

' + g.subject + '

' + g.score + ' / ' + g.maxScore + '
').join(''); } async function loadClassAnn() { const result = await api('getClassAnnouncements'); const content = document.getElementById('content'); if (!result.success) { content.innerHTML = '

' + result.message + '

'; return; } if (result.data.length === 0) { content.innerHTML = '

目前沒有班級公告

'; return; } content.innerHTML = result.data.map(a => '
' + a.title + '

' + a.content + '

' + a.postedBy + '

').join(''); } async function loadSchoolAnn() { const result = await api('getSchoolAnnouncements'); const content = document.getElementById('content'); if (!result.success) { content.innerHTML = '

' + result.message + '

'; return; } if (result.data.length === 0) { content.innerHTML = '

目前沒有全校公告

'; return; } content.innerHTML = result.data.map(a => '
' + a.title + '

' + a.content + '

' + a.postedBy + '

').join(''); }