SocialNetworks_duan/src/store/groupEvolution/index.js

1147 lines
31 KiB
JavaScript
Raw Normal View History

2025-08-04 13:54:33 +08:00
import { defineStore } from "pinia"
import nodePrefix from "@/assets/images/groupEvolution/node-prefix.png"
import edgePrefix from "@/assets/images/groupEvolution/edge-prefix.png"
2025-07-28 16:02:19 +08:00
import splitImg from "@/assets/images/groupMember/splitImg.png"
import mergeImg from "@/assets/images/groupMember/mergeImg.png"
import shrinkImg from "@/assets/images/groupMember/shrinkImg.png"
import expamdImg from "@/assets/images/groupMember/expamdImg.png"
import defaultAvatar from "@/assets/images/avatar/default.png"
2025-08-05 10:04:27 +08:00
import {
getGroupEvolutionGroupList,
2025-08-05 14:23:32 +08:00
getGroupEvolutionGroupScaleChart,
getGroupEvolutionTimeLine,
2025-08-05 17:46:21 +08:00
getPostByUtcTime,
getGroupMemberInfoList
2025-08-05 10:04:27 +08:00
} from "@/service/api/groupEvolution"
import { TansTimestamp } from "@/utils/transform"
2025-08-05 14:23:32 +08:00
export const useGroupDiscoveryStore = defineStore("groupDiscovery", {
state: () => ({
2025-08-05 10:04:27 +08:00
groupList: [],
chartData: {},
2025-08-05 14:23:32 +08:00
timeList: [],
chartsData: {
topSelfMedia: {
2025-08-05 10:04:27 +08:00
xAxis: [
"15:57:46",
"16:57:55",
"17:57:32",
"18:58:03",
"19:58:03",
"20:58:04",
"21:57:47",
"22:58:12"
],
yAxis: [0, 0.5, 1.0, 1.5, 2.0, 2.5],
data: [1.0, 0.99, 1.0, 1.0, 1.01, 2.03, 1.2, 0.99]
},
officialMedia: {
2025-08-05 10:04:27 +08:00
xAxis: [
"15:57:46",
"16:57:55",
"17:57:32",
"18:58:03",
"19:58:03",
"20:58:04",
"21:57:47",
"22:58:12"
],
yAxis: [0, 0.5, 1.0, 1.5],
data: [1.0, 0.99, 1.0, 1.0, 1.01, 1.01, 1.2, 0.99]
},
ordinaryMedia: {
2025-08-05 10:04:27 +08:00
xAxis: [
"15:57:46",
"16:57:55",
"17:57:32",
"18:58:03",
"19:58:03",
"20:58:04",
"21:57:47",
"22:58:12"
],
yAxis: [0, 1.0, 2.0, 3.0],
data: [1.08, 2.54, 1.47, 1.03, 0.98, 0.99, 1.0, 1.12]
}
},
wordCloudData: [
{
text: "佩洛西",
top: 115.5,
left: 215.5,
width: 109,
height: 40,
fontSize: 28,
opacity: 1
},
{ text: "中国", top: 183.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
{
text: "中国人民解放军",
top: 72.5,
left: 132.5,
width: 123,
height: 22,
fontSize: 12,
opacity: 1
},
{
text: "中美关系",
top: 171.5,
left: 212.5,
width: 81,
height: 22,
fontSize: 14,
opacity: 0.8
},
{ text: "台独", top: 135.5, left: 42.5, width: 57, height: 24, fontSize: 16, opacity: 1 },
{
text: "台海和平",
top: 228.5,
left: 230.5,
width: 81,
height: 22,
fontSize: 14,
opacity: 0.8
},
{
text: "坚决反对",
top: 200.5,
left: 38.5,
width: 73,
height: 19,
fontSize: 12,
opacity: 0.7
},
{
text: "联合公报",
top: 241.5,
left: 130.5,
width: 73,
height: 19,
fontSize: 12,
opacity: 0.7
},
{
text: "有力反制",
top: 211.5,
left: 143.5,
width: 73,
height: 19,
fontSize: 12,
opacity: 1
},
{ text: "白宫", top: 176.5, left: 15.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
{ text: "内政", top: 87.5, left: 36.5, width: 53, height: 22, fontSize: 14, opacity: 1 },
{ text: "访台", top: 103.5, left: 95.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
{ text: "领土", top: 57.5, left: 72.5, width: 49, height: 19, fontSize: 12, opacity: 0.6 },
{ text: "原则", top: 77.5, left: 264.5, width: 49, height: 19, fontSize: 12, opacity: 0.7 },
{ text: "台湾", top: 195.5, left: 287.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 }
],
2025-08-05 14:23:32 +08:00
posts: []
}),
2025-08-05 10:04:27 +08:00
actions: {
2025-08-05 17:47:53 +08:00
async initializeGroupList(time = "") {
2025-08-05 10:04:27 +08:00
const res = await getGroupEvolutionGroupList(time)
if (res.code != 200) return
const iconMap = {
节点数: nodePrefix,
连边数: edgePrefix
}
this.groupList = res.data
this.groupList.forEach((item) => {
item.list = item.list.map((statistic) => ({
...statistic,
iconImg: iconMap[statistic.name]
}))
})
},
async initializeGroupScaleChart() {
const res = await getGroupEvolutionGroupScaleChart()
if (res.code != 200) return
let resultObj = {}
const themeMap = {
群体一: "#32b6fb",
群体二: "#00d6da",
群体三: "#fddc33"
}
resultObj["xAxisData"] = res.data.timeList.map((item) => TansTimestamp(item, "HH:mm:ss"))
resultObj["yAxisRange"] = res.data.scale
resultObj["seriesList"] = []
Object.entries(res.data.data).forEach(([key, list]) => {
resultObj["seriesList"].push({ name: key, themeColor: themeMap[key], data: list })
})
this.chartData = resultObj
2025-08-05 14:23:32 +08:00
},
async initialGraphTimestamp() {
const res = await getGroupEvolutionTimeLine()
if (res.code != 200) return
this.timeList = res.data
},
async initialGraphByUtcTime() {},
async initialPostByUtcTime(utcTime) {
const res = await getPostByUtcTime(utcTime)
if (res.code != 200) return
this.posts = res.data
2025-08-05 10:04:27 +08:00
}
},
persist: true // 开启持久化
2025-08-04 13:54:33 +08:00
})
export const useGroupStructureStore = defineStore("groupStructure", {
state: () => ({
groupList: [
{
id: 1,
type: "头部自媒体",
statistics: [
{ id: 1, iconImg: nodePrefix, name: "内部密度指数", value: 293 },
{ id: 2, iconImg: edgePrefix, name: "外部拓展指数", value: 21389 }
],
mediaList: []
},
{
id: 2,
type: "官方媒体",
statistics: [
{ id: 1, iconImg: nodePrefix, name: "内部密度指数", value: 293 },
{ id: 2, iconImg: edgePrefix, name: "外部拓展指数", value: 21389 }
],
mediaList: {}
},
{
id: 3,
type: "普通自媒体",
statistics: [
{ id: 1, iconImg: nodePrefix, name: "内部密度指数", value: 293 },
{ id: 2, iconImg: edgePrefix, name: "外部拓展指数", value: 21389 }
],
mediaList: []
}
],
chartData: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 1, interval: 0.2 },
seriesList: [
{
name: "",
type: "line",
lineStyle: {
color: "#2AB8FD",
width: 1 // 设置线条宽度为3像素
},
symbolSize: 10, // 圆点大小
borderWidth: 1, // 边框宽度
data: [0.3055, 0.3939, 0.5813, 0.6094, 0.6289]
}
]
},
chartsData: {
2025-07-23 11:22:19 +08:00
topSelfMedia: [
{
id: 1,
name: "内部密度指数演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 0.0035, interval: 0.0005 },
seriesList: [
{
name: "",
type: "line",
lineStyle: {
color: "#2AB8FD",
width: 1 // 设置线条宽度为3像素
},
symbolSize: 10, // 圆点大小
borderWidth: 1, // 边框宽度
data: [0.0005, 0.002, 0.0024, 0.0026, 0.0027]
}
]
}
},
{
id: 2,
name: "外部拓展指数演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 2.1, interval: 0.3 },
seriesList: [
{
name: "",
type: "line",
lineStyle: {
color: "#2AB8FD",
width: 1 // 设置线条宽度为3像素
},
symbolSize: 10, // 圆点大小
borderWidth: 1, // 边框宽度
data: [1.9787, 0.6044, 0.6757, 0.6763, 0.6853]
}
]
}
}
],
officalMedia: [
{
id: 1,
name: "内部密度指数演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 0.0035, interval: 0.0005 },
seriesList: [
{
name: "",
type: "line",
lineStyle: {
color: "#2AB8FD",
width: 1 // 设置线条宽度为3像素
},
symbolSize: 10, // 圆点大小
borderWidth: 1, // 边框宽度
data: [0.0001, 0.02, 0.024, 0.026, 0.027]
}
]
}
},
{
id: 2,
name: "外部拓展指数演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 2.1, interval: 0.3 },
seriesList: [
{
name: "",
type: "line",
lineStyle: {
color: "#2AB8FD",
width: 1 // 设置线条宽度为3像素
},
symbolSize: 10, // 圆点大小
borderWidth: 1, // 边框宽度
data: [1.787, 0.044, 0.757, 0.763, 0.853]
}
]
}
}
],
ordinaryMedia: [
{
id: 1,
name: "内部密度指数演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 0.0035, interval: 0.0005 },
seriesList: [
{
name: "",
type: "line",
lineStyle: {
color: "#2AB8FD",
width: 1 // 设置线条宽度为3像素
},
symbolSize: 10, // 圆点大小
borderWidth: 1, // 边框宽度
data: [0.01, 0.2, 0.24, 0.26, 0.27]
}
]
}
},
{
id: 2,
name: "外部拓展指数演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 2.1, interval: 0.3 },
seriesList: [
{
name: "",
type: "line",
lineStyle: {
color: "#2AB8FD",
width: 1 // 设置线条宽度为3像素
},
symbolSize: 10, // 圆点大小
borderWidth: 1, // 边框宽度
data: [1.87, 0.44, 0.57, 0.63, 0.53]
}
]
}
}
]
},
wordCloudData: [
{
text: "佩洛西",
top: 115.5,
left: 215.5,
width: 109,
height: 40,
fontSize: 28,
opacity: 1
},
{ text: "中国", top: 183.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
{
text: "中国人民解放军",
top: 72.5,
left: 132.5,
width: 123,
height: 22,
fontSize: 12,
opacity: 1
},
{
text: "中美关系",
top: 171.5,
left: 212.5,
width: 81,
height: 22,
fontSize: 14,
opacity: 0.8
},
{ text: "台独", top: 135.5, left: 42.5, width: 57, height: 24, fontSize: 16, opacity: 1 },
{
text: "台海和平",
top: 228.5,
left: 230.5,
width: 81,
height: 22,
fontSize: 14,
opacity: 0.8
},
{
text: "坚决反对",
top: 200.5,
left: 38.5,
width: 73,
height: 19,
fontSize: 12,
opacity: 0.7
},
{
text: "联合公报",
top: 241.5,
left: 130.5,
width: 73,
height: 19,
fontSize: 12,
opacity: 0.7
},
{
text: "有力反制",
top: 211.5,
left: 143.5,
width: 73,
height: 19,
fontSize: 12,
opacity: 1
},
{ text: "白宫", top: 176.5, left: 15.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
{ text: "内政", top: 87.5, left: 36.5, width: 53, height: 22, fontSize: 14, opacity: 1 },
{ text: "访台", top: 103.5, left: 95.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
{ text: "领土", top: 57.5, left: 72.5, width: 49, height: 19, fontSize: 12, opacity: 0.6 },
{ text: "原则", top: 77.5, left: 264.5, width: 49, height: 19, fontSize: 12, opacity: 0.7 },
{ text: "台湾", top: 195.5, left: 287.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 }
],
posts: [
{
id: 1,
timestamp: "2024-01-04 0:03:16",
2025-08-05 11:21:45 +08:00
groupCategory: "群体一",
innerEdgeAddCount: 8,
outerEdgeAddCount: 2
},
{
id: 2,
timestamp: "2024-02-03 12:58:53",
2025-08-05 11:21:45 +08:00
groupCategory: "群体一",
innerEdgeAddCount: 8,
outerEdgeAddCount: 2
},
{
id: 3,
timestamp: "2024-02-22 17:13:44",
2025-08-05 11:21:45 +08:00
groupCategory: "群体二",
innerEdgeAddCount: 13,
outerEdgeAddCount: 3
},
{
id: 4,
timestamp: "2024-02-23 17:54:46",
2025-08-05 11:21:45 +08:00
groupCategory: "群体三",
innerEdgeAddCount: 1,
outerEdgeAddCount: 2
},
{
id: 5,
timestamp: "2024-03-14 09:58:12",
2025-08-05 11:21:45 +08:00
groupCategory: "群体三",
innerEdgeAddCount: 1,
outerEdgeAddCount: 2
},
{
id: 6,
timestamp: "2024-03-23 21:20:40",
2025-08-05 11:21:45 +08:00
groupCategory: "群体三",
innerEdgeAddCount: 1,
outerEdgeAddCount: 2
},
{
id: 7,
timestamp: "2024-03-23 21:42:36",
2025-08-05 11:21:45 +08:00
groupCategory: "群体三",
innerEdgeAddCount: 1,
outerEdgeAddCount: 2
},
{
id: 8,
timestamp: "2024-04-06 18:17:30",
2025-08-05 11:21:45 +08:00
groupCategory: "群体三",
innerEdgeAddCount: 1,
outerEdgeAddCount: 2
},
{
id: 9,
timestamp: "2024-04-06 19:19:50",
2025-08-05 11:21:45 +08:00
groupCategory: "群体三",
innerEdgeAddCount: 1,
outerEdgeAddCount: 2
},
{
id: 10,
timestamp: "2024-05-16 00:22:18",
2025-08-05 11:21:45 +08:00
groupCategory: "群体三",
innerEdgeAddCount: 1,
outerEdgeAddCount: 2
}
]
}),
actions: {},
persist: false // 开启持久化
2025-08-04 13:54:33 +08:00
})
2025-07-28 16:02:19 +08:00
export const useGroupMemberStore = defineStore("groupMember", {
state: () => ({
2025-08-04 17:40:17 +08:00
groupList: [
{
2025-08-05 14:23:32 +08:00
id: 1,
2025-08-04 17:40:17 +08:00
type: "群体一",
focusedTopic: "#中国海警首次登检菲律宾#",
2025-08-05 17:46:21 +08:00
value: [10, 5, 15, 5],
2025-08-04 17:40:17 +08:00
},
{
2025-08-05 14:23:32 +08:00
id: 2,
2025-08-04 17:40:17 +08:00
type: "群体二",
focusedTopic: "#中国海警首次登检菲律宾#",
2025-08-05 17:46:21 +08:00
value: [10, 20, 15, 5],
2025-08-04 17:40:17 +08:00
}
],
2025-07-28 16:02:19 +08:00
groupMemberList: [
{
id: 1,
type: "头部媒体",
statistics: [
2025-08-04 13:54:33 +08:00
{ id: 1, iconImg: splitImg, name: "分裂", value: 0.0298 },
{ id: 2, iconImg: mergeImg, name: "合并", value: 0 },
{ id: 3, iconImg: shrinkImg, name: "收缩", value: 0.4741 },
{ id: 4, iconImg: expamdImg, name: "扩展", value: 1.04e-14 }
2025-07-28 16:02:19 +08:00
]
},
{
id: 2,
type: "头部媒体",
statistics: [
2025-08-04 13:54:33 +08:00
{ id: 1, iconImg: splitImg, name: "分裂", value: 0.2125 },
{ id: 2, iconImg: mergeImg, name: "合并", value: 1.65e-15 },
{ id: 3, iconImg: shrinkImg, name: "收缩", value: 0.4313 },
{ id: 4, iconImg: expamdImg, name: "扩展", value: 6.02e-15 }
2025-07-28 16:02:19 +08:00
]
2025-08-04 13:54:33 +08:00
}
2025-07-28 16:02:19 +08:00
],
2025-08-04 17:40:17 +08:00
chartData: {
2025-08-05 17:47:53 +08:00
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 25, interval: 5 },
seriesList: [
{
data: [0.9237, 0.14507, 0, 0, 0],
name: "分裂指数",
themeColor: "#2AB8FD"
},
{
data: [9.8011, 21.3123, 10.4338, 14.1912, 10.1523],
name: "合并指数",
themeColor: "#02D7DA"
},
{
data: [1.9057, 1.5123, 1.0338, 0.5912, 0.1523],
name: "收缩指数",
themeColor: "#FFDA09"
},
{
data: [15.1119, 6.5123, 10.6338, 9.5912, 4.1523],
name: "扩展指数",
themeColor: "#EB57B0"
}
]
},
2025-07-28 16:02:19 +08:00
chartsData: {
topSelfMedia: [
{
id: 1,
name: "分裂演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 1, interval: 0.2 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "分裂演化",
themeColor: "#2AB8FD",
2025-07-28 16:02:19 +08:00
data: [0.9237, 0.14507, 0, 0, 0]
}
]
}
},
{
id: 2,
name: "合并演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 25, interval: 5 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "合并演化",
themeColor: "#02D7DA",
2025-07-28 16:02:19 +08:00
data: [9.8011, 21.3123, 10.4338, 14.1912, 10.1523]
}
]
}
},
{
id: 3,
name: "收缩演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 2, interval: 0.5 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "收缩演化",
themeColor: "#FFDA09",
2025-07-28 16:02:19 +08:00
data: [1.9057, 1.5123, 1.0338, 0.5912, 0.1523]
}
]
}
},
{
id: 4,
name: "扩展演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 20, interval: 5 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "扩展演化",
themeColor: "#EB57B0",
2025-07-28 16:02:19 +08:00
data: [15.1119, 6.5123, 10.6338, 9.5912, 4.1523]
}
]
}
2025-08-04 13:54:33 +08:00
}
2025-07-28 16:02:19 +08:00
],
officalMedia: [
{
id: 1,
name: "分裂演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 1, interval: 0.2 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "分裂演化",
themeColor: "#2AB8FD",
2025-07-28 16:02:19 +08:00
data: [0.9237, 0.14507, 0, 0, 0]
}
]
}
},
{
id: 2,
name: "合并演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 25, interval: 5 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "合并演化",
themeColor: "#02D7DA",
2025-07-28 16:02:19 +08:00
data: [9.8011, 21.3123, 10.4338, 14.1912, 10.1523]
}
]
}
},
{
id: 3,
name: "收缩演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 2, interval: 0.5 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "收缩演化",
themeColor: "#FFDA09",
2025-07-28 16:02:19 +08:00
data: [1.9057, 1.5123, 1.0338, 0.5912, 0.1523]
}
]
}
},
{
id: 4,
name: "扩展演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 20, interval: 5 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "扩展演化",
themeColor: "#EB57B0",
2025-07-28 16:02:19 +08:00
data: [15.1119, 6.5123, 10.6338, 9.5912, 4.1523]
}
]
}
2025-08-04 13:54:33 +08:00
}
2025-07-28 16:02:19 +08:00
],
ordinaryMedia: [
{
id: 1,
name: "分裂演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 1, interval: 0.2 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "分裂演化",
themeColor: "#2AB8FD",
2025-07-28 16:02:19 +08:00
data: [0.9237, 0.14507, 0, 0, 0]
}
]
}
},
{
id: 2,
name: "合并演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 25, interval: 5 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "合并演化",
themeColor: "#02D7DA",
2025-07-28 16:02:19 +08:00
data: [9.8011, 21.3123, 10.4338, 14.1912, 10.1523]
}
]
}
},
{
id: 3,
name: "收缩演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 2, interval: 0.5 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "收缩演化",
themeColor: "#FFDA09",
2025-07-28 16:02:19 +08:00
data: [1.9057, 1.5123, 1.0338, 0.5912, 0.1523]
}
]
}
},
{
id: 4,
name: "扩展演化",
chart: {
xAxisData: ["07:57:46", "09:30:14", "09:57:32", "10:04:47", "10:12:57"],
yAxisRange: { min: 0, max: 20, interval: 5 },
seriesList: [
{
2025-08-05 15:20:20 +08:00
name: "扩展演化",
themeColor: "#EB57B0",
2025-07-28 16:02:19 +08:00
data: [15.1119, 6.5123, 10.6338, 9.5912, 4.1523]
}
]
}
2025-08-04 13:54:33 +08:00
}
2025-07-28 16:02:19 +08:00
]
},
2025-08-05 11:21:45 +08:00
posts: [
{
id: 1,
timestamp: "2024-01-04 0:03:16",
groupCategory: "群体一",
memberAddCount: 1
},
{
id: 2,
timestamp: "2024-02-03 12:58:53",
groupCategory: "群体二",
memberAddCount: 2
},
{
id: 3,
timestamp: "2024-02-22 17:13:44",
groupCategory: "群体三",
memberAddCount: 4
},
{
id: 4,
timestamp: "2024-02-23 17:54:46",
groupCategory: "群体一",
memberAddCount: 4
},
{
id: 5,
timestamp: "2024-03-14 09:58:12",
groupCategory: "群体三",
memberAddCount: 4
},
{
id: 6,
timestamp: "2024-03-23 21:20:40",
groupCategory: "群体二",
memberAddCount: 4
},
{
id: 7,
timestamp: "2024-03-23 21:42:36",
groupCategory: "群体一",
memberAddCount: 2
},
{
id: 8,
timestamp: "2024-04-06 18:17:30",
groupCategory: "群体二",
memberAddCount: 4
},
{
id: 9,
timestamp: "2024-04-06 19:19:50",
groupCategory: "群体一",
memberAddCount: 4
},
{
id: 10,
timestamp: "2024-05-16 00:22:18",
groupCategory: "群体二",
memberAddCount: 5
}
],
2025-07-28 16:02:19 +08:00
wordCloudData: [
{
text: "中国海警",
top: 115.5,
left: 200.5,
width: 150,
height: 40,
fontSize: 28,
opacity: 1
},
{ text: "渔民", top: 160.5, left: 69.5, width: 70, height: 35, fontSize: 20, opacity: 1 },
{
text: "缴获",
top: 72.5,
left: 132.5,
width: 60,
height: 22,
fontSize: 12,
opacity: 1
},
{
text: "菲律宾",
top: 171.5,
left: 200.5,
width: 81,
height: 22,
fontSize: 14,
opacity: 0.8
},
{ text: "枪支", top: 135.5, left: 42.5, width: 57, height: 24, fontSize: 16, opacity: 1 },
{
text: "装甲船",
top: 223.5,
left: 230.5,
width: 81,
height: 22,
fontSize: 14,
opacity: 0.8
},
{
text: "渔民吃瓜",
top: 200.5,
left: 38.5,
width: 73,
height: 19,
fontSize: 12,
opacity: 0.7
},
{
text: "执法",
top: 223.5,
left: 130.5,
width: 60,
height: 19,
fontSize: 12,
opacity: 0.7
},
{
text: "登检",
top: 200.5,
left: 143.5,
width: 60,
height: 19,
fontSize: 12,
opacity: 1
},
{ text: "蹲下", top: 176.5, left: 15.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
{ text: "解决", top: 87.5, left: 36.5, width: 53, height: 22, fontSize: 14, opacity: 1 },
{ text: "抱头", top: 103.5, left: 95.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
{ text: "包夹", top: 57.5, left: 72.5, width: 49, height: 19, fontSize: 12, opacity: 0.6 },
{ text: "吃瓜", top: 77.5, left: 264.5, width: 49, height: 19, fontSize: 12, opacity: 0.7 },
{ text: "手指", top: 195.5, left: 287.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 }
2025-08-04 13:54:33 +08:00
]
2025-07-28 16:02:19 +08:00
}),
2025-08-05 17:46:21 +08:00
actions: {
async initializeGroupList() {
const res = await getGroupMemberInfoList()
const groupList = res.data.map(item => ({
id: item.id,
type: item.type,
focusedTopic: item.focusedTopic,
value: item.value
}))
this.groupList = groupList
console.log("测试获取groupList:",res);
}
},
2025-07-28 16:02:19 +08:00
persist: false // 开启持久化
2025-08-04 13:54:33 +08:00
})
2025-07-28 16:02:19 +08:00
export const useAnomalousGroup = defineStore("anomalousGroup", {
state: () => ({
2025-08-05 17:46:21 +08:00
groupList: [
{
id:1,
type: "异常社团组一",
abnormalGroup: [
{
groupId: "G02",
nodeCount: 112,
postNum: 21
},
{
groupId: "G07",
nodeCount: 183,
postNum: 13
}
]
},
{
id:2,
type: "异常社团组二",
abnormalGroup: [
{
groupId: "G04",
nodeCount: 86,
postNum: 12
},
{
groupId: "G08",
nodeCount: 143,
postNum: 7
}
]
}
],
2025-07-28 16:02:19 +08:00
wordCloudData: [
{
text: "局座",
top: 115.5,
left: 220.5,
width: 80,
height: 40,
fontSize: 28,
opacity: 1
},
{ text: "折叠屏", top: 160.5, left: 69.5, width: 105, height: 35, fontSize: 20, opacity: 1 },
{
text: "蹬鼻子上脸",
top: 50.5,
left: 132.5,
width: 90,
height: 22,
fontSize: 12,
opacity: 1
},
{
text: "菲律宾",
top: 171.5,
left: 200.5,
width: 81,
height: 22,
fontSize: 14,
opacity: 0.8
},
2025-08-04 13:54:33 +08:00
{
text: "中国海警",
top: 120.5,
left: 30.5,
width: 100,
height: 24,
fontSize: 16,
opacity: 1
},
2025-07-28 16:02:19 +08:00
{
text: "船",
top: 223.5,
left: 230.5,
width: 50,
height: 22,
fontSize: 14,
opacity: 0.8
},
{
text: "斧头",
top: 200.5,
left: 38.5,
width: 40,
height: 19,
fontSize: 12,
opacity: 0.7
},
{
text: "执法",
top: 223.5,
left: 130.5,
width: 60,
height: 19,
fontSize: 12,
opacity: 0.7
},
{
text: "登检",
top: 200.5,
left: 143.5,
width: 60,
height: 19,
fontSize: 12,
opacity: 1
},
{ text: "蹲下", top: 176.5, left: 15.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
2025-08-04 13:54:33 +08:00
{ text: "邦邦邦邦", top: 87.5, left: 20.5, width: 106, height: 22, fontSize: 14, opacity: 1 }
2025-07-28 16:02:19 +08:00
/* { text: "", top: 103.5, left: 95.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
{ text: "包夹", top: 57.5, left: 72.5, width: 49, height: 19, fontSize: 12, opacity: 0.6 },
{ text: "吃瓜", top: 77.5, left: 264.5, width: 49, height: 19, fontSize: 12, opacity: 0.7 },
{ text: "手指", top: 195.5, left: 287.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 } */
],
abnormalContentList: [
{
id: 1,
// 评论人
commenter: {
userId: "1",
userName: "Trump-Good",
userAvatar: defaultAvatar
},
// 评论接收人
commentRecipient: {
userId: "2",
userName: "疾风中青劲草",
userAvatar: defaultAvatar
},
2025-08-04 13:54:33 +08:00
//
2025-07-28 16:02:19 +08:00
mutualCommentCount: 3,
// 评论内容
2025-08-04 13:54:33 +08:00
content:
"在我国海域偷运軍械彈藥是應該依法拘捕送交法院睿理判刑,而且在中国的裹服刑的!难道外国人特权?更何况是這千点小国!#中国海警首次登检菲律宾运补船只# #外交部回应中国海警缴获菲士兵枪支#",
2025-07-28 16:02:19 +08:00
// 点赞数
likeCount: "4.8w",
// 评论数
commentCount: 100,
// 转发数
shareCount: 6890
2025-08-04 17:40:17 +08:00
},
{
id: 2,
// 评论人
commenter: {
userId: "1",
userName: "Trump-Good",
userAvatar: defaultAvatar
},
// 评论接收人
commentRecipient: {
userId: "2",
userName: "疾风中青劲草",
userAvatar: defaultAvatar
},
2025-08-05 14:23:32 +08:00
//
2025-08-04 17:40:17 +08:00
mutualCommentCount: 3,
// 评论内容
2025-08-05 14:23:32 +08:00
content:
"在我国海域偷运軍械彈藥是應該依法拘捕送交法院睿理判刑,而且在中国的裹服刑的!难道外国人特权?更何况是這千点小国!#中国海警首次登检菲律宾运补船只# #外交部回应中国海警缴获菲士兵枪支#",
2025-08-04 17:40:17 +08:00
// 点赞数
likeCount: "4.8w",
// 评论数
commentCount: 100,
// 转发数
shareCount: 6890
2025-07-28 16:02:19 +08:00
}
2025-08-04 17:40:17 +08:00
],
chartData: {
xAxisData: ["t0", "t1", "t2", "t3", "t4", "t5", "t6"],
2025-08-05 14:23:32 +08:00
yAxisRange: { min: 0, max: 5, interval: 1 },
2025-08-04 17:40:17 +08:00
seriesList: [
{
name: "社团组一",
2025-08-05 15:20:20 +08:00
themeColor: "#2AB8FD",
2025-08-04 17:40:17 +08:00
data: [0, 5, 4, 3, 0, 5, 0]
},
{
name: "社团组二",
2025-08-05 15:20:20 +08:00
themeColor: "#02D7DA",
2025-08-05 14:23:32 +08:00
data: [3, 0, 1, 0, 3, 5, 0]
2025-08-04 17:40:17 +08:00
},
{
name: "社团组三",
2025-08-05 15:20:20 +08:00
themeColor: "#FFDA09",
2025-08-04 17:40:17 +08:00
data: [5, 0, 4, 0, 3, 0, 0]
}
]
},
posts: [
2025-08-05 11:21:45 +08:00
{
id: 1,
abnormalGroup: "G02与G07互动方式出现显著异常",
explanation: "持续异常行为已累积显著,疑似某组织突然发动“”信息攻击“或”舆论战“",
firstDiscoverTime: "2024.06.20",
2025-08-05 11:21:45 +08:00
duration: 6,
JS: 0.3,
CUSUM: 6.21,
KS: 0.02
},
{
id: 2,
abnormalGroup: "G02与G07互动方式出现显著异常",
firstDiscoverTime: "2024.06.23",
2025-08-05 11:21:45 +08:00
duration: 4,
explanation: "持续异常行为已累积显著,疑似某组织突然发动“”信息攻击“或”舆论战“",
JS: 0.41,
CUSUM: 5.0,
2025-08-05 11:21:45 +08:00
KS: 0.05
}
2025-08-05 11:21:45 +08:00
]
2025-07-28 16:02:19 +08:00
})
})