Skip to content

Commit

Permalink
fix(tooltip): render list data within a series
Browse files Browse the repository at this point in the history
This is a bug included when richText is added
  • Loading branch information
Ovilia committed Aug 26, 2018
1 parent b0689b9 commit ac980ab
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 21 deletions.
24 changes: 18 additions & 6 deletions src/component/tooltip/TooltipRichContent.js
Expand Up @@ -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');
Expand Down
10 changes: 2 additions & 8 deletions src/component/tooltip/TooltipView.js
Expand Up @@ -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;
Expand All @@ -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') {
Expand Down
20 changes: 14 additions & 6 deletions src/model/Series.js
Expand Up @@ -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',
Expand Down Expand Up @@ -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();
Expand All @@ -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({
Expand All @@ -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,
Expand Down
4 changes: 3 additions & 1 deletion src/model/mixin/dataFormat.js
Expand Up @@ -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;

Expand All @@ -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,
Expand Down
11 changes: 11 additions & 0 deletions src/util/model.js
Expand Up @@ -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;
Expand Down Expand Up @@ -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';
}
}

0 comments on commit ac980ab

Please sign in to comment.