|
|
@@ -0,0 +1,340 @@
|
|
|
+<script setup lang="ts">
|
|
|
+import {onMounted} from "vue";
|
|
|
+import * as echarts from 'echarts';
|
|
|
+const props = defineProps<{
|
|
|
+ assignmentId:number,
|
|
|
+ splitNumber:number,
|
|
|
+ barWidth:number,
|
|
|
+}>()
|
|
|
+
|
|
|
+onMounted(()=>{
|
|
|
+ let chartDom = document.getElementById('pause-canvas');
|
|
|
+ let myChart = echarts.init(chartDom);
|
|
|
+ let option = {
|
|
|
+ xAxis: {
|
|
|
+ type:'time',
|
|
|
+ axisLabel: {
|
|
|
+ formatter: (value) => {
|
|
|
+ const date = new Date(value);
|
|
|
+ return [date.getHours(), date.getMinutes(), date.getSeconds()]
|
|
|
+ .map(num => num.toString().padStart(2, '0'))
|
|
|
+ .join(':');
|
|
|
+ },
|
|
|
+ },
|
|
|
+ splitNumber: props.splitNumber
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ type:'value',
|
|
|
+ name:'停顿时间(ms)'
|
|
|
+ },
|
|
|
+ tooltip:{
|
|
|
+ formatter:(value:any)=>{
|
|
|
+ let date = value.data[0];
|
|
|
+ let data = value.data[1];
|
|
|
+ return `停顿时刻:${[date.getHours(), date.getMinutes(), date.getSeconds()]
|
|
|
+ .map(num => num.toString().padStart(2, '0'))
|
|
|
+ .join(':')}\n 停顿时长:${data}ms`
|
|
|
+ }
|
|
|
+ },
|
|
|
+ visualMap: {
|
|
|
+ type: 'continuous', // 连续型映射
|
|
|
+ calculable: true,
|
|
|
+ min: 0, // 数据最小值
|
|
|
+ max: 150, // 数据最大值
|
|
|
+ dimension: 1, // 根据第2个维度(y值)映射颜色
|
|
|
+ inRange: {
|
|
|
+ color: ['yellow', 'red'] // 渐变范围:小值→蓝色,大值→红色
|
|
|
+ },
|
|
|
+ itemWidth: props.barWidth,
|
|
|
+ bottom:0,
|
|
|
+ right:0,
|
|
|
+ },
|
|
|
+ dataZoom: [
|
|
|
+ {
|
|
|
+ type: 'inside',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: 'slider',
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ symbolSize: 10,
|
|
|
+
|
|
|
+ data: [
|
|
|
+ [new Date('2025-07-26 00:33:42'),44],
|
|
|
+ [new Date('2025-07-26 00:52:57'),39],
|
|
|
+ [new Date('2025-07-26 00:46:26'),14],
|
|
|
+ [new Date('2025-07-26 00:34:36'),28],
|
|
|
+ [new Date('2025-07-26 00:17:17'),43],
|
|
|
+ [new Date('2025-07-26 00:50:39'),23],
|
|
|
+ [new Date('2025-07-26 00:42:20'),13],
|
|
|
+ [new Date('2025-07-26 00:33:5'),44],
|
|
|
+ [new Date('2025-07-26 00:42:31'),32],
|
|
|
+ [new Date('2025-07-26 00:13:16'),48],
|
|
|
+ [new Date('2025-07-26 00:0:23'),40],
|
|
|
+ [new Date('2025-07-26 00:24:46'),39],
|
|
|
+ [new Date('2025-07-26 00:4:44'),49],
|
|
|
+ [new Date('2025-07-26 00:2:4'),43],
|
|
|
+ [new Date('2025-07-26 00:25:6'),21],
|
|
|
+ [new Date('2025-07-26 00:18:38'),26],
|
|
|
+ [new Date('2025-07-26 00:16:40'),43],
|
|
|
+ [new Date('2025-07-26 00:37:45'),5],
|
|
|
+ [new Date('2025-07-26 00:49:42'),27],
|
|
|
+ [new Date('2025-07-26 00:45:31'),34],
|
|
|
+ [new Date('2025-07-26 00:51:19'),25],
|
|
|
+ [new Date('2025-07-26 00:43:16'),42],
|
|
|
+ [new Date('2025-07-26 00:16:39'),7],
|
|
|
+ [new Date('2025-07-26 00:38:48'),32],
|
|
|
+ [new Date('2025-07-26 00:34:43'),33],
|
|
|
+ [new Date('2025-07-26 00:6:43'),48],
|
|
|
+ [new Date('2025-07-26 00:45:28'),30],
|
|
|
+ [new Date('2025-07-26 00:4:29'),48],
|
|
|
+ [new Date('2025-07-26 00:35:21'),41],
|
|
|
+ [new Date('2025-07-26 00:23:57'),44],
|
|
|
+ [new Date('2025-07-26 00:8:1'),29],
|
|
|
+ [new Date('2025-07-26 00:7:4'),40],
|
|
|
+ [new Date('2025-07-26 00:3:43'),11],
|
|
|
+ [new Date('2025-07-26 00:40:12'),12],
|
|
|
+ [new Date('2025-07-26 00:23:35'),32],
|
|
|
+ [new Date('2025-07-26 00:9:28'),16],
|
|
|
+ [new Date('2025-07-26 00:7:45'),30],
|
|
|
+ [new Date('2025-07-26 00:31:11'),24],
|
|
|
+ [new Date('2025-07-26 00:46:4'),41],
|
|
|
+ [new Date('2025-07-26 00:34:29'),49],
|
|
|
+ [new Date('2025-07-26 00:42:9'),39],
|
|
|
+ [new Date('2025-07-26 00:35:46'),20],
|
|
|
+ [new Date('2025-07-26 00:17:23'),48],
|
|
|
+ [new Date('2025-07-26 00:19:46'),6],
|
|
|
+ [new Date('2025-07-26 00:8:6'),41],
|
|
|
+ [new Date('2025-07-26 00:55:38'),27],
|
|
|
+ [new Date('2025-07-26 00:33:10'),41],
|
|
|
+ [new Date('2025-07-26 00:32:12'),26],
|
|
|
+ [new Date('2025-07-26 00:58:44'),43],
|
|
|
+ [new Date('2025-07-26 00:30:21'),19],
|
|
|
+ [new Date('2025-07-26 00:46:38'),34],
|
|
|
+ [new Date('2025-07-26 00:20:2'),22],
|
|
|
+ [new Date('2025-07-26 00:44:57'),33],
|
|
|
+ [new Date('2025-07-26 00:11:49'),37],
|
|
|
+ [new Date('2025-07-26 00:24:43'),15],
|
|
|
+ [new Date('2025-07-26 00:30:2'),42],
|
|
|
+ [new Date('2025-07-26 00:57:17'),40],
|
|
|
+ [new Date('2025-07-26 00:6:29'),27],
|
|
|
+ [new Date('2025-07-26 00:15:9'),27],
|
|
|
+ [new Date('2025-07-26 00:13:57'),22],
|
|
|
+ [new Date('2025-07-26 00:54:8'),36],
|
|
|
+ [new Date('2025-07-26 00:5:29'),31],
|
|
|
+ [new Date('2025-07-26 00:38:36'),29],
|
|
|
+ [new Date('2025-07-26 00:6:1'),37],
|
|
|
+ [new Date('2025-07-26 00:11:22'),5],
|
|
|
+ [new Date('2025-07-26 00:10:8'),25],
|
|
|
+ [new Date('2025-07-26 00:43:29'),22],
|
|
|
+ [new Date('2025-07-26 00:9:30'),14],
|
|
|
+ [new Date('2025-07-26 00:44:39'),41],
|
|
|
+ [new Date('2025-07-26 00:48:17'),36],
|
|
|
+ [new Date('2025-07-26 00:6:5'),48],
|
|
|
+ [new Date('2025-07-26 00:13:31'),13],
|
|
|
+ [new Date('2025-07-26 00:12:37'),28],
|
|
|
+ [new Date('2025-07-26 00:1:4'),49],
|
|
|
+ [new Date('2025-07-26 00:48:20'),39],
|
|
|
+ [new Date('2025-07-26 00:52:32'),46],
|
|
|
+ [new Date('2025-07-26 00:35:0'),48],
|
|
|
+ [new Date('2025-07-26 00:28:2'),13],
|
|
|
+ [new Date('2025-07-26 00:19:11'),41],
|
|
|
+ [new Date('2025-07-26 00:8:48'),21],
|
|
|
+ [new Date('2025-07-26 00:46:2'),34],
|
|
|
+ [new Date('2025-07-26 00:49:29'),16],
|
|
|
+ [new Date('2025-07-26 00:24:22'),17],
|
|
|
+ [new Date('2025-07-26 00:10:11'),5],
|
|
|
+ [new Date('2025-07-26 00:14:10'),47],
|
|
|
+ [new Date('2025-07-26 00:18:44'),19],
|
|
|
+ [new Date('2025-07-26 00:18:15'),31],
|
|
|
+ [new Date('2025-07-26 00:16:10'),15],
|
|
|
+ [new Date('2025-07-26 00:37:51'),25],
|
|
|
+ [new Date('2025-07-26 00:30:13'),40],
|
|
|
+ [new Date('2025-07-26 00:33:35'),24],
|
|
|
+ [new Date('2025-07-26 00:19:29'),47],
|
|
|
+ [new Date('2025-07-26 00:29:23'),40],
|
|
|
+ [new Date('2025-07-26 00:19:10'),12],
|
|
|
+ [new Date('2025-07-26 00:4:37'),8],
|
|
|
+ [new Date('2025-07-26 00:38:0'),22],
|
|
|
+ [new Date('2025-07-26 00:36:24'),7],
|
|
|
+ [new Date('2025-07-26 00:4:22'),29],
|
|
|
+ [new Date('2025-07-26 00:39:22'),32],
|
|
|
+ [new Date('2025-07-26 00:40:33'),48],
|
|
|
+ [new Date('2025-07-26 00:33:14'),10],
|
|
|
+ [new Date('2025-07-26 00:20:18'),22],
|
|
|
+ [new Date('2025-07-26 00:39:52'),31],
|
|
|
+ [new Date('2025-07-26 00:21:40'),16],
|
|
|
+ [new Date('2025-07-26 00:56:33'),46],
|
|
|
+ [new Date('2025-07-26 00:56:50'),43],
|
|
|
+ [new Date('2025-07-26 00:16:15'),39],
|
|
|
+ [new Date('2025-07-26 00:30:44'),48],
|
|
|
+ [new Date('2025-07-26 00:35:56'),14],
|
|
|
+ [new Date('2025-07-26 00:57:33'),9],
|
|
|
+ [new Date('2025-07-26 00:15:23'),21],
|
|
|
+ [new Date('2025-07-26 00:26:0'),7],
|
|
|
+ [new Date('2025-07-26 00:50:23'),10],
|
|
|
+ [new Date('2025-07-26 00:32:23'),10],
|
|
|
+ [new Date('2025-07-26 00:3:21'),18],
|
|
|
+ [new Date('2025-07-26 00:27:34'),23],
|
|
|
+ [new Date('2025-07-26 00:54:37'),40],
|
|
|
+ [new Date('2025-07-26 00:49:34'),23],
|
|
|
+ [new Date('2025-07-26 00:29:30'),41],
|
|
|
+ [new Date('2025-07-26 00:24:49'),37],
|
|
|
+ [new Date('2025-07-26 00:18:20'),34],
|
|
|
+ [new Date('2025-07-26 00:13:55'),36],
|
|
|
+ [new Date('2025-07-26 00:51:10'),42],
|
|
|
+ [new Date('2025-07-26 00:32:49'),31],
|
|
|
+ [new Date('2025-07-26 00:0:17'),22],
|
|
|
+ [new Date('2025-07-26 00:39:7'),30],
|
|
|
+ [new Date('2025-07-26 00:52:49'),17],
|
|
|
+ [new Date('2025-07-26 00:49:12'),42],
|
|
|
+ [new Date('2025-07-26 00:23:26'),17],
|
|
|
+ [new Date('2025-07-26 00:29:12'),19],
|
|
|
+ [new Date('2025-07-26 00:21:26'),28],
|
|
|
+ [new Date('2025-07-26 00:25:41'),14],
|
|
|
+ [new Date('2025-07-26 00:23:17'),38],
|
|
|
+ [new Date('2025-07-26 00:29:42'),16],
|
|
|
+ [new Date('2025-07-26 00:53:5'),13],
|
|
|
+ [new Date('2025-07-26 00:31:51'),21],
|
|
|
+ [new Date('2025-07-26 00:31:46'),8],
|
|
|
+ [new Date('2025-07-26 00:48:2'),41],
|
|
|
+ [new Date('2025-07-26 00:25:58'),47],
|
|
|
+ [new Date('2025-07-26 00:18:54'),30],
|
|
|
+ [new Date('2025-07-26 00:50:19'),40],
|
|
|
+ [new Date('2025-07-26 00:16:11'),13],
|
|
|
+ [new Date('2025-07-26 00:5:12'),42],
|
|
|
+ [new Date('2025-07-26 00:48:55'),12],
|
|
|
+ [new Date('2025-07-26 00:29:53'),31],
|
|
|
+ [new Date('2025-07-26 00:40:43'),33],
|
|
|
+ [new Date('2025-07-26 00:28:7'),43],
|
|
|
+ [new Date('2025-07-26 00:43:15'),37],
|
|
|
+ [new Date('2025-07-26 00:47:37'),6],
|
|
|
+ [new Date('2025-07-26 00:46:47'),41],
|
|
|
+ [new Date('2025-07-26 00:6:34'),40],
|
|
|
+ [new Date('2025-07-26 00:16:57'),6],
|
|
|
+ [new Date('2025-07-26 00:29:39'),48],
|
|
|
+ [new Date('2025-07-26 00:6:41'),10],
|
|
|
+ [new Date('2025-07-26 00:24:14'),45],
|
|
|
+ [new Date('2025-07-26 00:51:21'),15],
|
|
|
+ [new Date('2025-07-26 00:2:46'),26],
|
|
|
+ [new Date('2025-07-26 00:19:15'),49],
|
|
|
+ [new Date('2025-07-26 00:44:5'),7],
|
|
|
+ [new Date('2025-07-26 00:23:41'),17],
|
|
|
+ [new Date('2025-07-26 00:24:55'),38],
|
|
|
+ [new Date('2025-07-26 00:28:22'),21],
|
|
|
+ [new Date('2025-07-26 00:41:10'),15],
|
|
|
+ [new Date('2025-07-26 00:51:40'),25],
|
|
|
+ [new Date('2025-07-26 00:54:14'),6],
|
|
|
+ [new Date('2025-07-26 00:57:26'),43],
|
|
|
+ [new Date('2025-07-26 00:17:54'),48],
|
|
|
+ [new Date('2025-07-26 00:51:3'),49],
|
|
|
+ [new Date('2025-07-26 00:42:33'),27],
|
|
|
+ [new Date('2025-07-26 00:14:44'),18],
|
|
|
+ [new Date('2025-07-26 00:35:55'),46],
|
|
|
+ [new Date('2025-07-26 00:0:25'),33],
|
|
|
+ [new Date('2025-07-26 00:46:10'),37],
|
|
|
+ [new Date('2025-07-26 00:50:2'),5],
|
|
|
+ [new Date('2025-07-26 00:28:45'),48],
|
|
|
+ [new Date('2025-07-26 00:57:25'),36],
|
|
|
+ [new Date('2025-07-26 00:11:4'),46],
|
|
|
+ [new Date('2025-07-26 00:37:9'),48],
|
|
|
+ [new Date('2025-07-26 00:51:16'),19],
|
|
|
+ [new Date('2025-07-26 00:55:51'),27],
|
|
|
+ [new Date('2025-07-26 00:22:33'),20],
|
|
|
+ [new Date('2025-07-26 00:0:49'),13],
|
|
|
+ [new Date('2025-07-26 00:44:33'),17],
|
|
|
+ [new Date('2025-07-26 00:26:58'),33],
|
|
|
+ [new Date('2025-07-26 00:30:40'),46],
|
|
|
+ [new Date('2025-07-26 00:28:24'),28],
|
|
|
+ [new Date('2025-07-26 00:28:48'),18],
|
|
|
+ [new Date('2025-07-26 00:7:5'),24],
|
|
|
+ [new Date('2025-07-26 00:8:26'),6],
|
|
|
+ [new Date('2025-07-26 00:20:40'),49],
|
|
|
+ [new Date('2025-07-26 00:34:17'),22],
|
|
|
+ [new Date('2025-07-26 00:15:13'),32],
|
|
|
+ [new Date('2025-07-26 00:38:33'),42],
|
|
|
+ [new Date('2025-07-26 00:55:56'),60],
|
|
|
+ [new Date('2025-07-26 00:26:51'),77],
|
|
|
+ [new Date('2025-07-26 00:32:55'),90],
|
|
|
+ [new Date('2025-07-26 00:4:36'),71],
|
|
|
+ [new Date('2025-07-26 00:45:7'),65],
|
|
|
+ [new Date('2025-07-26 00:26:15'),58],
|
|
|
+ [new Date('2025-07-26 00:9:48'),82],
|
|
|
+ [new Date('2025-07-26 00:21:47'),88],
|
|
|
+ [new Date('2025-07-26 00:30:41'),74],
|
|
|
+ [new Date('2025-07-26 00:19:53'),78],
|
|
|
+ [new Date('2025-07-26 00:28:32'),94],
|
|
|
+ [new Date('2025-07-26 00:37:43'),80],
|
|
|
+ [new Date('2025-07-26 00:24:35'),86],
|
|
|
+ [new Date('2025-07-26 00:19:57'),92],
|
|
|
+ [new Date('2025-07-26 00:5:41'),77],
|
|
|
+ [new Date('2025-07-26 00:11:40'),79],
|
|
|
+ [new Date('2025-07-26 00:30:56'),84],
|
|
|
+ [new Date('2025-07-26 00:34:23'),68],
|
|
|
+ [new Date('2025-07-26 00:23:46'),74],
|
|
|
+ [new Date('2025-07-26 00:8:4'),55],
|
|
|
+ [new Date('2025-07-26 00:9:19'),66],
|
|
|
+ [new Date('2025-07-26 00:20:0'),58],
|
|
|
+ [new Date('2025-07-26 00:43:9'),77],
|
|
|
+ [new Date('2025-07-26 00:4:2'),64],
|
|
|
+ [new Date('2025-07-26 00:41:28'),84],
|
|
|
+ [new Date('2025-07-26 00:20:3'),62],
|
|
|
+ [new Date('2025-07-26 00:27:26'),72],
|
|
|
+ [new Date('2025-07-26 00:9:47'),80],
|
|
|
+ [new Date('2025-07-26 00:21:15'),77],
|
|
|
+ [new Date('2025-07-26 00:30:14'),66],
|
|
|
+ [new Date('2025-07-26 00:22:41'),98],
|
|
|
+ [new Date('2025-07-26 00:2:24'),64],
|
|
|
+ [new Date('2025-07-26 00:44:31'),69],
|
|
|
+ [new Date('2025-07-26 00:25:10'),85],
|
|
|
+ [new Date('2025-07-26 00:1:35'),73],
|
|
|
+ [new Date('2025-07-26 00:13:6'),72],
|
|
|
+ [new Date('2025-07-26 00:40:34'),80],
|
|
|
+ [new Date('2025-07-26 00:52:25'),53],
|
|
|
+ [new Date('2025-07-26 00:58:24'),73],
|
|
|
+ [new Date('2025-07-26 00:18:10'),74],
|
|
|
+ [new Date('2025-07-26 00:4:48'),50],
|
|
|
+ [new Date('2025-07-26 00:27:15'),79],
|
|
|
+ [new Date('2025-07-26 00:2:47'),90],
|
|
|
+ [new Date('2025-07-26 00:38:51'),95],
|
|
|
+ [new Date('2025-07-26 00:19:13'),76],
|
|
|
+ [new Date('2025-07-26 00:15:56'),52],
|
|
|
+ [new Date('2025-07-26 00:23:37'),52],
|
|
|
+ [new Date('2025-07-26 00:23:38'),59],
|
|
|
+ [new Date('2025-07-26 00:39:32'),110],
|
|
|
+ [new Date('2025-07-26 00:11:9'),119],
|
|
|
+ [new Date('2025-07-26 00:19:22'),119],
|
|
|
+ [new Date('2025-07-26 00:57:14'),133],
|
|
|
+ [new Date('2025-07-26 00:9:24'),140],
|
|
|
+ [new Date('2025-07-26 00:44:21'),134],
|
|
|
+ [new Date('2025-07-26 00:54:0'),114],
|
|
|
+ [new Date('2025-07-26 00:32:17'),128],
|
|
|
+ [new Date('2025-07-26 00:17:42'),147],
|
|
|
+
|
|
|
+
|
|
|
+ ],
|
|
|
+ type: 'scatter'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ myChart.setOption( option);
|
|
|
+ window.addEventListener('resize', ()=>{
|
|
|
+ myChart.resize()
|
|
|
+ })
|
|
|
+})
|
|
|
+</script>
|
|
|
+
|
|
|
+<template>
|
|
|
+ <div id="pause-canvas" class="canvas-container">
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+.canvas-container{
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
+</style>
|