UNPKG

@qn-pandora/pandora-visualization

Version:

Pandora 通用可视化库

164 lines (163 loc) 8.41 kB
"use strict"; 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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); 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; }; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var React = __importStar(require("react")); var mobx_react_1 = require("mobx-react"); var classnames_1 = __importDefault(require("classnames")); var mobx_1 = require("mobx"); var antd_1 = require("antd"); var pandora_component_icons_1 = require("@qn-pandora/pandora-component-icons"); var chart_style_1 = require("../../../../constants/chart-style"); var BasicComponent_1 = __importDefault(require("../../../../components/Base/BasicComponent")); var bind_1 = __importDefault(require("../../../../utils/bind")); var constant_1 = require("../constant"); var styles = __importStar(require("./style.mless")); var DisplayField = /** @class */ (function (_super) { __extends(DisplayField, _super); function DisplayField() { return _super !== null && _super.apply(this, arguments) || this; } Object.defineProperty(DisplayField.prototype, "fieldsStyle", { get: function () { var _a = this.props, chartHeight = _a.chartHeight, displayFiled = _a.displayFiled, chartType = _a.chartType, chartWidth = _a.chartWidth; var position = displayFiled.position, fontSize = displayFiled.fontSize; var bottomMarginTop = 0; if (chartType === chart_style_1.ChartType.SingleGauge && position === chart_style_1.ESingleFieldPosition.Bottom) { bottomMarginTop = chartHeight / 5.8; } var marginLeft = position === chart_style_1.ESingleFieldPosition.Right ? null : 'auto'; var style = { fontSize: fontSize, width: '100%', marginTop: "-" + bottomMarginTop + "px", maxWidth: chartWidth * 2 + "px", minWidth: chartWidth / 2 + "px" }; if (marginLeft) { style['marginLeft'] = marginLeft; } return style; }, enumerable: false, configurable: true }); DisplayField.prototype.getIcon = function (trend) { switch (trend) { case constant_1.ETrend.Up: return React.createElement(pandora_component_icons_1.ArrowUp, { className: styles.up }); case constant_1.ETrend.Equal: return React.createElement(pandora_component_icons_1.ArrowRight, { className: styles.equal }); case constant_1.ETrend.Down: return React.createElement(pandora_component_icons_1.ArrowDown, { className: styles.down }); default: return null; } }; DisplayField.prototype.getTooltipPlacement = function (position, index) { return position === chart_style_1.ESingleFieldPosition.Right ? 'bottomLeft' : (index + 1) % 2 === 0 ? 'bottomLeft' : 'bottomRight'; }; DisplayField.prototype.render = function () { var _a; var _this = this; var _b = this.props, displayFiled = _b.displayFiled, className = _b.className; var _c = displayFiled.fields, fields = _c === void 0 ? [] : _c, position = displayFiled.position, _d = displayFiled.fieldNum, fieldNum = _d === void 0 ? 1 : _d; return (React.createElement(React.Fragment, null, fields.length > 0 && (React.createElement("div", { className: classnames_1.default(styles.fields, className, (_a = {}, _a[styles.bottomFields] = position === chart_style_1.ESingleFieldPosition.Bottom, _a[styles.twoCol] = fieldNum >= 2, _a)), style: this.fieldsStyle }, fields.map(function (item, index) { var _a; var name = item.name, value = item.value, nickname = item.nickname; if (!name) { return; } var position = _this.props.displayFiled.position; var placement = _this.getTooltipPlacement(position, index); return (React.createElement(antd_1.Tooltip, { title: value || '', placement: placement }, React.createElement("div", { className: styles.fieldWrapper }, React.createElement("span", { className: classnames_1.default(styles.field, (_a = {}, _a[styles[item.trend]] = item.trendMode === chart_style_1.ESingleFieldTrendMode.Value || item.trendMode === chart_style_1.ESingleFieldTrendMode.ValueAndArrow || item.trendMode === chart_style_1.ESingleFieldTrendMode.ZeroAndNotZero, _a)) }, React.createElement("span", { className: styles.key }, nickname || name, ":"), value ? value : '--', (item.trendMode === chart_style_1.ESingleFieldTrendMode.Arrow || item.trendMode === chart_style_1.ESingleFieldTrendMode.ValueAndArrow) && (React.createElement("span", { className: styles.icon }, item.trend && _this.getIcon(item.trend))))))); }))))); }; __decorate([ mobx_1.computed, __metadata("design:type", Object), __metadata("design:paramtypes", []) ], DisplayField.prototype, "fieldsStyle", null); __decorate([ bind_1.default, __metadata("design:type", Function), __metadata("design:paramtypes", [String]), __metadata("design:returntype", void 0) ], DisplayField.prototype, "getIcon", null); __decorate([ bind_1.default, __metadata("design:type", Function), __metadata("design:paramtypes", [String, Number]), __metadata("design:returntype", void 0) ], DisplayField.prototype, "getTooltipPlacement", null); DisplayField = __decorate([ mobx_react_1.observer ], DisplayField); return DisplayField; }(BasicComponent_1.default)); exports.default = DisplayField;