未验证 提交 09d6750d 编写于 作者: Y Yi Shen 提交者: GitHub

Merge pull request #13416 from apache/design-13216

feat(gauge): modify some default values, support svg pointer, add axisLine.distance/splitLine.distance/progress/anchor/data[i].title/data[i].detail  #13216
......@@ -40,14 +40,53 @@ interface LabelFormatter {
}
interface PointerOption {
icon?: string
show?: boolean
keepAspect?: boolean
itemStyle?: ItemStyleOption
/**
* Can be percent
*/
offsetCenter?: (number | string)[]
length?: number | string
width?: number
}
interface AnchorOption {
show?: boolean
showAbove?: boolean
size?: number
icon?: string
offsetCenter?: (number | string)[]
keepAspect?: boolean
itemStyle?: ItemStyleOption
}
interface ProgressOption {
show?: boolean
overlap?: boolean
width?: number
roundCap?: boolean
clip?: boolean
itemStyle?: ItemStyleOption
}
interface TitleOption extends LabelOption {
/**
* [x, y] offset
*/
offsetCenter?: (number | string)[]
formatter?: LabelFormatter | string
}
interface DetailOption extends LabelOption {
/**
* [x, y] offset
*/
offsetCenter?: (number | string)[]
formatter?: LabelFormatter | string
}
export interface GaugeStateOption {
itemStyle?: ItemStyleOption
}
......@@ -56,6 +95,9 @@ export interface GaugeDataItemOption extends GaugeStateOption, StatesOptionMixin
name?: string
value?: OptionDataValueNumeric
pointer?: PointerOption
progress?: ProgressOption
title?: TitleOption
detail?: DetailOption
}
export interface GaugeSeriesOption extends SeriesOption<GaugeStateOption>, GaugeStateOption,
CircleLayoutOptionMixin {
......@@ -73,19 +115,25 @@ export interface GaugeSeriesOption extends SeriesOption<GaugeStateOption>, Gauge
splitNumber?: number
itemStyle?: ItemStyleOption
axisLine?: {
show?: boolean
roundCap?: boolean
lineStyle: Omit<LineStyleOption, 'color'> & {
color: GaugeColorStop[]
}
},
progress?: ProgressOption
splitLine?: {
show?: boolean
/**
* Can be percent
*/
length?: number
distance?: number
lineStyle?: LineStyleOption
}
......@@ -96,6 +144,7 @@ export interface GaugeSeriesOption extends SeriesOption<GaugeStateOption>, Gauge
* Can be percent
*/
length?: number | string
distance?: number
lineStyle?: LineStyleOption
}
......@@ -104,21 +153,10 @@ export interface GaugeSeriesOption extends SeriesOption<GaugeStateOption>, Gauge
}
pointer?: PointerOption
anchor?: AnchorOption
title?: LabelOption & {
/**
* [x, y] offset
*/
offsetCenter?: (number | string)[]
formatter?: LabelFormatter | string
}
detail?: LabelOption & {
/**
* [x, y] offset
*/
offsetCenter?: (number | string)[]
formatter?: LabelFormatter | string
}
title?: TitleOption
detail?: DetailOption
data?: (OptionDataValueNumeric | GaugeDataItemOption)[]
}
......@@ -128,6 +166,9 @@ class GaugeSeriesModel extends SeriesModel<GaugeSeriesOption> {
static type = 'series.gauge' as const;
type = GaugeSeriesModel.type;
visualStyleAccessPath = 'itemStyle';
useColorPaletteOnData = true;
getInitialData(option: GaugeSeriesOption, ecModel: GlobalModel): List {
return createListSimply(this, ['value']);
}
......@@ -152,21 +193,32 @@ class GaugeSeriesModel extends SeriesModel<GaugeSeriesOption> {
axisLine: {
// 默认显示,属性show控制显示与否
show: true,
roundCap: false,
lineStyle: { // 属性lineStyle控制线条样式
color: [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']],
width: 30
color: [[1, '#E6EBF8']],
width: 10
}
},
// 坐标轴线
progress: {
// 默认显示,属性show控制显示与否
show: false,
overlap: true,
width: 10,
roundCap: false,
clip: true
},
// 分隔线
splitLine: {
// 默认显示,属性show控制显示与否
show: true,
// 属性length控制线长
length: 30,
length: 10,
distance: 10,
// 属性lineStyle(详见lineStyle)控制线条样式
lineStyle: {
color: '#eee',
width: 2,
color: '#63677A',
width: 3,
type: 'solid'
}
},
......@@ -177,35 +229,51 @@ class GaugeSeriesModel extends SeriesModel<GaugeSeriesOption> {
// 每份split细分多少段
splitNumber: 5,
// 属性length控制线长
length: 8,
length: 6,
distance: 10,
// 属性lineStyle控制线条样式
lineStyle: {
color: '#eee',
color: '#63677A',
width: 1,
type: 'solid'
}
},
axisLabel: {
show: true,
distance: 5,
distance: 15,
// formatter: null,
color: 'auto'
color: '#464646',
fontSize: 12
},
pointer: {
icon: null,
offsetCenter: [0, 0],
show: true,
length: '80%',
width: 8
length: '60%',
width: 6,
keepAspect: false
},
itemStyle: {
color: 'auto'
anchor: {
show: false,
showAbove: false,
size: 6,
icon: 'circle',
offsetCenter: [0, 0],
keepAspect: false,
itemStyle: {
color: '#fff',
borderWidth: 0,
borderColor: '#5470c6'
}
},
title: {
show: true,
// x, y,单位px
offsetCenter: [0, '-40%'],
offsetCenter: [0, '20%'],
// 其余属性默认使用全局文本样式,详见TEXTSTYLE
color: '#333',
fontSize: 15
color: '#464646',
fontSize: 16
},
detail: {
show: true,
......@@ -219,8 +287,10 @@ class GaugeSeriesModel extends SeriesModel<GaugeSeriesOption> {
offsetCenter: [0, '40%'],
// formatter: null,
// 其余属性默认使用全局文本样式,详见TEXTSTYLE
color: 'auto',
fontSize: 30
color: '#464646',
fontSize: 30,
fontWeight: 'bold',
lineHeight: 30
}
};
}
......
此差异已折叠。
......@@ -393,7 +393,8 @@ class LabelManager {
label.draggable = true;
label.cursor = 'move';
if (hostEl) {
let hostModel: Model<LabelLineOptionMixin> = labelItem.seriesModel as SeriesModel<LabelLineOptionMixin>;
let hostModel: Model<LabelLineOptionMixin> =
labelItem.seriesModel as SeriesModel<LabelLineOptionMixin>;
if (labelItem.dataIndex != null) {
const data = labelItem.seriesModel.getData(labelItem.dataType);
hostModel = data.getItemModel<LabelLineOptionMixin>(labelItem.dataIndex);
......
......@@ -184,9 +184,18 @@ const theme = {
},
gauge: {
title: {
textStyle: {
color: contrastColor
color: contrastColor
},
axisLine: {
lineStyle: {
color: [[1, 'rgba(207,212,219,0.2)']]
}
},
axisLabel: {
color: contrastColor
},
detail: {
color: '#EEF1FA'
}
},
candlestick: {
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
<!DOCTYPE html>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="lib/esl.js"></script>
<script src="lib/config.js"></script>
<script src="lib/jquery.min.js"></script>
<script src="lib/facePrint.js"></script>
<script src="lib/testHelper.js"></script>
<!-- <script src="ut/lib/canteen.js"></script> -->
<link rel="stylesheet" href="lib/reset.css" />
</head>
<body>
<style>
</style>
<div id="main0"></div>
<div id="main1"></div>
<div id="main2"></div>
<div id="main3"></div>
<div id="main4"></div>
<div id="main5"></div>
<div id="main6"></div>
<script>
require(['echarts'/*, 'map/js/china' */], function (echarts) {
// $.getJSON('./data/nutrients.json', function (data) {});
var option0 = {
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
toolbox: {
feature: {
restore: {},
saveAsImage: {}
}
},
series: [
{
name: '业务指标',
type: 'gauge',
pointer: {
icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z'
},
progress: {
show: true, // 坐标轴线
},
data: [
{value: 20, name: '完成率'}
],
detail: {
formatter: '{value}%'
},
}
]
};
var chart0 = testHelper.create(echarts, 'main0', {
title: [
'axisLine.roundCap: false, progress.roundCap: false, data.length: 1'
],
option: option0
});
setInterval(function () {
option0.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0;
chart0.setOption(option0, true);
}, 2000);
var option1 = {
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
toolbox: {
feature: {
restore: {},
saveAsImage: {}
}
},
series: [
{
name: '业务指标',
type: 'gauge',
pointer: {
icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z'
},
progress: {
show: true, // 坐标轴线
roundCap: true
},
axisLine: {
roundCap: true
},
data: [
{value: 20, name: '完成率'}
],
detail: {
formatter: '{value}%'
},
}
]
};
var chart1 = testHelper.create(echarts, 'main1', {
title: [
'axisLine.roundCap: true, progress.roundCap: true, data.length: 1'
],
option: option1
});
setInterval(function () {
option1.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0;
chart1.setOption(option1, true);
}, 2000);
var option2 = {
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
toolbox: {
feature: {
restore: {},
saveAsImage: {}
}
},
series: [
{
name: '业务指标',
type: 'gauge',
pointer: {
icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z'
},
progress: {
show: true, // 坐标轴线
overlap: true,
roundCap: true
},
axisLine: {
roundCap: true
},
data: [
{value: 20, name: '完成率'},
{value: 40, name: '达标率'},
{value: 60, name: '优秀率'}
],
title: {
show: false
},
detail: {
show: false,
formatter: '{value}%'
},
}
]
};
var chart2 = testHelper.create(echarts, 'main2', {
title: [
'axisLine.roundCap: true, progress.roundCap: true, overlap: true, data.length: 3, detail.show: false'
],
option: option2
});
setInterval(function () {
option2.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0;
option2.series[0].data[1].value = (Math.random() * 100).toFixed(2) - 0;
option2.series[0].data[2].value = (Math.random() * 100).toFixed(2) - 0;
chart2.setOption(option2, true);
}, 2000);
var option3 = {
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
toolbox: {
feature: {
restore: {},
saveAsImage: {}
}
},
series: [
{
name: '业务指标',
type: 'gauge',
progress: {
show: true, // 坐标轴线
overlap: false,
roundCap: true
},
data: [
{value: 20, name: '完成率'},
{value: 40, name: '达标率'},
{value: 60, name: '优秀率'}
],
title: {
show: false
},
detail: {
show: false,
formatter: '{value}%'
},
}
]
};
var chart3 = testHelper.create(echarts, 'main3', {
title: [
'axisLine.roundCap: false, progress.roundCap: true, overlap: false, data.length: 3, detail.show: false'
],
option: option3
});
setInterval(function () {
option3.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0;
option3.series[0].data[1].value = (Math.random() * 100).toFixed(2) - 0;
option3.series[0].data[2].value = (Math.random() * 100).toFixed(2) - 0;
chart3.setOption(option3, true);
}, 2000);
var option4 = {
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
toolbox: {
feature: {
restore: {},
saveAsImage: {}
}
},
series: [
{
name: '业务指标',
type: 'gauge',
pointer: {
icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z'
},
progress: {
show: true, // 坐标轴线
overlap: false,
roundCap: true
},
axisLine: {
roundCap: true
},
data: [
{value: 20, name: '完成率'},
{value: 40, name: '达标率'},
{value: 60, name: '优秀率'}
],
title: {
show: false
},
detail: {
show: false,
formatter: '{value}%'
},
}
]
};
var chart4 = testHelper.create(echarts, 'main4', {
title: [
'axisLine.roundCap: true, progress.roundCap: true, overlap: false, data.length: 3, detail.show: false, title.show: false'
],
option: option4
});
setInterval(function () {
option4.series[0].pointer.show = false;
option4.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0;
option4.series[0].data[1].value = (Math.random() * 100).toFixed(2) - 0;
option4.series[0].data[2].value = (Math.random() * 100).toFixed(2) - 0;
chart4.setOption(option4, true);
}, 2000);
var option5 = {
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
toolbox: {
feature: {
restore: {},
saveAsImage: {}
}
},
series: [
{
name: '业务指标',
type: 'gauge',
startAngle: 90,
endAngle: -270,
pointer: {
show: false
},
progress: {
show: true,
clip: false,
roundCap: true,
itemStyle: {
color: '#ff9933',
borderColor: '#7e0023',
borderWidth: 1
}
},
data: [
{value: 120, name: '本月跑步'}
],
detail: {
formatter: '{value} km'
},
}
]
};
var chart5 = testHelper.create(echarts, 'main5', {
title: [
'progress.roundCap: true, click the button to change progress.clip'
],
option: option5,
buttons: [{text: 'change progress.clip', onclick: function () {
option5.series[0].progress.clip = !option5.series[0].progress.clip;
chart5.setOption(option5, true);
}}]
});
});
</script>
</body>
</html>
......@@ -140,7 +140,7 @@ under the License.
{
name: 'Pressure',
type: 'gauge',
data: []
data: [{}]
}
]
};
......
......@@ -30,10 +30,139 @@ under the License.
<style>
html, body, #main {
width: 100%;
height: 100%;
height: 600;
}
</style>
<div id="main"></div>
<div style="position: relative; height: 600px;" id="main"></div>
<div style="position: relative; height: 500px;" id="main1"></div>
<div style="position: relative; height: 500px;" id="main2"></div>
<script>
require([
'echarts'
// 'echarts/chart/gauge',
// 'echarts/component/legend',
// 'echarts/component/tooltip'
], function (echarts) {
var chart1 = echarts.init(document.getElementById('main1'), 'dark', {});
var option1 = {
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
toolbox: {
feature: {
restore: {},
saveAsImage: {}
}
},
series: [
{
name: '业务指标',
type: 'gauge',
progress: {
show: true
},
anchor:{
showAbove: true,
show: true
},
roundCap: true,
detail: {formatter: '{value}%'},
data: [{value: 58.46, name: '完成率'}]
}
]
};
chart1.setOption(option1);
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/gauge',
// 'echarts/component/legend',
// 'echarts/component/tooltip'
], function (echarts) {
var chart2 = echarts.init(document.getElementById('main2'), 'dark', {});
var option2 = {
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
toolbox: {
feature: {
restore: {},
saveAsImage: {}
}
},
series: [
{
name: '业务指标',
type: 'gauge',
pointer: {
icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z'
},
roundCap: true,
progress: {
show: true, // 坐标轴线
overlap: false,
color: ['#f00', '#0f0']
},
anchor: {
show: true,
showAbove: true
},
detail: {
formatter: '{value}%'
},
data: [
{
value: 20,
name: '完成率',
title: {
offsetCenter: ['-40%', '20%']
},
detail: {
offsetCenter: ['-40%', '35%']
}
},
{
value: 40,
name: '达标率',
title: {
offsetCenter: ['0%', '20%']
},
detail: {
offsetCenter: ['0%', '35%']
}
},
{
value: 60,
name: '优秀率',
title: {
offsetCenter: ['40%', '20%']
},
detail: {
offsetCenter: ['40%', '35%']
}
}
],
title: {
fontSize: 14
},
detail: {
width: 30,
height: 12,
fontSize: 12,
color: 'auto',
borderColor: 'auto',
borderWidth: 1,
borderRadius: 3,
formatter: '{value}%',
}
}
],
};
chart2.setOption(option2);
})
</script>
<script>
require([
......@@ -43,7 +172,7 @@ under the License.
// 'echarts/component/tooltip'
], function (echarts) {
var chart = echarts.init(document.getElementById('main'), null, {
var chart = echarts.init(document.getElementById('main'), {
});
......@@ -77,12 +206,14 @@ under the License.
},
axisTick: { // 坐标轴小标记
length :15, // 属性length控制线长
distance: 10,
lineStyle: { // 属性lineStyle控制线条样式
color: 'auto'
}
},
splitLine: { // 分隔线
length :20, // 属性length控制线长
distance: 10,
lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式
color: 'auto'
}
......@@ -208,12 +339,14 @@ under the License.
},
axisTick: { // 坐标轴小标记
length :12, // 属性length控制线长
distance: 10,
lineStyle: { // 属性lineStyle控制线条样式
color: 'auto'
}
},
splitLine: { // 分隔线
length :20, // 属性length控制线长
distance: 10,
lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式
color: 'auto'
}
......@@ -252,6 +385,7 @@ under the License.
axisTick: { // 坐标轴小标记
splitNumber:5,
length :10, // 属性length控制线长
distance: 10,
lineStyle: { // 属性lineStyle控制线条样式
color: 'auto'
}
......@@ -267,6 +401,7 @@ under the License.
},
splitLine: { // 分隔线
length :15, // 属性length控制线长
distance: 10,
lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式
color: 'auto'
}
......
[{"name":"Action 1","ops":[{"type":"screenshot","time":3170}],"scrollY":0,"scrollX":0,"timestamp":1602246267936},{"name":"Action 2","ops":[{"type":"screenshot","time":2585}],"scrollY":714,"scrollX":0,"timestamp":1602246285822},{"name":"Action 3","ops":[{"type":"screenshot","time":2051}],"scrollY":1693,"scrollX":0,"timestamp":1602246296183},{"name":"Action 4","ops":[{"type":"screenshot","time":1388}],"scrollY":2476,"scrollX":0,"timestamp":1602246309308},{"name":"Action 5","ops":[{"type":"screenshot","time":1445}],"scrollY":3584,"scrollX":0,"timestamp":1602246320327},{"name":"Action 6","ops":[{"type":"screenshot","time":1831}],"scrollY":4544,"scrollX":0,"timestamp":1602246332115}]
\ No newline at end of file
[{"name":"Action 1","ops":[{"type":"screenshot","time":3413}],"scrollY":0,"scrollX":0,"timestamp":1602246421396},{"name":"Action 2","ops":[{"type":"screenshot","time":1686}],"scrollY":458,"scrollX":0,"timestamp":1602246432833},{"name":"Action 3","ops":[{"type":"screenshot","time":1853}],"scrollY":911,"scrollX":0,"timestamp":1602246445097},{"name":"Action 4","ops":[{"type":"screenshot","time":1876}],"scrollY":1374,"scrollX":0,"timestamp":1602246452846},{"name":"Action 5","ops":[{"type":"screenshot","time":1764}],"scrollY":1832,"scrollX":0,"timestamp":1602246460967},{"name":"Action 6","ops":[{"type":"screenshot","time":2066}],"scrollY":2148,"scrollX":0,"timestamp":1602246468649}]
\ No newline at end of file
[{"name":"Action 1","ops":[{"type":"screenshot","time":1824}],"scrollY":0,"scrollX":0,"timestamp":1602246538416},{"name":"Action 2","ops":[{"type":"screenshot","time":1348}],"scrollY":481,"scrollX":0,"timestamp":1602246547107},{"name":"Action 3","ops":[{"type":"screenshot","time":1242}],"scrollY":952,"scrollX":0,"timestamp":1602246555653},{"name":"Action 4","ops":[{"type":"screenshot","time":1149}],"scrollY":1432,"scrollX":0,"timestamp":1602246561913},{"name":"Action 5","ops":[{"type":"screenshot","time":1278}],"scrollY":1925,"scrollX":0,"timestamp":1602246567775},{"name":"Action 6","ops":[{"type":"screenshot","time":1155}],"scrollY":2292,"scrollX":0,"timestamp":1602246574297}]
\ No newline at end of file
[{"name":"Action 1","ops":[{"type":"screenshot","time":1573}],"scrollY":0,"scrollX":0,"timestamp":1602246699614},{"name":"Action 2","ops":[{"type":"screenshot","time":1145}],"scrollY":460,"scrollX":0,"timestamp":1602246707775},{"name":"Action 3","ops":[{"type":"screenshot","time":1198}],"scrollY":910,"scrollX":0,"timestamp":1602246714393},{"name":"Action 4","ops":[{"type":"screenshot","time":1279}],"scrollY":1378,"scrollX":0,"timestamp":1602246720625},{"name":"Action 5","ops":[{"type":"screenshot","time":1430}],"scrollY":1708,"scrollX":0,"timestamp":1602246726107}]
\ No newline at end of file
[{"name":"Action 1","ops":[{"type":"screenshot","time":3972}],"scrollY":0,"scrollX":0,"timestamp":1602245762818},{"name":"Action 2","ops":[{"type":"screenshot","time":2806}],"scrollY":605,"scrollX":0,"timestamp":1602246030112},{"name":"Action 3","ops":[{"type":"screenshot","time":2428}],"scrollY":1008,"scrollX":0,"timestamp":1602246050732}]
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册