提交 eec38cd1 编写于 作者: L lang

Pie selectedMode

上级 5242191e
...@@ -43,8 +43,16 @@ define(function(require) { ...@@ -43,8 +43,16 @@ define(function(require) {
/** /**
* @param {string} name * @param {string} name
*/ */
// PENGING If selectedMode is null ?
select: function (name) { select: function (name) {
var dataOpt = this._dataOptMap[name]; var dataOptMap = this._dataOptMap;
var dataOpt = dataOptMap[name];
var selectedMode = this.get('selectedMode');
if (selectedMode === 'single') {
zrUtil.each(dataOptMap, function (dataOpt) {
dataOpt.selected = false;
});
}
dataOpt && (dataOpt.selected = true); dataOpt && (dataOpt.selected = true);
}, },
...@@ -53,7 +61,8 @@ define(function(require) { ...@@ -53,7 +61,8 @@ define(function(require) {
*/ */
unSelect: function (name) { unSelect: function (name) {
var dataOpt = this._dataOptMap[name]; var dataOpt = this._dataOptMap[name];
dataOpt && (dataOpt.selected = false); var selectedMode = this.get('selectedMode');
selectedMode !== 'single' && dataOpt && (dataOpt.selected = false);
}, },
/** /**
...@@ -62,7 +71,8 @@ define(function(require) { ...@@ -62,7 +71,8 @@ define(function(require) {
toggleSelected: function (name) { toggleSelected: function (name) {
var dataOpt = this._dataOptMap[name]; var dataOpt = this._dataOptMap[name];
if (dataOpt != null) { if (dataOpt != null) {
return dataOpt.selected = !dataOpt.selected; this[dataOpt.selected ? 'unSelect' : 'select'](name);
return dataOpt.selected;
} }
}, },
......
...@@ -7,16 +7,23 @@ define(function (require) { ...@@ -7,16 +7,23 @@ define(function (require) {
var data = seriesModel.getData(); var data = seriesModel.getData();
var dataIndex = this.dataIndex; var dataIndex = this.dataIndex;
var name = data.getName(dataIndex); var name = data.getName(dataIndex);
var selectedOffset = seriesModel.get('selectedOffset');
seriesModel.toggleSelected(name);
updateSelected(this, data.each(function (idx) {
seriesModel.toggleSelected(name), updateSelected(
seriesModel.get('selectedOffset') data.getItemGraphicEl(idx),
data.getItemLayout(idx),
seriesModel.isSelected(data.getName(idx)),
selectedOffset
); );
});
} }
function updateSelected(el, isSelected, selectedOffset) { function updateSelected(el, layout, isSelected, selectedOffset) {
var shape = el.shape; var shape = el.shape;
var midAngle = (shape.startAngle + shape.endAngle) / 2; var midAngle = (layout.startAngle + layout.endAngle) / 2;
var dx = Math.cos(midAngle); var dx = Math.cos(midAngle);
var dy = (shape.clockwise ? 1 : -1) * Math.sin(midAngle); var dy = (shape.clockwise ? 1 : -1) * Math.sin(midAngle);
...@@ -93,6 +100,8 @@ define(function (require) { ...@@ -93,6 +100,8 @@ define(function (require) {
var firstSector; var firstSector;
var onSectorClick = zrUtil.curry(selectData, seriesModel); var onSectorClick = zrUtil.curry(selectData, seriesModel);
var selectedMode = seriesModel.get('selectedMode');
data.diff(oldData) data.diff(oldData)
.add(function (idx) { .add(function (idx) {
var layout = data.getItemLayout(idx); var layout = data.getItemLayout(idx);
...@@ -101,7 +110,8 @@ define(function (require) { ...@@ -101,7 +110,8 @@ define(function (require) {
layout, '', hasAnimation && !isFirstRender layout, '', hasAnimation && !isFirstRender
); );
sector.on('click', onSectorClick); selectedMode
&& sector.on('click', onSectorClick);
data.setItemGraphicEl(idx, sector); data.setItemGraphicEl(idx, sector);
...@@ -117,12 +127,16 @@ define(function (require) { ...@@ -117,12 +127,16 @@ define(function (require) {
var layout = data.getItemLayout(newIdx); var layout = data.getItemLayout(newIdx);
var labelLayout = layout.label; var labelLayout = layout.label;
var labelLine = sector.__labelLine;
var labelText = sector.__labelText;
sector.animateTo({ sector.animateTo({
shape: layout shape: layout
}, 300, 'cubicOut'); }, 300, 'cubicOut');
var labelLine = sector.__labelLine; selectedMode
var labelText = sector.__labelText; ? sector.on('click', onSectorClick)
: sector.off('click');
labelLine.animateTo({ labelLine.animateTo({
shape: { shape: {
...@@ -203,7 +217,12 @@ define(function (require) { ...@@ -203,7 +217,12 @@ define(function (require) {
}); });
} }
updateSelected(sector, itemModel.get('selected'), selectedOffset); updateSelected(
sector,
data.getItemLayout(idx),
itemModel.get('selected'),
selectedOffset
);
}); });
}, },
......
...@@ -146,7 +146,7 @@ define(function (require) { ...@@ -146,7 +146,7 @@ define(function (require) {
} }
// Always show item tooltip if mouse is on the element with dataIndex // Always show item tooltip if mouse is on the element with dataIndex
if (el && el.dataIndex) { if (el && el.dataIndex != null) {
var seriesModel = ecModel.getSeriesByIndex(el.seriesIndex); var seriesModel = ecModel.getSeriesByIndex(el.seriesIndex);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册