feat(documents): rebuild project document workbench

This commit is contained in:
2026-07-24 12:16:02 +08:00
parent 366136cee9
commit 77beaebb30
73 changed files with 5867 additions and 1264 deletions

View File

@@ -5,10 +5,10 @@ import type {
WorkspaceChannelDTO,
WorkspaceCronPlanDTO,
WorkspaceInboxDTO,
WorkspaceNoteSourceDTO,
WorkspaceDocumentDTO,
WorkspaceTaskDTO,
} from './projects'
import type { AISession, ChannelKey, CronJob, InboxItem, NoteSource, Project, ProjectChannel, ProjectWorkspace, TaskItem } from '../pages/projects/project-types'
import type { AISession, ChannelKey, CronJob, DocumentSummary, InboxItem, Project, ProjectChannel, ProjectWorkspace, TaskItem } from '../pages/projects/project-types'
const projectColors = ['#165DFF', '#00B42A', '#722ED1', '#FF7D00', '#14C9C9', '#F53F3F']
@@ -34,7 +34,7 @@ export function mapWorkspace(payload: ProjectWorkspaceDTO, index = 0): ProjectWo
inbox: payload.inbox.map(mapInbox),
tasks: payload.tasks.map(mapTask),
aiSessions: payload.aiSessions.map(mapAISession),
notes: payload.notesSources.map(mapNoteSource),
documents: payload.documents.map(mapDocument),
cronJobs: payload.cronPlans.map(mapCronPlan),
}
}
@@ -75,8 +75,8 @@ function mapChannelKey(type: string, id = ''): ChannelKey {
return 'tasks'
case 'ai_sessions':
return 'ai'
case 'notes_sources':
return 'notes'
case 'documents':
return 'documents'
case 'cron':
return 'cron'
case 'overview':
@@ -96,7 +96,7 @@ function channelLabel(channel: WorkspaceChannelDTO) {
return '工作计划'
case 'ai_sessions':
return 'AI 会话'
case 'notes_sources':
case 'documents':
return '笔记资料'
case 'cron':
return '计划任务'
@@ -115,7 +115,7 @@ function channelIcon(channel: WorkspaceChannelDTO) {
return <IconList />
case 'ai_sessions':
return <IconRobot />
case 'notes_sources':
case 'documents':
return <IconFile />
case 'cron':
return <IconClockCircle />
@@ -194,14 +194,14 @@ function mapAISession(session: WorkspaceAISessionDTO): AISession {
}
}
function mapNoteSource(note: WorkspaceNoteSourceDTO): NoteSource {
function mapDocument(document: WorkspaceDocumentDTO): DocumentSummary {
return {
id: note.id,
title: note.title,
type: note.kind === 'note' ? '笔记' : note.source,
updated: formatBackendDate(note.updatedAt),
owner: note.source,
source: note.source,
id: document.id,
name: document.name,
kind: document.kind,
extension: document.extension,
mimeType: document.mimeType,
updated: formatBackendDate(document.updatedAt),
}
}