社交紧密团体子图

This commit is contained in:
duanhao 2025-07-29 16:53:41 +08:00
parent 46d5edfa63
commit 5562489636
3 changed files with 21 additions and 7 deletions

View File

@ -392,6 +392,8 @@ export const useSocialGroupsStore = defineStore("socialGroups", {
async initGroupList() {
const res = await getGroupUserListFromTriangle()
if (res.code != 200) return
// 按rank属性升序排序userList
res.data.userList.sort((a, b) => a.rank - b.rank)
this.userList = res.data.userList
},
// 事件脉络分析中的帖文数据

View File

@ -141,6 +141,13 @@ const initChart = async () => {
const links = []
const nodes = []
const edgeWidth = (interactionTime) => {
if (interactionTime > 3) return 4
else if (interactionTime > 10) return 6
else if (interactionTime > 20) return 8
else if (interactionTime > 30) return 10
else return 1
}
if (!Object.keys(socialGroupsStore.communityDetailNodeList).length) return
Object.entries(socialGroupsStore.communityDetailNodeList).forEach(([parentId, children]) => {
nodes.push({
@ -155,17 +162,21 @@ const initChart = async () => {
source: `parent_${parentId}`,
target: child.id,
edge: child.isHidden ? 1 : 0,
interactionTimes: child.interactionTime
interactionTimes: child.interactionTime,
lineStyle: {
width: child.isHidden ? 4 : edgeWidth(child.interactionTime),
color: child.isHidden ? "#FF5E00" : "#37ACD7", // ==
type: child.isHidden ? "dashed" : "solid" // =线=线
}
})
})
})
const data = { links, nodes }
const categories = [
{ name: "事件活跃者", category: 0, icon: `image://${new URL('@/assets/images/linkPrediction/icon/event-activist-legend-icon.png', import.meta.url)}` },
{ name: "信息发布者", category: 1, icon: `image://${new URL('@/assets/images/linkPrediction/icon/information-publisher-legend-icon.png', import.meta.url)}` },
{ name: "互动关系", category: 2, icon: `image://${new URL('@/assets/images/linkPrediction/icon/interactive-relationship-legend-icon.png', import.meta.url)}` },
{ name: "紧密团体关系", category: 3, icon: `image://${new URL('@/assets/images/linkPrediction/icon/tight-community-legend-icon.png', import.meta.url)}` }
{ name: "信息发布者", category: 0, icon: `image://${new URL('@/assets/images/linkPrediction/icon/information-publisher-legend-icon.png', import.meta.url)}` },
{ name: "互动关系", category: 1, icon: `image://${new URL('@/assets/images/linkPrediction/icon/interactive-relationship-legend-icon.png', import.meta.url)}` },
{ name: "紧密团体关系", category: 2, icon: `image://${new URL('@/assets/images/linkPrediction/icon/tight-community-legend-icon.png', import.meta.url)}` }
]
const option = {
//
@ -192,7 +203,8 @@ const initChart = async () => {
{ offset: 0.5, color: "#fad0c4" },
{ offset: 1, color: "#fbc2eb" }
])
}
},
icon: c.icon
})),
right: 21,
bottom: 70,

View File

@ -13,7 +13,7 @@
src="@/assets/images/linkPrediction/title/group-item-title.png"
class="group-type-back"
/>
<div class="group-type-content">互动强度{{ group.correlation.toFixed(1) }}</div>
<div class="group-type-content">Top{{ index+1 }}</div>
</div>
<div class="user-list-item" v-for="child in group.list" :key="child.id">
<img :src="defaultAvatar" alt="" class="avatar" />