|
@@ -289,23 +289,445 @@ export const drawCharts: DrawChartsFunction = function(
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 根据图表类型执行不同的绘制逻辑
|
|
// 根据图表类型执行不同的绘制逻辑
|
|
|
- // 注意:这里需要导入所有 renderers 函数
|
|
|
|
|
- // 由于 renderers 模块可能缺少部分函数的导出,需要先更新 renderers/index.ts
|
|
|
|
|
- // 临时占位符:完整的 switch 语句太长,将在后续完善
|
|
|
|
|
-
|
|
|
|
|
- /* 占位符:以下是需要从 renderers 导入但可能未导出的函数
|
|
|
|
|
- - contextRotate
|
|
|
|
|
- - drawMarkLine
|
|
|
|
|
- - drawToolTipBridge
|
|
|
|
|
- - drawRoseDataPoints
|
|
|
|
|
- - drawGaugeDataPoints
|
|
|
|
|
- - drawArcbarDataPoints
|
|
|
|
|
-
|
|
|
|
|
- 在实际使用时,需要在 renderers/index.ts 中添加这些函数的导出
|
|
|
|
|
- */
|
|
|
|
|
-
|
|
|
|
|
- // 标记:需要完整的图表类型绘制逻辑
|
|
|
|
|
- // 完整实现见 u-charts.ts 第6499-6936行
|
|
|
|
|
|
|
+ // 从 u-charts.js 第6528-6965行搬迁
|
|
|
|
|
+ switch (type) {
|
|
|
|
|
+ case 'word':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawWordCloudDataPoints(series, opts, config, context, process);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'map':
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ drawMapDataPoints(series, opts, config, context);
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }, 50);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'funnel':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'line':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawYAxisGrid(categories, opts, config, context);
|
|
|
|
|
+ drawXAxis(categories, opts, config, context);
|
|
|
|
|
+ var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),
|
|
|
|
|
+ xAxisPoints = _drawLineDataPoints.xAxisPoints,
|
|
|
|
|
+ calPoints = _drawLineDataPoints.calPoints,
|
|
|
|
|
+ eachSpacing = _drawLineDataPoints.eachSpacing;
|
|
|
|
|
+ opts.chartData.xAxisPoints = xAxisPoints;
|
|
|
|
|
+ opts.chartData.calPoints = calPoints;
|
|
|
|
|
+ opts.chartData.eachSpacing = eachSpacing;
|
|
|
|
|
+ drawYAxis(series, opts, config, context);
|
|
|
|
|
+ if (opts.enableMarkLine !== false && process === 1) {
|
|
|
|
|
+ drawMarkLine(opts, config, context);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'scatter':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawYAxisGrid(categories, opts, config, context);
|
|
|
|
|
+ drawXAxis(categories, opts, config, context);
|
|
|
|
|
+ var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),
|
|
|
|
|
+ xAxisPoints = _drawScatterDataPoints.xAxisPoints,
|
|
|
|
|
+ calPoints = _drawScatterDataPoints.calPoints,
|
|
|
|
|
+ eachSpacing = _drawScatterDataPoints.eachSpacing;
|
|
|
|
|
+ opts.chartData.xAxisPoints = xAxisPoints;
|
|
|
|
|
+ opts.chartData.calPoints = calPoints;
|
|
|
|
|
+ opts.chartData.eachSpacing = eachSpacing;
|
|
|
|
|
+ drawYAxis(series, opts, config, context);
|
|
|
|
|
+ if (opts.enableMarkLine !== false && process === 1) {
|
|
|
|
|
+ drawMarkLine(opts, config, context);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'bubble':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawYAxisGrid(categories, opts, config, context);
|
|
|
|
|
+ drawXAxis(categories, opts, config, context);
|
|
|
|
|
+ var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),
|
|
|
|
|
+ xAxisPoints = _drawBubbleDataPoints.xAxisPoints,
|
|
|
|
|
+ calPoints = _drawBubbleDataPoints.calPoints,
|
|
|
|
|
+ eachSpacing = _drawBubbleDataPoints.eachSpacing;
|
|
|
|
|
+ opts.chartData.xAxisPoints = xAxisPoints;
|
|
|
|
|
+ opts.chartData.calPoints = calPoints;
|
|
|
|
|
+ opts.chartData.eachSpacing = eachSpacing;
|
|
|
|
|
+ drawYAxis(series, opts, config, context);
|
|
|
|
|
+ if (opts.enableMarkLine !== false && process === 1) {
|
|
|
|
|
+ drawMarkLine(opts, config, context);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'mix':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawYAxisGrid(categories, opts, config, context);
|
|
|
|
|
+ drawXAxis(categories, opts, config, context);
|
|
|
|
|
+ var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),
|
|
|
|
|
+ xAxisPoints = _drawMixDataPoints.xAxisPoints,
|
|
|
|
|
+ calPoints = _drawMixDataPoints.calPoints,
|
|
|
|
|
+ eachSpacing = _drawMixDataPoints.eachSpacing;
|
|
|
|
|
+ opts.chartData.xAxisPoints = xAxisPoints;
|
|
|
|
|
+ opts.chartData.calPoints = calPoints;
|
|
|
|
|
+ opts.chartData.eachSpacing = eachSpacing;
|
|
|
|
|
+ drawYAxis(series, opts, config, context);
|
|
|
|
|
+ if (opts.enableMarkLine !== false && process === 1) {
|
|
|
|
|
+ drawMarkLine(opts, config, context);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'column':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawYAxisGrid(categories, opts, config, context);
|
|
|
|
|
+ drawXAxis(categories, opts, config, context);
|
|
|
|
|
+ var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),
|
|
|
|
|
+ xAxisPoints = _drawColumnDataPoints.xAxisPoints,
|
|
|
|
|
+ calPoints = _drawColumnDataPoints.calPoints,
|
|
|
|
|
+ eachSpacing = _drawColumnDataPoints.eachSpacing;
|
|
|
|
|
+ opts.chartData.xAxisPoints = xAxisPoints;
|
|
|
|
|
+ opts.chartData.calPoints = calPoints;
|
|
|
|
|
+ opts.chartData.eachSpacing = eachSpacing;
|
|
|
|
|
+ drawYAxis(series, opts, config, context);
|
|
|
|
|
+ if (opts.enableMarkLine !== false && process === 1) {
|
|
|
|
|
+ drawMarkLine(opts, config, context);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'mount':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawYAxisGrid(categories, opts, config, context);
|
|
|
|
|
+ drawXAxis(categories, opts, config, context);
|
|
|
|
|
+ var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process),
|
|
|
|
|
+ xAxisPoints = _drawMountDataPoints.xAxisPoints,
|
|
|
|
|
+ calPoints = _drawMountDataPoints.calPoints,
|
|
|
|
|
+ eachSpacing = _drawMountDataPoints.eachSpacing;
|
|
|
|
|
+ opts.chartData.xAxisPoints = xAxisPoints;
|
|
|
|
|
+ opts.chartData.calPoints = calPoints;
|
|
|
|
|
+ opts.chartData.eachSpacing = eachSpacing;
|
|
|
|
|
+ drawYAxis(series, opts, config, context);
|
|
|
|
|
+ if (opts.enableMarkLine !== false && process === 1) {
|
|
|
|
|
+ drawMarkLine(opts, config, context);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'bar':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawXAxis(categories, opts, config, context);
|
|
|
|
|
+ var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),
|
|
|
|
|
+ yAxisPoints = _drawBarDataPoints.yAxisPoints,
|
|
|
|
|
+ calPoints = _drawBarDataPoints.calPoints,
|
|
|
|
|
+ eachSpacing = _drawBarDataPoints.eachSpacing;
|
|
|
|
|
+ opts.chartData.yAxisPoints = yAxisPoints;
|
|
|
|
|
+ opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;
|
|
|
|
|
+ opts.chartData.calPoints = calPoints;
|
|
|
|
|
+ opts.chartData.eachSpacing = eachSpacing;
|
|
|
|
|
+ drawYAxis(series, opts, config, context);
|
|
|
|
|
+ if (opts.enableMarkLine !== false && process === 1) {
|
|
|
|
|
+ drawMarkLine(opts, config, context);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'area':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawYAxisGrid(categories, opts, config, context);
|
|
|
|
|
+ drawXAxis(categories, opts, config, context);
|
|
|
|
|
+ var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),
|
|
|
|
|
+ xAxisPoints = _drawAreaDataPoints.xAxisPoints,
|
|
|
|
|
+ calPoints = _drawAreaDataPoints.calPoints,
|
|
|
|
|
+ eachSpacing = _drawAreaDataPoints.eachSpacing;
|
|
|
|
|
+ opts.chartData.xAxisPoints = xAxisPoints;
|
|
|
|
|
+ opts.chartData.calPoints = calPoints;
|
|
|
|
|
+ opts.chartData.eachSpacing = eachSpacing;
|
|
|
|
|
+ drawYAxis(series, opts, config, context);
|
|
|
|
|
+ if (opts.enableMarkLine !== false && process === 1) {
|
|
|
|
|
+ drawMarkLine(opts, config, context);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'ring':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'pie':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'rose':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'radar':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'arcbar':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'gauge':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'candle':
|
|
|
|
|
+ _this.animationInstance = new Animation({
|
|
|
|
|
+ timing: opts.timing,
|
|
|
|
|
+ duration: duration,
|
|
|
|
|
+ onProcess: function onProcess(process) {
|
|
|
|
|
+ context.clearRect(0, 0, opts.width, opts.height);
|
|
|
|
|
+ if (opts.rotate) {
|
|
|
|
|
+ contextRotate(context, opts);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawYAxisGrid(categories, opts, config, context);
|
|
|
|
|
+ drawXAxis(categories, opts, config, context);
|
|
|
|
|
+ var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),
|
|
|
|
|
+ xAxisPoints = _drawCandleDataPoints.xAxisPoints,
|
|
|
|
|
+ calPoints = _drawCandleDataPoints.calPoints,
|
|
|
|
|
+ eachSpacing = _drawCandleDataPoints.eachSpacing;
|
|
|
|
|
+ opts.chartData.xAxisPoints = xAxisPoints;
|
|
|
|
|
+ opts.chartData.calPoints = calPoints;
|
|
|
|
|
+ opts.chartData.eachSpacing = eachSpacing;
|
|
|
|
|
+ drawYAxis(series, opts, config, context);
|
|
|
|
|
+ if (opts.enableMarkLine !== false && process === 1) {
|
|
|
|
|
+ drawMarkLine(opts, config, context);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (seriesMA) {
|
|
|
|
|
+ drawLegend(seriesMA, opts, config, context, opts.chartData);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ drawLegend(opts.series, opts, config, context, opts.chartData);
|
|
|
|
|
+ }
|
|
|
|
|
+ drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
|
|
|
|
|
+ drawCanvas(opts, context);
|
|
|
|
|
+ },
|
|
|
|
|
+ onAnimationFinish: function onAnimationFinish() {
|
|
|
|
|
+ _this.uevent.trigger('renderComplete');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
/**
|