fix: load tasks by selected list
ci / docker (push) Successful in 3m47s

This commit is contained in:
2026-09-05 16:04:55 +08:00
parent a52a543384
commit 3bf8c7c3d9
3 changed files with 34 additions and 5 deletions
+13 -5
View File
@@ -35,7 +35,7 @@ const loading = ref(false)
const mobileSidebar = ref(false)
const mobileDetail = ref(false)
const markdownPreview = ref(false)
const showCompleted = ref(true)
const showCompleted = ref(false)
const expandedFolders = ref(new Set<string>())
const activeName = computed(() => {
@@ -70,6 +70,9 @@ watch(query, () => {
if (activeView.value === 'trash') return
searchTimer = window.setTimeout(() => loadAll(), 250)
})
watch(showCompleted, () => {
if (activeView.value !== 'trash') loadAll()
})
async function api(path: string, options: RequestInit = {}) {
const response = await fetch('/api/v1' + path, {
@@ -125,12 +128,16 @@ async function loadTaskPages(path: string) {
async function loadAll() {
loading.value = true; error.value = ''
try {
const taskPath = query.value ? `/tasks?q=${encodeURIComponent(query.value)}` : '/tasks'
const [folderData, listData, tagData, taskData] = await Promise.all([
api('/folders'), api('/lists'), api('/tags').catch(() => []), loadTaskPages(taskPath),
const [folderData, listData, tagData] = await Promise.all([
api('/folders'), api('/lists'), api('/tags').catch(() => []),
])
folders.value = folderData; lists.value = listData; tags.value = tagData; tasks.value = taskData
folders.value = folderData; lists.value = listData; tags.value = tagData
activeList.value ||= lists.value.find((item) => item.is_inbox)?.id || lists.value[0]?.id || ''
const params = new URLSearchParams()
if (query.value) params.set('q', query.value)
else if (activeView.value === 'tasks' && activeList.value) params.set('list_id', activeList.value)
if (!showCompleted.value && activeView.value !== 'trash') params.set('completed', 'false')
tasks.value = await loadTaskPages(`/tasks${params.size ? `?${params}` : ''}`)
expandedFolders.value = new Set(folders.value.map((folder) => folder.id))
} catch (reason) { fail(reason) } finally { loading.value = false }
}
@@ -142,6 +149,7 @@ async function switchView(view: View, listId?: string) {
if (listId) activeList.value = listId
selectedTask.value = null; selectedIds.value = new Set(); mobileSidebar.value = false; mobileDetail.value = false
if (view === 'trash') await loadTrash()
else await loadAll()
}
async function addTask() {
if (!title.value.trim() || !activeList.value) return