From 2cbd19e791aee451429e800436c0f9a90a179e2b Mon Sep 17 00:00:00 2001 From: ttipo Date: Tue, 30 Jun 2026 20:56:01 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=ED=94=84=EB=A1=9C=EC=A0=9D?= =?UTF-8?q?=ED=8A=B8=20=EC=83=81=EC=84=B8=20AI=20=EA=B2=80=ED=86=A0=20?= =?UTF-8?q?=EB=AC=B8=EC=84=9C=EB=A5=BC=20=EB=B2=84=ED=8A=BC+=EB=AA=A8?= =?UTF-8?q?=EB=8B=AC=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 인라인 wrap 나열 제거, 'AI 검토 문서' 버튼 클릭 시 모달에서 파일종류 배지·AI상태·크기를 세로 리스트로 표시 Co-Authored-By: Claude Opus 4.8 (1M context) --- .../project/ProjectDocumentsModal.vue | 153 ++++++++++++++++++ .../src/pages/relay/ProjectDetailPage.vue | 141 +++------------- 2 files changed, 178 insertions(+), 116 deletions(-) create mode 100644 frontend/src/components/project/ProjectDocumentsModal.vue diff --git a/frontend/src/components/project/ProjectDocumentsModal.vue b/frontend/src/components/project/ProjectDocumentsModal.vue new file mode 100644 index 0000000..2d450ef --- /dev/null +++ b/frontend/src/components/project/ProjectDocumentsModal.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/frontend/src/pages/relay/ProjectDetailPage.vue b/frontend/src/pages/relay/ProjectDetailPage.vue index d0a8e60..7a00e26 100644 --- a/frontend/src/pages/relay/ProjectDetailPage.vue +++ b/frontend/src/pages/relay/ProjectDetailPage.vue @@ -12,12 +12,11 @@ import DropdownSelect from '@/components/DropdownSelect.vue' import SegmentedTabs from '@/components/common/SegmentedTabs.vue' import LoadMore from '@/components/common/LoadMore.vue' import EmptyState from '@/components/common/EmptyState.vue' -import AttachmentAiBadge from '@/components/common/AttachmentAiBadge.vue' +import ProjectDocumentsModal from '@/components/project/ProjectDocumentsModal.vue' import { useProjectStore } from '@/stores/project.store' import { useTaskStore } from '@/stores/task.store' -import { useDrive } from '@/composables/useDrive' import type { TaskListQuery, TaskSegment, TaskSort } from '@/types/task' -import { taskStatusLabel, formatBytes } from '@/shared/utils/format' +import { taskStatusLabel } from '@/shared/utils/format' import type { Project } from '@/mock/relay.mock' const route = useRoute() @@ -36,17 +35,8 @@ async function loadProject() { } } -// 연동 문서 다운로드 — 드라이브 단기 presigned URL 발급 후 다운로드 -const driveApi = useDrive() -async function downloadDoc(fileId: string): Promise { - const url = await driveApi.getDownloadUrl(fileId) - const a = document.createElement('a') - a.href = url - a.rel = 'noopener' - document.body.appendChild(a) - a.click() - a.remove() -} +// AI 검토 문서 모달 표시 여부 +const docsModalOpen = ref(false) const keyword = ref('') const segment = ref('all') @@ -187,12 +177,16 @@ const overdueCount = computed(() => tasks.value.filter((t) => t.overdue).length) :can-manage="repo.canManage" /> - +
-
+
-

- 연동된 드라이브 폴더 {{ repo.driveLinks.length }}개의 문서를 AI 업무 추천에 활용합니다. -

-
- -
-

- 연동 폴더에 문서가 없습니다. -

+ AI 검토 문서 + {{ repo.documents?.length ?? 0 }} +
+ +