diff --git a/src/views/monitor/datalog/DataLogCompareModal.vue b/src/views/monitor/datalog/DataLogCompareModal.vue index 2911c924395ae4f7fc34838c699855798fa65480..afb3cb3ac76092d034ecfae2d6e1d9256cd43fd8 100644 --- a/src/views/monitor/datalog/DataLogCompareModal.vue +++ b/src/views/monitor/datalog/DataLogCompareModal.vue @@ -127,15 +127,19 @@ async function initTableData() { console.info('params', params); queryCompareList(unref(params)).then((res) => { - console.info('test', res); dataVersion1Num.value = res[0].dataVersion; dataVersion2Num.value = res[1].dataVersion; let json1 = JSON.parse(res[0].dataContent); let json2 = JSON.parse(res[1].dataContent); + let data = []; + let fields = []; for (var item1 in json1) { + let matched = false; for (var item2 in json2) { if (item1 == item2) { + matched = true; + fields.push(item1); data.push({ code: item1, imgshow: '', @@ -144,8 +148,49 @@ }); } } + // some item1's field is not in item2. + if (matched == false) { + data.push({ + code: item1, + imgshow: '', + dataVersion1: json1[item1], + dataVersion2: '', + }); + } } - dataSource.value = data; + + for (var item2 in json2) { + let matched = false; + for (var item1 in json1) { + if (item1 == item2) { + matched = true; + } + } + // some item2's field is not in item1 + if (matched == false) { + fields.push(item2); + data.push({ + code: item2, + imgshow: '', + dataVersion1: '', + dataVersion2: json2[item2], + }); + } + } + + // sort the fields by name + fields.sort(); + let sortedData = []; + for (var field in fields) { + for (var d in data) { + if (data[d].code === fields[field]) { + sortedData.push(data[d]); + continue; + } + } + } + + dataSource.value = sortedData; }); } function handleChange1(value) {