diff --git a/src/assets/images/linkPrediction/icon/triangle-piont.png b/src/assets/images/linkPrediction/icon/triangle-piont.png new file mode 100644 index 0000000..3dc7966 Binary files /dev/null and b/src/assets/images/linkPrediction/icon/triangle-piont.png differ diff --git a/src/service/api/linkPrediction.js b/src/service/api/linkPrediction.js index 5d918cf..d950d77 100644 --- a/src/service/api/linkPrediction.js +++ b/src/service/api/linkPrediction.js @@ -14,7 +14,7 @@ export function getInteractionCommunityNodes() { export function getInteractionCommunityDetailNodes(ids, relationId, time = "2024-05-16 16:56:04") { if (relationId != -1) { return http.get( - `/linkPrediction/interaction/community_detail?groupIds=${ids}&relationId=${relationId}&dateTime=${time}` + `/linkPrediction/interaction/community_detail?groupIds=${ids}&dateTime=${time}&relationId=${relationId}` ) } else { return http.get(`/linkPrediction/interaction/community_detail?groupIds=${ids}&dateTime=${time}`) diff --git a/src/store/llinkPrediction/index.js b/src/store/llinkPrediction/index.js index 72a257f..a567cc5 100644 --- a/src/store/llinkPrediction/index.js +++ b/src/store/llinkPrediction/index.js @@ -11,8 +11,7 @@ import { getSocialCommunityList, getSocialCommunityStatistics, getSocialCommunityDetailNodes, - getSocialPostListByRelationId, - getInteractionCommunityDetailFromUserGroup + getSocialPostListByRelationId } from "@/service/api/linkPrediction" import defaultAvatar from "@/assets/images/avatar/default.png" @@ -33,6 +32,7 @@ export const useCharacterInteractionStore = defineStore("characterInteraction", communityDetailNodeList: [], //节点用户列表 timeList: [], predictionUserIds: [], //包含从用户组选择的用户id或者是点击某个社团或者连边后,所需要高亮的所有用户的id + curRelationId: "", anlysisList: [ { id: 1, @@ -175,13 +175,24 @@ export const useCharacterInteractionStore = defineStore("characterInteraction", if (res.code != 200) return this.communityNodeList = res.data }, - async initGraphCommunityDetailNode(ids, relationId = -1, time = "2024-05-16 16:56:04") { + async initGraphCommunityDetailNode(ids, time = "2024-05-16 16:56:04", relationId = -1) { this.curSelecedGroupIds = ids const res = await getInteractionCommunityDetailNodes(ids, relationId, time) if (res.code != 200) return + const customStatisticsObj = Object.assign({}, res.data.communityStatistics) + //计算两个用户是否同属与同一个社团 + + if ( + customStatisticsObj.groupCount == null && + customStatisticsObj.hiddenInteractionCount == null + ) { + customStatisticsObj.hiddenInteractionCount = 1 + customStatisticsObj.groupCount = ids[0] === ids[1] ? 1 : 2 + } + this.statisticsDetailList = this.statisticsDetailList.map((item) => ({ ...item, - count: res.data.communityStatistics[item.key] + count: customStatisticsObj[item.key] })) this.communityDetailNodeRelation = res.data.userRelation this.communityDetailNodeList = res.data.userList diff --git a/src/views/LinkPrediction/characterInteraction/index.vue b/src/views/LinkPrediction/characterInteraction/index.vue index 4aff974..72b946e 100644 --- a/src/views/LinkPrediction/characterInteraction/index.vue +++ b/src/views/LinkPrediction/characterInteraction/index.vue @@ -54,11 +54,12 @@ const handleSelectedUserGroup = (group) => { interactionStore.curComponent = "detailNode" interactionStore.timeList = group.timeList //保存从用户列表选择的用户组,为了显示这两个用户交互的时间切片 interactionStore.userIds = group.list.map((user) => user.userId) //保存选中的用户组的所有用户id,为了高亮二级关系图的用户 + interactionStore.curRelationId = group.relationId //保存当前点击的relationid,为了区分到底是从哪点进二级界面的 interactionStore.initInteractionPostList(group.relationId) interactionStore.initGraphCommunityDetailNode( group.list.map((item) => item.groupId), - group.relationId, - "2024-05-16 16:56:04" + "2024-05-16 16:56:04", + group.relationId ) } diff --git a/src/views/LinkPrediction/components/detailNode.vue b/src/views/LinkPrediction/components/detailNode.vue index d9795b3..d5f3812 100644 --- a/src/views/LinkPrediction/components/detailNode.vue +++ b/src/views/LinkPrediction/components/detailNode.vue @@ -16,21 +16,36 @@