mirror of
https://github.com/hellodigua/ChatLab.git
synced 2026-10-25 17:54:34 +08:00
refactor(analysis): organize session insight components
This commit is contained in:
1 parent
723831c04e
commit
795e9234d5
14 files changed
+14
-44
No files matched your search
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1
-1
@@ -8,7 +8,7 @@ import TypeAnalysisView from '@/components/analysis/message/TypeAnalysisView.vue
|
||||
import TimeAnalysisView from '@/components/analysis/message/TimeAnalysisView.vue'
|
||||
import { LanguagePreferenceTab, WordcloudTab } from '@/components/analysis/quotes'
|
||||
import type { TimeFilter } from '@openchatlab/shared-types'
|
||||
import GroupRelationshipInsights from './insights/GroupRelationshipInsights.vue'
|
||||
import GroupRelationshipInsights from './GroupRelationshipInsights.vue'
|
||||
|
||||
const props = defineProps<{
|
||||
sessionId: string
|
||||
@@ -7,9 +7,9 @@ import LoadingState from '@/components/UI/LoadingState.vue'
|
||||
import SessionAnalysisHeader from '@/components/layout/session/SessionAnalysisHeader.vue'
|
||||
import { useSessionAnalysisPageBase } from '@/composables'
|
||||
import { useSessionStore } from '@/stores/session'
|
||||
import GroupOverview from '../components/session/GroupOverview.vue'
|
||||
import PrivateOverview from '../components/session/PrivateOverview.vue'
|
||||
import SessionInsights from '../components/session/SessionInsights.vue'
|
||||
import GroupOverview from '../components/session/insights/GroupOverview.vue'
|
||||
import PrivateOverview from '../components/session/insights/PrivateOverview.vue'
|
||||
import SessionInsights from '../components/session/insights/SessionInsights.vue'
|
||||
|
||||
const { t } = useI18n()
|
||||
const route = useRoute()
|
||||
|
||||
@@ -38,7 +38,7 @@ export function useTimeSelect(route: RouteLocationNormalizedLoaded, router: Rout
|
||||
/** 完整时间范围(由 TimeSelect 通过 emit 设置) */
|
||||
const fullTimeRange = ref<{ start: number; end: number } | null>(null)
|
||||
|
||||
/** 可选年份列表(由 TimeSelect 通过 emit 设置,group-chat 的 ViewTab 需要) */
|
||||
/** 可选年份列表(由 TimeSelect 通过 emit 设置,群聊洞察视图需要) */
|
||||
const availableYears = ref<number[]>([])
|
||||
|
||||
// ==================== 派生计算 ====================
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import { SectionTabs } from '@/components/navigation'
|
||||
import UserSelect from '@/components/common/UserSelect.vue'
|
||||
import TypeAnalysisView from '@/components/analysis/message/TypeAnalysisView.vue'
|
||||
import TimeAnalysisView from '@/components/analysis/message/TimeAnalysisView.vue'
|
||||
import GroupRelationships from './view/GroupRelationships.vue'
|
||||
import GroupRelationships from './GroupRelationships.vue'
|
||||
import { WordcloudTab } from '@/components/analysis/quotes'
|
||||
import type { TimeFilter } from '@openchatlab/shared-types'
|
||||
|
||||
File renamed without changes.
File renamed without changes.
@@ -7,8 +7,8 @@ import LabTab from '@/components/analysis/LabTab.vue'
|
||||
import MemoryTab from '@/components/analysis/MemoryTab.vue'
|
||||
import { DebugTab } from '@/components/DebugTab'
|
||||
import { ChatExplorer } from '@/components/AIChat'
|
||||
import OverviewTab from './components/OverviewTab.vue'
|
||||
import ViewTab from './components/ViewTab.vue'
|
||||
import GroupChatOverview from './components/insights/GroupChatOverview.vue'
|
||||
import GroupChatInsights from './components/insights/GroupChatInsights.vue'
|
||||
import RankingView from '@/components/analysis/ranking/RankingView.vue'
|
||||
import MemberList from '@/components/common/member/MemberList.vue'
|
||||
import NicknameHistoryEntry from './components/member/NicknameHistoryEntry.vue'
|
||||
@@ -145,7 +145,7 @@ const filteredMemberCount = computed(() => {
|
||||
|
||||
<div class="h-full">
|
||||
<Transition name="tab-slide" mode="out-in">
|
||||
<OverviewTab
|
||||
<GroupChatOverview
|
||||
v-if="activeTab === 'overview'"
|
||||
:key="'overview-' + currentSessionId"
|
||||
:session="session"
|
||||
@@ -160,7 +160,7 @@ const filteredMemberCount = computed(() => {
|
||||
:filtered-member-count="filteredMemberCount"
|
||||
:time-filter="timeFilter"
|
||||
/>
|
||||
<ViewTab
|
||||
<GroupChatInsights
|
||||
v-else-if="activeTab === 'view'"
|
||||
:key="'view-' + currentSessionId"
|
||||
:session-id="currentSessionId!"
|
||||
|
||||
File renamed without changes.
File renamed without changes.
@@ -1,30 +0,0 @@
|
||||
<script setup lang="ts">
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import type { TimeFilter } from '@openchatlab/shared-types'
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
// Props
|
||||
defineProps<{
|
||||
sessionId: string
|
||||
timeFilter?: TimeFilter
|
||||
}>()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="main-content flex h-full items-center justify-center p-6">
|
||||
<div
|
||||
class="flex h-full w-full items-center justify-center rounded-xl border-2 border-dashed border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-page-dark/50"
|
||||
>
|
||||
<div class="text-center">
|
||||
<UIcon name="i-heroicons-chart-bar" class="mx-auto h-12 w-12 text-gray-400" />
|
||||
<p class="mt-3 text-sm font-medium text-gray-600 dark:text-gray-400">
|
||||
{{ t('views.timeline.title') }}
|
||||
</p>
|
||||
<p class="mt-1 max-w-md px-4 text-sm text-gray-500">
|
||||
{{ t('views.timeline.description') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -7,8 +7,8 @@ import LabTab from '@/components/analysis/LabTab.vue'
|
||||
import MemoryTab from '@/components/analysis/MemoryTab.vue'
|
||||
import { DebugTab } from '@/components/DebugTab'
|
||||
import { ChatExplorer } from '@/components/AIChat'
|
||||
import OverviewTab from './components/OverviewTab.vue'
|
||||
import ViewTab from './components/ViewTab.vue'
|
||||
import PrivateChatOverview from './components/insights/PrivateChatOverview.vue'
|
||||
import PrivateChatInsights from './components/insights/PrivateChatInsights.vue'
|
||||
import MemberList from '@/components/common/member/MemberList.vue'
|
||||
import SessionAnalysisHeader from '@/components/layout/session/SessionAnalysisHeader.vue'
|
||||
import SemanticIndexSessionModal from '@/components/analysis/SemanticIndexSessionModal.vue'
|
||||
@@ -155,7 +155,7 @@ const otherMemberAvatar = computed(() => {
|
||||
|
||||
<div class="h-full">
|
||||
<Transition name="tab-slide" mode="out-in">
|
||||
<OverviewTab
|
||||
<PrivateChatOverview
|
||||
v-if="activeTab === 'overview'"
|
||||
:key="'overview-' + currentSessionId"
|
||||
:session="session"
|
||||
@@ -168,7 +168,7 @@ const otherMemberAvatar = computed(() => {
|
||||
:filtered-member-count="filteredMemberCount"
|
||||
:time-filter="timeFilter"
|
||||
/>
|
||||
<ViewTab
|
||||
<PrivateChatInsights
|
||||
v-else-if="activeTab === 'view'"
|
||||
:key="'view-' + currentSessionId"
|
||||
:session-id="currentSessionId!"
|
||||
|
||||
Reference in new issue
Block a user