From 63ee4cc14c944c1de7d6c3fc63d0775eafb3377e Mon Sep 17 00:00:00 2001 From: "qumeng039@126.com" <86925389+qumen@users.noreply.github.com> Date: Thu, 17 Jul 2025 09:16:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=9B=AE=E5=BD=95=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.js | 4 +-- src/store/index.js | 22 -------------- src/store/keyNodeStore1.js | 30 +++++++++---------- .../index.vue} | 18 +++++------ .../index.vue} | 18 +++++------ 5 files changed, 35 insertions(+), 57 deletions(-) delete mode 100644 src/store/index.js rename src/views/{KeyNodeRecognition1.vue => KeyNodeRecognition1/index.vue} (89%) rename src/views/{KeyNodeRecognition2.vue => KeyNodeRecognition2/index.vue} (90%) diff --git a/src/router/index.js b/src/router/index.js index 524b957..ac3da7a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,7 +1,7 @@ import { createRouter, createWebHistory } from "vue-router"; // 导入组件,这里先占位 -const KeyNodeRecognition2 = () => import("@/views/KeyNodeRecognition1.vue"); -const KeyNodeRecognition3 = () => import("@/views/KeyNodeRecognition2.vue"); +const KeyNodeRecognition2 = () => import("@/views/KeyNodeRecognition1/index.vue"); +const KeyNodeRecognition3 = () => import("@/views/KeyNodeRecognition2/index.vue"); const KeyNodeRecognition1 = () => import("@/views/KeyNodeRecognition3/index.vue"); const LinkPrediction1 = () => import("@/views/LinkPrediction1.vue"); const LinkPrediction2 = () => import("@/views/LinkPrediction2.vue"); diff --git a/src/store/index.js b/src/store/index.js deleted file mode 100644 index e6652b6..0000000 --- a/src/store/index.js +++ /dev/null @@ -1,22 +0,0 @@ -import { defineStore } from 'pinia'; - -export const useActionStore = defineStore('action', { - state: () => ({ - triggerCombineAction: false, - targetNodeId: '840983' // 默认高亮节点ID - }), - actions: { - // 触发定位并高亮操作 - triggerCombine() { - this.triggerCombineAction = true; - // 自动重置状态,避免重复触发 - setTimeout(() => { - this.triggerCombineAction = false; - }, 100); - }, - // 设置目标节点ID - setTargetNodeId(id) { - this.targetNodeId = id; - } - } -}); \ No newline at end of file diff --git a/src/store/keyNodeStore1.js b/src/store/keyNodeStore1.js index 1691646..d081eb6 100644 --- a/src/store/keyNodeStore1.js +++ b/src/store/keyNodeStore1.js @@ -1,7 +1,7 @@ -import { defineStore } from 'pinia' -import { ref, computed } from 'vue' +import { defineStore } from "pinia"; +import { ref, computed } from "vue"; -export const useKeyNodeStore1 = defineStore('keyNode1', () => { +export const useKeyNodeStore1 = defineStore("keyNode1", () => { const allLeaderData = ref([ { userid: "huxijin", @@ -514,21 +514,21 @@ export const useKeyNodeStore1 = defineStore('keyNode1', () => { const detailsModalChartConfig = ref(null); const visibleLeaders = computed(() => allLeaderData.value.slice(0, activeTimePoint.value)); - + const getLeaderById = (id) => { - const leader = allLeaderData.value.find(l => l.id === id); + const leader = allLeaderData.value.find((l) => l.id === id); if (!leader) return null; - + return { name: leader.name, leaderOriginInfo: { avatar: leader.avatar, followers: leader.followers, posts: posts.value - .filter(p => p.author === leader.id) - .map(p => ({ + .filter((p) => p.author === leader.id) + .map((p) => ({ id: p.id, - type: '舆情监测', + type: "舆情监测", content: p.content, time: p.timestamp, like: p.like, @@ -544,7 +544,7 @@ export const useKeyNodeStore1 = defineStore('keyNode1', () => { timePoints.value = allLeaderData.value.map((leader, index) => ({ id: index + 1, leaderId: leader.id, - timestamp: posts.value[index]?.timestamp || 'N/A' + timestamp: posts.value[index]?.timestamp || "N/A" })); } @@ -554,7 +554,7 @@ export const useKeyNodeStore1 = defineStore('keyNode1', () => { function openLeaderDetail(leaderDataFromGraph) { activeLeader.value = getLeaderById(leaderDataFromGraph.id); - if(activeLeader.value) { + if (activeLeader.value) { isLeaderDetailDialogVisible.value = true; } } @@ -580,7 +580,7 @@ export const useKeyNodeStore1 = defineStore('keyNode1', () => { function closeDetailsModal() { isDetailsModalVisible.value = false; } - + return { allLeaderData, posts, @@ -600,6 +600,6 @@ export const useKeyNodeStore1 = defineStore('keyNode1', () => { openPostDetail, closePostDetail, openDetailsModal, - closeDetailsModal, - } -}) \ No newline at end of file + closeDetailsModal + }; +}); diff --git a/src/views/KeyNodeRecognition1.vue b/src/views/KeyNodeRecognition1/index.vue similarity index 89% rename from src/views/KeyNodeRecognition1.vue rename to src/views/KeyNodeRecognition1/index.vue index 0e04358..7c1599a 100644 --- a/src/views/KeyNodeRecognition1.vue +++ b/src/views/KeyNodeRecognition1/index.vue @@ -50,16 +50,16 @@ import { ref, onMounted, onUnmounted } from "vue"; import { useKeyNodeStore1 } from "@/store/keyNodeStore1"; -import LeaderList from "./KeyNodeRecognition1/components/LeaderList.vue"; -import GraphPanel from "./KeyNodeRecognition1/components/GraphPanel.vue"; -import DetailsModal from "./KeyNodeRecognition1/components/DetailsModal.vue"; -import LeaderDetailDialog from "./KeyNodeRecognition1/components/LeaderDetailDialog.vue"; -import PostDetailDialog from "./KeyNodeRecognition1/components/PostDetailDialog.vue"; +import LeaderList from "./components/LeaderList.vue"; +import GraphPanel from "./components/GraphPanel.vue"; +import DetailsModal from "./components/DetailsModal.vue"; +import LeaderDetailDialog from "./components/LeaderDetailDialog.vue"; +import PostDetailDialog from "./components/PostDetailDialog.vue"; -import LeaderAnalysis from "./KeyNodeRecognition1/components/LeaderAnalysis.vue"; -import EventHeatmap from "../components/weight/EventHeatmap.vue"; -import PostDynamics from "../components/weight/PostDynamics.vue"; -import WordCloud from "../components/weight/WordCloud.vue"; +import LeaderAnalysis from "./components/LeaderAnalysis.vue"; +import EventHeatmap from "../../components/weight/EventHeatmap.vue"; +import PostDynamics from "../../components/weight/PostDynamics.vue"; +import WordCloud from "../../components/weight/WordCloud.vue"; const store = useKeyNodeStore1(); const graphPanelRef = ref(null); diff --git a/src/views/KeyNodeRecognition2.vue b/src/views/KeyNodeRecognition2/index.vue similarity index 90% rename from src/views/KeyNodeRecognition2.vue rename to src/views/KeyNodeRecognition2/index.vue index 25accce..828bffd 100644 --- a/src/views/KeyNodeRecognition2.vue +++ b/src/views/KeyNodeRecognition2/index.vue @@ -42,16 +42,16 @@ import { ref, onMounted, onUnmounted } from "vue"; import { useKeyNodeStore2 } from "@/store/keyNodeStore2"; -import LeaderList from "./KeyNodeRecognition2/components/LeaderList.vue"; -import GraphPanel from "./KeyNodeRecognition2/components/GraphPanel.vue"; -import DetailsModal from "./KeyNodeRecognition2/components/DetailsModal.vue"; -import LeaderDetailDialog from "./KeyNodeRecognition2/components/LeaderDetailDialog.vue"; -import PostDetailDialog from "./KeyNodeRecognition2/components/PostDetailDialog.vue"; +import LeaderList from "./components/LeaderList.vue"; +import GraphPanel from "./components/GraphPanel.vue"; +import DetailsModal from "./components/DetailsModal.vue"; +import LeaderDetailDialog from "./components/LeaderDetailDialog.vue"; +import PostDetailDialog from "./components/PostDetailDialog.vue"; -import LeaderAnalysis from "./KeyNodeRecognition2/components/LeaderAnalysis.vue"; -import EventHeatmap from "../components/weight/EventHeatmap.vue"; -import PostDynamics from "../components/weight/PostDynamics.vue"; -import WordCloud from "../components/weight/WordCloud.vue"; +import LeaderAnalysis from "./components/LeaderAnalysis.vue"; +import EventHeatmap from "../../components/weight/EventHeatmap.vue"; +import PostDynamics from "../../components/weight/PostDynamics.vue"; +import WordCloud from "../../components/weight/WordCloud.vue"; const store = useKeyNodeStore2(); const graphPanelRef = ref(null);