feat: 정렬·필터 서버 측 동작 구현 및 커스텀 드롭다운 적용
프로젝트 목록·업무 목록·내 업무에 정렬/검색/프로젝트 필터를 백엔드 쿼리 파라미터로 추가(페이지네이션과 일관). 활동 멤버 필터는 전량 로드 피드 기준 클라이언트 처리. 모든 정렬/필터 및 멤버 초대 역할 선택을 네이티브 select → 공통 DropdownSelect 컴포넌트로 통일. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,22 +1,30 @@
|
||||
import { useApi } from './useApi'
|
||||
import type { ApiMyTaskRow } from '@/types/my-task'
|
||||
import type { ApiMyTaskRow, MyTaskListQuery } from '@/types/my-task'
|
||||
import type { Paginated } from '@/types/pagination'
|
||||
|
||||
// 내 업무 API Composable — 프로젝트 횡단 집계(담당/지시), 오프셋 페이지네이션
|
||||
// 내 업무 API Composable — 프로젝트 횡단 집계(담당/지시), 검색/프로젝트/정렬 + 오프셋 페이지네이션
|
||||
export function useMyTask() {
|
||||
const api = useApi()
|
||||
|
||||
// 내가 담당인 업무
|
||||
async function assigned(page = 1, size = 20): Promise<Paginated<ApiMyTaskRow>> {
|
||||
async function assigned(
|
||||
page = 1,
|
||||
size = 20,
|
||||
query: MyTaskListQuery = {},
|
||||
): Promise<Paginated<ApiMyTaskRow>> {
|
||||
return (await api.get('/tasks/assigned', {
|
||||
params: { page, size },
|
||||
params: { ...query, page, size },
|
||||
})) as unknown as Paginated<ApiMyTaskRow>
|
||||
}
|
||||
|
||||
// 내가 지시한 업무
|
||||
async function issued(page = 1, size = 20): Promise<Paginated<ApiMyTaskRow>> {
|
||||
async function issued(
|
||||
page = 1,
|
||||
size = 20,
|
||||
query: MyTaskListQuery = {},
|
||||
): Promise<Paginated<ApiMyTaskRow>> {
|
||||
return (await api.get('/tasks/issued', {
|
||||
params: { page, size },
|
||||
params: { ...query, page, size },
|
||||
})) as unknown as Paginated<ApiMyTaskRow>
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ import { useApi } from './useApi'
|
||||
import type {
|
||||
ApiProject,
|
||||
CreateProjectPayload,
|
||||
ProjectListQuery,
|
||||
UpdateProjectPayload,
|
||||
} from '@/types/project'
|
||||
import type { Paginated } from '@/types/pagination'
|
||||
@@ -10,9 +11,14 @@ import type { Paginated } from '@/types/pagination'
|
||||
export function useProject() {
|
||||
const api = useApi()
|
||||
|
||||
async function list(page = 1, size = 20): Promise<Paginated<ApiProject>> {
|
||||
// 목록(검색/정렬 + 페이지네이션)
|
||||
async function list(
|
||||
page = 1,
|
||||
size = 20,
|
||||
query: ProjectListQuery = {},
|
||||
): Promise<Paginated<ApiProject>> {
|
||||
return (await api.get('/projects', {
|
||||
params: { page, size },
|
||||
params: { ...query, page, size },
|
||||
})) as unknown as Paginated<ApiProject>
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user