From 71ec19420546adb326c89761223f841810bf3f84 Mon Sep 17 00:00:00 2001 From: Ovilia Date: Mon, 8 Feb 2021 15:21:28 +0800 Subject: [PATCH 1/4] fix(visualMap): use itemSymbol as default symbol type and fix #5719 --- src/component/visualMap/VisualMapModel.ts | 9 +++++++-- test/visualMap-scatter-colorAndSymbol.html | 11 +++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/component/visualMap/VisualMapModel.ts b/src/component/visualMap/VisualMapModel.ts index 6da2a7eeb4..5dd886ce68 100644 --- a/src/component/visualMap/VisualMapModel.ts +++ b/src/component/visualMap/VisualMapModel.ts @@ -39,6 +39,7 @@ import Model from '../../model/Model'; import GlobalModel from '../../model/Global'; import SeriesModel from '../../model/Series'; import List from '../../data/List'; +import {PiecewiseVisualMapOption} from './PiecewiseModel'; const mapVisual = VisualMapping.mapVisual; const eachVisual = VisualMapping.eachVisual; @@ -483,6 +484,10 @@ class VisualMapModel extends Com const symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize; const inactiveColor = this.get('inactiveColor'); + const itemSymbol = this.type === 'visualMap.piecewise' + ? (this as VisualMapModel).get('itemSymbol') + : null; + const defaultSymbol = itemSymbol || 'roundRect'; each(this.stateList, function (state: VisualState) { @@ -501,7 +506,7 @@ class VisualMapModel extends Com if (visuals.symbol == null) { visuals.symbol = symbolExists && zrUtil.clone(symbolExists) - || (isCategory ? 'roundRect' : ['roundRect']); + || (isCategory ? defaultSymbol : [defaultSymbol]); } if (visuals.symbolSize == null) { visuals.symbolSize = symbolSizeExists @@ -511,7 +516,7 @@ class VisualMapModel extends Com // Filter square and none. visuals.symbol = mapVisual(visuals.symbol, function (symbol) { - return (symbol === 'none' || symbol === 'square') ? 'roundRect' : symbol; + return (symbol === 'none' || symbol === 'square') ? defaultSymbol : symbol; }); // Normalize symbolSize diff --git a/test/visualMap-scatter-colorAndSymbol.html b/test/visualMap-scatter-colorAndSymbol.html index ca096f298a..0be58498e3 100644 --- a/test/visualMap-scatter-colorAndSymbol.html +++ b/test/visualMap-scatter-colorAndSymbol.html @@ -86,7 +86,8 @@ dimension: 3, seriesIndex: 0, max: 10, - color: ['red', 'pink', 'black'] + color: ['red', 'pink', 'black'], + itemSymbol: 'circle' }, { right: 0, @@ -98,7 +99,8 @@ backgroundColor: '#eee', inRange: { symbol: ['rect', 'line', 'path://M 100 100 L 300 100 L 200 300 z'] - } + }, + itemSymbol: 'diamond' }, { left: 'center', @@ -116,9 +118,10 @@ { gte: 0, color: 'green', - symbol: 'rect' + // symbol: 'rect' } - ] + ], + itemSymbol: 'circle' } ], series: [ From fffa912b86836743370d3cdd7a4540530d2fee36 Mon Sep 17 00:00:00 2001 From: Ovilia Date: Wed, 31 Mar 2021 15:47:43 +0800 Subject: [PATCH 2/4] fix(visualMap): no need to filter square --- src/component/visualMap/VisualMapModel.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/component/visualMap/VisualMapModel.ts b/src/component/visualMap/VisualMapModel.ts index 5dd886ce68..2b0efccea2 100644 --- a/src/component/visualMap/VisualMapModel.ts +++ b/src/component/visualMap/VisualMapModel.ts @@ -514,9 +514,9 @@ class VisualMapModel extends Com || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]); } - // Filter square and none. + // Filter none visuals.symbol = mapVisual(visuals.symbol, function (symbol) { - return (symbol === 'none' || symbol === 'square') ? defaultSymbol : symbol; + return symbol === 'none' ? defaultSymbol : symbol; }); // Normalize symbolSize From c9e70018017baadcef483348c37f5688502418f8 Mon Sep 17 00:00:00 2001 From: Ovilia Date: Wed, 31 Mar 2021 16:04:41 +0800 Subject: [PATCH 3/4] refactor(visualMap): do not make assumption of child class in parent --- src/component/visualMap/PiecewiseModel.ts | 7 +++++++ src/component/visualMap/VisualMapModel.ts | 12 ++++++++---- src/component/visualMap/VisualMapView.ts | 3 +-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/component/visualMap/PiecewiseModel.ts b/src/component/visualMap/PiecewiseModel.ts index 44880408ef..520c7094ae 100644 --- a/src/component/visualMap/PiecewiseModel.ts +++ b/src/component/visualMap/PiecewiseModel.ts @@ -244,6 +244,13 @@ class PiecewiseModel extends VisualMapModel { // thisOption.selectedMode === 'multiple', default: all selected. } + /** + * @public + */ + getItemSymbol(): string { + return this.get('itemSymbol'); + } + /** * @public */ diff --git a/src/component/visualMap/VisualMapModel.ts b/src/component/visualMap/VisualMapModel.ts index 2b0efccea2..2ef3c33542 100644 --- a/src/component/visualMap/VisualMapModel.ts +++ b/src/component/visualMap/VisualMapModel.ts @@ -39,7 +39,6 @@ import Model from '../../model/Model'; import GlobalModel from '../../model/Global'; import SeriesModel from '../../model/Series'; import List from '../../data/List'; -import {PiecewiseVisualMapOption} from './PiecewiseModel'; const mapVisual = VisualMapping.mapVisual; const eachVisual = VisualMapping.eachVisual; @@ -237,6 +236,13 @@ class VisualMapModel extends Com ); } + /** + * @public + */ + getItemSymbol(): string { + return null; + } + /** * @protected * @return {Array.} An array of series indices. @@ -484,9 +490,7 @@ class VisualMapModel extends Com const symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize; const inactiveColor = this.get('inactiveColor'); - const itemSymbol = this.type === 'visualMap.piecewise' - ? (this as VisualMapModel).get('itemSymbol') - : null; + const itemSymbol = this.getItemSymbol(); const defaultSymbol = itemSymbol || 'roundRect'; each(this.stateList, function (state: VisualState) { diff --git a/src/component/visualMap/VisualMapView.ts b/src/component/visualMap/VisualMapView.ts index 43d49a17fb..01e3625990 100644 --- a/src/component/visualMap/VisualMapView.ts +++ b/src/component/visualMap/VisualMapView.ts @@ -27,7 +27,6 @@ import GlobalModel from '../../model/Global'; import ExtensionAPI from '../../core/ExtensionAPI'; import VisualMapModel from './VisualMapModel'; import { VisualOptionUnit, ColorString } from '../../util/types'; -import PiecewiseModel from './PiecewiseModel'; type VisualState = VisualMapModel['stateList'][number]; @@ -118,7 +117,7 @@ class VisualMapView extends ComponentView { // Default values. if (visualCluster === 'symbol') { - visualObj.symbol = (visualMapModel as PiecewiseModel).get('itemSymbol'); + visualObj.symbol = visualMapModel.getItemSymbol(); } if (visualCluster === 'color') { const defaultColor = visualMapModel.get('contentColor'); From a95ff6a3ea000f635b1e82ae079a6c3c9b41520b Mon Sep 17 00:00:00 2001 From: Ovilia Date: Wed, 31 Mar 2021 16:32:10 +0800 Subject: [PATCH 4/4] fix(visualMap): remove unnecessary logic --- src/component/visualMap/VisualMapView.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/component/visualMap/VisualMapView.ts b/src/component/visualMap/VisualMapView.ts index 01e3625990..1c24317071 100644 --- a/src/component/visualMap/VisualMapView.ts +++ b/src/component/visualMap/VisualMapView.ts @@ -116,9 +116,6 @@ class VisualMapView extends ComponentView { const visualObj: {[key in typeof visualCluster]?: VisualOptionUnit[key]} = {}; // Default values. - if (visualCluster === 'symbol') { - visualObj.symbol = visualMapModel.getItemSymbol(); - } if (visualCluster === 'color') { const defaultColor = visualMapModel.get('contentColor'); visualObj.color = defaultColor as ColorString;