This is an automated email from the ASF dual-hosted git repository.

ovilia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git


The following commit(s) were added to refs/heads/master by this push:
     new ac980ab  fix(tooltip): render list data within a series
ac980ab is described below

commit ac980aba49ce94695a72b8a65e60716c56245e06
Author: Ovilia <zwl.s...@gmail.com>
AuthorDate: Sun Aug 26 14:04:22 2018 +0800

    fix(tooltip): render list data within a series
    
    This is a bug included when richText is added
---
 src/component/tooltip/TooltipRichContent.js | 24 ++++++++++++++++++------
 src/component/tooltip/TooltipView.js        | 10 ++--------
 src/model/Series.js                         | 20 ++++++++++++++------
 src/model/mixin/dataFormat.js               |  4 +++-
 src/util/model.js                           | 11 +++++++++++
 5 files changed, 48 insertions(+), 21 deletions(-)

diff --git a/src/component/tooltip/TooltipRichContent.js 
b/src/component/tooltip/TooltipRichContent.js
index cfc69b1..1f0972c 100644
--- a/src/component/tooltip/TooltipRichContent.js
+++ b/src/component/tooltip/TooltipRichContent.js
@@ -85,12 +85,24 @@ TooltipRichContent.prototype = {
         while (startId >= 0) {
             var endId = text.indexOf(suffix);
             var name = text.substr(startId + prefix.length, endId - startId - 
prefix.length);
-            markers['marker' + name] = {
-                textWidth: 12,
-                textHeight: 12,
-                textBorderRadius: 6,
-                textBackgroundColor: markerRich[name]
-            };
+            if (name.indexOf('sub') > -1) {
+                markers['marker' + name] = {
+                    textWidth: 4,
+                    textHeight: 4,
+                    textBorderRadius: 2,
+                    textBackgroundColor: markerRich[name],
+                    // TODO: textOffset is not implemented for rich text
+                    textOffset: [3, 0]
+                };
+            }
+            else {
+                markers['marker' + name] = {
+                    textWidth: 10,
+                    textHeight: 10,
+                    textBorderRadius: 5,
+                    textBackgroundColor: markerRich[name]
+                };
+            }
 
             text = text.substr(endId + 1);
             startId = text.indexOf('{marker');
diff --git a/src/component/tooltip/TooltipView.js 
b/src/component/tooltip/TooltipView.js
index dccab1c..eee0fc0 100644
--- a/src/component/tooltip/TooltipView.js
+++ b/src/component/tooltip/TooltipView.js
@@ -31,6 +31,7 @@ import Model from '../../model/Model';
 import * as globalListener from '../axisPointer/globalListener';
 import * as axisHelper from '../../coord/axisHelper';
 import * as axisPointerViewHelper from '../axisPointer/viewHelper';
+import { getRenderMode } from '../../util/model';
 
 var bind = zrUtil.bind;
 var each = zrUtil.each;
@@ -51,14 +52,7 @@ export default echarts.extendComponentView({
 
         var tooltipModel = ecModel.getComponent('tooltip');
         var renderMode = tooltipModel.get('renderMode');
-        this._renderMode = 'html';
-        if (renderMode === 'auto') {
-            // using html when `document` exists, use richText otherwise
-            this._renderMode = env.domSupported ? 'html' : 'richText';
-        }
-        else {
-            this._renderMode = renderMode || this._renderMode;
-        }
+        this._renderMode = getRenderMode(renderMode);
 
         var tooltipContent;
         if (this._renderMode === 'html') {
diff --git a/src/model/Series.js b/src/model/Series.js
index 9f3213e..dfe3250 100644
--- a/src/model/Series.js
+++ b/src/model/Series.js
@@ -343,7 +343,7 @@ var SeriesModel = ComponentModel.extend({
                     return;
                 }
                 var dimType = dimInfo.type;
-                var markName = series.seriesIndex + 'at' + markerId;
+                var markName = 'sub' + series.seriesIndex + 'at' + markerId;
                 var dimHead = getTooltipMarker({
                     color: color,
                     type: 'subItem',
@@ -371,15 +371,22 @@ var SeriesModel = ComponentModel.extend({
                 }
             }
 
+            const newLine = vertially ? (isRichText ? '\n' : '<br/>') : '';
+            const content = newLine + result.join(newLine || ', ');
             return {
                 renderMode: renderMode,
-                content: (vertially ? isRichText : '') + result.join(vertially 
? isRichText : ', '),
+                content: content,
                 style: markers
             };
         }
 
         function formatSingleValue(val) {
-            return encodeHTML(addCommas(val));
+            // return encodeHTML(addCommas(val));
+            return {
+                renderMode: renderMode,
+                content: encodeHTML(addCommas(val)),
+                style: markers
+            };
         }
 
         var data = this.getData();
@@ -400,6 +407,7 @@ var SeriesModel = ComponentModel.extend({
             : tooltipDimLen
             ? formatSingleValue(retrieveRawValue(data, dataIndex, 
tooltipDims[0]))
             : formatSingleValue(isValueArr ? value[0] : value);
+        var content = formattedValue.content;
 
         var markName = series.seriesIndex + 'at' + markerId;
         var colorEl = getTooltipMarker({
@@ -425,10 +433,10 @@ var SeriesModel = ComponentModel.extend({
         var html = !multipleSeries
             ? seriesName + colorStr
                 + (name
-                    ? encodeHTML(name) + ': ' + formattedValue
-                    : formattedValue
+                    ? encodeHTML(name) + ': ' + content
+                    : content
                 )
-            : colorStr + seriesName + formattedValue;
+            : colorStr + seriesName + content;
 
         return {
             html: html,
diff --git a/src/model/mixin/dataFormat.js b/src/model/mixin/dataFormat.js
index a605200..84251a1 100644
--- a/src/model/mixin/dataFormat.js
+++ b/src/model/mixin/dataFormat.js
@@ -19,6 +19,7 @@
 
 import {retrieveRawValue} from '../../data/helper/dataProvider';
 import {getTooltipMarker, formatTpl} from '../../util/format';
+import { getRenderMode } from '../../util/model';
 
 var DIMENSION_LABEL_REG = /\{@(.+?)\}/g;
 
@@ -38,7 +39,8 @@ export default {
         var itemOpt = data.getRawDataItem(dataIndex);
         var color = data.getItemVisual(dataIndex, 'color');
         var tooltipModel = this.ecModel.getComponent('tooltip');
-        var renderMode = tooltipModel && tooltipModel.get('renderMode') || 
'html';
+        var renderModeOption = tooltipModel && tooltipModel.get('renderMode');
+        var renderMode = getRenderMode(renderModeOption);
 
         return {
             componentType: this.mainType,
diff --git a/src/util/model.js b/src/util/model.js
index e111b66..65f788f 100644
--- a/src/util/model.js
+++ b/src/util/model.js
@@ -18,6 +18,7 @@
 */
 
 import * as zrUtil from 'zrender/src/core/util';
+import env from 'zrender/src/core/env';
 
 var each = zrUtil.each;
 var isObject = zrUtil.isObject;
@@ -523,3 +524,13 @@ export function getAttribute(dom, key) {
         ? dom.getAttribute(key)
         : dom[key];
 }
+
+export function getRenderMode(renderModeOption) {
+    if (renderModeOption === 'auto') {
+        // Using html when `document` exists, use richText otherwise
+        return env.domSupported ? 'html' : 'richText';
+    }
+    else {
+        return renderModeOption || 'html';
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@echarts.apache.org
For additional commands, e-mail: commits-h...@echarts.apache.org

Reply via email to