diff --git a/src/api/issue.api.ts b/src/api/issue.api.ts index 085070f..f05617f 100644 --- a/src/api/issue.api.ts +++ b/src/api/issue.api.ts @@ -51,11 +51,18 @@ export async function itemsList(params: { page: number limit: number text?: string | null + status?: string | null + assigneeId?: string | null projectId?: string | null }) { - // `text` (free-text search) has no backend support yet — kept in the - // signature so callers don't need to change, but not sent over the wire. - const query = toQuery({ page: params.page, limit: params.limit, projectId: params.projectId }) + const query = toQuery({ + page: params.page, + limit: params.limit, + projectId: params.projectId, + text: params.text, + assigneeId: params.assigneeId, + status: params.status, + }) return apiClient.get<{ list: Issue[]; meta: Meta }>(`/api/issues/list${query}`) } diff --git a/src/components/AssigneeFilter.vue b/src/components/AssigneeFilter.vue index c620edc..2ee59a2 100644 --- a/src/components/AssigneeFilter.vue +++ b/src/components/AssigneeFilter.vue @@ -37,7 +37,10 @@ function toggle(id: string) { function onMenuSelect(value: unknown) { if (Array.isArray(value)) { - emit('changed', value.filter((el): el is string => typeof el === 'string')) + emit( + 'changed', + value.filter((el): el is string => typeof el === 'string'), + ) } } @@ -142,7 +145,7 @@ onMounted(() => { } &:hover { - transform: translateY(-0.25rem); + transform: translateY(0rem); } } diff --git a/src/components/IssueFilter.vue b/src/components/IssueFilter.vue index 0957e9d..c0c08bc 100644 --- a/src/components/IssueFilter.vue +++ b/src/components/IssueFilter.vue @@ -1,8 +1,14 @@ diff --git a/src/stores/issue.ts b/src/stores/issue.ts index 37887c1..d39bf80 100644 --- a/src/stores/issue.ts +++ b/src/stores/issue.ts @@ -24,7 +24,14 @@ export const useIssueStore = defineStore('item', () => { totalPages: 0, }) - async function list(params: { page: number; limit: number; text?: string | null; projectId?: string | null }) { + async function list(params: { + page: number + limit: number + text?: string | null + status?: string | null + assigneeId?: string | null + projectId?: string | null + }) { try { const res = await itemsList(params) issues.value = res.list diff --git a/src/views/Issues/IssuesListView.vue b/src/views/Issues/IssuesListView.vue index 2354864..49ce056 100644 --- a/src/views/Issues/IssuesListView.vue +++ b/src/views/Issues/IssuesListView.vue @@ -48,10 +48,6 @@ async function load() { await fetch() } -// async function onSearch() { -// await updatePage(1) -// } - function syncQuery() { const query: Record = { page: String(page.value) } @@ -90,6 +86,12 @@ async function updatePage(val: number) { await load() } +async function onTextChanged(value: string | null) { + text.value = value + page.value = 1 + await load() +} + function close() { selected.value = [] } @@ -151,7 +153,7 @@ async function onDeleteBatch() {
- +