diff --git a/mindinsight/ui/src/assets/images/virtual-node.svg b/mindinsight/ui/src/assets/images/virtual-node.svg
index 5ae7f9d7..b38252da 100644
--- a/mindinsight/ui/src/assets/images/virtual-node.svg
+++ b/mindinsight/ui/src/assets/images/virtual-node.svg
@@ -4,6 +4,6 @@
orange
Created with Sketch.
-
+
\ No newline at end of file
diff --git a/mindinsight/ui/src/views/train-manage/model-traceback.vue b/mindinsight/ui/src/views/train-manage/model-traceback.vue
index fd2eb3d7..1c73b3bf 100644
--- a/mindinsight/ui/src/views/train-manage/model-traceback.vue
+++ b/mindinsight/ui/src/views/train-manage/model-traceback.vue
@@ -180,16 +180,16 @@ limitations under the License.
@click="allSelect"
class="select-all-button"
:class="[selectCheckAll ? 'checked-color' : 'button-text',
- basearr.length > checkOptions.length ? 'btn-disabled' : '']"
- :disabled="basearr.length > checkOptions.length">
+ rightAllOptions.length > showOptions.length ? 'btn-disabled' : '']"
+ :disabled="rightAllOptions.length > showOptions.length">
{{$t('public.selectAll')}}
@@ -566,6 +566,8 @@ export default {
echartDialogVisible: false,
// right data
+ rightAllOptions: [],
+ showOptions: [],
sortChangeTimer: null,
unhideRecordsTimer: null,
tagDialogShow: false,
@@ -604,6 +606,7 @@ export default {
keysOfStringValue: [], // All keys whose values are character strings
keysOfIntValue: [], // All keys whose values are int
keysOfMixed: [],
+ keysOfListType: [],
echart: {
chart: null,
allData: [],
@@ -632,6 +635,7 @@ export default {
int: 'int',
str: 'str',
mixed: 'mixed',
+ list: 'list',
category: 'category',
model_size: 'model_size',
dataset_mark: 'dataset_mark',
@@ -860,13 +864,39 @@ export default {
// data of pie
for (let i = 0; i < pieHBuckets.length; i++) {
const objData = {};
- let preNumber = pieHBuckets[i][0];
- preNumber = Math.round(preNumber * Math.pow(10, 4)) / Math.pow(10, 4);
- let nextNumber = pieHBuckets[i][1];
- nextNumber = Math.round(nextNumber * Math.pow(10, 4)) / Math.pow(10, 4);
- let numSum = preNumber + nextNumber;
- numSum = Math.round(numSum * Math.pow(10, 4)) / Math.pow(10, 4);
- const numSumString = preNumber + '~' + numSum;
+ let preNum = pieHBuckets[i][0];
+ let numSum = undefined;
+ preNum = Math.round(preNum * Math.pow(10, 4)) / Math.pow(10, 4);
+ if (i < pieHBuckets.length - 1) {
+ numSum =
+ Math.round(pieHBuckets[i + 1][0] * Math.pow(10, 4)) /
+ Math.pow(10, 4);
+ } else {
+ let nextNumber = pieHBuckets[i][1];
+ nextNumber =
+ Math.round(nextNumber * Math.pow(10, 4)) / Math.pow(10, 4);
+ numSum = preNum + nextNumber;
+ numSum = Math.round(numSum * Math.pow(10, 4)) / Math.pow(10, 4);
+ }
+ const minNegativeNum = -10000;
+ const maxNegativeNum = -0.0001;
+ const minPositiveNum = 0.0001;
+ const maxPositiveNum = 10000;
+ if (
+ ((preNum > maxPositiveNum || preNum < minPositiveNum) &&
+ preNum > 0) ||
+ ((preNum < minNegativeNum || preNum > maxNegativeNum) && preNum < 0)
+ ) {
+ preNum = preNum.toExponential(2);
+ }
+ if (
+ ((numSum > maxPositiveNum || numSum < minPositiveNum) &&
+ numSum > 0) ||
+ ((numSum < minNegativeNum || numSum > maxNegativeNum) && numSum < 0)
+ ) {
+ numSum = numSum.toExponential(2);
+ }
+ const numSumString = preNum + '~' + numSum;
this.pieLegendData.push(numSumString);
objData.value = pieHBuckets[i][2];
objData.name = numSumString;
@@ -887,10 +917,13 @@ export default {
}
tempData.forEach((item) => {
if (!item.unselected) {
- barHyper.push(item);
+ if (item.name.startsWith('[U]')) {
+ barHyper.unshift(item);
+ } else {
+ barHyper.push(item);
+ }
}
});
-
barHyper.sort(this.sortBy('importance'));
this.selectedBarArray = [];
const mustSelectOptions = [];
@@ -1025,7 +1058,12 @@ export default {
type: 'pie',
radius: '55%',
center: ['67%', '50%'],
- label: {alignTo: 'labelLine', formatter: '{c}({d}%)'},
+ label: {
+ normal: {
+ show: false,
+ positionL: 'inner',
+ },
+ },
data: this.pieSeriesData,
emphasis: {
itemStyle: {
@@ -1066,9 +1104,19 @@ export default {
},
formatter: (val) => {
this.tooltipsBarData = val;
+ const maxTooltipLen = 30;
+ let name = val[0].name;
+ name = name.replace(/' + temp : temp;
+ }
+
const res =
'' +
- val[0].name +
+ str +
'
' +
this.$t('modelTraceback.parameterImportance') +
':' +
@@ -1138,6 +1186,7 @@ export default {
width: '30px',
start: 100, // The starting percentage of the data frame range
end: this.barYAxisData.length > 15 ? 40 : 0, // The end percentage of the data frame range
+ showDetail: false,
},
],
};
@@ -1309,6 +1358,7 @@ export default {
indeterminate: false,
};
this.keysOfMixed = [];
+ this.keysOfListType = [];
this.userOptions = [];
this.metricOptions = [];
@@ -1387,6 +1437,9 @@ export default {
// list of type mixed
this.keysOfMixed.push(i);
this.keysOfStringValue.push(i);
+ } else if (customized[i].type === this.valueType.list) {
+ this.keysOfListType.push(i);
+ this.keysOfStringValue.push(i);
}
if (i.startsWith(this.replaceStr.userDefined)) {
this.labelObj.userDefined = this.valueName.userDefined;
@@ -1501,11 +1554,16 @@ export default {
this.basearr.push(otherTemp);
}
}
+ let tempOptions = [];
this.checkOptions.forEach((item) => {
+ tempOptions = tempOptions.concat(item.options);
item.options.forEach((option) => {
this.selectArrayValue.push(option.label);
});
});
+ this.showOptions = tempOptions;
+ // select all options
+ this.rightAllOptions = tempOptions;
this.table.columnOptions = Object.assign(
{
summary_dir: {
@@ -1693,6 +1751,7 @@ export default {
'device_num',
]; // All keys whose values are int
this.keysOfMixed = [];
+ this.keysOfListType=[];
},
/**
* Column initialization
@@ -1918,7 +1977,7 @@ export default {
if (
this.keysOfMixed &&
this.keysOfMixed.length &&
- this.keysOfMixed.includes(key)
+ this.keysOfMixed.includes(key)||this.keysOfListType.includes(key)
) {
this.$message.error(this.$t('modelTraceback.mixedItemMessage'));
this.$nextTick(() => {
@@ -2407,6 +2466,7 @@ export default {
// Model traceability drop-down box on the right
this.keyWord = '';
this.checkOptions = this.basearr;
+ this.showOptions = this.rightAllOptions;
}
},
/**
@@ -2423,9 +2483,9 @@ export default {
: restaurants;
this.barNameList = results;
this.searchOptions = [];
- const list = [];
+ let list = [];
results.forEach((item) => {
- list.concat(item.options);
+ list = list.concat(item.options);
});
this.searchOptions = list;
} else {
@@ -2436,6 +2496,12 @@ export default {
? this.createFilter(queryString, restaurants)
: restaurants;
this.checkOptions = results;
+ this.showOptions = [];
+ let list = [];
+ results.forEach((item) => {
+ list = list.concat(item.options);
+ });
+ this.showOptions = list;
}
},
@@ -2547,7 +2613,11 @@ export default {
if (this.targetData[i].name === this.yTitle) {
this.targetData[i].hyper_parameters.forEach((item) => {
if (!item.unselected) {
- barHyper.push(item);
+ if (item.name.startsWith('[U]')) {
+ barHyper.unshift(item);
+ } else {
+ barHyper.push(item);
+ }
}
});
}