问题修改
This commit is contained in:
parent
e9dc37aaa8
commit
6d701f2b85
BIN
src/assets/anchorAvatar/boss.png
Normal file
BIN
src/assets/anchorAvatar/boss.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
|
|
@ -200,16 +200,20 @@ export const useGroupDiscoveryStore = defineStore("groupDiscovery", {
|
|||
if (res.code != 200) return
|
||||
let resultObj = {}
|
||||
const themeMap = {
|
||||
群体一: "#32b6fb",
|
||||
群体二: "#00d6da",
|
||||
群体三: "#fddc33"
|
||||
群体一: "#00d6da",
|
||||
群体二: "#fddc33",
|
||||
群体三: "#32b6fb"
|
||||
}
|
||||
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 })
|
||||
// 定义明确的群体顺序
|
||||
const groupOrder = ["群体一", "群体二", "群体三"]
|
||||
groupOrder.forEach(key => {
|
||||
if (res.data.data[key]) {
|
||||
resultObj["seriesList"].push({ name: key, themeColor: themeMap[key], data: res.data.data[key] })
|
||||
}
|
||||
})
|
||||
this.chartData = resultObj
|
||||
},
|
||||
|
|
@ -275,45 +279,52 @@ export const useGroupStructureStore = defineStore("groupStructure", {
|
|||
chartsData: {},
|
||||
wordCloudData: [
|
||||
{
|
||||
text: "佩洛西",
|
||||
text: "主权权益",
|
||||
top: 115.5,
|
||||
left: 215.5,
|
||||
width: 109,
|
||||
height: 40,
|
||||
fontSize: 28,
|
||||
width: 80,
|
||||
height: 22,
|
||||
fontSize: 13,
|
||||
opacity: 1
|
||||
},
|
||||
{ text: "中国", top: 183.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
|
||||
{
|
||||
text: "中国人民解放军",
|
||||
text: "局座预言",
|
||||
top: 80,
|
||||
left: 69.5,
|
||||
width: 73,
|
||||
height: 22,
|
||||
fontSize: 12,
|
||||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "吃瓜",
|
||||
top: 72.5,
|
||||
left: 132.5,
|
||||
width: 123,
|
||||
width: 50,
|
||||
height: 22,
|
||||
fontSize: 12,
|
||||
opacity: 1
|
||||
},
|
||||
{
|
||||
text: "中美关系",
|
||||
top: 171.5,
|
||||
text: "中国海警",
|
||||
top: 140,
|
||||
left: 212.5,
|
||||
width: 81,
|
||||
height: 22,
|
||||
fontSize: 14,
|
||||
width: 130,
|
||||
height: 40,
|
||||
fontSize: 22,
|
||||
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,
|
||||
text: "菲律宾",
|
||||
top: 150,
|
||||
left: 50,
|
||||
width: 81,
|
||||
height: 22,
|
||||
fontSize: 14,
|
||||
opacity: 0.8
|
||||
},
|
||||
{
|
||||
text: "坚决反对",
|
||||
text: "手指",
|
||||
top: 200.5,
|
||||
left: 38.5,
|
||||
width: 73,
|
||||
|
|
@ -322,29 +333,38 @@ export const useGroupStructureStore = defineStore("groupStructure", {
|
|||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "联合公报",
|
||||
top: 241.5,
|
||||
left: 130.5,
|
||||
text: "装甲船",
|
||||
top: 50,
|
||||
left: 160.5,
|
||||
width: 73,
|
||||
height: 19,
|
||||
fontSize: 12,
|
||||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "有力反制",
|
||||
text: "登检",
|
||||
top: 211.5,
|
||||
left: 143.5,
|
||||
width: 73,
|
||||
width: 50,
|
||||
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 }
|
||||
{ text: "执法", top: 176.5, left: 15.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
|
||||
{ text: "现场画面", top: 110, left: 26, width: 90, 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 },
|
||||
{
|
||||
text: "大刀长矛",
|
||||
top: 186,
|
||||
left: 200.5,
|
||||
width: 70,
|
||||
height: 19,
|
||||
fontSize: 12,
|
||||
opacity: 0.8
|
||||
}
|
||||
],
|
||||
posts: [
|
||||
{
|
||||
|
|
@ -584,7 +604,96 @@ export const useGroupMemberStore = defineStore("groupMember", {
|
|||
graph: {},
|
||||
chartData: {},
|
||||
chartsData: {},
|
||||
posts: []
|
||||
posts: [],
|
||||
wordCloudData: [
|
||||
{
|
||||
text: "主权权益",
|
||||
top: 115.5,
|
||||
left: 215.5,
|
||||
width: 80,
|
||||
height: 22,
|
||||
fontSize: 13,
|
||||
opacity: 1
|
||||
},
|
||||
{
|
||||
text: "局座预言",
|
||||
top: 80,
|
||||
left: 69.5,
|
||||
width: 73,
|
||||
height: 22,
|
||||
fontSize: 12,
|
||||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "吃瓜",
|
||||
top: 72.5,
|
||||
left: 132.5,
|
||||
width: 50,
|
||||
height: 22,
|
||||
fontSize: 12,
|
||||
opacity: 1
|
||||
},
|
||||
{
|
||||
text: "中国海警",
|
||||
top: 140,
|
||||
left: 212.5,
|
||||
width: 130,
|
||||
height: 40,
|
||||
fontSize: 22,
|
||||
opacity: 0.8
|
||||
},
|
||||
{
|
||||
text: "菲律宾",
|
||||
top: 150,
|
||||
left: 50,
|
||||
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: 50,
|
||||
left: 160.5,
|
||||
width: 73,
|
||||
height: 19,
|
||||
fontSize: 12,
|
||||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "登检",
|
||||
top: 211.5,
|
||||
left: 143.5,
|
||||
width: 50,
|
||||
height: 19,
|
||||
fontSize: 12,
|
||||
opacity: 1
|
||||
},
|
||||
{ text: "执法", top: 176.5, left: 15.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
|
||||
{ text: "现场画面", top: 110, left: 26, width: 90, 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 },
|
||||
{
|
||||
text: "大刀长矛",
|
||||
top: 186,
|
||||
left: 200.5,
|
||||
width: 70,
|
||||
height: 19,
|
||||
fontSize: 12,
|
||||
opacity: 0.8
|
||||
}
|
||||
],
|
||||
}),
|
||||
actions: {
|
||||
// 获取时间轴
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ import xinglangjunshi from "@/assets/anchorAvatar/xinlangjunshi.png"
|
|||
import huanqiushibao from "@/assets/anchorAvatar/huanqiushibao.png"
|
||||
import jiangxiayunfei from "@/assets/anchorAvatar/jiangxiayunfei.png"
|
||||
import tangning from "@/assets/anchorAvatar/tangning20150903.png"
|
||||
import boss from "@/assets/anchorAvatar/boss.png"
|
||||
import lezhi from "@/assets/anchorAvatar/lezhi567.png"
|
||||
import daxiaaaa from "@/assets/anchorAvatar/daxiaaaaa.png"
|
||||
import jizhetuan from "@/assets/anchorAvatar/jiangxiayunfei.png"
|
||||
|
|
@ -337,7 +338,7 @@ export const useKeyNodeRecognitionStore = defineStore("keyNodeRecognition", {
|
|||
anchorChartInfoList: [
|
||||
{ id: 1, name: "锚点数量", icon: anchorNumber, number: 20 },
|
||||
{ id: 2, name: "平均粉丝数量", icon: fancyNumber, number: "812.8w" },
|
||||
{ id: 3, name: "平均发帖频率", icon: frequencyNumber, number: "20h/1次" },
|
||||
{ id: 3, name: "平均发帖频率", icon: frequencyNumber, number: "20h/次" },
|
||||
{ id: 4, name: "平均参与互动次数", icon: interactionNumber, number: 157 }
|
||||
],
|
||||
|
||||
|
|
@ -1082,7 +1083,7 @@ export const useKeyNodeRecognitionStore = defineStore("keyNodeRecognition", {
|
|||
commenter: " 外贸发布BBS",
|
||||
comment:
|
||||
"#菲自曝被中国海警缴枪的是顶级特种部队# 菲律宾特种部队就这?怪不得现在菲律宾网友各种找补洗白 ",
|
||||
time: "盖世英雄玉椒龙"
|
||||
time: "2024-06-23 15:20:55"
|
||||
},
|
||||
{
|
||||
avatar: xinlangImg,
|
||||
|
|
@ -1608,7 +1609,7 @@ export const useKeyNodeRecognitionStore = defineStore("keyNodeRecognition", {
|
|||
]
|
||||
},
|
||||
钻石狗Boss: {
|
||||
avatar: tangning,
|
||||
avatar: boss,
|
||||
earlistTime: "2024-03-16 17:10:41",
|
||||
postTotal: 0,
|
||||
postTransmitedTotal: 0,
|
||||
|
|
|
|||
|
|
@ -74,45 +74,45 @@ export const useCharacterInteractionStore = defineStore("characterInteraction",
|
|||
],
|
||||
wordCloudData: [
|
||||
{
|
||||
text: "佩洛西",
|
||||
top: 115.5,
|
||||
text: "賴清德",
|
||||
top: 100.5,
|
||||
left: 215.5,
|
||||
width: 109,
|
||||
width: 120,
|
||||
height: 40,
|
||||
fontSize: 28,
|
||||
opacity: 1
|
||||
},
|
||||
{ text: "中国", top: 183.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
|
||||
{ text: "總統", top: 150.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
|
||||
{
|
||||
text: "中国人民解放军",
|
||||
text: "民進",
|
||||
top: 72.5,
|
||||
left: 132.5,
|
||||
width: 123,
|
||||
width: 55,
|
||||
height: 22,
|
||||
fontSize: 12,
|
||||
opacity: 1
|
||||
},
|
||||
{
|
||||
text: "中美关系",
|
||||
top: 171.5,
|
||||
text: "中华民國",
|
||||
top: 150.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: 120.5, left: 30.5, width: 57, height: 24, fontSize: 16, opacity: 1 },
|
||||
{
|
||||
text: "台海和平",
|
||||
top: 228.5,
|
||||
left: 230.5,
|
||||
width: 81,
|
||||
text: "英文",
|
||||
top: 200.5,
|
||||
left: 250.5,
|
||||
width: 55,
|
||||
height: 22,
|
||||
fontSize: 14,
|
||||
opacity: 0.8
|
||||
},
|
||||
{
|
||||
text: "坚决反对",
|
||||
text: "就職典禮",
|
||||
top: 200.5,
|
||||
left: 38.5,
|
||||
width: 73,
|
||||
|
|
@ -121,29 +121,29 @@ export const useCharacterInteractionStore = defineStore("characterInteraction",
|
|||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "联合公报",
|
||||
top: 241.5,
|
||||
left: 130.5,
|
||||
text: "中國",
|
||||
top: 220.5,
|
||||
left: 120.5,
|
||||
width: 73,
|
||||
height: 19,
|
||||
fontSize: 12,
|
||||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "有力反制",
|
||||
top: 211.5,
|
||||
left: 143.5,
|
||||
width: 73,
|
||||
text: "萧美琴",
|
||||
top: 190.5,
|
||||
left: 160.5,
|
||||
width: 70,
|
||||
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 }
|
||||
{ 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: 60.5, left: 265.5, width: 49, height: 19, fontSize: 12, opacity: 0.7 },
|
||||
{ text: "两岸", top: 170.5, left: 287.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 }
|
||||
],
|
||||
|
||||
statisticsList: [
|
||||
|
|
@ -345,45 +345,45 @@ export const useSocialGroupsStore = defineStore("socialGroups", {
|
|||
],
|
||||
wordCloudData: [
|
||||
{
|
||||
text: "佩洛西",
|
||||
top: 115.5,
|
||||
text: "賴清德",
|
||||
top: 100.5,
|
||||
left: 215.5,
|
||||
width: 109,
|
||||
width: 120,
|
||||
height: 40,
|
||||
fontSize: 28,
|
||||
opacity: 1
|
||||
},
|
||||
{ text: "中国", top: 183.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
|
||||
{ text: "總統", top: 150.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
|
||||
{
|
||||
text: "中国人民解放军",
|
||||
text: "民進",
|
||||
top: 72.5,
|
||||
left: 132.5,
|
||||
width: 123,
|
||||
width: 55,
|
||||
height: 22,
|
||||
fontSize: 12,
|
||||
opacity: 1
|
||||
},
|
||||
{
|
||||
text: "中美关系",
|
||||
top: 171.5,
|
||||
text: "中华民國",
|
||||
top: 150.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: 120.5, left: 30.5, width: 57, height: 24, fontSize: 16, opacity: 1 },
|
||||
{
|
||||
text: "台海和平",
|
||||
top: 228.5,
|
||||
left: 230.5,
|
||||
width: 81,
|
||||
text: "英文",
|
||||
top: 200.5,
|
||||
left: 250.5,
|
||||
width: 55,
|
||||
height: 22,
|
||||
fontSize: 14,
|
||||
opacity: 0.8
|
||||
},
|
||||
{
|
||||
text: "坚决反对",
|
||||
text: "就職典禮",
|
||||
top: 200.5,
|
||||
left: 38.5,
|
||||
width: 73,
|
||||
|
|
@ -392,30 +392,30 @@ export const useSocialGroupsStore = defineStore("socialGroups", {
|
|||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "联合公报",
|
||||
top: 241.5,
|
||||
left: 130.5,
|
||||
text: "中國",
|
||||
top: 220.5,
|
||||
left: 120.5,
|
||||
width: 73,
|
||||
height: 19,
|
||||
fontSize: 12,
|
||||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "有力反制",
|
||||
top: 211.5,
|
||||
left: 143.5,
|
||||
width: 73,
|
||||
text: "萧美琴",
|
||||
top: 190.5,
|
||||
left: 160.5,
|
||||
width: 70,
|
||||
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 }
|
||||
]
|
||||
{ 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: 60.5, left: 265.5, width: 49, height: 19, fontSize: 12, opacity: 0.7 },
|
||||
{ text: "两岸", top: 170.5, left: 287.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 }
|
||||
],
|
||||
}),
|
||||
actions: {
|
||||
// 互动行为相似列表数据
|
||||
|
|
@ -557,45 +557,45 @@ export const useCharacterHiddenStore = defineStore("characterHidden", {
|
|||
],
|
||||
wordCloudData: [
|
||||
{
|
||||
text: "佩洛西",
|
||||
top: 115.5,
|
||||
text: "賴清德",
|
||||
top: 100.5,
|
||||
left: 215.5,
|
||||
width: 109,
|
||||
width: 120,
|
||||
height: 40,
|
||||
fontSize: 28,
|
||||
opacity: 1
|
||||
},
|
||||
{ text: "中国", top: 183.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
|
||||
{ text: "總統", top: 150.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
|
||||
{
|
||||
text: "中国人民解放军",
|
||||
text: "民進",
|
||||
top: 72.5,
|
||||
left: 132.5,
|
||||
width: 123,
|
||||
width: 55,
|
||||
height: 22,
|
||||
fontSize: 12,
|
||||
opacity: 1
|
||||
},
|
||||
{
|
||||
text: "中美关系",
|
||||
top: 171.5,
|
||||
text: "中华民國",
|
||||
top: 150.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: 120.5, left: 30.5, width: 57, height: 24, fontSize: 16, opacity: 1 },
|
||||
{
|
||||
text: "台海和平",
|
||||
top: 228.5,
|
||||
left: 230.5,
|
||||
width: 81,
|
||||
text: "英文",
|
||||
top: 200.5,
|
||||
left: 250.5,
|
||||
width: 55,
|
||||
height: 22,
|
||||
fontSize: 14,
|
||||
opacity: 0.8
|
||||
},
|
||||
{
|
||||
text: "坚决反对",
|
||||
text: "就職典禮",
|
||||
top: 200.5,
|
||||
left: 38.5,
|
||||
width: 73,
|
||||
|
|
@ -604,29 +604,29 @@ export const useCharacterHiddenStore = defineStore("characterHidden", {
|
|||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "联合公报",
|
||||
top: 241.5,
|
||||
left: 130.5,
|
||||
text: "中國",
|
||||
top: 220.5,
|
||||
left: 120.5,
|
||||
width: 73,
|
||||
height: 19,
|
||||
fontSize: 12,
|
||||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "有力反制",
|
||||
top: 211.5,
|
||||
left: 143.5,
|
||||
width: 73,
|
||||
text: "萧美琴",
|
||||
top: 190.5,
|
||||
left: 160.5,
|
||||
width: 70,
|
||||
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 }
|
||||
{ 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: 60.5, left: 265.5, width: 49, height: 19, fontSize: 12, opacity: 0.7 },
|
||||
{ text: "两岸", top: 170.5, left: 287.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 }
|
||||
],
|
||||
statisticsDetailList: [
|
||||
{ id: 1, icon: nodePrefix, name: "节点数", key: "nodesCount" },
|
||||
|
|
|
|||
|
|
@ -135,9 +135,9 @@ const initChart = () => {
|
|||
extraCssText: "box-shadow:none;padding:0;",
|
||||
formatter: function (params) {
|
||||
let color = {
|
||||
群体一: "#33b6fb",
|
||||
群体二: "#00d6da",
|
||||
群体三: "#fddc33"
|
||||
群体一: "#00d6da",
|
||||
群体二: "#fddc33",
|
||||
群体三: "#32b6fb"
|
||||
}
|
||||
if (props.moduleName == "群体成员演化分析") {
|
||||
color = {
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@
|
|||
import { onMounted } from "vue"
|
||||
import * as echarts from "echarts"
|
||||
const chartTitleList = [
|
||||
{ id: 1, name: "头部自媒体 增量速率" },
|
||||
{ id: 2, name: "官方媒体 增量速率" },
|
||||
{ id: 3, name: "普通自媒体 增量速率" }
|
||||
{ id: 1, name: "群体一 增量速率" },
|
||||
{ id: 2, name: "群体二 增量速率" },
|
||||
{ id: 3, name: "群体三 增量速率" }
|
||||
]
|
||||
let chartInstance1 = null
|
||||
let chartInstance2 = null
|
||||
|
|
@ -39,9 +39,9 @@ const props = defineProps({
|
|||
|
||||
const optionHandle = ({ xAxis, yAxis, data }, flag) => {
|
||||
const lineColors = {
|
||||
"头部自媒体 增量速率": "#2AB8FD",
|
||||
"官方媒体 增量速率": "#01D7DA",
|
||||
"普通自媒体 增量速率": "#FFDA09"
|
||||
"群体一 增量速率": "#01D7DA",
|
||||
"群体二 增量速率": "#FFDA09",
|
||||
"群体三 增量速率": "#2AB8FD"
|
||||
}
|
||||
return {
|
||||
tooltip: {
|
||||
|
|
@ -116,9 +116,9 @@ const initCharts = () => {
|
|||
chartInstance1 = echarts.init(document.getElementById("container1"))
|
||||
chartInstance2 = echarts.init(document.getElementById("container2"))
|
||||
chartInstance3 = echarts.init(document.getElementById("container3"))
|
||||
chartInstance1.setOption(optionHandle(props.chartsData.topSelfMedia, "头部自媒体 增量速率"))
|
||||
chartInstance2.setOption(optionHandle(props.chartsData.officialMedia, "官方媒体 增量速率"))
|
||||
chartInstance3.setOption(optionHandle(props.chartsData.ordinaryMedia, "普通自媒体 增量速率"))
|
||||
chartInstance1.setOption(optionHandle(props.chartsData.topSelfMedia, "群体一 增量速率"))
|
||||
chartInstance2.setOption(optionHandle(props.chartsData.officialMedia, "群体二 增量速率"))
|
||||
chartInstance3.setOption(optionHandle(props.chartsData.ordinaryMedia, "群体三 增量速率"))
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
|
|
|
|||
|
|
@ -76,16 +76,18 @@ const initTopicChart = () => {
|
|||
bottom: "1%",
|
||||
containLabel: true
|
||||
},
|
||||
toolbox: {
|
||||
feature: {
|
||||
saveAsImage: {}
|
||||
}
|
||||
},
|
||||
// toolbox: {
|
||||
// feature: {
|
||||
// saveAsImage: {}
|
||||
// }
|
||||
// },
|
||||
xAxis: {
|
||||
type: "category",
|
||||
boundaryGap: true, //坐标轴两边留白
|
||||
data: ["6.25", "6.26", "6.27", "6.28", "6.29", "6.30", "7.1", "7.2"],
|
||||
name: "日期",
|
||||
nameLocation: "end",
|
||||
nameGap: 10,
|
||||
nameTextStyle: {
|
||||
color: "#606266",
|
||||
fontSize: 12
|
||||
|
|
|
|||
|
|
@ -23,6 +23,17 @@ const emit = defineEmits(["click:openDialog", "click:goback"])
|
|||
const detailContainer = ref(null)
|
||||
const currentSelectedCommunity = ref({})
|
||||
let chart = null
|
||||
// 政府官号
|
||||
const officeList = ["峨眉公安","平安马边","东坡公安","淮安清江浦法院","抚州消防","游仙公安",
|
||||
"甘泉检察","平安会东","淮安市公安局淮阴分局","南铁福州车务段","太白检察",
|
||||
"任丘司法行政","万源警事","澄城检察","国台办发布","海洋装备与公务船资讯",
|
||||
"团陵水县委","滕州司法行政在线","陇南徽县总工会","南部战区","中国海警","奉贤反邪"]
|
||||
// 新闻媒体列表
|
||||
const newList = ["大象观点","大象新闻","湖北日报","热点锐评","合肥晚报","北京广播电视台","环球收视",
|
||||
"沧州微播报","中华文化传媒","玉渊谭天","人民网","空警世界","海峡之声","中国军号",
|
||||
"新浪军事","解放军报","人民日报","中国妇女报","央视新闻","成都新事儿","中国警方在线",
|
||||
"环视频","四川观察","齐鲁晚报","生命时报","中国新闻网","南海之声","每日信报","环球网",
|
||||
"大国外交最前线","环球时报"]
|
||||
|
||||
// 根据节点数量计算缩放比例
|
||||
const calculateInitialZoom = (nodes) => {
|
||||
|
|
@ -38,6 +49,17 @@ const initChart = async () => {
|
|||
currentSelectedCommunity.value = props.communityNode
|
||||
|
||||
chart = echarts.init(document.getElementById("container"))
|
||||
|
||||
//
|
||||
const nodeLabel = (node) => {
|
||||
if (officeList.includes(node.nodeName)) {
|
||||
return "政府官号"
|
||||
}
|
||||
if (newList.includes(node.nodeName)) {
|
||||
return "新闻媒体"
|
||||
}
|
||||
return "普通自媒体"
|
||||
}
|
||||
//处理节点
|
||||
//从锚点邻居数据集中查找出该锚点所有的邻居节点
|
||||
let nodes = []
|
||||
|
|
@ -56,36 +78,37 @@ const initChart = async () => {
|
|||
.map((filteredList) => ({
|
||||
...extraInfo[filteredList[0]],
|
||||
anchor: filteredList[0],
|
||||
neighbors: filteredList[1].map((neighNode) => ({ name: neighNode, avatar: "" }))
|
||||
neighbors: filteredList[1].map((neighNode) => ({ id: neighNode ,nodeName: neighNode, avatar: "" }))
|
||||
|
||||
}))
|
||||
|
||||
//处理连线
|
||||
let links = []
|
||||
filterResult.forEach(({ anchor, neighbors }) => {
|
||||
;(neighbors ?? []).forEach((neigh) => {
|
||||
links.push({ source: anchor, target: neigh.name })
|
||||
links.push({ source: anchor, target: neigh.id })
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
// 合并所有锚点和邻居节点到一个数组并去重
|
||||
let nodeSet = new Set()
|
||||
filterResult.forEach((item) => {
|
||||
//添加锚点自己
|
||||
if (!nodeSet.has(item.anchor)) {
|
||||
nodes.push({ name: item?.anchor, value: item?.anchor, category: 1, ...item })
|
||||
nodes.push({ id: item?.anchor, nodeName: item?.anchor, value: item?.anchor, category: 1, ...item })
|
||||
nodeSet.add(item?.anchor)
|
||||
}
|
||||
//添加该锚点的邻居
|
||||
;(item.neighbors || []).forEach((n) => {
|
||||
if (!nodeSet.has(n?.name)) {
|
||||
nodes.push({ name: n.name, value: n.name, category: 0, avatar: n.avatar ?? "" })
|
||||
nodeSet.add(n.name)
|
||||
if (!nodeSet.has(n?.nodeName)) {
|
||||
nodes.push({ id: n.id, nodeName: n.nodeName, value: n.nodeName, category: 0, avatar: n.avatar ?? "", label: nodeLabel(n) })
|
||||
nodeSet.add(n.nodeName)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
const data = { nodes, links }
|
||||
console.log(data)
|
||||
|
||||
const categories = [
|
||||
{ name: "邻居账号", category: 0 },
|
||||
|
|
@ -160,7 +183,7 @@ const initChart = async () => {
|
|||
>
|
||||
<div>
|
||||
<div style="color: #fff; letter-spacing: 0.14px; display: flex; align-items: center">
|
||||
<div style="font-size: 16px">${params.data.name}</div>
|
||||
<div style="font-size: 16px">${params.data.nodeName}</div>
|
||||
<div
|
||||
style="
|
||||
margin-left: 10px;
|
||||
|
|
@ -197,7 +220,7 @@ const initChart = async () => {
|
|||
>
|
||||
<div>
|
||||
<div style="color: #fff; letter-spacing: 0.14px; display: flex; align-items: center">
|
||||
<div style="font-size: 16px">${params.data.name}</div>
|
||||
<div style="font-size: 16px">${params.data.nodeName}</div>
|
||||
<div
|
||||
style="
|
||||
margin-left: 10px;
|
||||
|
|
@ -207,7 +230,7 @@ const initChart = async () => {
|
|||
font-size: 12px;
|
||||
"
|
||||
>
|
||||
普通自媒体
|
||||
${params.data.label}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -35,6 +35,13 @@ const props = defineProps({
|
|||
}
|
||||
})
|
||||
|
||||
const sortAnchorMonitorListByTime = (anchorMonitorList) => {
|
||||
return anchorMonitorList.sort((a, b) => {
|
||||
// 将时间字符串转换为时间戳进行比较
|
||||
return new Date(a.time.trim()) - new Date(b.time.trim());
|
||||
})
|
||||
}
|
||||
props.anchorMonitorList = sortAnchorMonitorListByTime(props.anchorMonitorList)
|
||||
const startAutoScroll = () => {
|
||||
if (!monitorListRef.value) return
|
||||
scrollTimer = setInterval(() => {
|
||||
|
|
|
|||
|
|
@ -93,8 +93,21 @@ const updateChart = () => {
|
|||
],
|
||||
tooltip: {
|
||||
trigger: "item",
|
||||
formatter: "{a} <br/>{b}: {c}% ({d}%)"
|
||||
formatter: "{a} <br/>{b}: {c}%"
|
||||
},
|
||||
// tooltip: {
|
||||
// trigger: "item",
|
||||
// formatter: function(params) {
|
||||
// console.log(params)
|
||||
// // // 计算总值
|
||||
// const total = chartData.reduce((sum, item) => sum + item.value, 0)
|
||||
// // // 计算百分比
|
||||
// const item = chartData.find((item) => item.name === params.name)
|
||||
// const percentage = total > 0 ? ((item.value / total) * 100).toFixed(1) + "%" : "0%"
|
||||
// return `行为模式发布<br/>
|
||||
// ${params.data.name}: ${percentage}(${params.data.value}次)`
|
||||
// }
|
||||
// },
|
||||
legend: {
|
||||
orient: "vertical", // 垂直排列
|
||||
top: "center", // 垂直居中
|
||||
|
|
|
|||
|
|
@ -354,7 +354,7 @@ const renderHotChart = () => {
|
|||
itemStyle: { color: "#4AC6FF", borderColor: "#fff", borderWidth: 2 },
|
||||
lineStyle: { color: "#4AC6FF", width: 2 },
|
||||
areaStyle: { color: "rgba(74,198,255,0.15)" },
|
||||
label: { show: true, position: "top", color: "#4AC6FF", fontSize: 12 },
|
||||
label: { show: true, position: "bottom", color: "#4AC6FF", fontSize: 12 },
|
||||
padding: [0, 0, 0, 30]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -42,7 +42,8 @@
|
|||
</svg>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
<img src="@/assets/images/chuanboGraphTitle.png" alt="" />
|
||||
<img src="@/assets/images/chuanboGraphTitle.png" class="graph-img-title" alt="" />
|
||||
|
||||
<div class="chart-container">
|
||||
<DynamicGraph
|
||||
ref="leaderGraphRef"
|
||||
|
|
@ -206,7 +207,8 @@ const trackStyle = computed(() => {
|
|||
defineExpose({ highlightNode });
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="less">
|
||||
|
||||
.right-panel {
|
||||
flex-grow: 1;
|
||||
position: relative;
|
||||
|
|
@ -232,8 +234,14 @@ defineExpose({ highlightNode });
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
padding: 15px 20px;
|
||||
padding: 0px 20px;
|
||||
box-sizing: border-box;
|
||||
.graph-img-title {
|
||||
display: absolute;
|
||||
top: 0;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
}
|
||||
.chart-container {
|
||||
flex-grow: 1;
|
||||
|
|
@ -246,7 +254,7 @@ defineExpose({ highlightNode });
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0 10px;
|
||||
padding: 0px 10px;
|
||||
box-sizing: border-box;
|
||||
background-color: rgba(4, 67, 92, 0.6);
|
||||
border-radius: 5px;
|
||||
|
|
|
|||
|
|
@ -42,7 +42,8 @@
|
|||
</svg>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
<img src="@/assets/images/peiluoxi.png" alt="" />
|
||||
<img src="@/assets/images/peiluoxi.png" class="graph-img-title" alt="" />
|
||||
|
||||
<div class="chart-container">
|
||||
<DynamicGraph
|
||||
ref="leaderGraphRef"
|
||||
|
|
@ -183,7 +184,7 @@ const trackStyle = computed(() => {
|
|||
defineExpose({ highlightNode });
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="less">
|
||||
.right-panel {
|
||||
flex-grow: 1;
|
||||
position: relative;
|
||||
|
|
@ -209,8 +210,13 @@ defineExpose({ highlightNode });
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
padding: 15px 20px;
|
||||
padding: 0px 20px;
|
||||
box-sizing: border-box;
|
||||
.graph-img-title {
|
||||
display: absolute;
|
||||
top: 0;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
.chart-container {
|
||||
flex-grow: 1;
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ const analysisChartData = ref([
|
|||
|
||||
const wordCloudData = ref([
|
||||
{
|
||||
text: "佩洛西",
|
||||
text: "Pelosi",
|
||||
top: 115.5,
|
||||
left: 215.5,
|
||||
width: 109,
|
||||
|
|
@ -148,10 +148,10 @@ const wordCloudData = ref([
|
|||
fontSize: 28,
|
||||
opacity: 1
|
||||
},
|
||||
{ text: "中国", top: 183.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
|
||||
{ text: "China", top: 183.5, left: 69.5, width: 73, height: 35, fontSize: 22, opacity: 1 },
|
||||
{
|
||||
text: "中国人民解放军",
|
||||
top: 72.5,
|
||||
top: 60.5,
|
||||
left: 132.5,
|
||||
width: 123,
|
||||
height: 22,
|
||||
|
|
@ -167,11 +167,11 @@ const wordCloudData = ref([
|
|||
fontSize: 14,
|
||||
opacity: 0.8
|
||||
},
|
||||
{ text: "台独", top: 135.5, left: 42.5, width: 57, height: 24, fontSize: 16, opacity: 1 },
|
||||
{ text: "台独", top: 120.5, left: 35.5, width: 57, height: 24, fontSize: 16, opacity: 1 },
|
||||
{
|
||||
text: "台海和平",
|
||||
top: 228.5,
|
||||
left: 230.5,
|
||||
left: 260.5,
|
||||
width: 81,
|
||||
height: 22,
|
||||
fontSize: 14,
|
||||
|
|
@ -179,7 +179,7 @@ const wordCloudData = ref([
|
|||
},
|
||||
{
|
||||
text: "坚决反对",
|
||||
top: 233.5,
|
||||
top: 225.5,
|
||||
left: 38.5,
|
||||
width: 73,
|
||||
height: 19,
|
||||
|
|
@ -187,9 +187,9 @@ const wordCloudData = ref([
|
|||
opacity: 0.7
|
||||
},
|
||||
{
|
||||
text: "联合公报",
|
||||
top: 241.5,
|
||||
left: 130.5,
|
||||
text: "Joint Communique",
|
||||
top: 230.5,
|
||||
left: 120.5,
|
||||
width: 73,
|
||||
height: 19,
|
||||
fontSize: 12,
|
||||
|
|
@ -197,19 +197,19 @@ const wordCloudData = ref([
|
|||
},
|
||||
{
|
||||
text: "有力反制",
|
||||
top: 211.5,
|
||||
left: 143.5,
|
||||
top: 200.5,
|
||||
left: 180.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 }
|
||||
{ text: "White House", top: 160.5, left: 15.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
|
||||
{ text: "Internal Affairs", top: 80.5, left: 30.5, width: 53, height: 22, fontSize: 14, opacity: 1 },
|
||||
{ text: "访台", top: 110.5, left: 95.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 },
|
||||
{ text: "Territory", top: 40.5, left: 72.5, width: 49, height: 19, fontSize: 12, opacity: 0.6 },
|
||||
{ text: "Principle", top: 77.5, left: 264.5, width: 49, height: 19, fontSize: 12, opacity: 0.7 },
|
||||
{ text: "Taiwan", top: 195.5, left: 287.5, width: 49, height: 19, fontSize: 12, opacity: 0.8 }
|
||||
])
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -244,7 +244,6 @@ onBeforeUnmount(() => {
|
|||
rgba(6, 143, 220, 0.51) 92%,
|
||||
rgba(0, 151, 225, 0.6) 100%
|
||||
);
|
||||
border: 1px solid transparent;
|
||||
border-image-source: linear-gradient(
|
||||
135deg,
|
||||
rgba(63, 169, 245, 0) 0%,
|
||||
|
|
|
|||
|
|
@ -244,7 +244,6 @@ onBeforeUnmount(() => {
|
|||
rgba(6, 143, 220, 0.51) 92%,
|
||||
rgba(0, 151, 225, 0.6) 100%
|
||||
);
|
||||
border: 1px solid transparent;
|
||||
border-image-source: linear-gradient(
|
||||
135deg,
|
||||
rgba(63, 169, 245, 0) 0%,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user