debug: 添加console.log调试目标编辑和保存

This commit is contained in:
hmo
2026-04-23 21:07:25 +08:00
parent 7da9e9a43c
commit 6b86548dc8
+19 -9
View File
@@ -102,22 +102,27 @@ async function loadGoals() {
const goals = await res.json();
const grid = document.getElementById('goals-grid');
// 获取每个目标的子目标数量
// 获取每个目标的子目标信息
const goalsWithChildren = await Promise.all(goals.map(async g => {
const childrenRes = await fetch(`${API_BASE}/${g.id}/children`);
const children = await childrenRes.json();
return {...g, childCount: children.length};
return {...g, children: children};
}));
grid.innerHTML = goalsWithChildren.map(g => `
grid.innerHTML = goalsWithChildren.map(g => {
const level = g.level || '入门';
const childNames = g.children && g.children.length > 0
? g.children.map(c => escapeHtml(c.name)).join(', ')
: '';
return `
<div class="col-md-4 col-lg-3">
<div class="card h-100">
<div class="card-body">
<h6 class="card-title">${escapeHtml(g.name)}</h6>
<div class="mb-1">
<span class="badge bg-secondary">${g.level}</span>
${g.childCount > 0 ? `<span class="badge bg-info">${g.childCount}个子目标</span>` : ''}
<span class="badge bg-secondary">${level}</span>
</div>
${childNames ? `<div class="small text-muted mb-2">子目标: ${childNames}</div>` : ''}
<p class="card-text small text-muted">${escapeHtml(g.content || '').substring(0, 80)}${g.content && g.content.length > 80 ? '...' : ''}</p>
</div>
<div class="card-footer bg-transparent">
@@ -127,7 +132,7 @@ async function loadGoals() {
</div>
</div>
</div>
`).join('');
`}).join('');
}
// 保存目标
@@ -141,20 +146,24 @@ async function saveGoal() {
const method = id ? 'PUT' : 'POST';
const url = id ? `${API_BASE}/${id}` : API_BASE;
const payload = {name, level, content};
console.log('Saving goal:', payload);
try {
const res = await fetch(url, {
method,
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({name, level, content})
body: JSON.stringify(payload)
});
const result = await res.json();
console.log('Save result:', result);
if (res.ok) {
bootstrap.Modal.getInstance(document.getElementById('goalModal')).hide();
loadGoals();
} else {
const err = await res.json();
alert(err.error || '保存失败');
alert(result.error || '保存失败');
}
} catch (e) {
alert('网络错误: ' + e.message);
@@ -165,6 +174,7 @@ function editGoal(id) {
fetch(`${API_BASE}/${id}`)
.then(r => r.json())
.then(g => {
console.log('Editing goal:', g);
document.getElementById('goal-id').value = g.id;
document.getElementById('goal-name').value = g.name;
document.getElementById('goal-level').value = g.level || '入门';