From f30ad4cbbd4d9e2943b9f18ae2546e947cc068d2 Mon Sep 17 00:00:00 2001 From: zhangyu Date: Fri, 22 Jul 2022 16:50:20 +0800 Subject: [PATCH] =?UTF-8?q?NEZ-2060=20fix=EF=BC=9Atable=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=9B=BE=E8=A1=A8=20value=20mapping=E6=8A=98=E5=8F=A0?= =?UTF-8?q?=E6=97=B6=E5=A2=9E=E5=8A=A0=E6=98=BE=E7=A4=BA=20column?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nezha-fronted/src/assets/css/common.scss | 2 + .../src/components/chart/chart/chartTable.vue | 54 +++++++++++++++---- .../src/components/common/popBox/guide.vue | 2 +- .../rightBox/administration/userBox.vue | 2 +- .../common/rightBox/chart/chartConfig.vue | 1 + .../rightBox/chart/systemChartConfig.vue | 1 + .../src/components/layout/header.vue | 4 +- 7 files changed, 53 insertions(+), 13 deletions(-) diff --git a/nezha-fronted/src/assets/css/common.scss b/nezha-fronted/src/assets/css/common.scss index 7b482338d..806813744 100644 --- a/nezha-fronted/src/assets/css/common.scss +++ b/nezha-fronted/src/assets/css/common.scss @@ -390,6 +390,8 @@ td .nz-icon-gear:before { padding: 0; .link-title { padding: 0 20px; + height: 100%; + display: block; } } .el-icon-arrow-right { diff --git a/nezha-fronted/src/components/chart/chart/chartTable.vue b/nezha-fronted/src/components/chart/chart/chartTable.vue index c791787b5..7909361fa 100644 --- a/nezha-fronted/src/components/chart/chart/chartTable.vue +++ b/nezha-fronted/src/components/chart/chart/chartTable.vue @@ -36,7 +36,7 @@ {{showValueMapping(scope.row,col.title)}}
- {{scope.row.display[col.title + 'display']}} + {{scope.row.display[col.title + 'display'].display}}
@@ -172,7 +172,7 @@ export default { if (this.chartInfo.param.enable && this.chartInfo.param.enable.valueMapping) { valueMapping[column.title].forEach(item => { // const rowValue = row.display[column.title + 'display'] - const rowValue = row.display[column.title + 'display'] + const rowValue = row.display[column.title + 'display'].oldValue if (item.type === 'value') { if (rowValue == item.value) { obj[column.title + 'mapping'] = item @@ -201,7 +201,10 @@ export default { ...row } this.columns.forEach((column) => { - obj[column.title + 'display'] = '' + obj[column.title + 'display'] = { + display: '', + oldValue: '' + } if (/\{\{.+\}\}/.test(column.display)) { const labelValue = column.display.replace(/(\{\{.+?\}\})/g, function (i) { const label = i.substr(i.indexOf('{{') + 2, i.indexOf('}}') - i.indexOf('{{') - 2) @@ -233,9 +236,42 @@ export default { } return value || '' }) - obj[column.title + 'display'] = labelValue + const oldLabelValue = column.display.replace(/(\{\{.+?\}\})/g, function (i) { + const label = i.substr(i.indexOf('{{') + 2, i.indexOf('}}') - i.indexOf('{{') - 2) + let value = null + if (lodash.get(params, label)) { + value = lodash.get(params, label) + if (!((typeof value) == 'string' && value.constructor == String)) { + let legend = '' + if (value.__name__) { + legend += `${value.__name__}{` + } else { + legend += '{' + } + const tagKeysArr = Object.keys(value) + tagKeysArr.forEach(tagKey => { + if (tagKey !== '__name__') { + legend += `${tagKey}="${value[tagKey]}",` + } + }) + if (legend.endsWith(',')) { + legend = legend.substr(0, legend.length - 1) + } + legend += '}' + value = legend + } + } + return value || '' + }) + obj[column.title + 'display'] = { + display: labelValue, + oldValue: oldLabelValue + } } else { - obj[column.title + 'display'] = column.display + obj[column.title + 'display'] = { + display: column.display, + oldValue: column.display + } } }) return obj @@ -291,8 +327,8 @@ export default { // 本地正序 asce (prop) { return function (obj1, obj2) { - const val1 = obj1.display[prop + 'display'].replace(/\s*/g, '') - const val2 = obj2.display[prop + 'display'].replace(/\s*/g, '') + const val1 = obj1.display[prop + 'display'].display.replace(/\s*/g, '') + const val2 = obj2.display[prop + 'display'].display.replace(/\s*/g, '') if (val1 < val2) { return -1 } else if (val1 > val2) { @@ -305,8 +341,8 @@ export default { // 本地倒序 desc (prop) { return function (obj1, obj2) { - const val1 = obj1.display[prop + 'display'].replace(/\s*/g, '') - const val2 = obj2.display[prop + 'display'].replace(/\s*/g, '') + const val1 = obj1.display[prop + 'display'].display.replace(/\s*/g, '') + const val2 = obj2.display[prop + 'display'].display.replace(/\s*/g, '') if (val1 < val2) { return -1 } else if (val1 > val2) { diff --git a/nezha-fronted/src/components/common/popBox/guide.vue b/nezha-fronted/src/components/common/popBox/guide.vue index c83eaf5ce..f395c52d7 100644 --- a/nezha-fronted/src/components/common/popBox/guide.vue +++ b/nezha-fronted/src/components/common/popBox/guide.vue @@ -24,7 +24,7 @@