index.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { __extends } from "tslib";
  2. import { Event, VIEW_LIFE_CIRCLE } from '@antv/g2';
  3. import { Plot } from '../../core/plot';
  4. import { processIllegalData } from '../../utils';
  5. import { adaptor, pieAnnotation } from './adaptor';
  6. import { DEFAULT_OPTIONS } from './contants';
  7. import './interactions';
  8. import { isAllZero } from './utils';
  9. var Pie = /** @class */ (function (_super) {
  10. __extends(Pie, _super);
  11. function Pie() {
  12. var _this = _super !== null && _super.apply(this, arguments) || this;
  13. /** 图表类型 */
  14. _this.type = 'pie';
  15. return _this;
  16. }
  17. /**
  18. * 获取 饼图 默认配置项
  19. * 供外部使用
  20. */
  21. Pie.getDefaultOptions = function () {
  22. return DEFAULT_OPTIONS;
  23. };
  24. /**
  25. * 更新数据
  26. * @param data
  27. */
  28. Pie.prototype.changeData = function (data) {
  29. this.chart.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, Event.fromData(this.chart, VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, null));
  30. var prevOptions = this.options;
  31. var angleField = this.options.angleField;
  32. var prevData = processIllegalData(prevOptions.data, angleField);
  33. var curData = processIllegalData(data, angleField);
  34. // 如果上一次或当前数据全为 0,则重新渲染
  35. if (isAllZero(prevData, angleField) || isAllZero(curData, angleField)) {
  36. this.update({ data: data });
  37. }
  38. else {
  39. this.updateOption({ data: data });
  40. this.chart.data(curData);
  41. // todo 后续让 G2 层在 afterrender 之后,来重绘 annotations
  42. pieAnnotation({ chart: this.chart, options: this.options });
  43. this.chart.render(true);
  44. }
  45. this.chart.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, Event.fromData(this.chart, VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, null));
  46. };
  47. /**
  48. * 获取 饼图 默认配置项, 供 base 获取
  49. */
  50. Pie.prototype.getDefaultOptions = function () {
  51. return Pie.getDefaultOptions();
  52. };
  53. /**
  54. * 获取 饼图 的适配器
  55. */
  56. Pie.prototype.getSchemaAdaptor = function () {
  57. return adaptor;
  58. };
  59. return Pie;
  60. }(Plot));
  61. export { Pie };
  62. //# sourceMappingURL=index.js.map