提交 9de5f31a 编写于 作者: L lang

tweak

上级 c0300ec5
......@@ -13,12 +13,16 @@ define(function (require) {
var SeriesMarkLine = require('./SeriesMarkLine');
var markLineTransform = function (data, baseAxis, valueAxis, item) {
var markLineTransform = function (data, coordSys, baseAxis, valueAxis, item) {
// Special type markLine like 'min', 'max', 'average'
var mlType = item.type;
if (!zrUtil.isArray(item)
&& mlType === 'min' || mlType === 'max' || mlType === 'average'
) {
if (item.valueIndex != null) {
baseAxis = coordSys.getAxis(coordSys.dimensions[1 - item.valueIndex]);
valueAxis = coordSys.getAxis(coordSys.dimensions[item.valueIndex]);
}
var baseAxisKey = baseAxis.dim + 'Axis';
var valueAxisKey = valueAxis.dim + 'Axis';
var baseScaleExtent = baseAxis.scale.getExtent();
......@@ -38,6 +42,8 @@ define(function (require) {
0.5 : (mlType === 'max' ? 1 : 0);
var value = (extent[1] - extent[0]) * percent + extent[0];
// Round if axis is cateogry
value = valueAxis.coordToData(valueAxis.dataToCoord(value));
mlFrom[valueAxisKey] = mlTo[valueAxisKey] = value;
......@@ -96,7 +102,7 @@ define(function (require) {
this._markLineMap = {};
},
render: function (markLineModel, ecModel) {
render: function (markLineModel, ecModel, api) {
var seriesMarkLineMap = this._markLineMap;
for (var name in seriesMarkLineMap) {
seriesMarkLineMap[name].__keep = false;
......@@ -104,7 +110,7 @@ define(function (require) {
ecModel.eachSeries(function (seriesModel) {
var mlModel = seriesModel.markLineModel;
mlModel && this._renderSeriesML(seriesModel, mlModel, ecModel);
mlModel && this._renderSeriesML(seriesModel, mlModel, ecModel, api);
}, this);
for (var name in seriesMarkLineMap) {
......@@ -114,7 +120,7 @@ define(function (require) {
}
},
_renderSeriesML: function (seriesModel, mlModel, ecModel) {
_renderSeriesML: function (seriesModel, mlModel, ecModel, api) {
var coordSys = seriesModel.coordinateSystem;
var seriesName = seriesModel.name;
var seriesData = seriesModel.getData();
......@@ -156,7 +162,7 @@ define(function (require) {
});
seriesMarkLine.update(
fromData, toData, mlModel, ecModel.get('animation')
fromData, toData, mlModel, api, ecModel.get('animation')
);
// Set host model for tooltip
......@@ -227,7 +233,7 @@ define(function (require) {
var optData = zrUtil.filter(
zrUtil.map(mlModel.get('data'), zrUtil.curry(
markLineTransform, seriesData, baseAxis, valueAxis
markLineTransform, seriesData, coordSys, baseAxis, valueAxis
)),
zrUtil.curry(
markLineFilter, coordSys, coordDataIdx
......
......@@ -100,7 +100,7 @@ define(function (require) {
* @param {module:echarts/data/List} toData
*/
seriesMarkLineProto.update = function (
fromData, toData, mlModel, enableAnimation
fromData, toData, mlModel, api, enableAnimation
) {
var oldFromData = this._fromData;
......@@ -126,8 +126,8 @@ define(function (require) {
});
if (enableAnimation) {
line.shape.x1 = p1[0];
line.shape.y1 = p1[1];
line.shape.x2 = p1[0];
line.shape.y2 = p1[1];
line.animateTo({
shape: {
x2: p2[0],
......@@ -175,14 +175,14 @@ define(function (require) {
var fromSymbolType = fromData.getItemVisual(newIdx, 'symbol');
var toSymbolType = toData.getItemVisual(newIdx, 'symbol');
line.animateTo({
api.updateGraphicEl(line, {
shape: {
x1: p1[0],
y1: p1[1],
x2: p2[0],
y2: p2[1]
}
}, 300, 'cubicOut');
});
// Symbol changed
if (fromSymbolType !== oldFromData.getItemVisual(oldIdx, 'symbol')) {
......
......@@ -3,7 +3,7 @@ define(function (require) {
var zrUtil = require('zrender/core/util');
var numberUtil = require('../../util/number');
var getPrecision = function (data, valueAxisDim, dataIndex) {
function getPrecision(data, valueAxisDim, dataIndex) {
var precision = -1;
do {
precision = Math.max(
......@@ -16,11 +16,13 @@ define(function (require) {
} while (data);
return precision;
};
}
var markerTypeCalculatorWithExtent = function (percent, data, baseAxisDim, valueAxisDim) {
function markerTypeCalculatorWithExtent(percent, data, baseAxisDim, valueAxisDim, valueIndex) {
var extent = data.getDataExtent(valueAxisDim);
var valueIndex = (valueAxisDim === 'angle' || valueAxisDim === 'x') ? 0 : 1;
if (valueIndex == null) {
valueIndex = (valueAxisDim === 'angle' || valueAxisDim === 'x') ? 0 : 1;
}
var valueArr = [];
var min = extent[0];
var max = extent[1];
......@@ -35,7 +37,7 @@ define(function (require) {
}
return valueArr;
};
}
var curry = zrUtil.curry;
// TODO Specified percent
......@@ -68,14 +70,16 @@ define(function (require) {
// 2. If value is not a data array. Which uses xAxis, yAxis to specify the value on each dimension
if (isNaN(item.x) || isNaN(item.y) && !zrUtil.isArray(item.value)) {
var valueAxisDim = valueAxis.dim;
var valueIndex = (valueAxisDim === 'angle' || valueAxisDim === 'x') ? 0 : 1;
var valueIndex = item.valueIndex != null
? item.valueIndex
: ((valueAxisDim === 'angle' || valueAxisDim === 'x') ? 0 : 1);
// Clone the option
// Transform the properties xAxis, yAxis, radiusAxis, angleAxis, geoCoord to value
item = zrUtil.extend({}, item);
if (item.type && markerTypeCalculator[item.type]
&& baseAxis && valueAxis) {
var value = markerTypeCalculator[item.type](
data, baseAxis.dim, valueAxisDim
data, baseAxis.dim, valueAxisDim, valueIndex
);
if (item.value != null) {
value.push(+item.value);
......
......@@ -374,7 +374,7 @@ define(function (require) {
*/
listProto.getDataExtent = function (dim, stack) {
var dimData = this._storage[dim];
var dimExtent = (this._extent || (this._extent = {}))[dim];
var dimExtent = (this._extent || (this._extent = {}))[dim + stack];
var value;
if (dimExtent) {
return dimExtent;
......@@ -394,7 +394,7 @@ define(function (require) {
value < min && (min = value);
value > max && (max = value);
}
return (this._extent[dim] = [min, max]);
return (this._extent[dim + stack] = [min, max]);
}
else {
return [Infinity, -Infinity];
......@@ -633,6 +633,9 @@ define(function (require) {
this.indices = newIndices;
// Reset data extent
this._extent = {};
return this;
};
......
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册