diff --git a/nezha-fronted/src/components/charts/line-chart-block.vue b/nezha-fronted/src/components/charts/line-chart-block.vue index 463a32d3c..cf0979f40 100644 --- a/nezha-fronted/src/components/charts/line-chart-block.vue +++ b/nezha-fronted/src/components/charts/line-chart-block.vue @@ -7,7 +7,7 @@
-
+
@@ -587,16 +589,19 @@ export default { const step = bus.getStep(startTime, endTime) data.pens && data.pens.forEach((item, index) => { this.chartGetData.push({ id: item.id, res: [] }) - const arr = item.data.expressArr.map((ele) => { - let query = ele - if (!query) { - return new Promise(resolve => { - resolve({ data: '', status: 'no query' }) - }) - } - query += '&nullType=' + 'connected' - return this.$get('/prom/api/v1/query_range?query=' + query + '&start=' + this.$stringTimeParseToUnix(startTime) + '&end=' + this.$stringTimeParseToUnix(endTime) + '&step=' + '10m') - }) + let arr = [] + if (item.data.valueMappingShow) { + arr = item.data.expressArr.map((ele) => { + let query = ele + if (!query) { + return new Promise(resolve => { + resolve({ data: '', status: 'no query' }) + }) + } + query += '&nullType=' + 'connected' + return this.$get('/prom/api/v1/query_range?query=' + query + '&start=' + this.$stringTimeParseToUnix(startTime) + '&end=' + this.$stringTimeParseToUnix(endTime) + '&step=' + step) + }) + } axiosArr.push({ item, arr }) promiseArr.push(pensPromise(item, arr, index)) }) @@ -1068,6 +1073,7 @@ export default { expressArr: [''], legends: [''], tooltipShow: true, + valueMappingShow: true, panelName: 'topologyName', unit: 2, type: 'line', @@ -1104,6 +1110,7 @@ export default { expressArr: [''], legends: [''], tooltipShow: true, + valueMappingShow: true, panelName: 'topologyName', unit: 2, type: 'line', diff --git a/nezha-fronted/src/components/common/project/L5/CanvasProps.vue b/nezha-fronted/src/components/common/project/L5/CanvasProps.vue index 4d8a19a3b..ad161a3f8 100644 --- a/nezha-fronted/src/components/common/project/L5/CanvasProps.vue +++ b/nezha-fronted/src/components/common/project/L5/CanvasProps.vue @@ -25,7 +25,7 @@ - + @@ -35,15 +35,21 @@ + + + {{$t('dashboard.panel.chartForm.thresholds')}} + (0:Ok > … >{{selection.pen.data.valueMapping.length}}:Critical) + ({{selection.pen.data.valueMapping.length}}:Critical > … >0:Ok) + + + + -
- {{$t('alert.config.expr')}} - - - - - -
-
- - - - - - -
- - - - {{$t('dashboard.panel.chartForm.tooltip')}} - - - - - -
- - - - - - - - - {{item.name}} - - - - - - - - - - - - - - - - - {{item.name}} - - - -
- - - {{$t('dashboard.panel.chartForm.thresholds')}} - (0:Ok > … >{{selection.pen.data.valueMapping.length}}:Critical) - ({{selection.pen.data.valueMapping.length}}:Critical > … >0:Ok) - -
+
{{$t('project.topology.level')}} @@ -236,6 +167,103 @@
+ + + {{$t('dashboard.panel.chartForm.tooltip')}} + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + {{item.name}} + + + + + + + + + +
+ + + + + + +
+
+
+ +
+
+ @@ -1235,6 +1263,10 @@ export default { selection: { handler () { // this.loading = false + if (this.selection.pen && this.selection.pen.data && !this.selection.pen.data.expressAllArr) { + this.selection.pen.data.expressAllArr = [''] + this.selection.pen.data.legendsAll = [''] + } }, deep: true, immediate: true @@ -1559,16 +1591,16 @@ export default { return this.metricOptions }, addExpression () { - this.selection.pen.data.expressArr.push('') - this.selection.pen.data.legends.push('') + this.selection.pen.data.expressAllArr.push('') + this.selection.pen.data.legendsAll.push('') }, expressionChange (item) { }, removeExpression (index) { - if (this.selection.pen.data.expressArr.length > 1) { - this.selection.pen.data.expressArr.splice(index, 1) - this.selection.pen.data.legends.splice(index, 1) + if (this.selection.pen.data.expressAllArr.length > 1) { + this.selection.pen.data.expressAllArr.splice(index, 1) + this.selection.pen.data.legendsAll.splice(index, 1) this.$nextTick(() => { this.expressions.forEach((ex, index) => { if (ex) { @@ -1579,8 +1611,8 @@ export default { } }, copyExpression (index) { - this.selection.pen.data.expressArr.push(this.selection.pen.data.expressArr[index]) - this.selection.pen.data.legends.push(this.selection.pen.data.legends[index]) + this.selection.pen.data.expressAllArr.push(this.selection.pen.data.expressAllArr[index]) + this.selection.pen.data.legendsAll.push(this.selection.pen.data.legendsAll[index]) this.$nextTick(() => { this.expressions.forEach((ex, index) => { if (ex) { @@ -1746,11 +1778,11 @@ export default { width: 100px; margin-right: 10px; text-align: left; - padding-left:10px; + padding-left:0px; margin-left: 10px; height: 32px; line-height: 32px; - background: #E7EAED; + font-size: 14px; color: #606266; } .project-title { @@ -1866,10 +1898,9 @@ export default { .element-item { padding: 10px 10px 10px 0; - border: 1px dashed #dfe7f2; - width: calc(100% - 60px); + width: 100%; margin-bottom: 10px; - margin-left: 10px; + margin-top: 10px; } .right-box-form .element-item.form-row-item { @@ -1986,6 +2017,8 @@ export default { height: 24px; line-height: 24px; color: #FA901C; + box-sizing: border-box; + margin-left: 10px; } .mb10 { margin-bottom: 10px; @@ -2214,4 +2247,20 @@ export default { /deep/ .query-row .input-box{ margin-right: 0 !important; } + /deep/ .el-cascader-node{ + max-width: 200px; + overflow: hidden; + text-overflow:ellipsis; + white-space: nowrap; + } + /deep/ .nz-cascade-temp{ + box-sizing: border-box; + max-width: 170px; + overflow: hidden; + text-overflow:ellipsis; + white-space: nowrap; + } + /deep/ .metric-selector-title{ + background: #fff !important; + } diff --git a/nezha-fronted/src/components/common/project/L5/topoTooltip.vue b/nezha-fronted/src/components/common/project/L5/topoTooltip.vue index f738c61d9..514f4a057 100644 --- a/nezha-fronted/src/components/common/project/L5/topoTooltip.vue +++ b/nezha-fronted/src/components/common/project/L5/topoTooltip.vue @@ -9,7 +9,7 @@ :temp-dom="tempDom" :panel-id="-1" :is-lock="true" - :chart-index="0" + :chart-index="-2" :fromTopo="true" :chartTitleShow="false" :chart-data="chartData"> @@ -81,6 +81,7 @@ export default { this.tempDom.width = 250 }, process (item) { + console.log(item) const chartData = { ...this.chartDataTemp, ...item, name: item.chartTitle } chartData.elements = [] chartData.expressArr.forEach((item1, index) => { diff --git a/nezha-fronted/src/components/common/project/topologyL5.vue b/nezha-fronted/src/components/common/project/topologyL5.vue index efccbfc5b..fd323df89 100644 --- a/nezha-fronted/src/components/common/project/topologyL5.vue +++ b/nezha-fronted/src/components/common/project/topologyL5.vue @@ -654,16 +654,20 @@ export default { const step = bus.getStep(startTime, endTime) data.pens && data.pens.forEach((item, index) => { this.chartGetData.push({ id: item.id, res: [] }) - const arr = item.data.expressArr.map((ele) => { - let query = ele - if (!query) { - return new Promise(resolve => { - resolve({ data: '', status: 'no query' }) - }) - } - query += '&nullType=' + 'connected' - return this.$get('/prom/api/v1/query_range?query=' + query + '&start=' + this.$stringTimeParseToUnix(startTime) + '&end=' + this.$stringTimeParseToUnix(endTime) + '&step=' + step) - }) + let arr = [] + console.log(item.data.valueMappingShow) + if (item.data.valueMappingShow) { + arr = item.data.expressArr.map((ele) => { + let query = ele + if (!query) { + return new Promise(resolve => { + resolve({ data: '', status: 'no query' }) + }) + } + query += '&nullType=' + 'connected' + return this.$get('/prom/api/v1/query_range?query=' + query + '&start=' + this.$stringTimeParseToUnix(startTime) + '&end=' + this.$stringTimeParseToUnix(endTime) + '&step=' + step) + }) + } axiosArr.push({ item, arr }) promiseArr.push(pensPromise(item, arr, index)) }) @@ -1028,6 +1032,7 @@ export default { show: false, error: false, expressArr: [], + expressAllArr: [], state: {} } } @@ -1170,8 +1175,11 @@ export default { }], valueMappingSort: 'asc', expressArr: [''], + expressAllArr: [''], legends: [''], + legendsAll: [''], tooltipShow: true, + valueMappingShow: true, panelName: 'topologyName', unit: 2, type: 'line', @@ -1206,8 +1214,11 @@ export default { }], valueMappingSort: 'asc', /* desc */ expressArr: [''], + expressAllArr: [''], legends: [''], + legendsAll: [''], tooltipShow: true, + valueMappingShow: true, panelName: 'topologyName', unit: 2, type: 'line', @@ -1766,6 +1777,10 @@ export default { item.data.expressArr = [''] item.data.legends = [''] } + if (!item.data.expressAllArr || !item.data.expressAllArr.length) { + item.data.expressAllArr = [''] + item.data.legendsAll = [''] + } item.animateType = item.data.animateType if (item.type === 0) { item.fillStyle = item.data.fillStyle @@ -1871,6 +1886,14 @@ export default { return true } }) + item.data.expressAllArr = item.data.expressAllArr.filter((expression, i) => { + if (!expression) { + item.data.legendsAll.splice(i, 1) + return false + } else { + return true + } + }) }) if (this.penToolTipScale == getTopology(this.topologyIndex).data.scale) { getTopology(this.topologyIndex).data.scale = this.oldScale diff --git a/nezha-fronted/src/components/page/config/system.vue b/nezha-fronted/src/components/page/config/system.vue index bd241a1ac..3c04e0564 100644 --- a/nezha-fronted/src/components/page/config/system.vue +++ b/nezha-fronted/src/components/page/config/system.vue @@ -106,8 +106,8 @@ autocomplete="off" - - + +
{{$t("config.system.email.pinTip")}}
@@ -295,7 +295,7 @@ export default { email_port: 25, email_timeout: 10, email_auth_account: '', - email_auth_pin: '', + email_auth_password: '', email_send_account: '', email_test_account: '', email_security_type: 'NONE' diff --git a/nezha-fronted/src/components/page/dashboard/explore/promqlInput.vue b/nezha-fronted/src/components/page/dashboard/explore/promqlInput.vue index ae06ff4b8..34442b120 100644 --- a/nezha-fronted/src/components/page/dashboard/explore/promqlInput.vue +++ b/nezha-fronted/src/components/page/dashboard/explore/promqlInput.vue @@ -13,7 +13,7 @@ :props="{emitPath:false,}" @change="metricChangeNew">