From 3d5b8b13c22da5ed6af09e1e713ff4dcefbfba79 Mon Sep 17 00:00:00 2001 From: sushuang Date: Tue, 17 Apr 2018 03:13:26 +0800 Subject: [PATCH] Fix #8149 (candlestick default tooltip fix.) --- src/chart/boxplot/BoxplotSeries.js | 8 ++++++- src/chart/candlestick/CandlestickSeries.js | 11 ++++++--- src/data/helper/completeDimensions.js | 7 ++++-- src/data/helper/dimensionHelper.js | 8 ++++++- test/candlestick.html | 28 ++++++++++++---------- 5 files changed, 43 insertions(+), 19 deletions(-) diff --git a/src/chart/boxplot/BoxplotSeries.js b/src/chart/boxplot/BoxplotSeries.js index 04878e3652..5c54c7dcbe 100644 --- a/src/chart/boxplot/BoxplotSeries.js +++ b/src/chart/boxplot/BoxplotSeries.js @@ -17,7 +17,13 @@ var BoxplotSeries = SeriesModel.extend({ * and echarts do not need to know it. * @readOnly */ - defaultValueDimensions: ['min', 'Q1', 'median', 'Q3', 'max'], + defaultValueDimensions: [ + {name: 'min', defaultTooltip: true}, + {name: 'Q1', defaultTooltip: true}, + {name: 'median', defaultTooltip: true}, + {name: 'Q3', defaultTooltip: true}, + {name: 'max', defaultTooltip: true} + ], /** * @type {Array.} diff --git a/src/chart/candlestick/CandlestickSeries.js b/src/chart/candlestick/CandlestickSeries.js index 0d2d352f08..54a8571e36 100644 --- a/src/chart/candlestick/CandlestickSeries.js +++ b/src/chart/candlestick/CandlestickSeries.js @@ -11,7 +11,12 @@ var CandlestickSeries = SeriesModel.extend({ /** * @readOnly */ - defaultValueDimensions: ['open', 'close', 'lowest', 'highest'], + defaultValueDimensions: [ + {name: 'open', defaultTooltip: true}, + {name: 'close', defaultTooltip: true}, + {name: 'lowest', defaultTooltip: true}, + {name: 'highest', defaultTooltip: true} + ], /** * @type {Array.} @@ -23,8 +28,8 @@ var CandlestickSeries = SeriesModel.extend({ * @override */ defaultOption: { - zlevel: 0, // 一级层叠 - z: 2, // 二级层叠 + zlevel: 0, + z: 2, coordinateSystem: 'cartesian2d', legendHoverLink: true, diff --git a/src/data/helper/completeDimensions.js b/src/data/helper/completeDimensions.js index 44f13a285d..34a3ed0ae4 100644 --- a/src/data/helper/completeDimensions.js +++ b/src/data/helper/completeDimensions.js @@ -21,7 +21,7 @@ import {OTHER_DIMENSIONS} from './dimensionHelper'; * provides not only dim template, but also default order. * properties: 'name', 'type', 'displayName'. * `name` of each item provides default coord name. - * [{dimsDef: [string...]}, ...] dimsDef of sysDim item provides default dim name, and + * [{dimsDef: [string|Object, ...]}, ...] dimsDef of sysDim item provides default dim name, and * provide dims count that the sysDim required. * [{ordinalMeta}] can be specified. * @param {module:echarts/data/Source|Array|Object} source or data (for compatibal with pervious) @@ -145,7 +145,10 @@ function completeDimensions(sysDims, source, opt) { var resultItem = result[resultDimIdx]; applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex); if (resultItem.name == null && sysDimItemDimsDef) { - resultItem.name = resultItem.displayName = sysDimItemDimsDef[coordDimIndex]; + var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex]; + !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {name: sysDimItemDimsDefItem}); + resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name; + resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip; } // FIXME refactor, currently only used in case: {otherDims: {tooltip: false}} sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims); diff --git a/src/data/helper/dimensionHelper.js b/src/data/helper/dimensionHelper.js index 75389f42b1..1848ff259d 100644 --- a/src/data/helper/dimensionHelper.js +++ b/src/data/helper/dimensionHelper.js @@ -10,6 +10,7 @@ export function summarizeDimensions(data) { var encode = summary.encode = {}; var notExtraCoordDimMap = createHashMap(); var defaultedLabel = []; + var defaultedTooltip = []; each(data.dimensions, function (dimName) { var dimItem = data.getDimensionInfo(dimName); @@ -36,6 +37,9 @@ export function summarizeDimensions(data) { defaultedLabel[0] = dimName; } } + if (dimItem.defaultTooltip) { + defaultedTooltip.push(dimName); + } } OTHER_DIMENSIONS.each(function (v, otherDim) { @@ -75,11 +79,13 @@ export function summarizeDimensions(data) { defaultedLabel = encodeLabel.slice(); } - var defaultedTooltip = defaultedLabel.slice(); var encodeTooltip = encode.tooltip; if (encodeTooltip && encodeTooltip.length) { defaultedTooltip = encodeTooltip.slice(); } + else if (!defaultedTooltip.length) { + defaultedTooltip = defaultedLabel.slice(); + } encode.defaultedLabel = defaultedLabel; encode.defaultedTooltip = defaultedTooltip; diff --git a/test/candlestick.html b/test/candlestick.html index 3150b86381..9dd7e55c03 100644 --- a/test/candlestick.html +++ b/test/candlestick.html @@ -13,6 +13,7 @@ height: 100%; } + Check tooltip.