diff --git a/src/components/dashboard/ActiveProjectsPanel.vue b/src/components/dashboard/ActiveProjectsPanel.vue index b7013b6..602721d 100644 --- a/src/components/dashboard/ActiveProjectsPanel.vue +++ b/src/components/dashboard/ActiveProjectsPanel.vue @@ -39,7 +39,7 @@ import { computed } from 'vue' import { useI18n } from 'vue-i18n' import { useProjectStore } from '@/stores/project' -import { parseTs } from '@/utils/time' +import { formatRelativeZh } from '@/utils/time' const store = useProjectStore() const { t } = useI18n() @@ -59,17 +59,9 @@ function getProjectTaskCount(projectId: string): number { return store.tasks.filter(t => t.project_id === projectId && t.status === 'in_progress').length } -function formatLastActivity(iso: string): string { - const ms = parseTs(iso) - if (ms == null) return '—' - const diffMin = Math.floor((Date.now() - ms) / 60000) - if (diffMin < 1) return t('common.justNow') - if (diffMin < 60) return t('common.minutesAgo', { n: diffMin }) - const diffH = Math.floor(diffMin / 60) - if (diffH < 24) return t('common.hoursAgo', { n: diffH }) - const diffD = Math.floor(diffH / 24) - return t('common.dayAgo', { n: diffD }) -} +// 相对时间复用 utils/time.formatRelativeZh(与 Tasks/AuditLog/MessageList 等同源,根治 NaN) +// 原 formatLastActivity 是其逐行复制,提取为单一来源。 +const formatLastActivity = formatRelativeZh const displayProjects = computed(() => store.projects.map(p => { diff --git a/src/components/knowledge/KnowledgeDetail.vue b/src/components/knowledge/KnowledgeDetail.vue index f5c2ce6..7abc760 100644 --- a/src/components/knowledge/KnowledgeDetail.vue +++ b/src/components/knowledge/KnowledgeDetail.vue @@ -107,7 +107,13 @@