diff --git a/nezha-fronted/src/assets/css/components/chart/chart.scss b/nezha-fronted/src/assets/css/components/chart/chart.scss index fdaab408b..0a1564981 100644 --- a/nezha-fronted/src/assets/css/components/chart/chart.scss +++ b/nezha-fronted/src/assets/css/components/chart/chart.scss @@ -396,8 +396,8 @@ box-sizing: border-box; .legend-item { + padding: 0 8px; white-space: nowrap; - margin-right: 10px; cursor: pointer; display: inline-block; line-height: 20px; @@ -406,16 +406,27 @@ .legend-item, .legend--table-row { &.legend-item--inactive, &.row--inactive { color: $--color-text-secondary; - .legend-shape { background-color: $--background-color-1 !important; } - .nz-icon{ color: $--background-color-1 !important; } } } + .nz-icon-override{ + visibility: hidden; + font-size: 15px; + margin-left: 5px; + vertical-align: middle; + } + .legend-item:hover { + background-color: $--background-color-1; + cursor: pointer; + .nz-icon-override{ + visibility: visible; + } + } // 表格类型 .legend--table { @@ -429,6 +440,9 @@ .legend--table-row:not(:first-of-type):hover { background-color: $--background-color-1; cursor: pointer; + .nz-icon-override{ + visibility: visible; + } } .legend--table-row:first-of-type { color:#33a2e5; diff --git a/nezha-fronted/src/components/chart/chart/chartTimeSeries.vue b/nezha-fronted/src/components/chart/chart/chartTimeSeries.vue index 17f231cb8..c58148b39 100644 --- a/nezha-fronted/src/components/chart/chart/chartTimeSeries.vue +++ b/nezha-fronted/src/components/chart/chart/chartTimeSeries.vue @@ -697,16 +697,33 @@ export default { if (this.isConnect !== 'none') { echarts.disconnect('timeSeriesGroup') } - const index = this.tooltip.clickIndex - getChart(this.chartId).dispatchAction({ - type: 'legendInverseSelect' + this.legends.forEach((item, index) => { + if (index == this.tooltip.clickIndex) { + getChart(this.chartId).dispatchAction({ + type: 'legendSelect', + name: item.name + }) + } else { + getChart(this.chartId).dispatchAction({ + type: 'legendUnSelect', + name: item.name + }) + } }) - getChart(this.chartId).dispatchAction({ - type: 'legendSelect', - name: this.legends[index].name - }) - this.isGrey = this.isGrey.map((g, i) => i !== index) + this.isGrey = this.isGrey.map((g, i) => i !== this.tooltip.clickIndex) this.$refs.legend.isGrey = this.isGrey + + // 点击后 处理Y轴的刻度边的 + const chartInfo = this.chartInfo + const series = this.$lodash.cloneDeep(this.series) + const dataArg = series.filter((seriesItem, seriesIndex) => !this.isGrey[seriesIndex]) + const option = this.renderYAxis(dataArg, chartInfo, 'legend') + getChart(this.chartId) && getChart(this.chartId).setOption({ + yAxis: [ + ...option.yAxis + ] + }) + if (this.isConnect !== 'none') { echarts.disconnect('timeSeriesGroup') } @@ -721,6 +738,18 @@ export default { }) this.isGrey = this.isGrey.map(() => false) this.$refs.legend.isGrey = this.isGrey + + // 点击后 处理Y轴的刻度边的 + const chartInfo = this.chartInfo + const series = this.$lodash.cloneDeep(this.series) + const dataArg = series.filter((seriesItem, seriesIndex) => !this.isGrey[seriesIndex]) + const option = this.renderYAxis(dataArg, chartInfo, 'legend') + getChart(this.chartId) && getChart(this.chartId).setOption({ + yAxis: [ + ...option.yAxis + ] + }) + if (this.isConnect !== 'none') { echarts.disconnect('timeSeriesGroup') } diff --git a/nezha-fronted/src/components/chart/chart/legend.vue b/nezha-fronted/src/components/chart/chart/legend.vue index 66a970cc9..7dc086e99 100644 --- a/nezha-fronted/src/components/chart/chart/legend.vue +++ b/nezha-fronted/src/components/chart/chart/legend.vue @@ -25,6 +25,7 @@ {{item.alias ? item.alias : item.name}} +