|
|
|
@@ -222,6 +222,31 @@ limitations under the License. |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<el-dialog :title="$t('scalar.info')" |
|
|
|
:visible.sync="delThresholdVisible" |
|
|
|
custom-class="delDialog" |
|
|
|
:close-on-click-modal="false" |
|
|
|
@close="delThresholdCancel" |
|
|
|
top="35vh" |
|
|
|
width="425px"> |
|
|
|
<div class="delThresholdItem"> |
|
|
|
<span class="delThresholdIcon el-icon-warning"></span> |
|
|
|
<span class="delThresholdInfo">{{$t('scalar.isDelete')}}</span> |
|
|
|
</div> |
|
|
|
<div class="delThresholdItem"> |
|
|
|
<span class="delThresholdIcon"> |
|
|
|
<el-switch v-model="delThresholdSwitch"></el-switch> |
|
|
|
</span> |
|
|
|
<span class="delThresholdInfo">{{$t('scalar.applyAllSelectTag')}}</span> |
|
|
|
</div> |
|
|
|
<span slot="footer" |
|
|
|
class="dialog-footer"> |
|
|
|
<el-button @click="delThresholdCancel">{{$t('public.cancel')}}</el-button> |
|
|
|
<el-button type="primary" |
|
|
|
@click="delThresholdCommit">{{$t('public.sure')}}</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script> |
|
|
|
@@ -262,9 +287,9 @@ export default { |
|
|
|
yAxisScaleTimer: null, // yAxis scale timer |
|
|
|
compare: false, // Comparison Page |
|
|
|
scalarCompare: this.$t('scalar')['comparison'], |
|
|
|
abort: false, // charts that have not been drawn. |
|
|
|
trainingJobId: this.$route.query.train_id, // ID of the current training job |
|
|
|
thresholdDialogVisible: false, |
|
|
|
delThresholdVisible: false, |
|
|
|
currentTagName: '', |
|
|
|
currentSample: {}, |
|
|
|
thresholdErrorMsg: '', |
|
|
|
@@ -285,6 +310,7 @@ export default { |
|
|
|
], |
|
|
|
thresholdLocal: null, |
|
|
|
thresholdSwitch: false, |
|
|
|
delThresholdSwitch: false, |
|
|
|
thresholdColor: '#f00', |
|
|
|
decodeTrainingJobId: '', |
|
|
|
}; |
|
|
|
@@ -579,6 +605,10 @@ export default { |
|
|
|
.then((res) => { |
|
|
|
// error |
|
|
|
if (!res || !res.data || !res.data.metadatas) { |
|
|
|
// canceled |
|
|
|
if (res.toString() === 'false') { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (sampleObject.charObj) { |
|
|
|
sampleObject.charObj.clear(); |
|
|
|
sampleObject.onePoint = false; |
|
|
|
@@ -666,8 +696,6 @@ export default { |
|
|
|
// Draw chart |
|
|
|
if (!this.compare) { |
|
|
|
this.updateOrCreateChar(sampleIndex, true); |
|
|
|
} else { |
|
|
|
this.abort = true; |
|
|
|
} |
|
|
|
}); |
|
|
|
}) |
|
|
|
@@ -844,7 +872,6 @@ export default { |
|
|
|
scale: true, |
|
|
|
nameGap: 30, |
|
|
|
minInterval: this.isActive === 0 ? 1 : 0, |
|
|
|
|
|
|
|
axisLine: { |
|
|
|
lineStyle: { |
|
|
|
color: '#E6EBF5', |
|
|
|
@@ -1263,68 +1290,65 @@ export default { |
|
|
|
clearTimeout(this.axisBenchChangeTimer); |
|
|
|
this.axisBenchChangeTimer = null; |
|
|
|
} |
|
|
|
switch (val) { |
|
|
|
case this.$t('scalar.step'): |
|
|
|
this.curBenchX = 'stepData'; |
|
|
|
this.curAxisName = this.$t('scalar.step'); |
|
|
|
this.isActive = 0; |
|
|
|
break; |
|
|
|
case this.$t('scalar.relativeTime'): |
|
|
|
this.curBenchX = 'relativeData'; |
|
|
|
this.curAxisName = this.$t('scalar.relativeTime'); |
|
|
|
this.isActive = 1; |
|
|
|
break; |
|
|
|
case this.$t('scalar.absoluteTime'): |
|
|
|
this.curBenchX = 'absData'; |
|
|
|
this.curAxisName = this.$t('scalar.absoluteTime'); |
|
|
|
this.isActive = 2; |
|
|
|
break; |
|
|
|
default: |
|
|
|
this.curBenchX = 'stepData'; |
|
|
|
this.curAxisName = this.$t('scalar.step'); |
|
|
|
this.isActive = 0; |
|
|
|
break; |
|
|
|
} |
|
|
|
this.axisBenchChangeTimer = setTimeout(() => { |
|
|
|
switch (val) { |
|
|
|
case this.$t('scalar.step'): |
|
|
|
this.curBenchX = 'stepData'; |
|
|
|
this.curAxisName = this.$t('scalar.step'); |
|
|
|
this.isActive = 0; |
|
|
|
break; |
|
|
|
case this.$t('scalar.relativeTime'): |
|
|
|
this.curBenchX = 'relativeData'; |
|
|
|
this.curAxisName = this.$t('scalar.relativeTime'); |
|
|
|
this.isActive = 1; |
|
|
|
break; |
|
|
|
case this.$t('scalar.absoluteTime'): |
|
|
|
this.curBenchX = 'absData'; |
|
|
|
this.curAxisName = this.$t('scalar.absoluteTime'); |
|
|
|
this.isActive = 2; |
|
|
|
break; |
|
|
|
default: |
|
|
|
this.curBenchX = 'stepData'; |
|
|
|
this.curAxisName = this.$t('scalar.step'); |
|
|
|
this.isActive = 0; |
|
|
|
break; |
|
|
|
} |
|
|
|
// Update the horizontal benchmark of the default data |
|
|
|
this.curPageArr.forEach((sampleObject) => { |
|
|
|
if (sampleObject.charObj) { |
|
|
|
sampleObject.charData.oriData.forEach((originData, index) => { |
|
|
|
const seriesData = sampleObject.charData.charOption.series; |
|
|
|
const oriIndexData = sampleObject.charData.oriData[index]; |
|
|
|
if (sampleObject.log) { |
|
|
|
sampleObject.charData.charOption.series[ |
|
|
|
index * 2 |
|
|
|
].data = this.formateSmoothData( |
|
|
|
sampleObject.charData.oriData[index].logData[this.curBenchX], |
|
|
|
seriesData[index * 2].data = this.formateSmoothData( |
|
|
|
oriIndexData.logData[this.curBenchX], |
|
|
|
); |
|
|
|
sampleObject.charData.charOption.series[index * 2 + 1].data = |
|
|
|
sampleObject.charData.oriData[index].logData[this.curBenchX]; |
|
|
|
seriesData[index * 2 + 1].data = |
|
|
|
oriIndexData.logData[this.curBenchX]; |
|
|
|
} else { |
|
|
|
sampleObject.charData.charOption.series[ |
|
|
|
index * 2 |
|
|
|
].data = this.formateSmoothData( |
|
|
|
sampleObject.charData.oriData[index].valueData[this.curBenchX], |
|
|
|
seriesData[index * 2].data = this.formateSmoothData( |
|
|
|
oriIndexData.valueData[this.curBenchX], |
|
|
|
); |
|
|
|
sampleObject.charData.charOption.series[index * 2 + 1].data = |
|
|
|
sampleObject.charData.oriData[index].valueData[ |
|
|
|
this.curBenchX |
|
|
|
]; |
|
|
|
seriesData[index * 2 + 1].data = |
|
|
|
oriIndexData.valueData[this.curBenchX]; |
|
|
|
} |
|
|
|
}); |
|
|
|
sampleObject.charData.charOption.xAxis.minInterval = |
|
|
|
this.isActive === 0 ? 1 : 0; |
|
|
|
sampleObject.charData.charOption.xAxis.axisLabel.rotate = |
|
|
|
this.isActive === 2 ? 0 : 90; |
|
|
|
|
|
|
|
const optionxAxis = sampleObject.charData.charOption.xAxis; |
|
|
|
const seriesData = sampleObject.charData.charOption.series[0]; |
|
|
|
optionxAxis.minInterval = this.isActive === 0 ? 1 : 0; |
|
|
|
optionxAxis.axisLabel.rotate = this.isActive === 2 ? 0 : 90; |
|
|
|
sampleObject.updateFlag = true; |
|
|
|
sampleObject.charObj.clear(); |
|
|
|
|
|
|
|
if (sampleObject.charData.charOption.series[0].data.length === 1) { |
|
|
|
sampleObject.charData.charOption.series[0].showSymbol = true; |
|
|
|
if (seriesData.data.length === 1) { |
|
|
|
seriesData.showSymbol = true; |
|
|
|
sampleObject.onePoint = true; |
|
|
|
} else { |
|
|
|
sampleObject.charData.charOption.series[0].showSymbol = false; |
|
|
|
seriesData.showSymbol = false; |
|
|
|
sampleObject.onePoint = false; |
|
|
|
} |
|
|
|
this.updateOrCreateChar(sampleObject.sampleIndex); |
|
|
|
this.updateOrCreateChar(sampleObject.sampleIndex, true); |
|
|
|
} |
|
|
|
}); |
|
|
|
}, 500); |
|
|
|
@@ -1763,40 +1787,35 @@ export default { |
|
|
|
return; |
|
|
|
} |
|
|
|
this.yAxisScaleTimer = setTimeout(() => { |
|
|
|
const tempOption = sampleObject.charData.charOption; |
|
|
|
const tempOriData = sampleObject.charData.oriData; |
|
|
|
const log = !sampleObject.log; |
|
|
|
if (log) { |
|
|
|
sampleObject.charData.charOption.toolbox.feature.myTool2.iconStyle.borderColor = |
|
|
|
'#3E98C5'; |
|
|
|
sampleObject.charData.charOption.yAxis.type = 'log'; |
|
|
|
tempOption.toolbox.feature.myTool2.iconStyle.borderColor = '#3E98C5'; |
|
|
|
tempOption.yAxis.type = 'log'; |
|
|
|
} else { |
|
|
|
sampleObject.charData.charOption.yAxis.type = 'value'; |
|
|
|
sampleObject.charData.charOption.toolbox.feature.myTool2.iconStyle.borderColor = |
|
|
|
'#666'; |
|
|
|
tempOption.yAxis.type = 'value'; |
|
|
|
tempOption.toolbox.feature.myTool2.iconStyle.borderColor = '#666'; |
|
|
|
} |
|
|
|
sampleObject.charData.oriData.forEach((originData, index) => { |
|
|
|
tempOriData.forEach((originData, index) => { |
|
|
|
if (log) { |
|
|
|
sampleObject.charData.charOption.series[ |
|
|
|
index * 2 |
|
|
|
].data = this.formateSmoothData( |
|
|
|
sampleObject.charData.oriData[index].logData[this.curBenchX], |
|
|
|
tempOption.series[index * 2].data = this.formateSmoothData( |
|
|
|
tempOriData[index].logData[this.curBenchX], |
|
|
|
); |
|
|
|
sampleObject.charData.charOption.series[index * 2 + 1].data = |
|
|
|
sampleObject.charData.oriData[index].logData[this.curBenchX]; |
|
|
|
tempOption.series[index * 2 + 1].data = |
|
|
|
tempOriData[index].logData[this.curBenchX]; |
|
|
|
} else { |
|
|
|
sampleObject.charData.charOption.series[ |
|
|
|
index * 2 |
|
|
|
].data = this.formateSmoothData( |
|
|
|
sampleObject.charData.oriData[index].valueData[this.curBenchX], |
|
|
|
tempOption.series[index * 2].data = this.formateSmoothData( |
|
|
|
tempOriData[index].valueData[this.curBenchX], |
|
|
|
); |
|
|
|
sampleObject.charData.charOption.series[index * 2 + 1].data = |
|
|
|
sampleObject.charData.oriData[index].valueData[this.curBenchX]; |
|
|
|
tempOption.series[index * 2 + 1].data = |
|
|
|
tempOriData[index].valueData[this.curBenchX]; |
|
|
|
} |
|
|
|
}); |
|
|
|
sampleObject.log = log; |
|
|
|
sampleObject.updateFlag = true; |
|
|
|
sampleObject.charObj.clear(); |
|
|
|
|
|
|
|
const tempOption = sampleObject.charData.charOption; |
|
|
|
const dataObj = tempOption.series[0]; |
|
|
|
|
|
|
|
// one point |
|
|
|
@@ -1834,19 +1853,12 @@ export default { |
|
|
|
} else { |
|
|
|
this.scalarCompare = this.$t('scalar.comparison'); |
|
|
|
|
|
|
|
if (this.abort) { |
|
|
|
this.curPageArr.forEach((sampleObject) => { |
|
|
|
this.$nextTick(() => { |
|
|
|
// Draw chart |
|
|
|
if (!this.compare) { |
|
|
|
this.updateOrCreateChar(sampleObject.sampleIndex); |
|
|
|
} else { |
|
|
|
this.abort = true; |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.abort = false; |
|
|
|
} |
|
|
|
this.curPageArr.forEach((sampleObject) => { |
|
|
|
// Draw chart |
|
|
|
if (!sampleObject.charObj) { |
|
|
|
this.updateOrCreateChar(sampleObject.sampleIndex); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
this.resizeCallback(); |
|
|
|
@@ -1896,49 +1908,9 @@ export default { |
|
|
|
|
|
|
|
delThreshold(sampleItem) { |
|
|
|
this.stopUpdateSamples(); |
|
|
|
this.$confirm(this.$t('scalar.isDelete'), this.$t('scalar.info'), { |
|
|
|
confirmButtonText: this.$t('public.sure'), |
|
|
|
cancelButtonText: this.$t('public.cancel'), |
|
|
|
type: 'warning', |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
|
this.getCache(); |
|
|
|
if ( |
|
|
|
this.thresholdLocal && |
|
|
|
this.thresholdLocal[this.decodeTrainingJobId] && |
|
|
|
this.thresholdLocal[this.decodeTrainingJobId][sampleItem.tagName] |
|
|
|
) { |
|
|
|
delete this.thresholdLocal[this.decodeTrainingJobId][ |
|
|
|
sampleItem.tagName |
|
|
|
]; |
|
|
|
this.clearCache(); |
|
|
|
localStorage.setItem( |
|
|
|
'thresholdCache', |
|
|
|
JSON.stringify(this.thresholdLocal), |
|
|
|
); |
|
|
|
} |
|
|
|
sampleItem.pieceStr = ''; |
|
|
|
const tempCharOption = sampleItem.charData.charOption; |
|
|
|
|
|
|
|
if ( |
|
|
|
tempCharOption.visualMap && |
|
|
|
tempCharOption.visualMap['pieces'] && |
|
|
|
tempCharOption.visualMap['pieces'].length > 0 |
|
|
|
) { |
|
|
|
tempCharOption.visualMap = null; |
|
|
|
tempCharOption.series[0].markLine = null; |
|
|
|
tempCharOption.series[0].lineStyle['color'] = sampleItem.colors; |
|
|
|
} |
|
|
|
sampleItem.charObj.setOption(tempCharOption, false); |
|
|
|
if (this.isTimeReload) { |
|
|
|
this.autoUpdateSamples(); |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch(() => { |
|
|
|
if (this.isTimeReload) { |
|
|
|
this.autoUpdateSamples(); |
|
|
|
} |
|
|
|
}); |
|
|
|
this.currentTagName = sampleItem.tagName; |
|
|
|
this.currentSample = sampleItem; |
|
|
|
this.delThresholdVisible = true; |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
@@ -2325,6 +2297,90 @@ export default { |
|
|
|
this.autoUpdateSamples(); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* delete threshold cancel |
|
|
|
*/ |
|
|
|
|
|
|
|
delThresholdCancel() { |
|
|
|
this.currentTagName = ''; |
|
|
|
this.currentSample = {}; |
|
|
|
this.delThresholdSwitch = false; |
|
|
|
this.delThresholdVisible = false; |
|
|
|
if (this.isTimeReload) { |
|
|
|
this.autoUpdateSamples(); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* delete threshold commit |
|
|
|
*/ |
|
|
|
|
|
|
|
delThresholdCommit() { |
|
|
|
this.getCache(); |
|
|
|
if (this.delThresholdSwitch) { |
|
|
|
this.originDataArr.forEach((sampleObject) => { |
|
|
|
if (this.multiSelectedTagNames[sampleObject.tagName]) { |
|
|
|
if ( |
|
|
|
this.thresholdLocal && |
|
|
|
this.thresholdLocal[this.decodeTrainingJobId] && |
|
|
|
this.thresholdLocal[this.decodeTrainingJobId][ |
|
|
|
sampleObject.tagName |
|
|
|
] |
|
|
|
) { |
|
|
|
delete this.thresholdLocal[this.decodeTrainingJobId][ |
|
|
|
sampleObject.tagName |
|
|
|
]; |
|
|
|
sampleObject.pieceStr = ''; |
|
|
|
const tempCharOption = sampleObject.charData.charOption; |
|
|
|
if ( |
|
|
|
tempCharOption.visualMap && |
|
|
|
tempCharOption.visualMap['pieces'] && |
|
|
|
tempCharOption.visualMap['pieces'].length > 0 |
|
|
|
) { |
|
|
|
tempCharOption.visualMap = null; |
|
|
|
tempCharOption.series[0].markLine = null; |
|
|
|
tempCharOption.series[0].lineStyle['color'] = |
|
|
|
sampleObject.colors; |
|
|
|
} |
|
|
|
if (sampleObject.charObj) { |
|
|
|
sampleObject.charObj.setOption(tempCharOption, false); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} else { |
|
|
|
if ( |
|
|
|
this.thresholdLocal && |
|
|
|
this.thresholdLocal[this.decodeTrainingJobId] && |
|
|
|
this.thresholdLocal[this.decodeTrainingJobId][this.currentTagName] |
|
|
|
) { |
|
|
|
delete this.thresholdLocal[this.decodeTrainingJobId][ |
|
|
|
this.currentTagName |
|
|
|
]; |
|
|
|
this.currentSample.pieceStr = ''; |
|
|
|
const tempCharOption = this.currentSample.charData.charOption; |
|
|
|
if ( |
|
|
|
tempCharOption.visualMap && |
|
|
|
tempCharOption.visualMap['pieces'] && |
|
|
|
tempCharOption.visualMap['pieces'].length > 0 |
|
|
|
) { |
|
|
|
tempCharOption.visualMap = null; |
|
|
|
tempCharOption.series[0].markLine = null; |
|
|
|
tempCharOption.series[0].lineStyle[ |
|
|
|
'color' |
|
|
|
] = this.currentSample.colors; |
|
|
|
} |
|
|
|
this.currentSample.charObj.setOption(tempCharOption, false); |
|
|
|
} |
|
|
|
} |
|
|
|
this.clearCache(); |
|
|
|
localStorage.setItem( |
|
|
|
'thresholdCache', |
|
|
|
JSON.stringify(this.thresholdLocal), |
|
|
|
); |
|
|
|
this.delThresholdVisible = false; |
|
|
|
}, |
|
|
|
}, |
|
|
|
components: { |
|
|
|
ScalarButton, |
|
|
|
@@ -2601,7 +2657,7 @@ export default { |
|
|
|
|
|
|
|
span { |
|
|
|
cursor: pointer; |
|
|
|
width: 80px; |
|
|
|
width: auto; |
|
|
|
height: 39px; |
|
|
|
display: inline-block; |
|
|
|
} |
|
|
|
@@ -2702,7 +2758,7 @@ export default { |
|
|
|
.fs16 { |
|
|
|
font-size: 16px; |
|
|
|
color: #6c7280; |
|
|
|
width: 160px; |
|
|
|
width: 180px; |
|
|
|
} |
|
|
|
} |
|
|
|
.tooltip-show-content { |
|
|
|
@@ -2711,4 +2767,34 @@ export default { |
|
|
|
.cl-title-right { |
|
|
|
padding-right: 20px; |
|
|
|
} |
|
|
|
|
|
|
|
.delDialog { |
|
|
|
.el-dialog__header { |
|
|
|
padding: 15px 15px 10px; |
|
|
|
} |
|
|
|
.el-dialog__title { |
|
|
|
font-weight: normal; |
|
|
|
line-height: 18px; |
|
|
|
} |
|
|
|
.el-dialog__body { |
|
|
|
padding: 10px 15px; |
|
|
|
} |
|
|
|
|
|
|
|
.delThresholdItem { |
|
|
|
display: flex; |
|
|
|
margin-bottom: 10px; |
|
|
|
} |
|
|
|
|
|
|
|
.delThresholdIcon { |
|
|
|
color: #e6a23c; |
|
|
|
font-size: 24px; |
|
|
|
width: 40px; |
|
|
|
margin-right: 10px; |
|
|
|
} |
|
|
|
|
|
|
|
.delThresholdInfo { |
|
|
|
line-height: 24px; |
|
|
|
height: 24px; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |