UNPKG

@qn-pandora/pandora-visualization

Version:

Pandora 通用可视化库

79 lines (78 loc) 4.48 kB
var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; import * as React from 'react'; import { observer } from 'mobx-react'; import classnames from 'classnames'; import { reaction } from 'mobx'; import ReactEcharts from 'echarts-for-react'; import ChartContainer from '../../components/ChartContainer'; import BasicComponent from '../../../Base/BasicComponent'; import { ESingleFieldPosition } from '../../../../constants/chart-style'; import DisplayField from '../DisplayField'; import * as styles from './style.mless'; var BaseSingleCircleChart = /** @class */ (function (_super) { __extends(BaseSingleCircleChart, _super); function BaseSingleCircleChart() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.chartBindClickFlag = false; _this.store = _this.props.store; _this.singleContainer = React.createRef(); return _this; } BaseSingleCircleChart.prototype.componentDidMount = function () { var _this = this; this.addDisposer(reaction(function () { return _this.store.echartInst; }, function (echartInst) { if (echartInst) { if (_this.chartBindClickFlag) { echartInst._zr.off('click', _this.store.handleDrillDown); _this.chartBindClickFlag = false; } echartInst._zr.on('click', _this.store.handleDrillDown); _this.chartBindClickFlag = true; } })); }; BaseSingleCircleChart.prototype.componentWillUnmount = function () { if (this.chartBindClickFlag) { this.store.echartInst._zr.off('click', this.store.handleDrillDown); } _super.prototype.componentWillUnmount.call(this); }; BaseSingleCircleChart.prototype.render = function () { var _a, _b; var _c = this.store, options = _c.options, displayField = _c.displayField, chartWidth = _c.chartWidth, chartHeight = _c.chartHeight, chartType = _c.chartType; var fields = displayField.fields, position = displayField.position; return (React.createElement("div", { className: classnames(styles.container, (_a = {}, _a[styles.rightContainer] = fields.length > 0 && position === ESingleFieldPosition.Right, _a)), ref: this.singleContainer }, React.createElement("div", { className: classnames(styles.charSingletContainer, (_b = {}, _b[styles.displayField] = fields.length > 0 && position === ESingleFieldPosition.Bottom, _b[styles.minContainer] = chartWidth < 192 && fields.length > 0, _b)) }, React.createElement(ChartContainer, { onClient: this.store.debounceHandleClient }, React.createElement(ReactEcharts, { option: options, theme: "pandora-light", notMerge: true, className: classnames('echarts', styles.gaugeChart), onChartReady: this.store.onChartReadyCallback, onEvents: this.store.onEvents }))), React.createElement(DisplayField, { displayFiled: displayField, chartHeight: chartHeight, chartWidth: chartWidth, chartType: chartType }))); }; BaseSingleCircleChart = __decorate([ observer ], BaseSingleCircleChart); return BaseSingleCircleChart; }(BasicComponent)); export default BaseSingleCircleChart;