提交 82791723 编写于 作者: S sushuang

Fix that setting `emphasis.lineStyle.type` as solid dose not work. Fix #9704, close #10129.

上级 4ffc328b
......@@ -34,8 +34,9 @@ var getLineStyle = makeStyleMapper(
export default {
getLineStyle: function (excludes) {
var style = getLineStyle(this, excludes);
var lineDash = this.getLineDash(style.lineWidth);
lineDash && (style.lineDash = lineDash);
// Always set lineDash whether dashed, otherwise we can not
// erase the previous style when assigning to el.style.
style.lineDash = this.getLineDash(style.lineWidth);
return style;
},
......@@ -46,7 +47,15 @@ export default {
var lineType = this.get('type');
var dotSize = Math.max(lineWidth, 2);
var dashSize = lineWidth * 4;
return (lineType === 'solid' || lineType == null) ? null
: (lineType === 'dashed' ? [dashSize, dashSize] : [dotSize, dotSize]);
return (lineType === 'solid' || lineType == null)
// Use `false` but not `null` for the solid line here, because `null` might be
// ignored when assigning to `el.style`. e.g., when setting `lineStyle.type` as
// `'dashed'` and `emphasis.lineStyle.type` as `'solid'` in graph series, the
// `lineDash` gotten form the latter one is not able to erase that from the former
// one if using `null` here according to the emhpsis strategy in `util/graphic.js`.
? false
: lineType === 'dashed'
? [dashSize, dashSize]
: [dotSize, dotSize];
}
};
\ No newline at end of file
......@@ -57,6 +57,7 @@ under the License.
<div id="mainb1"></div>
<div id="mainb2"></div>
<div id="mainb3"></div>
<div id="mainb4"></div>
<div id="main0"></div>
<div id="main1"></div>
......@@ -328,6 +329,56 @@ under the License.
<script>
require(['echarts'], function (echarts) {
var option = {
hoverLayerThreshold: hoverLayerThreshold,
series: [{
type: 'graph',
symbolSize: 20,
focusNodeAdjacency: true,
data: [
{value: 100, name: 'aa', x: 100, y: 200},
{value: 150, name: 'bb', x: 450, y: 300},
{value: 200, name: 'cc', x: 200, y: 100},
{value: 250, name: 'dd', x: 450, y: 250}
],
links: [
{source: 'aa', target: 'bb'},
{source: 'aa', target: 'dd'},
{source: 'cc', target: 'bb'}
],
lineStyle: {
color: 'green',
type: 'dashed', // [4, 6],
width: 3
},
emphasis: {
lineStyle: {
color: 'orange',
type: 'solid',
width: 8
// opacity: .8
}
}
}]
};
var chart = testHelper.create(echarts, 'mainb4', {
title: [
'normal line is **green dashed width 3**,',
'should become **orange solid width 8** when hovered'
],
option: option,
height: 200
});
});
</script>
<script>
require(['echarts'], function (echarts) {
var option = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册