diff --git a/static/app.js b/static/app.js index 458af88..47fed08 100644 --- a/static/app.js +++ b/static/app.js @@ -263,7 +263,7 @@ var countEl = sCards[k].querySelector('.study-card-count'); var name = nameEl ? nameEl.textContent.trim() : ''; var count = parseInt(countEl ? countEl.textContent : '0') || 0; - studyItems.push({ name: name, count: count }); + studyItems.push({ name: name, count: count, last_checkin_date: sCards[k].dataset.lastDate || '' }); } return { morning: morningItems, evening: eveningItems, study: studyItems }; @@ -300,7 +300,7 @@ for (var sp=0; sp 0; + var checkedToday = lastDate === today; + var btnText = checkedToday ? '已打卡' : '打卡'; var div = document.createElement('div'); - div.className = 'study-card' + (count > 0 ? ' checked' : ''); + div.className = 'study-card' + (checked ? ' checked' : ''); + div.setAttribute('data-last-date', lastDate || ''); div.innerHTML = '
' + '' + esc(name) + '' + '' + count + '' + '
' + - ''; + ''; container.appendChild(div); } window.checkinStudy = function(btn) { var card = btn.closest('.study-card'); + var today = fmtDate(new Date()); + if (card.dataset.lastDate === today) { showToast('今天已打卡', 'info'); return; } var countEl = card.querySelector('.study-card-count'); var count = parseInt(countEl.textContent) + 1; countEl.textContent = count; - if (count > 0) card.classList.add('checked'); + card.dataset.lastDate = today; + card.classList.add('checked'); + btn.classList.add('done'); + btn.textContent = '已打卡'; triggerAutoSave(); }; function initStudyPresets() { document.getElementById('study-cards').innerHTML = ''; for (var i=0; i