Skip to content
This repository was archived by the owner on Mar 25, 2025. It is now read-only.

Commit 0ca245d

Browse files
authored
Merge pull request #298 from aoliaoaoaojiao/main
【fix】修复刷新数据导致的zoom比例丢失问题
2 parents 284edcf + a4274ec commit 0ca245d

File tree

1 file changed

+102
-28
lines changed

1 file changed

+102
-28
lines changed

src/components/AndroidPerfChart.vue

Lines changed: 102 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,16 @@ const props = defineProps({
5656
procThread: Array,
5757
});
5858
59+
function getTimeStr(timestamp) {
60+
const now = new Date(timestamp);
61+
const hour = now.getHours().toString().padStart(2, '0');
62+
const minute = now.getMinutes().toString().padStart(2, '0');
63+
const second = now.getSeconds().toString().padStart(2, '0');
64+
return `${hour}:${minute}:${second}`;
65+
}
66+
67+
let signZoomStart = 30;
68+
let signZoomEnd = 100;
5969
const printSingleCpu = () => {
6070
let chart = echarts.getInstanceByDom(
6171
document.getElementById(
@@ -107,14 +117,18 @@ const printSingleCpu = () => {
107117
{
108118
show: true,
109119
realtime: true,
110-
start: 30,
111-
end: 100,
120+
start: signZoomStart,
121+
end: signZoomEnd,
112122
xAxisIndex: [0, 1],
113123
},
114124
],
115125
yAxis: [{name: `${$t('perf.singleCpu')}(%)`, min: 0}],
116126
series: sysCpuData.SingleCpuData,
117127
};
128+
chart.on('dataZoom', (event) => {
129+
signZoomEnd = event.end
130+
signZoomStart = event.start
131+
})
118132
chart.setOption(option);
119133
};
120134
@@ -124,10 +138,12 @@ let sysCpuData = {
124138
CpuDataLegend: [],
125139
SingleCpuData: [],
126140
SingleCpuDataLegend: [],
141+
zoomStart:30,
142+
zoomEnd:100,
127143
}
128144
129145
const pushSysCpuData = (obj) => {
130-
sysCpuData.xAxisData.push(new Date(obj.cpu.timeStamp))
146+
sysCpuData.xAxisData.push(getTimeStr(obj.cpu.timeStamp))
131147
if (obj.cpu) {
132148
for (const i in obj.cpu) {
133149
if (i !== 'timeStamp') {
@@ -217,14 +233,18 @@ const printCpu = () => {
217233
{
218234
show: true,
219235
realtime: true,
220-
start: 30,
221-
end: 100,
236+
start: sysCpuData.zoomStart,
237+
end: sysCpuData.zoomEnd,
222238
xAxisIndex: [0, 1],
223239
},
224240
],
225241
yAxis: [{name: `${$t('perf.totalCpu')}(%)`, min: 0}],
226242
series: sysCpuData.seriesData,
227243
};
244+
chart.on('dataZoom', (event) => {
245+
sysCpuData.zoomEnd = event.end
246+
sysCpuData.zoomStart = event.start
247+
})
228248
chart.setOption(option);
229249
};
230250
@@ -236,10 +256,12 @@ let sysMemData = {
236256
memTotal: [],
237257
swapFree: [],
238258
swapTotal: [],
259+
zoomStart:30,
260+
zoomEnd:100,
239261
}
240262
241263
const pushSysMemData = (obj) => {
242-
sysMemData.xAxisData.push(new Date(obj.timeStamp))
264+
sysMemData.xAxisData.push(getTimeStr(obj.timeStamp))
243265
sysMemData.memBuffersData.push(obj.memBuffers)
244266
sysMemData.memCached.push(obj.memCached)
245267
sysMemData.memCached.push(obj.memFree)
@@ -273,6 +295,12 @@ const printMem = () => {
273295
},
274296
tooltip: {
275297
trigger: 'axis',
298+
position(pos, params, dom, rect, size) {
299+
const obj = {top: 60};
300+
obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 5;
301+
return obj;
302+
},
303+
valueFormatter: (value) => `${value}`,
276304
},
277305
grid: {top: '30%', left: '20%'},
278306
toolbox: {
@@ -300,8 +328,8 @@ const printMem = () => {
300328
{
301329
show: true,
302330
realtime: true,
303-
start: 30,
304-
end: 100,
331+
start: sysMemData.zoomStart,
332+
end: sysMemData.zoomEnd,
305333
xAxisIndex: [0, 1],
306334
},
307335
],
@@ -351,15 +379,21 @@ const printMem = () => {
351379
},
352380
],
353381
};
382+
chart.on('dataZoom', (event) => {
383+
sysMemData.zoomEnd = event.end
384+
sysMemData.zoomStart = event.start
385+
})
354386
chart.setOption(option);
355387
};
356388
357389
let procFPSData = {
358390
xAxisData: [],
359-
seriesData: []
391+
seriesData: [],
392+
zoomStart:30,
393+
zoomEnd:100,
360394
}
361395
const pushProcFPSData = (obj) => {
362-
procFPSData.xAxisData.push(new Date(obj.timeStamp))
396+
procFPSData.xAxisData.push(getTimeStr(obj.timeStamp))
363397
procFPSData.seriesData.push(obj.fps)
364398
}
365399
const printProcFps = () => {
@@ -402,8 +436,8 @@ const printProcFps = () => {
402436
{
403437
show: true,
404438
realtime: true,
405-
start: 30,
406-
end: 100,
439+
start: procFPSData.zoomStart,
440+
end: procFPSData.zoomEnd,
407441
xAxisIndex: [0, 1],
408442
},
409443
],
@@ -416,18 +450,26 @@ const printProcFps = () => {
416450
},
417451
],
418452
};
453+
chart.on('dataZoom', (event) => {
454+
procFPSData.zoomEnd = event.end
455+
procFPSData.zoomStart = event.start
456+
})
419457
chart.setOption(option);
420458
};
421459
422460
let procThreadData = {
423461
xAxisData: [],
424-
seriesData: []
462+
seriesData: [],
463+
zoomStart:30,
464+
zoomEnd:100,
425465
}
426466
const pushProcThreadData = (obj) => {
427467
console.log(obj)
428-
procThreadData.xAxisData.push(new Date(obj.timestamp))
468+
procThreadData.xAxisData.push(getTimeStr(obj.timeStamp))
429469
procThreadData.seriesData.push(obj.threadCount)
430470
}
471+
472+
431473
const printProcThread = () => {
432474
let chart = echarts.getInstanceByDom(
433475
document.getElementById(
@@ -468,8 +510,8 @@ const printProcThread = () => {
468510
{
469511
show: true,
470512
realtime: true,
471-
start: 30,
472-
end: 100,
513+
start: procThreadData.zoomStart,
514+
end: procThreadData.zoomEnd,
473515
xAxisIndex: [0, 1],
474516
},
475517
],
@@ -482,20 +524,26 @@ const printProcThread = () => {
482524
},
483525
],
484526
};
527+
chart.on('dataZoom', (event) => {
528+
procThreadData.zoomEnd = event.end
529+
procThreadData.zoomStart = event.start
530+
})
485531
chart.setOption(option);
486532
};
487533
488534
let sysNetworkData = {
489535
xAxisData: [],
490536
seriesData: [],
491-
legendData:[]
537+
legendData:[],
538+
zoomStart:30,
539+
zoomEnd:100,
492540
}
493541
494542
const pushSysNetworkData = (obj) => {
495543
let isAddTime = true;
496544
for (const i in obj) {
497545
if (isAddTime) {
498-
sysNetworkData.xAxisData.push(new Date(obj[i].timeStamp));
546+
sysNetworkData.xAxisData.push(getTimeStr(obj[i].timeStamp));
499547
isAddTime = false;
500548
}
501549
@@ -552,6 +600,16 @@ const printNetwork = () => {
552600
},
553601
tooltip: {
554602
trigger: 'axis',
603+
position(pos, params, dom, rect, size) {
604+
const obj = {top: 60};
605+
obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 5;
606+
return obj;
607+
},
608+
valueFormatter: (value) => `${value}`,
609+
},
610+
legend: {
611+
top: '8%',
612+
data: sysNetworkData.legendData,
555613
},
556614
grid: {top: '20%', left: '18%'},
557615
toolbox: {
@@ -566,23 +624,29 @@ const printNetwork = () => {
566624
{
567625
show: true,
568626
realtime: true,
569-
start: 30,
570-
end: 100,
627+
start: sysNetworkData.zoomStart,
628+
end: sysNetworkData.zoomEnd,
571629
xAxisIndex: [0, 1],
572630
},
573631
],
574632
yAxis: [{name: `${$t('perf.network')}(b)`, min: 0}],
575633
series: sysNetworkData.seriesData,
576634
};
635+
chart.on('dataZoom', (event) => {
636+
sysNetworkData.zoomEnd = event.end
637+
sysNetworkData.zoomStart = event.start
638+
})
577639
chart.setOption(option);
578640
};
579641
580642
let procCpuData = {
581643
xAxisData: [],
582-
seriesData: []
644+
seriesData: [],
645+
zoomStart:30,
646+
zoomEnd:100,
583647
}
584648
const pushProcCpuData = (obj) => {
585-
procCpuData.xAxisData.push(new Date(obj.timeStamp))
649+
procCpuData.xAxisData.push(getTimeStr(obj.timeStamp))
586650
procCpuData.seriesData.push(obj.cpuUtilization)
587651
}
588652
const printPerfCpu = () => {
@@ -627,8 +691,8 @@ const printPerfCpu = () => {
627691
{
628692
show: true,
629693
realtime: true,
630-
start: 30,
631-
end: 100,
694+
start: procCpuData.zoomStart,
695+
end: procCpuData.zoomEnd,
632696
xAxisIndex: [0, 1],
633697
},
634698
],
@@ -643,17 +707,23 @@ const printPerfCpu = () => {
643707
},
644708
],
645709
};
710+
chart.on('dataZoom', (event) => {
711+
procCpuData.zoomEnd = event.end
712+
procCpuData.zoomStart = event.start
713+
})
646714
chart.setOption(option);
647715
};
648716
649717
let procMemData = {
650718
xAxisData: [],
651719
pssData: [],
652720
phyData: [],
653-
vmData: []
721+
vmData: [],
722+
zoomStart:30,
723+
zoomEnd:100
654724
}
655725
const pushProcMemData = (obj) => {
656-
procMemData.xAxisData.push(new Date(obj.timeStamp))
726+
procMemData.xAxisData.push(getTimeStr(obj.timeStamp))
657727
procMemData.phyData.push(obj.phyRSS)
658728
procMemData.vmData.push(obj.vmRSS)
659729
procMemData.pssData.push(obj.totalPSS)
@@ -700,8 +770,8 @@ const printPerfMem = () => {
700770
{
701771
show: true,
702772
realtime: true,
703-
start: 30,
704-
end: 100,
773+
start: procMemData.zoomStart,
774+
end: procMemData.zoomEnd,
705775
xAxisIndex: [0, 1],
706776
},
707777
],
@@ -734,6 +804,10 @@ const printPerfMem = () => {
734804
},
735805
],
736806
};
807+
chart.on('dataZoom', (event) => {
808+
procMemData.zoomEnd = event.end
809+
procMemData.zoomStart = event.start
810+
})
737811
chart.setOption(option);
738812
};
739813

0 commit comments

Comments
 (0)